> getDependencies() {
+ return asList(software.amazon.awscdk.cloudassembly.schema.$Module.class, software.amazon.awscdk.core.$Module.class, software.amazon.awscdk.cxapi.$Module.class, software.amazon.awscdk.regioninfo.$Module.class, software.constructs.$Module.class);
+ }
+
+ @Override
+ protected Class> resolveClass(final String fqn) throws ClassNotFoundException {
+ if (!MODULE_TYPES.containsKey(fqn)) {
+ throw new ClassNotFoundException(\\"Unknown JSII type: \\" + fqn);
+ }
+ String className = MODULE_TYPES.get(fqn);
+ if (!this.cache.containsKey(className)) {
+ this.cache.put(className, this.findClass(className));
+ }
+ return this.cache.get(className);
+ }
+
+ private Class> findClass(final String binaryName) {
+ try {
+ return Class.forName(binaryName);
+ }
+ catch (final ClassNotFoundException exception) {
+ throw new RuntimeException(exception);
+ }
+ }
+}
+",
+ "src/main/java/com/my/module/CfnCluster.java" => "package com.my.module;
+
+/**
+ * A CloudFormation \`AWSQS::EKS::Cluster\`.
+ */
+@javax.annotation.Generated(value = \\"jsii-pacmak/1.35.0 (build 6ebef96)\\", date = \\"2021-10-04T17:28:49.888Z\\")
+@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
+@software.amazon.jsii.Jsii(module = com.my.module.$Module.class, fqn = \\"1bc04b5291c26a46d918139138b992d2de976d6851d0893b0476b85bfbdfc6e6.CfnCluster\\")
+public class CfnCluster extends software.amazon.awscdk.core.CfnResource {
+
+ protected CfnCluster(final software.amazon.jsii.JsiiObjectRef objRef) {
+ super(objRef);
+ }
+
+ protected CfnCluster(final software.amazon.jsii.JsiiObject.InitializationMode initializationMode) {
+ super(initializationMode);
+ }
+
+ static {
+ CFN_RESOURCE_TYPE_NAME = software.amazon.jsii.JsiiObject.jsiiStaticGet(com.my.module.CfnCluster.class, \\"CFN_RESOURCE_TYPE_NAME\\", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
+ }
+
+ /**
+ * Create a new \`AWSQS::EKS::Cluster\`.
+ *
+ * @param scope - scope in which this resource is defined. This parameter is required.
+ * @param id - scoped id of the resource. This parameter is required.
+ * @param props - resource properties. This parameter is required.
+ */
+ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
+ public CfnCluster(final @org.jetbrains.annotations.NotNull software.amazon.awscdk.core.Construct scope, final @org.jetbrains.annotations.NotNull java.lang.String id, final @org.jetbrains.annotations.NotNull com.my.module.CfnClusterProps props) {
+ super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
+ software.amazon.jsii.JsiiEngine.getInstance().createNewObject(this, new Object[] { java.util.Objects.requireNonNull(scope, \\"scope is required\\"), java.util.Objects.requireNonNull(id, \\"id is required\\"), java.util.Objects.requireNonNull(props, \\"props is required\\") });
+ }
+
+ /**
+ * The CloudFormation resource type name for this resource class.
+ */
+ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
+ public final static java.lang.String CFN_RESOURCE_TYPE_NAME;
+
+ /**
+ * Attribute \`AWSQS::EKS::Cluster.Arn\`.
+ */
+ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
+ public @org.jetbrains.annotations.NotNull java.lang.String getAttrArn() {
+ return software.amazon.jsii.Kernel.get(this, \\"attrArn\\", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
+ }
+
+ /**
+ * Attribute \`AWSQS::EKS::Cluster.CertificateAuthorityData\`.
+ */
+ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
+ public @org.jetbrains.annotations.NotNull java.lang.String getAttrCertificateAuthorityData() {
+ return software.amazon.jsii.Kernel.get(this, \\"attrCertificateAuthorityData\\", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
+ }
+
+ /**
+ * Attribute \`AWSQS::EKS::Cluster.ClusterSecurityGroupId\`.
+ */
+ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
+ public @org.jetbrains.annotations.NotNull java.lang.String getAttrClusterSecurityGroupId() {
+ return software.amazon.jsii.Kernel.get(this, \\"attrClusterSecurityGroupId\\", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
+ }
+
+ /**
+ * Attribute \`AWSQS::EKS::Cluster.EncryptionConfigKeyArn\`.
+ */
+ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
+ public @org.jetbrains.annotations.NotNull java.lang.String getAttrEncryptionConfigKeyArn() {
+ return software.amazon.jsii.Kernel.get(this, \\"attrEncryptionConfigKeyArn\\", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
+ }
+
+ /**
+ * Attribute \`AWSQS::EKS::Cluster.Endpoint\`.
+ */
+ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
+ public @org.jetbrains.annotations.NotNull java.lang.String getAttrEndpoint() {
+ return software.amazon.jsii.Kernel.get(this, \\"attrEndpoint\\", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
+ }
+
+ /**
+ * Attribute \`AWSQS::EKS::Cluster.OIDCIssuerURL\`.
+ */
+ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
+ public @org.jetbrains.annotations.NotNull java.lang.String getAttrOIDCIssuerURL() {
+ return software.amazon.jsii.Kernel.get(this, \\"attrOIDCIssuerURL\\", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
+ }
+
+ /**
+ * \`AWSQS::EKS::Cluster.KubernetesApiAccess\`.
+ */
+ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
+ public @org.jetbrains.annotations.NotNull java.lang.Object getKubernetesApiAccess() {
+ return software.amazon.jsii.Kernel.get(this, \\"kubernetesApiAccess\\", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
+ }
+
+ /**
+ * \`AWSQS::EKS::Cluster.KubernetesNetworkConfig\` Network configuration for Amazon EKS cluster.
+ */
+ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
+ public @org.jetbrains.annotations.NotNull java.lang.Object getKubernetesNetworkConfig() {
+ return software.amazon.jsii.Kernel.get(this, \\"kubernetesNetworkConfig\\", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
+ }
+
+ /**
+ * \`AWSQS::EKS::Cluster.ResourcesVpcConfig\` An object that represents the virtual private cloud (VPC) configuration to use for an Amazon EKS cluster.
+ */
+ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
+ public @org.jetbrains.annotations.NotNull java.lang.Object getResourcesVpcConfig() {
+ return software.amazon.jsii.Kernel.get(this, \\"resourcesVpcConfig\\", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
+ }
+
+ /**
+ * \`AWSQS::EKS::Cluster.RoleArn\` Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role. This provides permissions for Amazon EKS to call other AWS APIs.
+ */
+ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
+ public @org.jetbrains.annotations.NotNull java.lang.String getRoleArn() {
+ return software.amazon.jsii.Kernel.get(this, \\"roleArn\\", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
+ }
+
+ /**
+ * \`AWSQS::EKS::Cluster.EnabledClusterLoggingTypes\` Enables exporting of logs from the Kubernetes control plane to Amazon CloudWatch Logs. By default, logs from the cluster control plane are not exported to CloudWatch Logs. The valid log types are api, audit, authenticator, controllerManager, and scheduler.
+ */
+ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
+ public @org.jetbrains.annotations.Nullable java.util.List getEnabledClusterLoggingTypes() {
+ return java.util.Optional.ofNullable((java.util.List)(software.amazon.jsii.Kernel.get(this, \\"enabledClusterLoggingTypes\\", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(java.lang.String.class))))).map(java.util.Collections::unmodifiableList).orElse(null);
+ }
+
+ /**
+ * \`AWSQS::EKS::Cluster.EncryptionConfig\` Encryption configuration for the cluster.
+ */
+ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
+ public @org.jetbrains.annotations.Nullable java.util.List getEncryptionConfig() {
+ return java.util.Optional.ofNullable((java.util.List)(software.amazon.jsii.Kernel.get(this, \\"encryptionConfig\\", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(com.my.module.EncryptionConfigEntry.class))))).map(java.util.Collections::unmodifiableList).orElse(null);
+ }
+
+ /**
+ * \`AWSQS::EKS::Cluster.LambdaRoleName\` Name of the AWS Identity and Access Management (IAM) role used for clusters that have the public endpoint disabled. this provides permissions for Lambda to be invoked and attach to the cluster VPC.
+ */
+ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
+ public @org.jetbrains.annotations.Nullable java.lang.String getLambdaRoleName() {
+ return software.amazon.jsii.Kernel.get(this, \\"lambdaRoleName\\", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
+ }
+
+ /**
+ * \`AWSQS::EKS::Cluster.Name\` A unique name for your cluster.
+ */
+ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
+ public @org.jetbrains.annotations.Nullable java.lang.String getName() {
+ return software.amazon.jsii.Kernel.get(this, \\"name\\", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
+ }
+
+ /**
+ * \`AWSQS::EKS::Cluster.Tags\`.
+ */
+ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
+ public @org.jetbrains.annotations.Nullable java.util.List getTags() {
+ return java.util.Optional.ofNullable((java.util.List)(software.amazon.jsii.Kernel.get(this, \\"tags\\", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(java.lang.Object.class))))).map(java.util.Collections::unmodifiableList).orElse(null);
+ }
+
+ /**
+ * \`AWSQS::EKS::Cluster.Version\` Desired Kubernetes version for your cluster. If you don't specify this value, the cluster uses the latest version from Amazon EKS.
+ */
+ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
+ public @org.jetbrains.annotations.Nullable java.lang.String getVersion() {
+ return software.amazon.jsii.Kernel.get(this, \\"version\\", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
+ }
+
+ /**
+ * A fluent builder for {@link com.my.module.CfnCluster}.
+ */
+ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
+ public static final class Builder implements software.amazon.jsii.Builder {
+ /**
+ * @return a new instance of {@link Builder}.
+ * @param scope - scope in which this resource is defined. This parameter is required.
+ * @param id - scoped id of the resource. This parameter is required.
+ */
+ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
+ public static Builder create(final software.amazon.awscdk.core.Construct scope, final java.lang.String id) {
+ return new Builder(scope, id);
+ }
+
+ private final software.amazon.awscdk.core.Construct scope;
+ private final java.lang.String id;
+ private final com.my.module.CfnClusterProps.Builder props;
+
+ private Builder(final software.amazon.awscdk.core.Construct scope, final java.lang.String id) {
+ this.scope = scope;
+ this.id = id;
+ this.props = new com.my.module.CfnClusterProps.Builder();
+ }
+
+ /**
+ * An object that represents the virtual private cloud (VPC) configuration to use for an Amazon EKS cluster.
+ *
+ * @return {@code this}
+ * @param resourcesVpcConfig An object that represents the virtual private cloud (VPC) configuration to use for an Amazon EKS cluster. This parameter is required.
+ */
+ public Builder resourcesVpcConfig(final com.my.module.CfnClusterPropsResourcesVpcConfig resourcesVpcConfig) {
+ this.props.resourcesVpcConfig(resourcesVpcConfig);
+ return this;
+ }
+
+ /**
+ * Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role.
+ *
+ * This provides permissions for Amazon EKS to call other AWS APIs.
+ *
+ * @return {@code this}
+ * @param roleArn Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role. This parameter is required.
+ */
+ public Builder roleArn(final java.lang.String roleArn) {
+ this.props.roleArn(roleArn);
+ return this;
+ }
+
+ /**
+ * Enables exporting of logs from the Kubernetes control plane to Amazon CloudWatch Logs.
+ *
+ * By default, logs from the cluster control plane are not exported to CloudWatch Logs. The valid log types are api, audit, authenticator, controllerManager, and scheduler.
+ *
+ * @return {@code this}
+ * @param enabledClusterLoggingTypes Enables exporting of logs from the Kubernetes control plane to Amazon CloudWatch Logs. This parameter is required.
+ */
+ public Builder enabledClusterLoggingTypes(final java.util.List enabledClusterLoggingTypes) {
+ this.props.enabledClusterLoggingTypes(enabledClusterLoggingTypes);
+ return this;
+ }
+
+ /**
+ * Encryption configuration for the cluster.
+ *
+ * @return {@code this}
+ * @param encryptionConfig Encryption configuration for the cluster. This parameter is required.
+ */
+ public Builder encryptionConfig(final java.util.List extends com.my.module.EncryptionConfigEntry> encryptionConfig) {
+ this.props.encryptionConfig(encryptionConfig);
+ return this;
+ }
+
+ /**
+ * @return {@code this}
+ * @param kubernetesApiAccess This parameter is required.
+ */
+ public Builder kubernetesApiAccess(final com.my.module.CfnClusterPropsKubernetesApiAccess kubernetesApiAccess) {
+ this.props.kubernetesApiAccess(kubernetesApiAccess);
+ return this;
+ }
+
+ /**
+ * Network configuration for Amazon EKS cluster.
+ *
+ * @return {@code this}
+ * @param kubernetesNetworkConfig Network configuration for Amazon EKS cluster. This parameter is required.
+ */
+ public Builder kubernetesNetworkConfig(final com.my.module.CfnClusterPropsKubernetesNetworkConfig kubernetesNetworkConfig) {
+ this.props.kubernetesNetworkConfig(kubernetesNetworkConfig);
+ return this;
+ }
+
+ /**
+ * Name of the AWS Identity and Access Management (IAM) role used for clusters that have the public endpoint disabled.
+ *
+ * this provides permissions for Lambda to be invoked and attach to the cluster VPC
+ *
+ * @return {@code this}
+ * @param lambdaRoleName Name of the AWS Identity and Access Management (IAM) role used for clusters that have the public endpoint disabled. This parameter is required.
+ */
+ public Builder lambdaRoleName(final java.lang.String lambdaRoleName) {
+ this.props.lambdaRoleName(lambdaRoleName);
+ return this;
+ }
+
+ /**
+ * A unique name for your cluster.
+ *
+ * @return {@code this}
+ * @param name A unique name for your cluster. This parameter is required.
+ */
+ public Builder name(final java.lang.String name) {
+ this.props.name(name);
+ return this;
+ }
+
+ /**
+ * @return {@code this}
+ * @param tags This parameter is required.
+ */
+ public Builder tags(final java.util.List extends com.my.module.CfnClusterPropsTags> tags) {
+ this.props.tags(tags);
+ return this;
+ }
+
+ /**
+ * Desired Kubernetes version for your cluster.
+ *
+ * If you don't specify this value, the cluster uses the latest version from Amazon EKS.
+ *
+ * @return {@code this}
+ * @param version Desired Kubernetes version for your cluster. This parameter is required.
+ */
+ public Builder version(final java.lang.String version) {
+ this.props.version(version);
+ return this;
+ }
+
+ /**
+ * @returns a newly built instance of {@link com.my.module.CfnCluster}.
+ */
+ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
+ @Override
+ public com.my.module.CfnCluster build() {
+ return new com.my.module.CfnCluster(
+ this.scope,
+ this.id,
+ this.props.build()
+ );
+ }
+ }
+}
+",
+ "src/main/java/com/my/module/CfnClusterProps.java" => "package com.my.module;
+
+/**
+ * A resource that creates Amazon Elastic Kubernetes Service (Amazon EKS) clusters.
+ */
+@javax.annotation.Generated(value = \\"jsii-pacmak/1.35.0 (build 6ebef96)\\", date = \\"2021-10-04T17:28:49.899Z\\")
+@software.amazon.jsii.Jsii(module = com.my.module.$Module.class, fqn = \\"1bc04b5291c26a46d918139138b992d2de976d6851d0893b0476b85bfbdfc6e6.CfnClusterProps\\")
+@software.amazon.jsii.Jsii.Proxy(CfnClusterProps.Jsii$Proxy.class)
+public interface CfnClusterProps extends software.amazon.jsii.JsiiSerializable {
+
+ /**
+ * An object that represents the virtual private cloud (VPC) configuration to use for an Amazon EKS cluster.
+ */
+ @org.jetbrains.annotations.NotNull com.my.module.CfnClusterPropsResourcesVpcConfig getResourcesVpcConfig();
+
+ /**
+ * Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role.
+ *
+ * This provides permissions for Amazon EKS to call other AWS APIs.
+ */
+ @org.jetbrains.annotations.NotNull java.lang.String getRoleArn();
+
+ /**
+ * Enables exporting of logs from the Kubernetes control plane to Amazon CloudWatch Logs.
+ *
+ * By default, logs from the cluster control plane are not exported to CloudWatch Logs. The valid log types are api, audit, authenticator, controllerManager, and scheduler.
+ */
+ default @org.jetbrains.annotations.Nullable java.util.List getEnabledClusterLoggingTypes() {
+ return null;
+ }
+
+ /**
+ * Encryption configuration for the cluster.
+ */
+ default @org.jetbrains.annotations.Nullable java.util.List getEncryptionConfig() {
+ return null;
+ }
+
+ /**
+ */
+ default @org.jetbrains.annotations.Nullable com.my.module.CfnClusterPropsKubernetesApiAccess getKubernetesApiAccess() {
+ return null;
+ }
+
+ /**
+ * Network configuration for Amazon EKS cluster.
+ */
+ default @org.jetbrains.annotations.Nullable com.my.module.CfnClusterPropsKubernetesNetworkConfig getKubernetesNetworkConfig() {
+ return null;
+ }
+
+ /**
+ * Name of the AWS Identity and Access Management (IAM) role used for clusters that have the public endpoint disabled.
+ *
+ * this provides permissions for Lambda to be invoked and attach to the cluster VPC
+ */
+ default @org.jetbrains.annotations.Nullable java.lang.String getLambdaRoleName() {
+ return null;
+ }
+
+ /**
+ * A unique name for your cluster.
+ */
+ default @org.jetbrains.annotations.Nullable java.lang.String getName() {
+ return null;
+ }
+
+ /**
+ */
+ default @org.jetbrains.annotations.Nullable java.util.List getTags() {
+ return null;
+ }
+
+ /**
+ * Desired Kubernetes version for your cluster.
+ *
+ * If you don't specify this value, the cluster uses the latest version from Amazon EKS.
+ */
+ default @org.jetbrains.annotations.Nullable java.lang.String getVersion() {
+ return null;
+ }
+
+ /**
+ * @return a {@link Builder} of {@link CfnClusterProps}
+ */
+ static Builder builder() {
+ return new Builder();
+ }
+ /**
+ * A builder for {@link CfnClusterProps}
+ */
+ public static final class Builder implements software.amazon.jsii.Builder {
+ private com.my.module.CfnClusterPropsResourcesVpcConfig resourcesVpcConfig;
+ private java.lang.String roleArn;
+ private java.util.List enabledClusterLoggingTypes;
+ private java.util.List encryptionConfig;
+ private com.my.module.CfnClusterPropsKubernetesApiAccess kubernetesApiAccess;
+ private com.my.module.CfnClusterPropsKubernetesNetworkConfig kubernetesNetworkConfig;
+ private java.lang.String lambdaRoleName;
+ private java.lang.String name;
+ private java.util.List tags;
+ private java.lang.String version;
+
+ /**
+ * Sets the value of {@link CfnClusterProps#getResourcesVpcConfig}
+ * @param resourcesVpcConfig An object that represents the virtual private cloud (VPC) configuration to use for an Amazon EKS cluster. This parameter is required.
+ * @return {@code this}
+ */
+ public Builder resourcesVpcConfig(com.my.module.CfnClusterPropsResourcesVpcConfig resourcesVpcConfig) {
+ this.resourcesVpcConfig = resourcesVpcConfig;
+ return this;
+ }
+
+ /**
+ * Sets the value of {@link CfnClusterProps#getRoleArn}
+ * @param roleArn Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role. This parameter is required.
+ * This provides permissions for Amazon EKS to call other AWS APIs.
+ * @return {@code this}
+ */
+ public Builder roleArn(java.lang.String roleArn) {
+ this.roleArn = roleArn;
+ return this;
+ }
+
+ /**
+ * Sets the value of {@link CfnClusterProps#getEnabledClusterLoggingTypes}
+ * @param enabledClusterLoggingTypes Enables exporting of logs from the Kubernetes control plane to Amazon CloudWatch Logs.
+ * By default, logs from the cluster control plane are not exported to CloudWatch Logs. The valid log types are api, audit, authenticator, controllerManager, and scheduler.
+ * @return {@code this}
+ */
+ public Builder enabledClusterLoggingTypes(java.util.List enabledClusterLoggingTypes) {
+ this.enabledClusterLoggingTypes = enabledClusterLoggingTypes;
+ return this;
+ }
+
+ /**
+ * Sets the value of {@link CfnClusterProps#getEncryptionConfig}
+ * @param encryptionConfig Encryption configuration for the cluster.
+ * @return {@code this}
+ */
+ @SuppressWarnings(\\"unchecked\\")
+ public Builder encryptionConfig(java.util.List extends com.my.module.EncryptionConfigEntry> encryptionConfig) {
+ this.encryptionConfig = (java.util.List)encryptionConfig;
+ return this;
+ }
+
+ /**
+ * Sets the value of {@link CfnClusterProps#getKubernetesApiAccess}
+ * @param kubernetesApiAccess the value to be set.
+ * @return {@code this}
+ */
+ public Builder kubernetesApiAccess(com.my.module.CfnClusterPropsKubernetesApiAccess kubernetesApiAccess) {
+ this.kubernetesApiAccess = kubernetesApiAccess;
+ return this;
+ }
+
+ /**
+ * Sets the value of {@link CfnClusterProps#getKubernetesNetworkConfig}
+ * @param kubernetesNetworkConfig Network configuration for Amazon EKS cluster.
+ * @return {@code this}
+ */
+ public Builder kubernetesNetworkConfig(com.my.module.CfnClusterPropsKubernetesNetworkConfig kubernetesNetworkConfig) {
+ this.kubernetesNetworkConfig = kubernetesNetworkConfig;
+ return this;
+ }
+
+ /**
+ * Sets the value of {@link CfnClusterProps#getLambdaRoleName}
+ * @param lambdaRoleName Name of the AWS Identity and Access Management (IAM) role used for clusters that have the public endpoint disabled.
+ * this provides permissions for Lambda to be invoked and attach to the cluster VPC
+ * @return {@code this}
+ */
+ public Builder lambdaRoleName(java.lang.String lambdaRoleName) {
+ this.lambdaRoleName = lambdaRoleName;
+ return this;
+ }
+
+ /**
+ * Sets the value of {@link CfnClusterProps#getName}
+ * @param name A unique name for your cluster.
+ * @return {@code this}
+ */
+ public Builder name(java.lang.String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Sets the value of {@link CfnClusterProps#getTags}
+ * @param tags the value to be set.
+ * @return {@code this}
+ */
+ @SuppressWarnings(\\"unchecked\\")
+ public Builder tags(java.util.List extends com.my.module.CfnClusterPropsTags> tags) {
+ this.tags = (java.util.List)tags;
+ return this;
+ }
+
+ /**
+ * Sets the value of {@link CfnClusterProps#getVersion}
+ * @param version Desired Kubernetes version for your cluster.
+ * If you don't specify this value, the cluster uses the latest version from Amazon EKS.
+ * @return {@code this}
+ */
+ public Builder version(java.lang.String version) {
+ this.version = version;
+ return this;
+ }
+
+ /**
+ * Builds the configured instance.
+ * @return a new instance of {@link CfnClusterProps}
+ * @throws NullPointerException if any required attribute was not provided
+ */
+ @Override
+ public CfnClusterProps build() {
+ return new Jsii$Proxy(resourcesVpcConfig, roleArn, enabledClusterLoggingTypes, encryptionConfig, kubernetesApiAccess, kubernetesNetworkConfig, lambdaRoleName, name, tags, version);
+ }
+ }
+
+ /**
+ * An implementation for {@link CfnClusterProps}
+ */
+ @software.amazon.jsii.Internal
+ final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements CfnClusterProps {
+ private final com.my.module.CfnClusterPropsResourcesVpcConfig resourcesVpcConfig;
+ private final java.lang.String roleArn;
+ private final java.util.List enabledClusterLoggingTypes;
+ private final java.util.List encryptionConfig;
+ private final com.my.module.CfnClusterPropsKubernetesApiAccess kubernetesApiAccess;
+ private final com.my.module.CfnClusterPropsKubernetesNetworkConfig kubernetesNetworkConfig;
+ private final java.lang.String lambdaRoleName;
+ private final java.lang.String name;
+ private final java.util.List tags;
+ private final java.lang.String version;
+
+ /**
+ * Constructor that initializes the object based on values retrieved from the JsiiObject.
+ * @param objRef Reference to the JSII managed object.
+ */
+ protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
+ super(objRef);
+ this.resourcesVpcConfig = software.amazon.jsii.Kernel.get(this, \\"resourcesVpcConfig\\", software.amazon.jsii.NativeType.forClass(com.my.module.CfnClusterPropsResourcesVpcConfig.class));
+ this.roleArn = software.amazon.jsii.Kernel.get(this, \\"roleArn\\", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
+ this.enabledClusterLoggingTypes = software.amazon.jsii.Kernel.get(this, \\"enabledClusterLoggingTypes\\", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(java.lang.String.class)));
+ this.encryptionConfig = software.amazon.jsii.Kernel.get(this, \\"encryptionConfig\\", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(com.my.module.EncryptionConfigEntry.class)));
+ this.kubernetesApiAccess = software.amazon.jsii.Kernel.get(this, \\"kubernetesApiAccess\\", software.amazon.jsii.NativeType.forClass(com.my.module.CfnClusterPropsKubernetesApiAccess.class));
+ this.kubernetesNetworkConfig = software.amazon.jsii.Kernel.get(this, \\"kubernetesNetworkConfig\\", software.amazon.jsii.NativeType.forClass(com.my.module.CfnClusterPropsKubernetesNetworkConfig.class));
+ this.lambdaRoleName = software.amazon.jsii.Kernel.get(this, \\"lambdaRoleName\\", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
+ this.name = software.amazon.jsii.Kernel.get(this, \\"name\\", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
+ this.tags = software.amazon.jsii.Kernel.get(this, \\"tags\\", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(com.my.module.CfnClusterPropsTags.class)));
+ this.version = software.amazon.jsii.Kernel.get(this, \\"version\\", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
+ }
+
+ /**
+ * Constructor that initializes the object based on literal property values passed by the {@link Builder}.
+ */
+ @SuppressWarnings(\\"unchecked\\")
+ protected Jsii$Proxy(final com.my.module.CfnClusterPropsResourcesVpcConfig resourcesVpcConfig, final java.lang.String roleArn, final java.util.List enabledClusterLoggingTypes, final java.util.List extends com.my.module.EncryptionConfigEntry> encryptionConfig, final com.my.module.CfnClusterPropsKubernetesApiAccess kubernetesApiAccess, final com.my.module.CfnClusterPropsKubernetesNetworkConfig kubernetesNetworkConfig, final java.lang.String lambdaRoleName, final java.lang.String name, final java.util.List extends com.my.module.CfnClusterPropsTags> tags, final java.lang.String version) {
+ super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
+ this.resourcesVpcConfig = java.util.Objects.requireNonNull(resourcesVpcConfig, \\"resourcesVpcConfig is required\\");
+ this.roleArn = java.util.Objects.requireNonNull(roleArn, \\"roleArn is required\\");
+ this.enabledClusterLoggingTypes = enabledClusterLoggingTypes;
+ this.encryptionConfig = (java.util.List)encryptionConfig;
+ this.kubernetesApiAccess = kubernetesApiAccess;
+ this.kubernetesNetworkConfig = kubernetesNetworkConfig;
+ this.lambdaRoleName = lambdaRoleName;
+ this.name = name;
+ this.tags = (java.util.List)tags;
+ this.version = version;
+ }
+
+ @Override
+ public final com.my.module.CfnClusterPropsResourcesVpcConfig getResourcesVpcConfig() {
+ return this.resourcesVpcConfig;
+ }
+
+ @Override
+ public final java.lang.String getRoleArn() {
+ return this.roleArn;
+ }
+
+ @Override
+ public final java.util.List getEnabledClusterLoggingTypes() {
+ return this.enabledClusterLoggingTypes;
+ }
+
+ @Override
+ public final java.util.List getEncryptionConfig() {
+ return this.encryptionConfig;
+ }
+
+ @Override
+ public final com.my.module.CfnClusterPropsKubernetesApiAccess getKubernetesApiAccess() {
+ return this.kubernetesApiAccess;
+ }
+
+ @Override
+ public final com.my.module.CfnClusterPropsKubernetesNetworkConfig getKubernetesNetworkConfig() {
+ return this.kubernetesNetworkConfig;
+ }
+
+ @Override
+ public final java.lang.String getLambdaRoleName() {
+ return this.lambdaRoleName;
+ }
+
+ @Override
+ public final java.lang.String getName() {
+ return this.name;
+ }
+
+ @Override
+ public final java.util.List getTags() {
+ return this.tags;
+ }
+
+ @Override
+ public final java.lang.String getVersion() {
+ return this.version;
+ }
+
+ @Override
+ @software.amazon.jsii.Internal
+ public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
+ final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
+ final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
+
+ data.set(\\"resourcesVpcConfig\\", om.valueToTree(this.getResourcesVpcConfig()));
+ data.set(\\"roleArn\\", om.valueToTree(this.getRoleArn()));
+ if (this.getEnabledClusterLoggingTypes() != null) {
+ data.set(\\"enabledClusterLoggingTypes\\", om.valueToTree(this.getEnabledClusterLoggingTypes()));
+ }
+ if (this.getEncryptionConfig() != null) {
+ data.set(\\"encryptionConfig\\", om.valueToTree(this.getEncryptionConfig()));
+ }
+ if (this.getKubernetesApiAccess() != null) {
+ data.set(\\"kubernetesApiAccess\\", om.valueToTree(this.getKubernetesApiAccess()));
+ }
+ if (this.getKubernetesNetworkConfig() != null) {
+ data.set(\\"kubernetesNetworkConfig\\", om.valueToTree(this.getKubernetesNetworkConfig()));
+ }
+ if (this.getLambdaRoleName() != null) {
+ data.set(\\"lambdaRoleName\\", om.valueToTree(this.getLambdaRoleName()));
+ }
+ if (this.getName() != null) {
+ data.set(\\"name\\", om.valueToTree(this.getName()));
+ }
+ if (this.getTags() != null) {
+ data.set(\\"tags\\", om.valueToTree(this.getTags()));
+ }
+ if (this.getVersion() != null) {
+ data.set(\\"version\\", om.valueToTree(this.getVersion()));
+ }
+
+ final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
+ struct.set(\\"fqn\\", om.valueToTree(\\"1bc04b5291c26a46d918139138b992d2de976d6851d0893b0476b85bfbdfc6e6.CfnClusterProps\\"));
+ struct.set(\\"data\\", data);
+
+ final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
+ obj.set(\\"$jsii.struct\\", struct);
+
+ return obj;
+ }
+
+ @Override
+ public final boolean equals(final Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ CfnClusterProps.Jsii$Proxy that = (CfnClusterProps.Jsii$Proxy) o;
+
+ if (!resourcesVpcConfig.equals(that.resourcesVpcConfig)) return false;
+ if (!roleArn.equals(that.roleArn)) return false;
+ if (this.enabledClusterLoggingTypes != null ? !this.enabledClusterLoggingTypes.equals(that.enabledClusterLoggingTypes) : that.enabledClusterLoggingTypes != null) return false;
+ if (this.encryptionConfig != null ? !this.encryptionConfig.equals(that.encryptionConfig) : that.encryptionConfig != null) return false;
+ if (this.kubernetesApiAccess != null ? !this.kubernetesApiAccess.equals(that.kubernetesApiAccess) : that.kubernetesApiAccess != null) return false;
+ if (this.kubernetesNetworkConfig != null ? !this.kubernetesNetworkConfig.equals(that.kubernetesNetworkConfig) : that.kubernetesNetworkConfig != null) return false;
+ if (this.lambdaRoleName != null ? !this.lambdaRoleName.equals(that.lambdaRoleName) : that.lambdaRoleName != null) return false;
+ if (this.name != null ? !this.name.equals(that.name) : that.name != null) return false;
+ if (this.tags != null ? !this.tags.equals(that.tags) : that.tags != null) return false;
+ return this.version != null ? this.version.equals(that.version) : that.version == null;
+ }
+
+ @Override
+ public final int hashCode() {
+ int result = this.resourcesVpcConfig.hashCode();
+ result = 31 * result + (this.roleArn.hashCode());
+ result = 31 * result + (this.enabledClusterLoggingTypes != null ? this.enabledClusterLoggingTypes.hashCode() : 0);
+ result = 31 * result + (this.encryptionConfig != null ? this.encryptionConfig.hashCode() : 0);
+ result = 31 * result + (this.kubernetesApiAccess != null ? this.kubernetesApiAccess.hashCode() : 0);
+ result = 31 * result + (this.kubernetesNetworkConfig != null ? this.kubernetesNetworkConfig.hashCode() : 0);
+ result = 31 * result + (this.lambdaRoleName != null ? this.lambdaRoleName.hashCode() : 0);
+ result = 31 * result + (this.name != null ? this.name.hashCode() : 0);
+ result = 31 * result + (this.tags != null ? this.tags.hashCode() : 0);
+ result = 31 * result + (this.version != null ? this.version.hashCode() : 0);
+ return result;
+ }
+ }
+}
+",
+ "src/main/java/com/my/module/CfnClusterPropsKubernetesApiAccess.java" => "package com.my.module;
+
+/**
+ */
+@javax.annotation.Generated(value = \\"jsii-pacmak/1.35.0 (build 6ebef96)\\", date = \\"2021-10-04T17:28:49.903Z\\")
+@software.amazon.jsii.Jsii(module = com.my.module.$Module.class, fqn = \\"1bc04b5291c26a46d918139138b992d2de976d6851d0893b0476b85bfbdfc6e6.CfnClusterPropsKubernetesApiAccess\\")
+@software.amazon.jsii.Jsii.Proxy(CfnClusterPropsKubernetesApiAccess.Jsii$Proxy.class)
+public interface CfnClusterPropsKubernetesApiAccess extends software.amazon.jsii.JsiiSerializable {
+
+ /**
+ */
+ default @org.jetbrains.annotations.Nullable java.util.List getRoles() {
+ return null;
+ }
+
+ /**
+ */
+ default @org.jetbrains.annotations.Nullable java.util.List getUsers() {
+ return null;
+ }
+
+ /**
+ * @return a {@link Builder} of {@link CfnClusterPropsKubernetesApiAccess}
+ */
+ static Builder builder() {
+ return new Builder();
+ }
+ /**
+ * A builder for {@link CfnClusterPropsKubernetesApiAccess}
+ */
+ public static final class Builder implements software.amazon.jsii.Builder {
+ private java.util.List roles;
+ private java.util.List users;
+
+ /**
+ * Sets the value of {@link CfnClusterPropsKubernetesApiAccess#getRoles}
+ * @param roles the value to be set.
+ * @return {@code this}
+ */
+ @SuppressWarnings(\\"unchecked\\")
+ public Builder roles(java.util.List extends com.my.module.KubernetesApiAccessEntry> roles) {
+ this.roles = (java.util.List)roles;
+ return this;
+ }
+
+ /**
+ * Sets the value of {@link CfnClusterPropsKubernetesApiAccess#getUsers}
+ * @param users the value to be set.
+ * @return {@code this}
+ */
+ @SuppressWarnings(\\"unchecked\\")
+ public Builder users(java.util.List extends com.my.module.KubernetesApiAccessEntry> users) {
+ this.users = (java.util.List)users;
+ return this;
+ }
+
+ /**
+ * Builds the configured instance.
+ * @return a new instance of {@link CfnClusterPropsKubernetesApiAccess}
+ * @throws NullPointerException if any required attribute was not provided
+ */
+ @Override
+ public CfnClusterPropsKubernetesApiAccess build() {
+ return new Jsii$Proxy(roles, users);
+ }
+ }
+
+ /**
+ * An implementation for {@link CfnClusterPropsKubernetesApiAccess}
+ */
+ @software.amazon.jsii.Internal
+ final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements CfnClusterPropsKubernetesApiAccess {
+ private final java.util.List roles;
+ private final java.util.List users;
+
+ /**
+ * Constructor that initializes the object based on values retrieved from the JsiiObject.
+ * @param objRef Reference to the JSII managed object.
+ */
+ protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
+ super(objRef);
+ this.roles = software.amazon.jsii.Kernel.get(this, \\"roles\\", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(com.my.module.KubernetesApiAccessEntry.class)));
+ this.users = software.amazon.jsii.Kernel.get(this, \\"users\\", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(com.my.module.KubernetesApiAccessEntry.class)));
+ }
+
+ /**
+ * Constructor that initializes the object based on literal property values passed by the {@link Builder}.
+ */
+ @SuppressWarnings(\\"unchecked\\")
+ protected Jsii$Proxy(final java.util.List extends com.my.module.KubernetesApiAccessEntry> roles, final java.util.List extends com.my.module.KubernetesApiAccessEntry> users) {
+ super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
+ this.roles = (java.util.List)roles;
+ this.users = (java.util.List)users;
+ }
+
+ @Override
+ public final java.util.List getRoles() {
+ return this.roles;
+ }
+
+ @Override
+ public final java.util.List getUsers() {
+ return this.users;
+ }
+
+ @Override
+ @software.amazon.jsii.Internal
+ public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
+ final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
+ final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
+
+ if (this.getRoles() != null) {
+ data.set(\\"roles\\", om.valueToTree(this.getRoles()));
+ }
+ if (this.getUsers() != null) {
+ data.set(\\"users\\", om.valueToTree(this.getUsers()));
+ }
+
+ final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
+ struct.set(\\"fqn\\", om.valueToTree(\\"1bc04b5291c26a46d918139138b992d2de976d6851d0893b0476b85bfbdfc6e6.CfnClusterPropsKubernetesApiAccess\\"));
+ struct.set(\\"data\\", data);
+
+ final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
+ obj.set(\\"$jsii.struct\\", struct);
+
+ return obj;
+ }
+
+ @Override
+ public final boolean equals(final Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ CfnClusterPropsKubernetesApiAccess.Jsii$Proxy that = (CfnClusterPropsKubernetesApiAccess.Jsii$Proxy) o;
+
+ if (this.roles != null ? !this.roles.equals(that.roles) : that.roles != null) return false;
+ return this.users != null ? this.users.equals(that.users) : that.users == null;
+ }
+
+ @Override
+ public final int hashCode() {
+ int result = this.roles != null ? this.roles.hashCode() : 0;
+ result = 31 * result + (this.users != null ? this.users.hashCode() : 0);
+ return result;
+ }
+ }
+}
+",
+ "src/main/java/com/my/module/CfnClusterPropsKubernetesNetworkConfig.java" => "package com.my.module;
+
+/**
+ * Network configuration for Amazon EKS cluster.
+ */
+@javax.annotation.Generated(value = \\"jsii-pacmak/1.35.0 (build 6ebef96)\\", date = \\"2021-10-04T17:28:49.903Z\\")
+@software.amazon.jsii.Jsii(module = com.my.module.$Module.class, fqn = \\"1bc04b5291c26a46d918139138b992d2de976d6851d0893b0476b85bfbdfc6e6.CfnClusterPropsKubernetesNetworkConfig\\")
+@software.amazon.jsii.Jsii.Proxy(CfnClusterPropsKubernetesNetworkConfig.Jsii$Proxy.class)
+public interface CfnClusterPropsKubernetesNetworkConfig extends software.amazon.jsii.JsiiSerializable {
+
+ /**
+ * Specify the range from which cluster services will receive IPv4 addresses.
+ */
+ default @org.jetbrains.annotations.Nullable java.lang.String getServiceIpv4Cidr() {
+ return null;
+ }
+
+ /**
+ * @return a {@link Builder} of {@link CfnClusterPropsKubernetesNetworkConfig}
+ */
+ static Builder builder() {
+ return new Builder();
+ }
+ /**
+ * A builder for {@link CfnClusterPropsKubernetesNetworkConfig}
+ */
+ public static final class Builder implements software.amazon.jsii.Builder {
+ private java.lang.String serviceIpv4Cidr;
+
+ /**
+ * Sets the value of {@link CfnClusterPropsKubernetesNetworkConfig#getServiceIpv4Cidr}
+ * @param serviceIpv4Cidr Specify the range from which cluster services will receive IPv4 addresses.
+ * @return {@code this}
+ */
+ public Builder serviceIpv4Cidr(java.lang.String serviceIpv4Cidr) {
+ this.serviceIpv4Cidr = serviceIpv4Cidr;
+ return this;
+ }
+
+ /**
+ * Builds the configured instance.
+ * @return a new instance of {@link CfnClusterPropsKubernetesNetworkConfig}
+ * @throws NullPointerException if any required attribute was not provided
+ */
+ @Override
+ public CfnClusterPropsKubernetesNetworkConfig build() {
+ return new Jsii$Proxy(serviceIpv4Cidr);
+ }
+ }
+
+ /**
+ * An implementation for {@link CfnClusterPropsKubernetesNetworkConfig}
+ */
+ @software.amazon.jsii.Internal
+ final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements CfnClusterPropsKubernetesNetworkConfig {
+ private final java.lang.String serviceIpv4Cidr;
+
+ /**
+ * Constructor that initializes the object based on values retrieved from the JsiiObject.
+ * @param objRef Reference to the JSII managed object.
+ */
+ protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
+ super(objRef);
+ this.serviceIpv4Cidr = software.amazon.jsii.Kernel.get(this, \\"serviceIpv4Cidr\\", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
+ }
+
+ /**
+ * Constructor that initializes the object based on literal property values passed by the {@link Builder}.
+ */
+ protected Jsii$Proxy(final java.lang.String serviceIpv4Cidr) {
+ super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
+ this.serviceIpv4Cidr = serviceIpv4Cidr;
+ }
+
+ @Override
+ public final java.lang.String getServiceIpv4Cidr() {
+ return this.serviceIpv4Cidr;
+ }
+
+ @Override
+ @software.amazon.jsii.Internal
+ public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
+ final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
+ final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
+
+ if (this.getServiceIpv4Cidr() != null) {
+ data.set(\\"serviceIpv4Cidr\\", om.valueToTree(this.getServiceIpv4Cidr()));
+ }
+
+ final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
+ struct.set(\\"fqn\\", om.valueToTree(\\"1bc04b5291c26a46d918139138b992d2de976d6851d0893b0476b85bfbdfc6e6.CfnClusterPropsKubernetesNetworkConfig\\"));
+ struct.set(\\"data\\", data);
+
+ final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
+ obj.set(\\"$jsii.struct\\", struct);
+
+ return obj;
+ }
+
+ @Override
+ public final boolean equals(final Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ CfnClusterPropsKubernetesNetworkConfig.Jsii$Proxy that = (CfnClusterPropsKubernetesNetworkConfig.Jsii$Proxy) o;
+
+ return this.serviceIpv4Cidr != null ? this.serviceIpv4Cidr.equals(that.serviceIpv4Cidr) : that.serviceIpv4Cidr == null;
+ }
+
+ @Override
+ public final int hashCode() {
+ int result = this.serviceIpv4Cidr != null ? this.serviceIpv4Cidr.hashCode() : 0;
+ return result;
+ }
+ }
+}
+",
+ "src/main/java/com/my/module/CfnClusterPropsResourcesVpcConfig.java" => "package com.my.module;
+
+/**
+ * An object that represents the virtual private cloud (VPC) configuration to use for an Amazon EKS cluster.
+ */
+@javax.annotation.Generated(value = \\"jsii-pacmak/1.35.0 (build 6ebef96)\\", date = \\"2021-10-04T17:28:49.903Z\\")
+@software.amazon.jsii.Jsii(module = com.my.module.$Module.class, fqn = \\"1bc04b5291c26a46d918139138b992d2de976d6851d0893b0476b85bfbdfc6e6.CfnClusterPropsResourcesVpcConfig\\")
+@software.amazon.jsii.Jsii.Proxy(CfnClusterPropsResourcesVpcConfig.Jsii$Proxy.class)
+public interface CfnClusterPropsResourcesVpcConfig extends software.amazon.jsii.JsiiSerializable {
+
+ /**
+ * Specify subnets for your Amazon EKS worker nodes.
+ *
+ * Amazon EKS creates cross-account elastic network interfaces in these subnets to allow communication between your worker nodes and the Kubernetes control plane.
+ */
+ @org.jetbrains.annotations.NotNull java.util.List getSubnetIds();
+
+ /**
+ * Set this value to true to enable private access for your cluster's Kubernetes API server endpoint.
+ *
+ * If you enable private access, Kubernetes API requests from within your cluster's VPC use the private VPC endpoint. The default value for this parameter is false , which disables private access for your Kubernetes API server. If you disable private access and you have worker nodes or AWS Fargate pods in the cluster, then ensure that publicAccessCidrs includes the necessary CIDR blocks for communication with the worker nodes or Fargate pods.
+ */
+ default @org.jetbrains.annotations.Nullable java.lang.Boolean getEndpointPrivateAccess() {
+ return null;
+ }
+
+ /**
+ * Set this value to false to disable public access to your cluster's Kubernetes API server endpoint.
+ *
+ * If you disable public access, your cluster's Kubernetes API server can only receive requests from within the cluster VPC. The default value for this parameter is true , which enables public access for your Kubernetes API server.
+ */
+ default @org.jetbrains.annotations.Nullable java.lang.Boolean getEndpointPublicAccess() {
+ return null;
+ }
+
+ /**
+ * The CIDR blocks that are allowed access to your cluster's public Kubernetes API server endpoint.
+ *
+ * Communication to the endpoint from addresses outside of the CIDR blocks that you specify is denied. The default value is 0.0.0.0/0 . If you've disabled private endpoint access and you have worker nodes or AWS Fargate pods in the cluster, then ensure that you specify the necessary CIDR blocks.
+ */
+ default @org.jetbrains.annotations.Nullable java.util.List getPublicAccessCidrs() {
+ return null;
+ }
+
+ /**
+ * Specify one or more security groups for the cross-account elastic network interfaces that Amazon EKS creates to use to allow communication between your worker nodes and the Kubernetes control plane.
+ *
+ * If you don't specify a security group, the default security group for your VPC is used.
+ */
+ default @org.jetbrains.annotations.Nullable java.util.List getSecurityGroupIds() {
+ return null;
+ }
+
+ /**
+ * @return a {@link Builder} of {@link CfnClusterPropsResourcesVpcConfig}
+ */
+ static Builder builder() {
+ return new Builder();
+ }
+ /**
+ * A builder for {@link CfnClusterPropsResourcesVpcConfig}
+ */
+ public static final class Builder implements software.amazon.jsii.Builder {
+ private java.util.List subnetIds;
+ private java.lang.Boolean endpointPrivateAccess;
+ private java.lang.Boolean endpointPublicAccess;
+ private java.util.List publicAccessCidrs;
+ private java.util.List securityGroupIds;
+
+ /**
+ * Sets the value of {@link CfnClusterPropsResourcesVpcConfig#getSubnetIds}
+ * @param subnetIds Specify subnets for your Amazon EKS worker nodes. This parameter is required.
+ * Amazon EKS creates cross-account elastic network interfaces in these subnets to allow communication between your worker nodes and the Kubernetes control plane.
+ * @return {@code this}
+ */
+ public Builder subnetIds(java.util.List subnetIds) {
+ this.subnetIds = subnetIds;
+ return this;
+ }
+
+ /**
+ * Sets the value of {@link CfnClusterPropsResourcesVpcConfig#getEndpointPrivateAccess}
+ * @param endpointPrivateAccess Set this value to true to enable private access for your cluster's Kubernetes API server endpoint.
+ * If you enable private access, Kubernetes API requests from within your cluster's VPC use the private VPC endpoint. The default value for this parameter is false , which disables private access for your Kubernetes API server. If you disable private access and you have worker nodes or AWS Fargate pods in the cluster, then ensure that publicAccessCidrs includes the necessary CIDR blocks for communication with the worker nodes or Fargate pods.
+ * @return {@code this}
+ */
+ public Builder endpointPrivateAccess(java.lang.Boolean endpointPrivateAccess) {
+ this.endpointPrivateAccess = endpointPrivateAccess;
+ return this;
+ }
+
+ /**
+ * Sets the value of {@link CfnClusterPropsResourcesVpcConfig#getEndpointPublicAccess}
+ * @param endpointPublicAccess Set this value to false to disable public access to your cluster's Kubernetes API server endpoint.
+ * If you disable public access, your cluster's Kubernetes API server can only receive requests from within the cluster VPC. The default value for this parameter is true , which enables public access for your Kubernetes API server.
+ * @return {@code this}
+ */
+ public Builder endpointPublicAccess(java.lang.Boolean endpointPublicAccess) {
+ this.endpointPublicAccess = endpointPublicAccess;
+ return this;
+ }
+
+ /**
+ * Sets the value of {@link CfnClusterPropsResourcesVpcConfig#getPublicAccessCidrs}
+ * @param publicAccessCidrs The CIDR blocks that are allowed access to your cluster's public Kubernetes API server endpoint.
+ * Communication to the endpoint from addresses outside of the CIDR blocks that you specify is denied. The default value is 0.0.0.0/0 . If you've disabled private endpoint access and you have worker nodes or AWS Fargate pods in the cluster, then ensure that you specify the necessary CIDR blocks.
+ * @return {@code this}
+ */
+ public Builder publicAccessCidrs(java.util.List publicAccessCidrs) {
+ this.publicAccessCidrs = publicAccessCidrs;
+ return this;
+ }
+
+ /**
+ * Sets the value of {@link CfnClusterPropsResourcesVpcConfig#getSecurityGroupIds}
+ * @param securityGroupIds Specify one or more security groups for the cross-account elastic network interfaces that Amazon EKS creates to use to allow communication between your worker nodes and the Kubernetes control plane.
+ * If you don't specify a security group, the default security group for your VPC is used.
+ * @return {@code this}
+ */
+ public Builder securityGroupIds(java.util.List securityGroupIds) {
+ this.securityGroupIds = securityGroupIds;
+ return this;
+ }
+
+ /**
+ * Builds the configured instance.
+ * @return a new instance of {@link CfnClusterPropsResourcesVpcConfig}
+ * @throws NullPointerException if any required attribute was not provided
+ */
+ @Override
+ public CfnClusterPropsResourcesVpcConfig build() {
+ return new Jsii$Proxy(subnetIds, endpointPrivateAccess, endpointPublicAccess, publicAccessCidrs, securityGroupIds);
+ }
+ }
+
+ /**
+ * An implementation for {@link CfnClusterPropsResourcesVpcConfig}
+ */
+ @software.amazon.jsii.Internal
+ final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements CfnClusterPropsResourcesVpcConfig {
+ private final java.util.List subnetIds;
+ private final java.lang.Boolean endpointPrivateAccess;
+ private final java.lang.Boolean endpointPublicAccess;
+ private final java.util.List publicAccessCidrs;
+ private final java.util.List securityGroupIds;
+
+ /**
+ * Constructor that initializes the object based on values retrieved from the JsiiObject.
+ * @param objRef Reference to the JSII managed object.
+ */
+ protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
+ super(objRef);
+ this.subnetIds = software.amazon.jsii.Kernel.get(this, \\"subnetIds\\", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(java.lang.String.class)));
+ this.endpointPrivateAccess = software.amazon.jsii.Kernel.get(this, \\"endpointPrivateAccess\\", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
+ this.endpointPublicAccess = software.amazon.jsii.Kernel.get(this, \\"endpointPublicAccess\\", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
+ this.publicAccessCidrs = software.amazon.jsii.Kernel.get(this, \\"publicAccessCidrs\\", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(java.lang.String.class)));
+ this.securityGroupIds = software.amazon.jsii.Kernel.get(this, \\"securityGroupIds\\", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(java.lang.String.class)));
+ }
+
+ /**
+ * Constructor that initializes the object based on literal property values passed by the {@link Builder}.
+ */
+ protected Jsii$Proxy(final java.util.List subnetIds, final java.lang.Boolean endpointPrivateAccess, final java.lang.Boolean endpointPublicAccess, final java.util.List publicAccessCidrs, final java.util.List securityGroupIds) {
+ super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
+ this.subnetIds = java.util.Objects.requireNonNull(subnetIds, \\"subnetIds is required\\");
+ this.endpointPrivateAccess = endpointPrivateAccess;
+ this.endpointPublicAccess = endpointPublicAccess;
+ this.publicAccessCidrs = publicAccessCidrs;
+ this.securityGroupIds = securityGroupIds;
+ }
+
+ @Override
+ public final java.util.List getSubnetIds() {
+ return this.subnetIds;
+ }
+
+ @Override
+ public final java.lang.Boolean getEndpointPrivateAccess() {
+ return this.endpointPrivateAccess;
+ }
+
+ @Override
+ public final java.lang.Boolean getEndpointPublicAccess() {
+ return this.endpointPublicAccess;
+ }
+
+ @Override
+ public final java.util.List getPublicAccessCidrs() {
+ return this.publicAccessCidrs;
+ }
+
+ @Override
+ public final java.util.List getSecurityGroupIds() {
+ return this.securityGroupIds;
+ }
+
+ @Override
+ @software.amazon.jsii.Internal
+ public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
+ final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
+ final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
+
+ data.set(\\"subnetIds\\", om.valueToTree(this.getSubnetIds()));
+ if (this.getEndpointPrivateAccess() != null) {
+ data.set(\\"endpointPrivateAccess\\", om.valueToTree(this.getEndpointPrivateAccess()));
+ }
+ if (this.getEndpointPublicAccess() != null) {
+ data.set(\\"endpointPublicAccess\\", om.valueToTree(this.getEndpointPublicAccess()));
+ }
+ if (this.getPublicAccessCidrs() != null) {
+ data.set(\\"publicAccessCidrs\\", om.valueToTree(this.getPublicAccessCidrs()));
+ }
+ if (this.getSecurityGroupIds() != null) {
+ data.set(\\"securityGroupIds\\", om.valueToTree(this.getSecurityGroupIds()));
+ }
+
+ final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
+ struct.set(\\"fqn\\", om.valueToTree(\\"1bc04b5291c26a46d918139138b992d2de976d6851d0893b0476b85bfbdfc6e6.CfnClusterPropsResourcesVpcConfig\\"));
+ struct.set(\\"data\\", data);
+
+ final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
+ obj.set(\\"$jsii.struct\\", struct);
+
+ return obj;
+ }
+
+ @Override
+ public final boolean equals(final Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ CfnClusterPropsResourcesVpcConfig.Jsii$Proxy that = (CfnClusterPropsResourcesVpcConfig.Jsii$Proxy) o;
+
+ if (!subnetIds.equals(that.subnetIds)) return false;
+ if (this.endpointPrivateAccess != null ? !this.endpointPrivateAccess.equals(that.endpointPrivateAccess) : that.endpointPrivateAccess != null) return false;
+ if (this.endpointPublicAccess != null ? !this.endpointPublicAccess.equals(that.endpointPublicAccess) : that.endpointPublicAccess != null) return false;
+ if (this.publicAccessCidrs != null ? !this.publicAccessCidrs.equals(that.publicAccessCidrs) : that.publicAccessCidrs != null) return false;
+ return this.securityGroupIds != null ? this.securityGroupIds.equals(that.securityGroupIds) : that.securityGroupIds == null;
+ }
+
+ @Override
+ public final int hashCode() {
+ int result = this.subnetIds.hashCode();
+ result = 31 * result + (this.endpointPrivateAccess != null ? this.endpointPrivateAccess.hashCode() : 0);
+ result = 31 * result + (this.endpointPublicAccess != null ? this.endpointPublicAccess.hashCode() : 0);
+ result = 31 * result + (this.publicAccessCidrs != null ? this.publicAccessCidrs.hashCode() : 0);
+ result = 31 * result + (this.securityGroupIds != null ? this.securityGroupIds.hashCode() : 0);
+ return result;
+ }
+ }
+}
+",
+ "src/main/java/com/my/module/CfnClusterPropsTags.java" => "package com.my.module;
+
+/**
+ */
+@javax.annotation.Generated(value = \\"jsii-pacmak/1.35.0 (build 6ebef96)\\", date = \\"2021-10-04T17:28:49.905Z\\")
+@software.amazon.jsii.Jsii(module = com.my.module.$Module.class, fqn = \\"1bc04b5291c26a46d918139138b992d2de976d6851d0893b0476b85bfbdfc6e6.CfnClusterPropsTags\\")
+@software.amazon.jsii.Jsii.Proxy(CfnClusterPropsTags.Jsii$Proxy.class)
+public interface CfnClusterPropsTags extends software.amazon.jsii.JsiiSerializable {
+
+ /**
+ */
+ @org.jetbrains.annotations.NotNull java.lang.String getKey();
+
+ /**
+ */
+ @org.jetbrains.annotations.NotNull java.lang.String getValue();
+
+ /**
+ * @return a {@link Builder} of {@link CfnClusterPropsTags}
+ */
+ static Builder builder() {
+ return new Builder();
+ }
+ /**
+ * A builder for {@link CfnClusterPropsTags}
+ */
+ public static final class Builder implements software.amazon.jsii.Builder {
+ private java.lang.String key;
+ private java.lang.String value;
+
+ /**
+ * Sets the value of {@link CfnClusterPropsTags#getKey}
+ * @param key the value to be set. This parameter is required.
+ * @return {@code this}
+ */
+ public Builder key(java.lang.String key) {
+ this.key = key;
+ return this;
+ }
+
+ /**
+ * Sets the value of {@link CfnClusterPropsTags#getValue}
+ * @param value the value to be set. This parameter is required.
+ * @return {@code this}
+ */
+ public Builder value(java.lang.String value) {
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Builds the configured instance.
+ * @return a new instance of {@link CfnClusterPropsTags}
+ * @throws NullPointerException if any required attribute was not provided
+ */
+ @Override
+ public CfnClusterPropsTags build() {
+ return new Jsii$Proxy(key, value);
+ }
+ }
+
+ /**
+ * An implementation for {@link CfnClusterPropsTags}
+ */
+ @software.amazon.jsii.Internal
+ final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements CfnClusterPropsTags {
+ private final java.lang.String key;
+ private final java.lang.String value;
+
+ /**
+ * Constructor that initializes the object based on values retrieved from the JsiiObject.
+ * @param objRef Reference to the JSII managed object.
+ */
+ protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
+ super(objRef);
+ this.key = software.amazon.jsii.Kernel.get(this, \\"key\\", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
+ this.value = software.amazon.jsii.Kernel.get(this, \\"value\\", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
+ }
+
+ /**
+ * Constructor that initializes the object based on literal property values passed by the {@link Builder}.
+ */
+ protected Jsii$Proxy(final java.lang.String key, final java.lang.String value) {
+ super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
+ this.key = java.util.Objects.requireNonNull(key, \\"key is required\\");
+ this.value = java.util.Objects.requireNonNull(value, \\"value is required\\");
+ }
+
+ @Override
+ public final java.lang.String getKey() {
+ return this.key;
+ }
+
+ @Override
+ public final java.lang.String getValue() {
+ return this.value;
+ }
+
+ @Override
+ @software.amazon.jsii.Internal
+ public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
+ final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
+ final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
+
+ data.set(\\"key\\", om.valueToTree(this.getKey()));
+ data.set(\\"value\\", om.valueToTree(this.getValue()));
+
+ final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
+ struct.set(\\"fqn\\", om.valueToTree(\\"1bc04b5291c26a46d918139138b992d2de976d6851d0893b0476b85bfbdfc6e6.CfnClusterPropsTags\\"));
+ struct.set(\\"data\\", data);
+
+ final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
+ obj.set(\\"$jsii.struct\\", struct);
+
+ return obj;
+ }
+
+ @Override
+ public final boolean equals(final Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ CfnClusterPropsTags.Jsii$Proxy that = (CfnClusterPropsTags.Jsii$Proxy) o;
+
+ if (!key.equals(that.key)) return false;
+ return this.value.equals(that.value);
+ }
+
+ @Override
+ public final int hashCode() {
+ int result = this.key.hashCode();
+ result = 31 * result + (this.value.hashCode());
+ return result;
+ }
+ }
+}
+",
+ "src/main/java/com/my/module/EncryptionConfigEntry.java" => "package com.my.module;
+
+/**
+ * The encryption configuration for the cluster.
+ */
+@javax.annotation.Generated(value = \\"jsii-pacmak/1.35.0 (build 6ebef96)\\", date = \\"2021-10-04T17:28:49.905Z\\")
+@software.amazon.jsii.Jsii(module = com.my.module.$Module.class, fqn = \\"1bc04b5291c26a46d918139138b992d2de976d6851d0893b0476b85bfbdfc6e6.EncryptionConfigEntry\\")
+@software.amazon.jsii.Jsii.Proxy(EncryptionConfigEntry.Jsii$Proxy.class)
+public interface EncryptionConfigEntry extends software.amazon.jsii.JsiiSerializable {
+
+ /**
+ */
+ default @org.jetbrains.annotations.Nullable com.my.module.Provider getProvider() {
+ return null;
+ }
+
+ /**
+ * Specifies the resources to be encrypted.
+ *
+ * The only supported value is \\"secrets\\".
+ */
+ default @org.jetbrains.annotations.Nullable java.util.List getResources() {
+ return null;
+ }
+
+ /**
+ * @return a {@link Builder} of {@link EncryptionConfigEntry}
+ */
+ static Builder builder() {
+ return new Builder();
+ }
+ /**
+ * A builder for {@link EncryptionConfigEntry}
+ */
+ public static final class Builder implements software.amazon.jsii.Builder {
+ private com.my.module.Provider provider;
+ private java.util.List resources;
+
+ /**
+ * Sets the value of {@link EncryptionConfigEntry#getProvider}
+ * @param provider the value to be set.
+ * @return {@code this}
+ */
+ public Builder provider(com.my.module.Provider provider) {
+ this.provider = provider;
+ return this;
+ }
+
+ /**
+ * Sets the value of {@link EncryptionConfigEntry#getResources}
+ * @param resources Specifies the resources to be encrypted.
+ * The only supported value is \\"secrets\\".
+ * @return {@code this}
+ */
+ public Builder resources(java.util.List resources) {
+ this.resources = resources;
+ return this;
+ }
+
+ /**
+ * Builds the configured instance.
+ * @return a new instance of {@link EncryptionConfigEntry}
+ * @throws NullPointerException if any required attribute was not provided
+ */
+ @Override
+ public EncryptionConfigEntry build() {
+ return new Jsii$Proxy(provider, resources);
+ }
+ }
+
+ /**
+ * An implementation for {@link EncryptionConfigEntry}
+ */
+ @software.amazon.jsii.Internal
+ final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements EncryptionConfigEntry {
+ private final com.my.module.Provider provider;
+ private final java.util.List resources;
+
+ /**
+ * Constructor that initializes the object based on values retrieved from the JsiiObject.
+ * @param objRef Reference to the JSII managed object.
+ */
+ protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
+ super(objRef);
+ this.provider = software.amazon.jsii.Kernel.get(this, \\"provider\\", software.amazon.jsii.NativeType.forClass(com.my.module.Provider.class));
+ this.resources = software.amazon.jsii.Kernel.get(this, \\"resources\\", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(java.lang.String.class)));
+ }
+
+ /**
+ * Constructor that initializes the object based on literal property values passed by the {@link Builder}.
+ */
+ protected Jsii$Proxy(final com.my.module.Provider provider, final java.util.List resources) {
+ super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
+ this.provider = provider;
+ this.resources = resources;
+ }
+
+ @Override
+ public final com.my.module.Provider getProvider() {
+ return this.provider;
+ }
+
+ @Override
+ public final java.util.List getResources() {
+ return this.resources;
+ }
+
+ @Override
+ @software.amazon.jsii.Internal
+ public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
+ final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
+ final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
+
+ if (this.getProvider() != null) {
+ data.set(\\"provider\\", om.valueToTree(this.getProvider()));
+ }
+ if (this.getResources() != null) {
+ data.set(\\"resources\\", om.valueToTree(this.getResources()));
+ }
+
+ final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
+ struct.set(\\"fqn\\", om.valueToTree(\\"1bc04b5291c26a46d918139138b992d2de976d6851d0893b0476b85bfbdfc6e6.EncryptionConfigEntry\\"));
+ struct.set(\\"data\\", data);
+
+ final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
+ obj.set(\\"$jsii.struct\\", struct);
+
+ return obj;
+ }
+
+ @Override
+ public final boolean equals(final Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ EncryptionConfigEntry.Jsii$Proxy that = (EncryptionConfigEntry.Jsii$Proxy) o;
+
+ if (this.provider != null ? !this.provider.equals(that.provider) : that.provider != null) return false;
+ return this.resources != null ? this.resources.equals(that.resources) : that.resources == null;
+ }
+
+ @Override
+ public final int hashCode() {
+ int result = this.provider != null ? this.provider.hashCode() : 0;
+ result = 31 * result + (this.resources != null ? this.resources.hashCode() : 0);
+ return result;
+ }
+ }
+}
+",
+ "src/main/java/com/my/module/KubernetesApiAccessEntry.java" => "package com.my.module;
+
+/**
+ */
+@javax.annotation.Generated(value = \\"jsii-pacmak/1.35.0 (build 6ebef96)\\", date = \\"2021-10-04T17:28:49.906Z\\")
+@software.amazon.jsii.Jsii(module = com.my.module.$Module.class, fqn = \\"1bc04b5291c26a46d918139138b992d2de976d6851d0893b0476b85bfbdfc6e6.KubernetesApiAccessEntry\\")
+@software.amazon.jsii.Jsii.Proxy(KubernetesApiAccessEntry.Jsii$Proxy.class)
+public interface KubernetesApiAccessEntry extends software.amazon.jsii.JsiiSerializable {
+
+ /**
+ */
+ default @org.jetbrains.annotations.Nullable java.lang.String getArn() {
+ return null;
+ }
+
+ /**
+ */
+ default @org.jetbrains.annotations.Nullable java.util.List getGroups() {
+ return null;
+ }
+
+ /**
+ */
+ default @org.jetbrains.annotations.Nullable java.lang.String getUsername() {
+ return null;
+ }
+
+ /**
+ * @return a {@link Builder} of {@link KubernetesApiAccessEntry}
+ */
+ static Builder builder() {
+ return new Builder();
+ }
+ /**
+ * A builder for {@link KubernetesApiAccessEntry}
+ */
+ public static final class Builder implements software.amazon.jsii.Builder {
+ private java.lang.String arn;
+ private java.util.List groups;
+ private java.lang.String username;
+
+ /**
+ * Sets the value of {@link KubernetesApiAccessEntry#getArn}
+ * @param arn the value to be set.
+ * @return {@code this}
+ */
+ public Builder arn(java.lang.String arn) {
+ this.arn = arn;
+ return this;
+ }
+
+ /**
+ * Sets the value of {@link KubernetesApiAccessEntry#getGroups}
+ * @param groups the value to be set.
+ * @return {@code this}
+ */
+ public Builder groups(java.util.List groups) {
+ this.groups = groups;
+ return this;
+ }
+
+ /**
+ * Sets the value of {@link KubernetesApiAccessEntry#getUsername}
+ * @param username the value to be set.
+ * @return {@code this}
+ */
+ public Builder username(java.lang.String username) {
+ this.username = username;
+ return this;
+ }
+
+ /**
+ * Builds the configured instance.
+ * @return a new instance of {@link KubernetesApiAccessEntry}
+ * @throws NullPointerException if any required attribute was not provided
+ */
+ @Override
+ public KubernetesApiAccessEntry build() {
+ return new Jsii$Proxy(arn, groups, username);
+ }
+ }
+
+ /**
+ * An implementation for {@link KubernetesApiAccessEntry}
+ */
+ @software.amazon.jsii.Internal
+ final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements KubernetesApiAccessEntry {
+ private final java.lang.String arn;
+ private final java.util.List groups;
+ private final java.lang.String username;
+
+ /**
+ * Constructor that initializes the object based on values retrieved from the JsiiObject.
+ * @param objRef Reference to the JSII managed object.
+ */
+ protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
+ super(objRef);
+ this.arn = software.amazon.jsii.Kernel.get(this, \\"arn\\", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
+ this.groups = software.amazon.jsii.Kernel.get(this, \\"groups\\", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(java.lang.String.class)));
+ this.username = software.amazon.jsii.Kernel.get(this, \\"username\\", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
+ }
+
+ /**
+ * Constructor that initializes the object based on literal property values passed by the {@link Builder}.
+ */
+ protected Jsii$Proxy(final java.lang.String arn, final java.util.List groups, final java.lang.String username) {
+ super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
+ this.arn = arn;
+ this.groups = groups;
+ this.username = username;
+ }
+
+ @Override
+ public final java.lang.String getArn() {
+ return this.arn;
+ }
+
+ @Override
+ public final java.util.List getGroups() {
+ return this.groups;
+ }
+
+ @Override
+ public final java.lang.String getUsername() {
+ return this.username;
+ }
+
+ @Override
+ @software.amazon.jsii.Internal
+ public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
+ final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
+ final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
+
+ if (this.getArn() != null) {
+ data.set(\\"arn\\", om.valueToTree(this.getArn()));
+ }
+ if (this.getGroups() != null) {
+ data.set(\\"groups\\", om.valueToTree(this.getGroups()));
+ }
+ if (this.getUsername() != null) {
+ data.set(\\"username\\", om.valueToTree(this.getUsername()));
+ }
+
+ final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
+ struct.set(\\"fqn\\", om.valueToTree(\\"1bc04b5291c26a46d918139138b992d2de976d6851d0893b0476b85bfbdfc6e6.KubernetesApiAccessEntry\\"));
+ struct.set(\\"data\\", data);
+
+ final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
+ obj.set(\\"$jsii.struct\\", struct);
+
+ return obj;
+ }
+
+ @Override
+ public final boolean equals(final Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ KubernetesApiAccessEntry.Jsii$Proxy that = (KubernetesApiAccessEntry.Jsii$Proxy) o;
+
+ if (this.arn != null ? !this.arn.equals(that.arn) : that.arn != null) return false;
+ if (this.groups != null ? !this.groups.equals(that.groups) : that.groups != null) return false;
+ return this.username != null ? this.username.equals(that.username) : that.username == null;
+ }
+
+ @Override
+ public final int hashCode() {
+ int result = this.arn != null ? this.arn.hashCode() : 0;
+ result = 31 * result + (this.groups != null ? this.groups.hashCode() : 0);
+ result = 31 * result + (this.username != null ? this.username.hashCode() : 0);
+ return result;
+ }
+ }
+}
+",
+ "src/main/java/com/my/module/Provider.java" => "package com.my.module;
+
+/**
+ * AWS Key Management Service (AWS KMS) customer master key (CMK).
+ *
+ * Either the ARN or the alias can be used.
+ */
+@javax.annotation.Generated(value = \\"jsii-pacmak/1.35.0 (build 6ebef96)\\", date = \\"2021-10-04T17:28:49.906Z\\")
+@software.amazon.jsii.Jsii(module = com.my.module.$Module.class, fqn = \\"1bc04b5291c26a46d918139138b992d2de976d6851d0893b0476b85bfbdfc6e6.Provider\\")
+@software.amazon.jsii.Jsii.Proxy(Provider.Jsii$Proxy.class)
+public interface Provider extends software.amazon.jsii.JsiiSerializable {
+
+ /**
+ * Amazon Resource Name (ARN) or alias of the customer master key (CMK).
+ *
+ * The CMK must be symmetric, created in the same region as the cluster, and if the CMK was created in a different account, the user must have access to the CMK.
+ */
+ default @org.jetbrains.annotations.Nullable java.lang.String getKeyArn() {
+ return null;
+ }
+
+ /**
+ * @return a {@link Builder} of {@link Provider}
+ */
+ static Builder builder() {
+ return new Builder();
+ }
+ /**
+ * A builder for {@link Provider}
+ */
+ public static final class Builder implements software.amazon.jsii.Builder {
+ private java.lang.String keyArn;
+
+ /**
+ * Sets the value of {@link Provider#getKeyArn}
+ * @param keyArn Amazon Resource Name (ARN) or alias of the customer master key (CMK).
+ * The CMK must be symmetric, created in the same region as the cluster, and if the CMK was created in a different account, the user must have access to the CMK.
+ * @return {@code this}
+ */
+ public Builder keyArn(java.lang.String keyArn) {
+ this.keyArn = keyArn;
+ return this;
+ }
+
+ /**
+ * Builds the configured instance.
+ * @return a new instance of {@link Provider}
+ * @throws NullPointerException if any required attribute was not provided
+ */
+ @Override
+ public Provider build() {
+ return new Jsii$Proxy(keyArn);
+ }
+ }
+
+ /**
+ * An implementation for {@link Provider}
+ */
+ @software.amazon.jsii.Internal
+ final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements Provider {
+ private final java.lang.String keyArn;
+
+ /**
+ * Constructor that initializes the object based on values retrieved from the JsiiObject.
+ * @param objRef Reference to the JSII managed object.
+ */
+ protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
+ super(objRef);
+ this.keyArn = software.amazon.jsii.Kernel.get(this, \\"keyArn\\", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
+ }
+
+ /**
+ * Constructor that initializes the object based on literal property values passed by the {@link Builder}.
+ */
+ protected Jsii$Proxy(final java.lang.String keyArn) {
+ super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
+ this.keyArn = keyArn;
+ }
+
+ @Override
+ public final java.lang.String getKeyArn() {
+ return this.keyArn;
+ }
+
+ @Override
+ @software.amazon.jsii.Internal
+ public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
+ final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
+ final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
+
+ if (this.getKeyArn() != null) {
+ data.set(\\"keyArn\\", om.valueToTree(this.getKeyArn()));
+ }
+
+ final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
+ struct.set(\\"fqn\\", om.valueToTree(\\"1bc04b5291c26a46d918139138b992d2de976d6851d0893b0476b85bfbdfc6e6.Provider\\"));
+ struct.set(\\"data\\", data);
+
+ final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
+ obj.set(\\"$jsii.struct\\", struct);
+
+ return obj;
+ }
+
+ @Override
+ public final boolean equals(final Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ Provider.Jsii$Proxy that = (Provider.Jsii$Proxy) o;
+
+ return this.keyArn != null ? this.keyArn.equals(that.keyArn) : that.keyArn == null;
+ }
+
+ @Override
+ public final int hashCode() {
+ int result = this.keyArn != null ? this.keyArn.hashCode() : 0;
+ return result;
+ }
+ }
+}
+",
+ "src/main/resources/com/my/module/$Module.txt" => "1bc04b5291c26a46d918139138b992d2de976d6851d0893b0476b85bfbdfc6e6.CfnCluster=com.my.module.CfnCluster
+1bc04b5291c26a46d918139138b992d2de976d6851d0893b0476b85bfbdfc6e6.CfnClusterProps=com.my.module.CfnClusterProps
+1bc04b5291c26a46d918139138b992d2de976d6851d0893b0476b85bfbdfc6e6.CfnClusterPropsKubernetesApiAccess=com.my.module.CfnClusterPropsKubernetesApiAccess
+1bc04b5291c26a46d918139138b992d2de976d6851d0893b0476b85bfbdfc6e6.CfnClusterPropsKubernetesNetworkConfig=com.my.module.CfnClusterPropsKubernetesNetworkConfig
+1bc04b5291c26a46d918139138b992d2de976d6851d0893b0476b85bfbdfc6e6.CfnClusterPropsResourcesVpcConfig=com.my.module.CfnClusterPropsResourcesVpcConfig
+1bc04b5291c26a46d918139138b992d2de976d6851d0893b0476b85bfbdfc6e6.CfnClusterPropsTags=com.my.module.CfnClusterPropsTags
+1bc04b5291c26a46d918139138b992d2de976d6851d0893b0476b85bfbdfc6e6.EncryptionConfigEntry=com.my.module.EncryptionConfigEntry
+1bc04b5291c26a46d918139138b992d2de976d6851d0893b0476b85bfbdfc6e6.KubernetesApiAccessEntry=com.my.module.KubernetesApiAccessEntry
+1bc04b5291c26a46d918139138b992d2de976d6851d0893b0476b85bfbdfc6e6.Provider=com.my.module.Provider
+",
+}
+`;
+
+exports[`golang 1`] = `
+Map {
+ "AWSQS::EKS::Cluster/AWSQS::EKS::Cluster/CfnCluster.cs" => "using Amazon.JSII.Runtime.Deputy;
+
+#pragma warning disable CS0672,CS0809,CS1591
+
+namespace AWSQS::EKS::Cluster
+{
+ /// A CloudFormation \`AWSQS::EKS::Cluster\`.
+ ///
+ /// CloudformationResource: AWSQS::EKS::Cluster
+ ///
+ /// Link: https://github.com/aws-quickstart/quickstart-amazon-eks-cluster-resource-provider.git
+ ///
+ [JsiiClass(nativeType: typeof(AWSQS::EKS::Cluster.CfnCluster), fullyQualifiedName: \\"1bc04b5291c26a46d918139138b992d2de976d6851d0893b0476b85bfbdfc6e6.CfnCluster\\", parametersJson: \\"[{\\\\\\"docs\\\\\\":{\\\\\\"summary\\\\\\":\\\\\\"- scope in which this resource is defined.\\\\\\"},\\\\\\"name\\\\\\":\\\\\\"scope\\\\\\",\\\\\\"type\\\\\\":{\\\\\\"fqn\\\\\\":\\\\\\"@aws-cdk/core.Construct\\\\\\"}},{\\\\\\"docs\\\\\\":{\\\\\\"summary\\\\\\":\\\\\\"- scoped id of the resource.\\\\\\"},\\\\\\"name\\\\\\":\\\\\\"id\\\\\\",\\\\\\"type\\\\\\":{\\\\\\"primitive\\\\\\":\\\\\\"string\\\\\\"}},{\\\\\\"docs\\\\\\":{\\\\\\"summary\\\\\\":\\\\\\"- resource properties.\\\\\\"},\\\\\\"name\\\\\\":\\\\\\"props\\\\\\",\\\\\\"type\\\\\\":{\\\\\\"fqn\\\\\\":\\\\\\"1bc04b5291c26a46d918139138b992d2de976d6851d0893b0476b85bfbdfc6e6.CfnClusterProps\\\\\\"}}]\\")]
+ public class CfnCluster : Amazon.CDK.CfnResource
+ {
+ /// Create a new \`AWSQS::EKS::Cluster\`.
+ /// - scope in which this resource is defined.
+ /// - scoped id of the resource.
+ /// - resource properties.
+ public CfnCluster(Amazon.CDK.Construct scope, string id, AWSQS::EKS::Cluster.ICfnClusterProps props): base(new DeputyProps(new object?[]{scope, id, props}))
+ {
+ }
+
+ /// Used by jsii to construct an instance of this class from a Javascript-owned object reference
+ /// The Javascript-owned object reference
+ [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
+ protected CfnCluster(ByRefValue reference): base(reference)
+ {
+ }
+
+ /// Used by jsii to construct an instance of this class from DeputyProps
+ /// The deputy props
+ [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
+ protected CfnCluster(DeputyProps props): base(props)
+ {
+ }
+
+ /// The CloudFormation resource type name for this resource class.
+ [JsiiProperty(name: \\"CFN_RESOURCE_TYPE_NAME\\", typeJson: \\"{\\\\\\"primitive\\\\\\":\\\\\\"string\\\\\\"}\\")]
+ public static string CFN_RESOURCE_TYPE_NAME
+ {
+ get;
+ }
+ = GetStaticProperty(typeof(AWSQS::EKS::Cluster.CfnCluster))!;
+
+ /// Attribute \`AWSQS::EKS::Cluster.Arn\`.
+ ///
+ /// Link: https://github.com/aws-quickstart/quickstart-amazon-eks-cluster-resource-provider.git
+ ///
+ [JsiiProperty(name: \\"attrArn\\", typeJson: \\"{\\\\\\"primitive\\\\\\":\\\\\\"string\\\\\\"}\\")]
+ public virtual string AttrArn
+ {
+ get => GetInstanceProperty()!;
+ }
+
+ /// Attribute \`AWSQS::EKS::Cluster.CertificateAuthorityData\`.
+ ///
+ /// Link: https://github.com/aws-quickstart/quickstart-amazon-eks-cluster-resource-provider.git
+ ///
+ [JsiiProperty(name: \\"attrCertificateAuthorityData\\", typeJson: \\"{\\\\\\"primitive\\\\\\":\\\\\\"string\\\\\\"}\\")]
+ public virtual string AttrCertificateAuthorityData
+ {
+ get => GetInstanceProperty()!;
+ }
+
+ /// Attribute \`AWSQS::EKS::Cluster.ClusterSecurityGroupId\`.
+ ///
+ /// Link: https://github.com/aws-quickstart/quickstart-amazon-eks-cluster-resource-provider.git
+ ///
+ [JsiiProperty(name: \\"attrClusterSecurityGroupId\\", typeJson: \\"{\\\\\\"primitive\\\\\\":\\\\\\"string\\\\\\"}\\")]
+ public virtual string AttrClusterSecurityGroupId
+ {
+ get => GetInstanceProperty()!;
+ }
+
+ /// Attribute \`AWSQS::EKS::Cluster.EncryptionConfigKeyArn\`.
+ ///
+ /// Link: https://github.com/aws-quickstart/quickstart-amazon-eks-cluster-resource-provider.git
+ ///
+ [JsiiProperty(name: \\"attrEncryptionConfigKeyArn\\", typeJson: \\"{\\\\\\"primitive\\\\\\":\\\\\\"string\\\\\\"}\\")]
+ public virtual string AttrEncryptionConfigKeyArn
+ {
+ get => GetInstanceProperty()!;
+ }
+
+ /// Attribute \`AWSQS::EKS::Cluster.Endpoint\`.
+ ///
+ /// Link: https://github.com/aws-quickstart/quickstart-amazon-eks-cluster-resource-provider.git
+ ///
+ [JsiiProperty(name: \\"attrEndpoint\\", typeJson: \\"{\\\\\\"primitive\\\\\\":\\\\\\"string\\\\\\"}\\")]
+ public virtual string AttrEndpoint
+ {
+ get => GetInstanceProperty()!;
+ }
+
+ /// Attribute \`AWSQS::EKS::Cluster.OIDCIssuerURL\`.
+ ///
+ /// Link: https://github.com/aws-quickstart/quickstart-amazon-eks-cluster-resource-provider.git
+ ///
+ [JsiiProperty(name: \\"attrOIDCIssuerURL\\", typeJson: \\"{\\\\\\"primitive\\\\\\":\\\\\\"string\\\\\\"}\\")]
+ public virtual string AttrOIDCIssuerURL
+ {
+ get => GetInstanceProperty()!;
+ }
+
+ /// \`AWSQS::EKS::Cluster.KubernetesApiAccess\`.
+ ///
+ /// Link: https://github.com/aws-quickstart/quickstart-amazon-eks-cluster-resource-provider.git
+ ///
+ [JsiiProperty(name: \\"kubernetesApiAccess\\", typeJson: \\"{\\\\\\"primitive\\\\\\":\\\\\\"any\\\\\\"}\\")]
+ public virtual object KubernetesApiAccess
+ {
+ get => GetInstanceProperty