diff --git a/build-logic/src/main/kotlin/cloudshift/awscdkdsl/build/dsl/model/type/MethodGenerator.kt b/build-logic/src/main/kotlin/cloudshift/awscdkdsl/build/dsl/model/type/MethodGenerator.kt index cc650c1f78..789c67b89a 100644 --- a/build-logic/src/main/kotlin/cloudshift/awscdkdsl/build/dsl/model/type/MethodGenerator.kt +++ b/build-logic/src/main/kotlin/cloudshift/awscdkdsl/build/dsl/model/type/MethodGenerator.kt @@ -15,7 +15,6 @@ import com.squareup.kotlinpoet.ParameterSpec import com.squareup.kotlinpoet.ParameterizedTypeName import com.squareup.kotlinpoet.TypeName import com.squareup.kotlinpoet.UNIT -import net.pearx.kasechange.toCamelCase internal class MethodGenerator( model: CdkModel, @@ -115,9 +114,13 @@ internal data class MethodSpec( ) { val name: String - get() = when (cdkName) { - "set", "get" -> cdkName - else -> cdkName.removePrefix("set").removePrefix("get").toCamelCase() + get() = when { + cdkName.length < 4 -> cdkName + (cdkName.startsWith("get") || cdkName.startsWith("set")) && cdkName[3].isUpperCase() -> cdkName.removePrefix( + "set", + ).removePrefix("get").replaceFirstChar(Char::lowercaseChar) + + else -> cdkName } data class Parameter( diff --git a/gradle.properties b/gradle.properties index e7073749e6..ea6df462a8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ group = io.cloudshiftdev.kotlin-cdk-wrapper -version = 0.7.10 +version = 0.8.0 kotlin.code.style=official diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e32ebc5982..e32a010639 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -44,7 +44,7 @@ caffeine = { module = "com.github.ben-manes.caffeine:caffeine", version = "3.1.8 aspectj-tools = { module = "org.aspectj:aspectjtools", version = "1.9.21.2" } guava = { module = "com.google.guava:guava", version = "32.1.3-jre" } -awscdk = { module = "software.amazon.awscdk:aws-cdk-lib", version = "2.134.0" } +awscdk = { module = "software.amazon.awscdk:aws-cdk-lib", version = "2.139.0" } awscdk-constructs = { module = "software.constructs:constructs", version = "10.3.0" } squareup-kotlinpoet = { module = "com.squareup:kotlinpoet", version = "1.16.0" } javaparser-core = { module = "com.github.javaparser:javaparser-core", version = "3.25.9" } diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/CfnJson.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/CfnJson.kt index c9dcb75a3b..d3dd867b0f 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/CfnJson.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/CfnJson.kt @@ -76,7 +76,7 @@ public open class CfnJson( * This is required in case someone JSON.stringifys an object which references this object. * Otherwise, we'll get a cyclic JSON reference. */ - public open fun toJson(): String = unwrap(this).toJSON() + public open fun toJSON(): String = unwrap(this).toJSON() /** * An Fn::GetAtt to the JSON object passed through `value` and resolved during synthesis. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/CfnTypeActivation.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/CfnTypeActivation.kt index dbe7b365e1..97d285bf08 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/CfnTypeActivation.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/CfnTypeActivation.kt @@ -24,7 +24,7 @@ import software.constructs.Construct as SoftwareConstructsConstruct * [SetTypeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html) * to specify configuration properties for the extension. For more information, see [Configuring * extensions at the account - * level](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration) + * level](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-private.html#registry-set-configuration) * in the *CloudFormation User Guide* . * * Example: diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/DockerImage.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/DockerImage.kt index 4c46f86c7d..7d5bcbf06a 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/DockerImage.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/DockerImage.kt @@ -96,7 +96,7 @@ public open class DockerImage( * * @return The overridden image name if set or image hash name in that order */ - public open fun toJson(): String = unwrap(this).toJSON() + public open fun toJSON(): String = unwrap(this).toJSON() public companion object { public fun fromBuild(path: String): DockerImage = diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/Intrinsic.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/Intrinsic.kt index f7d3077019..5d55645d79 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/Intrinsic.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/Intrinsic.kt @@ -63,7 +63,7 @@ public open class Intrinsic( * * Called automatically when JSON.stringify() is called on a Token. */ - public open fun toJson(): Any = unwrap(this).toJSON() + public open fun toJSON(): Any = unwrap(this).toJSON() /** * Convert an instance of this Token to a string list. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/JsonNull.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/JsonNull.kt index cab4a5c1c3..08edb8c3ec 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/JsonNull.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/JsonNull.kt @@ -43,7 +43,7 @@ public open class JsonNull( /** * Obtains the JSON representation of this object (`null`). */ - public open fun toJson(): Any = unwrap(this).toJSON() + public open fun toJSON(): Any = unwrap(this).toJSON() public companion object { public val INSTANCE: JsonNull = JsonNull.wrap(software.amazon.awscdk.JsonNull.INSTANCE) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/assertions/Matcher.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/assertions/Matcher.kt index 8ac101ad58..66cf09e468 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/assertions/Matcher.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/assertions/Matcher.kt @@ -21,17 +21,21 @@ import kotlin.String * // "MyBar": { * // "Type": "Foo::Bar", * // "Properties": { - * // "Fred": ["Flob", "Cat"] + * // "Fred": { + * // "Wobble": ["Flob", "Flib"], + * // } * // } * // } * // } * // } * // The following will NOT throw an assertion error * template.hasResourceProperties("Foo::Bar", Map.of( - * "Fred", Match.arrayWith(List.of("Flob")))); + * "Fred", Map.of( + * "Wobble", List.of(Match.anyValue(), Match.anyValue())))); * // The following will throw an assertion error - * template.hasResourceProperties("Foo::Bar", Match.objectLike(Map.of( - * "Fred", Match.arrayWith(List.of("Wobble"))))); + * template.hasResourceProperties("Foo::Bar", Map.of( + * "Fred", Map.of( + * "Wimble", Match.anyValue()))); * ``` */ public abstract class Matcher( diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/assertions/Tags.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/assertions/Tags.kt new file mode 100644 index 0000000000..e655e52459 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/assertions/Tags.kt @@ -0,0 +1,76 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.assertions + +import io.cloudshiftdev.awscdk.Stack +import io.cloudshiftdev.awscdk.common.CdkObject +import kotlin.Any +import kotlin.String +import kotlin.collections.Map + +/** + * Allows assertions on the tags associated with a synthesized CDK stack's manifest. + * + * Stack tags are not part of the synthesized template, so can only be + * checked from the manifest in this manner. + * + * Example: + * + * ``` + * Tags tags = Tags.fromStack(stack); + * // using a default 'objectLike' Matcher + * tags.hasValues(Map.of( + * "tag-name", "tag-value")); + * // ... with Matchers embedded + * tags.hasValues(Map.of( + * "tag-name", Match.stringLikeRegexp("value"))); + * // or another object Matcher at the top level + * tags.hasValues(Match.objectEquals(Map.of( + * "tag-name", Match.anyValue()))); + * ``` + */ +public open class Tags( + cdkObject: software.amazon.awscdk.assertions.Tags, +) : CdkObject(cdkObject) { + /** + * Get the tags associated with the manifest. + * + * This will be an empty object if + * no tags were supplied. + * + * @return The tags associated with the stack's synthesized manifest. + */ + public open fun all(): Map = unwrap(this).all() ?: emptyMap() + + /** + * Assert that the there are no tags associated with the synthesized CDK Stack's manifest. + * + * This is a convenience method over `hasValues(Match.exact({}))`, and is + * present because the more obvious method of detecting no tags + * (`Match.absent()`) will not work. Manifests default the tag set to an empty + * object. + */ + public open fun hasNone() { + unwrap(this).hasNone() + } + + /** + * Assert that the given Matcher or object matches the tags associated with the synthesized CDK + * Stack's manifest. + * + * @param tags the expected set of tags. + */ + public open fun hasValues(tags: Any) { + unwrap(this).hasValues(tags) + } + + public companion object { + public fun fromStack(stack: Stack): Tags = + software.amazon.awscdk.assertions.Tags.fromStack(stack.let(Stack::unwrap)).let(Tags::wrap) + + internal fun wrap(cdkObject: software.amazon.awscdk.assertions.Tags): Tags = Tags(cdkObject) + + internal fun unwrap(wrapped: Tags): software.amazon.awscdk.assertions.Tags = wrapped.cdkObject + as software.amazon.awscdk.assertions.Tags + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/assertions/Template.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/assertions/Template.kt index dc20c66496..edd85088f0 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/assertions/Template.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/assertions/Template.kt @@ -275,22 +275,22 @@ public open class Template( /** * The CloudFormation template deserialized into an object. */ - public open fun toJson(): Map = unwrap(this).toJSON() ?: emptyMap() + public open fun toJSON(): Map = unwrap(this).toJSON() ?: emptyMap() public companion object { - public fun fromJson(template: Map): Template = + public fun fromJSON(template: Map): Template = software.amazon.awscdk.assertions.Template.fromJSON(template.mapValues{CdkObjectWrappers.unwrap(it.value)}).let(Template::wrap) - public fun fromJson(template: Map, templateParsingOptions: TemplateParsingOptions): + public fun fromJSON(template: Map, templateParsingOptions: TemplateParsingOptions): Template = software.amazon.awscdk.assertions.Template.fromJSON(template.mapValues{CdkObjectWrappers.unwrap(it.value)}, templateParsingOptions.let(TemplateParsingOptions::unwrap)).let(Template::wrap) @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("d131d7b560d1035ceeff84d745856250480d5b0c05095dfd8ded5d13b0f88a8b") - public fun fromJson(template: Map, + @JvmName("cbffcbc7046e55838a1d5fb9e7a97ebb37d7a2374f5094e37c1eb7be3ab5e424") + public fun fromJSON(template: Map, templateParsingOptions: TemplateParsingOptions.Builder.() -> Unit): Template = - fromJson(template, TemplateParsingOptions(templateParsingOptions)) + fromJSON(template, TemplateParsingOptions(templateParsingOptions)) public fun fromStack(stack: Stack): Template = software.amazon.awscdk.assertions.Template.fromStack(stack.let(Stack::unwrap)).let(Template::wrap) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/aws_apigatewayv2_integrations/WebSocketAwsIntegration.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/aws_apigatewayv2_integrations/WebSocketAwsIntegration.kt index 39ca461770..36284c304b 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/aws_apigatewayv2_integrations/WebSocketAwsIntegration.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/aws_apigatewayv2_integrations/WebSocketAwsIntegration.kt @@ -2,7 +2,9 @@ package io.cloudshiftdev.awscdk.aws_apigatewayv2_integrations +import io.cloudshiftdev.awscdk.Duration import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.services.apigatewayv2.ContentHandling import io.cloudshiftdev.awscdk.services.apigatewayv2.PassthroughBehavior import io.cloudshiftdev.awscdk.services.apigatewayv2.WebSocketRouteIntegration import io.cloudshiftdev.awscdk.services.apigatewayv2.WebSocketRouteIntegrationBindOptions @@ -82,6 +84,16 @@ public open class WebSocketAwsIntegration( */ @CdkDslMarker public interface Builder { + /** + * Specifies how to handle response payload content type conversions. + * + * Default: - The response payload will be passed through from the integration response to + * the route response or method response without modification. + * + * @param contentHandling Specifies how to handle response payload content type conversions. + */ + public fun contentHandling(contentHandling: ContentHandling) + /** * Specifies the credentials role required for the integration. * @@ -156,6 +168,18 @@ public open class WebSocketAwsIntegration( * @param templateSelectionExpression The template selection expression for the integration. */ public fun templateSelectionExpression(templateSelectionExpression: String) + + /** + * The maximum amount of time an integration will run before it returns without a response. + * + * Must be between 50 milliseconds and 29 seconds. + * + * Default: Duration.seconds(29) + * + * @param timeout The maximum amount of time an integration will run before it returns without a + * response. + */ + public fun timeout(timeout: Duration) } private class BuilderImpl( @@ -165,6 +189,18 @@ public open class WebSocketAwsIntegration( software.amazon.awscdk.aws_apigatewayv2_integrations.WebSocketAwsIntegration.Builder = software.amazon.awscdk.aws_apigatewayv2_integrations.WebSocketAwsIntegration.Builder.create(id) + /** + * Specifies how to handle response payload content type conversions. + * + * Default: - The response payload will be passed through from the integration response to + * the route response or method response without modification. + * + * @param contentHandling Specifies how to handle response payload content type conversions. + */ + override fun contentHandling(contentHandling: ContentHandling) { + cdkBuilder.contentHandling(contentHandling.let(ContentHandling::unwrap)) + } + /** * Specifies the credentials role required for the integration. * @@ -254,6 +290,20 @@ public open class WebSocketAwsIntegration( cdkBuilder.templateSelectionExpression(templateSelectionExpression) } + /** + * The maximum amount of time an integration will run before it returns without a response. + * + * Must be between 50 milliseconds and 29 seconds. + * + * Default: Duration.seconds(29) + * + * @param timeout The maximum amount of time an integration will run before it returns without a + * response. + */ + override fun timeout(timeout: Duration) { + cdkBuilder.timeout(timeout.let(Duration::unwrap)) + } + public fun build(): software.amazon.awscdk.aws_apigatewayv2_integrations.WebSocketAwsIntegration = cdkBuilder.build() } diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/aws_apigatewayv2_integrations/WebSocketAwsIntegrationProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/aws_apigatewayv2_integrations/WebSocketAwsIntegrationProps.kt index e011fee5fd..8c22c95d22 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/aws_apigatewayv2_integrations/WebSocketAwsIntegrationProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/aws_apigatewayv2_integrations/WebSocketAwsIntegrationProps.kt @@ -2,9 +2,11 @@ package io.cloudshiftdev.awscdk.aws_apigatewayv2_integrations +import io.cloudshiftdev.awscdk.Duration import io.cloudshiftdev.awscdk.common.CdkDslMarker import io.cloudshiftdev.awscdk.common.CdkObject import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import io.cloudshiftdev.awscdk.services.apigatewayv2.ContentHandling import io.cloudshiftdev.awscdk.services.apigatewayv2.PassthroughBehavior import io.cloudshiftdev.awscdk.services.iam.IRole import kotlin.String @@ -12,7 +14,7 @@ import kotlin.Unit import kotlin.collections.Map /** - * Props for AWS type integration for an HTTP Api. + * Props for AWS type integration for a WebSocket Api. * * Example: * @@ -44,6 +46,15 @@ import kotlin.collections.Map * ``` */ public interface WebSocketAwsIntegrationProps { + /** + * Specifies how to handle response payload content type conversions. + * + * Default: - The response payload will be passed through from the integration response to + * the route response or method response without modification. + */ + public fun contentHandling(): ContentHandling? = + unwrap(this).getContentHandling()?.let(ContentHandling::wrap) + /** * Specifies the credentials role required for the integration. * @@ -104,11 +115,25 @@ public interface WebSocketAwsIntegrationProps { */ public fun templateSelectionExpression(): String? = unwrap(this).getTemplateSelectionExpression() + /** + * The maximum amount of time an integration will run before it returns without a response. + * + * Must be between 50 milliseconds and 29 seconds. + * + * Default: Duration.seconds(29) + */ + public fun timeout(): Duration? = unwrap(this).getTimeout()?.let(Duration::wrap) + /** * A builder for [WebSocketAwsIntegrationProps] */ @CdkDslMarker public interface Builder { + /** + * @param contentHandling Specifies how to handle response payload content type conversions. + */ + public fun contentHandling(contentHandling: ContentHandling) + /** * @param credentialsRole Specifies the credentials role required for the integration. */ @@ -154,6 +179,13 @@ public interface WebSocketAwsIntegrationProps { * @param templateSelectionExpression The template selection expression for the integration. */ public fun templateSelectionExpression(templateSelectionExpression: String) + + /** + * @param timeout The maximum amount of time an integration will run before it returns without a + * response. + * Must be between 50 milliseconds and 29 seconds. + */ + public fun timeout(timeout: Duration) } private class BuilderImpl : Builder { @@ -161,6 +193,13 @@ public interface WebSocketAwsIntegrationProps { software.amazon.awscdk.aws_apigatewayv2_integrations.WebSocketAwsIntegrationProps.Builder = software.amazon.awscdk.aws_apigatewayv2_integrations.WebSocketAwsIntegrationProps.builder() + /** + * @param contentHandling Specifies how to handle response payload content type conversions. + */ + override fun contentHandling(contentHandling: ContentHandling) { + cdkBuilder.contentHandling(contentHandling.let(ContentHandling::unwrap)) + } + /** * @param credentialsRole Specifies the credentials role required for the integration. */ @@ -221,6 +260,15 @@ public interface WebSocketAwsIntegrationProps { cdkBuilder.templateSelectionExpression(templateSelectionExpression) } + /** + * @param timeout The maximum amount of time an integration will run before it returns without a + * response. + * Must be between 50 milliseconds and 29 seconds. + */ + override fun timeout(timeout: Duration) { + cdkBuilder.timeout(timeout.let(Duration::unwrap)) + } + public fun build(): software.amazon.awscdk.aws_apigatewayv2_integrations.WebSocketAwsIntegrationProps = cdkBuilder.build() @@ -229,6 +277,15 @@ public interface WebSocketAwsIntegrationProps { private class Wrapper( cdkObject: software.amazon.awscdk.aws_apigatewayv2_integrations.WebSocketAwsIntegrationProps, ) : CdkObject(cdkObject), WebSocketAwsIntegrationProps { + /** + * Specifies how to handle response payload content type conversions. + * + * Default: - The response payload will be passed through from the integration response to + * the route response or method response without modification. + */ + override fun contentHandling(): ContentHandling? = + unwrap(this).getContentHandling()?.let(ContentHandling::wrap) + /** * Specifies the credentials role required for the integration. * @@ -289,6 +346,15 @@ public interface WebSocketAwsIntegrationProps { */ override fun templateSelectionExpression(): String? = unwrap(this).getTemplateSelectionExpression() + + /** + * The maximum amount of time an integration will run before it returns without a response. + * + * Must be between 50 milliseconds and 29 seconds. + * + * Default: Duration.seconds(29) + */ + override fun timeout(): Duration? = unwrap(this).getTimeout()?.let(Duration::wrap) } public companion object { diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/aws_apigatewayv2_integrations/WebSocketLambdaIntegration.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/aws_apigatewayv2_integrations/WebSocketLambdaIntegration.kt index 29cfd5e271..7cb6c61c1e 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/aws_apigatewayv2_integrations/WebSocketLambdaIntegration.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/aws_apigatewayv2_integrations/WebSocketLambdaIntegration.kt @@ -2,13 +2,17 @@ package io.cloudshiftdev.awscdk.aws_apigatewayv2_integrations +import io.cloudshiftdev.awscdk.Duration +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.services.apigatewayv2.ContentHandling import io.cloudshiftdev.awscdk.services.apigatewayv2.WebSocketRouteIntegration import io.cloudshiftdev.awscdk.services.apigatewayv2.WebSocketRouteIntegrationBindOptions import io.cloudshiftdev.awscdk.services.apigatewayv2.WebSocketRouteIntegrationConfig -import io.cloudshiftdev.awscdk.services.lambda.IFunction import kotlin.String import kotlin.Unit import kotlin.jvm.JvmName +import io.cloudshiftdev.awscdk.services.lambda.IFunction as CloudshiftdevAwscdkServicesLambdaIFunction +import software.amazon.awscdk.services.lambda.IFunction as AmazonAwscdkServicesLambdaIFunction /** * Lambda WebSocket Integration. @@ -32,9 +36,25 @@ import kotlin.jvm.JvmName public open class WebSocketLambdaIntegration( cdkObject: software.amazon.awscdk.aws_apigatewayv2_integrations.WebSocketLambdaIntegration, ) : WebSocketRouteIntegration(cdkObject) { - public constructor(id: String, handler: IFunction) : + public constructor(id: String, handler: CloudshiftdevAwscdkServicesLambdaIFunction) : this(software.amazon.awscdk.aws_apigatewayv2_integrations.WebSocketLambdaIntegration(id, - handler.let(IFunction::unwrap)) + handler.let(CloudshiftdevAwscdkServicesLambdaIFunction::unwrap)) + ) + + public constructor( + id: String, + handler: CloudshiftdevAwscdkServicesLambdaIFunction, + props: WebSocketLambdaIntegrationProps, + ) : this(software.amazon.awscdk.aws_apigatewayv2_integrations.WebSocketLambdaIntegration(id, + handler.let(CloudshiftdevAwscdkServicesLambdaIFunction::unwrap), + props.let(WebSocketLambdaIntegrationProps::unwrap)) + ) + + public constructor( + id: String, + handler: CloudshiftdevAwscdkServicesLambdaIFunction, + props: WebSocketLambdaIntegrationProps.Builder.() -> Unit, + ) : this(id, handler, WebSocketLambdaIntegrationProps(props) ) /** @@ -56,7 +76,85 @@ public open class WebSocketLambdaIntegration( public override fun bind(options: WebSocketRouteIntegrationBindOptions.Builder.() -> Unit): WebSocketRouteIntegrationConfig = bind(WebSocketRouteIntegrationBindOptions(options)) + /** + * A fluent builder for + * [io.cloudshiftdev.awscdk.aws_apigatewayv2_integrations.WebSocketLambdaIntegration]. + */ + @CdkDslMarker + public interface Builder { + /** + * Specifies how to handle response payload content type conversions. + * + * Default: - The response payload will be passed through from the integration response to + * the route response or method response without modification. + * + * @param contentHandling Specifies how to handle response payload content type conversions. + */ + public fun contentHandling(contentHandling: ContentHandling) + + /** + * The maximum amount of time an integration will run before it returns without a response. + * + * Must be between 50 milliseconds and 29 seconds. + * + * Default: Duration.seconds(29) + * + * @param timeout The maximum amount of time an integration will run before it returns without a + * response. + */ + public fun timeout(timeout: Duration) + } + + private class BuilderImpl( + id: String, + handler: AmazonAwscdkServicesLambdaIFunction, + ) : Builder { + private val cdkBuilder: + software.amazon.awscdk.aws_apigatewayv2_integrations.WebSocketLambdaIntegration.Builder = + software.amazon.awscdk.aws_apigatewayv2_integrations.WebSocketLambdaIntegration.Builder.create(id, + handler) + + /** + * Specifies how to handle response payload content type conversions. + * + * Default: - The response payload will be passed through from the integration response to + * the route response or method response without modification. + * + * @param contentHandling Specifies how to handle response payload content type conversions. + */ + override fun contentHandling(contentHandling: ContentHandling) { + cdkBuilder.contentHandling(contentHandling.let(ContentHandling::unwrap)) + } + + /** + * The maximum amount of time an integration will run before it returns without a response. + * + * Must be between 50 milliseconds and 29 seconds. + * + * Default: Duration.seconds(29) + * + * @param timeout The maximum amount of time an integration will run before it returns without a + * response. + */ + override fun timeout(timeout: Duration) { + cdkBuilder.timeout(timeout.let(Duration::unwrap)) + } + + public fun build(): + software.amazon.awscdk.aws_apigatewayv2_integrations.WebSocketLambdaIntegration = + cdkBuilder.build() + } + public companion object { + public operator fun invoke( + id: String, + handler: CloudshiftdevAwscdkServicesLambdaIFunction, + block: Builder.() -> Unit = {}, + ): WebSocketLambdaIntegration { + val builderImpl = BuilderImpl(id, CloudshiftdevAwscdkServicesLambdaIFunction.unwrap(handler)) + return WebSocketLambdaIntegration(builderImpl.apply(block).build()) + } + internal fun wrap(cdkObject: software.amazon.awscdk.aws_apigatewayv2_integrations.WebSocketLambdaIntegration): WebSocketLambdaIntegration = WebSocketLambdaIntegration(cdkObject) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/aws_apigatewayv2_integrations/WebSocketLambdaIntegrationProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/aws_apigatewayv2_integrations/WebSocketLambdaIntegrationProps.kt new file mode 100644 index 0000000000..c9f2f5b7dc --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/aws_apigatewayv2_integrations/WebSocketLambdaIntegrationProps.kt @@ -0,0 +1,132 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.aws_apigatewayv2_integrations + +import io.cloudshiftdev.awscdk.Duration +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import io.cloudshiftdev.awscdk.services.apigatewayv2.ContentHandling +import kotlin.Unit + +/** + * Props for Lambda type integration for a WebSocket Api. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.*; + * import io.cloudshiftdev.awscdk.services.apigatewayv2.*; + * import io.cloudshiftdev.awscdk.aws_apigatewayv2_integrations.*; + * WebSocketLambdaIntegrationProps webSocketLambdaIntegrationProps = + * WebSocketLambdaIntegrationProps.builder() + * .contentHandling(ContentHandling.CONVERT_TO_BINARY) + * .timeout(Duration.minutes(30)) + * .build(); + * ``` + */ +public interface WebSocketLambdaIntegrationProps { + /** + * Specifies how to handle response payload content type conversions. + * + * Default: - The response payload will be passed through from the integration response to + * the route response or method response without modification. + */ + public fun contentHandling(): ContentHandling? = + unwrap(this).getContentHandling()?.let(ContentHandling::wrap) + + /** + * The maximum amount of time an integration will run before it returns without a response. + * + * Must be between 50 milliseconds and 29 seconds. + * + * Default: Duration.seconds(29) + */ + public fun timeout(): Duration? = unwrap(this).getTimeout()?.let(Duration::wrap) + + /** + * A builder for [WebSocketLambdaIntegrationProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param contentHandling Specifies how to handle response payload content type conversions. + */ + public fun contentHandling(contentHandling: ContentHandling) + + /** + * @param timeout The maximum amount of time an integration will run before it returns without a + * response. + * Must be between 50 milliseconds and 29 seconds. + */ + public fun timeout(timeout: Duration) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.aws_apigatewayv2_integrations.WebSocketLambdaIntegrationProps.Builder + = + software.amazon.awscdk.aws_apigatewayv2_integrations.WebSocketLambdaIntegrationProps.builder() + + /** + * @param contentHandling Specifies how to handle response payload content type conversions. + */ + override fun contentHandling(contentHandling: ContentHandling) { + cdkBuilder.contentHandling(contentHandling.let(ContentHandling::unwrap)) + } + + /** + * @param timeout The maximum amount of time an integration will run before it returns without a + * response. + * Must be between 50 milliseconds and 29 seconds. + */ + override fun timeout(timeout: Duration) { + cdkBuilder.timeout(timeout.let(Duration::unwrap)) + } + + public fun build(): + software.amazon.awscdk.aws_apigatewayv2_integrations.WebSocketLambdaIntegrationProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.aws_apigatewayv2_integrations.WebSocketLambdaIntegrationProps, + ) : CdkObject(cdkObject), WebSocketLambdaIntegrationProps { + /** + * Specifies how to handle response payload content type conversions. + * + * Default: - The response payload will be passed through from the integration response to + * the route response or method response without modification. + */ + override fun contentHandling(): ContentHandling? = + unwrap(this).getContentHandling()?.let(ContentHandling::wrap) + + /** + * The maximum amount of time an integration will run before it returns without a response. + * + * Must be between 50 milliseconds and 29 seconds. + * + * Default: Duration.seconds(29) + */ + override fun timeout(): Duration? = unwrap(this).getTimeout()?.let(Duration::wrap) + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): WebSocketLambdaIntegrationProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.aws_apigatewayv2_integrations.WebSocketLambdaIntegrationProps): + WebSocketLambdaIntegrationProps = CdkObjectWrappers.wrap(cdkObject) as? + WebSocketLambdaIntegrationProps ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: WebSocketLambdaIntegrationProps): + software.amazon.awscdk.aws_apigatewayv2_integrations.WebSocketLambdaIntegrationProps = + (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.aws_apigatewayv2_integrations.WebSocketLambdaIntegrationProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/AwsCustomResource.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/AwsCustomResource.kt index cdfab58a6f..9af8487d80 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/AwsCustomResource.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/AwsCustomResource.kt @@ -33,25 +33,20 @@ import software.constructs.Construct as SoftwareConstructsConstruct * Example: * * ``` - * AwsCustomResource getParameter = AwsCustomResource.Builder.create(this, - * "AssociateVPCWithHostedZone") - * .onCreate(AwsSdkCall.builder() - * .assumedRoleArn("arn:aws:iam::OTHERACCOUNT:role/CrossAccount/ManageHostedZoneConnections") - * .service("Route53") - * .action("AssociateVPCWithHostedZone") + * AwsCustomResource getParameter = AwsCustomResource.Builder.create(this, "GetParameter") + * .onUpdate(AwsSdkCall.builder() // will also be called for a CREATE event + * .service("SSM") + * .action("GetParameter") * .parameters(Map.of( - * "HostedZoneId", "hz-123", - * "VPC", Map.of( - * "VPCId", "vpc-123", - * "VPCRegion", "region-for-vpc"))) - * .physicalResourceId(PhysicalResourceId.of("${vpcStack.SharedVpc.VpcId}-${vpcStack.Region}-${PrivateHostedZone.HostedZoneId}")) - * .build()) - * //Will ignore any resource and use the assumedRoleArn as resource and 'sts:AssumeRole' for - * service:action + * "Name", "my-parameter", + * "WithDecryption", true)) + * .physicalResourceId(PhysicalResourceId.of(Date.now().toString())).build()) * .policy(AwsCustomResourcePolicy.fromSdkCalls(SdkCallsPolicyOptions.builder() * .resources(AwsCustomResourcePolicy.ANY_RESOURCE) * .build())) * .build(); + * // Use the value in another construct with + * getParameter.getResponseField("Parameter.Value"); * ``` */ public open class AwsCustomResource( diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/AwsCustomResourceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/AwsCustomResourceProps.kt index 5390a4cfdb..6718943b06 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/AwsCustomResourceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/AwsCustomResourceProps.kt @@ -25,25 +25,20 @@ import kotlin.jvm.JvmName * Example: * * ``` - * AwsCustomResource getParameter = AwsCustomResource.Builder.create(this, - * "AssociateVPCWithHostedZone") - * .onCreate(AwsSdkCall.builder() - * .assumedRoleArn("arn:aws:iam::OTHERACCOUNT:role/CrossAccount/ManageHostedZoneConnections") - * .service("Route53") - * .action("AssociateVPCWithHostedZone") + * AwsCustomResource getParameter = AwsCustomResource.Builder.create(this, "GetParameter") + * .onUpdate(AwsSdkCall.builder() // will also be called for a CREATE event + * .service("SSM") + * .action("GetParameter") * .parameters(Map.of( - * "HostedZoneId", "hz-123", - * "VPC", Map.of( - * "VPCId", "vpc-123", - * "VPCRegion", "region-for-vpc"))) - * .physicalResourceId(PhysicalResourceId.of("${vpcStack.SharedVpc.VpcId}-${vpcStack.Region}-${PrivateHostedZone.HostedZoneId}")) - * .build()) - * //Will ignore any resource and use the assumedRoleArn as resource and 'sts:AssumeRole' for - * service:action + * "Name", "my-parameter", + * "WithDecryption", true)) + * .physicalResourceId(PhysicalResourceId.of(Date.now().toString())).build()) * .policy(AwsCustomResourcePolicy.fromSdkCalls(SdkCallsPolicyOptions.builder() * .resources(AwsCustomResourcePolicy.ANY_RESOURCE) * .build())) * .build(); + * // Use the value in another construct with + * getParameter.getResponseField("Parameter.Value"); * ``` */ public interface AwsCustomResourceProps { diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/AwsSdkCall.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/AwsSdkCall.kt index af2fd1a7e8..3bae5ea1a4 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/AwsSdkCall.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/AwsSdkCall.kt @@ -77,6 +77,23 @@ public interface AwsSdkCall { */ public fun ignoreErrorCodesMatching(): String? = unwrap(this).getIgnoreErrorCodesMatching() + /** + * A property used to configure logging during lambda function execution. + * + * Note: The default Logging configuration is all. This configuration will enable logging on all + * logged data + * in the lambda handler. This includes: + * + * * The event object that is received by the lambda handler + * * The response received after making a API call + * * The response object that the lambda handler will return + * * SDK versioning information + * * Caught and uncaught errors + * + * Default: Logging.all() + */ + public fun logging(): Logging? = unwrap(this).getLogging()?.let(Logging::wrap) + /** * Restrict the data returned by the custom resource to specific paths in the API response. * @@ -173,6 +190,20 @@ public interface AwsSdkCall { */ public fun ignoreErrorCodesMatching(ignoreErrorCodesMatching: String) + /** + * @param logging A property used to configure logging during lambda function execution. + * Note: The default Logging configuration is all. This configuration will enable logging on all + * logged data + * in the lambda handler. This includes: + * + * * The event object that is received by the lambda handler + * * The response received after making a API call + * * The response object that the lambda handler will return + * * SDK versioning information + * * Caught and uncaught errors + */ + public fun logging(logging: Logging) + /** * @param outputPaths Restrict the data returned by the custom resource to specific paths in the * API response. @@ -272,6 +303,22 @@ public interface AwsSdkCall { cdkBuilder.ignoreErrorCodesMatching(ignoreErrorCodesMatching) } + /** + * @param logging A property used to configure logging during lambda function execution. + * Note: The default Logging configuration is all. This configuration will enable logging on all + * logged data + * in the lambda handler. This includes: + * + * * The event object that is received by the lambda handler + * * The response received after making a API call + * * The response object that the lambda handler will return + * * SDK versioning information + * * Caught and uncaught errors + */ + override fun logging(logging: Logging) { + cdkBuilder.logging(logging.let(Logging::unwrap)) + } + /** * @param outputPaths Restrict the data returned by the custom resource to specific paths in the * API response. @@ -386,6 +433,23 @@ public interface AwsSdkCall { */ override fun ignoreErrorCodesMatching(): String? = unwrap(this).getIgnoreErrorCodesMatching() + /** + * A property used to configure logging during lambda function execution. + * + * Note: The default Logging configuration is all. This configuration will enable logging on all + * logged data + * in the lambda handler. This includes: + * + * * The event object that is received by the lambda handler + * * The response received after making a API call + * * The response object that the lambda handler will return + * * SDK versioning information + * * Caught and uncaught errors + * + * Default: Logging.all() + */ + override fun logging(): Logging? = unwrap(this).getLogging()?.let(Logging::wrap) + /** * Restrict the data returned by the custom resource to specific paths in the API response. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/LogOptions.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/LogOptions.kt new file mode 100644 index 0000000000..f5b9a0a47e --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/LogOptions.kt @@ -0,0 +1,140 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.customresources + +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import io.cloudshiftdev.awscdk.services.logs.ILogGroup +import io.cloudshiftdev.awscdk.services.stepfunctions.LogLevel +import kotlin.Boolean +import kotlin.Unit + +/** + * Log Options for the state machine. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.logs.*; + * import io.cloudshiftdev.awscdk.services.stepfunctions.*; + * import io.cloudshiftdev.awscdk.customresources.*; + * LogGroup logGroup; + * LogOptions logOptions = LogOptions.builder() + * .destination(logGroup) + * .includeExecutionData(false) + * .level(LogLevel.OFF) + * .build(); + * ``` + */ +public interface LogOptions { + /** + * The log group where the execution history events will be logged. + * + * Default: - a new log group will be created + */ + public fun destination(): ILogGroup? = unwrap(this).getDestination()?.let(ILogGroup::wrap) + + /** + * Determines whether execution data is included in your log. + * + * Default: - false + */ + public fun includeExecutionData(): Boolean? = unwrap(this).getIncludeExecutionData() + + /** + * Defines which category of execution history events are logged. + * + * Default: - ERROR + */ + public fun level(): LogLevel? = unwrap(this).getLevel()?.let(LogLevel::wrap) + + /** + * A builder for [LogOptions] + */ + @CdkDslMarker + public interface Builder { + /** + * @param destination The log group where the execution history events will be logged. + */ + public fun destination(destination: ILogGroup) + + /** + * @param includeExecutionData Determines whether execution data is included in your log. + */ + public fun includeExecutionData(includeExecutionData: Boolean) + + /** + * @param level Defines which category of execution history events are logged. + */ + public fun level(level: LogLevel) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.customresources.LogOptions.Builder = + software.amazon.awscdk.customresources.LogOptions.builder() + + /** + * @param destination The log group where the execution history events will be logged. + */ + override fun destination(destination: ILogGroup) { + cdkBuilder.destination(destination.let(ILogGroup::unwrap)) + } + + /** + * @param includeExecutionData Determines whether execution data is included in your log. + */ + override fun includeExecutionData(includeExecutionData: Boolean) { + cdkBuilder.includeExecutionData(includeExecutionData) + } + + /** + * @param level Defines which category of execution history events are logged. + */ + override fun level(level: LogLevel) { + cdkBuilder.level(level.let(LogLevel::unwrap)) + } + + public fun build(): software.amazon.awscdk.customresources.LogOptions = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.customresources.LogOptions, + ) : CdkObject(cdkObject), LogOptions { + /** + * The log group where the execution history events will be logged. + * + * Default: - a new log group will be created + */ + override fun destination(): ILogGroup? = unwrap(this).getDestination()?.let(ILogGroup::wrap) + + /** + * Determines whether execution data is included in your log. + * + * Default: - false + */ + override fun includeExecutionData(): Boolean? = unwrap(this).getIncludeExecutionData() + + /** + * Defines which category of execution history events are logged. + * + * Default: - ERROR + */ + override fun level(): LogLevel? = unwrap(this).getLevel()?.let(LogLevel::wrap) + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): LogOptions { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.customresources.LogOptions): LogOptions = + CdkObjectWrappers.wrap(cdkObject) as? LogOptions ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: LogOptions): software.amazon.awscdk.customresources.LogOptions = + (wrapped as CdkObject).cdkObject as software.amazon.awscdk.customresources.LogOptions + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/Logging.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/Logging.kt new file mode 100644 index 0000000000..7415c5f59a --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/Logging.kt @@ -0,0 +1,50 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.customresources + +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers + +/** + * A class used to configure Logging during AwsCustomResource SDK calls. + * + * Example: + * + * ``` + * AwsCustomResource getParameter = AwsCustomResource.Builder.create(this, "GetParameter") + * .onUpdate(AwsSdkCall.builder() + * .service("SSM") + * .action("GetParameter") + * .parameters(Map.of( + * "Name", "my-parameter", + * "WithDecryption", true)) + * .physicalResourceId(PhysicalResourceId.of(Date.now().toString())) + * .logging(Logging.withDataHidden()) + * .build()) + * .policy(AwsCustomResourcePolicy.fromSdkCalls(SdkCallsPolicyOptions.builder() + * .resources(AwsCustomResourcePolicy.ANY_RESOURCE) + * .build())) + * .build(); + * ``` + */ +public abstract class Logging( + cdkObject: software.amazon.awscdk.customresources.Logging, +) : CdkObject(cdkObject) { + private class Wrapper( + cdkObject: software.amazon.awscdk.customresources.Logging, + ) : Logging(cdkObject) + + public companion object { + public fun all(): Logging = + software.amazon.awscdk.customresources.Logging.all().let(Logging::wrap) + + public fun withDataHidden(): Logging = + software.amazon.awscdk.customresources.Logging.withDataHidden().let(Logging::wrap) + + internal fun wrap(cdkObject: software.amazon.awscdk.customresources.Logging): Logging = + CdkObjectWrappers.wrap(cdkObject) as? Logging ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: Logging): software.amazon.awscdk.customresources.Logging = (wrapped + as CdkObject).cdkObject as software.amazon.awscdk.customresources.Logging + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/LoggingProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/LoggingProps.kt new file mode 100644 index 0000000000..2ac069548b --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/LoggingProps.kt @@ -0,0 +1,81 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.customresources + +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Boolean +import kotlin.Unit + +/** + * Properties used to initialize Logging. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.customresources.*; + * LoggingProps loggingProps = LoggingProps.builder() + * .logApiResponseData(false) + * .build(); + * ``` + */ +public interface LoggingProps { + /** + * Whether or not to log data associated with the API call response. + * + * Default: true + */ + public fun logApiResponseData(): Boolean? = unwrap(this).getLogApiResponseData() + + /** + * A builder for [LoggingProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param logApiResponseData Whether or not to log data associated with the API call response. + */ + public fun logApiResponseData(logApiResponseData: Boolean) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.customresources.LoggingProps.Builder = + software.amazon.awscdk.customresources.LoggingProps.builder() + + /** + * @param logApiResponseData Whether or not to log data associated with the API call response. + */ + override fun logApiResponseData(logApiResponseData: Boolean) { + cdkBuilder.logApiResponseData(logApiResponseData) + } + + public fun build(): software.amazon.awscdk.customresources.LoggingProps = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.customresources.LoggingProps, + ) : CdkObject(cdkObject), LoggingProps { + /** + * Whether or not to log data associated with the API call response. + * + * Default: true + */ + override fun logApiResponseData(): Boolean? = unwrap(this).getLogApiResponseData() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): LoggingProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.customresources.LoggingProps): LoggingProps + = CdkObjectWrappers.wrap(cdkObject) as? LoggingProps ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: LoggingProps): software.amazon.awscdk.customresources.LoggingProps + = (wrapped as CdkObject).cdkObject as software.amazon.awscdk.customresources.LoggingProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/PhysicalResourceIdReference.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/PhysicalResourceIdReference.kt index 99a1a03457..c38f5f0617 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/PhysicalResourceIdReference.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/PhysicalResourceIdReference.kt @@ -62,7 +62,7 @@ public open class PhysicalResourceIdReference( /** * toJSON serialization to replace `PhysicalResourceIdReference` with a magic string. */ - public open fun toJson(): String = unwrap(this).toJSON() + public open fun toJSON(): String = unwrap(this).toJSON() public companion object { internal diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/Provider.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/Provider.kt index fbf323bcba..929f814eff 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/Provider.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/Provider.kt @@ -12,6 +12,7 @@ import io.cloudshiftdev.awscdk.services.kms.IKey import io.cloudshiftdev.awscdk.services.lambda.IFunction import io.cloudshiftdev.awscdk.services.logs.ILogGroup import io.cloudshiftdev.awscdk.services.logs.RetentionDays +import kotlin.Boolean import kotlin.String import kotlin.Unit import kotlin.collections.List @@ -82,6 +83,16 @@ public open class Provider( */ @CdkDslMarker public interface Builder { + /** + * Whether logging for the waiter state machine is disabled. + * + * Default: - false + * + * @param disableWaiterStateMachineLogging Whether logging for the waiter state machine is + * disabled. + */ + public fun disableWaiterStateMachineLogging(disableWaiterStateMachineLogging: Boolean) + /** * The AWS Lambda function to invoke in order to determine if the operation is complete. * @@ -261,6 +272,33 @@ public open class Provider( @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("84e3de72b4de6337b5fc519d0175efa34e4a5db977bc917b683cf8312d37469b") public fun vpcSubnets(vpcSubnets: SubnetSelection.Builder.() -> Unit) + + /** + * Defines what execution history events of the waiter state machine are logged and where they + * are logged. + * + * Default: - A default log group will be created if logging for the waiter state machine is + * enabled. + * + * @param waiterStateMachineLogOptions Defines what execution history events of the waiter state + * machine are logged and where they are logged. + */ + public fun waiterStateMachineLogOptions(waiterStateMachineLogOptions: LogOptions) + + /** + * Defines what execution history events of the waiter state machine are logged and where they + * are logged. + * + * Default: - A default log group will be created if logging for the waiter state machine is + * enabled. + * + * @param waiterStateMachineLogOptions Defines what execution history events of the waiter state + * machine are logged and where they are logged. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("953a43d36d80dd45db754ab839ff44c20c9ebd575cf1cfa79cacc578031332e4") + public + fun waiterStateMachineLogOptions(waiterStateMachineLogOptions: LogOptions.Builder.() -> Unit) } private class BuilderImpl( @@ -270,6 +308,18 @@ public open class Provider( private val cdkBuilder: software.amazon.awscdk.customresources.Provider.Builder = software.amazon.awscdk.customresources.Provider.Builder.create(scope, id) + /** + * Whether logging for the waiter state machine is disabled. + * + * Default: - false + * + * @param disableWaiterStateMachineLogging Whether logging for the waiter state machine is + * disabled. + */ + override fun disableWaiterStateMachineLogging(disableWaiterStateMachineLogging: Boolean) { + cdkBuilder.disableWaiterStateMachineLogging(disableWaiterStateMachineLogging) + } + /** * The AWS Lambda function to invoke in order to determine if the operation is complete. * @@ -476,6 +526,36 @@ public open class Provider( override fun vpcSubnets(vpcSubnets: SubnetSelection.Builder.() -> Unit): Unit = vpcSubnets(SubnetSelection(vpcSubnets)) + /** + * Defines what execution history events of the waiter state machine are logged and where they + * are logged. + * + * Default: - A default log group will be created if logging for the waiter state machine is + * enabled. + * + * @param waiterStateMachineLogOptions Defines what execution history events of the waiter state + * machine are logged and where they are logged. + */ + override fun waiterStateMachineLogOptions(waiterStateMachineLogOptions: LogOptions) { + cdkBuilder.waiterStateMachineLogOptions(waiterStateMachineLogOptions.let(LogOptions::unwrap)) + } + + /** + * Defines what execution history events of the waiter state machine are logged and where they + * are logged. + * + * Default: - A default log group will be created if logging for the waiter state machine is + * enabled. + * + * @param waiterStateMachineLogOptions Defines what execution history events of the waiter state + * machine are logged and where they are logged. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("953a43d36d80dd45db754ab839ff44c20c9ebd575cf1cfa79cacc578031332e4") + override + fun waiterStateMachineLogOptions(waiterStateMachineLogOptions: LogOptions.Builder.() -> Unit): + Unit = waiterStateMachineLogOptions(LogOptions(waiterStateMachineLogOptions)) + public fun build(): software.amazon.awscdk.customresources.Provider = cdkBuilder.build() } diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/ProviderProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/ProviderProps.kt index b0631ea915..1f8355c7c9 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/ProviderProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/ProviderProps.kt @@ -14,6 +14,7 @@ import io.cloudshiftdev.awscdk.services.kms.IKey import io.cloudshiftdev.awscdk.services.lambda.IFunction import io.cloudshiftdev.awscdk.services.logs.ILogGroup import io.cloudshiftdev.awscdk.services.logs.RetentionDays +import kotlin.Boolean import kotlin.String import kotlin.Unit import kotlin.collections.List @@ -40,6 +41,14 @@ import kotlin.jvm.JvmName * ``` */ public interface ProviderProps { + /** + * Whether logging for the waiter state machine is disabled. + * + * Default: - false + */ + public fun disableWaiterStateMachineLogging(): Boolean? = + unwrap(this).getDisableWaiterStateMachineLogging() + /** * The AWS Lambda function to invoke in order to determine if the operation is complete. * @@ -168,11 +177,27 @@ public interface ProviderProps { public fun vpcSubnets(): SubnetSelection? = unwrap(this).getVpcSubnets()?.let(SubnetSelection::wrap) + /** + * Defines what execution history events of the waiter state machine are logged and where they are + * logged. + * + * Default: - A default log group will be created if logging for the waiter state machine is + * enabled. + */ + public fun waiterStateMachineLogOptions(): LogOptions? = + unwrap(this).getWaiterStateMachineLogOptions()?.let(LogOptions::wrap) + /** * A builder for [ProviderProps] */ @CdkDslMarker public interface Builder { + /** + * @param disableWaiterStateMachineLogging Whether logging for the waiter state machine is + * disabled. + */ + public fun disableWaiterStateMachineLogging(disableWaiterStateMachineLogging: Boolean) + /** * @param isCompleteHandler The AWS Lambda function to invoke in order to determine if the * operation is complete. @@ -279,12 +304,35 @@ public interface ProviderProps { @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("59c9969f7250ffe8bee78b1148f2db9967d4a930cea26f58371093c920fe06b0") public fun vpcSubnets(vpcSubnets: SubnetSelection.Builder.() -> Unit) + + /** + * @param waiterStateMachineLogOptions Defines what execution history events of the waiter state + * machine are logged and where they are logged. + */ + public fun waiterStateMachineLogOptions(waiterStateMachineLogOptions: LogOptions) + + /** + * @param waiterStateMachineLogOptions Defines what execution history events of the waiter state + * machine are logged and where they are logged. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("0c647cf0aa085a82e42fa8bc2a90d827e8bc491c7057bf86e5287a9634946e94") + public + fun waiterStateMachineLogOptions(waiterStateMachineLogOptions: LogOptions.Builder.() -> Unit) } private class BuilderImpl : Builder { private val cdkBuilder: software.amazon.awscdk.customresources.ProviderProps.Builder = software.amazon.awscdk.customresources.ProviderProps.builder() + /** + * @param disableWaiterStateMachineLogging Whether logging for the waiter state machine is + * disabled. + */ + override fun disableWaiterStateMachineLogging(disableWaiterStateMachineLogging: Boolean) { + cdkBuilder.disableWaiterStateMachineLogging(disableWaiterStateMachineLogging) + } + /** * @param isCompleteHandler The AWS Lambda function to invoke in order to determine if the * operation is complete. @@ -418,12 +466,38 @@ public interface ProviderProps { override fun vpcSubnets(vpcSubnets: SubnetSelection.Builder.() -> Unit): Unit = vpcSubnets(SubnetSelection(vpcSubnets)) + /** + * @param waiterStateMachineLogOptions Defines what execution history events of the waiter state + * machine are logged and where they are logged. + */ + override fun waiterStateMachineLogOptions(waiterStateMachineLogOptions: LogOptions) { + cdkBuilder.waiterStateMachineLogOptions(waiterStateMachineLogOptions.let(LogOptions::unwrap)) + } + + /** + * @param waiterStateMachineLogOptions Defines what execution history events of the waiter state + * machine are logged and where they are logged. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("0c647cf0aa085a82e42fa8bc2a90d827e8bc491c7057bf86e5287a9634946e94") + override + fun waiterStateMachineLogOptions(waiterStateMachineLogOptions: LogOptions.Builder.() -> Unit): + Unit = waiterStateMachineLogOptions(LogOptions(waiterStateMachineLogOptions)) + public fun build(): software.amazon.awscdk.customresources.ProviderProps = cdkBuilder.build() } private class Wrapper( cdkObject: software.amazon.awscdk.customresources.ProviderProps, ) : CdkObject(cdkObject), ProviderProps { + /** + * Whether logging for the waiter state machine is disabled. + * + * Default: - false + */ + override fun disableWaiterStateMachineLogging(): Boolean? = + unwrap(this).getDisableWaiterStateMachineLogging() + /** * The AWS Lambda function to invoke in order to determine if the operation is complete. * @@ -552,6 +626,16 @@ public interface ProviderProps { */ override fun vpcSubnets(): SubnetSelection? = unwrap(this).getVpcSubnets()?.let(SubnetSelection::wrap) + + /** + * Defines what execution history events of the waiter state machine are logged and where they + * are logged. + * + * Default: - A default log group will be created if logging for the waiter state machine is + * enabled. + */ + override fun waiterStateMachineLogOptions(): LogOptions? = + unwrap(this).getWaiterStateMachineLogOptions()?.let(LogOptions::wrap) } public companion object { diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/WaiterStateMachine.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/WaiterStateMachine.kt new file mode 100644 index 0000000000..f79a968bd0 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/WaiterStateMachine.kt @@ -0,0 +1,271 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.customresources + +import io.cloudshiftdev.awscdk.Duration +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.services.iam.Grant +import io.cloudshiftdev.awscdk.services.iam.IGrantable +import io.cloudshiftdev.awscdk.services.lambda.IFunction +import kotlin.Boolean +import kotlin.Number +import kotlin.String +import kotlin.Unit +import kotlin.jvm.JvmName +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * A very simple StateMachine construct highly customized to the provider framework. + * + * We previously used `CfnResource` instead of `CfnStateMachine` to avoid depending + * on `aws-stepfunctions` module, but now it is okay. + * + * The state machine continuously calls the isCompleteHandler, until it succeeds or times out. + * The handler is called `maxAttempts` times with an `interval` duration and a `backoffRate` rate. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.*; + * import io.cloudshiftdev.awscdk.services.lambda.*; + * import io.cloudshiftdev.awscdk.services.logs.*; + * import io.cloudshiftdev.awscdk.services.stepfunctions.*; + * import io.cloudshiftdev.awscdk.customresources.*; + * Function function_; + * LogGroup logGroup; + * WaiterStateMachine waiterStateMachine = WaiterStateMachine.Builder.create(this, + * "MyWaiterStateMachine") + * .backoffRate(123) + * .interval(Duration.minutes(30)) + * .isCompleteHandler(function_) + * .maxAttempts(123) + * .timeoutHandler(function_) + * // the properties below are optional + * .disableLogging(false) + * .logOptions(LogOptions.builder() + * .destination(logGroup) + * .includeExecutionData(false) + * .level(LogLevel.OFF) + * .build()) + * .build(); + * ``` + */ +public open class WaiterStateMachine( + cdkObject: software.amazon.awscdk.customresources.WaiterStateMachine, +) : CloudshiftdevConstructsConstruct(cdkObject) { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: WaiterStateMachineProps, + ) : + this(software.amazon.awscdk.customresources.WaiterStateMachine(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(WaiterStateMachineProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: WaiterStateMachineProps.Builder.() -> Unit, + ) : this(scope, id, WaiterStateMachineProps(props) + ) + + /** + * Grant the given identity permissions on StartExecution of the state machine. + * + * @param identity + */ + public open fun grantStartExecution(identity: IGrantable): Grant = + unwrap(this).grantStartExecution(identity.let(IGrantable::unwrap)).let(Grant::wrap) + + /** + * The ARN of the state machine. + */ + public open fun stateMachineArn(): String = unwrap(this).getStateMachineArn() + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.customresources.WaiterStateMachine]. + */ + @CdkDslMarker + public interface Builder { + /** + * Backoff between attempts. + * + * @param backoffRate Backoff between attempts. + */ + public fun backoffRate(backoffRate: Number) + + /** + * Whether logging for the state machine is disabled. + * + * Default: - false + * + * @param disableLogging Whether logging for the state machine is disabled. + */ + public fun disableLogging(disableLogging: Boolean) + + /** + * The interval to wait between attempts. + * + * @param interval The interval to wait between attempts. + */ + public fun interval(interval: Duration) + + /** + * The main handler that notifies if the waiter to decide 'complete' or 'incomplete'. + * + * @param isCompleteHandler The main handler that notifies if the waiter to decide 'complete' or + * 'incomplete'. + */ + public fun isCompleteHandler(isCompleteHandler: IFunction) + + /** + * Defines what execution history events are logged and where they are logged. + * + * Default: - A default log group will be created if logging is enabled. + * + * @param logOptions Defines what execution history events are logged and where they are logged. + * + */ + public fun logOptions(logOptions: LogOptions) + + /** + * Defines what execution history events are logged and where they are logged. + * + * Default: - A default log group will be created if logging is enabled. + * + * @param logOptions Defines what execution history events are logged and where they are logged. + * + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("070ffc9da408403e15c9354d15c3595efc985ad8dad8636246bda2b36d308b2c") + public fun logOptions(logOptions: LogOptions.Builder.() -> Unit) + + /** + * Number of attempts. + * + * @param maxAttempts Number of attempts. + */ + public fun maxAttempts(maxAttempts: Number) + + /** + * The handler to call if the waiter times out and is incomplete. + * + * @param timeoutHandler The handler to call if the waiter times out and is incomplete. + */ + public fun timeoutHandler(timeoutHandler: IFunction) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.customresources.WaiterStateMachine.Builder = + software.amazon.awscdk.customresources.WaiterStateMachine.Builder.create(scope, id) + + /** + * Backoff between attempts. + * + * @param backoffRate Backoff between attempts. + */ + override fun backoffRate(backoffRate: Number) { + cdkBuilder.backoffRate(backoffRate) + } + + /** + * Whether logging for the state machine is disabled. + * + * Default: - false + * + * @param disableLogging Whether logging for the state machine is disabled. + */ + override fun disableLogging(disableLogging: Boolean) { + cdkBuilder.disableLogging(disableLogging) + } + + /** + * The interval to wait between attempts. + * + * @param interval The interval to wait between attempts. + */ + override fun interval(interval: Duration) { + cdkBuilder.interval(interval.let(Duration::unwrap)) + } + + /** + * The main handler that notifies if the waiter to decide 'complete' or 'incomplete'. + * + * @param isCompleteHandler The main handler that notifies if the waiter to decide 'complete' or + * 'incomplete'. + */ + override fun isCompleteHandler(isCompleteHandler: IFunction) { + cdkBuilder.isCompleteHandler(isCompleteHandler.let(IFunction::unwrap)) + } + + /** + * Defines what execution history events are logged and where they are logged. + * + * Default: - A default log group will be created if logging is enabled. + * + * @param logOptions Defines what execution history events are logged and where they are logged. + * + */ + override fun logOptions(logOptions: LogOptions) { + cdkBuilder.logOptions(logOptions.let(LogOptions::unwrap)) + } + + /** + * Defines what execution history events are logged and where they are logged. + * + * Default: - A default log group will be created if logging is enabled. + * + * @param logOptions Defines what execution history events are logged and where they are logged. + * + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("070ffc9da408403e15c9354d15c3595efc985ad8dad8636246bda2b36d308b2c") + override fun logOptions(logOptions: LogOptions.Builder.() -> Unit): Unit = + logOptions(LogOptions(logOptions)) + + /** + * Number of attempts. + * + * @param maxAttempts Number of attempts. + */ + override fun maxAttempts(maxAttempts: Number) { + cdkBuilder.maxAttempts(maxAttempts) + } + + /** + * The handler to call if the waiter times out and is incomplete. + * + * @param timeoutHandler The handler to call if the waiter times out and is incomplete. + */ + override fun timeoutHandler(timeoutHandler: IFunction) { + cdkBuilder.timeoutHandler(timeoutHandler.let(IFunction::unwrap)) + } + + public fun build(): software.amazon.awscdk.customresources.WaiterStateMachine = + cdkBuilder.build() + } + + public companion object { + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): WaiterStateMachine { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return WaiterStateMachine(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.customresources.WaiterStateMachine): + WaiterStateMachine = WaiterStateMachine(cdkObject) + + internal fun unwrap(wrapped: WaiterStateMachine): + software.amazon.awscdk.customresources.WaiterStateMachine = wrapped.cdkObject as + software.amazon.awscdk.customresources.WaiterStateMachine + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/WaiterStateMachineProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/WaiterStateMachineProps.kt new file mode 100644 index 0000000000..ec5071b51b --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/customresources/WaiterStateMachineProps.kt @@ -0,0 +1,259 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.customresources + +import io.cloudshiftdev.awscdk.Duration +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import io.cloudshiftdev.awscdk.services.lambda.IFunction +import kotlin.Boolean +import kotlin.Number +import kotlin.Unit +import kotlin.jvm.JvmName + +/** + * Initialization properties for the `WaiterStateMachine` construct. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.*; + * import io.cloudshiftdev.awscdk.services.lambda.*; + * import io.cloudshiftdev.awscdk.services.logs.*; + * import io.cloudshiftdev.awscdk.services.stepfunctions.*; + * import io.cloudshiftdev.awscdk.customresources.*; + * Function function_; + * LogGroup logGroup; + * WaiterStateMachineProps waiterStateMachineProps = WaiterStateMachineProps.builder() + * .backoffRate(123) + * .interval(Duration.minutes(30)) + * .isCompleteHandler(function_) + * .maxAttempts(123) + * .timeoutHandler(function_) + * // the properties below are optional + * .disableLogging(false) + * .logOptions(LogOptions.builder() + * .destination(logGroup) + * .includeExecutionData(false) + * .level(LogLevel.OFF) + * .build()) + * .build(); + * ``` + */ +public interface WaiterStateMachineProps { + /** + * Backoff between attempts. + */ + public fun backoffRate(): Number + + /** + * Whether logging for the state machine is disabled. + * + * Default: - false + */ + public fun disableLogging(): Boolean? = unwrap(this).getDisableLogging() + + /** + * The interval to wait between attempts. + */ + public fun interval(): Duration + + /** + * The main handler that notifies if the waiter to decide 'complete' or 'incomplete'. + */ + public fun isCompleteHandler(): IFunction + + /** + * Defines what execution history events are logged and where they are logged. + * + * Default: - A default log group will be created if logging is enabled. + */ + public fun logOptions(): LogOptions? = unwrap(this).getLogOptions()?.let(LogOptions::wrap) + + /** + * Number of attempts. + */ + public fun maxAttempts(): Number + + /** + * The handler to call if the waiter times out and is incomplete. + */ + public fun timeoutHandler(): IFunction + + /** + * A builder for [WaiterStateMachineProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param backoffRate Backoff between attempts. + */ + public fun backoffRate(backoffRate: Number) + + /** + * @param disableLogging Whether logging for the state machine is disabled. + */ + public fun disableLogging(disableLogging: Boolean) + + /** + * @param interval The interval to wait between attempts. + */ + public fun interval(interval: Duration) + + /** + * @param isCompleteHandler The main handler that notifies if the waiter to decide 'complete' or + * 'incomplete'. + */ + public fun isCompleteHandler(isCompleteHandler: IFunction) + + /** + * @param logOptions Defines what execution history events are logged and where they are logged. + */ + public fun logOptions(logOptions: LogOptions) + + /** + * @param logOptions Defines what execution history events are logged and where they are logged. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("3b0668647d6aaa7ff11d6c5b68f6f053ac03bc7b9d35bfcf8e87fc2c4ef39cfd") + public fun logOptions(logOptions: LogOptions.Builder.() -> Unit) + + /** + * @param maxAttempts Number of attempts. + */ + public fun maxAttempts(maxAttempts: Number) + + /** + * @param timeoutHandler The handler to call if the waiter times out and is incomplete. + */ + public fun timeoutHandler(timeoutHandler: IFunction) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.customresources.WaiterStateMachineProps.Builder = + software.amazon.awscdk.customresources.WaiterStateMachineProps.builder() + + /** + * @param backoffRate Backoff between attempts. + */ + override fun backoffRate(backoffRate: Number) { + cdkBuilder.backoffRate(backoffRate) + } + + /** + * @param disableLogging Whether logging for the state machine is disabled. + */ + override fun disableLogging(disableLogging: Boolean) { + cdkBuilder.disableLogging(disableLogging) + } + + /** + * @param interval The interval to wait between attempts. + */ + override fun interval(interval: Duration) { + cdkBuilder.interval(interval.let(Duration::unwrap)) + } + + /** + * @param isCompleteHandler The main handler that notifies if the waiter to decide 'complete' or + * 'incomplete'. + */ + override fun isCompleteHandler(isCompleteHandler: IFunction) { + cdkBuilder.isCompleteHandler(isCompleteHandler.let(IFunction::unwrap)) + } + + /** + * @param logOptions Defines what execution history events are logged and where they are logged. + */ + override fun logOptions(logOptions: LogOptions) { + cdkBuilder.logOptions(logOptions.let(LogOptions::unwrap)) + } + + /** + * @param logOptions Defines what execution history events are logged and where they are logged. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("3b0668647d6aaa7ff11d6c5b68f6f053ac03bc7b9d35bfcf8e87fc2c4ef39cfd") + override fun logOptions(logOptions: LogOptions.Builder.() -> Unit): Unit = + logOptions(LogOptions(logOptions)) + + /** + * @param maxAttempts Number of attempts. + */ + override fun maxAttempts(maxAttempts: Number) { + cdkBuilder.maxAttempts(maxAttempts) + } + + /** + * @param timeoutHandler The handler to call if the waiter times out and is incomplete. + */ + override fun timeoutHandler(timeoutHandler: IFunction) { + cdkBuilder.timeoutHandler(timeoutHandler.let(IFunction::unwrap)) + } + + public fun build(): software.amazon.awscdk.customresources.WaiterStateMachineProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.customresources.WaiterStateMachineProps, + ) : CdkObject(cdkObject), WaiterStateMachineProps { + /** + * Backoff between attempts. + */ + override fun backoffRate(): Number = unwrap(this).getBackoffRate() + + /** + * Whether logging for the state machine is disabled. + * + * Default: - false + */ + override fun disableLogging(): Boolean? = unwrap(this).getDisableLogging() + + /** + * The interval to wait between attempts. + */ + override fun interval(): Duration = unwrap(this).getInterval().let(Duration::wrap) + + /** + * The main handler that notifies if the waiter to decide 'complete' or 'incomplete'. + */ + override fun isCompleteHandler(): IFunction = + unwrap(this).getIsCompleteHandler().let(IFunction::wrap) + + /** + * Defines what execution history events are logged and where they are logged. + * + * Default: - A default log group will be created if logging is enabled. + */ + override fun logOptions(): LogOptions? = unwrap(this).getLogOptions()?.let(LogOptions::wrap) + + /** + * Number of attempts. + */ + override fun maxAttempts(): Number = unwrap(this).getMaxAttempts() + + /** + * The handler to call if the waiter times out and is incomplete. + */ + override fun timeoutHandler(): IFunction = unwrap(this).getTimeoutHandler().let(IFunction::wrap) + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): WaiterStateMachineProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.customresources.WaiterStateMachineProps): + WaiterStateMachineProps = CdkObjectWrappers.wrap(cdkObject) as? WaiterStateMachineProps ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: WaiterStateMachineProps): + software.amazon.awscdk.customresources.WaiterStateMachineProps = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.customresources.WaiterStateMachineProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/amplify/CfnDomain.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/amplify/CfnDomain.kt index 49dbbb5024..8687f7a893 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/amplify/CfnDomain.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/amplify/CfnDomain.kt @@ -38,17 +38,11 @@ import software.constructs.Construct as SoftwareConstructsConstruct * // the properties below are optional * .autoSubDomainCreationPatterns(List.of("autoSubDomainCreationPatterns")) * .autoSubDomainIamRole("autoSubDomainIamRole") - * .certificate(CertificateProperty.builder() - * .certificateArn("certificateArn") - * .certificateType("certificateType") - * .certificateVerificationDnsRecord("certificateVerificationDnsRecord") - * .build()) * .certificateSettings(CertificateSettingsProperty.builder() * .certificateType("certificateType") * .customCertificateArn("customCertificateArn") * .build()) * .enableAutoSubDomain(false) - * .updateStatus("updateStatus") * .build(); * ``` * @@ -101,6 +95,12 @@ public open class CfnDomain( */ public open fun attrAutoSubDomainIamRole(): String = unwrap(this).getAttrAutoSubDomainIamRole() + /** + * + */ + public open fun attrCertificate(): IResolvable = + unwrap(this).getAttrCertificate().let(IResolvable::wrap) + /** * DNS Record for certificate verification. */ @@ -127,6 +127,31 @@ public open class CfnDomain( */ public open fun attrStatusReason(): String = unwrap(this).getAttrStatusReason() + /** + * The status of the domain update operation that is currently in progress. + * + * The following list describes the valid update states. + * + * * **REQUESTING_CERTIFICATE** - The certificate is in the process of being updated. + * * **PENDING_VERIFICATION** - Indicates that an Amplify managed certificate is in the process of + * being verified. This occurs during the creation of a custom domain or when a custom domain is + * updated to use a managed certificate. + * * **IMPORTING_CUSTOM_CERTIFICATE** - Indicates that an Amplify custom certificate is in the + * process of being imported. This occurs during the creation of a custom domain or when a custom + * domain is updated to use a custom certificate. + * * **PENDING_DEPLOYMENT** - Indicates that the subdomain or certificate changes are being + * propagated. + * * **AWAITING_APP_CNAME** - Amplify is waiting for CNAME records corresponding to subdomains to + * be propagated. If your custom domain is on Route 53, Amplify handles this for you automatically. + * For more information about custom domains, see [Setting up custom + * domains](https://docs.aws.amazon.com/amplify/latest/userguide/custom-domains.html) in the *Amplify + * Hosting User Guide* . + * * **UPDATE_COMPLETE** - The certificate has been associated with a domain. + * * **UPDATE_FAILED** - The certificate has failed to be provisioned or associated, and there is + * no existing active certificate to roll back to. + */ + public open fun attrUpdateStatus(): String = unwrap(this).getAttrUpdateStatus() + /** * Sets the branch patterns for automatic subdomain creation. */ @@ -160,33 +185,6 @@ public open class CfnDomain( unwrap(this).setAutoSubDomainIamRole(`value`) } - /** - * Describes the SSL/TLS certificate for the domain association. - */ - public open fun certificate(): Any? = unwrap(this).getCertificate() - - /** - * Describes the SSL/TLS certificate for the domain association. - */ - public open fun certificate(`value`: IResolvable) { - unwrap(this).setCertificate(`value`.let(IResolvable::unwrap)) - } - - /** - * Describes the SSL/TLS certificate for the domain association. - */ - public open fun certificate(`value`: CertificateProperty) { - unwrap(this).setCertificate(`value`.let(CertificateProperty::unwrap)) - } - - /** - * Describes the SSL/TLS certificate for the domain association. - */ - @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("a6e3585827032c066c49cb10aff2eecb6e23d7f11bb97c9340e9659d87230e8c") - public open fun certificate(`value`: CertificateProperty.Builder.() -> Unit): Unit = - certificate(CertificateProperty(`value`)) - /** * The type of SSL/TLS certificate to use for your custom domain. */ @@ -278,18 +276,6 @@ public open class CfnDomain( */ public open fun subDomainSettings(vararg `value`: Any): Unit = subDomainSettings(`value`.toList()) - /** - * The status of the domain update operation that is currently in progress. - */ - public open fun updateStatus(): String? = unwrap(this).getUpdateStatus() - - /** - * The status of the domain update operation that is currently in progress. - */ - public open fun updateStatus(`value`: String) { - unwrap(this).setUpdateStatus(`value`) - } - /** * A fluent builder for [io.cloudshiftdev.awscdk.services.amplify.CfnDomain]. */ @@ -331,53 +317,6 @@ public open class CfnDomain( */ public fun autoSubDomainIamRole(autoSubDomainIamRole: String) - /** - * Describes the SSL/TLS certificate for the domain association. - * - * This can be your own custom certificate or the default certificate that Amplify provisions - * for you. - * - * If you are updating your domain to use a different certificate, `Certificate` points to the - * new certificate that is being created instead of the current active certificate. Otherwise, - * `Certificate` points to the current active certificate. - * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html#cfn-amplify-domain-certificate) - * @param certificate Describes the SSL/TLS certificate for the domain association. - */ - public fun certificate(certificate: IResolvable) - - /** - * Describes the SSL/TLS certificate for the domain association. - * - * This can be your own custom certificate or the default certificate that Amplify provisions - * for you. - * - * If you are updating your domain to use a different certificate, `Certificate` points to the - * new certificate that is being created instead of the current active certificate. Otherwise, - * `Certificate` points to the current active certificate. - * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html#cfn-amplify-domain-certificate) - * @param certificate Describes the SSL/TLS certificate for the domain association. - */ - public fun certificate(certificate: CertificateProperty) - - /** - * Describes the SSL/TLS certificate for the domain association. - * - * This can be your own custom certificate or the default certificate that Amplify provisions - * for you. - * - * If you are updating your domain to use a different certificate, `Certificate` points to the - * new certificate that is being created instead of the current active certificate. Otherwise, - * `Certificate` points to the current active certificate. - * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html#cfn-amplify-domain-certificate) - * @param certificate Describes the SSL/TLS certificate for the domain association. - */ - @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("dba241ba2559bec2214c0d05d5c597cbd5bc0702b76b33a82125935135728c64") - public fun certificate(certificate: CertificateProperty.Builder.() -> Unit) - /** * The type of SSL/TLS certificate to use for your custom domain. * @@ -461,34 +400,6 @@ public open class CfnDomain( * @param subDomainSettings The setting for the subdomain. */ public fun subDomainSettings(vararg subDomainSettings: Any) - - /** - * The status of the domain update operation that is currently in progress. - * - * The following list describes the valid update states. - * - * * **REQUESTING_CERTIFICATE** - The certificate is in the process of being updated. - * * **PENDING_VERIFICATION** - Indicates that an Amplify managed certificate is in the process - * of being verified. This occurs during the creation of a custom domain or when a custom domain is - * updated to use a managed certificate. - * * **IMPORTING_CUSTOM_CERTIFICATE** - Indicates that an Amplify custom certificate is in the - * process of being imported. This occurs during the creation of a custom domain or when a custom - * domain is updated to use a custom certificate. - * * **PENDING_DEPLOYMENT** - Indicates that the subdomain or certificate changes are being - * propagated. - * * **AWAITING_APP_CNAME** - Amplify is waiting for CNAME records corresponding to subdomains - * to be propagated. If your custom domain is on Route 53, Amplify handles this for you - * automatically. For more information about custom domains, see [Setting up custom - * domains](https://docs.aws.amazon.com/amplify/latest/userguide/custom-domains.html) in the - * *Amplify Hosting User Guide* . - * * **UPDATE_COMPLETE** - The certificate has been associated with a domain. - * * **UPDATE_FAILED** - The certificate has failed to be provisioned or associated, and there - * is no existing active certificate to roll back to. - * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html#cfn-amplify-domain-updatestatus) - * @param updateStatus The status of the domain update operation that is currently in progress. - */ - public fun updateStatus(updateStatus: String) } private class BuilderImpl( @@ -541,58 +452,6 @@ public open class CfnDomain( cdkBuilder.autoSubDomainIamRole(autoSubDomainIamRole) } - /** - * Describes the SSL/TLS certificate for the domain association. - * - * This can be your own custom certificate or the default certificate that Amplify provisions - * for you. - * - * If you are updating your domain to use a different certificate, `Certificate` points to the - * new certificate that is being created instead of the current active certificate. Otherwise, - * `Certificate` points to the current active certificate. - * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html#cfn-amplify-domain-certificate) - * @param certificate Describes the SSL/TLS certificate for the domain association. - */ - override fun certificate(certificate: IResolvable) { - cdkBuilder.certificate(certificate.let(IResolvable::unwrap)) - } - - /** - * Describes the SSL/TLS certificate for the domain association. - * - * This can be your own custom certificate or the default certificate that Amplify provisions - * for you. - * - * If you are updating your domain to use a different certificate, `Certificate` points to the - * new certificate that is being created instead of the current active certificate. Otherwise, - * `Certificate` points to the current active certificate. - * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html#cfn-amplify-domain-certificate) - * @param certificate Describes the SSL/TLS certificate for the domain association. - */ - override fun certificate(certificate: CertificateProperty) { - cdkBuilder.certificate(certificate.let(CertificateProperty::unwrap)) - } - - /** - * Describes the SSL/TLS certificate for the domain association. - * - * This can be your own custom certificate or the default certificate that Amplify provisions - * for you. - * - * If you are updating your domain to use a different certificate, `Certificate` points to the - * new certificate that is being created instead of the current active certificate. Otherwise, - * `Certificate` points to the current active certificate. - * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html#cfn-amplify-domain-certificate) - * @param certificate Describes the SSL/TLS certificate for the domain association. - */ - @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("dba241ba2559bec2214c0d05d5c597cbd5bc0702b76b33a82125935135728c64") - override fun certificate(certificate: CertificateProperty.Builder.() -> Unit): Unit = - certificate(CertificateProperty(certificate)) - /** * The type of SSL/TLS certificate to use for your custom domain. * @@ -693,36 +552,6 @@ public open class CfnDomain( override fun subDomainSettings(vararg subDomainSettings: Any): Unit = subDomainSettings(subDomainSettings.toList()) - /** - * The status of the domain update operation that is currently in progress. - * - * The following list describes the valid update states. - * - * * **REQUESTING_CERTIFICATE** - The certificate is in the process of being updated. - * * **PENDING_VERIFICATION** - Indicates that an Amplify managed certificate is in the process - * of being verified. This occurs during the creation of a custom domain or when a custom domain is - * updated to use a managed certificate. - * * **IMPORTING_CUSTOM_CERTIFICATE** - Indicates that an Amplify custom certificate is in the - * process of being imported. This occurs during the creation of a custom domain or when a custom - * domain is updated to use a custom certificate. - * * **PENDING_DEPLOYMENT** - Indicates that the subdomain or certificate changes are being - * propagated. - * * **AWAITING_APP_CNAME** - Amplify is waiting for CNAME records corresponding to subdomains - * to be propagated. If your custom domain is on Route 53, Amplify handles this for you - * automatically. For more information about custom domains, see [Setting up custom - * domains](https://docs.aws.amazon.com/amplify/latest/userguide/custom-domains.html) in the - * *Amplify Hosting User Guide* . - * * **UPDATE_COMPLETE** - The certificate has been associated with a domain. - * * **UPDATE_FAILED** - The certificate has failed to be provisioned or associated, and there - * is no existing active certificate to roll back to. - * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html#cfn-amplify-domain-updatestatus) - * @param updateStatus The status of the domain update operation that is currently in progress. - */ - override fun updateStatus(updateStatus: String) { - cdkBuilder.updateStatus(updateStatus) - } - public fun build(): software.amazon.awscdk.services.amplify.CfnDomain = cdkBuilder.build() } diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/amplify/CfnDomainProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/amplify/CfnDomainProps.kt index c9de9291b1..7119aca874 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/amplify/CfnDomainProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/amplify/CfnDomainProps.kt @@ -32,17 +32,11 @@ import kotlin.jvm.JvmName * // the properties below are optional * .autoSubDomainCreationPatterns(List.of("autoSubDomainCreationPatterns")) * .autoSubDomainIamRole("autoSubDomainIamRole") - * .certificate(CertificateProperty.builder() - * .certificateArn("certificateArn") - * .certificateType("certificateType") - * .certificateVerificationDnsRecord("certificateVerificationDnsRecord") - * .build()) * .certificateSettings(CertificateSettingsProperty.builder() * .certificateType("certificateType") * .customCertificateArn("customCertificateArn") * .build()) * .enableAutoSubDomain(false) - * .updateStatus("updateStatus") * .build(); * ``` * @@ -72,20 +66,6 @@ public interface CfnDomainProps { */ public fun autoSubDomainIamRole(): String? = unwrap(this).getAutoSubDomainIamRole() - /** - * Describes the SSL/TLS certificate for the domain association. - * - * This can be your own custom certificate or the default certificate that Amplify provisions for - * you. - * - * If you are updating your domain to use a different certificate, `Certificate` points to the new - * certificate that is being created instead of the current active certificate. Otherwise, - * `Certificate` points to the current active certificate. - * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html#cfn-amplify-domain-certificate) - */ - public fun certificate(): Any? = unwrap(this).getCertificate() - /** * The type of SSL/TLS certificate to use for your custom domain. * @@ -117,33 +97,6 @@ public interface CfnDomainProps { */ public fun subDomainSettings(): Any - /** - * The status of the domain update operation that is currently in progress. - * - * The following list describes the valid update states. - * - * * **REQUESTING_CERTIFICATE** - The certificate is in the process of being updated. - * * **PENDING_VERIFICATION** - Indicates that an Amplify managed certificate is in the process of - * being verified. This occurs during the creation of a custom domain or when a custom domain is - * updated to use a managed certificate. - * * **IMPORTING_CUSTOM_CERTIFICATE** - Indicates that an Amplify custom certificate is in the - * process of being imported. This occurs during the creation of a custom domain or when a custom - * domain is updated to use a custom certificate. - * * **PENDING_DEPLOYMENT** - Indicates that the subdomain or certificate changes are being - * propagated. - * * **AWAITING_APP_CNAME** - Amplify is waiting for CNAME records corresponding to subdomains to - * be propagated. If your custom domain is on Route 53, Amplify handles this for you automatically. - * For more information about custom domains, see [Setting up custom - * domains](https://docs.aws.amazon.com/amplify/latest/userguide/custom-domains.html) in the *Amplify - * Hosting User Guide* . - * * **UPDATE_COMPLETE** - The certificate has been associated with a domain. - * * **UPDATE_FAILED** - The certificate has failed to be provisioned or associated, and there is - * no existing active certificate to roll back to. - * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html#cfn-amplify-domain-updatestatus) - */ - public fun updateStatus(): String? = unwrap(this).getUpdateStatus() - /** * A builder for [CfnDomainProps] */ @@ -172,41 +125,6 @@ public interface CfnDomainProps { */ public fun autoSubDomainIamRole(autoSubDomainIamRole: String) - /** - * @param certificate Describes the SSL/TLS certificate for the domain association. - * This can be your own custom certificate or the default certificate that Amplify provisions - * for you. - * - * If you are updating your domain to use a different certificate, `Certificate` points to the - * new certificate that is being created instead of the current active certificate. Otherwise, - * `Certificate` points to the current active certificate. - */ - public fun certificate(certificate: IResolvable) - - /** - * @param certificate Describes the SSL/TLS certificate for the domain association. - * This can be your own custom certificate or the default certificate that Amplify provisions - * for you. - * - * If you are updating your domain to use a different certificate, `Certificate` points to the - * new certificate that is being created instead of the current active certificate. Otherwise, - * `Certificate` points to the current active certificate. - */ - public fun certificate(certificate: CfnDomain.CertificateProperty) - - /** - * @param certificate Describes the SSL/TLS certificate for the domain association. - * This can be your own custom certificate or the default certificate that Amplify provisions - * for you. - * - * If you are updating your domain to use a different certificate, `Certificate` points to the - * new certificate that is being created instead of the current active certificate. Otherwise, - * `Certificate` points to the current active certificate. - */ - @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("ac8985efe65679454cdffeb0bff15feae171a1d263f5910e6a0e6baa42a60e9a") - public fun certificate(certificate: CfnDomain.CertificateProperty.Builder.() -> Unit) - /** * @param certificateSettings The type of SSL/TLS certificate to use for your custom domain. * If you don't specify a certificate type, Amplify uses the default certificate that it @@ -260,30 +178,6 @@ public interface CfnDomainProps { * @param subDomainSettings The setting for the subdomain. */ public fun subDomainSettings(vararg subDomainSettings: Any) - - /** - * @param updateStatus The status of the domain update operation that is currently in progress. - * The following list describes the valid update states. - * - * * **REQUESTING_CERTIFICATE** - The certificate is in the process of being updated. - * * **PENDING_VERIFICATION** - Indicates that an Amplify managed certificate is in the process - * of being verified. This occurs during the creation of a custom domain or when a custom domain is - * updated to use a managed certificate. - * * **IMPORTING_CUSTOM_CERTIFICATE** - Indicates that an Amplify custom certificate is in the - * process of being imported. This occurs during the creation of a custom domain or when a custom - * domain is updated to use a custom certificate. - * * **PENDING_DEPLOYMENT** - Indicates that the subdomain or certificate changes are being - * propagated. - * * **AWAITING_APP_CNAME** - Amplify is waiting for CNAME records corresponding to subdomains - * to be propagated. If your custom domain is on Route 53, Amplify handles this for you - * automatically. For more information about custom domains, see [Setting up custom - * domains](https://docs.aws.amazon.com/amplify/latest/userguide/custom-domains.html) in the - * *Amplify Hosting User Guide* . - * * **UPDATE_COMPLETE** - The certificate has been associated with a domain. - * * **UPDATE_FAILED** - The certificate has failed to be provisioned or associated, and there - * is no existing active certificate to roll back to. - */ - public fun updateStatus(updateStatus: String) } private class BuilderImpl : Builder { @@ -320,46 +214,6 @@ public interface CfnDomainProps { cdkBuilder.autoSubDomainIamRole(autoSubDomainIamRole) } - /** - * @param certificate Describes the SSL/TLS certificate for the domain association. - * This can be your own custom certificate or the default certificate that Amplify provisions - * for you. - * - * If you are updating your domain to use a different certificate, `Certificate` points to the - * new certificate that is being created instead of the current active certificate. Otherwise, - * `Certificate` points to the current active certificate. - */ - override fun certificate(certificate: IResolvable) { - cdkBuilder.certificate(certificate.let(IResolvable::unwrap)) - } - - /** - * @param certificate Describes the SSL/TLS certificate for the domain association. - * This can be your own custom certificate or the default certificate that Amplify provisions - * for you. - * - * If you are updating your domain to use a different certificate, `Certificate` points to the - * new certificate that is being created instead of the current active certificate. Otherwise, - * `Certificate` points to the current active certificate. - */ - override fun certificate(certificate: CfnDomain.CertificateProperty) { - cdkBuilder.certificate(certificate.let(CfnDomain.CertificateProperty::unwrap)) - } - - /** - * @param certificate Describes the SSL/TLS certificate for the domain association. - * This can be your own custom certificate or the default certificate that Amplify provisions - * for you. - * - * If you are updating your domain to use a different certificate, `Certificate` points to the - * new certificate that is being created instead of the current active certificate. Otherwise, - * `Certificate` points to the current active certificate. - */ - @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("ac8985efe65679454cdffeb0bff15feae171a1d263f5910e6a0e6baa42a60e9a") - override fun certificate(certificate: CfnDomain.CertificateProperty.Builder.() -> Unit): Unit = - certificate(CfnDomain.CertificateProperty(certificate)) - /** * @param certificateSettings The type of SSL/TLS certificate to use for your custom domain. * If you don't specify a certificate type, Amplify uses the default certificate that it @@ -430,32 +284,6 @@ public interface CfnDomainProps { override fun subDomainSettings(vararg subDomainSettings: Any): Unit = subDomainSettings(subDomainSettings.toList()) - /** - * @param updateStatus The status of the domain update operation that is currently in progress. - * The following list describes the valid update states. - * - * * **REQUESTING_CERTIFICATE** - The certificate is in the process of being updated. - * * **PENDING_VERIFICATION** - Indicates that an Amplify managed certificate is in the process - * of being verified. This occurs during the creation of a custom domain or when a custom domain is - * updated to use a managed certificate. - * * **IMPORTING_CUSTOM_CERTIFICATE** - Indicates that an Amplify custom certificate is in the - * process of being imported. This occurs during the creation of a custom domain or when a custom - * domain is updated to use a custom certificate. - * * **PENDING_DEPLOYMENT** - Indicates that the subdomain or certificate changes are being - * propagated. - * * **AWAITING_APP_CNAME** - Amplify is waiting for CNAME records corresponding to subdomains - * to be propagated. If your custom domain is on Route 53, Amplify handles this for you - * automatically. For more information about custom domains, see [Setting up custom - * domains](https://docs.aws.amazon.com/amplify/latest/userguide/custom-domains.html) in the - * *Amplify Hosting User Guide* . - * * **UPDATE_COMPLETE** - The certificate has been associated with a domain. - * * **UPDATE_FAILED** - The certificate has failed to be provisioned or associated, and there - * is no existing active certificate to roll back to. - */ - override fun updateStatus(updateStatus: String) { - cdkBuilder.updateStatus(updateStatus) - } - public fun build(): software.amazon.awscdk.services.amplify.CfnDomainProps = cdkBuilder.build() } @@ -485,20 +313,6 @@ public interface CfnDomainProps { */ override fun autoSubDomainIamRole(): String? = unwrap(this).getAutoSubDomainIamRole() - /** - * Describes the SSL/TLS certificate for the domain association. - * - * This can be your own custom certificate or the default certificate that Amplify provisions - * for you. - * - * If you are updating your domain to use a different certificate, `Certificate` points to the - * new certificate that is being created instead of the current active certificate. Otherwise, - * `Certificate` points to the current active certificate. - * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html#cfn-amplify-domain-certificate) - */ - override fun certificate(): Any? = unwrap(this).getCertificate() - /** * The type of SSL/TLS certificate to use for your custom domain. * @@ -529,33 +343,6 @@ public interface CfnDomainProps { * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html#cfn-amplify-domain-subdomainsettings) */ override fun subDomainSettings(): Any = unwrap(this).getSubDomainSettings() - - /** - * The status of the domain update operation that is currently in progress. - * - * The following list describes the valid update states. - * - * * **REQUESTING_CERTIFICATE** - The certificate is in the process of being updated. - * * **PENDING_VERIFICATION** - Indicates that an Amplify managed certificate is in the process - * of being verified. This occurs during the creation of a custom domain or when a custom domain is - * updated to use a managed certificate. - * * **IMPORTING_CUSTOM_CERTIFICATE** - Indicates that an Amplify custom certificate is in the - * process of being imported. This occurs during the creation of a custom domain or when a custom - * domain is updated to use a custom certificate. - * * **PENDING_DEPLOYMENT** - Indicates that the subdomain or certificate changes are being - * propagated. - * * **AWAITING_APP_CNAME** - Amplify is waiting for CNAME records corresponding to subdomains - * to be propagated. If your custom domain is on Route 53, Amplify handles this for you - * automatically. For more information about custom domains, see [Setting up custom - * domains](https://docs.aws.amazon.com/amplify/latest/userguide/custom-domains.html) in the - * *Amplify Hosting User Guide* . - * * **UPDATE_COMPLETE** - The certificate has been associated with a domain. - * * **UPDATE_FAILED** - The certificate has failed to be provisioned or associated, and there - * is no existing active certificate to roll back to. - * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html#cfn-amplify-domain-updatestatus) - */ - override fun updateStatus(): String? = unwrap(this).getUpdateStatus() } public companion object { diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apigateway/AccessLogField.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apigateway/AccessLogField.kt index fae7ab4dcf..892bef48c6 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apigateway/AccessLogField.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apigateway/AccessLogField.kt @@ -125,7 +125,7 @@ public open class AccessLogField( public fun contextIdentityCaller(): String = software.amazon.awscdk.services.apigateway.AccessLogField.contextIdentityCaller() - public fun contextIdentityClientCertIssunerDn(): String = + public fun contextIdentityClientCertIssunerDN(): String = software.amazon.awscdk.services.apigateway.AccessLogField.contextIdentityClientCertIssunerDN() public fun contextIdentityClientCertPem(): String = @@ -134,7 +134,7 @@ public open class AccessLogField( public fun contextIdentityClientCertSerialNumber(): String = software.amazon.awscdk.services.apigateway.AccessLogField.contextIdentityClientCertSerialNumber() - public fun contextIdentityClientCertSubjectDn(): String = + public fun contextIdentityClientCertSubjectDN(): String = software.amazon.awscdk.services.apigateway.AccessLogField.contextIdentityClientCertSubjectDN() public fun contextIdentityClientCertValidityNotAfter(): String = diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apigateway/RestApi.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apigateway/RestApi.kt index 62b910a09f..9b6520d185 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apigateway/RestApi.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apigateway/RestApi.kt @@ -6,6 +6,7 @@ import io.cloudshiftdev.awscdk.RemovalPolicy import io.cloudshiftdev.awscdk.Size import io.cloudshiftdev.awscdk.common.CdkDslMarker import io.cloudshiftdev.awscdk.services.iam.PolicyDocument +import kotlin.Any import kotlin.Boolean import kotlin.Deprecated import kotlin.Number @@ -28,23 +29,14 @@ import software.constructs.Construct as SoftwareConstructsConstruct * Example: * * ``` - * Bucket destinationBucket = new Bucket(this, "Bucket"); - * Role deliveryStreamRole = Role.Builder.create(this, "Role") - * .assumedBy(new ServicePrincipal("firehose.amazonaws.com")) + * StateMachine stateMachine = StateMachine.Builder.create(this, "MyStateMachine") + * .stateMachineType(StateMachineType.EXPRESS) + * .definition(Chain.start(new Pass(this, "Pass"))) * .build(); - * CfnDeliveryStream stream = CfnDeliveryStream.Builder.create(this, "MyStream") - * .deliveryStreamName("amazon-apigateway-delivery-stream") - * .s3DestinationConfiguration(S3DestinationConfigurationProperty.builder() - * .bucketArn(destinationBucket.getBucketArn()) - * .roleArn(deliveryStreamRole.getRoleArn()) - * .build()) - * .build(); - * RestApi api = RestApi.Builder.create(this, "books") - * .deployOptions(StageOptions.builder() - * .accessLogDestination(new FirehoseLogDestination(stream)) - * .accessLogFormat(AccessLogFormat.jsonWithStandardFields()) - * .build()) + * RestApi api = RestApi.Builder.create(this, "Api") + * .restApiName("MyApi") * .build(); + * api.root.addMethod("GET", StepFunctionsIntegration.startExecution(stateMachine)); * ``` */ public open class RestApi( @@ -1023,6 +1015,9 @@ public open class RestApi( software.amazon.awscdk.services.apigateway.RestApi.fromRestApiId(scope.let(CloudshiftdevConstructsConstruct::unwrap), id, restApiId).let(IRestApi::wrap) + public fun isRestApi(x: Any): Boolean = + software.amazon.awscdk.services.apigateway.RestApi.isRestApi(x) + public operator fun invoke( scope: CloudshiftdevConstructsConstruct, id: String, diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apigatewayv2/ContentHandling.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apigatewayv2/ContentHandling.kt new file mode 100644 index 0000000000..987813a61a --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apigatewayv2/ContentHandling.kt @@ -0,0 +1,24 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.apigatewayv2 + +public enum class ContentHandling( + private val cdkObject: software.amazon.awscdk.services.apigatewayv2.ContentHandling, +) { + CONVERT_TO_BINARY(software.amazon.awscdk.services.apigatewayv2.ContentHandling.CONVERT_TO_BINARY), + CONVERT_TO_TEXT(software.amazon.awscdk.services.apigatewayv2.ContentHandling.CONVERT_TO_TEXT), + ; + + public companion object { + internal fun wrap(cdkObject: software.amazon.awscdk.services.apigatewayv2.ContentHandling): + ContentHandling = when (cdkObject) { + software.amazon.awscdk.services.apigatewayv2.ContentHandling.CONVERT_TO_BINARY -> + ContentHandling.CONVERT_TO_BINARY + software.amazon.awscdk.services.apigatewayv2.ContentHandling.CONVERT_TO_TEXT -> + ContentHandling.CONVERT_TO_TEXT + } + + internal fun unwrap(wrapped: ContentHandling): + software.amazon.awscdk.services.apigatewayv2.ContentHandling = wrapped.cdkObject + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apigatewayv2/WebSocketIntegration.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apigatewayv2/WebSocketIntegration.kt index d127051a79..c4eb9462fb 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apigatewayv2/WebSocketIntegration.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apigatewayv2/WebSocketIntegration.kt @@ -2,6 +2,7 @@ package io.cloudshiftdev.awscdk.services.apigatewayv2 +import io.cloudshiftdev.awscdk.Duration import io.cloudshiftdev.awscdk.Resource import io.cloudshiftdev.awscdk.common.CdkDslMarker import io.cloudshiftdev.awscdk.services.iam.IRole @@ -19,6 +20,7 @@ import software.constructs.Construct as SoftwareConstructsConstruct * ``` * // The code below shows an example of how to instantiate this type. * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.*; * import io.cloudshiftdev.awscdk.services.apigatewayv2.*; * import io.cloudshiftdev.awscdk.services.iam.*; * Role role; @@ -29,6 +31,7 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .integrationUri("integrationUri") * .webSocketApi(webSocketApi) * // the properties below are optional + * .contentHandling(ContentHandling.CONVERT_TO_BINARY) * .credentialsRole(role) * .integrationMethod("integrationMethod") * .passthroughBehavior(PassthroughBehavior.WHEN_NO_MATCH) @@ -37,6 +40,7 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .requestTemplates(Map.of( * "requestTemplatesKey", "requestTemplates")) * .templateSelectionExpression("templateSelectionExpression") + * .timeout(Duration.minutes(30)) * .build(); * ``` */ @@ -75,6 +79,16 @@ public open class WebSocketIntegration( */ @CdkDslMarker public interface Builder { + /** + * Specifies how to handle response payload content type conversions. + * + * Default: - The response payload will be passed through from the integration response to + * the route response or method response without modification. + * + * @param contentHandling Specifies how to handle response payload content type conversions. + */ + public fun contentHandling(contentHandling: ContentHandling) + /** * Specifies the IAM role required for the integration. * @@ -159,6 +173,18 @@ public open class WebSocketIntegration( */ public fun templateSelectionExpression(templateSelectionExpression: String) + /** + * The maximum amount of time an integration will run before it returns without a response. + * + * Must be between 50 milliseconds and 29 seconds. + * + * Default: Duration.seconds(29) + * + * @param timeout The maximum amount of time an integration will run before it returns without a + * response. + */ + public fun timeout(timeout: Duration) + /** * The WebSocket API to which this integration should be bound. * @@ -175,6 +201,18 @@ public open class WebSocketIntegration( software.amazon.awscdk.services.apigatewayv2.WebSocketIntegration.Builder = software.amazon.awscdk.services.apigatewayv2.WebSocketIntegration.Builder.create(scope, id) + /** + * Specifies how to handle response payload content type conversions. + * + * Default: - The response payload will be passed through from the integration response to + * the route response or method response without modification. + * + * @param contentHandling Specifies how to handle response payload content type conversions. + */ + override fun contentHandling(contentHandling: ContentHandling) { + cdkBuilder.contentHandling(contentHandling.let(ContentHandling::unwrap)) + } + /** * Specifies the IAM role required for the integration. * @@ -275,6 +313,20 @@ public open class WebSocketIntegration( cdkBuilder.templateSelectionExpression(templateSelectionExpression) } + /** + * The maximum amount of time an integration will run before it returns without a response. + * + * Must be between 50 milliseconds and 29 seconds. + * + * Default: Duration.seconds(29) + * + * @param timeout The maximum amount of time an integration will run before it returns without a + * response. + */ + override fun timeout(timeout: Duration) { + cdkBuilder.timeout(timeout.let(Duration::unwrap)) + } + /** * The WebSocket API to which this integration should be bound. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apigatewayv2/WebSocketIntegrationProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apigatewayv2/WebSocketIntegrationProps.kt index b3ae0b66d4..ea007eeda9 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apigatewayv2/WebSocketIntegrationProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apigatewayv2/WebSocketIntegrationProps.kt @@ -2,6 +2,7 @@ package io.cloudshiftdev.awscdk.services.apigatewayv2 +import io.cloudshiftdev.awscdk.Duration import io.cloudshiftdev.awscdk.common.CdkDslMarker import io.cloudshiftdev.awscdk.common.CdkObject import io.cloudshiftdev.awscdk.common.CdkObjectWrappers @@ -18,6 +19,7 @@ import kotlin.collections.Map * ``` * // The code below shows an example of how to instantiate this type. * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.*; * import io.cloudshiftdev.awscdk.services.apigatewayv2.*; * import io.cloudshiftdev.awscdk.services.iam.*; * Role role; @@ -27,6 +29,7 @@ import kotlin.collections.Map * .integrationUri("integrationUri") * .webSocketApi(webSocketApi) * // the properties below are optional + * .contentHandling(ContentHandling.CONVERT_TO_BINARY) * .credentialsRole(role) * .integrationMethod("integrationMethod") * .passthroughBehavior(PassthroughBehavior.WHEN_NO_MATCH) @@ -35,10 +38,20 @@ import kotlin.collections.Map * .requestTemplates(Map.of( * "requestTemplatesKey", "requestTemplates")) * .templateSelectionExpression("templateSelectionExpression") + * .timeout(Duration.minutes(30)) * .build(); * ``` */ public interface WebSocketIntegrationProps { + /** + * Specifies how to handle response payload content type conversions. + * + * Default: - The response payload will be passed through from the integration response to + * the route response or method response without modification. + */ + public fun contentHandling(): ContentHandling? = + unwrap(this).getContentHandling()?.let(ContentHandling::wrap) + /** * Specifies the IAM role required for the integration. * @@ -106,6 +119,15 @@ public interface WebSocketIntegrationProps { */ public fun templateSelectionExpression(): String? = unwrap(this).getTemplateSelectionExpression() + /** + * The maximum amount of time an integration will run before it returns without a response. + * + * Must be between 50 milliseconds and 29 seconds. + * + * Default: Duration.seconds(29) + */ + public fun timeout(): Duration? = unwrap(this).getTimeout()?.let(Duration::wrap) + /** * The WebSocket API to which this integration should be bound. */ @@ -116,6 +138,11 @@ public interface WebSocketIntegrationProps { */ @CdkDslMarker public interface Builder { + /** + * @param contentHandling Specifies how to handle response payload content type conversions. + */ + public fun contentHandling(contentHandling: ContentHandling) + /** * @param credentialsRole Specifies the IAM role required for the integration. */ @@ -167,6 +194,13 @@ public interface WebSocketIntegrationProps { */ public fun templateSelectionExpression(templateSelectionExpression: String) + /** + * @param timeout The maximum amount of time an integration will run before it returns without a + * response. + * Must be between 50 milliseconds and 29 seconds. + */ + public fun timeout(timeout: Duration) + /** * @param webSocketApi The WebSocket API to which this integration should be bound. */ @@ -178,6 +212,13 @@ public interface WebSocketIntegrationProps { software.amazon.awscdk.services.apigatewayv2.WebSocketIntegrationProps.Builder = software.amazon.awscdk.services.apigatewayv2.WebSocketIntegrationProps.builder() + /** + * @param contentHandling Specifies how to handle response payload content type conversions. + */ + override fun contentHandling(contentHandling: ContentHandling) { + cdkBuilder.contentHandling(contentHandling.let(ContentHandling::unwrap)) + } + /** * @param credentialsRole Specifies the IAM role required for the integration. */ @@ -245,6 +286,15 @@ public interface WebSocketIntegrationProps { cdkBuilder.templateSelectionExpression(templateSelectionExpression) } + /** + * @param timeout The maximum amount of time an integration will run before it returns without a + * response. + * Must be between 50 milliseconds and 29 seconds. + */ + override fun timeout(timeout: Duration) { + cdkBuilder.timeout(timeout.let(Duration::unwrap)) + } + /** * @param webSocketApi The WebSocket API to which this integration should be bound. */ @@ -259,6 +309,15 @@ public interface WebSocketIntegrationProps { private class Wrapper( cdkObject: software.amazon.awscdk.services.apigatewayv2.WebSocketIntegrationProps, ) : CdkObject(cdkObject), WebSocketIntegrationProps { + /** + * Specifies how to handle response payload content type conversions. + * + * Default: - The response payload will be passed through from the integration response to + * the route response or method response without modification. + */ + override fun contentHandling(): ContentHandling? = + unwrap(this).getContentHandling()?.let(ContentHandling::wrap) + /** * Specifies the IAM role required for the integration. * @@ -328,6 +387,15 @@ public interface WebSocketIntegrationProps { override fun templateSelectionExpression(): String? = unwrap(this).getTemplateSelectionExpression() + /** + * The maximum amount of time an integration will run before it returns without a response. + * + * Must be between 50 milliseconds and 29 seconds. + * + * Default: Duration.seconds(29) + */ + override fun timeout(): Duration? = unwrap(this).getTimeout()?.let(Duration::wrap) + /** * The WebSocket API to which this integration should be bound. */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apigatewayv2/WebSocketRouteIntegrationConfig.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apigatewayv2/WebSocketRouteIntegrationConfig.kt index 7e423094ec..341363c831 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apigatewayv2/WebSocketRouteIntegrationConfig.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apigatewayv2/WebSocketRouteIntegrationConfig.kt @@ -2,6 +2,7 @@ package io.cloudshiftdev.awscdk.services.apigatewayv2 +import io.cloudshiftdev.awscdk.Duration import io.cloudshiftdev.awscdk.common.CdkDslMarker import io.cloudshiftdev.awscdk.common.CdkObject import io.cloudshiftdev.awscdk.common.CdkObjectWrappers @@ -18,6 +19,7 @@ import kotlin.collections.Map * ``` * // The code below shows an example of how to instantiate this type. * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.*; * import io.cloudshiftdev.awscdk.services.apigatewayv2.*; * import io.cloudshiftdev.awscdk.services.iam.*; * Role role; @@ -26,6 +28,7 @@ import kotlin.collections.Map * .type(WebSocketIntegrationType.AWS_PROXY) * .uri("uri") * // the properties below are optional + * .contentHandling(ContentHandling.CONVERT_TO_BINARY) * .credentialsRole(role) * .method("method") * .passthroughBehavior(PassthroughBehavior.WHEN_NO_MATCH) @@ -34,10 +37,20 @@ import kotlin.collections.Map * .requestTemplates(Map.of( * "requestTemplatesKey", "requestTemplates")) * .templateSelectionExpression("templateSelectionExpression") + * .timeout(Duration.minutes(30)) * .build(); * ``` */ public interface WebSocketRouteIntegrationConfig { + /** + * Specifies how to handle response payload content type conversions. + * + * Default: - The response payload will be passed through from the integration response to + * the route response or method response without modification. + */ + public fun contentHandling(): ContentHandling? = + unwrap(this).getContentHandling()?.let(ContentHandling::wrap) + /** * Credentials role. * @@ -83,6 +96,15 @@ public interface WebSocketRouteIntegrationConfig { */ public fun templateSelectionExpression(): String? = unwrap(this).getTemplateSelectionExpression() + /** + * The maximum amount of time an integration will run before it returns without a response. + * + * Must be between 50 milliseconds and 29 seconds. + * + * Default: Duration.seconds(29) + */ + public fun timeout(): Duration? = unwrap(this).getTimeout()?.let(Duration::wrap) + /** * Integration type. */ @@ -98,6 +120,11 @@ public interface WebSocketRouteIntegrationConfig { */ @CdkDslMarker public interface Builder { + /** + * @param contentHandling Specifies how to handle response payload content type conversions. + */ + public fun contentHandling(contentHandling: ContentHandling) + /** * @param credentialsRole Credentials role. */ @@ -128,6 +155,13 @@ public interface WebSocketRouteIntegrationConfig { */ public fun templateSelectionExpression(templateSelectionExpression: String) + /** + * @param timeout The maximum amount of time an integration will run before it returns without a + * response. + * Must be between 50 milliseconds and 29 seconds. + */ + public fun timeout(timeout: Duration) + /** * @param type Integration type. */ @@ -144,6 +178,13 @@ public interface WebSocketRouteIntegrationConfig { software.amazon.awscdk.services.apigatewayv2.WebSocketRouteIntegrationConfig.Builder = software.amazon.awscdk.services.apigatewayv2.WebSocketRouteIntegrationConfig.builder() + /** + * @param contentHandling Specifies how to handle response payload content type conversions. + */ + override fun contentHandling(contentHandling: ContentHandling) { + cdkBuilder.contentHandling(contentHandling.let(ContentHandling::unwrap)) + } + /** * @param credentialsRole Credentials role. */ @@ -186,6 +227,15 @@ public interface WebSocketRouteIntegrationConfig { cdkBuilder.templateSelectionExpression(templateSelectionExpression) } + /** + * @param timeout The maximum amount of time an integration will run before it returns without a + * response. + * Must be between 50 milliseconds and 29 seconds. + */ + override fun timeout(timeout: Duration) { + cdkBuilder.timeout(timeout.let(Duration::unwrap)) + } + /** * @param type Integration type. */ @@ -207,6 +257,15 @@ public interface WebSocketRouteIntegrationConfig { private class Wrapper( cdkObject: software.amazon.awscdk.services.apigatewayv2.WebSocketRouteIntegrationConfig, ) : CdkObject(cdkObject), WebSocketRouteIntegrationConfig { + /** + * Specifies how to handle response payload content type conversions. + * + * Default: - The response payload will be passed through from the integration response to + * the route response or method response without modification. + */ + override fun contentHandling(): ContentHandling? = + unwrap(this).getContentHandling()?.let(ContentHandling::wrap) + /** * Credentials role. * @@ -253,6 +312,15 @@ public interface WebSocketRouteIntegrationConfig { override fun templateSelectionExpression(): String? = unwrap(this).getTemplateSelectionExpression() + /** + * The maximum amount of time an integration will run before it returns without a response. + * + * Must be between 50 milliseconds and 29 seconds. + * + * Default: Duration.seconds(29) + */ + override fun timeout(): Duration? = unwrap(this).getTimeout()?.let(Duration::wrap) + /** * Integration type. */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnApplication.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnApplication.kt index d84bd80611..361a86b5fd 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnApplication.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnApplication.kt @@ -29,7 +29,7 @@ import software.constructs.Construct as SoftwareConstructsConstruct * * Create an application * * Create an environment * * Create a configuration profile - * * Create a deployment strategy + * * Choose a pre-defined deployment strategy or create your own * * Deploy the configuration * * For more information, see [AWS diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnConfigurationProfile.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnConfigurationProfile.kt index 8cc6d09f94..f8253e6a04 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnConfigurationProfile.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnConfigurationProfile.kt @@ -38,7 +38,7 @@ import software.constructs.Construct as SoftwareConstructsConstruct * * Create an application * * Create an environment * * Create a configuration profile - * * Create a deployment strategy + * * Choose a pre-defined deployment strategy or create your own * * Deploy the configuration * * For more information, see [AWS @@ -115,7 +115,7 @@ public open class CfnConfigurationProfile( * The Amazon Resource Name of the AWS Key Management Service key to encrypt new configuration * data versions in the AWS AppConfig hosted configuration store. * - * This attribute is only used for hosted configuration types. To encrypt data managed in other + * This attribute is only used for `hosted` configuration types. To encrypt data managed in other * configuration stores, see the documentation for how to specify an AWS KMS key for that particular * service. */ @@ -588,7 +588,9 @@ public open class CfnConfigurationProfile( * * To validate your application configuration data, you provide a schema or an AWS Lambda function * that runs against the configuration. The configuration deployment or update can only proceed when - * the configuration data is valid. + * the configuration data is valid. For more information, see [About + * validators](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-configuration-profile.html#appconfig-creating-configuration-and-profile-validators) + * in the *AWS AppConfig User Guide* . * * Example: * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnDeployment.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnDeployment.kt index 2b398492f9..975c33386e 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnDeployment.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnDeployment.kt @@ -5,10 +5,14 @@ package io.cloudshiftdev.awscdk.services.appconfig import io.cloudshiftdev.awscdk.CfnResource import io.cloudshiftdev.awscdk.CfnTag import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.IResolvable import io.cloudshiftdev.awscdk.ITaggableV2 import io.cloudshiftdev.awscdk.TagManager import io.cloudshiftdev.awscdk.TreeInspector import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any import kotlin.String import kotlin.Unit import kotlin.collections.List @@ -32,7 +36,7 @@ import software.constructs.Construct as SoftwareConstructsConstruct * * Create an application * * Create an environment * * Create a configuration profile - * * Create a deployment strategy + * * Choose a pre-defined deployment strategy or create your own * * Deploy the configuration * * For more information, see [AWS @@ -53,6 +57,11 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .environmentId("environmentId") * // the properties below are optional * .description("description") + * .dynamicExtensionParameters(List.of(DynamicExtensionParametersProperty.builder() + * .extensionReference("extensionReference") + * .parameterName("parameterName") + * .parameterValue("parameterValue") + * .build())) * .kmsKeyIdentifier("kmsKeyIdentifier") * .tags(List.of(CfnTag.builder() * .key("key") @@ -153,6 +162,35 @@ public open class CfnDeployment( unwrap(this).setDescription(`value`) } + /** + * A map of dynamic extension parameter names to values to pass to associated extensions with + * `PRE_START_DEPLOYMENT` actions. + */ + public open fun dynamicExtensionParameters(): Any? = unwrap(this).getDynamicExtensionParameters() + + /** + * A map of dynamic extension parameter names to values to pass to associated extensions with + * `PRE_START_DEPLOYMENT` actions. + */ + public open fun dynamicExtensionParameters(`value`: IResolvable) { + unwrap(this).setDynamicExtensionParameters(`value`.let(IResolvable::unwrap)) + } + + /** + * A map of dynamic extension parameter names to values to pass to associated extensions with + * `PRE_START_DEPLOYMENT` actions. + */ + public open fun dynamicExtensionParameters(`value`: List) { + unwrap(this).setDynamicExtensionParameters(`value`.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * A map of dynamic extension parameter names to values to pass to associated extensions with + * `PRE_START_DEPLOYMENT` actions. + */ + public open fun dynamicExtensionParameters(vararg `value`: Any): Unit = + dynamicExtensionParameters(`value`.toList()) + /** * The environment ID. */ @@ -254,6 +292,36 @@ public open class CfnDeployment( */ public fun description(description: String) + /** + * A map of dynamic extension parameter names to values to pass to associated extensions with + * `PRE_START_DEPLOYMENT` actions. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html#cfn-appconfig-deployment-dynamicextensionparameters) + * @param dynamicExtensionParameters A map of dynamic extension parameter names to values to + * pass to associated extensions with `PRE_START_DEPLOYMENT` actions. + */ + public fun dynamicExtensionParameters(dynamicExtensionParameters: IResolvable) + + /** + * A map of dynamic extension parameter names to values to pass to associated extensions with + * `PRE_START_DEPLOYMENT` actions. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html#cfn-appconfig-deployment-dynamicextensionparameters) + * @param dynamicExtensionParameters A map of dynamic extension parameter names to values to + * pass to associated extensions with `PRE_START_DEPLOYMENT` actions. + */ + public fun dynamicExtensionParameters(dynamicExtensionParameters: List) + + /** + * A map of dynamic extension parameter names to values to pass to associated extensions with + * `PRE_START_DEPLOYMENT` actions. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html#cfn-appconfig-deployment-dynamicextensionparameters) + * @param dynamicExtensionParameters A map of dynamic extension parameter names to values to + * pass to associated extensions with `PRE_START_DEPLOYMENT` actions. + */ + public fun dynamicExtensionParameters(vararg dynamicExtensionParameters: Any) + /** * The environment ID. * @@ -356,6 +424,41 @@ public open class CfnDeployment( cdkBuilder.description(description) } + /** + * A map of dynamic extension parameter names to values to pass to associated extensions with + * `PRE_START_DEPLOYMENT` actions. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html#cfn-appconfig-deployment-dynamicextensionparameters) + * @param dynamicExtensionParameters A map of dynamic extension parameter names to values to + * pass to associated extensions with `PRE_START_DEPLOYMENT` actions. + */ + override fun dynamicExtensionParameters(dynamicExtensionParameters: IResolvable) { + cdkBuilder.dynamicExtensionParameters(dynamicExtensionParameters.let(IResolvable::unwrap)) + } + + /** + * A map of dynamic extension parameter names to values to pass to associated extensions with + * `PRE_START_DEPLOYMENT` actions. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html#cfn-appconfig-deployment-dynamicextensionparameters) + * @param dynamicExtensionParameters A map of dynamic extension parameter names to values to + * pass to associated extensions with `PRE_START_DEPLOYMENT` actions. + */ + override fun dynamicExtensionParameters(dynamicExtensionParameters: List) { + cdkBuilder.dynamicExtensionParameters(dynamicExtensionParameters.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * A map of dynamic extension parameter names to values to pass to associated extensions with + * `PRE_START_DEPLOYMENT` actions. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html#cfn-appconfig-deployment-dynamicextensionparameters) + * @param dynamicExtensionParameters A map of dynamic extension parameter names to values to + * pass to associated extensions with `PRE_START_DEPLOYMENT` actions. + */ + override fun dynamicExtensionParameters(vararg dynamicExtensionParameters: Any): Unit = + dynamicExtensionParameters(dynamicExtensionParameters.toList()) + /** * The environment ID. * @@ -425,4 +528,145 @@ public open class CfnDeployment( software.amazon.awscdk.services.appconfig.CfnDeployment = wrapped.cdkObject as software.amazon.awscdk.services.appconfig.CfnDeployment } + + /** + * A map of dynamic extension parameter names to values to pass to associated extensions with + * `PRE_START_DEPLOYMENT` actions. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.appconfig.*; + * DynamicExtensionParametersProperty dynamicExtensionParametersProperty = + * DynamicExtensionParametersProperty.builder() + * .extensionReference("extensionReference") + * .parameterName("parameterName") + * .parameterValue("parameterValue") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-deployment-dynamicextensionparameters.html) + */ + public interface DynamicExtensionParametersProperty { + /** + * The ARN or ID of the extension for which you are inserting a dynamic parameter. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-deployment-dynamicextensionparameters.html#cfn-appconfig-deployment-dynamicextensionparameters-extensionreference) + */ + public fun extensionReference(): String? = unwrap(this).getExtensionReference() + + /** + * The parameter name. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-deployment-dynamicextensionparameters.html#cfn-appconfig-deployment-dynamicextensionparameters-parametername) + */ + public fun parameterName(): String? = unwrap(this).getParameterName() + + /** + * The parameter value. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-deployment-dynamicextensionparameters.html#cfn-appconfig-deployment-dynamicextensionparameters-parametervalue) + */ + public fun parameterValue(): String? = unwrap(this).getParameterValue() + + /** + * A builder for [DynamicExtensionParametersProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param extensionReference The ARN or ID of the extension for which you are inserting a + * dynamic parameter. + */ + public fun extensionReference(extensionReference: String) + + /** + * @param parameterName The parameter name. + */ + public fun parameterName(parameterName: String) + + /** + * @param parameterValue The parameter value. + */ + public fun parameterValue(parameterValue: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.appconfig.CfnDeployment.DynamicExtensionParametersProperty.Builder + = + software.amazon.awscdk.services.appconfig.CfnDeployment.DynamicExtensionParametersProperty.builder() + + /** + * @param extensionReference The ARN or ID of the extension for which you are inserting a + * dynamic parameter. + */ + override fun extensionReference(extensionReference: String) { + cdkBuilder.extensionReference(extensionReference) + } + + /** + * @param parameterName The parameter name. + */ + override fun parameterName(parameterName: String) { + cdkBuilder.parameterName(parameterName) + } + + /** + * @param parameterValue The parameter value. + */ + override fun parameterValue(parameterValue: String) { + cdkBuilder.parameterValue(parameterValue) + } + + public fun build(): + software.amazon.awscdk.services.appconfig.CfnDeployment.DynamicExtensionParametersProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.appconfig.CfnDeployment.DynamicExtensionParametersProperty, + ) : CdkObject(cdkObject), DynamicExtensionParametersProperty { + /** + * The ARN or ID of the extension for which you are inserting a dynamic parameter. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-deployment-dynamicextensionparameters.html#cfn-appconfig-deployment-dynamicextensionparameters-extensionreference) + */ + override fun extensionReference(): String? = unwrap(this).getExtensionReference() + + /** + * The parameter name. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-deployment-dynamicextensionparameters.html#cfn-appconfig-deployment-dynamicextensionparameters-parametername) + */ + override fun parameterName(): String? = unwrap(this).getParameterName() + + /** + * The parameter value. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-deployment-dynamicextensionparameters.html#cfn-appconfig-deployment-dynamicextensionparameters-parametervalue) + */ + override fun parameterValue(): String? = unwrap(this).getParameterValue() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): + DynamicExtensionParametersProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.appconfig.CfnDeployment.DynamicExtensionParametersProperty): + DynamicExtensionParametersProperty = CdkObjectWrappers.wrap(cdkObject) as? + DynamicExtensionParametersProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: DynamicExtensionParametersProperty): + software.amazon.awscdk.services.appconfig.CfnDeployment.DynamicExtensionParametersProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.appconfig.CfnDeployment.DynamicExtensionParametersProperty + } + } } diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnDeploymentProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnDeploymentProps.kt index 6c661e5717..ba03364259 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnDeploymentProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnDeploymentProps.kt @@ -3,9 +3,11 @@ package io.cloudshiftdev.awscdk.services.appconfig import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IResolvable import io.cloudshiftdev.awscdk.common.CdkDslMarker import io.cloudshiftdev.awscdk.common.CdkObject import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any import kotlin.String import kotlin.Unit import kotlin.collections.List @@ -27,6 +29,11 @@ import kotlin.collections.List * .environmentId("environmentId") * // the properties below are optional * .description("description") + * .dynamicExtensionParameters(List.of(DynamicExtensionParametersProperty.builder() + * .extensionReference("extensionReference") + * .parameterName("parameterName") + * .parameterValue("parameterValue") + * .build())) * .kmsKeyIdentifier("kmsKeyIdentifier") * .tags(List.of(CfnTag.builder() * .key("key") @@ -76,6 +83,14 @@ public interface CfnDeploymentProps { */ public fun description(): String? = unwrap(this).getDescription() + /** + * A map of dynamic extension parameter names to values to pass to associated extensions with + * `PRE_START_DEPLOYMENT` actions. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html#cfn-appconfig-deployment-dynamicextensionparameters) + */ + public fun dynamicExtensionParameters(): Any? = unwrap(this).getDynamicExtensionParameters() + /** * The environment ID. * @@ -134,6 +149,24 @@ public interface CfnDeploymentProps { */ public fun description(description: String) + /** + * @param dynamicExtensionParameters A map of dynamic extension parameter names to values to + * pass to associated extensions with `PRE_START_DEPLOYMENT` actions. + */ + public fun dynamicExtensionParameters(dynamicExtensionParameters: IResolvable) + + /** + * @param dynamicExtensionParameters A map of dynamic extension parameter names to values to + * pass to associated extensions with `PRE_START_DEPLOYMENT` actions. + */ + public fun dynamicExtensionParameters(dynamicExtensionParameters: List) + + /** + * @param dynamicExtensionParameters A map of dynamic extension parameter names to values to + * pass to associated extensions with `PRE_START_DEPLOYMENT` actions. + */ + public fun dynamicExtensionParameters(vararg dynamicExtensionParameters: Any) + /** * @param environmentId The environment ID. */ @@ -202,6 +235,29 @@ public interface CfnDeploymentProps { cdkBuilder.description(description) } + /** + * @param dynamicExtensionParameters A map of dynamic extension parameter names to values to + * pass to associated extensions with `PRE_START_DEPLOYMENT` actions. + */ + override fun dynamicExtensionParameters(dynamicExtensionParameters: IResolvable) { + cdkBuilder.dynamicExtensionParameters(dynamicExtensionParameters.let(IResolvable::unwrap)) + } + + /** + * @param dynamicExtensionParameters A map of dynamic extension parameter names to values to + * pass to associated extensions with `PRE_START_DEPLOYMENT` actions. + */ + override fun dynamicExtensionParameters(dynamicExtensionParameters: List) { + cdkBuilder.dynamicExtensionParameters(dynamicExtensionParameters.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param dynamicExtensionParameters A map of dynamic extension parameter names to values to + * pass to associated extensions with `PRE_START_DEPLOYMENT` actions. + */ + override fun dynamicExtensionParameters(vararg dynamicExtensionParameters: Any): Unit = + dynamicExtensionParameters(dynamicExtensionParameters.toList()) + /** * @param environmentId The environment ID. */ @@ -279,6 +335,14 @@ public interface CfnDeploymentProps { */ override fun description(): String? = unwrap(this).getDescription() + /** + * A map of dynamic extension parameter names to values to pass to associated extensions with + * `PRE_START_DEPLOYMENT` actions. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html#cfn-appconfig-deployment-dynamicextensionparameters) + */ + override fun dynamicExtensionParameters(): Any? = unwrap(this).getDynamicExtensionParameters() + /** * The environment ID. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnDeploymentStrategy.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnDeploymentStrategy.kt index 87ddff0930..5cf0412f0a 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnDeploymentStrategy.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnDeploymentStrategy.kt @@ -30,7 +30,7 @@ import software.constructs.Construct as SoftwareConstructsConstruct * * Create an application * * Create an environment * * Create a configuration profile - * * Create a deployment strategy + * * Choose a pre-defined deployment strategy or create your own * * Deploy the configuration * * For more information, see [AWS @@ -82,7 +82,7 @@ public open class CfnDeploymentStrategy( ) /** - * + * The deployment strategy ID. */ public open fun attrId(): String = unwrap(this).getAttrId() diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnEnvironment.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnEnvironment.kt index a87ae4f4ef..5d41f5f819 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnEnvironment.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnEnvironment.kt @@ -35,7 +35,7 @@ import software.constructs.Construct as SoftwareConstructsConstruct * * Create an application * * Create an environment * * Create a configuration profile - * * Create a deployment strategy + * * Choose a pre-defined deployment strategy or create your own * * Deploy the configuration * * For more information, see [AWS diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnExtension.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnExtension.kt index bcb4255918..b76b6a2364 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnExtension.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnExtension.kt @@ -41,8 +41,8 @@ import software.constructs.Construct as SoftwareConstructsConstruct * * For a custom Amazon SQS notification extension, enter the ARN of an Amazon SQS message queue in * the `Uri` field. * - * For more information about extensions, see [Working with AWS AppConfig - * extensions](https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html) + * For more information about extensions, see [Extending + * workflows](https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html) * in the *AWS AppConfig User Guide* . * * Example: @@ -63,6 +63,7 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .required(false) * // the properties below are optional * .description("description") + * .dynamic(false) * .build())) * .tags(List.of(CfnTag.builder() * .key("key") @@ -428,21 +429,7 @@ public open class CfnExtension( } /** - * An action defines the tasks that the extension performs during the AWS AppConfig workflow. - * - * Each action includes an action point such as `ON_CREATE_HOSTED_CONFIGURATION` , - * `PRE_DEPLOYMENT` , or `ON_DEPLOYMENT` . Each action also includes a name, a URI to an AWS Lambda - * function, and an Amazon Resource Name (ARN) for an AWS Identity and Access Management assume role. - * You specify the name, URI, and ARN for each *action point* defined in the extension. You can - * specify the following actions for an extension: - * - * * `PRE_CREATE_HOSTED_CONFIGURATION_VERSION` - * * `PRE_START_DEPLOYMENT` - * * `ON_DEPLOYMENT_START` - * * `ON_DEPLOYMENT_STEP` - * * `ON_DEPLOYMENT_BAKING` - * * `ON_DEPLOYMENT_COMPLETE` - * * `ON_DEPLOYMENT_ROLLED_BACK` + * The actions defined in the extension. * * Example: * @@ -463,7 +450,7 @@ public open class CfnExtension( */ public interface ActionProperty { /** - * Information about the action. + * Information about actions defined in the extension. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-extension-action.html#cfn-appconfig-extension-action-description) */ @@ -500,7 +487,7 @@ public open class CfnExtension( @CdkDslMarker public interface Builder { /** - * @param description Information about the action. + * @param description Information about actions defined in the extension. */ public fun description(description: String) @@ -530,7 +517,7 @@ public open class CfnExtension( software.amazon.awscdk.services.appconfig.CfnExtension.ActionProperty.builder() /** - * @param description Information about the action. + * @param description Information about actions defined in the extension. */ override fun description(description: String) { cdkBuilder.description(description) @@ -569,7 +556,7 @@ public open class CfnExtension( cdkObject: software.amazon.awscdk.services.appconfig.CfnExtension.ActionProperty, ) : CdkObject(cdkObject), ActionProperty { /** - * Information about the action. + * Information about actions defined in the extension. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-extension-action.html#cfn-appconfig-extension-action-description) */ @@ -624,8 +611,8 @@ public open class CfnExtension( * entered in an extension when invoked. * * Parameter values are specified in an extension association. For more information about - * extensions, see [Working with AWS AppConfig - * extensions](https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html) + * extensions, see [Extending + * workflows](https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html) * in the *AWS AppConfig User Guide* . * * Example: @@ -638,6 +625,7 @@ public open class CfnExtension( * .required(false) * // the properties below are optional * .description("description") + * .dynamic(false) * .build(); * ``` * @@ -651,6 +639,16 @@ public open class CfnExtension( */ public fun description(): String? = unwrap(this).getDescription() + /** + * Indicates whether this parameter's value can be supplied at the extension's action point + * instead of during extension association. + * + * Dynamic parameters can't be marked `Required` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-extension-parameter.html#cfn-appconfig-extension-parameter-dynamic) + */ + public fun `dynamic`(): Any? = unwrap(this).getDynamic() + /** * A parameter value must be specified in the extension association. * @@ -668,6 +666,20 @@ public open class CfnExtension( */ public fun description(description: String) + /** + * @param dynamic Indicates whether this parameter's value can be supplied at the extension's + * action point instead of during extension association. + * Dynamic parameters can't be marked `Required` . + */ + public fun `dynamic`(`dynamic`: Boolean) + + /** + * @param dynamic Indicates whether this parameter's value can be supplied at the extension's + * action point instead of during extension association. + * Dynamic parameters can't be marked `Required` . + */ + public fun `dynamic`(`dynamic`: IResolvable) + /** * @param required A parameter value must be specified in the extension association. */ @@ -691,6 +703,24 @@ public open class CfnExtension( cdkBuilder.description(description) } + /** + * @param dynamic Indicates whether this parameter's value can be supplied at the extension's + * action point instead of during extension association. + * Dynamic parameters can't be marked `Required` . + */ + override fun `dynamic`(`dynamic`: Boolean) { + cdkBuilder.`dynamic`(`dynamic`) + } + + /** + * @param dynamic Indicates whether this parameter's value can be supplied at the extension's + * action point instead of during extension association. + * Dynamic parameters can't be marked `Required` . + */ + override fun `dynamic`(`dynamic`: IResolvable) { + cdkBuilder.`dynamic`(`dynamic`.let(IResolvable::unwrap)) + } + /** * @param required A parameter value must be specified in the extension association. */ @@ -719,6 +749,16 @@ public open class CfnExtension( */ override fun description(): String? = unwrap(this).getDescription() + /** + * Indicates whether this parameter's value can be supplied at the extension's action point + * instead of during extension association. + * + * Dynamic parameters can't be marked `Required` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-extension-parameter.html#cfn-appconfig-extension-parameter-dynamic) + */ + override fun `dynamic`(): Any? = unwrap(this).getDynamic() + /** * A parameter value must be specified in the extension association. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnExtensionAssociation.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnExtensionAssociation.kt index f5da1f2a7a..a47b0d2d65 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnExtensionAssociation.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnExtensionAssociation.kt @@ -28,9 +28,8 @@ import software.constructs.Construct as SoftwareConstructsConstruct * deployment is started for a specific application. Defining which extension to associate with an AWS * AppConfig resource is called an *extension association* . An extension association is a specified * relationship between an extension and an AWS AppConfig resource, such as an application or a - * configuration profile. For more information about extensions and associations, see [Working with AWS - * AppConfig - * extensions](https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html) + * configuration profile. For more information about extensions and associations, see [Extending + * workflows](https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html) * in the *AWS AppConfig User Guide* . * * Example: diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnExtensionProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnExtensionProps.kt index 0c796443a7..29bbda3341 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnExtensionProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/CfnExtensionProps.kt @@ -35,6 +35,7 @@ import kotlin.collections.Map * .required(false) * // the properties below are optional * .description("description") + * .dynamic(false) * .build())) * .tags(List.of(CfnTag.builder() * .key("key") diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/ConfigurationContent.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/ConfigurationContent.kt index 44c1faa349..3c238a4d94 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/ConfigurationContent.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/ConfigurationContent.kt @@ -12,11 +12,14 @@ import kotlin.String * Example: * * ``` - * Application application; - * HostedConfiguration.Builder.create(this, "MyHostedConfiguration") - * .application(application) + * Application app = new Application(this, "MyApp"); + * Environment env = Environment.Builder.create(this, "MyEnv") + * .application(app) + * .build(); + * HostedConfiguration.Builder.create(this, "MyHostedConfig") + * .application(app) + * .deployTo(List.of(env)) * .content(ConfigurationContent.fromInlineText("This is my configuration content.")) - * .type(ConfigurationType.FEATURE_FLAGS) * .build(); * ``` */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/ConfigurationOptions.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/ConfigurationOptions.kt index 3c94774a62..17d4a08471 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/ConfigurationOptions.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/ConfigurationOptions.kt @@ -40,7 +40,10 @@ public interface ConfigurationOptions { * The list of environments to deploy the configuration to. * * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. * * Default: - None. */ @@ -100,14 +103,20 @@ public interface ConfigurationOptions { /** * @param deployTo The list of environments to deploy the configuration to. * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. */ public fun deployTo(deployTo: List) /** * @param deployTo The list of environments to deploy the configuration to. * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. */ public fun deployTo(vararg deployTo: IEnvironment) @@ -154,7 +163,10 @@ public interface ConfigurationOptions { /** * @param deployTo The list of environments to deploy the configuration to. * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. */ override fun deployTo(deployTo: List) { cdkBuilder.deployTo(deployTo.map(IEnvironment::unwrap)) @@ -163,7 +175,10 @@ public interface ConfigurationOptions { /** * @param deployTo The list of environments to deploy the configuration to. * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. */ override fun deployTo(vararg deployTo: IEnvironment): Unit = deployTo(deployTo.toList()) @@ -225,7 +240,10 @@ public interface ConfigurationOptions { * The list of environments to deploy the configuration to. * * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. * * Default: - None. */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/ConfigurationProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/ConfigurationProps.kt index cebc8f459d..3da36f062c 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/ConfigurationProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/ConfigurationProps.kt @@ -57,14 +57,20 @@ public interface ConfigurationProps : ConfigurationOptions { /** * @param deployTo The list of environments to deploy the configuration to. * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. */ public fun deployTo(deployTo: List) /** * @param deployTo The list of environments to deploy the configuration to. * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. */ public fun deployTo(vararg deployTo: IEnvironment) @@ -118,7 +124,10 @@ public interface ConfigurationProps : ConfigurationOptions { /** * @param deployTo The list of environments to deploy the configuration to. * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. */ override fun deployTo(deployTo: List) { cdkBuilder.deployTo(deployTo.map(IEnvironment::unwrap)) @@ -127,7 +136,10 @@ public interface ConfigurationProps : ConfigurationOptions { /** * @param deployTo The list of environments to deploy the configuration to. * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. */ override fun deployTo(vararg deployTo: IEnvironment): Unit = deployTo(deployTo.toList()) @@ -194,7 +206,10 @@ public interface ConfigurationProps : ConfigurationOptions { * The list of environments to deploy the configuration to. * * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. * * Default: - None. */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/Environment.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/Environment.kt index e423c0e046..935701409e 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/Environment.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/Environment.kt @@ -4,6 +4,7 @@ package io.cloudshiftdev.awscdk.services.appconfig import io.cloudshiftdev.awscdk.Resource import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers import kotlin.String import kotlin.Unit import kotlin.collections.List @@ -21,10 +22,15 @@ import software.constructs.Construct as SoftwareConstructsConstruct * Environment env = Environment.Builder.create(this, "MyEnv") * .application(app) * .build(); - * HostedConfiguration.Builder.create(this, "MyHostedConfig") + * HostedConfiguration.Builder.create(this, "MyFirstHostedConfig") * .application(app) * .deployTo(List.of(env)) - * .content(ConfigurationContent.fromInlineText("This is my configuration content.")) + * .content(ConfigurationContent.fromInlineText("This is my first configuration content.")) + * .build(); + * HostedConfiguration.Builder.create(this, "MySecondHostedConfig") + * .application(app) + * .deployTo(List.of(env)) + * .content(ConfigurationContent.fromInlineText("This is my second configuration content.")) * .build(); * ``` * @@ -49,6 +55,32 @@ public open class Environment( ) : this(scope, id, EnvironmentProps(props) ) + /** + * Creates a deployment of the supplied configuration to this environment. + * + * Note that you can only deploy one configuration at a time to an environment. + * However, you can deploy one configuration each to different environments at the same time. + * If more than one deployment is requested for this environment, they will occur in the same + * order they were provided. + * + * @param configuration + */ + public override fun addDeployment(configuration: IConfiguration) { + unwrap(this).addDeployment(configuration.let(IConfiguration::unwrap)) + } + + /** + * Creates a deployment for each of the supplied configurations to this environment. + * + * These configurations will be deployed in the same order as the input array. + * + * @param configurations + */ + public override fun addDeployments(vararg configurations: IConfiguration) { + unwrap(this).addDeployments(*configurations.map{CdkObjectWrappers.unwrap(it) as + software.amazon.awscdk.services.appconfig.IConfiguration}.toTypedArray()) + } + /** * Adds an extension association to the environment. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/EnvironmentProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/EnvironmentProps.kt index 1497cb96b0..1149e195f5 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/EnvironmentProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/EnvironmentProps.kt @@ -19,10 +19,15 @@ import kotlin.collections.List * Environment env = Environment.Builder.create(this, "MyEnv") * .application(app) * .build(); - * HostedConfiguration.Builder.create(this, "MyHostedConfig") + * HostedConfiguration.Builder.create(this, "MyFirstHostedConfig") * .application(app) * .deployTo(List.of(env)) - * .content(ConfigurationContent.fromInlineText("This is my configuration content.")) + * .content(ConfigurationContent.fromInlineText("This is my first configuration content.")) + * .build(); + * HostedConfiguration.Builder.create(this, "MySecondHostedConfig") + * .application(app) + * .deployTo(List.of(env)) + * .content(ConfigurationContent.fromInlineText("This is my second configuration content.")) * .build(); * ``` */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/HostedConfiguration.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/HostedConfiguration.kt index d3d2a5c447..319028bb01 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/HostedConfiguration.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/HostedConfiguration.kt @@ -19,11 +19,14 @@ import software.constructs.Construct as SoftwareConstructsConstruct * Example: * * ``` - * Application application; - * HostedConfiguration.Builder.create(this, "MyHostedConfiguration") - * .application(application) + * Application app = new Application(this, "MyApp"); + * Environment env = Environment.Builder.create(this, "MyEnv") + * .application(app) + * .build(); + * HostedConfiguration.Builder.create(this, "MyHostedConfig") + * .application(app) + * .deployTo(List.of(env)) * .content(ConfigurationContent.fromInlineText("This is my configuration content.")) - * .type(ConfigurationType.FEATURE_FLAGS) * .build(); * ``` */ @@ -469,7 +472,10 @@ public open class HostedConfiguration( * The list of environments to deploy the configuration to. * * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. * * Default: - None. * @@ -481,7 +487,10 @@ public open class HostedConfiguration( * The list of environments to deploy the configuration to. * * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. * * Default: - None. * @@ -601,7 +610,10 @@ public open class HostedConfiguration( * The list of environments to deploy the configuration to. * * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. * * Default: - None. * @@ -615,7 +627,10 @@ public open class HostedConfiguration( * The list of environments to deploy the configuration to. * * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. * * Default: - None. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/HostedConfigurationOptions.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/HostedConfigurationOptions.kt index 0f22a3dd08..5061e3e6bf 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/HostedConfigurationOptions.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/HostedConfigurationOptions.kt @@ -74,14 +74,20 @@ public interface HostedConfigurationOptions : ConfigurationOptions { /** * @param deployTo The list of environments to deploy the configuration to. * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. */ public fun deployTo(deployTo: List) /** * @param deployTo The list of environments to deploy the configuration to. * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. */ public fun deployTo(vararg deployTo: IEnvironment) @@ -146,7 +152,10 @@ public interface HostedConfigurationOptions : ConfigurationOptions { /** * @param deployTo The list of environments to deploy the configuration to. * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. */ override fun deployTo(deployTo: List) { cdkBuilder.deployTo(deployTo.map(IEnvironment::unwrap)) @@ -155,7 +164,10 @@ public interface HostedConfigurationOptions : ConfigurationOptions { /** * @param deployTo The list of environments to deploy the configuration to. * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. */ override fun deployTo(vararg deployTo: IEnvironment): Unit = deployTo(deployTo.toList()) @@ -237,7 +249,10 @@ public interface HostedConfigurationOptions : ConfigurationOptions { * The list of environments to deploy the configuration to. * * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. * * Default: - None. */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/HostedConfigurationProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/HostedConfigurationProps.kt index 351b43917b..b351f59f8f 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/HostedConfigurationProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/HostedConfigurationProps.kt @@ -17,11 +17,14 @@ import kotlin.collections.List * Example: * * ``` - * Application application; - * HostedConfiguration.Builder.create(this, "MyHostedConfiguration") - * .application(application) + * Application app = new Application(this, "MyApp"); + * Environment env = Environment.Builder.create(this, "MyEnv") + * .application(app) + * .build(); + * HostedConfiguration.Builder.create(this, "MyHostedConfig") + * .application(app) + * .deployTo(List.of(env)) * .content(ConfigurationContent.fromInlineText("This is my configuration content.")) - * .type(ConfigurationType.FEATURE_FLAGS) * .build(); * ``` */ @@ -63,14 +66,20 @@ public interface HostedConfigurationProps : ConfigurationProps { /** * @param deployTo The list of environments to deploy the configuration to. * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. */ public fun deployTo(deployTo: List) /** * @param deployTo The list of environments to deploy the configuration to. * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. */ public fun deployTo(vararg deployTo: IEnvironment) @@ -142,7 +151,10 @@ public interface HostedConfigurationProps : ConfigurationProps { /** * @param deployTo The list of environments to deploy the configuration to. * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. */ override fun deployTo(deployTo: List) { cdkBuilder.deployTo(deployTo.map(IEnvironment::unwrap)) @@ -151,7 +163,10 @@ public interface HostedConfigurationProps : ConfigurationProps { /** * @param deployTo The list of environments to deploy the configuration to. * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. */ override fun deployTo(vararg deployTo: IEnvironment): Unit = deployTo(deployTo.toList()) @@ -238,7 +253,10 @@ public interface HostedConfigurationProps : ConfigurationProps { * The list of environments to deploy the configuration to. * * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. * * Default: - None. */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/IEnvironment.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/IEnvironment.kt index 88289abbc7..d1348f000c 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/IEnvironment.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/IEnvironment.kt @@ -18,6 +18,27 @@ import kotlin.jvm.JvmName * */ public interface IEnvironment : IResource { + /** + * Creates a deployment of the supplied configuration to this environment. + * + * Note that you can only deploy one configuration at a time to an environment. + * However, you can deploy one configuration each to different environments at the same time. + * If more than one deployment is requested for this environment, they will occur in the same + * order they were provided. + * + * @param configuration The configuration that will be deployed to this environment. + */ + public fun addDeployment(configuration: IConfiguration) + + /** + * Creates a deployment for each of the supplied configurations to this environment. + * + * These configurations will be deployed in the same order as the input array. + * + * @param configurations The configurations that will be deployed to this environment. + */ + public fun addDeployments(vararg configurations: IConfiguration) + /** * Adds an extension association to the environment. * @@ -315,6 +336,32 @@ public interface IEnvironment : IResource { private class Wrapper( cdkObject: software.amazon.awscdk.services.appconfig.IEnvironment, ) : CdkObject(cdkObject), IEnvironment { + /** + * Creates a deployment of the supplied configuration to this environment. + * + * Note that you can only deploy one configuration at a time to an environment. + * However, you can deploy one configuration each to different environments at the same time. + * If more than one deployment is requested for this environment, they will occur in the same + * order they were provided. + * + * @param configuration The configuration that will be deployed to this environment. + */ + override fun addDeployment(configuration: IConfiguration) { + unwrap(this).addDeployment(configuration.let(IConfiguration::unwrap)) + } + + /** + * Creates a deployment for each of the supplied configurations to this environment. + * + * These configurations will be deployed in the same order as the input array. + * + * @param configurations The configurations that will be deployed to this environment. + */ + override fun addDeployments(vararg configurations: IConfiguration) { + unwrap(this).addDeployments(*configurations.map{CdkObjectWrappers.unwrap(it) as + software.amazon.awscdk.services.appconfig.IConfiguration}.toTypedArray()) + } + /** * Adds an extension association to the environment. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/SourcedConfiguration.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/SourcedConfiguration.kt index 11c26d7d1c..b64218a348 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/SourcedConfiguration.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/SourcedConfiguration.kt @@ -459,7 +459,10 @@ public open class SourcedConfiguration( * The list of environments to deploy the configuration to. * * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. * * Default: - None. * @@ -471,7 +474,10 @@ public open class SourcedConfiguration( * The list of environments to deploy the configuration to. * * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. * * Default: - None. * @@ -592,7 +598,10 @@ public open class SourcedConfiguration( * The list of environments to deploy the configuration to. * * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. * * Default: - None. * @@ -606,7 +615,10 @@ public open class SourcedConfiguration( * The list of environments to deploy the configuration to. * * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. * * Default: - None. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/SourcedConfigurationOptions.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/SourcedConfigurationOptions.kt index eeace542f0..7349ef1723 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/SourcedConfigurationOptions.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/SourcedConfigurationOptions.kt @@ -74,14 +74,20 @@ public interface SourcedConfigurationOptions : ConfigurationOptions { /** * @param deployTo The list of environments to deploy the configuration to. * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. */ public fun deployTo(deployTo: List) /** * @param deployTo The list of environments to deploy the configuration to. * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. */ public fun deployTo(vararg deployTo: IEnvironment) @@ -146,7 +152,10 @@ public interface SourcedConfigurationOptions : ConfigurationOptions { /** * @param deployTo The list of environments to deploy the configuration to. * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. */ override fun deployTo(deployTo: List) { cdkBuilder.deployTo(deployTo.map(IEnvironment::unwrap)) @@ -155,7 +164,10 @@ public interface SourcedConfigurationOptions : ConfigurationOptions { /** * @param deployTo The list of environments to deploy the configuration to. * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. */ override fun deployTo(vararg deployTo: IEnvironment): Unit = deployTo(deployTo.toList()) @@ -240,7 +252,10 @@ public interface SourcedConfigurationOptions : ConfigurationOptions { * The list of environments to deploy the configuration to. * * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. * * Default: - None. */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/SourcedConfigurationProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/SourcedConfigurationProps.kt index 10361db8fa..fd5085f812 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/SourcedConfigurationProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appconfig/SourcedConfigurationProps.kt @@ -64,14 +64,20 @@ public interface SourcedConfigurationProps : ConfigurationProps { /** * @param deployTo The list of environments to deploy the configuration to. * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. */ public fun deployTo(deployTo: List) /** * @param deployTo The list of environments to deploy the configuration to. * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. */ public fun deployTo(vararg deployTo: IEnvironment) @@ -143,7 +149,10 @@ public interface SourcedConfigurationProps : ConfigurationProps { /** * @param deployTo The list of environments to deploy the configuration to. * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. */ override fun deployTo(deployTo: List) { cdkBuilder.deployTo(deployTo.map(IEnvironment::unwrap)) @@ -152,7 +161,10 @@ public interface SourcedConfigurationProps : ConfigurationProps { /** * @param deployTo The list of environments to deploy the configuration to. * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. */ override fun deployTo(vararg deployTo: IEnvironment): Unit = deployTo(deployTo.toList()) @@ -242,7 +254,10 @@ public interface SourcedConfigurationProps : ConfigurationProps { * The list of environments to deploy the configuration to. * * If this parameter is not specified, then there will be no - * deployment. + * deployment created alongside this configuration. + * + * Deployments can be added later using the `IEnvironment.addDeployment` or + * `IEnvironment.addDeployments` methods. * * Default: - None. */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appintegrations/CfnApplication.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appintegrations/CfnApplication.kt new file mode 100644 index 0000000000..c0679219ca --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appintegrations/CfnApplication.kt @@ -0,0 +1,669 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.appintegrations + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.ITaggableV2 +import io.cloudshiftdev.awscdk.TagManager +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.jvm.JvmName +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * Creates and persists an Application resource. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.appintegrations.*; + * CfnApplication cfnApplication = CfnApplication.Builder.create(this, "MyCfnApplication") + * .applicationSourceConfig(ApplicationSourceConfigProperty.builder() + * .externalUrlConfig(ExternalUrlConfigProperty.builder() + * .accessUrl("accessUrl") + * // the properties below are optional + * .approvedOrigins(List.of("approvedOrigins")) + * .build()) + * .build()) + * .description("description") + * .name("name") + * // the properties below are optional + * .namespace("namespace") + * .permissions(List.of("permissions")) + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html) + */ +public open class CfnApplication( + cdkObject: software.amazon.awscdk.services.appintegrations.CfnApplication, +) : CfnResource(cdkObject), IInspectable, ITaggableV2 { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnApplicationProps, + ) : + this(software.amazon.awscdk.services.appintegrations.CfnApplication(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnApplicationProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnApplicationProps.Builder.() -> Unit, + ) : this(scope, id, CfnApplicationProps(props) + ) + + /** + * The configuration for where the application should be loaded from. + */ + public open fun applicationSourceConfig(): Any = unwrap(this).getApplicationSourceConfig() + + /** + * The configuration for where the application should be loaded from. + */ + public open fun applicationSourceConfig(`value`: IResolvable) { + unwrap(this).setApplicationSourceConfig(`value`.let(IResolvable::unwrap)) + } + + /** + * The configuration for where the application should be loaded from. + */ + public open fun applicationSourceConfig(`value`: ApplicationSourceConfigProperty) { + unwrap(this).setApplicationSourceConfig(`value`.let(ApplicationSourceConfigProperty::unwrap)) + } + + /** + * The configuration for where the application should be loaded from. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("2a35d78581f4ed11eaa4326b54b30476efb0d4f79fdc3e751508a967d541817f") + public open + fun applicationSourceConfig(`value`: ApplicationSourceConfigProperty.Builder.() -> Unit): Unit + = applicationSourceConfig(ApplicationSourceConfigProperty(`value`)) + + /** + * The Amazon Resource Name (ARN) of the Application. + */ + public open fun attrApplicationArn(): String = unwrap(this).getAttrApplicationArn() + + /** + * A unique identifier for the Application. + */ + public open fun attrId(): String = unwrap(this).getAttrId() + + /** + * Tag Manager which manages the tags for this resource. + */ + public override fun cdkTagManager(): TagManager = + unwrap(this).getCdkTagManager().let(TagManager::wrap) + + /** + * The description of the application. + */ + public open fun description(): String = unwrap(this).getDescription() + + /** + * The description of the application. + */ + public open fun description(`value`: String) { + unwrap(this).setDescription(`value`) + } + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * The name of the application. + */ + public open fun name(): String = unwrap(this).getName() + + /** + * The name of the application. + */ + public open fun name(`value`: String) { + unwrap(this).setName(`value`) + } + + /** + * The namespace of the application. + */ + public open fun namespace(): String? = unwrap(this).getNamespace() + + /** + * The namespace of the application. + */ + public open fun namespace(`value`: String) { + unwrap(this).setNamespace(`value`) + } + + /** + * The configuration of events or requests that the application has access to. + */ + public open fun permissions(): List = unwrap(this).getPermissions() ?: emptyList() + + /** + * The configuration of events or requests that the application has access to. + */ + public open fun permissions(`value`: List) { + unwrap(this).setPermissions(`value`) + } + + /** + * The configuration of events or requests that the application has access to. + */ + public open fun permissions(vararg `value`: String): Unit = permissions(`value`.toList()) + + /** + * The tags used to organize, track, or control access for this resource. + */ + public open fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * The tags used to organize, track, or control access for this resource. + */ + public open fun tags(`value`: List) { + unwrap(this).setTags(`value`.map(CfnTag::unwrap)) + } + + /** + * The tags used to organize, track, or control access for this resource. + */ + public open fun tags(vararg `value`: CfnTag): Unit = tags(`value`.toList()) + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.appintegrations.CfnApplication]. + */ + @CdkDslMarker + public interface Builder { + /** + * The configuration for where the application should be loaded from. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-applicationsourceconfig) + * @param applicationSourceConfig The configuration for where the application should be loaded + * from. + */ + public fun applicationSourceConfig(applicationSourceConfig: IResolvable) + + /** + * The configuration for where the application should be loaded from. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-applicationsourceconfig) + * @param applicationSourceConfig The configuration for where the application should be loaded + * from. + */ + public fun applicationSourceConfig(applicationSourceConfig: ApplicationSourceConfigProperty) + + /** + * The configuration for where the application should be loaded from. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-applicationsourceconfig) + * @param applicationSourceConfig The configuration for where the application should be loaded + * from. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("12d3e5d23e6eb2eb47c70fb5e8fd0efdd764be4a64691b32dd668876eb56d096") + public + fun applicationSourceConfig(applicationSourceConfig: ApplicationSourceConfigProperty.Builder.() -> Unit) + + /** + * The description of the application. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-description) + * @param description The description of the application. + */ + public fun description(description: String) + + /** + * The name of the application. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-name) + * @param name The name of the application. + */ + public fun name(name: String) + + /** + * The namespace of the application. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-namespace) + * @param namespace The namespace of the application. + */ + public fun namespace(namespace: String) + + /** + * The configuration of events or requests that the application has access to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-permissions) + * @param permissions The configuration of events or requests that the application has access + * to. + */ + public fun permissions(permissions: List) + + /** + * The configuration of events or requests that the application has access to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-permissions) + * @param permissions The configuration of events or requests that the application has access + * to. + */ + public fun permissions(vararg permissions: String) + + /** + * The tags used to organize, track, or control access for this resource. + * + * For example, { "tags": {"key1":"value1", "key2":"value2"} }. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-tags) + * @param tags The tags used to organize, track, or control access for this resource. + */ + public fun tags(tags: List) + + /** + * The tags used to organize, track, or control access for this resource. + * + * For example, { "tags": {"key1":"value1", "key2":"value2"} }. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-tags) + * @param tags The tags used to organize, track, or control access for this resource. + */ + public fun tags(vararg tags: CfnTag) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.services.appintegrations.CfnApplication.Builder = + software.amazon.awscdk.services.appintegrations.CfnApplication.Builder.create(scope, id) + + /** + * The configuration for where the application should be loaded from. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-applicationsourceconfig) + * @param applicationSourceConfig The configuration for where the application should be loaded + * from. + */ + override fun applicationSourceConfig(applicationSourceConfig: IResolvable) { + cdkBuilder.applicationSourceConfig(applicationSourceConfig.let(IResolvable::unwrap)) + } + + /** + * The configuration for where the application should be loaded from. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-applicationsourceconfig) + * @param applicationSourceConfig The configuration for where the application should be loaded + * from. + */ + override fun applicationSourceConfig(applicationSourceConfig: ApplicationSourceConfigProperty) { + cdkBuilder.applicationSourceConfig(applicationSourceConfig.let(ApplicationSourceConfigProperty::unwrap)) + } + + /** + * The configuration for where the application should be loaded from. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-applicationsourceconfig) + * @param applicationSourceConfig The configuration for where the application should be loaded + * from. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("12d3e5d23e6eb2eb47c70fb5e8fd0efdd764be4a64691b32dd668876eb56d096") + override + fun applicationSourceConfig(applicationSourceConfig: ApplicationSourceConfigProperty.Builder.() -> Unit): + Unit = applicationSourceConfig(ApplicationSourceConfigProperty(applicationSourceConfig)) + + /** + * The description of the application. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-description) + * @param description The description of the application. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * The name of the application. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-name) + * @param name The name of the application. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + /** + * The namespace of the application. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-namespace) + * @param namespace The namespace of the application. + */ + override fun namespace(namespace: String) { + cdkBuilder.namespace(namespace) + } + + /** + * The configuration of events or requests that the application has access to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-permissions) + * @param permissions The configuration of events or requests that the application has access + * to. + */ + override fun permissions(permissions: List) { + cdkBuilder.permissions(permissions) + } + + /** + * The configuration of events or requests that the application has access to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-permissions) + * @param permissions The configuration of events or requests that the application has access + * to. + */ + override fun permissions(vararg permissions: String): Unit = permissions(permissions.toList()) + + /** + * The tags used to organize, track, or control access for this resource. + * + * For example, { "tags": {"key1":"value1", "key2":"value2"} }. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-tags) + * @param tags The tags used to organize, track, or control access for this resource. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * The tags used to organize, track, or control access for this resource. + * + * For example, { "tags": {"key1":"value1", "key2":"value2"} }. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-tags) + * @param tags The tags used to organize, track, or control access for this resource. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + public fun build(): software.amazon.awscdk.services.appintegrations.CfnApplication = + cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.appintegrations.CfnApplication.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnApplication { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnApplication(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.appintegrations.CfnApplication): + CfnApplication = CfnApplication(cdkObject) + + internal fun unwrap(wrapped: CfnApplication): + software.amazon.awscdk.services.appintegrations.CfnApplication = wrapped.cdkObject as + software.amazon.awscdk.services.appintegrations.CfnApplication + } + + /** + * The configuration for where the application should be loaded from. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.appintegrations.*; + * ApplicationSourceConfigProperty applicationSourceConfigProperty = + * ApplicationSourceConfigProperty.builder() + * .externalUrlConfig(ExternalUrlConfigProperty.builder() + * .accessUrl("accessUrl") + * // the properties below are optional + * .approvedOrigins(List.of("approvedOrigins")) + * .build()) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appintegrations-application-applicationsourceconfig.html) + */ + public interface ApplicationSourceConfigProperty { + /** + * The external URL source for the application. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appintegrations-application-applicationsourceconfig.html#cfn-appintegrations-application-applicationsourceconfig-externalurlconfig) + */ + public fun externalUrlConfig(): Any + + /** + * A builder for [ApplicationSourceConfigProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param externalUrlConfig The external URL source for the application. + */ + public fun externalUrlConfig(externalUrlConfig: IResolvable) + + /** + * @param externalUrlConfig The external URL source for the application. + */ + public fun externalUrlConfig(externalUrlConfig: ExternalUrlConfigProperty) + + /** + * @param externalUrlConfig The external URL source for the application. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("856f068cc35b11f5918ce0732066c05bb1f876f3799bf07f66ce34140b205851") + public fun externalUrlConfig(externalUrlConfig: ExternalUrlConfigProperty.Builder.() -> Unit) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.appintegrations.CfnApplication.ApplicationSourceConfigProperty.Builder + = + software.amazon.awscdk.services.appintegrations.CfnApplication.ApplicationSourceConfigProperty.builder() + + /** + * @param externalUrlConfig The external URL source for the application. + */ + override fun externalUrlConfig(externalUrlConfig: IResolvable) { + cdkBuilder.externalUrlConfig(externalUrlConfig.let(IResolvable::unwrap)) + } + + /** + * @param externalUrlConfig The external URL source for the application. + */ + override fun externalUrlConfig(externalUrlConfig: ExternalUrlConfigProperty) { + cdkBuilder.externalUrlConfig(externalUrlConfig.let(ExternalUrlConfigProperty::unwrap)) + } + + /** + * @param externalUrlConfig The external URL source for the application. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("856f068cc35b11f5918ce0732066c05bb1f876f3799bf07f66ce34140b205851") + override + fun externalUrlConfig(externalUrlConfig: ExternalUrlConfigProperty.Builder.() -> Unit): + Unit = externalUrlConfig(ExternalUrlConfigProperty(externalUrlConfig)) + + public fun build(): + software.amazon.awscdk.services.appintegrations.CfnApplication.ApplicationSourceConfigProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.appintegrations.CfnApplication.ApplicationSourceConfigProperty, + ) : CdkObject(cdkObject), ApplicationSourceConfigProperty { + /** + * The external URL source for the application. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appintegrations-application-applicationsourceconfig.html#cfn-appintegrations-application-applicationsourceconfig-externalurlconfig) + */ + override fun externalUrlConfig(): Any = unwrap(this).getExternalUrlConfig() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): ApplicationSourceConfigProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.appintegrations.CfnApplication.ApplicationSourceConfigProperty): + ApplicationSourceConfigProperty = CdkObjectWrappers.wrap(cdkObject) as? + ApplicationSourceConfigProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: ApplicationSourceConfigProperty): + software.amazon.awscdk.services.appintegrations.CfnApplication.ApplicationSourceConfigProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.appintegrations.CfnApplication.ApplicationSourceConfigProperty + } + } + + /** + * The external URL source for the application. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.appintegrations.*; + * ExternalUrlConfigProperty externalUrlConfigProperty = ExternalUrlConfigProperty.builder() + * .accessUrl("accessUrl") + * // the properties below are optional + * .approvedOrigins(List.of("approvedOrigins")) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appintegrations-application-externalurlconfig.html) + */ + public interface ExternalUrlConfigProperty { + /** + * The URL to access the application. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appintegrations-application-externalurlconfig.html#cfn-appintegrations-application-externalurlconfig-accessurl) + */ + public fun accessUrl(): String + + /** + * Additional URLs to allow list if different than the access URL. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appintegrations-application-externalurlconfig.html#cfn-appintegrations-application-externalurlconfig-approvedorigins) + */ + public fun approvedOrigins(): List = unwrap(this).getApprovedOrigins() ?: emptyList() + + /** + * A builder for [ExternalUrlConfigProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param accessUrl The URL to access the application. + */ + public fun accessUrl(accessUrl: String) + + /** + * @param approvedOrigins Additional URLs to allow list if different than the access URL. + */ + public fun approvedOrigins(approvedOrigins: List) + + /** + * @param approvedOrigins Additional URLs to allow list if different than the access URL. + */ + public fun approvedOrigins(vararg approvedOrigins: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.appintegrations.CfnApplication.ExternalUrlConfigProperty.Builder + = + software.amazon.awscdk.services.appintegrations.CfnApplication.ExternalUrlConfigProperty.builder() + + /** + * @param accessUrl The URL to access the application. + */ + override fun accessUrl(accessUrl: String) { + cdkBuilder.accessUrl(accessUrl) + } + + /** + * @param approvedOrigins Additional URLs to allow list if different than the access URL. + */ + override fun approvedOrigins(approvedOrigins: List) { + cdkBuilder.approvedOrigins(approvedOrigins) + } + + /** + * @param approvedOrigins Additional URLs to allow list if different than the access URL. + */ + override fun approvedOrigins(vararg approvedOrigins: String): Unit = + approvedOrigins(approvedOrigins.toList()) + + public fun build(): + software.amazon.awscdk.services.appintegrations.CfnApplication.ExternalUrlConfigProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.appintegrations.CfnApplication.ExternalUrlConfigProperty, + ) : CdkObject(cdkObject), ExternalUrlConfigProperty { + /** + * The URL to access the application. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appintegrations-application-externalurlconfig.html#cfn-appintegrations-application-externalurlconfig-accessurl) + */ + override fun accessUrl(): String = unwrap(this).getAccessUrl() + + /** + * Additional URLs to allow list if different than the access URL. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appintegrations-application-externalurlconfig.html#cfn-appintegrations-application-externalurlconfig-approvedorigins) + */ + override fun approvedOrigins(): List = unwrap(this).getApprovedOrigins() ?: + emptyList() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): ExternalUrlConfigProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.appintegrations.CfnApplication.ExternalUrlConfigProperty): + ExternalUrlConfigProperty = CdkObjectWrappers.wrap(cdkObject) as? + ExternalUrlConfigProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: ExternalUrlConfigProperty): + software.amazon.awscdk.services.appintegrations.CfnApplication.ExternalUrlConfigProperty = + (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.appintegrations.CfnApplication.ExternalUrlConfigProperty + } + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appintegrations/CfnApplicationProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appintegrations/CfnApplicationProps.kt new file mode 100644 index 0000000000..fbb9caa8e5 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appintegrations/CfnApplicationProps.kt @@ -0,0 +1,308 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.appintegrations + +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.jvm.JvmName + +/** + * Properties for defining a `CfnApplication`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.appintegrations.*; + * CfnApplicationProps cfnApplicationProps = CfnApplicationProps.builder() + * .applicationSourceConfig(ApplicationSourceConfigProperty.builder() + * .externalUrlConfig(ExternalUrlConfigProperty.builder() + * .accessUrl("accessUrl") + * // the properties below are optional + * .approvedOrigins(List.of("approvedOrigins")) + * .build()) + * .build()) + * .description("description") + * .name("name") + * // the properties below are optional + * .namespace("namespace") + * .permissions(List.of("permissions")) + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html) + */ +public interface CfnApplicationProps { + /** + * The configuration for where the application should be loaded from. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-applicationsourceconfig) + */ + public fun applicationSourceConfig(): Any + + /** + * The description of the application. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-description) + */ + public fun description(): String + + /** + * The name of the application. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-name) + */ + public fun name(): String + + /** + * The namespace of the application. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-namespace) + */ + public fun namespace(): String? = unwrap(this).getNamespace() + + /** + * The configuration of events or requests that the application has access to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-permissions) + */ + public fun permissions(): List = unwrap(this).getPermissions() ?: emptyList() + + /** + * The tags used to organize, track, or control access for this resource. + * + * For example, { "tags": {"key1":"value1", "key2":"value2"} }. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-tags) + */ + public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * A builder for [CfnApplicationProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param applicationSourceConfig The configuration for where the application should be loaded + * from. + */ + public fun applicationSourceConfig(applicationSourceConfig: IResolvable) + + /** + * @param applicationSourceConfig The configuration for where the application should be loaded + * from. + */ + public + fun applicationSourceConfig(applicationSourceConfig: CfnApplication.ApplicationSourceConfigProperty) + + /** + * @param applicationSourceConfig The configuration for where the application should be loaded + * from. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("ca719de1b3130b3bae35f788adf8865471fc030c93c5aae45f17c5de542b0d70") + public + fun applicationSourceConfig(applicationSourceConfig: CfnApplication.ApplicationSourceConfigProperty.Builder.() -> Unit) + + /** + * @param description The description of the application. + */ + public fun description(description: String) + + /** + * @param name The name of the application. + */ + public fun name(name: String) + + /** + * @param namespace The namespace of the application. + */ + public fun namespace(namespace: String) + + /** + * @param permissions The configuration of events or requests that the application has access + * to. + */ + public fun permissions(permissions: List) + + /** + * @param permissions The configuration of events or requests that the application has access + * to. + */ + public fun permissions(vararg permissions: String) + + /** + * @param tags The tags used to organize, track, or control access for this resource. + * For example, { "tags": {"key1":"value1", "key2":"value2"} }. + */ + public fun tags(tags: List) + + /** + * @param tags The tags used to organize, track, or control access for this resource. + * For example, { "tags": {"key1":"value1", "key2":"value2"} }. + */ + public fun tags(vararg tags: CfnTag) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.appintegrations.CfnApplicationProps.Builder = + software.amazon.awscdk.services.appintegrations.CfnApplicationProps.builder() + + /** + * @param applicationSourceConfig The configuration for where the application should be loaded + * from. + */ + override fun applicationSourceConfig(applicationSourceConfig: IResolvable) { + cdkBuilder.applicationSourceConfig(applicationSourceConfig.let(IResolvable::unwrap)) + } + + /** + * @param applicationSourceConfig The configuration for where the application should be loaded + * from. + */ + override + fun applicationSourceConfig(applicationSourceConfig: CfnApplication.ApplicationSourceConfigProperty) { + cdkBuilder.applicationSourceConfig(applicationSourceConfig.let(CfnApplication.ApplicationSourceConfigProperty::unwrap)) + } + + /** + * @param applicationSourceConfig The configuration for where the application should be loaded + * from. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("ca719de1b3130b3bae35f788adf8865471fc030c93c5aae45f17c5de542b0d70") + override + fun applicationSourceConfig(applicationSourceConfig: CfnApplication.ApplicationSourceConfigProperty.Builder.() -> Unit): + Unit = + applicationSourceConfig(CfnApplication.ApplicationSourceConfigProperty(applicationSourceConfig)) + + /** + * @param description The description of the application. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * @param name The name of the application. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + /** + * @param namespace The namespace of the application. + */ + override fun namespace(namespace: String) { + cdkBuilder.namespace(namespace) + } + + /** + * @param permissions The configuration of events or requests that the application has access + * to. + */ + override fun permissions(permissions: List) { + cdkBuilder.permissions(permissions) + } + + /** + * @param permissions The configuration of events or requests that the application has access + * to. + */ + override fun permissions(vararg permissions: String): Unit = permissions(permissions.toList()) + + /** + * @param tags The tags used to organize, track, or control access for this resource. + * For example, { "tags": {"key1":"value1", "key2":"value2"} }. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * @param tags The tags used to organize, track, or control access for this resource. + * For example, { "tags": {"key1":"value1", "key2":"value2"} }. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + public fun build(): software.amazon.awscdk.services.appintegrations.CfnApplicationProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.appintegrations.CfnApplicationProps, + ) : CdkObject(cdkObject), CfnApplicationProps { + /** + * The configuration for where the application should be loaded from. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-applicationsourceconfig) + */ + override fun applicationSourceConfig(): Any = unwrap(this).getApplicationSourceConfig() + + /** + * The description of the application. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-description) + */ + override fun description(): String = unwrap(this).getDescription() + + /** + * The name of the application. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-name) + */ + override fun name(): String = unwrap(this).getName() + + /** + * The namespace of the application. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-namespace) + */ + override fun namespace(): String? = unwrap(this).getNamespace() + + /** + * The configuration of events or requests that the application has access to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-permissions) + */ + override fun permissions(): List = unwrap(this).getPermissions() ?: emptyList() + + /** + * The tags used to organize, track, or control access for this resource. + * + * For example, { "tags": {"key1":"value1", "key2":"value2"} }. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-application.html#cfn-appintegrations-application-tags) + */ + override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnApplicationProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.appintegrations.CfnApplicationProps): + CfnApplicationProps = CdkObjectWrappers.wrap(cdkObject) as? CfnApplicationProps ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnApplicationProps): + software.amazon.awscdk.services.appintegrations.CfnApplicationProps = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.appintegrations.CfnApplicationProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/applicationautoscaling/CfnScalingPolicy.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/applicationautoscaling/CfnScalingPolicy.kt index a7f093ec3f..1e537c52fd 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/applicationautoscaling/CfnScalingPolicy.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/applicationautoscaling/CfnScalingPolicy.kt @@ -2730,8 +2730,7 @@ public open class CfnScalingPolicy( } /** - * This structure defines the CloudWatch metric to return, along with the statistic, period, and - * unit. + * This structure defines the CloudWatch metric to return, along with the statistic and unit. * * `TargetTrackingMetricStat` is a property of the [AWS::ApplicationAutoScaling::ScalingPolicy * TargetTrackingMetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingmetricdataquery.html) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appmesh/CfnVirtualNode.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appmesh/CfnVirtualNode.kt index 3bea952b69..e602cd1db4 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appmesh/CfnVirtualNode.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appmesh/CfnVirtualNode.kt @@ -47,7 +47,7 @@ import software.constructs.Construct as SoftwareConstructsConstruct * * For more information about virtual nodes, see [Virtual * nodes](https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_nodes.html) . You must be using - * `1.15.0` or later of the Envoy image when setting these variables. For more information about App + * `1.15.0` or later of the Envoy image when setting these variables. For more information aboutApp * Mesh Envoy variables, see [Envoy * image](https://docs.aws.amazon.com/app-mesh/latest/userguide/envoy.html) in the AWS App Mesh User * Guide. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apprunner/CfnVpcConnector.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apprunner/CfnVpcConnector.kt index 1fa4f2d9dc..40e1d1a0b3 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apprunner/CfnVpcConnector.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apprunner/CfnVpcConnector.kt @@ -235,6 +235,11 @@ public open class CfnVpcConnector( * * A tag is a key-value pair. * + * + * A `VpcConnector` is immutable, so you cannot update its tags. To change the tags, replace the + * resource. To replace a `VpcConnector` , you must provide a new combination of security groups. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-vpcconnector.html#cfn-apprunner-vpcconnector-tags) * @param tags A list of metadata items that you can associate with your VPC connector resource. * @@ -246,6 +251,11 @@ public open class CfnVpcConnector( * * A tag is a key-value pair. * + * + * A `VpcConnector` is immutable, so you cannot update its tags. To change the tags, replace the + * resource. To replace a `VpcConnector` , you must provide a new combination of security groups. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-vpcconnector.html#cfn-apprunner-vpcconnector-tags) * @param tags A list of metadata items that you can associate with your VPC connector resource. * @@ -340,6 +350,11 @@ public open class CfnVpcConnector( * * A tag is a key-value pair. * + * + * A `VpcConnector` is immutable, so you cannot update its tags. To change the tags, replace the + * resource. To replace a `VpcConnector` , you must provide a new combination of security groups. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-vpcconnector.html#cfn-apprunner-vpcconnector-tags) * @param tags A list of metadata items that you can associate with your VPC connector resource. * @@ -353,6 +368,11 @@ public open class CfnVpcConnector( * * A tag is a key-value pair. * + * + * A `VpcConnector` is immutable, so you cannot update its tags. To change the tags, replace the + * resource. To replace a `VpcConnector` , you must provide a new combination of security groups. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-vpcconnector.html#cfn-apprunner-vpcconnector-tags) * @param tags A list of metadata items that you can associate with your VPC connector resource. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apprunner/CfnVpcConnectorProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apprunner/CfnVpcConnectorProps.kt index 57a81a3016..4ff0e46fb8 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apprunner/CfnVpcConnectorProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/apprunner/CfnVpcConnectorProps.kt @@ -65,6 +65,11 @@ public interface CfnVpcConnectorProps { * * A tag is a key-value pair. * + * + * A `VpcConnector` is immutable, so you cannot update its tags. To change the tags, replace the + * resource. To replace a `VpcConnector` , you must provide a new combination of security groups. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-vpcconnector.html#cfn-apprunner-vpcconnector-tags) */ public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() @@ -124,12 +129,20 @@ public interface CfnVpcConnectorProps { /** * @param tags A list of metadata items that you can associate with your VPC connector resource. * A tag is a key-value pair. + * + * + * A `VpcConnector` is immutable, so you cannot update its tags. To change the tags, replace the + * resource. To replace a `VpcConnector` , you must provide a new combination of security groups. */ public fun tags(tags: List) /** * @param tags A list of metadata items that you can associate with your VPC connector resource. * A tag is a key-value pair. + * + * + * A `VpcConnector` is immutable, so you cannot update its tags. To change the tags, replace the + * resource. To replace a `VpcConnector` , you must provide a new combination of security groups. */ public fun tags(vararg tags: CfnTag) @@ -190,6 +203,10 @@ public interface CfnVpcConnectorProps { /** * @param tags A list of metadata items that you can associate with your VPC connector resource. * A tag is a key-value pair. + * + * + * A `VpcConnector` is immutable, so you cannot update its tags. To change the tags, replace the + * resource. To replace a `VpcConnector` , you must provide a new combination of security groups. */ override fun tags(tags: List) { cdkBuilder.tags(tags.map(CfnTag::unwrap)) @@ -198,6 +215,10 @@ public interface CfnVpcConnectorProps { /** * @param tags A list of metadata items that you can associate with your VPC connector resource. * A tag is a key-value pair. + * + * + * A `VpcConnector` is immutable, so you cannot update its tags. To change the tags, replace the + * resource. To replace a `VpcConnector` , you must provide a new combination of security groups. */ override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) @@ -247,6 +268,11 @@ public interface CfnVpcConnectorProps { * * A tag is a key-value pair. * + * + * A `VpcConnector` is immutable, so you cannot update its tags. To change the tags, replace the + * resource. To replace a `VpcConnector` , you must provide a new combination of security groups. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-vpcconnector.html#cfn-apprunner-vpcconnector-tags) */ override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appstream/CfnAppBlock.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appstream/CfnAppBlock.kt index fe215e5adb..250d60dd49 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appstream/CfnAppBlock.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appstream/CfnAppBlock.kt @@ -332,6 +332,32 @@ public open class CfnAppBlock( public fun postSetupScriptDetails(postSetupScriptDetails: ScriptDetailsProperty.Builder.() -> Unit) + /** + * The setup script details of the app block. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-appblock.html#cfn-appstream-appblock-setupscriptdetails) + * @param setupScriptDetails The setup script details of the app block. + */ + public fun setupScriptDetails(setupScriptDetails: IResolvable) + + /** + * The setup script details of the app block. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-appblock.html#cfn-appstream-appblock-setupscriptdetails) + * @param setupScriptDetails The setup script details of the app block. + */ + public fun setupScriptDetails(setupScriptDetails: ScriptDetailsProperty) + + /** + * The setup script details of the app block. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-appblock.html#cfn-appstream-appblock-setupscriptdetails) + * @param setupScriptDetails The setup script details of the app block. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("db33a4969d6cb951bacdca0158df9228ec6e36d2613549b0591e6a649f0d71be") + public fun setupScriptDetails(setupScriptDetails: ScriptDetailsProperty.Builder.() -> Unit) + /** * The source S3 location of the app block. * @@ -373,32 +399,6 @@ public open class CfnAppBlock( * @param tags The tags of the app block. */ public fun tags(vararg tags: CfnTag) - - /** - * The setup script details of the app block. - * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-appblock.html#cfn-appstream-appblock-setupscriptdetails) - * @param setupScriptDetails The setup script details of the app block. - */ - public fun upScriptDetails(setupScriptDetails: IResolvable) - - /** - * The setup script details of the app block. - * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-appblock.html#cfn-appstream-appblock-setupscriptdetails) - * @param setupScriptDetails The setup script details of the app block. - */ - public fun upScriptDetails(setupScriptDetails: ScriptDetailsProperty) - - /** - * The setup script details of the app block. - * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-appblock.html#cfn-appstream-appblock-setupscriptdetails) - * @param setupScriptDetails The setup script details of the app block. - */ - @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("b7acea0a2b75f58dc64d95ddd807c88fa359b8dae5432710bdd03baec04bf7e4") - public fun upScriptDetails(setupScriptDetails: ScriptDetailsProperty.Builder.() -> Unit) } private class BuilderImpl( @@ -482,6 +482,37 @@ public open class CfnAppBlock( fun postSetupScriptDetails(postSetupScriptDetails: ScriptDetailsProperty.Builder.() -> Unit): Unit = postSetupScriptDetails(ScriptDetailsProperty(postSetupScriptDetails)) + /** + * The setup script details of the app block. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-appblock.html#cfn-appstream-appblock-setupscriptdetails) + * @param setupScriptDetails The setup script details of the app block. + */ + override fun setupScriptDetails(setupScriptDetails: IResolvable) { + cdkBuilder.setupScriptDetails(setupScriptDetails.let(IResolvable::unwrap)) + } + + /** + * The setup script details of the app block. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-appblock.html#cfn-appstream-appblock-setupscriptdetails) + * @param setupScriptDetails The setup script details of the app block. + */ + override fun setupScriptDetails(setupScriptDetails: ScriptDetailsProperty) { + cdkBuilder.setupScriptDetails(setupScriptDetails.let(ScriptDetailsProperty::unwrap)) + } + + /** + * The setup script details of the app block. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-appblock.html#cfn-appstream-appblock-setupscriptdetails) + * @param setupScriptDetails The setup script details of the app block. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("db33a4969d6cb951bacdca0158df9228ec6e36d2613549b0591e6a649f0d71be") + override fun setupScriptDetails(setupScriptDetails: ScriptDetailsProperty.Builder.() -> Unit): + Unit = setupScriptDetails(ScriptDetailsProperty(setupScriptDetails)) + /** * The source S3 location of the app block. * @@ -531,37 +562,6 @@ public open class CfnAppBlock( */ override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) - /** - * The setup script details of the app block. - * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-appblock.html#cfn-appstream-appblock-setupscriptdetails) - * @param setupScriptDetails The setup script details of the app block. - */ - override fun upScriptDetails(setupScriptDetails: IResolvable) { - cdkBuilder.setupScriptDetails(setupScriptDetails.let(IResolvable::unwrap)) - } - - /** - * The setup script details of the app block. - * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-appblock.html#cfn-appstream-appblock-setupscriptdetails) - * @param setupScriptDetails The setup script details of the app block. - */ - override fun upScriptDetails(setupScriptDetails: ScriptDetailsProperty) { - cdkBuilder.setupScriptDetails(setupScriptDetails.let(ScriptDetailsProperty::unwrap)) - } - - /** - * The setup script details of the app block. - * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-appblock.html#cfn-appstream-appblock-setupscriptdetails) - * @param setupScriptDetails The setup script details of the app block. - */ - @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("b7acea0a2b75f58dc64d95ddd807c88fa359b8dae5432710bdd03baec04bf7e4") - override fun upScriptDetails(setupScriptDetails: ScriptDetailsProperty.Builder.() -> Unit): Unit - = upScriptDetails(ScriptDetailsProperty(setupScriptDetails)) - public fun build(): software.amazon.awscdk.services.appstream.CfnAppBlock = cdkBuilder.build() } diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appstream/CfnAppBlockProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appstream/CfnAppBlockProps.kt index 2d0384e4b3..7a44671d3a 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appstream/CfnAppBlockProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appstream/CfnAppBlockProps.kt @@ -167,6 +167,24 @@ public interface CfnAppBlockProps { public fun postSetupScriptDetails(postSetupScriptDetails: CfnAppBlock.ScriptDetailsProperty.Builder.() -> Unit) + /** + * @param setupScriptDetails The setup script details of the app block. + */ + public fun setupScriptDetails(setupScriptDetails: IResolvable) + + /** + * @param setupScriptDetails The setup script details of the app block. + */ + public fun setupScriptDetails(setupScriptDetails: CfnAppBlock.ScriptDetailsProperty) + + /** + * @param setupScriptDetails The setup script details of the app block. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("3a640df71b6acc88a548333bd7c0c7d41b8319b76416a0e7cdef2bf4a56d3637") + public + fun setupScriptDetails(setupScriptDetails: CfnAppBlock.ScriptDetailsProperty.Builder.() -> Unit) + /** * @param sourceS3Location The source S3 location of the app block. */ @@ -193,24 +211,6 @@ public interface CfnAppBlockProps { * @param tags The tags of the app block. */ public fun tags(vararg tags: CfnTag) - - /** - * @param setupScriptDetails The setup script details of the app block. - */ - public fun upScriptDetails(setupScriptDetails: IResolvable) - - /** - * @param setupScriptDetails The setup script details of the app block. - */ - public fun upScriptDetails(setupScriptDetails: CfnAppBlock.ScriptDetailsProperty) - - /** - * @param setupScriptDetails The setup script details of the app block. - */ - @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("db995324b8b4ec7653a6e67f0ed64e37b1788dbbcab9e54b1cfbec7c348a543d") - public - fun upScriptDetails(setupScriptDetails: CfnAppBlock.ScriptDetailsProperty.Builder.() -> Unit) } private class BuilderImpl : Builder { @@ -269,6 +269,29 @@ public interface CfnAppBlockProps { fun postSetupScriptDetails(postSetupScriptDetails: CfnAppBlock.ScriptDetailsProperty.Builder.() -> Unit): Unit = postSetupScriptDetails(CfnAppBlock.ScriptDetailsProperty(postSetupScriptDetails)) + /** + * @param setupScriptDetails The setup script details of the app block. + */ + override fun setupScriptDetails(setupScriptDetails: IResolvable) { + cdkBuilder.setupScriptDetails(setupScriptDetails.let(IResolvable::unwrap)) + } + + /** + * @param setupScriptDetails The setup script details of the app block. + */ + override fun setupScriptDetails(setupScriptDetails: CfnAppBlock.ScriptDetailsProperty) { + cdkBuilder.setupScriptDetails(setupScriptDetails.let(CfnAppBlock.ScriptDetailsProperty::unwrap)) + } + + /** + * @param setupScriptDetails The setup script details of the app block. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("3a640df71b6acc88a548333bd7c0c7d41b8319b76416a0e7cdef2bf4a56d3637") + override + fun setupScriptDetails(setupScriptDetails: CfnAppBlock.ScriptDetailsProperty.Builder.() -> Unit): + Unit = setupScriptDetails(CfnAppBlock.ScriptDetailsProperty(setupScriptDetails)) + /** * @param sourceS3Location The source S3 location of the app block. */ @@ -304,29 +327,6 @@ public interface CfnAppBlockProps { */ override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) - /** - * @param setupScriptDetails The setup script details of the app block. - */ - override fun upScriptDetails(setupScriptDetails: IResolvable) { - cdkBuilder.setupScriptDetails(setupScriptDetails.let(IResolvable::unwrap)) - } - - /** - * @param setupScriptDetails The setup script details of the app block. - */ - override fun upScriptDetails(setupScriptDetails: CfnAppBlock.ScriptDetailsProperty) { - cdkBuilder.setupScriptDetails(setupScriptDetails.let(CfnAppBlock.ScriptDetailsProperty::unwrap)) - } - - /** - * @param setupScriptDetails The setup script details of the app block. - */ - @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("db995324b8b4ec7653a6e67f0ed64e37b1788dbbcab9e54b1cfbec7c348a543d") - override - fun upScriptDetails(setupScriptDetails: CfnAppBlock.ScriptDetailsProperty.Builder.() -> Unit): - Unit = upScriptDetails(CfnAppBlock.ScriptDetailsProperty(setupScriptDetails)) - public fun build(): software.amazon.awscdk.services.appstream.CfnAppBlockProps = cdkBuilder.build() } diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appstream/CfnStack.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appstream/CfnStack.kt index 7dce853a05..f1ddc35abc 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appstream/CfnStack.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appstream/CfnStack.kt @@ -1192,7 +1192,7 @@ public open class CfnStack( * You can allow the same persistent application settings to be used across multiple stacks by * specifying the same settings group for each stack. */ - public fun tingsGroup(settingsGroup: String) + public fun settingsGroup(settingsGroup: String) } private class BuilderImpl : Builder { @@ -1222,7 +1222,7 @@ public open class CfnStack( * You can allow the same persistent application settings to be used across multiple stacks by * specifying the same settings group for each stack. */ - override fun tingsGroup(settingsGroup: String) { + override fun settingsGroup(settingsGroup: String) { cdkBuilder.settingsGroup(settingsGroup) } diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appsync/GraphqlApi.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appsync/GraphqlApi.kt index 9ea11e46c1..a5b031fff7 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appsync/GraphqlApi.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appsync/GraphqlApi.kt @@ -7,6 +7,7 @@ import io.cloudshiftdev.awscdk.common.CdkDslMarker import io.cloudshiftdev.awscdk.services.logs.ILogGroup import kotlin.Boolean import kotlin.Deprecated +import kotlin.Number import kotlin.String import kotlin.Unit import kotlin.collections.List @@ -237,6 +238,31 @@ public open class GraphqlApi( */ public fun name(name: String) + /** + * A number indicating the maximum depth resolvers should be accepted when handling queries. + * + * Value must be withing range of 0 to 75 + * + * Default: - The default value is 0 (or unspecified) which indicates no maximum depth. + * + * @param queryDepthLimit A number indicating the maximum depth resolvers should be accepted + * when handling queries. + */ + public fun queryDepthLimit(queryDepthLimit: Number) + + /** + * A number indicating the maximum number of resolvers that should be accepted when handling + * queries. + * + * Value must be withing range of 0 to 10000 + * + * Default: - The default value is 0 (or unspecified), which will set the limit to 10000 + * + * @param resolverCountLimit A number indicating the maximum number of resolvers that should be + * accepted when handling queries. + */ + public fun resolverCountLimit(resolverCountLimit: Number) + /** * (deprecated) GraphQL schema definition. Specify how you want to define your schema. * @@ -406,6 +432,35 @@ public open class GraphqlApi( cdkBuilder.name(name) } + /** + * A number indicating the maximum depth resolvers should be accepted when handling queries. + * + * Value must be withing range of 0 to 75 + * + * Default: - The default value is 0 (or unspecified) which indicates no maximum depth. + * + * @param queryDepthLimit A number indicating the maximum depth resolvers should be accepted + * when handling queries. + */ + override fun queryDepthLimit(queryDepthLimit: Number) { + cdkBuilder.queryDepthLimit(queryDepthLimit) + } + + /** + * A number indicating the maximum number of resolvers that should be accepted when handling + * queries. + * + * Value must be withing range of 0 to 10000 + * + * Default: - The default value is 0 (or unspecified), which will set the limit to 10000 + * + * @param resolverCountLimit A number indicating the maximum number of resolvers that should be + * accepted when handling queries. + */ + override fun resolverCountLimit(resolverCountLimit: Number) { + cdkBuilder.resolverCountLimit(resolverCountLimit) + } + /** * (deprecated) GraphQL schema definition. Specify how you want to define your schema. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appsync/GraphqlApiBase.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appsync/GraphqlApiBase.kt index d7e0150a4a..1edc067e50 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appsync/GraphqlApiBase.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appsync/GraphqlApiBase.kt @@ -11,6 +11,7 @@ import io.cloudshiftdev.awscdk.services.events.IEventBus import io.cloudshiftdev.awscdk.services.iam.Grant import io.cloudshiftdev.awscdk.services.iam.IGrantable import io.cloudshiftdev.awscdk.services.lambda.IFunction +import io.cloudshiftdev.awscdk.services.rds.IDatabaseCluster import io.cloudshiftdev.awscdk.services.rds.IServerlessCluster import io.cloudshiftdev.awscdk.services.secretsmanager.ISecret import kotlin.Boolean @@ -392,6 +393,84 @@ public abstract class GraphqlApiBase( ): RdsDataSource = addRdsDataSource(id, serverlessCluster, secretStore, databaseName, DataSourceOptions(options)) + /** + * add a new Rds data source to this API. + * + * @param id The data source's id. + * @param serverlessCluster The serverless V2 cluster to interact with this data source. + * @param secretStore The secret store that contains the username and password for the serverless + * cluster. + * @param databaseName The optional name of the database to use within the cluster. + * @param options The optional configuration for this data source. + */ + public override fun addRdsDataSourceV2( + id: String, + serverlessCluster: IDatabaseCluster, + secretStore: ISecret, + ): RdsDataSource = unwrap(this).addRdsDataSourceV2(id, + serverlessCluster.let(IDatabaseCluster::unwrap), + secretStore.let(ISecret::unwrap)).let(RdsDataSource::wrap) + + /** + * add a new Rds data source to this API. + * + * @param id The data source's id. + * @param serverlessCluster The serverless V2 cluster to interact with this data source. + * @param secretStore The secret store that contains the username and password for the serverless + * cluster. + * @param databaseName The optional name of the database to use within the cluster. + * @param options The optional configuration for this data source. + */ + public override fun addRdsDataSourceV2( + id: String, + serverlessCluster: IDatabaseCluster, + secretStore: ISecret, + databaseName: String, + ): RdsDataSource = unwrap(this).addRdsDataSourceV2(id, + serverlessCluster.let(IDatabaseCluster::unwrap), secretStore.let(ISecret::unwrap), + databaseName).let(RdsDataSource::wrap) + + /** + * add a new Rds data source to this API. + * + * @param id The data source's id. + * @param serverlessCluster The serverless V2 cluster to interact with this data source. + * @param secretStore The secret store that contains the username and password for the serverless + * cluster. + * @param databaseName The optional name of the database to use within the cluster. + * @param options The optional configuration for this data source. + */ + public override fun addRdsDataSourceV2( + id: String, + serverlessCluster: IDatabaseCluster, + secretStore: ISecret, + databaseName: String, + options: DataSourceOptions, + ): RdsDataSource = unwrap(this).addRdsDataSourceV2(id, + serverlessCluster.let(IDatabaseCluster::unwrap), secretStore.let(ISecret::unwrap), + databaseName, options.let(DataSourceOptions::unwrap)).let(RdsDataSource::wrap) + + /** + * add a new Rds data source to this API. + * + * @param id The data source's id. + * @param serverlessCluster The serverless V2 cluster to interact with this data source. + * @param secretStore The secret store that contains the username and password for the serverless + * cluster. + * @param databaseName The optional name of the database to use within the cluster. + * @param options The optional configuration for this data source. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("0ac39443c1f1e3dc3b207cab5d6c797d277750bffdbf77218e1e142cf4d9800c") + public override fun addRdsDataSourceV2( + id: String, + serverlessCluster: IDatabaseCluster, + secretStore: ISecret, + databaseName: String, + options: DataSourceOptions.Builder.() -> Unit, + ): RdsDataSource = addRdsDataSourceV2(id, serverlessCluster, secretStore, databaseName, + DataSourceOptions(options)) + /** * Add schema dependency if not imported. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appsync/GraphqlApiProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appsync/GraphqlApiProps.kt index 8139bffe22..08b7dd1135 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appsync/GraphqlApiProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appsync/GraphqlApiProps.kt @@ -7,6 +7,7 @@ import io.cloudshiftdev.awscdk.common.CdkObject import io.cloudshiftdev.awscdk.common.CdkObjectWrappers import kotlin.Boolean import kotlin.Deprecated +import kotlin.Number import kotlin.String import kotlin.Unit import kotlin.collections.Map @@ -97,6 +98,25 @@ public interface GraphqlApiProps { */ public fun name(): String + /** + * A number indicating the maximum depth resolvers should be accepted when handling queries. + * + * Value must be withing range of 0 to 75 + * + * Default: - The default value is 0 (or unspecified) which indicates no maximum depth. + */ + public fun queryDepthLimit(): Number? = unwrap(this).getQueryDepthLimit() + + /** + * A number indicating the maximum number of resolvers that should be accepted when handling + * queries. + * + * Value must be withing range of 0 to 10000 + * + * Default: - The default value is 0 (or unspecified), which will set the limit to 10000 + */ + public fun resolverCountLimit(): Number? = unwrap(this).getResolverCountLimit() + /** * (deprecated) GraphQL schema definition. Specify how you want to define your schema. * @@ -200,6 +220,20 @@ public interface GraphqlApiProps { */ public fun name(name: String) + /** + * @param queryDepthLimit A number indicating the maximum depth resolvers should be accepted + * when handling queries. + * Value must be withing range of 0 to 75 + */ + public fun queryDepthLimit(queryDepthLimit: Number) + + /** + * @param resolverCountLimit A number indicating the maximum number of resolvers that should be + * accepted when handling queries. + * Value must be withing range of 0 to 10000 + */ + public fun resolverCountLimit(resolverCountLimit: Number) + /** * @param schema GraphQL schema definition. Specify how you want to define your schema. * SchemaFile.fromAsset(filePath: string) allows schema definition through schema.graphql file @@ -313,6 +347,24 @@ public interface GraphqlApiProps { cdkBuilder.name(name) } + /** + * @param queryDepthLimit A number indicating the maximum depth resolvers should be accepted + * when handling queries. + * Value must be withing range of 0 to 75 + */ + override fun queryDepthLimit(queryDepthLimit: Number) { + cdkBuilder.queryDepthLimit(queryDepthLimit) + } + + /** + * @param resolverCountLimit A number indicating the maximum number of resolvers that should be + * accepted when handling queries. + * Value must be withing range of 0 to 10000 + */ + override fun resolverCountLimit(resolverCountLimit: Number) { + cdkBuilder.resolverCountLimit(resolverCountLimit) + } + /** * @param schema GraphQL schema definition. Specify how you want to define your schema. * SchemaFile.fromAsset(filePath: string) allows schema definition through schema.graphql file @@ -406,6 +458,25 @@ public interface GraphqlApiProps { */ override fun name(): String = unwrap(this).getName() + /** + * A number indicating the maximum depth resolvers should be accepted when handling queries. + * + * Value must be withing range of 0 to 75 + * + * Default: - The default value is 0 (or unspecified) which indicates no maximum depth. + */ + override fun queryDepthLimit(): Number? = unwrap(this).getQueryDepthLimit() + + /** + * A number indicating the maximum number of resolvers that should be accepted when handling + * queries. + * + * Value must be withing range of 0 to 10000 + * + * Default: - The default value is 0 (or unspecified), which will set the limit to 10000 + */ + override fun resolverCountLimit(): Number? = unwrap(this).getResolverCountLimit() + /** * (deprecated) GraphQL schema definition. Specify how you want to define your schema. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appsync/IGraphqlApi.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appsync/IGraphqlApi.kt index 473701c415..ee68238ceb 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appsync/IGraphqlApi.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appsync/IGraphqlApi.kt @@ -14,6 +14,7 @@ import io.cloudshiftdev.awscdk.services.events.IEventBus import io.cloudshiftdev.awscdk.services.iam.Grant import io.cloudshiftdev.awscdk.services.iam.IGrantable import io.cloudshiftdev.awscdk.services.lambda.IFunction +import io.cloudshiftdev.awscdk.services.rds.IDatabaseCluster import io.cloudshiftdev.awscdk.services.rds.IServerlessCluster import io.cloudshiftdev.awscdk.services.secretsmanager.ISecret import io.cloudshiftdev.constructs.Node @@ -366,6 +367,77 @@ public interface IGraphqlApi : IResource { options: DataSourceOptions.Builder.() -> Unit, ): RdsDataSource + /** + * add a new Rds Serverless V2 data source to this API. + * + * @param id The data source's id. + * @param serverlessCluster The serverless V2 cluster to interact with this data source. + * @param secretStore The secret store that contains the username and password for the serverless + * cluster. + * @param databaseName The optional name of the database to use within the cluster. + * @param options The optional configuration for this data source. + */ + public fun addRdsDataSourceV2( + id: String, + serverlessCluster: IDatabaseCluster, + secretStore: ISecret, + ): RdsDataSource + + /** + * add a new Rds Serverless V2 data source to this API. + * + * @param id The data source's id. + * @param serverlessCluster The serverless V2 cluster to interact with this data source. + * @param secretStore The secret store that contains the username and password for the serverless + * cluster. + * @param databaseName The optional name of the database to use within the cluster. + * @param options The optional configuration for this data source. + */ + public fun addRdsDataSourceV2( + id: String, + serverlessCluster: IDatabaseCluster, + secretStore: ISecret, + databaseName: String, + ): RdsDataSource + + /** + * add a new Rds Serverless V2 data source to this API. + * + * @param id The data source's id. + * @param serverlessCluster The serverless V2 cluster to interact with this data source. + * @param secretStore The secret store that contains the username and password for the serverless + * cluster. + * @param databaseName The optional name of the database to use within the cluster. + * @param options The optional configuration for this data source. + */ + public fun addRdsDataSourceV2( + id: String, + serverlessCluster: IDatabaseCluster, + secretStore: ISecret, + databaseName: String, + options: DataSourceOptions, + ): RdsDataSource + + /** + * add a new Rds Serverless V2 data source to this API. + * + * @param id The data source's id. + * @param serverlessCluster The serverless V2 cluster to interact with this data source. + * @param secretStore The secret store that contains the username and password for the serverless + * cluster. + * @param databaseName The optional name of the database to use within the cluster. + * @param options The optional configuration for this data source. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("0ac39443c1f1e3dc3b207cab5d6c797d277750bffdbf77218e1e142cf4d9800c") + public fun addRdsDataSourceV2( + id: String, + serverlessCluster: IDatabaseCluster, + secretStore: ISecret, + databaseName: String, + options: DataSourceOptions.Builder.() -> Unit, + ): RdsDataSource + /** * Add schema dependency if not imported. * @@ -810,6 +882,84 @@ public interface IGraphqlApi : IResource { ): RdsDataSource = addRdsDataSource(id, serverlessCluster, secretStore, databaseName, DataSourceOptions(options)) + /** + * add a new Rds Serverless V2 data source to this API. + * + * @param id The data source's id. + * @param serverlessCluster The serverless V2 cluster to interact with this data source. + * @param secretStore The secret store that contains the username and password for the + * serverless cluster. + * @param databaseName The optional name of the database to use within the cluster. + * @param options The optional configuration for this data source. + */ + override fun addRdsDataSourceV2( + id: String, + serverlessCluster: IDatabaseCluster, + secretStore: ISecret, + ): RdsDataSource = unwrap(this).addRdsDataSourceV2(id, + serverlessCluster.let(IDatabaseCluster::unwrap), + secretStore.let(ISecret::unwrap)).let(RdsDataSource::wrap) + + /** + * add a new Rds Serverless V2 data source to this API. + * + * @param id The data source's id. + * @param serverlessCluster The serverless V2 cluster to interact with this data source. + * @param secretStore The secret store that contains the username and password for the + * serverless cluster. + * @param databaseName The optional name of the database to use within the cluster. + * @param options The optional configuration for this data source. + */ + override fun addRdsDataSourceV2( + id: String, + serverlessCluster: IDatabaseCluster, + secretStore: ISecret, + databaseName: String, + ): RdsDataSource = unwrap(this).addRdsDataSourceV2(id, + serverlessCluster.let(IDatabaseCluster::unwrap), secretStore.let(ISecret::unwrap), + databaseName).let(RdsDataSource::wrap) + + /** + * add a new Rds Serverless V2 data source to this API. + * + * @param id The data source's id. + * @param serverlessCluster The serverless V2 cluster to interact with this data source. + * @param secretStore The secret store that contains the username and password for the + * serverless cluster. + * @param databaseName The optional name of the database to use within the cluster. + * @param options The optional configuration for this data source. + */ + override fun addRdsDataSourceV2( + id: String, + serverlessCluster: IDatabaseCluster, + secretStore: ISecret, + databaseName: String, + options: DataSourceOptions, + ): RdsDataSource = unwrap(this).addRdsDataSourceV2(id, + serverlessCluster.let(IDatabaseCluster::unwrap), secretStore.let(ISecret::unwrap), + databaseName, options.let(DataSourceOptions::unwrap)).let(RdsDataSource::wrap) + + /** + * add a new Rds Serverless V2 data source to this API. + * + * @param id The data source's id. + * @param serverlessCluster The serverless V2 cluster to interact with this data source. + * @param secretStore The secret store that contains the username and password for the + * serverless cluster. + * @param databaseName The optional name of the database to use within the cluster. + * @param options The optional configuration for this data source. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("0ac39443c1f1e3dc3b207cab5d6c797d277750bffdbf77218e1e142cf4d9800c") + override fun addRdsDataSourceV2( + id: String, + serverlessCluster: IDatabaseCluster, + secretStore: ISecret, + databaseName: String, + options: DataSourceOptions.Builder.() -> Unit, + ): RdsDataSource = addRdsDataSourceV2(id, serverlessCluster, secretStore, databaseName, + DataSourceOptions(options)) + /** * Add schema dependency if not imported. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appsync/MappingTemplate.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appsync/MappingTemplate.kt index 44b96d4ddd..5e1c220855 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appsync/MappingTemplate.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appsync/MappingTemplate.kt @@ -13,18 +13,42 @@ import kotlin.String * Example: * * ``` - * import io.cloudshiftdev.awscdk.services.events.*; - * GraphqlApi api = GraphqlApi.Builder.create(this, "EventBridgeApi") - * .name("EventBridgeApi") - * .definition(Definition.fromFile(join(__dirname, "appsync.eventbridge.graphql"))) + * // Build a data source for AppSync to access the database. + * GraphqlApi api; + * // Create username and password secret for DB Cluster + * DatabaseSecret secret = DatabaseSecret.Builder.create(this, "AuroraSecret") + * .username("clusteradmin") * .build(); - * EventBus bus = EventBus.Builder.create(this, "DestinationEventBus").build(); - * EventBridgeDataSource dataSource = api.addEventBridgeDataSource("NoneDS", bus); - * dataSource.createResolver("EventResolver", BaseResolverProps.builder() + * // The VPC to place the cluster in + * Vpc vpc = new Vpc(this, "AuroraVpc"); + * // Create the serverless cluster, provide all values needed to customise the database. + * ServerlessCluster cluster = ServerlessCluster.Builder.create(this, "AuroraCluster") + * .engine(DatabaseClusterEngine.AURORA_MYSQL) + * .vpc(vpc) + * .credentials(Map.of("username", "clusteradmin")) + * .clusterIdentifier("db-endpoint-test") + * .defaultDatabaseName("demos") + * .build(); + * RdsDataSource rdsDS = api.addRdsDataSource("rds", cluster, secret, "demos"); + * // Set up a resolver for an RDS query. + * rdsDS.createResolver("QueryGetDemosRdsResolver", BaseResolverProps.builder() + * .typeName("Query") + * .fieldName("getDemosRds") + * .requestMappingTemplate(MappingTemplate.fromString("\n {\n \"version\": \"2018-05-29\",\n + * \"statements\": [\n \"SELECT * FROM demos\"\n ]\n }\n ")) + * .responseMappingTemplate(MappingTemplate.fromString("\n + * $utils.toJson($utils.rds.toJsonObject($ctx.result)[0])\n ")) + * .build()); + * // Set up a resolver for an RDS mutation. + * rdsDS.createResolver("MutationAddDemoRdsResolver", BaseResolverProps.builder() * .typeName("Mutation") - * .fieldName("emitEvent") - * .requestMappingTemplate(MappingTemplate.fromFile("request.vtl")) - * .responseMappingTemplate(MappingTemplate.fromFile("response.vtl")) + * .fieldName("addDemoRds") + * .requestMappingTemplate(MappingTemplate.fromString("\n {\n \"version\": \"2018-05-29\",\n + * \"statements\": [\n \"INSERT INTO demos VALUES (:id, :version)\",\n \"SELECT * WHERE id = + * :id\"\n ],\n \"variableMap\": {\n \":id\": $util.toJson($util.autoId()),\n + * \":version\": $util.toJson($ctx.args.version)\n }\n }\n ")) + * .responseMappingTemplate(MappingTemplate.fromString("\n + * $utils.toJson($utils.rds.toJsonObject($ctx.result)[1][0])\n ")) * .build()); * ``` */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appsync/RdsDataSourceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appsync/RdsDataSourceProps.kt index 74eb3a35da..92d1e93592 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appsync/RdsDataSourceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appsync/RdsDataSourceProps.kt @@ -12,7 +12,7 @@ import kotlin.String import kotlin.Unit /** - * Properties for an AppSync RDS datasource. + * Properties for an AppSync RDS datasource Aurora Serverless V1. * * Example: * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appsync/RdsDataSourcePropsV2.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appsync/RdsDataSourcePropsV2.kt new file mode 100644 index 0000000000..5df7ee7457 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/appsync/RdsDataSourcePropsV2.kt @@ -0,0 +1,222 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.appsync + +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import io.cloudshiftdev.awscdk.services.iam.IRole +import io.cloudshiftdev.awscdk.services.rds.IDatabaseCluster +import io.cloudshiftdev.awscdk.services.secretsmanager.ISecret +import kotlin.String +import kotlin.Unit + +/** + * Properties for an AppSync RDS datasource Aurora Serverless V2. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.appsync.*; + * import io.cloudshiftdev.awscdk.services.iam.*; + * import io.cloudshiftdev.awscdk.services.rds.*; + * import io.cloudshiftdev.awscdk.services.secretsmanager.*; + * DatabaseCluster databaseCluster; + * GraphqlApi graphqlApi; + * Role role; + * Secret secret; + * RdsDataSourcePropsV2 rdsDataSourcePropsV2 = RdsDataSourcePropsV2.builder() + * .api(graphqlApi) + * .secretStore(secret) + * .serverlessCluster(databaseCluster) + * // the properties below are optional + * .databaseName("databaseName") + * .description("description") + * .name("name") + * .serviceRole(role) + * .build(); + * ``` + */ +public interface RdsDataSourcePropsV2 : BackedDataSourceProps { + /** + * The name of the database to use within the cluster. + * + * Default: - None + */ + public fun databaseName(): String? = unwrap(this).getDatabaseName() + + /** + * The secret containing the credentials for the database. + */ + public fun secretStore(): ISecret + + /** + * The serverless cluster to call to interact with this data source. + */ + public fun serverlessCluster(): IDatabaseCluster + + /** + * A builder for [RdsDataSourcePropsV2] + */ + @CdkDslMarker + public interface Builder { + /** + * @param api The API to attach this data source to. + */ + public fun api(api: IGraphqlApi) + + /** + * @param databaseName The name of the database to use within the cluster. + */ + public fun databaseName(databaseName: String) + + /** + * @param description the description of the data source. + */ + public fun description(description: String) + + /** + * @param name The name of the data source. + */ + public fun name(name: String) + + /** + * @param secretStore The secret containing the credentials for the database. + */ + public fun secretStore(secretStore: ISecret) + + /** + * @param serverlessCluster The serverless cluster to call to interact with this data source. + */ + public fun serverlessCluster(serverlessCluster: IDatabaseCluster) + + /** + * @param serviceRole The IAM service role to be assumed by AppSync to interact with the data + * source. + */ + public fun serviceRole(serviceRole: IRole) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.services.appsync.RdsDataSourcePropsV2.Builder = + software.amazon.awscdk.services.appsync.RdsDataSourcePropsV2.builder() + + /** + * @param api The API to attach this data source to. + */ + override fun api(api: IGraphqlApi) { + cdkBuilder.api(api.let(IGraphqlApi::unwrap)) + } + + /** + * @param databaseName The name of the database to use within the cluster. + */ + override fun databaseName(databaseName: String) { + cdkBuilder.databaseName(databaseName) + } + + /** + * @param description the description of the data source. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * @param name The name of the data source. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + /** + * @param secretStore The secret containing the credentials for the database. + */ + override fun secretStore(secretStore: ISecret) { + cdkBuilder.secretStore(secretStore.let(ISecret::unwrap)) + } + + /** + * @param serverlessCluster The serverless cluster to call to interact with this data source. + */ + override fun serverlessCluster(serverlessCluster: IDatabaseCluster) { + cdkBuilder.serverlessCluster(serverlessCluster.let(IDatabaseCluster::unwrap)) + } + + /** + * @param serviceRole The IAM service role to be assumed by AppSync to interact with the data + * source. + */ + override fun serviceRole(serviceRole: IRole) { + cdkBuilder.serviceRole(serviceRole.let(IRole::unwrap)) + } + + public fun build(): software.amazon.awscdk.services.appsync.RdsDataSourcePropsV2 = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.appsync.RdsDataSourcePropsV2, + ) : CdkObject(cdkObject), RdsDataSourcePropsV2 { + /** + * The API to attach this data source to. + */ + override fun api(): IGraphqlApi = unwrap(this).getApi().let(IGraphqlApi::wrap) + + /** + * The name of the database to use within the cluster. + * + * Default: - None + */ + override fun databaseName(): String? = unwrap(this).getDatabaseName() + + /** + * the description of the data source. + * + * Default: - None + */ + override fun description(): String? = unwrap(this).getDescription() + + /** + * The name of the data source. + * + * Default: - id of data source + */ + override fun name(): String? = unwrap(this).getName() + + /** + * The secret containing the credentials for the database. + */ + override fun secretStore(): ISecret = unwrap(this).getSecretStore().let(ISecret::wrap) + + /** + * The serverless cluster to call to interact with this data source. + */ + override fun serverlessCluster(): IDatabaseCluster = + unwrap(this).getServerlessCluster().let(IDatabaseCluster::wrap) + + /** + * The IAM service role to be assumed by AppSync to interact with the data source. + * + * Default: - Create a new role + */ + override fun serviceRole(): IRole? = unwrap(this).getServiceRole()?.let(IRole::wrap) + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): RdsDataSourcePropsV2 { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.appsync.RdsDataSourcePropsV2): + RdsDataSourcePropsV2 = CdkObjectWrappers.wrap(cdkObject) as? RdsDataSourcePropsV2 ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: RdsDataSourcePropsV2): + software.amazon.awscdk.services.appsync.RdsDataSourcePropsV2 = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.appsync.RdsDataSourcePropsV2 + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/aps/CfnRuleGroupsNamespace.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/aps/CfnRuleGroupsNamespace.kt index 942c4b1481..c8adf4f916 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/aps/CfnRuleGroupsNamespace.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/aps/CfnRuleGroupsNamespace.kt @@ -19,7 +19,7 @@ import software.constructs.Construct as SoftwareConstructsConstruct * The definition of a rule groups namespace in an Amazon Managed Service for Prometheus workspace. * * A rule groups namespace is associated with exactly one rules file. A workspace can have multiple - * rule groups namespaces. For more information about rules files, seee [Creating a rules + * rule groups namespaces. For more information about rules files, see [Creating a rules * file](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-ruler-rulesfile.html) , in the * *Amazon Managed Service for Prometheus User Guide* . * @@ -129,14 +129,12 @@ public open class CfnRuleGroupsNamespace( public open fun tagsRaw(vararg `value`: CfnTag): Unit = tagsRaw(`value`.toList()) /** - * An Amazon Managed Service for Prometheus workspace is a logical and isolated Prometheus server - * dedicated to ingesting, storing, and querying your Prometheus-compatible metrics. + * The ID of the workspace to add the rule groups namespace. */ public open fun workspace(): String = unwrap(this).getWorkspace() /** - * An Amazon Managed Service for Prometheus workspace is a logical and isolated Prometheus server - * dedicated to ingesting, storing, and querying your Prometheus-compatible metrics. + * The ID of the workspace to add the rule groups namespace. */ public open fun workspace(`value`: String) { unwrap(this).setWorkspace(`value`) @@ -186,13 +184,10 @@ public open class CfnRuleGroupsNamespace( public fun tags(vararg tags: CfnTag) /** - * An Amazon Managed Service for Prometheus workspace is a logical and isolated Prometheus - * server dedicated to ingesting, storing, and querying your Prometheus-compatible metrics. + * The ID of the workspace to add the rule groups namespace. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-rulegroupsnamespace.html#cfn-aps-rulegroupsnamespace-workspace) - * @param workspace An Amazon Managed Service for Prometheus workspace is a logical and isolated - * Prometheus server dedicated to ingesting, storing, and querying your Prometheus-compatible - * metrics. + * @param workspace The ID of the workspace to add the rule groups namespace. */ public fun workspace(workspace: String) } @@ -249,13 +244,10 @@ public open class CfnRuleGroupsNamespace( override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) /** - * An Amazon Managed Service for Prometheus workspace is a logical and isolated Prometheus - * server dedicated to ingesting, storing, and querying your Prometheus-compatible metrics. + * The ID of the workspace to add the rule groups namespace. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-rulegroupsnamespace.html#cfn-aps-rulegroupsnamespace-workspace) - * @param workspace An Amazon Managed Service for Prometheus workspace is a logical and isolated - * Prometheus server dedicated to ingesting, storing, and querying your Prometheus-compatible - * metrics. + * @param workspace The ID of the workspace to add the rule groups namespace. */ override fun workspace(workspace: String) { cdkBuilder.workspace(workspace) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/aps/CfnRuleGroupsNamespaceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/aps/CfnRuleGroupsNamespaceProps.kt index 58e5cc1ea9..6879ed6052 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/aps/CfnRuleGroupsNamespaceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/aps/CfnRuleGroupsNamespaceProps.kt @@ -60,8 +60,7 @@ public interface CfnRuleGroupsNamespaceProps { public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() /** - * An Amazon Managed Service for Prometheus workspace is a logical and isolated Prometheus server - * dedicated to ingesting, storing, and querying your Prometheus-compatible metrics. + * The ID of the workspace to add the rule groups namespace. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-rulegroupsnamespace.html#cfn-aps-rulegroupsnamespace-workspace) */ @@ -98,9 +97,7 @@ public interface CfnRuleGroupsNamespaceProps { public fun tags(vararg tags: CfnTag) /** - * @param workspace An Amazon Managed Service for Prometheus workspace is a logical and isolated - * Prometheus server dedicated to ingesting, storing, and querying your Prometheus-compatible - * metrics. + * @param workspace The ID of the workspace to add the rule groups namespace. */ public fun workspace(workspace: String) } @@ -141,9 +138,7 @@ public interface CfnRuleGroupsNamespaceProps { override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) /** - * @param workspace An Amazon Managed Service for Prometheus workspace is a logical and isolated - * Prometheus server dedicated to ingesting, storing, and querying your Prometheus-compatible - * metrics. + * @param workspace The ID of the workspace to add the rule groups namespace. */ override fun workspace(workspace: String) { cdkBuilder.workspace(workspace) @@ -182,8 +177,7 @@ public interface CfnRuleGroupsNamespaceProps { override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() /** - * An Amazon Managed Service for Prometheus workspace is a logical and isolated Prometheus - * server dedicated to ingesting, storing, and querying your Prometheus-compatible metrics. + * The ID of the workspace to add the rule groups namespace. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-rulegroupsnamespace.html#cfn-aps-rulegroupsnamespace-workspace) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/aps/CfnScraper.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/aps/CfnScraper.kt new file mode 100644 index 0000000000..b6fa746f9e --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/aps/CfnScraper.kt @@ -0,0 +1,1063 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.aps + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.ITaggableV2 +import io.cloudshiftdev.awscdk.TagManager +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.jvm.JvmName +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * A scraper is a fully-managed agentless collector that discovers and pulls metrics automatically. + * + * A scraper pulls metrics from Prometheus-compatible sources within an Amazon EKS cluster, and + * sends them to your Amazon Managed Service for Prometheus workspace. Scrapers are flexible. You can + * configure the scraper to control what metrics are collected, the frequency of collection, what + * transformations are applied to the metrics, and more. + * + * An IAM role will be created for you that Amazon Managed Service for Prometheus uses to access the + * metrics in your cluster. You must configure this role with a policy that allows it to scrape metrics + * from your cluster. For more information, see [Configuring your Amazon EKS + * cluster](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-collector-how-to.html#AMP-collector-eks-setup) + * in the *Amazon Managed Service for Prometheus User Guide* . + * + * The `scrapeConfiguration` parameter contains the YAML configuration for the scraper. + * + * + * For more information about collectors, including what metrics are collected, and how to configure + * the scraper, see [Using an AWS managed + * collector](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-collector-how-to.html) in the + * *Amazon Managed Service for Prometheus User Guide* . + * + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.aps.*; + * CfnScraper cfnScraper = CfnScraper.Builder.create(this, "MyCfnScraper") + * .destination(DestinationProperty.builder() + * .ampConfiguration(AmpConfigurationProperty.builder() + * .workspaceArn("workspaceArn") + * .build()) + * .build()) + * .scrapeConfiguration(ScrapeConfigurationProperty.builder() + * .configurationBlob("configurationBlob") + * .build()) + * .source(SourceProperty.builder() + * .eksConfiguration(EksConfigurationProperty.builder() + * .clusterArn("clusterArn") + * .subnetIds(List.of("subnetIds")) + * // the properties below are optional + * .securityGroupIds(List.of("securityGroupIds")) + * .build()) + * .build()) + * // the properties below are optional + * .alias("alias") + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html) + */ +public open class CfnScraper( + cdkObject: software.amazon.awscdk.services.aps.CfnScraper, +) : CfnResource(cdkObject), IInspectable, ITaggableV2 { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnScraperProps, + ) : + this(software.amazon.awscdk.services.aps.CfnScraper(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnScraperProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnScraperProps.Builder.() -> Unit, + ) : this(scope, id, CfnScraperProps(props) + ) + + /** + * An optional user-assigned scraper alias. + */ + public open fun alias(): String? = unwrap(this).getAlias() + + /** + * An optional user-assigned scraper alias. + */ + public open fun alias(`value`: String) { + unwrap(this).setAlias(`value`) + } + + /** + * The Amazon Resource Name (ARN) of the scraper. + * + * For example, + * `arn:aws:aps:<region>:123456798012:scraper/s-example1-1234-abcd-5678-ef9012abcd34` . + */ + public open fun attrArn(): String = unwrap(this).getAttrArn() + + /** + * The Amazon Resource Name (ARN) of the IAM role that provides permissions for the scraper to + * discover and collect metrics on your behalf. + * + * For example, `arn:aws:iam::123456789012:role/service-role/AmazonGrafanaServiceRole-12example` . + */ + public open fun attrRoleArn(): String = unwrap(this).getAttrRoleArn() + + /** + * The ID of the scraper. + * + * For example, `s-example1-1234-abcd-5678-ef9012abcd34` . + */ + public open fun attrScraperId(): String = unwrap(this).getAttrScraperId() + + /** + * Tag Manager which manages the tags for this resource. + */ + public override fun cdkTagManager(): TagManager = + unwrap(this).getCdkTagManager().let(TagManager::wrap) + + /** + * The Amazon Managed Service for Prometheus workspace the scraper sends metrics to. + */ + public open fun destination(): Any = unwrap(this).getDestination() + + /** + * The Amazon Managed Service for Prometheus workspace the scraper sends metrics to. + */ + public open fun destination(`value`: IResolvable) { + unwrap(this).setDestination(`value`.let(IResolvable::unwrap)) + } + + /** + * The Amazon Managed Service for Prometheus workspace the scraper sends metrics to. + */ + public open fun destination(`value`: DestinationProperty) { + unwrap(this).setDestination(`value`.let(DestinationProperty::unwrap)) + } + + /** + * The Amazon Managed Service for Prometheus workspace the scraper sends metrics to. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("67efaa25fee918a606db2ac1356ad3c0c25d76f88bf76ad4f2cb1640bca9bfab") + public open fun destination(`value`: DestinationProperty.Builder.() -> Unit): Unit = + destination(DestinationProperty(`value`)) + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * The configuration in use by the scraper. + */ + public open fun scrapeConfiguration(): Any = unwrap(this).getScrapeConfiguration() + + /** + * The configuration in use by the scraper. + */ + public open fun scrapeConfiguration(`value`: IResolvable) { + unwrap(this).setScrapeConfiguration(`value`.let(IResolvable::unwrap)) + } + + /** + * The configuration in use by the scraper. + */ + public open fun scrapeConfiguration(`value`: ScrapeConfigurationProperty) { + unwrap(this).setScrapeConfiguration(`value`.let(ScrapeConfigurationProperty::unwrap)) + } + + /** + * The configuration in use by the scraper. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("6f4f1ba522d60f9542f751be4ae132cebf3168afc65876cfa329012c67217ef5") + public open fun scrapeConfiguration(`value`: ScrapeConfigurationProperty.Builder.() -> Unit): Unit + = scrapeConfiguration(ScrapeConfigurationProperty(`value`)) + + /** + * The Amazon EKS cluster from which the scraper collects metrics. + */ + public open fun source(): Any = unwrap(this).getSource() + + /** + * The Amazon EKS cluster from which the scraper collects metrics. + */ + public open fun source(`value`: IResolvable) { + unwrap(this).setSource(`value`.let(IResolvable::unwrap)) + } + + /** + * The Amazon EKS cluster from which the scraper collects metrics. + */ + public open fun source(`value`: SourceProperty) { + unwrap(this).setSource(`value`.let(SourceProperty::unwrap)) + } + + /** + * The Amazon EKS cluster from which the scraper collects metrics. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("c5f5e26f5d394dc83ebc745c4eb0e95962042a26afce330b6886006aa03a7940") + public open fun source(`value`: SourceProperty.Builder.() -> Unit): Unit = + source(SourceProperty(`value`)) + + /** + * (Optional) The list of tag keys and values associated with the scraper. + */ + public open fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * (Optional) The list of tag keys and values associated with the scraper. + */ + public open fun tags(`value`: List) { + unwrap(this).setTags(`value`.map(CfnTag::unwrap)) + } + + /** + * (Optional) The list of tag keys and values associated with the scraper. + */ + public open fun tags(vararg `value`: CfnTag): Unit = tags(`value`.toList()) + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.aps.CfnScraper]. + */ + @CdkDslMarker + public interface Builder { + /** + * An optional user-assigned scraper alias. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-alias) + * @param alias An optional user-assigned scraper alias. + */ + public fun alias(alias: String) + + /** + * The Amazon Managed Service for Prometheus workspace the scraper sends metrics to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-destination) + * @param destination The Amazon Managed Service for Prometheus workspace the scraper sends + * metrics to. + */ + public fun destination(destination: IResolvable) + + /** + * The Amazon Managed Service for Prometheus workspace the scraper sends metrics to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-destination) + * @param destination The Amazon Managed Service for Prometheus workspace the scraper sends + * metrics to. + */ + public fun destination(destination: DestinationProperty) + + /** + * The Amazon Managed Service for Prometheus workspace the scraper sends metrics to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-destination) + * @param destination The Amazon Managed Service for Prometheus workspace the scraper sends + * metrics to. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("f2278d04adcb3a7675f040f9dc1d8bd8f7fe3680ea2624286e6beaee9715ce67") + public fun destination(destination: DestinationProperty.Builder.() -> Unit) + + /** + * The configuration in use by the scraper. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-scrapeconfiguration) + * @param scrapeConfiguration The configuration in use by the scraper. + */ + public fun scrapeConfiguration(scrapeConfiguration: IResolvable) + + /** + * The configuration in use by the scraper. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-scrapeconfiguration) + * @param scrapeConfiguration The configuration in use by the scraper. + */ + public fun scrapeConfiguration(scrapeConfiguration: ScrapeConfigurationProperty) + + /** + * The configuration in use by the scraper. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-scrapeconfiguration) + * @param scrapeConfiguration The configuration in use by the scraper. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("b05368caa68886614fee18f6288e18cc52297d77acf5a0db2b1d3ad62d974a5c") + public + fun scrapeConfiguration(scrapeConfiguration: ScrapeConfigurationProperty.Builder.() -> Unit) + + /** + * The Amazon EKS cluster from which the scraper collects metrics. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-source) + * @param source The Amazon EKS cluster from which the scraper collects metrics. + */ + public fun source(source: IResolvable) + + /** + * The Amazon EKS cluster from which the scraper collects metrics. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-source) + * @param source The Amazon EKS cluster from which the scraper collects metrics. + */ + public fun source(source: SourceProperty) + + /** + * The Amazon EKS cluster from which the scraper collects metrics. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-source) + * @param source The Amazon EKS cluster from which the scraper collects metrics. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("6f95dc2bab1abee487827fecf63738d7ad31090ddabe0bfaba3b10b646314a9e") + public fun source(source: SourceProperty.Builder.() -> Unit) + + /** + * (Optional) The list of tag keys and values associated with the scraper. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-tags) + * @param tags (Optional) The list of tag keys and values associated with the scraper. + */ + public fun tags(tags: List) + + /** + * (Optional) The list of tag keys and values associated with the scraper. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-tags) + * @param tags (Optional) The list of tag keys and values associated with the scraper. + */ + public fun tags(vararg tags: CfnTag) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.services.aps.CfnScraper.Builder = + software.amazon.awscdk.services.aps.CfnScraper.Builder.create(scope, id) + + /** + * An optional user-assigned scraper alias. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-alias) + * @param alias An optional user-assigned scraper alias. + */ + override fun alias(alias: String) { + cdkBuilder.alias(alias) + } + + /** + * The Amazon Managed Service for Prometheus workspace the scraper sends metrics to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-destination) + * @param destination The Amazon Managed Service for Prometheus workspace the scraper sends + * metrics to. + */ + override fun destination(destination: IResolvable) { + cdkBuilder.destination(destination.let(IResolvable::unwrap)) + } + + /** + * The Amazon Managed Service for Prometheus workspace the scraper sends metrics to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-destination) + * @param destination The Amazon Managed Service for Prometheus workspace the scraper sends + * metrics to. + */ + override fun destination(destination: DestinationProperty) { + cdkBuilder.destination(destination.let(DestinationProperty::unwrap)) + } + + /** + * The Amazon Managed Service for Prometheus workspace the scraper sends metrics to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-destination) + * @param destination The Amazon Managed Service for Prometheus workspace the scraper sends + * metrics to. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("f2278d04adcb3a7675f040f9dc1d8bd8f7fe3680ea2624286e6beaee9715ce67") + override fun destination(destination: DestinationProperty.Builder.() -> Unit): Unit = + destination(DestinationProperty(destination)) + + /** + * The configuration in use by the scraper. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-scrapeconfiguration) + * @param scrapeConfiguration The configuration in use by the scraper. + */ + override fun scrapeConfiguration(scrapeConfiguration: IResolvable) { + cdkBuilder.scrapeConfiguration(scrapeConfiguration.let(IResolvable::unwrap)) + } + + /** + * The configuration in use by the scraper. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-scrapeconfiguration) + * @param scrapeConfiguration The configuration in use by the scraper. + */ + override fun scrapeConfiguration(scrapeConfiguration: ScrapeConfigurationProperty) { + cdkBuilder.scrapeConfiguration(scrapeConfiguration.let(ScrapeConfigurationProperty::unwrap)) + } + + /** + * The configuration in use by the scraper. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-scrapeconfiguration) + * @param scrapeConfiguration The configuration in use by the scraper. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("b05368caa68886614fee18f6288e18cc52297d77acf5a0db2b1d3ad62d974a5c") + override + fun scrapeConfiguration(scrapeConfiguration: ScrapeConfigurationProperty.Builder.() -> Unit): + Unit = scrapeConfiguration(ScrapeConfigurationProperty(scrapeConfiguration)) + + /** + * The Amazon EKS cluster from which the scraper collects metrics. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-source) + * @param source The Amazon EKS cluster from which the scraper collects metrics. + */ + override fun source(source: IResolvable) { + cdkBuilder.source(source.let(IResolvable::unwrap)) + } + + /** + * The Amazon EKS cluster from which the scraper collects metrics. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-source) + * @param source The Amazon EKS cluster from which the scraper collects metrics. + */ + override fun source(source: SourceProperty) { + cdkBuilder.source(source.let(SourceProperty::unwrap)) + } + + /** + * The Amazon EKS cluster from which the scraper collects metrics. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-source) + * @param source The Amazon EKS cluster from which the scraper collects metrics. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("6f95dc2bab1abee487827fecf63738d7ad31090ddabe0bfaba3b10b646314a9e") + override fun source(source: SourceProperty.Builder.() -> Unit): Unit = + source(SourceProperty(source)) + + /** + * (Optional) The list of tag keys and values associated with the scraper. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-tags) + * @param tags (Optional) The list of tag keys and values associated with the scraper. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * (Optional) The list of tag keys and values associated with the scraper. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-tags) + * @param tags (Optional) The list of tag keys and values associated with the scraper. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + public fun build(): software.amazon.awscdk.services.aps.CfnScraper = cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.aps.CfnScraper.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnScraper { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnScraper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.aps.CfnScraper): CfnScraper = + CfnScraper(cdkObject) + + internal fun unwrap(wrapped: CfnScraper): software.amazon.awscdk.services.aps.CfnScraper = + wrapped.cdkObject as software.amazon.awscdk.services.aps.CfnScraper + } + + /** + * The `AmpConfiguration` structure defines the Amazon Managed Service for Prometheus instance a + * scraper should send metrics to. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.aps.*; + * AmpConfigurationProperty ampConfigurationProperty = AmpConfigurationProperty.builder() + * .workspaceArn("workspaceArn") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-aps-scraper-ampconfiguration.html) + */ + public interface AmpConfigurationProperty { + /** + * ARN of the Amazon Managed Service for Prometheus workspace. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-aps-scraper-ampconfiguration.html#cfn-aps-scraper-ampconfiguration-workspacearn) + */ + public fun workspaceArn(): String + + /** + * A builder for [AmpConfigurationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param workspaceArn ARN of the Amazon Managed Service for Prometheus workspace. + */ + public fun workspaceArn(workspaceArn: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.aps.CfnScraper.AmpConfigurationProperty.Builder = + software.amazon.awscdk.services.aps.CfnScraper.AmpConfigurationProperty.builder() + + /** + * @param workspaceArn ARN of the Amazon Managed Service for Prometheus workspace. + */ + override fun workspaceArn(workspaceArn: String) { + cdkBuilder.workspaceArn(workspaceArn) + } + + public fun build(): software.amazon.awscdk.services.aps.CfnScraper.AmpConfigurationProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.aps.CfnScraper.AmpConfigurationProperty, + ) : CdkObject(cdkObject), AmpConfigurationProperty { + /** + * ARN of the Amazon Managed Service for Prometheus workspace. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-aps-scraper-ampconfiguration.html#cfn-aps-scraper-ampconfiguration-workspacearn) + */ + override fun workspaceArn(): String = unwrap(this).getWorkspaceArn() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): AmpConfigurationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.aps.CfnScraper.AmpConfigurationProperty): + AmpConfigurationProperty = CdkObjectWrappers.wrap(cdkObject) as? AmpConfigurationProperty + ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: AmpConfigurationProperty): + software.amazon.awscdk.services.aps.CfnScraper.AmpConfigurationProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.aps.CfnScraper.AmpConfigurationProperty + } + } + + /** + * Where to send the metrics from a scraper. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.aps.*; + * DestinationProperty destinationProperty = DestinationProperty.builder() + * .ampConfiguration(AmpConfigurationProperty.builder() + * .workspaceArn("workspaceArn") + * .build()) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-aps-scraper-destination.html) + */ + public interface DestinationProperty { + /** + * The Amazon Managed Service for Prometheus workspace to send metrics to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-aps-scraper-destination.html#cfn-aps-scraper-destination-ampconfiguration) + */ + public fun ampConfiguration(): Any + + /** + * A builder for [DestinationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param ampConfiguration The Amazon Managed Service for Prometheus workspace to send metrics + * to. + */ + public fun ampConfiguration(ampConfiguration: IResolvable) + + /** + * @param ampConfiguration The Amazon Managed Service for Prometheus workspace to send metrics + * to. + */ + public fun ampConfiguration(ampConfiguration: AmpConfigurationProperty) + + /** + * @param ampConfiguration The Amazon Managed Service for Prometheus workspace to send metrics + * to. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("8521dd71d600d12c5d1eed2973180b6062c12e2510e98e75860e2217962ad5f9") + public fun ampConfiguration(ampConfiguration: AmpConfigurationProperty.Builder.() -> Unit) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.aps.CfnScraper.DestinationProperty.Builder = + software.amazon.awscdk.services.aps.CfnScraper.DestinationProperty.builder() + + /** + * @param ampConfiguration The Amazon Managed Service for Prometheus workspace to send metrics + * to. + */ + override fun ampConfiguration(ampConfiguration: IResolvable) { + cdkBuilder.ampConfiguration(ampConfiguration.let(IResolvable::unwrap)) + } + + /** + * @param ampConfiguration The Amazon Managed Service for Prometheus workspace to send metrics + * to. + */ + override fun ampConfiguration(ampConfiguration: AmpConfigurationProperty) { + cdkBuilder.ampConfiguration(ampConfiguration.let(AmpConfigurationProperty::unwrap)) + } + + /** + * @param ampConfiguration The Amazon Managed Service for Prometheus workspace to send metrics + * to. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("8521dd71d600d12c5d1eed2973180b6062c12e2510e98e75860e2217962ad5f9") + override fun ampConfiguration(ampConfiguration: AmpConfigurationProperty.Builder.() -> Unit): + Unit = ampConfiguration(AmpConfigurationProperty(ampConfiguration)) + + public fun build(): software.amazon.awscdk.services.aps.CfnScraper.DestinationProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.aps.CfnScraper.DestinationProperty, + ) : CdkObject(cdkObject), DestinationProperty { + /** + * The Amazon Managed Service for Prometheus workspace to send metrics to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-aps-scraper-destination.html#cfn-aps-scraper-destination-ampconfiguration) + */ + override fun ampConfiguration(): Any = unwrap(this).getAmpConfiguration() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): DestinationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.aps.CfnScraper.DestinationProperty): + DestinationProperty = CdkObjectWrappers.wrap(cdkObject) as? DestinationProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: DestinationProperty): + software.amazon.awscdk.services.aps.CfnScraper.DestinationProperty = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.aps.CfnScraper.DestinationProperty + } + } + + /** + * The `EksConfiguration` structure describes the connection to the Amazon EKS cluster from which + * a scraper collects metrics. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.aps.*; + * EksConfigurationProperty eksConfigurationProperty = EksConfigurationProperty.builder() + * .clusterArn("clusterArn") + * .subnetIds(List.of("subnetIds")) + * // the properties below are optional + * .securityGroupIds(List.of("securityGroupIds")) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-aps-scraper-eksconfiguration.html) + */ + public interface EksConfigurationProperty { + /** + * ARN of the Amazon EKS cluster. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-aps-scraper-eksconfiguration.html#cfn-aps-scraper-eksconfiguration-clusterarn) + */ + public fun clusterArn(): String + + /** + * A list of the security group IDs for the Amazon EKS cluster VPC configuration. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-aps-scraper-eksconfiguration.html#cfn-aps-scraper-eksconfiguration-securitygroupids) + */ + public fun securityGroupIds(): List = unwrap(this).getSecurityGroupIds() ?: emptyList() + + /** + * A list of subnet IDs for the Amazon EKS cluster VPC configuration. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-aps-scraper-eksconfiguration.html#cfn-aps-scraper-eksconfiguration-subnetids) + */ + public fun subnetIds(): List + + /** + * A builder for [EksConfigurationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param clusterArn ARN of the Amazon EKS cluster. + */ + public fun clusterArn(clusterArn: String) + + /** + * @param securityGroupIds A list of the security group IDs for the Amazon EKS cluster VPC + * configuration. + */ + public fun securityGroupIds(securityGroupIds: List) + + /** + * @param securityGroupIds A list of the security group IDs for the Amazon EKS cluster VPC + * configuration. + */ + public fun securityGroupIds(vararg securityGroupIds: String) + + /** + * @param subnetIds A list of subnet IDs for the Amazon EKS cluster VPC configuration. + */ + public fun subnetIds(subnetIds: List) + + /** + * @param subnetIds A list of subnet IDs for the Amazon EKS cluster VPC configuration. + */ + public fun subnetIds(vararg subnetIds: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.aps.CfnScraper.EksConfigurationProperty.Builder = + software.amazon.awscdk.services.aps.CfnScraper.EksConfigurationProperty.builder() + + /** + * @param clusterArn ARN of the Amazon EKS cluster. + */ + override fun clusterArn(clusterArn: String) { + cdkBuilder.clusterArn(clusterArn) + } + + /** + * @param securityGroupIds A list of the security group IDs for the Amazon EKS cluster VPC + * configuration. + */ + override fun securityGroupIds(securityGroupIds: List) { + cdkBuilder.securityGroupIds(securityGroupIds) + } + + /** + * @param securityGroupIds A list of the security group IDs for the Amazon EKS cluster VPC + * configuration. + */ + override fun securityGroupIds(vararg securityGroupIds: String): Unit = + securityGroupIds(securityGroupIds.toList()) + + /** + * @param subnetIds A list of subnet IDs for the Amazon EKS cluster VPC configuration. + */ + override fun subnetIds(subnetIds: List) { + cdkBuilder.subnetIds(subnetIds) + } + + /** + * @param subnetIds A list of subnet IDs for the Amazon EKS cluster VPC configuration. + */ + override fun subnetIds(vararg subnetIds: String): Unit = subnetIds(subnetIds.toList()) + + public fun build(): software.amazon.awscdk.services.aps.CfnScraper.EksConfigurationProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.aps.CfnScraper.EksConfigurationProperty, + ) : CdkObject(cdkObject), EksConfigurationProperty { + /** + * ARN of the Amazon EKS cluster. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-aps-scraper-eksconfiguration.html#cfn-aps-scraper-eksconfiguration-clusterarn) + */ + override fun clusterArn(): String = unwrap(this).getClusterArn() + + /** + * A list of the security group IDs for the Amazon EKS cluster VPC configuration. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-aps-scraper-eksconfiguration.html#cfn-aps-scraper-eksconfiguration-securitygroupids) + */ + override fun securityGroupIds(): List = unwrap(this).getSecurityGroupIds() ?: + emptyList() + + /** + * A list of subnet IDs for the Amazon EKS cluster VPC configuration. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-aps-scraper-eksconfiguration.html#cfn-aps-scraper-eksconfiguration-subnetids) + */ + override fun subnetIds(): List = unwrap(this).getSubnetIds() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): EksConfigurationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.aps.CfnScraper.EksConfigurationProperty): + EksConfigurationProperty = CdkObjectWrappers.wrap(cdkObject) as? EksConfigurationProperty + ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: EksConfigurationProperty): + software.amazon.awscdk.services.aps.CfnScraper.EksConfigurationProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.aps.CfnScraper.EksConfigurationProperty + } + } + + /** + * A scrape configuration for a scraper, base 64 encoded. + * + * For more information, see [Scraper + * configuration](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-collector-how-to.html#AMP-collector-configuration) + * in the *Amazon Managed Service for Prometheus User Guide* . + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.aps.*; + * ScrapeConfigurationProperty scrapeConfigurationProperty = ScrapeConfigurationProperty.builder() + * .configurationBlob("configurationBlob") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-aps-scraper-scrapeconfiguration.html) + */ + public interface ScrapeConfigurationProperty { + /** + * The base 64 encoded scrape configuration file. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-aps-scraper-scrapeconfiguration.html#cfn-aps-scraper-scrapeconfiguration-configurationblob) + */ + public fun configurationBlob(): String + + /** + * A builder for [ScrapeConfigurationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param configurationBlob The base 64 encoded scrape configuration file. + */ + public fun configurationBlob(configurationBlob: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.aps.CfnScraper.ScrapeConfigurationProperty.Builder = + software.amazon.awscdk.services.aps.CfnScraper.ScrapeConfigurationProperty.builder() + + /** + * @param configurationBlob The base 64 encoded scrape configuration file. + */ + override fun configurationBlob(configurationBlob: String) { + cdkBuilder.configurationBlob(configurationBlob) + } + + public fun build(): software.amazon.awscdk.services.aps.CfnScraper.ScrapeConfigurationProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.aps.CfnScraper.ScrapeConfigurationProperty, + ) : CdkObject(cdkObject), ScrapeConfigurationProperty { + /** + * The base 64 encoded scrape configuration file. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-aps-scraper-scrapeconfiguration.html#cfn-aps-scraper-scrapeconfiguration-configurationblob) + */ + override fun configurationBlob(): String = unwrap(this).getConfigurationBlob() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): ScrapeConfigurationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.aps.CfnScraper.ScrapeConfigurationProperty): + ScrapeConfigurationProperty = CdkObjectWrappers.wrap(cdkObject) as? + ScrapeConfigurationProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: ScrapeConfigurationProperty): + software.amazon.awscdk.services.aps.CfnScraper.ScrapeConfigurationProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.aps.CfnScraper.ScrapeConfigurationProperty + } + } + + /** + * The source of collected metrics for a scraper. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.aps.*; + * SourceProperty sourceProperty = SourceProperty.builder() + * .eksConfiguration(EksConfigurationProperty.builder() + * .clusterArn("clusterArn") + * .subnetIds(List.of("subnetIds")) + * // the properties below are optional + * .securityGroupIds(List.of("securityGroupIds")) + * .build()) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-aps-scraper-source.html) + */ + public interface SourceProperty { + /** + * The Amazon EKS cluster from which a scraper collects metrics. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-aps-scraper-source.html#cfn-aps-scraper-source-eksconfiguration) + */ + public fun eksConfiguration(): Any + + /** + * A builder for [SourceProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param eksConfiguration The Amazon EKS cluster from which a scraper collects metrics. + */ + public fun eksConfiguration(eksConfiguration: IResolvable) + + /** + * @param eksConfiguration The Amazon EKS cluster from which a scraper collects metrics. + */ + public fun eksConfiguration(eksConfiguration: EksConfigurationProperty) + + /** + * @param eksConfiguration The Amazon EKS cluster from which a scraper collects metrics. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("2011a2ad9af37e3ab44c7c44b1bfcafbba3ca6a1bb9d2c36f2b8383a47d16477") + public fun eksConfiguration(eksConfiguration: EksConfigurationProperty.Builder.() -> Unit) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.services.aps.CfnScraper.SourceProperty.Builder + = software.amazon.awscdk.services.aps.CfnScraper.SourceProperty.builder() + + /** + * @param eksConfiguration The Amazon EKS cluster from which a scraper collects metrics. + */ + override fun eksConfiguration(eksConfiguration: IResolvable) { + cdkBuilder.eksConfiguration(eksConfiguration.let(IResolvable::unwrap)) + } + + /** + * @param eksConfiguration The Amazon EKS cluster from which a scraper collects metrics. + */ + override fun eksConfiguration(eksConfiguration: EksConfigurationProperty) { + cdkBuilder.eksConfiguration(eksConfiguration.let(EksConfigurationProperty::unwrap)) + } + + /** + * @param eksConfiguration The Amazon EKS cluster from which a scraper collects metrics. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("2011a2ad9af37e3ab44c7c44b1bfcafbba3ca6a1bb9d2c36f2b8383a47d16477") + override fun eksConfiguration(eksConfiguration: EksConfigurationProperty.Builder.() -> Unit): + Unit = eksConfiguration(EksConfigurationProperty(eksConfiguration)) + + public fun build(): software.amazon.awscdk.services.aps.CfnScraper.SourceProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.aps.CfnScraper.SourceProperty, + ) : CdkObject(cdkObject), SourceProperty { + /** + * The Amazon EKS cluster from which a scraper collects metrics. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-aps-scraper-source.html#cfn-aps-scraper-source-eksconfiguration) + */ + override fun eksConfiguration(): Any = unwrap(this).getEksConfiguration() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): SourceProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.aps.CfnScraper.SourceProperty): + SourceProperty = CdkObjectWrappers.wrap(cdkObject) as? SourceProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: SourceProperty): + software.amazon.awscdk.services.aps.CfnScraper.SourceProperty = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.aps.CfnScraper.SourceProperty + } + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/aps/CfnScraperProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/aps/CfnScraperProps.kt new file mode 100644 index 0000000000..2c30be84d8 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/aps/CfnScraperProps.kt @@ -0,0 +1,314 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.aps + +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.jvm.JvmName + +/** + * Properties for defining a `CfnScraper`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.aps.*; + * CfnScraperProps cfnScraperProps = CfnScraperProps.builder() + * .destination(DestinationProperty.builder() + * .ampConfiguration(AmpConfigurationProperty.builder() + * .workspaceArn("workspaceArn") + * .build()) + * .build()) + * .scrapeConfiguration(ScrapeConfigurationProperty.builder() + * .configurationBlob("configurationBlob") + * .build()) + * .source(SourceProperty.builder() + * .eksConfiguration(EksConfigurationProperty.builder() + * .clusterArn("clusterArn") + * .subnetIds(List.of("subnetIds")) + * // the properties below are optional + * .securityGroupIds(List.of("securityGroupIds")) + * .build()) + * .build()) + * // the properties below are optional + * .alias("alias") + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html) + */ +public interface CfnScraperProps { + /** + * An optional user-assigned scraper alias. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-alias) + */ + public fun alias(): String? = unwrap(this).getAlias() + + /** + * The Amazon Managed Service for Prometheus workspace the scraper sends metrics to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-destination) + */ + public fun destination(): Any + + /** + * The configuration in use by the scraper. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-scrapeconfiguration) + */ + public fun scrapeConfiguration(): Any + + /** + * The Amazon EKS cluster from which the scraper collects metrics. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-source) + */ + public fun source(): Any + + /** + * (Optional) The list of tag keys and values associated with the scraper. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-tags) + */ + public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * A builder for [CfnScraperProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param alias An optional user-assigned scraper alias. + */ + public fun alias(alias: String) + + /** + * @param destination The Amazon Managed Service for Prometheus workspace the scraper sends + * metrics to. + */ + public fun destination(destination: IResolvable) + + /** + * @param destination The Amazon Managed Service for Prometheus workspace the scraper sends + * metrics to. + */ + public fun destination(destination: CfnScraper.DestinationProperty) + + /** + * @param destination The Amazon Managed Service for Prometheus workspace the scraper sends + * metrics to. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("0fa6226dd6dcfea8ed204788e8684ad5b5135fc30eacc7a0fb41949ca96f1b25") + public fun destination(destination: CfnScraper.DestinationProperty.Builder.() -> Unit) + + /** + * @param scrapeConfiguration The configuration in use by the scraper. + */ + public fun scrapeConfiguration(scrapeConfiguration: IResolvable) + + /** + * @param scrapeConfiguration The configuration in use by the scraper. + */ + public fun scrapeConfiguration(scrapeConfiguration: CfnScraper.ScrapeConfigurationProperty) + + /** + * @param scrapeConfiguration The configuration in use by the scraper. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("e5189bbc51104f47b648aca6da837a2cec14146e578b0f62df7cf40ee7644e68") + public + fun scrapeConfiguration(scrapeConfiguration: CfnScraper.ScrapeConfigurationProperty.Builder.() -> Unit) + + /** + * @param source The Amazon EKS cluster from which the scraper collects metrics. + */ + public fun source(source: IResolvable) + + /** + * @param source The Amazon EKS cluster from which the scraper collects metrics. + */ + public fun source(source: CfnScraper.SourceProperty) + + /** + * @param source The Amazon EKS cluster from which the scraper collects metrics. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("e945f2cfb23e4bb2d6ebd85ce9bd650efe7ae354a8bdb70dd5ad33f22fc6aed9") + public fun source(source: CfnScraper.SourceProperty.Builder.() -> Unit) + + /** + * @param tags (Optional) The list of tag keys and values associated with the scraper. + */ + public fun tags(tags: List) + + /** + * @param tags (Optional) The list of tag keys and values associated with the scraper. + */ + public fun tags(vararg tags: CfnTag) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.services.aps.CfnScraperProps.Builder = + software.amazon.awscdk.services.aps.CfnScraperProps.builder() + + /** + * @param alias An optional user-assigned scraper alias. + */ + override fun alias(alias: String) { + cdkBuilder.alias(alias) + } + + /** + * @param destination The Amazon Managed Service for Prometheus workspace the scraper sends + * metrics to. + */ + override fun destination(destination: IResolvable) { + cdkBuilder.destination(destination.let(IResolvable::unwrap)) + } + + /** + * @param destination The Amazon Managed Service for Prometheus workspace the scraper sends + * metrics to. + */ + override fun destination(destination: CfnScraper.DestinationProperty) { + cdkBuilder.destination(destination.let(CfnScraper.DestinationProperty::unwrap)) + } + + /** + * @param destination The Amazon Managed Service for Prometheus workspace the scraper sends + * metrics to. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("0fa6226dd6dcfea8ed204788e8684ad5b5135fc30eacc7a0fb41949ca96f1b25") + override fun destination(destination: CfnScraper.DestinationProperty.Builder.() -> Unit): Unit = + destination(CfnScraper.DestinationProperty(destination)) + + /** + * @param scrapeConfiguration The configuration in use by the scraper. + */ + override fun scrapeConfiguration(scrapeConfiguration: IResolvable) { + cdkBuilder.scrapeConfiguration(scrapeConfiguration.let(IResolvable::unwrap)) + } + + /** + * @param scrapeConfiguration The configuration in use by the scraper. + */ + override fun scrapeConfiguration(scrapeConfiguration: CfnScraper.ScrapeConfigurationProperty) { + cdkBuilder.scrapeConfiguration(scrapeConfiguration.let(CfnScraper.ScrapeConfigurationProperty::unwrap)) + } + + /** + * @param scrapeConfiguration The configuration in use by the scraper. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("e5189bbc51104f47b648aca6da837a2cec14146e578b0f62df7cf40ee7644e68") + override + fun scrapeConfiguration(scrapeConfiguration: CfnScraper.ScrapeConfigurationProperty.Builder.() -> Unit): + Unit = scrapeConfiguration(CfnScraper.ScrapeConfigurationProperty(scrapeConfiguration)) + + /** + * @param source The Amazon EKS cluster from which the scraper collects metrics. + */ + override fun source(source: IResolvable) { + cdkBuilder.source(source.let(IResolvable::unwrap)) + } + + /** + * @param source The Amazon EKS cluster from which the scraper collects metrics. + */ + override fun source(source: CfnScraper.SourceProperty) { + cdkBuilder.source(source.let(CfnScraper.SourceProperty::unwrap)) + } + + /** + * @param source The Amazon EKS cluster from which the scraper collects metrics. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("e945f2cfb23e4bb2d6ebd85ce9bd650efe7ae354a8bdb70dd5ad33f22fc6aed9") + override fun source(source: CfnScraper.SourceProperty.Builder.() -> Unit): Unit = + source(CfnScraper.SourceProperty(source)) + + /** + * @param tags (Optional) The list of tag keys and values associated with the scraper. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * @param tags (Optional) The list of tag keys and values associated with the scraper. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + public fun build(): software.amazon.awscdk.services.aps.CfnScraperProps = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.aps.CfnScraperProps, + ) : CdkObject(cdkObject), CfnScraperProps { + /** + * An optional user-assigned scraper alias. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-alias) + */ + override fun alias(): String? = unwrap(this).getAlias() + + /** + * The Amazon Managed Service for Prometheus workspace the scraper sends metrics to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-destination) + */ + override fun destination(): Any = unwrap(this).getDestination() + + /** + * The configuration in use by the scraper. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-scrapeconfiguration) + */ + override fun scrapeConfiguration(): Any = unwrap(this).getScrapeConfiguration() + + /** + * The Amazon EKS cluster from which the scraper collects metrics. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-source) + */ + override fun source(): Any = unwrap(this).getSource() + + /** + * (Optional) The list of tag keys and values associated with the scraper. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-scraper.html#cfn-aps-scraper-tags) + */ + override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnScraperProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.aps.CfnScraperProps): + CfnScraperProps = CdkObjectWrappers.wrap(cdkObject) as? CfnScraperProps ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnScraperProps): + software.amazon.awscdk.services.aps.CfnScraperProps = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.aps.CfnScraperProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/AutoScalingGroup.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/AutoScalingGroup.kt index 82aabee172..4eb01edbf7 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/AutoScalingGroup.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/AutoScalingGroup.kt @@ -249,7 +249,7 @@ public open class AutoScalingGroup( * * @param loadBalancer */ - public override fun attachToClassicLb(loadBalancer: LoadBalancer) { + public override fun attachToClassicLB(loadBalancer: LoadBalancer) { unwrap(this).attachToClassicLB(loadBalancer.let(LoadBalancer::unwrap)) } diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnAutoScalingGroup.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnAutoScalingGroup.kt index 0f0e4e3374..c37204ebe1 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnAutoScalingGroup.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnAutoScalingGroup.kt @@ -614,12 +614,30 @@ public open class CfnAutoScalingGroup( } /** + * (deprecated) A structure that specifies an Amazon SNS notification configuration for the + * `NotificationConfigurations` property of the + * [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) + * resource. For an example template snippet, see [Auto scaling template + * snippets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-autoscaling.html). + * For more information, see [Get Amazon SNS notifications when your Auto Scaling group + * scales](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html) in the + * *Amazon EC2 Auto Scaling User Guide*. + * * @deprecated this property has been deprecated */ @Deprecated(message = "deprecated in CDK") public open fun notificationConfiguration(): Any? = unwrap(this).getNotificationConfiguration() /** + * (deprecated) A structure that specifies an Amazon SNS notification configuration for the + * `NotificationConfigurations` property of the + * [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) + * resource. For an example template snippet, see [Auto scaling template + * snippets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-autoscaling.html). + * For more information, see [Get Amazon SNS notifications when your Auto Scaling group + * scales](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html) in the + * *Amazon EC2 Auto Scaling User Guide*. + * * @deprecated this property has been deprecated */ @Deprecated(message = "deprecated in CDK") @@ -628,6 +646,15 @@ public open class CfnAutoScalingGroup( } /** + * (deprecated) A structure that specifies an Amazon SNS notification configuration for the + * `NotificationConfigurations` property of the + * [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) + * resource. For an example template snippet, see [Auto scaling template + * snippets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-autoscaling.html). + * For more information, see [Get Amazon SNS notifications when your Auto Scaling group + * scales](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html) in the + * *Amazon EC2 Auto Scaling User Guide*. + * * @deprecated this property has been deprecated */ @Deprecated(message = "deprecated in CDK") @@ -636,6 +663,15 @@ public open class CfnAutoScalingGroup( } /** + * (deprecated) A structure that specifies an Amazon SNS notification configuration for the + * `NotificationConfigurations` property of the + * [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) + * resource. For an example template snippet, see [Auto scaling template + * snippets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-autoscaling.html). + * For more information, see [Get Amazon SNS notifications when your Auto Scaling group + * scales](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html) in the + * *Amazon EC2 Auto Scaling User Guide*. + * * @deprecated this property has been deprecated */ @Deprecated(message = "deprecated in CDK") @@ -872,8 +908,8 @@ public open class CfnAutoScalingGroup( * * The amount of time, in seconds, between one scaling activity ending and another one starting * due to simple scaling policies. For more information, see [Scaling cooldowns for Amazon EC2 Auto - * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html) in the *Amazon EC2 - * Auto Scaling User Guide* . + * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-scaling-cooldowns.html) + * in the *Amazon EC2 Auto Scaling User Guide* . * * Default: `300` seconds * @@ -936,9 +972,9 @@ public open class CfnAutoScalingGroup( * The unit of measurement for the value specified for desired capacity. * * Amazon EC2 Auto Scaling supports `DesiredCapacityType` for attribute-based instance type - * selection only. For more information, see [Creating an Auto Scaling group using attribute-based + * selection only. For more information, see [Create a mixed instances group using attribute-based * instance type - * selection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-instance-type-requirements.html) + * selection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-mixed-instances-group-attribute-based-instance-type-selection.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * By default, Amazon EC2 Auto Scaling specifies `units` , which translates into number of @@ -976,9 +1012,10 @@ public open class CfnAutoScalingGroup( * A comma-separated value string of one or more health check types. * * The valid values are `EC2` , `ELB` , and `VPC_LATTICE` . `EC2` is the default health check - * and cannot be disabled. For more information, see [Health checks for Auto Scaling - * instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html) in the - * *Amazon EC2 Auto Scaling User Guide* . + * and cannot be disabled. For more information, see [Health checks for instances in an Auto + * Scaling + * group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-health-checks.html) + * in the *Amazon EC2 Auto Scaling User Guide* . * * Only specify `EC2` if you must clear a value that was previously set. * @@ -1166,8 +1203,8 @@ public open class CfnAutoScalingGroup( * The maximum amount of time, in seconds, that an instance can be in service. * * The default is null. If specified, the value must be either 0 or a number equal to or greater - * than 86,400 seconds (1 day). For more information, see [Replacing Auto Scaling instances based - * on maximum instance + * than 86,400 seconds (1 day). For more information, see [Replace Auto Scaling instances based on + * maximum instance * lifetime](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-max-instance-lifetime.html) * in the *Amazon EC2 Auto Scaling User Guide* . * @@ -1294,7 +1331,7 @@ public open class CfnAutoScalingGroup( * Indicates whether newly launched instances are protected from termination by Amazon EC2 Auto * Scaling when scaling in. * - * For more information about preventing instances from terminating on scale in, see [Using + * For more information about preventing instances from terminating on scale in, see [Use * instance scale-in * protection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-instance-protection.html) * in the *Amazon EC2 Auto Scaling User Guide* . @@ -1309,7 +1346,7 @@ public open class CfnAutoScalingGroup( * Indicates whether newly launched instances are protected from termination by Amazon EC2 Auto * Scaling when scaling in. * - * For more information about preventing instances from terminating on scale in, see [Using + * For more information about preventing instances from terminating on scale in, see [Use * instance scale-in * protection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-instance-protection.html) * in the *Amazon EC2 Auto Scaling User Guide* . @@ -1321,26 +1358,74 @@ public open class CfnAutoScalingGroup( public fun newInstancesProtectedFromScaleIn(newInstancesProtectedFromScaleIn: IResolvable) /** + * (deprecated) A structure that specifies an Amazon SNS notification configuration for the + * `NotificationConfigurations` property of the + * [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) + * resource. For an example template snippet, see [Auto scaling template + * snippets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-autoscaling.html). + * For more information, see [Get Amazon SNS notifications when your Auto Scaling group + * scales](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html) in + * the *Amazon EC2 Auto Scaling User Guide*. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html#cfn-autoscaling-autoscalinggroup-notificationconfiguration) * @deprecated this property has been deprecated - * @param notificationConfiguration + * @param notificationConfiguration A structure that specifies an Amazon SNS notification + * configuration for the `NotificationConfigurations` property of the + * [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) + * resource. For an example template snippet, see [Auto scaling template + * snippets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-autoscaling.html). + * For more information, see [Get Amazon SNS notifications when your Auto Scaling group + * scales](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html) in + * the *Amazon EC2 Auto Scaling User Guide*. */ @Deprecated(message = "deprecated in CDK") public fun notificationConfiguration(notificationConfiguration: IResolvable) /** + * (deprecated) A structure that specifies an Amazon SNS notification configuration for the + * `NotificationConfigurations` property of the + * [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) + * resource. For an example template snippet, see [Auto scaling template + * snippets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-autoscaling.html). + * For more information, see [Get Amazon SNS notifications when your Auto Scaling group + * scales](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html) in + * the *Amazon EC2 Auto Scaling User Guide*. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html#cfn-autoscaling-autoscalinggroup-notificationconfiguration) * @deprecated this property has been deprecated - * @param notificationConfiguration + * @param notificationConfiguration A structure that specifies an Amazon SNS notification + * configuration for the `NotificationConfigurations` property of the + * [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) + * resource. For an example template snippet, see [Auto scaling template + * snippets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-autoscaling.html). + * For more information, see [Get Amazon SNS notifications when your Auto Scaling group + * scales](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html) in + * the *Amazon EC2 Auto Scaling User Guide*. */ @Deprecated(message = "deprecated in CDK") public fun notificationConfiguration(notificationConfiguration: NotificationConfigurationProperty) /** + * (deprecated) A structure that specifies an Amazon SNS notification configuration for the + * `NotificationConfigurations` property of the + * [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) + * resource. For an example template snippet, see [Auto scaling template + * snippets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-autoscaling.html). + * For more information, see [Get Amazon SNS notifications when your Auto Scaling group + * scales](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html) in + * the *Amazon EC2 Auto Scaling User Guide*. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html#cfn-autoscaling-autoscalinggroup-notificationconfiguration) * @deprecated this property has been deprecated - * @param notificationConfiguration + * @param notificationConfiguration A structure that specifies an Amazon SNS notification + * configuration for the `NotificationConfigurations` property of the + * [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) + * resource. For an example template snippet, see [Auto scaling template + * snippets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-autoscaling.html). + * For more information, see [Get Amazon SNS notifications when your Auto Scaling group + * scales](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html) in + * the *Amazon EC2 Auto Scaling User Guide*. */ @Deprecated(message = "deprecated in CDK") @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @@ -1477,9 +1562,9 @@ public open class CfnAutoScalingGroup( /** * A policy or a list of policies that are used to select the instance to terminate. * - * These policies are executed in the order that you list them. For more information, see [Work - * with Amazon EC2 Auto Scaling termination - * policies](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html) + * These policies are executed in the order that you list them. For more information, see + * [Configure termination policies for Amazon EC2 Auto + * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * Valid values: `Default` | `AllocationStrategy` | `ClosestToNextInstanceHour` | @@ -1495,9 +1580,9 @@ public open class CfnAutoScalingGroup( /** * A policy or a list of policies that are used to select the instance to terminate. * - * These policies are executed in the order that you list them. For more information, see [Work - * with Amazon EC2 Auto Scaling termination - * policies](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html) + * These policies are executed in the order that you list them. For more information, see + * [Configure termination policies for Amazon EC2 Auto + * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * Valid values: `Default` | `AllocationStrategy` | `ClosestToNextInstanceHour` | @@ -1674,8 +1759,8 @@ public open class CfnAutoScalingGroup( * * The amount of time, in seconds, between one scaling activity ending and another one starting * due to simple scaling policies. For more information, see [Scaling cooldowns for Amazon EC2 Auto - * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html) in the *Amazon EC2 - * Auto Scaling User Guide* . + * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-scaling-cooldowns.html) + * in the *Amazon EC2 Auto Scaling User Guide* . * * Default: `300` seconds * @@ -1744,9 +1829,9 @@ public open class CfnAutoScalingGroup( * The unit of measurement for the value specified for desired capacity. * * Amazon EC2 Auto Scaling supports `DesiredCapacityType` for attribute-based instance type - * selection only. For more information, see [Creating an Auto Scaling group using attribute-based + * selection only. For more information, see [Create a mixed instances group using attribute-based * instance type - * selection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-instance-type-requirements.html) + * selection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-mixed-instances-group-attribute-based-instance-type-selection.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * By default, Amazon EC2 Auto Scaling specifies `units` , which translates into number of @@ -1788,9 +1873,10 @@ public open class CfnAutoScalingGroup( * A comma-separated value string of one or more health check types. * * The valid values are `EC2` , `ELB` , and `VPC_LATTICE` . `EC2` is the default health check - * and cannot be disabled. For more information, see [Health checks for Auto Scaling - * instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html) in the - * *Amazon EC2 Auto Scaling User Guide* . + * and cannot be disabled. For more information, see [Health checks for instances in an Auto + * Scaling + * group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-health-checks.html) + * in the *Amazon EC2 Auto Scaling User Guide* . * * Only specify `EC2` if you must clear a value that was previously set. * @@ -2003,8 +2089,8 @@ public open class CfnAutoScalingGroup( * The maximum amount of time, in seconds, that an instance can be in service. * * The default is null. If specified, the value must be either 0 or a number equal to or greater - * than 86,400 seconds (1 day). For more information, see [Replacing Auto Scaling instances based - * on maximum instance + * than 86,400 seconds (1 day). For more information, see [Replace Auto Scaling instances based on + * maximum instance * lifetime](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-max-instance-lifetime.html) * in the *Amazon EC2 Auto Scaling User Guide* . * @@ -2147,7 +2233,7 @@ public open class CfnAutoScalingGroup( * Indicates whether newly launched instances are protected from termination by Amazon EC2 Auto * Scaling when scaling in. * - * For more information about preventing instances from terminating on scale in, see [Using + * For more information about preventing instances from terminating on scale in, see [Use * instance scale-in * protection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-instance-protection.html) * in the *Amazon EC2 Auto Scaling User Guide* . @@ -2164,7 +2250,7 @@ public open class CfnAutoScalingGroup( * Indicates whether newly launched instances are protected from termination by Amazon EC2 Auto * Scaling when scaling in. * - * For more information about preventing instances from terminating on scale in, see [Using + * For more information about preventing instances from terminating on scale in, see [Use * instance scale-in * protection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-instance-protection.html) * in the *Amazon EC2 Auto Scaling User Guide* . @@ -2178,9 +2264,25 @@ public open class CfnAutoScalingGroup( } /** + * (deprecated) A structure that specifies an Amazon SNS notification configuration for the + * `NotificationConfigurations` property of the + * [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) + * resource. For an example template snippet, see [Auto scaling template + * snippets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-autoscaling.html). + * For more information, see [Get Amazon SNS notifications when your Auto Scaling group + * scales](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html) in + * the *Amazon EC2 Auto Scaling User Guide*. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html#cfn-autoscaling-autoscalinggroup-notificationconfiguration) * @deprecated this property has been deprecated - * @param notificationConfiguration + * @param notificationConfiguration A structure that specifies an Amazon SNS notification + * configuration for the `NotificationConfigurations` property of the + * [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) + * resource. For an example template snippet, see [Auto scaling template + * snippets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-autoscaling.html). + * For more information, see [Get Amazon SNS notifications when your Auto Scaling group + * scales](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html) in + * the *Amazon EC2 Auto Scaling User Guide*. */ @Deprecated(message = "deprecated in CDK") override fun notificationConfiguration(notificationConfiguration: IResolvable) { @@ -2188,9 +2290,25 @@ public open class CfnAutoScalingGroup( } /** + * (deprecated) A structure that specifies an Amazon SNS notification configuration for the + * `NotificationConfigurations` property of the + * [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) + * resource. For an example template snippet, see [Auto scaling template + * snippets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-autoscaling.html). + * For more information, see [Get Amazon SNS notifications when your Auto Scaling group + * scales](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html) in + * the *Amazon EC2 Auto Scaling User Guide*. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html#cfn-autoscaling-autoscalinggroup-notificationconfiguration) * @deprecated this property has been deprecated - * @param notificationConfiguration + * @param notificationConfiguration A structure that specifies an Amazon SNS notification + * configuration for the `NotificationConfigurations` property of the + * [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) + * resource. For an example template snippet, see [Auto scaling template + * snippets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-autoscaling.html). + * For more information, see [Get Amazon SNS notifications when your Auto Scaling group + * scales](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html) in + * the *Amazon EC2 Auto Scaling User Guide*. */ @Deprecated(message = "deprecated in CDK") override @@ -2199,9 +2317,25 @@ public open class CfnAutoScalingGroup( } /** + * (deprecated) A structure that specifies an Amazon SNS notification configuration for the + * `NotificationConfigurations` property of the + * [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) + * resource. For an example template snippet, see [Auto scaling template + * snippets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-autoscaling.html). + * For more information, see [Get Amazon SNS notifications when your Auto Scaling group + * scales](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html) in + * the *Amazon EC2 Auto Scaling User Guide*. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html#cfn-autoscaling-autoscalinggroup-notificationconfiguration) * @deprecated this property has been deprecated - * @param notificationConfiguration + * @param notificationConfiguration A structure that specifies an Amazon SNS notification + * configuration for the `NotificationConfigurations` property of the + * [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) + * resource. For an example template snippet, see [Auto scaling template + * snippets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-autoscaling.html). + * For more information, see [Get Amazon SNS notifications when your Auto Scaling group + * scales](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html) in + * the *Amazon EC2 Auto Scaling User Guide*. */ @Deprecated(message = "deprecated in CDK") @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @@ -2354,9 +2488,9 @@ public open class CfnAutoScalingGroup( /** * A policy or a list of policies that are used to select the instance to terminate. * - * These policies are executed in the order that you list them. For more information, see [Work - * with Amazon EC2 Auto Scaling termination - * policies](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html) + * These policies are executed in the order that you list them. For more information, see + * [Configure termination policies for Amazon EC2 Auto + * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * Valid values: `Default` | `AllocationStrategy` | `ClosestToNextInstanceHour` | @@ -2374,9 +2508,9 @@ public open class CfnAutoScalingGroup( /** * A policy or a list of policies that are used to select the instance to terminate. * - * These policies are executed in the order that you list them. For more information, see [Work - * with Amazon EC2 Auto Scaling termination - * policies](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html) + * These policies are executed in the order that you list them. For more information, see + * [Configure termination policies for Amazon EC2 Auto + * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * Valid values: `Default` | `AllocationStrategy` | `ClosestToNextInstanceHour` | @@ -5722,7 +5856,7 @@ public open class CfnAutoScalingGroup( * The instance type, such as `m3.xlarge` . You must specify an instance type that is supported * in your requested Region and Availability Zones. For more information, see [Instance * types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon - * Elastic Compute Cloud User Guide* . + * EC2 User Guide for Linux Instances* . * * You can specify up to 40 instance types per Auto Scaling group. * @@ -5835,7 +5969,7 @@ public open class CfnAutoScalingGroup( * @param instanceType The instance type, such as `m3.xlarge` . You must specify an instance * type that is supported in your requested Region and Availability Zones. For more information, * see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) - * in the *Amazon Elastic Compute Cloud User Guide* . + * in the *Amazon EC2 User Guide for Linux Instances* . * You can specify up to 40 instance types per Auto Scaling group. */ public fun instanceType(instanceType: String) @@ -5981,7 +6115,7 @@ public open class CfnAutoScalingGroup( * @param instanceType The instance type, such as `m3.xlarge` . You must specify an instance * type that is supported in your requested Region and Availability Zones. For more information, * see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) - * in the *Amazon Elastic Compute Cloud User Guide* . + * in the *Amazon EC2 User Guide for Linux Instances* . * You can specify up to 40 instance types per Auto Scaling group. */ override fun instanceType(instanceType: String) { @@ -6102,7 +6236,7 @@ public open class CfnAutoScalingGroup( * The instance type, such as `m3.xlarge` . You must specify an instance type that is * supported in your requested Region and Availability Zones. For more information, see [Instance * types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon - * Elastic Compute Cloud User Guide* . + * EC2 User Guide for Linux Instances* . * * You can specify up to 40 instance types per Auto Scaling group. * @@ -6735,9 +6869,9 @@ public open class CfnAutoScalingGroup( * The ARN of the IAM role that allows the Auto Scaling group to publish to the specified * notification target. * - * For information about creating this role, see [Configure a notification target for a - * lifecycle - * hook](https://docs.aws.amazon.com/autoscaling/ec2/userguide/prepare-for-lifecycle-notifications.html#lifecycle-hook-notification-target) + * For information about creating this role, see [Prepare to add a lifecycle hook to your Auto + * Scaling + * group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/prepare-for-lifecycle-notifications.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * Valid only if the notification target is an Amazon SNS topic or an Amazon SQS queue. @@ -6799,9 +6933,9 @@ public open class CfnAutoScalingGroup( /** * @param roleArn The ARN of the IAM role that allows the Auto Scaling group to publish to the * specified notification target. - * For information about creating this role, see [Configure a notification target for a - * lifecycle - * hook](https://docs.aws.amazon.com/autoscaling/ec2/userguide/prepare-for-lifecycle-notifications.html#lifecycle-hook-notification-target) + * For information about creating this role, see [Prepare to add a lifecycle hook to your Auto + * Scaling + * group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/prepare-for-lifecycle-notifications.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * Valid only if the notification target is an Amazon SNS topic or an Amazon SQS queue. @@ -6875,9 +7009,9 @@ public open class CfnAutoScalingGroup( /** * @param roleArn The ARN of the IAM role that allows the Auto Scaling group to publish to the * specified notification target. - * For information about creating this role, see [Configure a notification target for a - * lifecycle - * hook](https://docs.aws.amazon.com/autoscaling/ec2/userguide/prepare-for-lifecycle-notifications.html#lifecycle-hook-notification-target) + * For information about creating this role, see [Prepare to add a lifecycle hook to your Auto + * Scaling + * group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/prepare-for-lifecycle-notifications.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * Valid only if the notification target is an Amazon SNS topic or an Amazon SQS queue. @@ -6957,9 +7091,9 @@ public open class CfnAutoScalingGroup( * The ARN of the IAM role that allows the Auto Scaling group to publish to the specified * notification target. * - * For information about creating this role, see [Configure a notification target for a - * lifecycle - * hook](https://docs.aws.amazon.com/autoscaling/ec2/userguide/prepare-for-lifecycle-notifications.html#lifecycle-hook-notification-target) + * For information about creating this role, see [Prepare to add a lifecycle hook to your Auto + * Scaling + * group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/prepare-for-lifecycle-notifications.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * Valid only if the notification target is an Amazon SNS topic or an Amazon SQS queue. @@ -7280,9 +7414,9 @@ public open class CfnAutoScalingGroup( * * If you specify `Granularity` and don't specify any metrics, all metrics are enabled. * - * For more information, see [Auto Scaling group - * metrics](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-cloudwatch-monitoring.html#as-group-metrics) - * in the *Amazon EC2 Auto Scaling User Guide* . + * For more information, see [Amazon CloudWatch metrics for Amazon EC2 Auto + * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-metrics.html) in + * the *Amazon EC2 Auto Scaling User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-metricscollection.html#cfn-autoscaling-autoscalinggroup-metricscollection-metrics) */ @@ -7327,8 +7461,8 @@ public open class CfnAutoScalingGroup( * * If you specify `Granularity` and don't specify any metrics, all metrics are enabled. * - * For more information, see [Auto Scaling group - * metrics](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-cloudwatch-monitoring.html#as-group-metrics) + * For more information, see [Amazon CloudWatch metrics for Amazon EC2 Auto + * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-metrics.html) * in the *Amazon EC2 Auto Scaling User Guide* . */ public fun metrics(metrics: List) @@ -7360,8 +7494,8 @@ public open class CfnAutoScalingGroup( * * If you specify `Granularity` and don't specify any metrics, all metrics are enabled. * - * For more information, see [Auto Scaling group - * metrics](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-cloudwatch-monitoring.html#as-group-metrics) + * For more information, see [Amazon CloudWatch metrics for Amazon EC2 Auto + * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-metrics.html) * in the *Amazon EC2 Auto Scaling User Guide* . */ public fun metrics(vararg metrics: String) @@ -7409,8 +7543,8 @@ public open class CfnAutoScalingGroup( * * If you specify `Granularity` and don't specify any metrics, all metrics are enabled. * - * For more information, see [Auto Scaling group - * metrics](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-cloudwatch-monitoring.html#as-group-metrics) + * For more information, see [Amazon CloudWatch metrics for Amazon EC2 Auto + * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-metrics.html) * in the *Amazon EC2 Auto Scaling User Guide* . */ override fun metrics(metrics: List) { @@ -7444,8 +7578,8 @@ public open class CfnAutoScalingGroup( * * If you specify `Granularity` and don't specify any metrics, all metrics are enabled. * - * For more information, see [Auto Scaling group - * metrics](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-cloudwatch-monitoring.html#as-group-metrics) + * For more information, see [Amazon CloudWatch metrics for Amazon EC2 Auto + * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-metrics.html) * in the *Amazon EC2 Auto Scaling User Guide* . */ override fun metrics(vararg metrics: String): Unit = metrics(metrics.toList()) @@ -7495,8 +7629,8 @@ public open class CfnAutoScalingGroup( * * If you specify `Granularity` and don't specify any metrics, all metrics are enabled. * - * For more information, see [Auto Scaling group - * metrics](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-cloudwatch-monitoring.html#as-group-metrics) + * For more information, see [Amazon CloudWatch metrics for Amazon EC2 Auto + * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-metrics.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-metricscollection.html#cfn-autoscaling-autoscalinggroup-metricscollection-metrics) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnAutoScalingGroupProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnAutoScalingGroupProps.kt index 0ad3ccd44e..b11b08ed3b 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnAutoScalingGroupProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnAutoScalingGroupProps.kt @@ -229,8 +229,8 @@ public interface CfnAutoScalingGroupProps { * * The amount of time, in seconds, between one scaling activity ending and another one starting * due to simple scaling policies. For more information, see [Scaling cooldowns for Amazon EC2 Auto - * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html) in the *Amazon EC2 - * Auto Scaling User Guide* . + * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-scaling-cooldowns.html) + * in the *Amazon EC2 Auto Scaling User Guide* . * * Default: `300` seconds * @@ -287,9 +287,9 @@ public interface CfnAutoScalingGroupProps { * The unit of measurement for the value specified for desired capacity. * * Amazon EC2 Auto Scaling supports `DesiredCapacityType` for attribute-based instance type - * selection only. For more information, see [Creating an Auto Scaling group using attribute-based + * selection only. For more information, see [Create a mixed instances group using attribute-based * instance type - * selection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-instance-type-requirements.html) + * selection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-mixed-instances-group-attribute-based-instance-type-selection.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * By default, Amazon EC2 Auto Scaling specifies `units` , which translates into number of @@ -322,9 +322,9 @@ public interface CfnAutoScalingGroupProps { * A comma-separated value string of one or more health check types. * * The valid values are `EC2` , `ELB` , and `VPC_LATTICE` . `EC2` is the default health check and - * cannot be disabled. For more information, see [Health checks for Auto Scaling - * instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html) in the *Amazon - * EC2 Auto Scaling User Guide* . + * cannot be disabled. For more information, see [Health checks for instances in an Auto Scaling + * group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-health-checks.html) + * in the *Amazon EC2 Auto Scaling User Guide* . * * Only specify `EC2` if you must clear a value that was previously set. * @@ -405,7 +405,7 @@ public interface CfnAutoScalingGroupProps { * The maximum amount of time, in seconds, that an instance can be in service. * * The default is null. If specified, the value must be either 0 or a number equal to or greater - * than 86,400 seconds (1 day). For more information, see [Replacing Auto Scaling instances based on + * than 86,400 seconds (1 day). For more information, see [Replace Auto Scaling instances based on * maximum instance * lifetime](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-max-instance-lifetime.html) in * the *Amazon EC2 Auto Scaling User Guide* . @@ -466,8 +466,8 @@ public interface CfnAutoScalingGroupProps { * Indicates whether newly launched instances are protected from termination by Amazon EC2 Auto * Scaling when scaling in. * - * For more information about preventing instances from terminating on scale in, see [Using - * instance scale-in + * For more information about preventing instances from terminating on scale in, see [Use instance + * scale-in * protection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-instance-protection.html) * in the *Amazon EC2 Auto Scaling User Guide* . * @@ -477,6 +477,15 @@ public interface CfnAutoScalingGroupProps { unwrap(this).getNewInstancesProtectedFromScaleIn() /** + * (deprecated) A structure that specifies an Amazon SNS notification configuration for the + * `NotificationConfigurations` property of the + * [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) + * resource. For an example template snippet, see [Auto scaling template + * snippets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-autoscaling.html). + * For more information, see [Get Amazon SNS notifications when your Auto Scaling group + * scales](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html) in the + * *Amazon EC2 Auto Scaling User Guide*. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html#cfn-autoscaling-autoscalinggroup-notificationconfiguration) * @deprecated this property has been deprecated */ @@ -554,9 +563,9 @@ public interface CfnAutoScalingGroupProps { /** * A policy or a list of policies that are used to select the instance to terminate. * - * These policies are executed in the order that you list them. For more information, see [Work - * with Amazon EC2 Auto Scaling termination - * policies](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html) + * These policies are executed in the order that you list them. For more information, see + * [Configure termination policies for Amazon EC2 Auto + * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * Valid values: `Default` | `AllocationStrategy` | `ClosestToNextInstanceHour` | `NewestInstance` @@ -662,8 +671,8 @@ public interface CfnAutoScalingGroupProps { * @param cooldown *Only needed if you use simple scaling policies.*. * The amount of time, in seconds, between one scaling activity ending and another one starting * due to simple scaling policies. For more information, see [Scaling cooldowns for Amazon EC2 Auto - * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html) in the *Amazon EC2 - * Auto Scaling User Guide* . + * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-scaling-cooldowns.html) + * in the *Amazon EC2 Auto Scaling User Guide* . * * Default: `300` seconds */ @@ -713,9 +722,9 @@ public interface CfnAutoScalingGroupProps { * @param desiredCapacityType The unit of measurement for the value specified for desired * capacity. * Amazon EC2 Auto Scaling supports `DesiredCapacityType` for attribute-based instance type - * selection only. For more information, see [Creating an Auto Scaling group using attribute-based + * selection only. For more information, see [Create a mixed instances group using attribute-based * instance type - * selection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-instance-type-requirements.html) + * selection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-mixed-instances-group-attribute-based-instance-type-selection.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * By default, Amazon EC2 Auto Scaling specifies `units` , which translates into number of @@ -742,9 +751,10 @@ public interface CfnAutoScalingGroupProps { /** * @param healthCheckType A comma-separated value string of one or more health check types. * The valid values are `EC2` , `ELB` , and `VPC_LATTICE` . `EC2` is the default health check - * and cannot be disabled. For more information, see [Health checks for Auto Scaling - * instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html) in the - * *Amazon EC2 Auto Scaling User Guide* . + * and cannot be disabled. For more information, see [Health checks for instances in an Auto + * Scaling + * group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-health-checks.html) + * in the *Amazon EC2 Auto Scaling User Guide* . * * Only specify `EC2` if you must clear a value that was previously set. */ @@ -881,8 +891,8 @@ public interface CfnAutoScalingGroupProps { * @param maxInstanceLifetime The maximum amount of time, in seconds, that an instance can be in * service. * The default is null. If specified, the value must be either 0 or a number equal to or greater - * than 86,400 seconds (1 day). For more information, see [Replacing Auto Scaling instances based - * on maximum instance + * than 86,400 seconds (1 day). For more information, see [Replace Auto Scaling instances based on + * maximum instance * lifetime](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-max-instance-lifetime.html) * in the *Amazon EC2 Auto Scaling User Guide* . */ @@ -973,7 +983,7 @@ public interface CfnAutoScalingGroupProps { /** * @param newInstancesProtectedFromScaleIn Indicates whether newly launched instances are * protected from termination by Amazon EC2 Auto Scaling when scaling in. - * For more information about preventing instances from terminating on scale in, see [Using + * For more information about preventing instances from terminating on scale in, see [Use * instance scale-in * protection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-instance-protection.html) * in the *Amazon EC2 Auto Scaling User Guide* . @@ -983,7 +993,7 @@ public interface CfnAutoScalingGroupProps { /** * @param newInstancesProtectedFromScaleIn Indicates whether newly launched instances are * protected from termination by Amazon EC2 Auto Scaling when scaling in. - * For more information about preventing instances from terminating on scale in, see [Using + * For more information about preventing instances from terminating on scale in, see [Use * instance scale-in * protection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-instance-protection.html) * in the *Amazon EC2 Auto Scaling User Guide* . @@ -991,14 +1001,28 @@ public interface CfnAutoScalingGroupProps { public fun newInstancesProtectedFromScaleIn(newInstancesProtectedFromScaleIn: IResolvable) /** - * @param notificationConfiguration the value to be set. + * @param notificationConfiguration A structure that specifies an Amazon SNS notification + * configuration for the `NotificationConfigurations` property of the + * [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) + * resource. For an example template snippet, see [Auto scaling template + * snippets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-autoscaling.html). + * For more information, see [Get Amazon SNS notifications when your Auto Scaling group + * scales](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html) in + * the *Amazon EC2 Auto Scaling User Guide*. * @deprecated this property has been deprecated */ @Deprecated(message = "deprecated in CDK") public fun notificationConfiguration(notificationConfiguration: IResolvable) /** - * @param notificationConfiguration the value to be set. + * @param notificationConfiguration A structure that specifies an Amazon SNS notification + * configuration for the `NotificationConfigurations` property of the + * [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) + * resource. For an example template snippet, see [Auto scaling template + * snippets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-autoscaling.html). + * For more information, see [Get Amazon SNS notifications when your Auto Scaling group + * scales](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html) in + * the *Amazon EC2 Auto Scaling User Guide*. * @deprecated this property has been deprecated */ @Deprecated(message = "deprecated in CDK") @@ -1006,7 +1030,14 @@ public interface CfnAutoScalingGroupProps { fun notificationConfiguration(notificationConfiguration: CfnAutoScalingGroup.NotificationConfigurationProperty) /** - * @param notificationConfiguration the value to be set. + * @param notificationConfiguration A structure that specifies an Amazon SNS notification + * configuration for the `NotificationConfigurations` property of the + * [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) + * resource. For an example template snippet, see [Auto scaling template + * snippets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-autoscaling.html). + * For more information, see [Get Amazon SNS notifications when your Auto Scaling group + * scales](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html) in + * the *Amazon EC2 Auto Scaling User Guide*. * @deprecated this property has been deprecated */ @Deprecated(message = "deprecated in CDK") @@ -1107,9 +1138,9 @@ public interface CfnAutoScalingGroupProps { /** * @param terminationPolicies A policy or a list of policies that are used to select the * instance to terminate. - * These policies are executed in the order that you list them. For more information, see [Work - * with Amazon EC2 Auto Scaling termination - * policies](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html) + * These policies are executed in the order that you list them. For more information, see + * [Configure termination policies for Amazon EC2 Auto + * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * Valid values: `Default` | `AllocationStrategy` | `ClosestToNextInstanceHour` | @@ -1121,9 +1152,9 @@ public interface CfnAutoScalingGroupProps { /** * @param terminationPolicies A policy or a list of policies that are used to select the * instance to terminate. - * These policies are executed in the order that you list them. For more information, see [Work - * with Amazon EC2 Auto Scaling termination - * policies](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html) + * These policies are executed in the order that you list them. For more information, see + * [Configure termination policies for Amazon EC2 Auto + * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * Valid values: `Default` | `AllocationStrategy` | `ClosestToNextInstanceHour` | @@ -1259,8 +1290,8 @@ public interface CfnAutoScalingGroupProps { * @param cooldown *Only needed if you use simple scaling policies.*. * The amount of time, in seconds, between one scaling activity ending and another one starting * due to simple scaling policies. For more information, see [Scaling cooldowns for Amazon EC2 Auto - * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html) in the *Amazon EC2 - * Auto Scaling User Guide* . + * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-scaling-cooldowns.html) + * in the *Amazon EC2 Auto Scaling User Guide* . * * Default: `300` seconds */ @@ -1316,9 +1347,9 @@ public interface CfnAutoScalingGroupProps { * @param desiredCapacityType The unit of measurement for the value specified for desired * capacity. * Amazon EC2 Auto Scaling supports `DesiredCapacityType` for attribute-based instance type - * selection only. For more information, see [Creating an Auto Scaling group using attribute-based + * selection only. For more information, see [Create a mixed instances group using attribute-based * instance type - * selection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-instance-type-requirements.html) + * selection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-mixed-instances-group-attribute-based-instance-type-selection.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * By default, Amazon EC2 Auto Scaling specifies `units` , which translates into number of @@ -1349,9 +1380,10 @@ public interface CfnAutoScalingGroupProps { /** * @param healthCheckType A comma-separated value string of one or more health check types. * The valid values are `EC2` , `ELB` , and `VPC_LATTICE` . `EC2` is the default health check - * and cannot be disabled. For more information, see [Health checks for Auto Scaling - * instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html) in the - * *Amazon EC2 Auto Scaling User Guide* . + * and cannot be disabled. For more information, see [Health checks for instances in an Auto + * Scaling + * group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-health-checks.html) + * in the *Amazon EC2 Auto Scaling User Guide* . * * Only specify `EC2` if you must clear a value that was previously set. */ @@ -1514,8 +1546,8 @@ public interface CfnAutoScalingGroupProps { * @param maxInstanceLifetime The maximum amount of time, in seconds, that an instance can be in * service. * The default is null. If specified, the value must be either 0 or a number equal to or greater - * than 86,400 seconds (1 day). For more information, see [Replacing Auto Scaling instances based - * on maximum instance + * than 86,400 seconds (1 day). For more information, see [Replace Auto Scaling instances based on + * maximum instance * lifetime](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-max-instance-lifetime.html) * in the *Amazon EC2 Auto Scaling User Guide* . */ @@ -1623,7 +1655,7 @@ public interface CfnAutoScalingGroupProps { /** * @param newInstancesProtectedFromScaleIn Indicates whether newly launched instances are * protected from termination by Amazon EC2 Auto Scaling when scaling in. - * For more information about preventing instances from terminating on scale in, see [Using + * For more information about preventing instances from terminating on scale in, see [Use * instance scale-in * protection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-instance-protection.html) * in the *Amazon EC2 Auto Scaling User Guide* . @@ -1635,7 +1667,7 @@ public interface CfnAutoScalingGroupProps { /** * @param newInstancesProtectedFromScaleIn Indicates whether newly launched instances are * protected from termination by Amazon EC2 Auto Scaling when scaling in. - * For more information about preventing instances from terminating on scale in, see [Using + * For more information about preventing instances from terminating on scale in, see [Use * instance scale-in * protection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-instance-protection.html) * in the *Amazon EC2 Auto Scaling User Guide* . @@ -1645,7 +1677,14 @@ public interface CfnAutoScalingGroupProps { } /** - * @param notificationConfiguration the value to be set. + * @param notificationConfiguration A structure that specifies an Amazon SNS notification + * configuration for the `NotificationConfigurations` property of the + * [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) + * resource. For an example template snippet, see [Auto scaling template + * snippets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-autoscaling.html). + * For more information, see [Get Amazon SNS notifications when your Auto Scaling group + * scales](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html) in + * the *Amazon EC2 Auto Scaling User Guide*. * @deprecated this property has been deprecated */ @Deprecated(message = "deprecated in CDK") @@ -1654,7 +1693,14 @@ public interface CfnAutoScalingGroupProps { } /** - * @param notificationConfiguration the value to be set. + * @param notificationConfiguration A structure that specifies an Amazon SNS notification + * configuration for the `NotificationConfigurations` property of the + * [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) + * resource. For an example template snippet, see [Auto scaling template + * snippets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-autoscaling.html). + * For more information, see [Get Amazon SNS notifications when your Auto Scaling group + * scales](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html) in + * the *Amazon EC2 Auto Scaling User Guide*. * @deprecated this property has been deprecated */ @Deprecated(message = "deprecated in CDK") @@ -1664,7 +1710,14 @@ public interface CfnAutoScalingGroupProps { } /** - * @param notificationConfiguration the value to be set. + * @param notificationConfiguration A structure that specifies an Amazon SNS notification + * configuration for the `NotificationConfigurations` property of the + * [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) + * resource. For an example template snippet, see [Auto scaling template + * snippets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-autoscaling.html). + * For more information, see [Get Amazon SNS notifications when your Auto Scaling group + * scales](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html) in + * the *Amazon EC2 Auto Scaling User Guide*. * @deprecated this property has been deprecated */ @Deprecated(message = "deprecated in CDK") @@ -1782,9 +1835,9 @@ public interface CfnAutoScalingGroupProps { /** * @param terminationPolicies A policy or a list of policies that are used to select the * instance to terminate. - * These policies are executed in the order that you list them. For more information, see [Work - * with Amazon EC2 Auto Scaling termination - * policies](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html) + * These policies are executed in the order that you list them. For more information, see + * [Configure termination policies for Amazon EC2 Auto + * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * Valid values: `Default` | `AllocationStrategy` | `ClosestToNextInstanceHour` | @@ -1798,9 +1851,9 @@ public interface CfnAutoScalingGroupProps { /** * @param terminationPolicies A policy or a list of policies that are used to select the * instance to terminate. - * These policies are executed in the order that you list them. For more information, see [Work - * with Amazon EC2 Auto Scaling termination - * policies](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html) + * These policies are executed in the order that you list them. For more information, see + * [Configure termination policies for Amazon EC2 Auto + * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * Valid values: `Default` | `AllocationStrategy` | `ClosestToNextInstanceHour` | @@ -1921,8 +1974,8 @@ public interface CfnAutoScalingGroupProps { * * The amount of time, in seconds, between one scaling activity ending and another one starting * due to simple scaling policies. For more information, see [Scaling cooldowns for Amazon EC2 Auto - * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html) in the *Amazon EC2 - * Auto Scaling User Guide* . + * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-scaling-cooldowns.html) + * in the *Amazon EC2 Auto Scaling User Guide* . * * Default: `300` seconds * @@ -1979,9 +2032,9 @@ public interface CfnAutoScalingGroupProps { * The unit of measurement for the value specified for desired capacity. * * Amazon EC2 Auto Scaling supports `DesiredCapacityType` for attribute-based instance type - * selection only. For more information, see [Creating an Auto Scaling group using attribute-based + * selection only. For more information, see [Create a mixed instances group using attribute-based * instance type - * selection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-instance-type-requirements.html) + * selection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-mixed-instances-group-attribute-based-instance-type-selection.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * By default, Amazon EC2 Auto Scaling specifies `units` , which translates into number of @@ -2014,9 +2067,10 @@ public interface CfnAutoScalingGroupProps { * A comma-separated value string of one or more health check types. * * The valid values are `EC2` , `ELB` , and `VPC_LATTICE` . `EC2` is the default health check - * and cannot be disabled. For more information, see [Health checks for Auto Scaling - * instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html) in the - * *Amazon EC2 Auto Scaling User Guide* . + * and cannot be disabled. For more information, see [Health checks for instances in an Auto + * Scaling + * group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-health-checks.html) + * in the *Amazon EC2 Auto Scaling User Guide* . * * Only specify `EC2` if you must clear a value that was previously set. * @@ -2098,8 +2152,8 @@ public interface CfnAutoScalingGroupProps { * The maximum amount of time, in seconds, that an instance can be in service. * * The default is null. If specified, the value must be either 0 or a number equal to or greater - * than 86,400 seconds (1 day). For more information, see [Replacing Auto Scaling instances based - * on maximum instance + * than 86,400 seconds (1 day). For more information, see [Replace Auto Scaling instances based on + * maximum instance * lifetime](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-max-instance-lifetime.html) * in the *Amazon EC2 Auto Scaling User Guide* . * @@ -2159,7 +2213,7 @@ public interface CfnAutoScalingGroupProps { * Indicates whether newly launched instances are protected from termination by Amazon EC2 Auto * Scaling when scaling in. * - * For more information about preventing instances from terminating on scale in, see [Using + * For more information about preventing instances from terminating on scale in, see [Use * instance scale-in * protection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-instance-protection.html) * in the *Amazon EC2 Auto Scaling User Guide* . @@ -2170,6 +2224,15 @@ public interface CfnAutoScalingGroupProps { unwrap(this).getNewInstancesProtectedFromScaleIn() /** + * (deprecated) A structure that specifies an Amazon SNS notification configuration for the + * `NotificationConfigurations` property of the + * [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) + * resource. For an example template snippet, see [Auto scaling template + * snippets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-autoscaling.html). + * For more information, see [Get Amazon SNS notifications when your Auto Scaling group + * scales](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html) in + * the *Amazon EC2 Auto Scaling User Guide*. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html#cfn-autoscaling-autoscalinggroup-notificationconfiguration) * @deprecated this property has been deprecated */ @@ -2247,9 +2310,9 @@ public interface CfnAutoScalingGroupProps { /** * A policy or a list of policies that are used to select the instance to terminate. * - * These policies are executed in the order that you list them. For more information, see [Work - * with Amazon EC2 Auto Scaling termination - * policies](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html) + * These policies are executed in the order that you list them. For more information, see + * [Configure termination policies for Amazon EC2 Auto + * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * Valid values: `Default` | `AllocationStrategy` | `ClosestToNextInstanceHour` | diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnLaunchConfiguration.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnLaunchConfiguration.kt index c8ad186841..9626c2f614 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnLaunchConfiguration.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnLaunchConfiguration.kt @@ -442,9 +442,9 @@ public open class CfnLaunchConfiguration( * address, unless you enabled the option to assign a public IPv4 address on the subnet. * * If you specify `true` , each instance in the Auto Scaling group receives a unique public IPv4 - * address. For more information, see [Launching Auto Scaling instances in a - * VPC](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html) in the *Amazon EC2 - * Auto Scaling User Guide* . + * address. For more information, see [Provide network connectivity for your Auto Scaling instances + * using Amazon VPC](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html) in the + * *Amazon EC2 Auto Scaling User Guide* . * * If you specify this property, you must specify at least one subnet for `VPCZoneIdentifier` * when you create your group. @@ -464,9 +464,9 @@ public open class CfnLaunchConfiguration( * address, unless you enabled the option to assign a public IPv4 address on the subnet. * * If you specify `true` , each instance in the Auto Scaling group receives a unique public IPv4 - * address. For more information, see [Launching Auto Scaling instances in a - * VPC](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html) in the *Amazon EC2 - * Auto Scaling User Guide* . + * address. For more information, see [Provide network connectivity for your Auto Scaling instances + * using Amazon VPC](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html) in the + * *Amazon EC2 Auto Scaling User Guide* . * * If you specify this property, you must specify at least one subnet for `VPCZoneIdentifier` * when you create your group. @@ -554,8 +554,8 @@ public open class CfnLaunchConfiguration( * stack to provide optimal I/O performance. This optimization is not available with all instance * types. Additional fees are incurred when you enable EBS optimization for an instance type that * is not EBS-optimized by default. For more information, see [Amazon EBS-optimized - * instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) in the *Amazon - * EC2 User Guide for Linux Instances* . + * instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the + * *Amazon EC2 User Guide for Linux Instances* . * * The default value is `false` . * @@ -573,8 +573,8 @@ public open class CfnLaunchConfiguration( * stack to provide optimal I/O performance. This optimization is not available with all instance * types. Additional fees are incurred when you enable EBS optimization for an instance type that * is not EBS-optimized by default. For more information, see [Amazon EBS-optimized - * instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) in the *Amazon - * EC2 User Guide for Linux Instances* . + * instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the + * *Amazon EC2 User Guide for Linux Instances* . * * The default value is `false` . * @@ -602,7 +602,7 @@ public open class CfnLaunchConfiguration( /** * The ID of the Amazon Machine Image (AMI) that was assigned during registration. * - * For more information, see [Finding a Linux + * For more information, see [Find a Linux * AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html) in the *Amazon EC2 * User Guide for Linux Instances* . * @@ -636,8 +636,8 @@ public open class CfnLaunchConfiguration( * * When detailed monitoring is enabled, Amazon CloudWatch generates metrics every minute and * your account is charged a fee. When you disable detailed monitoring, CloudWatch generates - * metrics every 5 minutes. For more information, see [Configure Monitoring for Auto Scaling - * Instances](https://docs.aws.amazon.com/autoscaling/latest/userguide/enable-as-instance-metrics.html) + * metrics every 5 minutes. For more information, see [Configure monitoring for Auto Scaling + * instances](https://docs.aws.amazon.com/autoscaling/latest/userguide/enable-as-instance-metrics.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * @@ -656,8 +656,8 @@ public open class CfnLaunchConfiguration( * * When detailed monitoring is enabled, Amazon CloudWatch generates metrics every minute and * your account is charged a fee. When you disable detailed monitoring, CloudWatch generates - * metrics every 5 minutes. For more information, see [Configure Monitoring for Auto Scaling - * Instances](https://docs.aws.amazon.com/autoscaling/latest/userguide/enable-as-instance-metrics.html) + * metrics every 5 minutes. For more information, see [Configure monitoring for Auto Scaling + * instances](https://docs.aws.amazon.com/autoscaling/latest/userguide/enable-as-instance-metrics.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * @@ -699,7 +699,7 @@ public open class CfnLaunchConfiguration( /** * The name of the key pair. * - * For more information, see [Amazon EC2 key pairs and Linux + * For more information, see [Amazon EC2 key pairs and Amazon EC2 * instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) in the * *Amazon EC2 User Guide for Linux Instances* . * @@ -721,8 +721,8 @@ public open class CfnLaunchConfiguration( /** * The metadata options for the instances. * - * For more information, see [Configuring the Instance Metadata - * Options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) + * For more information, see [Configure the instance metadata + * options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) * in the *Amazon EC2 Auto Scaling User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html#cfn-autoscaling-launchconfiguration-metadataoptions) @@ -733,8 +733,8 @@ public open class CfnLaunchConfiguration( /** * The metadata options for the instances. * - * For more information, see [Configuring the Instance Metadata - * Options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) + * For more information, see [Configure the instance metadata + * options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) * in the *Amazon EC2 Auto Scaling User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html#cfn-autoscaling-launchconfiguration-metadataoptions) @@ -745,8 +745,8 @@ public open class CfnLaunchConfiguration( /** * The metadata options for the instances. * - * For more information, see [Configuring the Instance Metadata - * Options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) + * For more information, see [Configure the instance metadata + * options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) * in the *Amazon EC2 Auto Scaling User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html#cfn-autoscaling-launchconfiguration-metadataoptions) @@ -762,9 +762,7 @@ public open class CfnLaunchConfiguration( * An instance with `dedicated` tenancy runs on isolated, single-tenant hardware and can only be * launched into a VPC. To launch dedicated instances into a shared tenancy VPC (a VPC with the * instance placement tenancy attribute set to `default` ), you must set the value of this property - * to `dedicated` . For more information, see [Configuring instance tenancy with Amazon EC2 Auto - * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-dedicated-instances.html) - * in the *Amazon EC2 Auto Scaling User Guide* . + * to `dedicated` . * * If you specify `PlacementTenancy` , you must specify at least one subnet for * `VPCZoneIdentifier` when you create your group. @@ -880,9 +878,9 @@ public open class CfnLaunchConfiguration( * address, unless you enabled the option to assign a public IPv4 address on the subnet. * * If you specify `true` , each instance in the Auto Scaling group receives a unique public IPv4 - * address. For more information, see [Launching Auto Scaling instances in a - * VPC](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html) in the *Amazon EC2 - * Auto Scaling User Guide* . + * address. For more information, see [Provide network connectivity for your Auto Scaling instances + * using Amazon VPC](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html) in the + * *Amazon EC2 Auto Scaling User Guide* . * * If you specify this property, you must specify at least one subnet for `VPCZoneIdentifier` * when you create your group. @@ -904,9 +902,9 @@ public open class CfnLaunchConfiguration( * address, unless you enabled the option to assign a public IPv4 address on the subnet. * * If you specify `true` , each instance in the Auto Scaling group receives a unique public IPv4 - * address. For more information, see [Launching Auto Scaling instances in a - * VPC](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html) in the *Amazon EC2 - * Auto Scaling User Guide* . + * address. For more information, see [Provide network connectivity for your Auto Scaling instances + * using Amazon VPC](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html) in the + * *Amazon EC2 Auto Scaling User Guide* . * * If you specify this property, you must specify at least one subnet for `VPCZoneIdentifier` * when you create your group. @@ -1006,8 +1004,8 @@ public open class CfnLaunchConfiguration( * stack to provide optimal I/O performance. This optimization is not available with all instance * types. Additional fees are incurred when you enable EBS optimization for an instance type that * is not EBS-optimized by default. For more information, see [Amazon EBS-optimized - * instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) in the *Amazon - * EC2 User Guide for Linux Instances* . + * instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the + * *Amazon EC2 User Guide for Linux Instances* . * * The default value is `false` . * @@ -1027,8 +1025,8 @@ public open class CfnLaunchConfiguration( * stack to provide optimal I/O performance. This optimization is not available with all instance * types. Additional fees are incurred when you enable EBS optimization for an instance type that * is not EBS-optimized by default. For more information, see [Amazon EBS-optimized - * instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) in the *Amazon - * EC2 User Guide for Linux Instances* . + * instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the + * *Amazon EC2 User Guide for Linux Instances* . * * The default value is `false` . * @@ -1060,7 +1058,7 @@ public open class CfnLaunchConfiguration( /** * The ID of the Amazon Machine Image (AMI) that was assigned during registration. * - * For more information, see [Finding a Linux + * For more information, see [Find a Linux * AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html) in the *Amazon EC2 * User Guide for Linux Instances* . * @@ -1098,8 +1096,8 @@ public open class CfnLaunchConfiguration( * * When detailed monitoring is enabled, Amazon CloudWatch generates metrics every minute and * your account is charged a fee. When you disable detailed monitoring, CloudWatch generates - * metrics every 5 minutes. For more information, see [Configure Monitoring for Auto Scaling - * Instances](https://docs.aws.amazon.com/autoscaling/latest/userguide/enable-as-instance-metrics.html) + * metrics every 5 minutes. For more information, see [Configure monitoring for Auto Scaling + * instances](https://docs.aws.amazon.com/autoscaling/latest/userguide/enable-as-instance-metrics.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * @@ -1120,8 +1118,8 @@ public open class CfnLaunchConfiguration( * * When detailed monitoring is enabled, Amazon CloudWatch generates metrics every minute and * your account is charged a fee. When you disable detailed monitoring, CloudWatch generates - * metrics every 5 minutes. For more information, see [Configure Monitoring for Auto Scaling - * Instances](https://docs.aws.amazon.com/autoscaling/latest/userguide/enable-as-instance-metrics.html) + * metrics every 5 minutes. For more information, see [Configure monitoring for Auto Scaling + * instances](https://docs.aws.amazon.com/autoscaling/latest/userguide/enable-as-instance-metrics.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * @@ -1169,7 +1167,7 @@ public open class CfnLaunchConfiguration( /** * The name of the key pair. * - * For more information, see [Amazon EC2 key pairs and Linux + * For more information, see [Amazon EC2 key pairs and Amazon EC2 * instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) in the * *Amazon EC2 User Guide for Linux Instances* . * @@ -1195,8 +1193,8 @@ public open class CfnLaunchConfiguration( /** * The metadata options for the instances. * - * For more information, see [Configuring the Instance Metadata - * Options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) + * For more information, see [Configure the instance metadata + * options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) * in the *Amazon EC2 Auto Scaling User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html#cfn-autoscaling-launchconfiguration-metadataoptions) @@ -1209,8 +1207,8 @@ public open class CfnLaunchConfiguration( /** * The metadata options for the instances. * - * For more information, see [Configuring the Instance Metadata - * Options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) + * For more information, see [Configure the instance metadata + * options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) * in the *Amazon EC2 Auto Scaling User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html#cfn-autoscaling-launchconfiguration-metadataoptions) @@ -1223,8 +1221,8 @@ public open class CfnLaunchConfiguration( /** * The metadata options for the instances. * - * For more information, see [Configuring the Instance Metadata - * Options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) + * For more information, see [Configure the instance metadata + * options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) * in the *Amazon EC2 Auto Scaling User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html#cfn-autoscaling-launchconfiguration-metadataoptions) @@ -1241,9 +1239,7 @@ public open class CfnLaunchConfiguration( * An instance with `dedicated` tenancy runs on isolated, single-tenant hardware and can only be * launched into a VPC. To launch dedicated instances into a shared tenancy VPC (a VPC with the * instance placement tenancy attribute set to `default` ), you must set the value of this property - * to `dedicated` . For more information, see [Configuring instance tenancy with Amazon EC2 Auto - * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-dedicated-instances.html) - * in the *Amazon EC2 Auto Scaling User Guide* . + * to `dedicated` . * * If you specify `PlacementTenancy` , you must specify at least one subnet for * `VPCZoneIdentifier` when you create your group. @@ -1704,9 +1700,10 @@ public open class CfnLaunchConfiguration( * Specifies whether the volume should be encrypted. * * Encrypted EBS volumes can only be attached to instances that support Amazon EBS encryption. - * For more information, see [Supported instance - * types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances) - * . If your AMI uses encrypted volumes, you can also only launch it on supported instance types. + * For more information, see [Requirements for Amazon EBS + * encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption-requirements.html) + * in the *Amazon EBS User Guide* . If your AMI uses encrypted volumes, you can also only launch it + * on supported instance types. * * * If you are creating a volume from a snapshot, you cannot create an unencrypted volume from an @@ -1781,11 +1778,9 @@ public open class CfnLaunchConfiguration( public fun volumeSize(): Number? = unwrap(this).getVolumeSize() /** - * The volume type. - * - * For more information, see [Amazon EBS volume - * types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon - * EC2 User Guide for Linux Instances* . + * The volume type. For more information, see [Amazon EBS volume + * types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) in the *Amazon + * EBS User Guide* . * * Valid values: `standard` | `io1` | `gp2` | `st1` | `sc1` | `gp3` * @@ -1813,9 +1808,10 @@ public open class CfnLaunchConfiguration( /** * @param encrypted Specifies whether the volume should be encrypted. * Encrypted EBS volumes can only be attached to instances that support Amazon EBS encryption. - * For more information, see [Supported instance - * types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances) - * . If your AMI uses encrypted volumes, you can also only launch it on supported instance types. + * For more information, see [Requirements for Amazon EBS + * encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption-requirements.html) + * in the *Amazon EBS User Guide* . If your AMI uses encrypted volumes, you can also only launch + * it on supported instance types. * * * If you are creating a volume from a snapshot, you cannot create an unencrypted volume from @@ -1835,9 +1831,10 @@ public open class CfnLaunchConfiguration( /** * @param encrypted Specifies whether the volume should be encrypted. * Encrypted EBS volumes can only be attached to instances that support Amazon EBS encryption. - * For more information, see [Supported instance - * types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances) - * . If your AMI uses encrypted volumes, you can also only launch it on supported instance types. + * For more information, see [Requirements for Amazon EBS + * encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption-requirements.html) + * in the *Amazon EBS User Guide* . If your AMI uses encrypted volumes, you can also only launch + * it on supported instance types. * * * If you are creating a volume from a snapshot, you cannot create an unencrypted volume from @@ -1900,11 +1897,9 @@ public open class CfnLaunchConfiguration( public fun volumeSize(volumeSize: Number) /** - * @param volumeType The volume type. - * For more information, see [Amazon EBS volume - * types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon - * EC2 User Guide for Linux Instances* . - * + * @param volumeType The volume type. For more information, see [Amazon EBS volume + * types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) in the *Amazon + * EBS User Guide* . * Valid values: `standard` | `io1` | `gp2` | `st1` | `sc1` | `gp3` */ public fun volumeType(volumeType: String) @@ -1935,9 +1930,10 @@ public open class CfnLaunchConfiguration( /** * @param encrypted Specifies whether the volume should be encrypted. * Encrypted EBS volumes can only be attached to instances that support Amazon EBS encryption. - * For more information, see [Supported instance - * types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances) - * . If your AMI uses encrypted volumes, you can also only launch it on supported instance types. + * For more information, see [Requirements for Amazon EBS + * encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption-requirements.html) + * in the *Amazon EBS User Guide* . If your AMI uses encrypted volumes, you can also only launch + * it on supported instance types. * * * If you are creating a volume from a snapshot, you cannot create an unencrypted volume from @@ -1959,9 +1955,10 @@ public open class CfnLaunchConfiguration( /** * @param encrypted Specifies whether the volume should be encrypted. * Encrypted EBS volumes can only be attached to instances that support Amazon EBS encryption. - * For more information, see [Supported instance - * types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances) - * . If your AMI uses encrypted volumes, you can also only launch it on supported instance types. + * For more information, see [Requirements for Amazon EBS + * encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption-requirements.html) + * in the *Amazon EBS User Guide* . If your AMI uses encrypted volumes, you can also only launch + * it on supported instance types. * * * If you are creating a volume from a snapshot, you cannot create an unencrypted volume from @@ -2034,11 +2031,9 @@ public open class CfnLaunchConfiguration( } /** - * @param volumeType The volume type. - * For more information, see [Amazon EBS volume - * types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon - * EC2 User Guide for Linux Instances* . - * + * @param volumeType The volume type. For more information, see [Amazon EBS volume + * types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) in the *Amazon + * EBS User Guide* . * Valid values: `standard` | `io1` | `gp2` | `st1` | `sc1` | `gp3` */ override fun volumeType(volumeType: String) { @@ -2066,9 +2061,10 @@ public open class CfnLaunchConfiguration( * Specifies whether the volume should be encrypted. * * Encrypted EBS volumes can only be attached to instances that support Amazon EBS encryption. - * For more information, see [Supported instance - * types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances) - * . If your AMI uses encrypted volumes, you can also only launch it on supported instance types. + * For more information, see [Requirements for Amazon EBS + * encryption](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption-requirements.html) + * in the *Amazon EBS User Guide* . If your AMI uses encrypted volumes, you can also only launch + * it on supported instance types. * * * If you are creating a volume from a snapshot, you cannot create an unencrypted volume from @@ -2144,11 +2140,9 @@ public open class CfnLaunchConfiguration( override fun volumeSize(): Number? = unwrap(this).getVolumeSize() /** - * The volume type. - * - * For more information, see [Amazon EBS volume - * types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon - * EC2 User Guide for Linux Instances* . + * The volume type. For more information, see [Amazon EBS volume + * types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) in the *Amazon + * EBS User Guide* . * * Valid values: `standard` | `io1` | `gp2` | `st1` | `sc1` | `gp3` * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnLaunchConfigurationProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnLaunchConfigurationProps.kt index be1ca4fd27..f7a07edee1 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnLaunchConfigurationProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnLaunchConfigurationProps.kt @@ -76,9 +76,9 @@ public interface CfnLaunchConfigurationProps { * unless you enabled the option to assign a public IPv4 address on the subnet. * * If you specify `true` , each instance in the Auto Scaling group receives a unique public IPv4 - * address. For more information, see [Launching Auto Scaling instances in a - * VPC](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html) in the *Amazon EC2 - * Auto Scaling User Guide* . + * address. For more information, see [Provide network connectivity for your Auto Scaling instances + * using Amazon VPC](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html) in the + * *Amazon EC2 Auto Scaling User Guide* . * * If you specify this property, you must specify at least one subnet for `VPCZoneIdentifier` when * you create your group. @@ -123,7 +123,7 @@ public interface CfnLaunchConfigurationProps { * stack to provide optimal I/O performance. This optimization is not available with all instance * types. Additional fees are incurred when you enable EBS optimization for an instance type that is * not EBS-optimized by default. For more information, see [Amazon EBS-optimized - * instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) in the *Amazon + * instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon * EC2 User Guide for Linux Instances* . * * The default value is `false` . @@ -148,7 +148,7 @@ public interface CfnLaunchConfigurationProps { /** * The ID of the Amazon Machine Image (AMI) that was assigned during registration. * - * For more information, see [Finding a Linux + * For more information, see [Find a Linux * AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html) in the *Amazon EC2 * User Guide for Linux Instances* . * @@ -178,8 +178,8 @@ public interface CfnLaunchConfigurationProps { * * When detailed monitoring is enabled, Amazon CloudWatch generates metrics every minute and your * account is charged a fee. When you disable detailed monitoring, CloudWatch generates metrics every - * 5 minutes. For more information, see [Configure Monitoring for Auto Scaling - * Instances](https://docs.aws.amazon.com/autoscaling/latest/userguide/enable-as-instance-metrics.html) + * 5 minutes. For more information, see [Configure monitoring for Auto Scaling + * instances](https://docs.aws.amazon.com/autoscaling/latest/userguide/enable-as-instance-metrics.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * @@ -217,7 +217,7 @@ public interface CfnLaunchConfigurationProps { /** * The name of the key pair. * - * For more information, see [Amazon EC2 key pairs and Linux + * For more information, see [Amazon EC2 key pairs and Amazon EC2 * instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) in the *Amazon * EC2 User Guide for Linux Instances* . * @@ -237,8 +237,8 @@ public interface CfnLaunchConfigurationProps { /** * The metadata options for the instances. * - * For more information, see [Configuring the Instance Metadata - * Options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) + * For more information, see [Configure the instance metadata + * options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) * in the *Amazon EC2 Auto Scaling User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html#cfn-autoscaling-launchconfiguration-metadataoptions) @@ -251,9 +251,7 @@ public interface CfnLaunchConfigurationProps { * An instance with `dedicated` tenancy runs on isolated, single-tenant hardware and can only be * launched into a VPC. To launch dedicated instances into a shared tenancy VPC (a VPC with the * instance placement tenancy attribute set to `default` ), you must set the value of this property - * to `dedicated` . For more information, see [Configuring instance tenancy with Amazon EC2 Auto - * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-dedicated-instances.html) - * in the *Amazon EC2 Auto Scaling User Guide* . + * to `dedicated` . * * If you specify `PlacementTenancy` , you must specify at least one subnet for * `VPCZoneIdentifier` when you create your group. @@ -338,9 +336,9 @@ public interface CfnLaunchConfigurationProps { * address, unless you enabled the option to assign a public IPv4 address on the subnet. * * If you specify `true` , each instance in the Auto Scaling group receives a unique public IPv4 - * address. For more information, see [Launching Auto Scaling instances in a - * VPC](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html) in the *Amazon EC2 - * Auto Scaling User Guide* . + * address. For more information, see [Provide network connectivity for your Auto Scaling instances + * using Amazon VPC](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html) in the + * *Amazon EC2 Auto Scaling User Guide* . * * If you specify this property, you must specify at least one subnet for `VPCZoneIdentifier` * when you create your group. @@ -356,9 +354,9 @@ public interface CfnLaunchConfigurationProps { * address, unless you enabled the option to assign a public IPv4 address on the subnet. * * If you specify `true` , each instance in the Auto Scaling group receives a unique public IPv4 - * address. For more information, see [Launching Auto Scaling instances in a - * VPC](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html) in the *Amazon EC2 - * Auto Scaling User Guide* . + * address. For more information, see [Provide network connectivity for your Auto Scaling instances + * using Amazon VPC](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html) in the + * *Amazon EC2 Auto Scaling User Guide* . * * If you specify this property, you must specify at least one subnet for `VPCZoneIdentifier` * when you create your group. @@ -417,8 +415,8 @@ public interface CfnLaunchConfigurationProps { * stack to provide optimal I/O performance. This optimization is not available with all instance * types. Additional fees are incurred when you enable EBS optimization for an instance type that * is not EBS-optimized by default. For more information, see [Amazon EBS-optimized - * instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) in the *Amazon - * EC2 User Guide for Linux Instances* . + * instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the + * *Amazon EC2 User Guide for Linux Instances* . * * The default value is `false` . */ @@ -431,8 +429,8 @@ public interface CfnLaunchConfigurationProps { * stack to provide optimal I/O performance. This optimization is not available with all instance * types. Additional fees are incurred when you enable EBS optimization for an instance type that * is not EBS-optimized by default. For more information, see [Amazon EBS-optimized - * instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) in the *Amazon - * EC2 User Guide for Linux Instances* . + * instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the + * *Amazon EC2 User Guide for Linux Instances* . * * The default value is `false` . */ @@ -451,7 +449,7 @@ public interface CfnLaunchConfigurationProps { /** * @param imageId The ID of the Amazon Machine Image (AMI) that was assigned during * registration. - * For more information, see [Finding a Linux + * For more information, see [Find a Linux * AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html) in the *Amazon EC2 * User Guide for Linux Instances* . * @@ -476,8 +474,8 @@ public interface CfnLaunchConfigurationProps { * * When detailed monitoring is enabled, Amazon CloudWatch generates metrics every minute and * your account is charged a fee. When you disable detailed monitoring, CloudWatch generates - * metrics every 5 minutes. For more information, see [Configure Monitoring for Auto Scaling - * Instances](https://docs.aws.amazon.com/autoscaling/latest/userguide/enable-as-instance-metrics.html) + * metrics every 5 minutes. For more information, see [Configure monitoring for Auto Scaling + * instances](https://docs.aws.amazon.com/autoscaling/latest/userguide/enable-as-instance-metrics.html) * in the *Amazon EC2 Auto Scaling User Guide* . */ public fun instanceMonitoring(instanceMonitoring: Boolean) @@ -490,8 +488,8 @@ public interface CfnLaunchConfigurationProps { * * When detailed monitoring is enabled, Amazon CloudWatch generates metrics every minute and * your account is charged a fee. When you disable detailed monitoring, CloudWatch generates - * metrics every 5 minutes. For more information, see [Configure Monitoring for Auto Scaling - * Instances](https://docs.aws.amazon.com/autoscaling/latest/userguide/enable-as-instance-metrics.html) + * metrics every 5 minutes. For more information, see [Configure monitoring for Auto Scaling + * instances](https://docs.aws.amazon.com/autoscaling/latest/userguide/enable-as-instance-metrics.html) * in the *Amazon EC2 Auto Scaling User Guide* . */ public fun instanceMonitoring(instanceMonitoring: IResolvable) @@ -518,7 +516,7 @@ public interface CfnLaunchConfigurationProps { /** * @param keyName The name of the key pair. - * For more information, see [Amazon EC2 key pairs and Linux + * For more information, see [Amazon EC2 key pairs and Amazon EC2 * instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) in the * *Amazon EC2 User Guide for Linux Instances* . */ @@ -532,24 +530,24 @@ public interface CfnLaunchConfigurationProps { /** * @param metadataOptions The metadata options for the instances. - * For more information, see [Configuring the Instance Metadata - * Options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) + * For more information, see [Configure the instance metadata + * options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) * in the *Amazon EC2 Auto Scaling User Guide* . */ public fun metadataOptions(metadataOptions: IResolvable) /** * @param metadataOptions The metadata options for the instances. - * For more information, see [Configuring the Instance Metadata - * Options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) + * For more information, see [Configure the instance metadata + * options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) * in the *Amazon EC2 Auto Scaling User Guide* . */ public fun metadataOptions(metadataOptions: CfnLaunchConfiguration.MetadataOptionsProperty) /** * @param metadataOptions The metadata options for the instances. - * For more information, see [Configuring the Instance Metadata - * Options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) + * For more information, see [Configure the instance metadata + * options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) * in the *Amazon EC2 Auto Scaling User Guide* . */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @@ -562,9 +560,7 @@ public interface CfnLaunchConfigurationProps { * An instance with `dedicated` tenancy runs on isolated, single-tenant hardware and can only be * launched into a VPC. To launch dedicated instances into a shared tenancy VPC (a VPC with the * instance placement tenancy attribute set to `default` ), you must set the value of this property - * to `dedicated` . For more information, see [Configuring instance tenancy with Amazon EC2 Auto - * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-dedicated-instances.html) - * in the *Amazon EC2 Auto Scaling User Guide* . + * to `dedicated` . * * If you specify `PlacementTenancy` , you must specify at least one subnet for * `VPCZoneIdentifier` when you create your group. @@ -649,9 +645,9 @@ public interface CfnLaunchConfigurationProps { * address, unless you enabled the option to assign a public IPv4 address on the subnet. * * If you specify `true` , each instance in the Auto Scaling group receives a unique public IPv4 - * address. For more information, see [Launching Auto Scaling instances in a - * VPC](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html) in the *Amazon EC2 - * Auto Scaling User Guide* . + * address. For more information, see [Provide network connectivity for your Auto Scaling instances + * using Amazon VPC](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html) in the + * *Amazon EC2 Auto Scaling User Guide* . * * If you specify this property, you must specify at least one subnet for `VPCZoneIdentifier` * when you create your group. @@ -669,9 +665,9 @@ public interface CfnLaunchConfigurationProps { * address, unless you enabled the option to assign a public IPv4 address on the subnet. * * If you specify `true` , each instance in the Auto Scaling group receives a unique public IPv4 - * address. For more information, see [Launching Auto Scaling instances in a - * VPC](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html) in the *Amazon EC2 - * Auto Scaling User Guide* . + * address. For more information, see [Provide network connectivity for your Auto Scaling instances + * using Amazon VPC](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html) in the + * *Amazon EC2 Auto Scaling User Guide* . * * If you specify this property, you must specify at least one subnet for `VPCZoneIdentifier` * when you create your group. @@ -742,8 +738,8 @@ public interface CfnLaunchConfigurationProps { * stack to provide optimal I/O performance. This optimization is not available with all instance * types. Additional fees are incurred when you enable EBS optimization for an instance type that * is not EBS-optimized by default. For more information, see [Amazon EBS-optimized - * instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) in the *Amazon - * EC2 User Guide for Linux Instances* . + * instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the + * *Amazon EC2 User Guide for Linux Instances* . * * The default value is `false` . */ @@ -758,8 +754,8 @@ public interface CfnLaunchConfigurationProps { * stack to provide optimal I/O performance. This optimization is not available with all instance * types. Additional fees are incurred when you enable EBS optimization for an instance type that * is not EBS-optimized by default. For more information, see [Amazon EBS-optimized - * instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) in the *Amazon - * EC2 User Guide for Linux Instances* . + * instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the + * *Amazon EC2 User Guide for Linux Instances* . * * The default value is `false` . */ @@ -782,7 +778,7 @@ public interface CfnLaunchConfigurationProps { /** * @param imageId The ID of the Amazon Machine Image (AMI) that was assigned during * registration. - * For more information, see [Finding a Linux + * For more information, see [Find a Linux * AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html) in the *Amazon EC2 * User Guide for Linux Instances* . * @@ -811,8 +807,8 @@ public interface CfnLaunchConfigurationProps { * * When detailed monitoring is enabled, Amazon CloudWatch generates metrics every minute and * your account is charged a fee. When you disable detailed monitoring, CloudWatch generates - * metrics every 5 minutes. For more information, see [Configure Monitoring for Auto Scaling - * Instances](https://docs.aws.amazon.com/autoscaling/latest/userguide/enable-as-instance-metrics.html) + * metrics every 5 minutes. For more information, see [Configure monitoring for Auto Scaling + * instances](https://docs.aws.amazon.com/autoscaling/latest/userguide/enable-as-instance-metrics.html) * in the *Amazon EC2 Auto Scaling User Guide* . */ override fun instanceMonitoring(instanceMonitoring: Boolean) { @@ -827,8 +823,8 @@ public interface CfnLaunchConfigurationProps { * * When detailed monitoring is enabled, Amazon CloudWatch generates metrics every minute and * your account is charged a fee. When you disable detailed monitoring, CloudWatch generates - * metrics every 5 minutes. For more information, see [Configure Monitoring for Auto Scaling - * Instances](https://docs.aws.amazon.com/autoscaling/latest/userguide/enable-as-instance-metrics.html) + * metrics every 5 minutes. For more information, see [Configure monitoring for Auto Scaling + * instances](https://docs.aws.amazon.com/autoscaling/latest/userguide/enable-as-instance-metrics.html) * in the *Amazon EC2 Auto Scaling User Guide* . */ override fun instanceMonitoring(instanceMonitoring: IResolvable) { @@ -861,7 +857,7 @@ public interface CfnLaunchConfigurationProps { /** * @param keyName The name of the key pair. - * For more information, see [Amazon EC2 key pairs and Linux + * For more information, see [Amazon EC2 key pairs and Amazon EC2 * instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) in the * *Amazon EC2 User Guide for Linux Instances* . */ @@ -879,8 +875,8 @@ public interface CfnLaunchConfigurationProps { /** * @param metadataOptions The metadata options for the instances. - * For more information, see [Configuring the Instance Metadata - * Options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) + * For more information, see [Configure the instance metadata + * options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) * in the *Amazon EC2 Auto Scaling User Guide* . */ override fun metadataOptions(metadataOptions: IResolvable) { @@ -889,8 +885,8 @@ public interface CfnLaunchConfigurationProps { /** * @param metadataOptions The metadata options for the instances. - * For more information, see [Configuring the Instance Metadata - * Options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) + * For more information, see [Configure the instance metadata + * options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) * in the *Amazon EC2 Auto Scaling User Guide* . */ override fun metadataOptions(metadataOptions: CfnLaunchConfiguration.MetadataOptionsProperty) { @@ -899,8 +895,8 @@ public interface CfnLaunchConfigurationProps { /** * @param metadataOptions The metadata options for the instances. - * For more information, see [Configuring the Instance Metadata - * Options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) + * For more information, see [Configure the instance metadata + * options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) * in the *Amazon EC2 Auto Scaling User Guide* . */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @@ -914,9 +910,7 @@ public interface CfnLaunchConfigurationProps { * An instance with `dedicated` tenancy runs on isolated, single-tenant hardware and can only be * launched into a VPC. To launch dedicated instances into a shared tenancy VPC (a VPC with the * instance placement tenancy attribute set to `default` ), you must set the value of this property - * to `dedicated` . For more information, see [Configuring instance tenancy with Amazon EC2 Auto - * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-dedicated-instances.html) - * in the *Amazon EC2 Auto Scaling User Guide* . + * to `dedicated` . * * If you specify `PlacementTenancy` , you must specify at least one subnet for * `VPCZoneIdentifier` when you create your group. @@ -1013,9 +1007,9 @@ public interface CfnLaunchConfigurationProps { * address, unless you enabled the option to assign a public IPv4 address on the subnet. * * If you specify `true` , each instance in the Auto Scaling group receives a unique public IPv4 - * address. For more information, see [Launching Auto Scaling instances in a - * VPC](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html) in the *Amazon EC2 - * Auto Scaling User Guide* . + * address. For more information, see [Provide network connectivity for your Auto Scaling instances + * using Amazon VPC](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html) in the + * *Amazon EC2 Auto Scaling User Guide* . * * If you specify this property, you must specify at least one subnet for `VPCZoneIdentifier` * when you create your group. @@ -1060,8 +1054,8 @@ public interface CfnLaunchConfigurationProps { * stack to provide optimal I/O performance. This optimization is not available with all instance * types. Additional fees are incurred when you enable EBS optimization for an instance type that * is not EBS-optimized by default. For more information, see [Amazon EBS-optimized - * instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) in the *Amazon - * EC2 User Guide for Linux Instances* . + * instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the + * *Amazon EC2 User Guide for Linux Instances* . * * The default value is `false` . * @@ -1085,7 +1079,7 @@ public interface CfnLaunchConfigurationProps { /** * The ID of the Amazon Machine Image (AMI) that was assigned during registration. * - * For more information, see [Finding a Linux + * For more information, see [Find a Linux * AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html) in the *Amazon EC2 * User Guide for Linux Instances* . * @@ -1115,8 +1109,8 @@ public interface CfnLaunchConfigurationProps { * * When detailed monitoring is enabled, Amazon CloudWatch generates metrics every minute and * your account is charged a fee. When you disable detailed monitoring, CloudWatch generates - * metrics every 5 minutes. For more information, see [Configure Monitoring for Auto Scaling - * Instances](https://docs.aws.amazon.com/autoscaling/latest/userguide/enable-as-instance-metrics.html) + * metrics every 5 minutes. For more information, see [Configure monitoring for Auto Scaling + * instances](https://docs.aws.amazon.com/autoscaling/latest/userguide/enable-as-instance-metrics.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * @@ -1154,7 +1148,7 @@ public interface CfnLaunchConfigurationProps { /** * The name of the key pair. * - * For more information, see [Amazon EC2 key pairs and Linux + * For more information, see [Amazon EC2 key pairs and Amazon EC2 * instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) in the * *Amazon EC2 User Guide for Linux Instances* . * @@ -1174,8 +1168,8 @@ public interface CfnLaunchConfigurationProps { /** * The metadata options for the instances. * - * For more information, see [Configuring the Instance Metadata - * Options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) + * For more information, see [Configure the instance metadata + * options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) * in the *Amazon EC2 Auto Scaling User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html#cfn-autoscaling-launchconfiguration-metadataoptions) @@ -1188,9 +1182,7 @@ public interface CfnLaunchConfigurationProps { * An instance with `dedicated` tenancy runs on isolated, single-tenant hardware and can only be * launched into a VPC. To launch dedicated instances into a shared tenancy VPC (a VPC with the * instance placement tenancy attribute set to `default` ), you must set the value of this property - * to `dedicated` . For more information, see [Configuring instance tenancy with Amazon EC2 Auto - * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-dedicated-instances.html) - * in the *Amazon EC2 Auto Scaling User Guide* . + * to `dedicated` . * * If you specify `PlacementTenancy` , you must specify at least one subnet for * `VPCZoneIdentifier` when you create your group. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnLifecycleHook.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnLifecycleHook.kt index 3f0b1f3b44..fcacfd0497 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnLifecycleHook.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnLifecycleHook.kt @@ -274,9 +274,9 @@ public open class CfnLifecycleHook( * The ARN of the IAM role that allows the Auto Scaling group to publish to the specified * notification target. * - * For information about creating this role, see [Configure a notification target for a - * lifecycle - * hook](https://docs.aws.amazon.com/autoscaling/ec2/userguide/prepare-for-lifecycle-notifications.html#lifecycle-hook-notification-target) + * For information about creating this role, see [Prepare to add a lifecycle hook to your Auto + * Scaling + * group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/prepare-for-lifecycle-notifications.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * Valid only if the notification target is an Amazon SNS topic or an Amazon SQS queue. @@ -391,9 +391,9 @@ public open class CfnLifecycleHook( * The ARN of the IAM role that allows the Auto Scaling group to publish to the specified * notification target. * - * For information about creating this role, see [Configure a notification target for a - * lifecycle - * hook](https://docs.aws.amazon.com/autoscaling/ec2/userguide/prepare-for-lifecycle-notifications.html#lifecycle-hook-notification-target) + * For information about creating this role, see [Prepare to add a lifecycle hook to your Auto + * Scaling + * group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/prepare-for-lifecycle-notifications.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * Valid only if the notification target is an Amazon SNS topic or an Amazon SQS queue. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnLifecycleHookProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnLifecycleHookProps.kt index 87394f0c7c..e2b3d6fd8a 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnLifecycleHookProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnLifecycleHookProps.kt @@ -103,8 +103,9 @@ public interface CfnLifecycleHookProps { * The ARN of the IAM role that allows the Auto Scaling group to publish to the specified * notification target. * - * For information about creating this role, see [Configure a notification target for a lifecycle - * hook](https://docs.aws.amazon.com/autoscaling/ec2/userguide/prepare-for-lifecycle-notifications.html#lifecycle-hook-notification-target) + * For information about creating this role, see [Prepare to add a lifecycle hook to your Auto + * Scaling + * group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/prepare-for-lifecycle-notifications.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * Valid only if the notification target is an Amazon SNS topic or an Amazon SQS queue. @@ -171,9 +172,9 @@ public interface CfnLifecycleHookProps { /** * @param roleArn The ARN of the IAM role that allows the Auto Scaling group to publish to the * specified notification target. - * For information about creating this role, see [Configure a notification target for a - * lifecycle - * hook](https://docs.aws.amazon.com/autoscaling/ec2/userguide/prepare-for-lifecycle-notifications.html#lifecycle-hook-notification-target) + * For information about creating this role, see [Prepare to add a lifecycle hook to your Auto + * Scaling + * group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/prepare-for-lifecycle-notifications.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * Valid only if the notification target is an Amazon SNS topic or an Amazon SQS queue. @@ -253,9 +254,9 @@ public interface CfnLifecycleHookProps { /** * @param roleArn The ARN of the IAM role that allows the Auto Scaling group to publish to the * specified notification target. - * For information about creating this role, see [Configure a notification target for a - * lifecycle - * hook](https://docs.aws.amazon.com/autoscaling/ec2/userguide/prepare-for-lifecycle-notifications.html#lifecycle-hook-notification-target) + * For information about creating this role, see [Prepare to add a lifecycle hook to your Auto + * Scaling + * group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/prepare-for-lifecycle-notifications.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * Valid only if the notification target is an Amazon SNS topic or an Amazon SQS queue. @@ -340,9 +341,9 @@ public interface CfnLifecycleHookProps { * The ARN of the IAM role that allows the Auto Scaling group to publish to the specified * notification target. * - * For information about creating this role, see [Configure a notification target for a - * lifecycle - * hook](https://docs.aws.amazon.com/autoscaling/ec2/userguide/prepare-for-lifecycle-notifications.html#lifecycle-hook-notification-target) + * For information about creating this role, see [Prepare to add a lifecycle hook to your Auto + * Scaling + * group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/prepare-for-lifecycle-notifications.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * Valid only if the notification target is an Amazon SNS topic or an Amazon SQS queue. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnScalingPolicy.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnScalingPolicy.kt index e052d5854b..4152e1a0e5 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnScalingPolicy.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnScalingPolicy.kt @@ -445,8 +445,8 @@ public open class CfnScalingPolicy( * * Valid only if the policy type is `SimpleScaling` . For more information, see [Scaling * cooldowns for Amazon EC2 Auto - * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html) in the *Amazon EC2 - * Auto Scaling User Guide* . + * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-scaling-cooldowns.html) + * in the *Amazon EC2 Auto Scaling User Guide* . * * Default: None * @@ -732,8 +732,8 @@ public open class CfnScalingPolicy( * * Valid only if the policy type is `SimpleScaling` . For more information, see [Scaling * cooldowns for Amazon EC2 Auto - * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html) in the *Amazon EC2 - * Auto Scaling User Guide* . + * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-scaling-cooldowns.html) + * in the *Amazon EC2 Auto Scaling User Guide* . * * Default: None * @@ -2679,11 +2679,19 @@ public open class CfnScalingPolicy( * * The following are possible values: * - * * `HonorMaxCapacity` - Amazon EC2 Auto Scaling cannot scale out capacity higher than the - * maximum capacity. The maximum capacity is enforced as a hard limit. - * * `IncreaseMaxCapacity` - Amazon EC2 Auto Scaling can scale out capacity higher than the - * maximum capacity when the forecast capacity is close to or exceeds the maximum capacity. The - * upper limit is determined by the forecasted capacity and the value for `MaxCapacityBuffer` . + * * `HonorMaxCapacity` - Amazon EC2 Auto Scaling can't increase the maximum capacity of the + * group when the forecast capacity is close to or exceeds the maximum capacity. + * * `IncreaseMaxCapacity` - Amazon EC2 Auto Scaling can increase the maximum capacity of the + * group when the forecast capacity is close to or exceeds the maximum capacity. The upper limit is + * determined by the forecasted capacity and the value for `MaxCapacityBuffer` . + * + * + * Use caution when allowing the maximum capacity to be automatically increased. This can lead + * to more instances being launched than intended if the increased maximum capacity is not + * monitored and managed. The increased maximum capacity then becomes the new normal maximum + * capacity for the Auto Scaling group until you manually update it. The maximum capacity does not + * automatically decrease back to the original maximum. + * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingconfiguration.html#cfn-autoscaling-scalingpolicy-predictivescalingconfiguration-maxcapacitybreachbehavior) */ @@ -2755,11 +2763,18 @@ public open class CfnScalingPolicy( * * The following are possible values: * - * * `HonorMaxCapacity` - Amazon EC2 Auto Scaling cannot scale out capacity higher than the - * maximum capacity. The maximum capacity is enforced as a hard limit. - * * `IncreaseMaxCapacity` - Amazon EC2 Auto Scaling can scale out capacity higher than the - * maximum capacity when the forecast capacity is close to or exceeds the maximum capacity. The - * upper limit is determined by the forecasted capacity and the value for `MaxCapacityBuffer` . + * * `HonorMaxCapacity` - Amazon EC2 Auto Scaling can't increase the maximum capacity of the + * group when the forecast capacity is close to or exceeds the maximum capacity. + * * `IncreaseMaxCapacity` - Amazon EC2 Auto Scaling can increase the maximum capacity of the + * group when the forecast capacity is close to or exceeds the maximum capacity. The upper limit + * is determined by the forecasted capacity and the value for `MaxCapacityBuffer` . + * + * + * Use caution when allowing the maximum capacity to be automatically increased. This can lead + * to more instances being launched than intended if the increased maximum capacity is not + * monitored and managed. The increased maximum capacity then becomes the new normal maximum + * capacity for the Auto Scaling group until you manually update it. The maximum capacity does + * not automatically decrease back to the original maximum. */ public fun maxCapacityBreachBehavior(maxCapacityBreachBehavior: String) @@ -2839,11 +2854,18 @@ public open class CfnScalingPolicy( * * The following are possible values: * - * * `HonorMaxCapacity` - Amazon EC2 Auto Scaling cannot scale out capacity higher than the - * maximum capacity. The maximum capacity is enforced as a hard limit. - * * `IncreaseMaxCapacity` - Amazon EC2 Auto Scaling can scale out capacity higher than the - * maximum capacity when the forecast capacity is close to or exceeds the maximum capacity. The - * upper limit is determined by the forecasted capacity and the value for `MaxCapacityBuffer` . + * * `HonorMaxCapacity` - Amazon EC2 Auto Scaling can't increase the maximum capacity of the + * group when the forecast capacity is close to or exceeds the maximum capacity. + * * `IncreaseMaxCapacity` - Amazon EC2 Auto Scaling can increase the maximum capacity of the + * group when the forecast capacity is close to or exceeds the maximum capacity. The upper limit + * is determined by the forecasted capacity and the value for `MaxCapacityBuffer` . + * + * + * Use caution when allowing the maximum capacity to be automatically increased. This can lead + * to more instances being launched than intended if the increased maximum capacity is not + * monitored and managed. The increased maximum capacity then becomes the new normal maximum + * capacity for the Auto Scaling group until you manually update it. The maximum capacity does + * not automatically decrease back to the original maximum. */ override fun maxCapacityBreachBehavior(maxCapacityBreachBehavior: String) { cdkBuilder.maxCapacityBreachBehavior(maxCapacityBreachBehavior) @@ -2938,11 +2960,19 @@ public open class CfnScalingPolicy( * * The following are possible values: * - * * `HonorMaxCapacity` - Amazon EC2 Auto Scaling cannot scale out capacity higher than the - * maximum capacity. The maximum capacity is enforced as a hard limit. - * * `IncreaseMaxCapacity` - Amazon EC2 Auto Scaling can scale out capacity higher than the - * maximum capacity when the forecast capacity is close to or exceeds the maximum capacity. The - * upper limit is determined by the forecasted capacity and the value for `MaxCapacityBuffer` . + * * `HonorMaxCapacity` - Amazon EC2 Auto Scaling can't increase the maximum capacity of the + * group when the forecast capacity is close to or exceeds the maximum capacity. + * * `IncreaseMaxCapacity` - Amazon EC2 Auto Scaling can increase the maximum capacity of the + * group when the forecast capacity is close to or exceeds the maximum capacity. The upper limit + * is determined by the forecasted capacity and the value for `MaxCapacityBuffer` . + * + * + * Use caution when allowing the maximum capacity to be automatically increased. This can lead + * to more instances being launched than intended if the increased maximum capacity is not + * monitored and managed. The increased maximum capacity then becomes the new normal maximum + * capacity for the Auto Scaling group until you manually update it. The maximum capacity does + * not automatically decrease back to the original maximum. + * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingconfiguration.html#cfn-autoscaling-scalingpolicy-predictivescalingconfiguration-maxcapacitybreachbehavior) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnScalingPolicyProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnScalingPolicyProps.kt index 032b35766a..e6fa42f770 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnScalingPolicyProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/autoscaling/CfnScalingPolicyProps.kt @@ -188,7 +188,8 @@ public interface CfnScalingPolicyProps { * When a cooldown period is specified here, it overrides the default cooldown. * * Valid only if the policy type is `SimpleScaling` . For more information, see [Scaling cooldowns - * for Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html) + * for Amazon EC2 Auto + * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-scaling-cooldowns.html) * in the *Amazon EC2 Auto Scaling User Guide* . * * Default: None @@ -345,8 +346,8 @@ public interface CfnScalingPolicyProps { * * Valid only if the policy type is `SimpleScaling` . For more information, see [Scaling * cooldowns for Amazon EC2 Auto - * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html) in the *Amazon EC2 - * Auto Scaling User Guide* . + * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-scaling-cooldowns.html) + * in the *Amazon EC2 Auto Scaling User Guide* . * * Default: None */ @@ -560,8 +561,8 @@ public interface CfnScalingPolicyProps { * * Valid only if the policy type is `SimpleScaling` . For more information, see [Scaling * cooldowns for Amazon EC2 Auto - * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html) in the *Amazon EC2 - * Auto Scaling User Guide* . + * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-scaling-cooldowns.html) + * in the *Amazon EC2 Auto Scaling User Guide* . * * Default: None */ @@ -806,8 +807,8 @@ public interface CfnScalingPolicyProps { * * Valid only if the policy type is `SimpleScaling` . For more information, see [Scaling * cooldowns for Amazon EC2 Auto - * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html) in the *Amazon EC2 - * Auto Scaling User Guide* . + * Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-scaling-cooldowns.html) + * in the *Amazon EC2 Auto Scaling User Guide* . * * Default: None * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/b2bi/CfnCapability.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/b2bi/CfnCapability.kt index 854f916c3d..411ed058d1 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/b2bi/CfnCapability.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/b2bi/CfnCapability.kt @@ -1172,8 +1172,6 @@ public open class CfnCapability( /** * Returns the version to use for the specified X12 transaction set. * - * Supported versions are `4010` , `4030` , and `5010` . - * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-b2bi-capability-x12details.html#cfn-b2bi-capability-x12details-version) */ public fun version(): String? = unwrap(this).getVersion() @@ -1192,7 +1190,6 @@ public open class CfnCapability( /** * @param version Returns the version to use for the specified X12 transaction set. - * Supported versions are `4010` , `4030` , and `5010` . */ public fun version(version: String) } @@ -1213,7 +1210,6 @@ public open class CfnCapability( /** * @param version Returns the version to use for the specified X12 transaction set. - * Supported versions are `4010` , `4030` , and `5010` . */ override fun version(version: String) { cdkBuilder.version(version) @@ -1238,8 +1234,6 @@ public open class CfnCapability( /** * Returns the version to use for the specified X12 transaction set. * - * Supported versions are `4010` , `4030` , and `5010` . - * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-b2bi-capability-x12details.html#cfn-b2bi-capability-x12details-version) */ override fun version(): String? = unwrap(this).getVersion() diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/b2bi/CfnTransformer.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/b2bi/CfnTransformer.kt index 8fd1e9f682..38d36db215 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/b2bi/CfnTransformer.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/b2bi/CfnTransformer.kt @@ -663,8 +663,6 @@ public open class CfnTransformer( /** * Returns the version to use for the specified X12 transaction set. * - * Supported versions are `4010` , `4030` , and `5010` . - * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-b2bi-transformer-x12details.html#cfn-b2bi-transformer-x12details-version) */ public fun version(): String? = unwrap(this).getVersion() @@ -683,7 +681,6 @@ public open class CfnTransformer( /** * @param version Returns the version to use for the specified X12 transaction set. - * Supported versions are `4010` , `4030` , and `5010` . */ public fun version(version: String) } @@ -704,7 +701,6 @@ public open class CfnTransformer( /** * @param version Returns the version to use for the specified X12 transaction set. - * Supported versions are `4010` , `4030` , and `5010` . */ override fun version(version: String) { cdkBuilder.version(version) @@ -729,8 +725,6 @@ public open class CfnTransformer( /** * Returns the version to use for the specified X12 transaction set. * - * Supported versions are `4010` , `4030` , and `5010` . - * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-b2bi-transformer-x12details.html#cfn-b2bi-transformer-x12details-version) */ override fun version(): String? = unwrap(this).getVersion() diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnBackupPlan.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnBackupPlan.kt index 5652cdbcc8..08abdb87ab 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnBackupPlan.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnBackupPlan.kt @@ -150,15 +150,13 @@ public open class CfnBackupPlan( backupPlan(BackupPlanResourceTypeProperty(`value`)) /** - * To help organize your resources, you can assign your own metadata to the resources that you - * create. + * The tags to assign to the backup plan. */ public open fun backupPlanTags(): Map = unwrap(this).getBackupPlanTags() ?: emptyMap() /** - * To help organize your resources, you can assign your own metadata to the resources that you - * create. + * The tags to assign to the backup plan. */ public open fun backupPlanTags(`value`: Map) { unwrap(this).setBackupPlanTags(`value`) @@ -214,15 +212,10 @@ public open class CfnBackupPlan( public fun backupPlan(backupPlan: BackupPlanResourceTypeProperty.Builder.() -> Unit) /** - * To help organize your resources, you can assign your own metadata to the resources that you - * create. - * - * Each tag is a key-value pair. The specified tags are assigned to all backups created with - * this plan. + * The tags to assign to the backup plan. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupplan.html#cfn-backup-backupplan-backupplantags) - * @param backupPlanTags To help organize your resources, you can assign your own metadata to - * the resources that you create. + * @param backupPlanTags The tags to assign to the backup plan. */ public fun backupPlanTags(backupPlanTags: Map) } @@ -269,15 +262,10 @@ public open class CfnBackupPlan( backupPlan(BackupPlanResourceTypeProperty(backupPlan)) /** - * To help organize your resources, you can assign your own metadata to the resources that you - * create. - * - * Each tag is a key-value pair. The specified tags are assigned to all backups created with - * this plan. + * The tags to assign to the backup plan. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupplan.html#cfn-backup-backupplan-backupplantags) - * @param backupPlanTags To help organize your resources, you can assign your own metadata to - * the resources that you create. + * @param backupPlanTags The tags to assign to the backup plan. */ override fun backupPlanTags(backupPlanTags: Map) { cdkBuilder.backupPlanTags(backupPlanTags) @@ -782,10 +770,7 @@ public open class CfnBackupPlan( public fun lifecycle(): Any? = unwrap(this).getLifecycle() /** - * To help organize your resources, you can assign your own metadata to the resources that you - * create. - * - * Each tag is a key-value pair. + * The tags to assign to the resources. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html#cfn-backup-backupplan-backupruleresourcetype-recoverypointtags) */ @@ -900,16 +885,12 @@ public open class CfnBackupPlan( public fun lifecycle(lifecycle: LifecycleResourceTypeProperty.Builder.() -> Unit) /** - * @param recoveryPointTags To help organize your resources, you can assign your own metadata - * to the resources that you create. - * Each tag is a key-value pair. + * @param recoveryPointTags The tags to assign to the resources. */ public fun recoveryPointTags(recoveryPointTags: IResolvable) /** - * @param recoveryPointTags To help organize your resources, you can assign your own metadata - * to the resources that you create. - * Each tag is a key-value pair. + * @param recoveryPointTags The tags to assign to the resources. */ public fun recoveryPointTags(recoveryPointTags: Map) @@ -1028,18 +1009,14 @@ public open class CfnBackupPlan( lifecycle(LifecycleResourceTypeProperty(lifecycle)) /** - * @param recoveryPointTags To help organize your resources, you can assign your own metadata - * to the resources that you create. - * Each tag is a key-value pair. + * @param recoveryPointTags The tags to assign to the resources. */ override fun recoveryPointTags(recoveryPointTags: IResolvable) { cdkBuilder.recoveryPointTags(recoveryPointTags.let(IResolvable::unwrap)) } /** - * @param recoveryPointTags To help organize your resources, you can assign your own metadata - * to the resources that you create. - * Each tag is a key-value pair. + * @param recoveryPointTags The tags to assign to the resources. */ override fun recoveryPointTags(recoveryPointTags: Map) { cdkBuilder.recoveryPointTags(recoveryPointTags) @@ -1129,10 +1106,7 @@ public open class CfnBackupPlan( override fun lifecycle(): Any? = unwrap(this).getLifecycle() /** - * To help organize your resources, you can assign your own metadata to the resources that you - * create. - * - * Each tag is a key-value pair. + * The tags to assign to the resources. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html#cfn-backup-backupplan-backupruleresourcetype-recoverypointtags) */ @@ -1446,6 +1420,9 @@ public open class CfnBackupPlan( public fun moveToColdStorageAfterDays(): Number? = unwrap(this).getMoveToColdStorageAfterDays() /** + * If the value is true, your backup plan transitions supported resources to archive (cold) + * storage tier in accordance with your lifecycle settings. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-lifecycleresourcetype.html#cfn-backup-backupplan-lifecycleresourcetype-optintoarchiveforsupportedresources) */ public fun optInToArchiveForSupportedResources(): Any? = @@ -1470,12 +1447,16 @@ public open class CfnBackupPlan( public fun moveToColdStorageAfterDays(moveToColdStorageAfterDays: Number) /** - * @param optInToArchiveForSupportedResources the value to be set. + * @param optInToArchiveForSupportedResources If the value is true, your backup plan + * transitions supported resources to archive (cold) storage tier in accordance with your + * lifecycle settings. */ public fun optInToArchiveForSupportedResources(optInToArchiveForSupportedResources: Boolean) /** - * @param optInToArchiveForSupportedResources the value to be set. + * @param optInToArchiveForSupportedResources If the value is true, your backup plan + * transitions supported resources to archive (cold) storage tier in accordance with your + * lifecycle settings. */ public fun optInToArchiveForSupportedResources(optInToArchiveForSupportedResources: IResolvable) @@ -1505,7 +1486,9 @@ public open class CfnBackupPlan( } /** - * @param optInToArchiveForSupportedResources the value to be set. + * @param optInToArchiveForSupportedResources If the value is true, your backup plan + * transitions supported resources to archive (cold) storage tier in accordance with your + * lifecycle settings. */ override fun optInToArchiveForSupportedResources(optInToArchiveForSupportedResources: Boolean) { @@ -1513,7 +1496,9 @@ public open class CfnBackupPlan( } /** - * @param optInToArchiveForSupportedResources the value to be set. + * @param optInToArchiveForSupportedResources If the value is true, your backup plan + * transitions supported resources to archive (cold) storage tier in accordance with your + * lifecycle settings. */ override fun optInToArchiveForSupportedResources(optInToArchiveForSupportedResources: IResolvable) { @@ -1546,6 +1531,9 @@ public open class CfnBackupPlan( unwrap(this).getMoveToColdStorageAfterDays() /** + * If the value is true, your backup plan transitions supported resources to archive (cold) + * storage tier in accordance with your lifecycle settings. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-lifecycleresourcetype.html#cfn-backup-backupplan-lifecycleresourcetype-optintoarchiveforsupportedresources) */ override fun optInToArchiveForSupportedResources(): Any? = diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnBackupPlanProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnBackupPlanProps.kt index 037d2e7488..1eab2eb63f 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnBackupPlanProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnBackupPlanProps.kt @@ -74,11 +74,7 @@ public interface CfnBackupPlanProps { public fun backupPlan(): Any /** - * To help organize your resources, you can assign your own metadata to the resources that you - * create. - * - * Each tag is a key-value pair. The specified tags are assigned to all backups created with this - * plan. + * The tags to assign to the backup plan. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupplan.html#cfn-backup-backupplan-backupplantags) */ @@ -111,10 +107,7 @@ public interface CfnBackupPlanProps { fun backupPlan(backupPlan: CfnBackupPlan.BackupPlanResourceTypeProperty.Builder.() -> Unit) /** - * @param backupPlanTags To help organize your resources, you can assign your own metadata to - * the resources that you create. - * Each tag is a key-value pair. The specified tags are assigned to all backups created with - * this plan. + * @param backupPlanTags The tags to assign to the backup plan. */ public fun backupPlanTags(backupPlanTags: Map) } @@ -150,10 +143,7 @@ public interface CfnBackupPlanProps { Unit = backupPlan(CfnBackupPlan.BackupPlanResourceTypeProperty(backupPlan)) /** - * @param backupPlanTags To help organize your resources, you can assign your own metadata to - * the resources that you create. - * Each tag is a key-value pair. The specified tags are assigned to all backups created with - * this plan. + * @param backupPlanTags The tags to assign to the backup plan. */ override fun backupPlanTags(backupPlanTags: Map) { cdkBuilder.backupPlanTags(backupPlanTags) @@ -174,11 +164,7 @@ public interface CfnBackupPlanProps { override fun backupPlan(): Any = unwrap(this).getBackupPlan() /** - * To help organize your resources, you can assign your own metadata to the resources that you - * create. - * - * Each tag is a key-value pair. The specified tags are assigned to all backups created with - * this plan. + * The tags to assign to the backup plan. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupplan.html#cfn-backup-backupplan-backupplantags) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnBackupSelection.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnBackupSelection.kt index 397f2d77dc..892bc0eb84 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnBackupSelection.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnBackupSelection.kt @@ -718,6 +718,9 @@ public open class CfnBackupSelection( /** * Includes information about tags you define to assign tagged resources to a backup plan. * + * Include the prefix `aws:ResourceTag` in your tags. For example, `"aws:ResourceTag/TagKey1": + * "Value1"` . + * * Example: * * ``` diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnBackupVault.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnBackupVault.kt index c615892b1a..ceb23c4616 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnBackupVault.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnBackupVault.kt @@ -122,13 +122,13 @@ public open class CfnBackupVault( } /** - * Metadata that you can assign to help organize the resources that you create. + * The tags to assign to the backup vault. */ public open fun backupVaultTags(): Map = unwrap(this).getBackupVaultTags() ?: emptyMap() /** - * Metadata that you can assign to help organize the resources that you create. + * The tags to assign to the backup vault. */ public open fun backupVaultTags(`value`: Map) { unwrap(this).setBackupVaultTags(`value`) @@ -247,13 +247,10 @@ public open class CfnBackupVault( public fun backupVaultName(backupVaultName: String) /** - * Metadata that you can assign to help organize the resources that you create. - * - * Each tag is a key-value pair. + * The tags to assign to the backup vault. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupvault.html#cfn-backup-backupvault-backupvaulttags) - * @param backupVaultTags Metadata that you can assign to help organize the resources that you - * create. + * @param backupVaultTags The tags to assign to the backup vault. */ public fun backupVaultTags(backupVaultTags: Map) @@ -368,13 +365,10 @@ public open class CfnBackupVault( } /** - * Metadata that you can assign to help organize the resources that you create. - * - * Each tag is a key-value pair. + * The tags to assign to the backup vault. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupvault.html#cfn-backup-backupvault-backupvaulttags) - * @param backupVaultTags Metadata that you can assign to help organize the resources that you - * create. + * @param backupVaultTags The tags to assign to the backup vault. */ override fun backupVaultTags(backupVaultTags: Map) { cdkBuilder.backupVaultTags(backupVaultTags) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnBackupVaultProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnBackupVaultProps.kt index 73d686553d..641d0f9a14 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnBackupVaultProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnBackupVaultProps.kt @@ -63,9 +63,7 @@ public interface CfnBackupVaultProps { public fun backupVaultName(): String /** - * Metadata that you can assign to help organize the resources that you create. - * - * Each tag is a key-value pair. + * The tags to assign to the backup vault. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupvault.html#cfn-backup-backupvault-backupvaulttags) */ @@ -123,9 +121,7 @@ public interface CfnBackupVaultProps { public fun backupVaultName(backupVaultName: String) /** - * @param backupVaultTags Metadata that you can assign to help organize the resources that you - * create. - * Each tag is a key-value pair. + * @param backupVaultTags The tags to assign to the backup vault. */ public fun backupVaultTags(backupVaultTags: Map) @@ -205,9 +201,7 @@ public interface CfnBackupVaultProps { } /** - * @param backupVaultTags Metadata that you can assign to help organize the resources that you - * create. - * Each tag is a key-value pair. + * @param backupVaultTags The tags to assign to the backup vault. */ override fun backupVaultTags(backupVaultTags: Map) { cdkBuilder.backupVaultTags(backupVaultTags) @@ -304,9 +298,7 @@ public interface CfnBackupVaultProps { override fun backupVaultName(): String = unwrap(this).getBackupVaultName() /** - * Metadata that you can assign to help organize the resources that you create. - * - * Each tag is a key-value pair. + * The tags to assign to the backup vault. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupvault.html#cfn-backup-backupvault-backupvaulttags) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnFramework.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnFramework.kt index e187f18d67..cf6c4a07e0 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnFramework.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnFramework.kt @@ -164,20 +164,20 @@ public open class CfnFramework( } /** - * A list of tags with which to tag your framework. + * The tags to assign to your framework. */ public open fun frameworkTags(): List = unwrap(this).getFrameworkTags()?.map(CfnTag::wrap) ?: emptyList() /** - * A list of tags with which to tag your framework. + * The tags to assign to your framework. */ public open fun frameworkTags(`value`: List) { unwrap(this).setFrameworkTags(`value`.map(CfnTag::unwrap)) } /** - * A list of tags with which to tag your framework. + * The tags to assign to your framework. */ public open fun frameworkTags(vararg `value`: CfnTag): Unit = frameworkTags(`value`.toList()) @@ -249,18 +249,18 @@ public open class CfnFramework( public fun frameworkName(frameworkName: String) /** - * A list of tags with which to tag your framework. + * The tags to assign to your framework. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-framework.html#cfn-backup-framework-frameworktags) - * @param frameworkTags A list of tags with which to tag your framework. + * @param frameworkTags The tags to assign to your framework. */ public fun frameworkTags(frameworkTags: List) /** - * A list of tags with which to tag your framework. + * The tags to assign to your framework. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-framework.html#cfn-backup-framework-frameworktags) - * @param frameworkTags A list of tags with which to tag your framework. + * @param frameworkTags The tags to assign to your framework. */ public fun frameworkTags(vararg frameworkTags: CfnTag) } @@ -335,20 +335,20 @@ public open class CfnFramework( } /** - * A list of tags with which to tag your framework. + * The tags to assign to your framework. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-framework.html#cfn-backup-framework-frameworktags) - * @param frameworkTags A list of tags with which to tag your framework. + * @param frameworkTags The tags to assign to your framework. */ override fun frameworkTags(frameworkTags: List) { cdkBuilder.frameworkTags(frameworkTags.map(CfnTag::unwrap)) } /** - * A list of tags with which to tag your framework. + * The tags to assign to your framework. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-framework.html#cfn-backup-framework-frameworktags) - * @param frameworkTags A list of tags with which to tag your framework. + * @param frameworkTags The tags to assign to your framework. */ override fun frameworkTags(vararg frameworkTags: CfnTag): Unit = frameworkTags(frameworkTags.toList()) @@ -377,7 +377,7 @@ public open class CfnFramework( } /** - * A list of parameters for a control. + * The parameters for a control. * * A control can have zero, one, or more than one parameter. An example of a control with two * parameters is: "backup plan frequency is at least `daily` and the retention period is at least `1 @@ -748,7 +748,7 @@ public open class CfnFramework( */ public interface FrameworkControlProperty { /** - * A list of `ParameterName` and `ParameterValue` pairs. + * The name/value pairs. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-framework-frameworkcontrol.html#cfn-backup-framework-frameworkcontrol-controlinputparameters) */ @@ -782,17 +782,17 @@ public open class CfnFramework( @CdkDslMarker public interface Builder { /** - * @param controlInputParameters A list of `ParameterName` and `ParameterValue` pairs. + * @param controlInputParameters The name/value pairs. */ public fun controlInputParameters(controlInputParameters: IResolvable) /** - * @param controlInputParameters A list of `ParameterName` and `ParameterValue` pairs. + * @param controlInputParameters The name/value pairs. */ public fun controlInputParameters(controlInputParameters: List) /** - * @param controlInputParameters A list of `ParameterName` and `ParameterValue` pairs. + * @param controlInputParameters The name/value pairs. */ public fun controlInputParameters(vararg controlInputParameters: Any) @@ -819,21 +819,21 @@ public open class CfnFramework( software.amazon.awscdk.services.backup.CfnFramework.FrameworkControlProperty.builder() /** - * @param controlInputParameters A list of `ParameterName` and `ParameterValue` pairs. + * @param controlInputParameters The name/value pairs. */ override fun controlInputParameters(controlInputParameters: IResolvable) { cdkBuilder.controlInputParameters(controlInputParameters.let(IResolvable::unwrap)) } /** - * @param controlInputParameters A list of `ParameterName` and `ParameterValue` pairs. + * @param controlInputParameters The name/value pairs. */ override fun controlInputParameters(controlInputParameters: List) { cdkBuilder.controlInputParameters(controlInputParameters.map{CdkObjectWrappers.unwrap(it)}) } /** - * @param controlInputParameters A list of `ParameterName` and `ParameterValue` pairs. + * @param controlInputParameters The name/value pairs. */ override fun controlInputParameters(vararg controlInputParameters: Any): Unit = controlInputParameters(controlInputParameters.toList()) @@ -867,7 +867,7 @@ public open class CfnFramework( cdkObject: software.amazon.awscdk.services.backup.CfnFramework.FrameworkControlProperty, ) : CdkObject(cdkObject), FrameworkControlProperty { /** - * A list of `ParameterName` and `ParameterValue` pairs. + * The name/value pairs. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-framework-frameworkcontrol.html#cfn-backup-framework-frameworkcontrol-controlinputparameters) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnFrameworkProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnFrameworkProps.kt index 5f83deb392..123c0af567 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnFrameworkProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnFrameworkProps.kt @@ -72,7 +72,7 @@ public interface CfnFrameworkProps { public fun frameworkName(): String? = unwrap(this).getFrameworkName() /** - * A list of tags with which to tag your framework. + * The tags to assign to your framework. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-framework.html#cfn-backup-framework-frameworktags) */ @@ -119,12 +119,12 @@ public interface CfnFrameworkProps { public fun frameworkName(frameworkName: String) /** - * @param frameworkTags A list of tags with which to tag your framework. + * @param frameworkTags The tags to assign to your framework. */ public fun frameworkTags(frameworkTags: List) /** - * @param frameworkTags A list of tags with which to tag your framework. + * @param frameworkTags The tags to assign to your framework. */ public fun frameworkTags(vararg frameworkTags: CfnTag) } @@ -177,14 +177,14 @@ public interface CfnFrameworkProps { } /** - * @param frameworkTags A list of tags with which to tag your framework. + * @param frameworkTags The tags to assign to your framework. */ override fun frameworkTags(frameworkTags: List) { cdkBuilder.frameworkTags(frameworkTags.map(CfnTag::unwrap)) } /** - * @param frameworkTags A list of tags with which to tag your framework. + * @param frameworkTags The tags to assign to your framework. */ override fun frameworkTags(vararg frameworkTags: CfnTag): Unit = frameworkTags(frameworkTags.toList()) @@ -223,7 +223,7 @@ public interface CfnFrameworkProps { override fun frameworkName(): String? = unwrap(this).getFrameworkName() /** - * A list of tags with which to tag your framework. + * The tags to assign to your framework. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-framework.html#cfn-backup-framework-frameworktags) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnReportPlan.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnReportPlan.kt index 1979324a1c..811732981e 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnReportPlan.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnReportPlan.kt @@ -132,20 +132,20 @@ public open class CfnReportPlan( } /** - * A list of tags to tag your report plan. + * The tags to assign to your report plan. */ public open fun reportPlanTags(): List = unwrap(this).getReportPlanTags()?.map(CfnTag::wrap) ?: emptyList() /** - * A list of tags to tag your report plan. + * The tags to assign to your report plan. */ public open fun reportPlanTags(`value`: List) { unwrap(this).setReportPlanTags(`value`.map(CfnTag::unwrap)) } /** - * A list of tags to tag your report plan. + * The tags to assign to your report plan. */ public open fun reportPlanTags(vararg `value`: CfnTag): Unit = reportPlanTags(`value`.toList()) @@ -202,18 +202,18 @@ public open class CfnReportPlan( public fun reportPlanName(reportPlanName: String) /** - * A list of tags to tag your report plan. + * The tags to assign to your report plan. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-reportplan.html#cfn-backup-reportplan-reportplantags) - * @param reportPlanTags A list of tags to tag your report plan. + * @param reportPlanTags The tags to assign to your report plan. */ public fun reportPlanTags(reportPlanTags: List) /** - * A list of tags to tag your report plan. + * The tags to assign to your report plan. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-reportplan.html#cfn-backup-reportplan-reportplantags) - * @param reportPlanTags A list of tags to tag your report plan. + * @param reportPlanTags The tags to assign to your report plan. */ public fun reportPlanTags(vararg reportPlanTags: CfnTag) @@ -279,20 +279,20 @@ public open class CfnReportPlan( } /** - * A list of tags to tag your report plan. + * The tags to assign to your report plan. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-reportplan.html#cfn-backup-reportplan-reportplantags) - * @param reportPlanTags A list of tags to tag your report plan. + * @param reportPlanTags The tags to assign to your report plan. */ override fun reportPlanTags(reportPlanTags: List) { cdkBuilder.reportPlanTags(reportPlanTags.map(CfnTag::unwrap)) } /** - * A list of tags to tag your report plan. + * The tags to assign to your report plan. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-reportplan.html#cfn-backup-reportplan-reportplantags) - * @param reportPlanTags A list of tags to tag your report plan. + * @param reportPlanTags The tags to assign to your report plan. */ override fun reportPlanTags(vararg reportPlanTags: CfnTag): Unit = reportPlanTags(reportPlanTags.toList()) @@ -362,7 +362,7 @@ public open class CfnReportPlan( */ public interface ReportDeliveryChannelProperty { /** - * A list of the format of your reports: `CSV` , `JSON` , or both. + * The format of your reports: `CSV` , `JSON` , or both. * * If not specified, the default format is `CSV` . * @@ -393,13 +393,13 @@ public open class CfnReportPlan( @CdkDslMarker public interface Builder { /** - * @param formats A list of the format of your reports: `CSV` , `JSON` , or both. + * @param formats The format of your reports: `CSV` , `JSON` , or both. * If not specified, the default format is `CSV` . */ public fun formats(formats: List) /** - * @param formats A list of the format of your reports: `CSV` , `JSON` , or both. + * @param formats The format of your reports: `CSV` , `JSON` , or both. * If not specified, the default format is `CSV` . */ public fun formats(vararg formats: String) @@ -425,7 +425,7 @@ public open class CfnReportPlan( software.amazon.awscdk.services.backup.CfnReportPlan.ReportDeliveryChannelProperty.builder() /** - * @param formats A list of the format of your reports: `CSV` , `JSON` , or both. + * @param formats The format of your reports: `CSV` , `JSON` , or both. * If not specified, the default format is `CSV` . */ override fun formats(formats: List) { @@ -433,7 +433,7 @@ public open class CfnReportPlan( } /** - * @param formats A list of the format of your reports: `CSV` , `JSON` , or both. + * @param formats The format of your reports: `CSV` , `JSON` , or both. * If not specified, the default format is `CSV` . */ override fun formats(vararg formats: String): Unit = formats(formats.toList()) @@ -464,7 +464,7 @@ public open class CfnReportPlan( cdkObject: software.amazon.awscdk.services.backup.CfnReportPlan.ReportDeliveryChannelProperty, ) : CdkObject(cdkObject), ReportDeliveryChannelProperty { /** - * A list of the format of your reports: `CSV` , `JSON` , or both. + * The format of your reports: `CSV` , `JSON` , or both. * * If not specified, the default format is `CSV` . * @@ -533,6 +533,8 @@ public open class CfnReportPlan( /** * These are the accounts to be included in the report. * + * Use string value of `ROOT` to include all organizational units. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-reportplan-reportsetting.html#cfn-backup-reportplan-reportsetting-accounts) */ public fun accounts(): List = unwrap(this).getAccounts() ?: emptyList() @@ -555,6 +557,8 @@ public open class CfnReportPlan( /** * These are the Regions to be included in the report. * + * Use the wildcard as the string value to include all Regions. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-reportplan-reportsetting.html#cfn-backup-reportplan-reportsetting-regions) */ public fun regions(): List = unwrap(this).getRegions() ?: emptyList() @@ -577,11 +581,13 @@ public open class CfnReportPlan( public interface Builder { /** * @param accounts These are the accounts to be included in the report. + * Use string value of `ROOT` to include all organizational units. */ public fun accounts(accounts: List) /** * @param accounts These are the accounts to be included in the report. + * Use string value of `ROOT` to include all organizational units. */ public fun accounts(vararg accounts: String) @@ -607,11 +613,13 @@ public open class CfnReportPlan( /** * @param regions These are the Regions to be included in the report. + * Use the wildcard as the string value to include all Regions. */ public fun regions(regions: List) /** * @param regions These are the Regions to be included in the report. + * Use the wildcard as the string value to include all Regions. */ public fun regions(vararg regions: String) @@ -631,6 +639,7 @@ public open class CfnReportPlan( /** * @param accounts These are the accounts to be included in the report. + * Use string value of `ROOT` to include all organizational units. */ override fun accounts(accounts: List) { cdkBuilder.accounts(accounts) @@ -638,6 +647,7 @@ public open class CfnReportPlan( /** * @param accounts These are the accounts to be included in the report. + * Use string value of `ROOT` to include all organizational units. */ override fun accounts(vararg accounts: String): Unit = accounts(accounts.toList()) @@ -669,6 +679,7 @@ public open class CfnReportPlan( /** * @param regions These are the Regions to be included in the report. + * Use the wildcard as the string value to include all Regions. */ override fun regions(regions: List) { cdkBuilder.regions(regions) @@ -676,6 +687,7 @@ public open class CfnReportPlan( /** * @param regions These are the Regions to be included in the report. + * Use the wildcard as the string value to include all Regions. */ override fun regions(vararg regions: String): Unit = regions(regions.toList()) @@ -699,6 +711,8 @@ public open class CfnReportPlan( /** * These are the accounts to be included in the report. * + * Use string value of `ROOT` to include all organizational units. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-reportplan-reportsetting.html#cfn-backup-reportplan-reportsetting-accounts) */ override fun accounts(): List = unwrap(this).getAccounts() ?: emptyList() @@ -721,6 +735,8 @@ public open class CfnReportPlan( /** * These are the Regions to be included in the report. * + * Use the wildcard as the string value to include all Regions. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-reportplan-reportsetting.html#cfn-backup-reportplan-reportsetting-regions) */ override fun regions(): List = unwrap(this).getRegions() ?: emptyList() diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnReportPlanProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnReportPlanProps.kt index fb9331af4f..d4dbb5e4e4 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnReportPlanProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnReportPlanProps.kt @@ -64,7 +64,7 @@ public interface CfnReportPlanProps { public fun reportPlanName(): String? = unwrap(this).getReportPlanName() /** - * A list of tags to tag your report plan. + * The tags to assign to your report plan. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-reportplan.html#cfn-backup-reportplan-reportplantags) */ @@ -111,12 +111,12 @@ public interface CfnReportPlanProps { public fun reportPlanName(reportPlanName: String) /** - * @param reportPlanTags A list of tags to tag your report plan. + * @param reportPlanTags The tags to assign to your report plan. */ public fun reportPlanTags(reportPlanTags: List) /** - * @param reportPlanTags A list of tags to tag your report plan. + * @param reportPlanTags The tags to assign to your report plan. */ public fun reportPlanTags(vararg reportPlanTags: CfnTag) @@ -163,14 +163,14 @@ public interface CfnReportPlanProps { } /** - * @param reportPlanTags A list of tags to tag your report plan. + * @param reportPlanTags The tags to assign to your report plan. */ override fun reportPlanTags(reportPlanTags: List) { cdkBuilder.reportPlanTags(reportPlanTags.map(CfnTag::unwrap)) } /** - * @param reportPlanTags A list of tags to tag your report plan. + * @param reportPlanTags The tags to assign to your report plan. */ override fun reportPlanTags(vararg reportPlanTags: CfnTag): Unit = reportPlanTags(reportPlanTags.toList()) @@ -221,7 +221,7 @@ public interface CfnReportPlanProps { override fun reportPlanName(): String? = unwrap(this).getReportPlanName() /** - * A list of tags to tag your report plan. + * The tags to assign to your report plan. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-reportplan.html#cfn-backup-reportplan-reportplantags) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnRestoreTestingPlan.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnRestoreTestingPlan.kt index 94d8652c35..5db80cc458 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnRestoreTestingPlan.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnRestoreTestingPlan.kt @@ -22,12 +22,10 @@ import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct import software.constructs.Construct as SoftwareConstructsConstruct /** - * This is the first of two steps to create a restore testing plan; + * Creates a restore testing plan. * - * once this request is successful, finish the procedure with request CreateRestoreTestingSelection. - * - * You must include the parameter RestoreTestingPlan. You may optionally include CreatorRequestId - * and Tags. + * The first of two steps to create a restore testing plan. After this request is successful, finish + * the procedure using CreateRestoreTestingSelection. * * Example: * @@ -131,12 +129,12 @@ public open class CfnRestoreTestingPlan( Unit = recoveryPointSelection(RestoreTestingRecoveryPointSelectionProperty(`value`)) /** - * This is the restore testing plan name. + * The RestoreTestingPlanName is a unique string that is the name of the restore testing plan. */ public open fun restoreTestingPlanName(): String = unwrap(this).getRestoreTestingPlanName() /** - * This is the restore testing plan name. + * The RestoreTestingPlanName is a unique string that is the name of the restore testing plan. */ public open fun restoreTestingPlanName(`value`: String) { unwrap(this).setRestoreTestingPlanName(`value`) @@ -236,10 +234,14 @@ public open class CfnRestoreTestingPlan( fun recoveryPointSelection(recoveryPointSelection: RestoreTestingRecoveryPointSelectionProperty.Builder.() -> Unit) /** - * This is the restore testing plan name. + * The RestoreTestingPlanName is a unique string that is the name of the restore testing plan. + * + * This cannot be changed after creation, and it must consist of only alphanumeric characters + * and underscores. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-restoretestingplan.html#cfn-backup-restoretestingplan-restoretestingplanname) - * @param restoreTestingPlanName This is the restore testing plan name. + * @param restoreTestingPlanName The RestoreTestingPlanName is a unique string that is the name + * of the restore testing plan. */ public fun restoreTestingPlanName(restoreTestingPlanName: String) @@ -348,10 +350,14 @@ public open class CfnRestoreTestingPlan( recoveryPointSelection(RestoreTestingRecoveryPointSelectionProperty(recoveryPointSelection)) /** - * This is the restore testing plan name. + * The RestoreTestingPlanName is a unique string that is the name of the restore testing plan. + * + * This cannot be changed after creation, and it must consist of only alphanumeric characters + * and underscores. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-restoretestingplan.html#cfn-backup-restoretestingplan-restoretestingplanname) - * @param restoreTestingPlanName This is the restore testing plan name. + * @param restoreTestingPlanName The RestoreTestingPlanName is a unique string that is the name + * of the restore testing plan. */ override fun restoreTestingPlanName(restoreTestingPlanName: String) { cdkBuilder.restoreTestingPlanName(restoreTestingPlanName) @@ -447,10 +453,31 @@ public open class CfnRestoreTestingPlan( } /** - * Required: Algorithm; + * `RecoveryPointSelection` has five parameters (three required and two optional). + * + * The values you specify determine which recovery point is included in the restore test. You must + * indicate with `Algorithm` if you want the latest recovery point within your `SelectionWindowDays` + * or if you want a random recovery point, and you must indicate through `IncludeVaults` from which + * vaults the recovery points can be chosen. + * + * `Algorithm` ( *required* ) Valid values: " `LATEST_WITHIN_WINDOW` " or " `RANDOM_WITHIN_WINDOW` + * ". * - * Required: Recovery point types; IncludeVaults(one or more). Optional: SelectionWindowDays ('30' - * if not specified);ExcludeVaults (list of selectors), defaults to empty list if not listed. + * `Recovery point types` ( *required* ) Valid values: " `SNAPSHOT` " and/or " `CONTINUOUS` ". + * Include `SNAPSHOT` to restore only snapshot recovery points; include `CONTINUOUS` to restore + * continuous recovery points (point in time restore / PITR); use both to restore either a snapshot + * or a continuous recovery point. The recovery point will be determined by the value for `Algorithm` + * . + * + * `IncludeVaults` ( *required* ). You must include one or more backup vaults. Use the wildcard + * ["*"] or specific ARNs. + * + * `SelectionWindowDays` ( *optional* ) Value must be an integer (in days) from 1 to 365. If not + * included, the value defaults to `30` . + * + * `ExcludeVaults` ( *optional* ). You can choose to input one or more specific backup vault ARNs + * to exclude those vaults' contents from restore eligibility. Or, you can include a list of + * selectors. If this parameter and its value are not included, it defaults to empty list. * * Example: * @@ -500,6 +527,11 @@ public open class CfnRestoreTestingPlan( /** * These are the types of recovery points. * + * Include `SNAPSHOT` to restore only snapshot recovery points; include `CONTINUOUS` to restore + * continuous recovery points (point in time restore / PITR); use both to restore either a snapshot + * or a continuous recovery point. The recovery point will be determined by the value for + * `Algorithm` . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-restoretestingplan-restoretestingrecoverypointselection.html#cfn-backup-restoretestingplan-restoretestingrecoverypointselection-recoverypointtypes) */ public fun recoveryPointTypes(): List @@ -550,11 +582,19 @@ public open class CfnRestoreTestingPlan( /** * @param recoveryPointTypes These are the types of recovery points. + * Include `SNAPSHOT` to restore only snapshot recovery points; include `CONTINUOUS` to + * restore continuous recovery points (point in time restore / PITR); use both to restore either + * a snapshot or a continuous recovery point. The recovery point will be determined by the value + * for `Algorithm` . */ public fun recoveryPointTypes(recoveryPointTypes: List) /** * @param recoveryPointTypes These are the types of recovery points. + * Include `SNAPSHOT` to restore only snapshot recovery points; include `CONTINUOUS` to + * restore continuous recovery points (point in time restore / PITR); use both to restore either + * a snapshot or a continuous recovery point. The recovery point will be determined by the value + * for `Algorithm` . */ public fun recoveryPointTypes(vararg recoveryPointTypes: String) @@ -612,6 +652,10 @@ public open class CfnRestoreTestingPlan( /** * @param recoveryPointTypes These are the types of recovery points. + * Include `SNAPSHOT` to restore only snapshot recovery points; include `CONTINUOUS` to + * restore continuous recovery points (point in time restore / PITR); use both to restore either + * a snapshot or a continuous recovery point. The recovery point will be determined by the value + * for `Algorithm` . */ override fun recoveryPointTypes(recoveryPointTypes: List) { cdkBuilder.recoveryPointTypes(recoveryPointTypes) @@ -619,6 +663,10 @@ public open class CfnRestoreTestingPlan( /** * @param recoveryPointTypes These are the types of recovery points. + * Include `SNAPSHOT` to restore only snapshot recovery points; include `CONTINUOUS` to + * restore continuous recovery points (point in time restore / PITR); use both to restore either + * a snapshot or a continuous recovery point. The recovery point will be determined by the value + * for `Algorithm` . */ override fun recoveryPointTypes(vararg recoveryPointTypes: String): Unit = recoveryPointTypes(recoveryPointTypes.toList()) @@ -666,6 +714,11 @@ public open class CfnRestoreTestingPlan( /** * These are the types of recovery points. * + * Include `SNAPSHOT` to restore only snapshot recovery points; include `CONTINUOUS` to + * restore continuous recovery points (point in time restore / PITR); use both to restore either + * a snapshot or a continuous recovery point. The recovery point will be determined by the value + * for `Algorithm` . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-restoretestingplan-restoretestingrecoverypointselection.html#cfn-backup-restoretestingplan-restoretestingrecoverypointselection-recoverypointtypes) */ override fun recoveryPointTypes(): List = unwrap(this).getRecoveryPointTypes() diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnRestoreTestingPlanProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnRestoreTestingPlanProps.kt index 9283852cd4..5e55ab89ee 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnRestoreTestingPlanProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnRestoreTestingPlanProps.kt @@ -56,7 +56,10 @@ public interface CfnRestoreTestingPlanProps { public fun recoveryPointSelection(): Any /** - * This is the restore testing plan name. + * The RestoreTestingPlanName is a unique string that is the name of the restore testing plan. + * + * This cannot be changed after creation, and it must consist of only alphanumeric characters and + * underscores. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-restoretestingplan.html#cfn-backup-restoretestingplan-restoretestingplanname) */ @@ -128,7 +131,10 @@ public interface CfnRestoreTestingPlanProps { fun recoveryPointSelection(recoveryPointSelection: CfnRestoreTestingPlan.RestoreTestingRecoveryPointSelectionProperty.Builder.() -> Unit) /** - * @param restoreTestingPlanName This is the restore testing plan name. + * @param restoreTestingPlanName The RestoreTestingPlanName is a unique string that is the name + * of the restore testing plan. + * This cannot be changed after creation, and it must consist of only alphanumeric characters + * and underscores. */ public fun restoreTestingPlanName(restoreTestingPlanName: String) @@ -204,7 +210,10 @@ public interface CfnRestoreTestingPlanProps { recoveryPointSelection(CfnRestoreTestingPlan.RestoreTestingRecoveryPointSelectionProperty(recoveryPointSelection)) /** - * @param restoreTestingPlanName This is the restore testing plan name. + * @param restoreTestingPlanName The RestoreTestingPlanName is a unique string that is the name + * of the restore testing plan. + * This cannot be changed after creation, and it must consist of only alphanumeric characters + * and underscores. */ override fun restoreTestingPlanName(restoreTestingPlanName: String) { cdkBuilder.restoreTestingPlanName(restoreTestingPlanName) @@ -271,7 +280,10 @@ public interface CfnRestoreTestingPlanProps { override fun recoveryPointSelection(): Any = unwrap(this).getRecoveryPointSelection() /** - * This is the restore testing plan name. + * The RestoreTestingPlanName is a unique string that is the name of the restore testing plan. + * + * This cannot be changed after creation, and it must consist of only alphanumeric characters + * and underscores. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-restoretestingplan.html#cfn-backup-restoretestingplan-restoretestingplanname) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnRestoreTestingSelection.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnRestoreTestingSelection.kt index 46c54cb415..825eb9f3e2 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnRestoreTestingSelection.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnRestoreTestingSelection.kt @@ -204,27 +204,27 @@ public open class CfnRestoreTestingSelection( } /** - * The RestoreTestingPlanName is a unique string that is the name of the restore testing plan. + * Unique string that is the name of the restore testing plan. */ public open fun restoreTestingPlanName(): String = unwrap(this).getRestoreTestingPlanName() /** - * The RestoreTestingPlanName is a unique string that is the name of the restore testing plan. + * Unique string that is the name of the restore testing plan. */ public open fun restoreTestingPlanName(`value`: String) { unwrap(this).setRestoreTestingPlanName(`value`) } /** - * This is the unique name of the restore testing selection that belongs to the related restore - * testing plan. + * The unique name of the restore testing selection that belongs to the related restore testing + * plan. */ public open fun restoreTestingSelectionName(): String = unwrap(this).getRestoreTestingSelectionName() /** - * This is the unique name of the restore testing selection that belongs to the related restore - * testing plan. + * The unique name of the restore testing selection that belongs to the related restore testing + * plan. */ public open fun restoreTestingSelectionName(`value`: String) { unwrap(this).setRestoreTestingSelectionName(`value`) @@ -359,21 +359,23 @@ public open class CfnRestoreTestingSelection( public fun restoreMetadataOverrides(restoreMetadataOverrides: Map) /** - * The RestoreTestingPlanName is a unique string that is the name of the restore testing plan. + * Unique string that is the name of the restore testing plan. + * + * The name cannot be changed after creation. The name must consist of only alphanumeric + * characters and underscores. Maximum length is 50. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-restoretestingselection.html#cfn-backup-restoretestingselection-restoretestingplanname) - * @param restoreTestingPlanName The RestoreTestingPlanName is a unique string that is the name - * of the restore testing plan. + * @param restoreTestingPlanName Unique string that is the name of the restore testing plan. */ public fun restoreTestingPlanName(restoreTestingPlanName: String) /** - * This is the unique name of the restore testing selection that belongs to the related restore - * testing plan. + * The unique name of the restore testing selection that belongs to the related restore testing + * plan. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-restoretestingselection.html#cfn-backup-restoretestingselection-restoretestingselectionname) - * @param restoreTestingSelectionName This is the unique name of the restore testing selection - * that belongs to the related restore testing plan. + * @param restoreTestingSelectionName The unique name of the restore testing selection that + * belongs to the related restore testing plan. */ public fun restoreTestingSelectionName(restoreTestingSelectionName: String) @@ -527,23 +529,25 @@ public open class CfnRestoreTestingSelection( } /** - * The RestoreTestingPlanName is a unique string that is the name of the restore testing plan. + * Unique string that is the name of the restore testing plan. + * + * The name cannot be changed after creation. The name must consist of only alphanumeric + * characters and underscores. Maximum length is 50. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-restoretestingselection.html#cfn-backup-restoretestingselection-restoretestingplanname) - * @param restoreTestingPlanName The RestoreTestingPlanName is a unique string that is the name - * of the restore testing plan. + * @param restoreTestingPlanName Unique string that is the name of the restore testing plan. */ override fun restoreTestingPlanName(restoreTestingPlanName: String) { cdkBuilder.restoreTestingPlanName(restoreTestingPlanName) } /** - * This is the unique name of the restore testing selection that belongs to the related restore - * testing plan. + * The unique name of the restore testing selection that belongs to the related restore testing + * plan. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-restoretestingselection.html#cfn-backup-restoretestingselection-restoretestingselectionname) - * @param restoreTestingSelectionName This is the unique name of the restore testing selection - * that belongs to the related restore testing plan. + * @param restoreTestingSelectionName The unique name of the restore testing selection that + * belongs to the related restore testing plan. */ override fun restoreTestingSelectionName(restoreTestingSelectionName: String) { cdkBuilder.restoreTestingSelectionName(restoreTestingSelectionName) @@ -610,22 +614,14 @@ public open class CfnRestoreTestingSelection( */ public interface KeyValueProperty { /** - * The tag key (String). The key can't start with `aws:` . - * - * Length Constraints: Minimum length of 1. Maximum length of 128. - * - * Pattern: `^(?![aA]{1}[wW]{1}[sS]{1}:)([\p{L}\p{Z}\p{N}_.:/=+\-@]+)$` + * The tag key. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-restoretestingselection-keyvalue.html#cfn-backup-restoretestingselection-keyvalue-key) */ public fun key(): String /** - * The value of the key. - * - * Length Constraints: Maximum length of 256. - * - * Pattern: `^([\p{L}\p{Z}\p{N}_.:/=+\-@]*)$` + * The tag value. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-restoretestingselection-keyvalue.html#cfn-backup-restoretestingselection-keyvalue-value) */ @@ -637,18 +633,12 @@ public open class CfnRestoreTestingSelection( @CdkDslMarker public interface Builder { /** - * @param key The tag key (String). The key can't start with `aws:` . - * Length Constraints: Minimum length of 1. Maximum length of 128. - * - * Pattern: `^(?![aA]{1}[wW]{1}[sS]{1}:)([\p{L}\p{Z}\p{N}_.:/=+\-@]+)$` + * @param key The tag key. */ public fun key(key: String) /** - * @param value The value of the key. - * Length Constraints: Maximum length of 256. - * - * Pattern: `^([\p{L}\p{Z}\p{N}_.:/=+\-@]*)$` + * @param value The tag value. */ public fun `value`(`value`: String) } @@ -660,20 +650,14 @@ public open class CfnRestoreTestingSelection( software.amazon.awscdk.services.backup.CfnRestoreTestingSelection.KeyValueProperty.builder() /** - * @param key The tag key (String). The key can't start with `aws:` . - * Length Constraints: Minimum length of 1. Maximum length of 128. - * - * Pattern: `^(?![aA]{1}[wW]{1}[sS]{1}:)([\p{L}\p{Z}\p{N}_.:/=+\-@]+)$` + * @param key The tag key. */ override fun key(key: String) { cdkBuilder.key(key) } /** - * @param value The value of the key. - * Length Constraints: Maximum length of 256. - * - * Pattern: `^([\p{L}\p{Z}\p{N}_.:/=+\-@]*)$` + * @param value The tag value. */ override fun `value`(`value`: String) { cdkBuilder.`value`(`value`) @@ -688,22 +672,14 @@ public open class CfnRestoreTestingSelection( cdkObject: software.amazon.awscdk.services.backup.CfnRestoreTestingSelection.KeyValueProperty, ) : CdkObject(cdkObject), KeyValueProperty { /** - * The tag key (String). The key can't start with `aws:` . - * - * Length Constraints: Minimum length of 1. Maximum length of 128. - * - * Pattern: `^(?![aA]{1}[wW]{1}[sS]{1}:)([\p{L}\p{Z}\p{N}_.:/=+\-@]+)$` + * The tag key. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-restoretestingselection-keyvalue.html#cfn-backup-restoretestingselection-keyvalue-key) */ override fun key(): String = unwrap(this).getKey() /** - * The value of the key. - * - * Length Constraints: Maximum length of 256. - * - * Pattern: `^([\p{L}\p{Z}\p{N}_.:/=+\-@]*)$` + * The tag value. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-restoretestingselection-keyvalue.html#cfn-backup-restoretestingselection-keyvalue-value) */ @@ -729,7 +705,7 @@ public open class CfnRestoreTestingSelection( } /** - * A list of conditions that you define for resources in your restore testing plan using tags. + * The conditions that you define for resources in your restore testing plan using tags. * * For example, `"StringEquals": { "Key": "aws:ResourceTag/CreatedByCryo", "Value": "true" },` . * Condition operators are case sensitive. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnRestoreTestingSelectionProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnRestoreTestingSelectionProps.kt index bc799be0c6..4125113a01 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnRestoreTestingSelectionProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/backup/CfnRestoreTestingSelectionProps.kt @@ -101,15 +101,18 @@ public interface CfnRestoreTestingSelectionProps { public fun restoreMetadataOverrides(): Any? = unwrap(this).getRestoreMetadataOverrides() /** - * The RestoreTestingPlanName is a unique string that is the name of the restore testing plan. + * Unique string that is the name of the restore testing plan. + * + * The name cannot be changed after creation. The name must consist of only alphanumeric + * characters and underscores. Maximum length is 50. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-restoretestingselection.html#cfn-backup-restoretestingselection-restoretestingplanname) */ public fun restoreTestingPlanName(): String /** - * This is the unique name of the restore testing selection that belongs to the related restore - * testing plan. + * The unique name of the restore testing selection that belongs to the related restore testing + * plan. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-restoretestingselection.html#cfn-backup-restoretestingselection-restoretestingselectionname) */ @@ -203,14 +206,15 @@ public interface CfnRestoreTestingSelectionProps { public fun restoreMetadataOverrides(restoreMetadataOverrides: Map) /** - * @param restoreTestingPlanName The RestoreTestingPlanName is a unique string that is the name - * of the restore testing plan. + * @param restoreTestingPlanName Unique string that is the name of the restore testing plan. + * The name cannot be changed after creation. The name must consist of only alphanumeric + * characters and underscores. Maximum length is 50. */ public fun restoreTestingPlanName(restoreTestingPlanName: String) /** - * @param restoreTestingSelectionName This is the unique name of the restore testing selection - * that belongs to the related restore testing plan. + * @param restoreTestingSelectionName The unique name of the restore testing selection that + * belongs to the related restore testing plan. */ public fun restoreTestingSelectionName(restoreTestingSelectionName: String) @@ -318,16 +322,17 @@ public interface CfnRestoreTestingSelectionProps { } /** - * @param restoreTestingPlanName The RestoreTestingPlanName is a unique string that is the name - * of the restore testing plan. + * @param restoreTestingPlanName Unique string that is the name of the restore testing plan. + * The name cannot be changed after creation. The name must consist of only alphanumeric + * characters and underscores. Maximum length is 50. */ override fun restoreTestingPlanName(restoreTestingPlanName: String) { cdkBuilder.restoreTestingPlanName(restoreTestingPlanName) } /** - * @param restoreTestingSelectionName This is the unique name of the restore testing selection - * that belongs to the related restore testing plan. + * @param restoreTestingSelectionName The unique name of the restore testing selection that + * belongs to the related restore testing plan. */ override fun restoreTestingSelectionName(restoreTestingSelectionName: String) { cdkBuilder.restoreTestingSelectionName(restoreTestingSelectionName) @@ -401,15 +406,18 @@ public interface CfnRestoreTestingSelectionProps { override fun restoreMetadataOverrides(): Any? = unwrap(this).getRestoreMetadataOverrides() /** - * The RestoreTestingPlanName is a unique string that is the name of the restore testing plan. + * Unique string that is the name of the restore testing plan. + * + * The name cannot be changed after creation. The name must consist of only alphanumeric + * characters and underscores. Maximum length is 50. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-restoretestingselection.html#cfn-backup-restoretestingselection-restoretestingplanname) */ override fun restoreTestingPlanName(): String = unwrap(this).getRestoreTestingPlanName() /** - * This is the unique name of the restore testing selection that belongs to the related restore - * testing plan. + * The unique name of the restore testing selection that belongs to the related restore testing + * plan. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-restoretestingselection.html#cfn-backup-restoretestingselection-restoretestingselectionname) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/batch/CfnJobDefinition.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/batch/CfnJobDefinition.kt index e1e87ec74a..54bc4ecee1 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/batch/CfnJobDefinition.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/batch/CfnJobDefinition.kt @@ -87,26 +87,34 @@ public open class CfnJobDefinition( = containerProperties(ContainerPropertiesProperty(`value`)) /** - * + * An object that contains the properties for the Amazon ECS resources of a job.When + * `ecsProperties` is used in the job definition, it can't be used in addition to + * `containerProperties` , `eksProperties` , or `nodeProperties` . */ public open fun ecsProperties(): Any? = unwrap(this).getEcsProperties() /** - * + * An object that contains the properties for the Amazon ECS resources of a job.When + * `ecsProperties` is used in the job definition, it can't be used in addition to + * `containerProperties` , `eksProperties` , or `nodeProperties` . */ public open fun ecsProperties(`value`: IResolvable) { unwrap(this).setEcsProperties(`value`.let(IResolvable::unwrap)) } /** - * + * An object that contains the properties for the Amazon ECS resources of a job.When + * `ecsProperties` is used in the job definition, it can't be used in addition to + * `containerProperties` , `eksProperties` , or `nodeProperties` . */ public open fun ecsProperties(`value`: EcsPropertiesProperty) { unwrap(this).setEcsProperties(`value`.let(EcsPropertiesProperty::unwrap)) } /** - * + * An object that contains the properties for the Amazon ECS resources of a job.When + * `ecsProperties` is used in the job definition, it can't be used in addition to + * `containerProperties` , `eksProperties` , or `nodeProperties` . */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("09e3912d8371d4c53e08e94f5b2983eb4a125656a5323641df24890891d00ea9") @@ -378,20 +386,38 @@ public open class CfnJobDefinition( fun containerProperties(containerProperties: ContainerPropertiesProperty.Builder.() -> Unit) /** + * An object that contains the properties for the Amazon ECS resources of a job.When + * `ecsProperties` is used in the job definition, it can't be used in addition to + * `containerProperties` , `eksProperties` , or `nodeProperties` . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-ecsproperties) - * @param ecsProperties + * @param ecsProperties An object that contains the properties for the Amazon ECS resources of a + * job.When `ecsProperties` is used in the job definition, it can't be used in addition to + * `containerProperties` , `eksProperties` , or `nodeProperties` . */ public fun ecsProperties(ecsProperties: IResolvable) /** + * An object that contains the properties for the Amazon ECS resources of a job.When + * `ecsProperties` is used in the job definition, it can't be used in addition to + * `containerProperties` , `eksProperties` , or `nodeProperties` . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-ecsproperties) - * @param ecsProperties + * @param ecsProperties An object that contains the properties for the Amazon ECS resources of a + * job.When `ecsProperties` is used in the job definition, it can't be used in addition to + * `containerProperties` , `eksProperties` , or `nodeProperties` . */ public fun ecsProperties(ecsProperties: EcsPropertiesProperty) /** + * An object that contains the properties for the Amazon ECS resources of a job.When + * `ecsProperties` is used in the job definition, it can't be used in addition to + * `containerProperties` , `eksProperties` , or `nodeProperties` . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-ecsproperties) - * @param ecsProperties + * @param ecsProperties An object that contains the properties for the Amazon ECS resources of a + * job.When `ecsProperties` is used in the job definition, it can't be used in addition to + * `containerProperties` , `eksProperties` , or `nodeProperties` . */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("13805dc0544dd39ef2261e3377eb2aa144bc22e99667bbaff6b834e53aab3461") @@ -713,24 +739,42 @@ public open class CfnJobDefinition( Unit = containerProperties(ContainerPropertiesProperty(containerProperties)) /** + * An object that contains the properties for the Amazon ECS resources of a job.When + * `ecsProperties` is used in the job definition, it can't be used in addition to + * `containerProperties` , `eksProperties` , or `nodeProperties` . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-ecsproperties) - * @param ecsProperties + * @param ecsProperties An object that contains the properties for the Amazon ECS resources of a + * job.When `ecsProperties` is used in the job definition, it can't be used in addition to + * `containerProperties` , `eksProperties` , or `nodeProperties` . */ override fun ecsProperties(ecsProperties: IResolvable) { cdkBuilder.ecsProperties(ecsProperties.let(IResolvable::unwrap)) } /** + * An object that contains the properties for the Amazon ECS resources of a job.When + * `ecsProperties` is used in the job definition, it can't be used in addition to + * `containerProperties` , `eksProperties` , or `nodeProperties` . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-ecsproperties) - * @param ecsProperties + * @param ecsProperties An object that contains the properties for the Amazon ECS resources of a + * job.When `ecsProperties` is used in the job definition, it can't be used in addition to + * `containerProperties` , `eksProperties` , or `nodeProperties` . */ override fun ecsProperties(ecsProperties: EcsPropertiesProperty) { cdkBuilder.ecsProperties(ecsProperties.let(EcsPropertiesProperty::unwrap)) } /** + * An object that contains the properties for the Amazon ECS resources of a job.When + * `ecsProperties` is used in the job definition, it can't be used in addition to + * `containerProperties` , `eksProperties` , or `nodeProperties` . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-ecsproperties) - * @param ecsProperties + * @param ecsProperties An object that contains the properties for the Amazon ECS resources of a + * job.When `ecsProperties` is used in the job definition, it can't be used in addition to + * `containerProperties` , `eksProperties` , or `nodeProperties` . */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("13805dc0544dd39ef2261e3377eb2aa144bc22e99667bbaff6b834e53aab3461") @@ -3569,6 +3613,8 @@ public open class CfnJobDefinition( } /** + * An object that contains the properties for the Amazon ECS resources of a job. + * * Example: * * ``` @@ -3683,6 +3729,12 @@ public open class CfnJobDefinition( */ public interface EcsPropertiesProperty { /** + * An object that contains the properties for the Amazon ECS task definition of a job. + * + * + * This object is currently limited to one element. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecsproperties.html#cfn-batch-jobdefinition-ecsproperties-taskproperties) */ public fun taskProperties(): Any @@ -3693,17 +3745,26 @@ public open class CfnJobDefinition( @CdkDslMarker public interface Builder { /** - * @param taskProperties the value to be set. + * @param taskProperties An object that contains the properties for the Amazon ECS task + * definition of a job. + * + * This object is currently limited to one element. */ public fun taskProperties(taskProperties: IResolvable) /** - * @param taskProperties the value to be set. + * @param taskProperties An object that contains the properties for the Amazon ECS task + * definition of a job. + * + * This object is currently limited to one element. */ public fun taskProperties(taskProperties: List) /** - * @param taskProperties the value to be set. + * @param taskProperties An object that contains the properties for the Amazon ECS task + * definition of a job. + * + * This object is currently limited to one element. */ public fun taskProperties(vararg taskProperties: Any) } @@ -3714,21 +3775,30 @@ public open class CfnJobDefinition( software.amazon.awscdk.services.batch.CfnJobDefinition.EcsPropertiesProperty.builder() /** - * @param taskProperties the value to be set. + * @param taskProperties An object that contains the properties for the Amazon ECS task + * definition of a job. + * + * This object is currently limited to one element. */ override fun taskProperties(taskProperties: IResolvable) { cdkBuilder.taskProperties(taskProperties.let(IResolvable::unwrap)) } /** - * @param taskProperties the value to be set. + * @param taskProperties An object that contains the properties for the Amazon ECS task + * definition of a job. + * + * This object is currently limited to one element. */ override fun taskProperties(taskProperties: List) { cdkBuilder.taskProperties(taskProperties.map{CdkObjectWrappers.unwrap(it)}) } /** - * @param taskProperties the value to be set. + * @param taskProperties An object that contains the properties for the Amazon ECS task + * definition of a job. + * + * This object is currently limited to one element. */ override fun taskProperties(vararg taskProperties: Any): Unit = taskProperties(taskProperties.toList()) @@ -3742,6 +3812,12 @@ public open class CfnJobDefinition( cdkObject: software.amazon.awscdk.services.batch.CfnJobDefinition.EcsPropertiesProperty, ) : CdkObject(cdkObject), EcsPropertiesProperty { /** + * An object that contains the properties for the Amazon ECS task definition of a job. + * + * + * This object is currently limited to one element. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecsproperties.html#cfn-batch-jobdefinition-ecsproperties-taskproperties) */ override fun taskProperties(): Any = unwrap(this).getTaskProperties() @@ -3766,6 +3842,12 @@ public open class CfnJobDefinition( } /** + * The properties for a task definition that describes the container and volume definitions of an + * Amazon ECS task. + * + * You can specify which Docker images to use, the required resources, and other configurations + * related to launching the task definition through an Amazon ECS service or task. + * * Example: * * ``` @@ -3878,51 +3960,124 @@ public open class CfnJobDefinition( */ public interface EcsTaskPropertiesProperty { /** + * This object is a list of containers. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-containers) */ public fun containers(): Any? = unwrap(this).getContainers() /** + * The amount of ephemeral storage to allocate for the task. + * + * This parameter is used to expand the total amount of ephemeral storage available, beyond the + * default amount, for tasks hosted on AWS Fargate . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-ephemeralstorage) */ public fun ephemeralStorage(): Any? = unwrap(this).getEphemeralStorage() /** + * The Amazon Resource Name (ARN) of the execution role that AWS Batch can assume. + * + * For jobs that run on Fargate resources, you must provide an execution role. For more + * information, see [AWS Batch execution IAM + * role](https://docs.aws.amazon.com/batch/latest/userguide/execution-IAM-role.html) in the *AWS + * Batch User Guide* . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-executionrolearn) */ public fun executionRoleArn(): String? = unwrap(this).getExecutionRoleArn() /** + * The IPC resource namespace to use for the containers in the task. + * + * The valid values are `host` , `task` , or `none` . + * + * If `host` is specified, all containers within the tasks that specified the `host` IPC mode on + * the same container instance share the same IPC resources with the host Amazon EC2 instance. + * + * If `task` is specified, all containers within the specified `task` share the same IPC + * resources. + * + * If `none` is specified, the IPC resources within the containers of a task are private, and + * are not shared with other containers in a task or on the container instance. + * + * If no value is specified, then the IPC resource namespace sharing depends on the Docker + * daemon setting on the container instance. For more information, see [IPC + * settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) + * in the Docker run reference. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-ipcmode) */ public fun ipcMode(): String? = unwrap(this).getIpcMode() /** + * The network configuration for jobs that are running on Fargate resources. + * + * Jobs that are running on Amazon EC2 resources must not specify this parameter. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-networkconfiguration) */ public fun networkConfiguration(): Any? = unwrap(this).getNetworkConfiguration() /** + * The process namespace to use for the containers in the task. + * + * The valid values are `host` or `task` . For example, monitoring sidecars might need `pidMode` + * to access information about other containers running in the same task. + * + * If `host` is specified, all containers within the tasks that specified the `host` PID mode on + * the same container instance share the process namespace with the host Amazon EC2 instance. + * + * If `task` is specified, all containers within the specified task share the same process + * namespace. + * + * If no value is specified, the default is a private namespace for each container. For more + * information, see [PID + * settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid) + * in the Docker run reference. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-pidmode) */ public fun pidMode(): String? = unwrap(this).getPidMode() /** + * The Fargate platform version where the jobs are running. + * + * A platform version is specified only for jobs that are running on Fargate resources. If one + * isn't specified, the `LATEST` platform version is used by default. This uses a recent, approved + * version of the Fargate platform for compute resources. For more information, see [AWS Fargate + * platform + * versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) in + * the *Amazon Elastic Container Service Developer Guide* . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-platformversion) */ public fun platformVersion(): String? = unwrap(this).getPlatformVersion() /** + * An object that represents the compute environment architecture for AWS Batch jobs on Fargate. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-runtimeplatform) */ public fun runtimePlatform(): Any? = unwrap(this).getRuntimePlatform() /** + * The Amazon Resource Name (ARN) that's associated with the Amazon ECS task. + * + * + * This is object is comparable to + * [ContainerProperties:jobRoleArn](https://docs.aws.amazon.com/batch/latest/APIReference/API_ContainerProperties.html) + * . + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-taskrolearn) */ public fun taskRoleArn(): String? = unwrap(this).getTaskRoleArn() /** + * A list of volumes that are associated with the job. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-volumes) */ public fun volumes(): Any? = unwrap(this).getVolumes() @@ -3933,59 +4088,91 @@ public open class CfnJobDefinition( @CdkDslMarker public interface Builder { /** - * @param containers the value to be set. + * @param containers This object is a list of containers. */ public fun containers(containers: IResolvable) /** - * @param containers the value to be set. + * @param containers This object is a list of containers. */ public fun containers(containers: List) /** - * @param containers the value to be set. + * @param containers This object is a list of containers. */ public fun containers(vararg containers: Any) /** - * @param ephemeralStorage the value to be set. + * @param ephemeralStorage The amount of ephemeral storage to allocate for the task. + * This parameter is used to expand the total amount of ephemeral storage available, beyond + * the default amount, for tasks hosted on AWS Fargate . */ public fun ephemeralStorage(ephemeralStorage: IResolvable) /** - * @param ephemeralStorage the value to be set. + * @param ephemeralStorage The amount of ephemeral storage to allocate for the task. + * This parameter is used to expand the total amount of ephemeral storage available, beyond + * the default amount, for tasks hosted on AWS Fargate . */ public fun ephemeralStorage(ephemeralStorage: EphemeralStorageProperty) /** - * @param ephemeralStorage the value to be set. + * @param ephemeralStorage The amount of ephemeral storage to allocate for the task. + * This parameter is used to expand the total amount of ephemeral storage available, beyond + * the default amount, for tasks hosted on AWS Fargate . */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("8eefd7cb29595cfed78cd8ff38b8770d2eaef0a58e68ba2882a4ac4a0f9d5e93") public fun ephemeralStorage(ephemeralStorage: EphemeralStorageProperty.Builder.() -> Unit) /** - * @param executionRoleArn the value to be set. + * @param executionRoleArn The Amazon Resource Name (ARN) of the execution role that AWS Batch + * can assume. + * For jobs that run on Fargate resources, you must provide an execution role. For more + * information, see [AWS Batch execution IAM + * role](https://docs.aws.amazon.com/batch/latest/userguide/execution-IAM-role.html) in the *AWS + * Batch User Guide* . */ public fun executionRoleArn(executionRoleArn: String) /** - * @param ipcMode the value to be set. + * @param ipcMode The IPC resource namespace to use for the containers in the task. + * The valid values are `host` , `task` , or `none` . + * + * If `host` is specified, all containers within the tasks that specified the `host` IPC mode + * on the same container instance share the same IPC resources with the host Amazon EC2 instance. + * + * If `task` is specified, all containers within the specified `task` share the same IPC + * resources. + * + * If `none` is specified, the IPC resources within the containers of a task are private, and + * are not shared with other containers in a task or on the container instance. + * + * If no value is specified, then the IPC resource namespace sharing depends on the Docker + * daemon setting on the container instance. For more information, see [IPC + * settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) + * in the Docker run reference. */ public fun ipcMode(ipcMode: String) /** - * @param networkConfiguration the value to be set. + * @param networkConfiguration The network configuration for jobs that are running on Fargate + * resources. + * Jobs that are running on Amazon EC2 resources must not specify this parameter. */ public fun networkConfiguration(networkConfiguration: IResolvable) /** - * @param networkConfiguration the value to be set. + * @param networkConfiguration The network configuration for jobs that are running on Fargate + * resources. + * Jobs that are running on Amazon EC2 resources must not specify this parameter. */ public fun networkConfiguration(networkConfiguration: NetworkConfigurationProperty) /** - * @param networkConfiguration the value to be set. + * @param networkConfiguration The network configuration for jobs that are running on Fargate + * resources. + * Jobs that are running on Amazon EC2 resources must not specify this parameter. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("bff70e0dc28c6c36432aff7111c3b9d9e30c7ca1e52a66163d58c1461ffe08df") @@ -3993,49 +4180,76 @@ public open class CfnJobDefinition( fun networkConfiguration(networkConfiguration: NetworkConfigurationProperty.Builder.() -> Unit) /** - * @param pidMode the value to be set. + * @param pidMode The process namespace to use for the containers in the task. + * The valid values are `host` or `task` . For example, monitoring sidecars might need + * `pidMode` to access information about other containers running in the same task. + * + * If `host` is specified, all containers within the tasks that specified the `host` PID mode + * on the same container instance share the process namespace with the host Amazon EC2 instance. + * + * If `task` is specified, all containers within the specified task share the same process + * namespace. + * + * If no value is specified, the default is a private namespace for each container. For more + * information, see [PID + * settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid) + * in the Docker run reference. */ public fun pidMode(pidMode: String) /** - * @param platformVersion the value to be set. + * @param platformVersion The Fargate platform version where the jobs are running. + * A platform version is specified only for jobs that are running on Fargate resources. If one + * isn't specified, the `LATEST` platform version is used by default. This uses a recent, + * approved version of the Fargate platform for compute resources. For more information, see [AWS + * Fargate platform + * versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) + * in the *Amazon Elastic Container Service Developer Guide* . */ public fun platformVersion(platformVersion: String) /** - * @param runtimePlatform the value to be set. + * @param runtimePlatform An object that represents the compute environment architecture for + * AWS Batch jobs on Fargate. */ public fun runtimePlatform(runtimePlatform: IResolvable) /** - * @param runtimePlatform the value to be set. + * @param runtimePlatform An object that represents the compute environment architecture for + * AWS Batch jobs on Fargate. */ public fun runtimePlatform(runtimePlatform: RuntimePlatformProperty) /** - * @param runtimePlatform the value to be set. + * @param runtimePlatform An object that represents the compute environment architecture for + * AWS Batch jobs on Fargate. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("ed572a0ef01fcfabe74c077a255ddc880506d2f03176a9a8317fa977b05bb759") public fun runtimePlatform(runtimePlatform: RuntimePlatformProperty.Builder.() -> Unit) /** - * @param taskRoleArn the value to be set. + * @param taskRoleArn The Amazon Resource Name (ARN) that's associated with the Amazon ECS + * task. + * + * This is object is comparable to + * [ContainerProperties:jobRoleArn](https://docs.aws.amazon.com/batch/latest/APIReference/API_ContainerProperties.html) + * . */ public fun taskRoleArn(taskRoleArn: String) /** - * @param volumes the value to be set. + * @param volumes A list of volumes that are associated with the job. */ public fun volumes(volumes: IResolvable) /** - * @param volumes the value to be set. + * @param volumes A list of volumes that are associated with the job. */ public fun volumes(volumes: List) /** - * @param volumes the value to be set. + * @param volumes A list of volumes that are associated with the job. */ public fun volumes(vararg volumes: Any) } @@ -4046,40 +4260,46 @@ public open class CfnJobDefinition( software.amazon.awscdk.services.batch.CfnJobDefinition.EcsTaskPropertiesProperty.builder() /** - * @param containers the value to be set. + * @param containers This object is a list of containers. */ override fun containers(containers: IResolvable) { cdkBuilder.containers(containers.let(IResolvable::unwrap)) } /** - * @param containers the value to be set. + * @param containers This object is a list of containers. */ override fun containers(containers: List) { cdkBuilder.containers(containers.map{CdkObjectWrappers.unwrap(it)}) } /** - * @param containers the value to be set. + * @param containers This object is a list of containers. */ override fun containers(vararg containers: Any): Unit = containers(containers.toList()) /** - * @param ephemeralStorage the value to be set. + * @param ephemeralStorage The amount of ephemeral storage to allocate for the task. + * This parameter is used to expand the total amount of ephemeral storage available, beyond + * the default amount, for tasks hosted on AWS Fargate . */ override fun ephemeralStorage(ephemeralStorage: IResolvable) { cdkBuilder.ephemeralStorage(ephemeralStorage.let(IResolvable::unwrap)) } /** - * @param ephemeralStorage the value to be set. + * @param ephemeralStorage The amount of ephemeral storage to allocate for the task. + * This parameter is used to expand the total amount of ephemeral storage available, beyond + * the default amount, for tasks hosted on AWS Fargate . */ override fun ephemeralStorage(ephemeralStorage: EphemeralStorageProperty) { cdkBuilder.ephemeralStorage(ephemeralStorage.let(EphemeralStorageProperty::unwrap)) } /** - * @param ephemeralStorage the value to be set. + * @param ephemeralStorage The amount of ephemeral storage to allocate for the task. + * This parameter is used to expand the total amount of ephemeral storage available, beyond + * the default amount, for tasks hosted on AWS Fargate . */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("8eefd7cb29595cfed78cd8ff38b8770d2eaef0a58e68ba2882a4ac4a0f9d5e93") @@ -4087,35 +4307,61 @@ public open class CfnJobDefinition( Unit = ephemeralStorage(EphemeralStorageProperty(ephemeralStorage)) /** - * @param executionRoleArn the value to be set. + * @param executionRoleArn The Amazon Resource Name (ARN) of the execution role that AWS Batch + * can assume. + * For jobs that run on Fargate resources, you must provide an execution role. For more + * information, see [AWS Batch execution IAM + * role](https://docs.aws.amazon.com/batch/latest/userguide/execution-IAM-role.html) in the *AWS + * Batch User Guide* . */ override fun executionRoleArn(executionRoleArn: String) { cdkBuilder.executionRoleArn(executionRoleArn) } /** - * @param ipcMode the value to be set. + * @param ipcMode The IPC resource namespace to use for the containers in the task. + * The valid values are `host` , `task` , or `none` . + * + * If `host` is specified, all containers within the tasks that specified the `host` IPC mode + * on the same container instance share the same IPC resources with the host Amazon EC2 instance. + * + * If `task` is specified, all containers within the specified `task` share the same IPC + * resources. + * + * If `none` is specified, the IPC resources within the containers of a task are private, and + * are not shared with other containers in a task or on the container instance. + * + * If no value is specified, then the IPC resource namespace sharing depends on the Docker + * daemon setting on the container instance. For more information, see [IPC + * settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) + * in the Docker run reference. */ override fun ipcMode(ipcMode: String) { cdkBuilder.ipcMode(ipcMode) } /** - * @param networkConfiguration the value to be set. + * @param networkConfiguration The network configuration for jobs that are running on Fargate + * resources. + * Jobs that are running on Amazon EC2 resources must not specify this parameter. */ override fun networkConfiguration(networkConfiguration: IResolvable) { cdkBuilder.networkConfiguration(networkConfiguration.let(IResolvable::unwrap)) } /** - * @param networkConfiguration the value to be set. + * @param networkConfiguration The network configuration for jobs that are running on Fargate + * resources. + * Jobs that are running on Amazon EC2 resources must not specify this parameter. */ override fun networkConfiguration(networkConfiguration: NetworkConfigurationProperty) { cdkBuilder.networkConfiguration(networkConfiguration.let(NetworkConfigurationProperty::unwrap)) } /** - * @param networkConfiguration the value to be set. + * @param networkConfiguration The network configuration for jobs that are running on Fargate + * resources. + * Jobs that are running on Amazon EC2 resources must not specify this parameter. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("bff70e0dc28c6c36432aff7111c3b9d9e30c7ca1e52a66163d58c1461ffe08df") @@ -4124,35 +4370,57 @@ public open class CfnJobDefinition( Unit = networkConfiguration(NetworkConfigurationProperty(networkConfiguration)) /** - * @param pidMode the value to be set. + * @param pidMode The process namespace to use for the containers in the task. + * The valid values are `host` or `task` . For example, monitoring sidecars might need + * `pidMode` to access information about other containers running in the same task. + * + * If `host` is specified, all containers within the tasks that specified the `host` PID mode + * on the same container instance share the process namespace with the host Amazon EC2 instance. + * + * If `task` is specified, all containers within the specified task share the same process + * namespace. + * + * If no value is specified, the default is a private namespace for each container. For more + * information, see [PID + * settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid) + * in the Docker run reference. */ override fun pidMode(pidMode: String) { cdkBuilder.pidMode(pidMode) } /** - * @param platformVersion the value to be set. + * @param platformVersion The Fargate platform version where the jobs are running. + * A platform version is specified only for jobs that are running on Fargate resources. If one + * isn't specified, the `LATEST` platform version is used by default. This uses a recent, + * approved version of the Fargate platform for compute resources. For more information, see [AWS + * Fargate platform + * versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) + * in the *Amazon Elastic Container Service Developer Guide* . */ override fun platformVersion(platformVersion: String) { cdkBuilder.platformVersion(platformVersion) } /** - * @param runtimePlatform the value to be set. + * @param runtimePlatform An object that represents the compute environment architecture for + * AWS Batch jobs on Fargate. */ override fun runtimePlatform(runtimePlatform: IResolvable) { cdkBuilder.runtimePlatform(runtimePlatform.let(IResolvable::unwrap)) } /** - * @param runtimePlatform the value to be set. + * @param runtimePlatform An object that represents the compute environment architecture for + * AWS Batch jobs on Fargate. */ override fun runtimePlatform(runtimePlatform: RuntimePlatformProperty) { cdkBuilder.runtimePlatform(runtimePlatform.let(RuntimePlatformProperty::unwrap)) } /** - * @param runtimePlatform the value to be set. + * @param runtimePlatform An object that represents the compute environment architecture for + * AWS Batch jobs on Fargate. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("ed572a0ef01fcfabe74c077a255ddc880506d2f03176a9a8317fa977b05bb759") @@ -4160,28 +4428,33 @@ public open class CfnJobDefinition( Unit = runtimePlatform(RuntimePlatformProperty(runtimePlatform)) /** - * @param taskRoleArn the value to be set. + * @param taskRoleArn The Amazon Resource Name (ARN) that's associated with the Amazon ECS + * task. + * + * This is object is comparable to + * [ContainerProperties:jobRoleArn](https://docs.aws.amazon.com/batch/latest/APIReference/API_ContainerProperties.html) + * . */ override fun taskRoleArn(taskRoleArn: String) { cdkBuilder.taskRoleArn(taskRoleArn) } /** - * @param volumes the value to be set. + * @param volumes A list of volumes that are associated with the job. */ override fun volumes(volumes: IResolvable) { cdkBuilder.volumes(volumes.let(IResolvable::unwrap)) } /** - * @param volumes the value to be set. + * @param volumes A list of volumes that are associated with the job. */ override fun volumes(volumes: List) { cdkBuilder.volumes(volumes.map{CdkObjectWrappers.unwrap(it)}) } /** - * @param volumes the value to be set. + * @param volumes A list of volumes that are associated with the job. */ override fun volumes(vararg volumes: Any): Unit = volumes(volumes.toList()) @@ -4194,51 +4467,125 @@ public open class CfnJobDefinition( cdkObject: software.amazon.awscdk.services.batch.CfnJobDefinition.EcsTaskPropertiesProperty, ) : CdkObject(cdkObject), EcsTaskPropertiesProperty { /** + * This object is a list of containers. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-containers) */ override fun containers(): Any? = unwrap(this).getContainers() /** + * The amount of ephemeral storage to allocate for the task. + * + * This parameter is used to expand the total amount of ephemeral storage available, beyond + * the default amount, for tasks hosted on AWS Fargate . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-ephemeralstorage) */ override fun ephemeralStorage(): Any? = unwrap(this).getEphemeralStorage() /** + * The Amazon Resource Name (ARN) of the execution role that AWS Batch can assume. + * + * For jobs that run on Fargate resources, you must provide an execution role. For more + * information, see [AWS Batch execution IAM + * role](https://docs.aws.amazon.com/batch/latest/userguide/execution-IAM-role.html) in the *AWS + * Batch User Guide* . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-executionrolearn) */ override fun executionRoleArn(): String? = unwrap(this).getExecutionRoleArn() /** + * The IPC resource namespace to use for the containers in the task. + * + * The valid values are `host` , `task` , or `none` . + * + * If `host` is specified, all containers within the tasks that specified the `host` IPC mode + * on the same container instance share the same IPC resources with the host Amazon EC2 instance. + * + * If `task` is specified, all containers within the specified `task` share the same IPC + * resources. + * + * If `none` is specified, the IPC resources within the containers of a task are private, and + * are not shared with other containers in a task or on the container instance. + * + * If no value is specified, then the IPC resource namespace sharing depends on the Docker + * daemon setting on the container instance. For more information, see [IPC + * settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) + * in the Docker run reference. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-ipcmode) */ override fun ipcMode(): String? = unwrap(this).getIpcMode() /** + * The network configuration for jobs that are running on Fargate resources. + * + * Jobs that are running on Amazon EC2 resources must not specify this parameter. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-networkconfiguration) */ override fun networkConfiguration(): Any? = unwrap(this).getNetworkConfiguration() /** + * The process namespace to use for the containers in the task. + * + * The valid values are `host` or `task` . For example, monitoring sidecars might need + * `pidMode` to access information about other containers running in the same task. + * + * If `host` is specified, all containers within the tasks that specified the `host` PID mode + * on the same container instance share the process namespace with the host Amazon EC2 instance. + * + * If `task` is specified, all containers within the specified task share the same process + * namespace. + * + * If no value is specified, the default is a private namespace for each container. For more + * information, see [PID + * settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid) + * in the Docker run reference. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-pidmode) */ override fun pidMode(): String? = unwrap(this).getPidMode() /** + * The Fargate platform version where the jobs are running. + * + * A platform version is specified only for jobs that are running on Fargate resources. If one + * isn't specified, the `LATEST` platform version is used by default. This uses a recent, + * approved version of the Fargate platform for compute resources. For more information, see [AWS + * Fargate platform + * versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) + * in the *Amazon Elastic Container Service Developer Guide* . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-platformversion) */ override fun platformVersion(): String? = unwrap(this).getPlatformVersion() /** + * An object that represents the compute environment architecture for AWS Batch jobs on + * Fargate. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-runtimeplatform) */ override fun runtimePlatform(): Any? = unwrap(this).getRuntimePlatform() /** + * The Amazon Resource Name (ARN) that's associated with the Amazon ECS task. + * + * + * This is object is comparable to + * [ContainerProperties:jobRoleArn](https://docs.aws.amazon.com/batch/latest/APIReference/API_ContainerProperties.html) + * . + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-taskrolearn) */ override fun taskRoleArn(): String? = unwrap(this).getTaskRoleArn() /** + * A list of volumes that are associated with the job. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ecstaskproperties.html#cfn-batch-jobdefinition-ecstaskproperties-volumes) */ override fun volumes(): Any? = unwrap(this).getVolumes() @@ -4725,6 +5072,7 @@ public open class CfnJobDefinition( * .requests(requests) * .build()) * .securityContext(SecurityContextProperty.builder() + * .allowPrivilegeEscalation(false) * .privileged(false) * .readOnlyRootFilesystem(false) * .runAsGroup(123) @@ -5681,6 +6029,7 @@ public open class CfnJobDefinition( * .requests(requests) * .build()) * .securityContext(SecurityContextProperty.builder() + * .allowPrivilegeEscalation(false) * .privileged(false) * .readOnlyRootFilesystem(false) * .runAsGroup(123) @@ -5695,6 +6044,9 @@ public open class CfnJobDefinition( * .build())) * .dnsPolicy("dnsPolicy") * .hostNetwork(false) + * .imagePullSecrets(List.of(ImagePullSecretProperty.builder() + * .name("name") + * .build())) * .initContainers(List.of(EksContainerProperty.builder() * .image("image") * // the properties below are optional @@ -5712,6 +6064,7 @@ public open class CfnJobDefinition( * .requests(requests) * .build()) * .securityContext(SecurityContextProperty.builder() + * .allowPrivilegeEscalation(false) * .privileged(false) * .readOnlyRootFilesystem(false) * .runAsGroup(123) @@ -7034,8 +7387,10 @@ public open class CfnJobDefinition( } /** - * Linux-specific modifications that are applied to the container, such as details for device - * mappings. + * References a Kubernetes secret resource. + * + * This name of the secret must start and end with an alphanumeric character, is required to be + * lowercase, can include periods (.) and hyphens (-), and can't contain more than 253 characters. * * Example: * @@ -7043,63 +7398,151 @@ public open class CfnJobDefinition( * // The code below shows an example of how to instantiate this type. * // The values are placeholders you should change. * import io.cloudshiftdev.awscdk.services.batch.*; - * LinuxParametersProperty linuxParametersProperty = LinuxParametersProperty.builder() - * .devices(List.of(DeviceProperty.builder() - * .containerPath("containerPath") - * .hostPath("hostPath") - * .permissions(List.of("permissions")) - * .build())) - * .initProcessEnabled(false) - * .maxSwap(123) - * .sharedMemorySize(123) - * .swappiness(123) - * .tmpfs(List.of(TmpfsProperty.builder() - * .containerPath("containerPath") - * .size(123) - * // the properties below are optional - * .mountOptions(List.of("mountOptions")) - * .build())) + * ImagePullSecretProperty imagePullSecretProperty = ImagePullSecretProperty.builder() + * .name("name") * .build(); * ``` * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-linuxparameters.html) + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-imagepullsecret.html) */ - public interface LinuxParametersProperty { + public interface ImagePullSecretProperty { /** - * Any of the host devices to expose to the container. - * - * This parameter maps to `Devices` in the [Create a - * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/#create-a-container) - * section of the [Docker Remote - * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/) and the `--device` - * option to [docker - * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/) . - * + * Provides a unique identifier for the `ImagePullSecret` . * - * This parameter isn't applicable to jobs that are running on Fargate resources. Don't provide - * it for these jobs. + * This object is required when `EksPodProperties$imagePullSecrets` is used. * - * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-linuxparameters.html#cfn-batch-jobdefinition-linuxparameters-devices) + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-imagepullsecret.html#cfn-batch-jobdefinition-imagepullsecret-name) */ - public fun devices(): Any? = unwrap(this).getDevices() + public fun name(): String /** - * If true, run an `init` process inside the container that forwards signals and reaps - * processes. - * - * This parameter maps to the `--init` option to [docker - * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/) . This parameter - * requires version 1.25 of the Docker Remote API or greater on your container instance. To check - * the Docker Remote API version on your container instance, log in to your container instance and - * run the following command: `sudo docker version | grep "Server API version"` - * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-linuxparameters.html#cfn-batch-jobdefinition-linuxparameters-initprocessenabled) + * A builder for [ImagePullSecretProperty] */ - public fun initProcessEnabled(): Any? = unwrap(this).getInitProcessEnabled() - - /** - * The total amount of swap memory (in MiB) a container can use. + @CdkDslMarker + public interface Builder { + /** + * @param name Provides a unique identifier for the `ImagePullSecret` . + * This object is required when `EksPodProperties$imagePullSecrets` is used. + */ + public fun name(name: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.batch.CfnJobDefinition.ImagePullSecretProperty.Builder = + software.amazon.awscdk.services.batch.CfnJobDefinition.ImagePullSecretProperty.builder() + + /** + * @param name Provides a unique identifier for the `ImagePullSecret` . + * This object is required when `EksPodProperties$imagePullSecrets` is used. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + public fun build(): + software.amazon.awscdk.services.batch.CfnJobDefinition.ImagePullSecretProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.batch.CfnJobDefinition.ImagePullSecretProperty, + ) : CdkObject(cdkObject), ImagePullSecretProperty { + /** + * Provides a unique identifier for the `ImagePullSecret` . + * + * This object is required when `EksPodProperties$imagePullSecrets` is used. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-imagepullsecret.html#cfn-batch-jobdefinition-imagepullsecret-name) + */ + override fun name(): String = unwrap(this).getName() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): ImagePullSecretProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.batch.CfnJobDefinition.ImagePullSecretProperty): + ImagePullSecretProperty = CdkObjectWrappers.wrap(cdkObject) as? ImagePullSecretProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: ImagePullSecretProperty): + software.amazon.awscdk.services.batch.CfnJobDefinition.ImagePullSecretProperty = (wrapped + as CdkObject).cdkObject as + software.amazon.awscdk.services.batch.CfnJobDefinition.ImagePullSecretProperty + } + } + + /** + * Linux-specific modifications that are applied to the container, such as details for device + * mappings. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.batch.*; + * LinuxParametersProperty linuxParametersProperty = LinuxParametersProperty.builder() + * .devices(List.of(DeviceProperty.builder() + * .containerPath("containerPath") + * .hostPath("hostPath") + * .permissions(List.of("permissions")) + * .build())) + * .initProcessEnabled(false) + * .maxSwap(123) + * .sharedMemorySize(123) + * .swappiness(123) + * .tmpfs(List.of(TmpfsProperty.builder() + * .containerPath("containerPath") + * .size(123) + * // the properties below are optional + * .mountOptions(List.of("mountOptions")) + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-linuxparameters.html) + */ + public interface LinuxParametersProperty { + /** + * Any of the host devices to expose to the container. + * + * This parameter maps to `Devices` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/#create-a-container) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/) and the `--device` + * option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/) . + * + * + * This parameter isn't applicable to jobs that are running on Fargate resources. Don't provide + * it for these jobs. + * + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-linuxparameters.html#cfn-batch-jobdefinition-linuxparameters-devices) + */ + public fun devices(): Any? = unwrap(this).getDevices() + + /** + * If true, run an `init` process inside the container that forwards signals and reaps + * processes. + * + * This parameter maps to the `--init` option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/) . This parameter + * requires version 1.25 of the Docker Remote API or greater on your container instance. To check + * the Docker Remote API version on your container instance, log in to your container instance and + * run the following command: `sudo docker version | grep "Server API version"` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-linuxparameters.html#cfn-batch-jobdefinition-linuxparameters-initprocessenabled) + */ + public fun initProcessEnabled(): Any? = unwrap(this).getInitProcessEnabled() + + /** + * The total amount of swap memory (in MiB) a container can use. * * This parameter is translated to the `--memory-swap` option to [docker * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/) where the value @@ -9111,11 +9554,22 @@ public open class CfnJobDefinition( public fun container(): Any? = unwrap(this).getContainer() /** + * This is an object that represents the properties of the node range for a multi-node parallel + * job. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-noderangeproperty.html#cfn-batch-jobdefinition-noderangeproperty-ecsproperties) */ public fun ecsProperties(): Any? = unwrap(this).getEcsProperties() /** + * The instance types of the underlying host infrastructure of a multi-node parallel job. + * + * + * This parameter isn't applicable to jobs that are running on Fargate resources. + * + * In addition, this list object is currently limited to one element. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-noderangeproperty.html#cfn-batch-jobdefinition-noderangeproperty-instancetypes) */ public fun instanceTypes(): List = unwrap(this).getInstanceTypes() ?: emptyList() @@ -9157,29 +9611,42 @@ public open class CfnJobDefinition( public fun container(container: ContainerPropertiesProperty.Builder.() -> Unit) /** - * @param ecsProperties the value to be set. + * @param ecsProperties This is an object that represents the properties of the node range for + * a multi-node parallel job. */ public fun ecsProperties(ecsProperties: IResolvable) /** - * @param ecsProperties the value to be set. + * @param ecsProperties This is an object that represents the properties of the node range for + * a multi-node parallel job. */ public fun ecsProperties(ecsProperties: EcsPropertiesProperty) /** - * @param ecsProperties the value to be set. + * @param ecsProperties This is an object that represents the properties of the node range for + * a multi-node parallel job. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("66d8ff9e0f4f24b1d9c32aa5170dfcbcdf49c358ce50e8c393906952bbdddbcf") public fun ecsProperties(ecsProperties: EcsPropertiesProperty.Builder.() -> Unit) /** - * @param instanceTypes the value to be set. + * @param instanceTypes The instance types of the underlying host infrastructure of a + * multi-node parallel job. + * + * This parameter isn't applicable to jobs that are running on Fargate resources. + * + * In addition, this list object is currently limited to one element. */ public fun instanceTypes(instanceTypes: List) /** - * @param instanceTypes the value to be set. + * @param instanceTypes The instance types of the underlying host infrastructure of a + * multi-node parallel job. + * + * This parameter isn't applicable to jobs that are running on Fargate resources. + * + * In addition, this list object is currently limited to one element. */ public fun instanceTypes(vararg instanceTypes: String) @@ -9223,21 +9690,24 @@ public open class CfnJobDefinition( container(ContainerPropertiesProperty(container)) /** - * @param ecsProperties the value to be set. + * @param ecsProperties This is an object that represents the properties of the node range for + * a multi-node parallel job. */ override fun ecsProperties(ecsProperties: IResolvable) { cdkBuilder.ecsProperties(ecsProperties.let(IResolvable::unwrap)) } /** - * @param ecsProperties the value to be set. + * @param ecsProperties This is an object that represents the properties of the node range for + * a multi-node parallel job. */ override fun ecsProperties(ecsProperties: EcsPropertiesProperty) { cdkBuilder.ecsProperties(ecsProperties.let(EcsPropertiesProperty::unwrap)) } /** - * @param ecsProperties the value to be set. + * @param ecsProperties This is an object that represents the properties of the node range for + * a multi-node parallel job. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("66d8ff9e0f4f24b1d9c32aa5170dfcbcdf49c358ce50e8c393906952bbdddbcf") @@ -9245,14 +9715,24 @@ public open class CfnJobDefinition( ecsProperties(EcsPropertiesProperty(ecsProperties)) /** - * @param instanceTypes the value to be set. + * @param instanceTypes The instance types of the underlying host infrastructure of a + * multi-node parallel job. + * + * This parameter isn't applicable to jobs that are running on Fargate resources. + * + * In addition, this list object is currently limited to one element. */ override fun instanceTypes(instanceTypes: List) { cdkBuilder.instanceTypes(instanceTypes) } /** - * @param instanceTypes the value to be set. + * @param instanceTypes The instance types of the underlying host infrastructure of a + * multi-node parallel job. + * + * This parameter isn't applicable to jobs that are running on Fargate resources. + * + * In addition, this list object is currently limited to one element. */ override fun instanceTypes(vararg instanceTypes: String): Unit = instanceTypes(instanceTypes.toList()) @@ -9286,11 +9766,22 @@ public open class CfnJobDefinition( override fun container(): Any? = unwrap(this).getContainer() /** + * This is an object that represents the properties of the node range for a multi-node + * parallel job. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-noderangeproperty.html#cfn-batch-jobdefinition-noderangeproperty-ecsproperties) */ override fun ecsProperties(): Any? = unwrap(this).getEcsProperties() /** + * The instance types of the underlying host infrastructure of a multi-node parallel job. + * + * + * This parameter isn't applicable to jobs that are running on Fargate resources. + * + * In addition, this list object is currently limited to one element. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-noderangeproperty.html#cfn-batch-jobdefinition-noderangeproperty-instancetypes) */ override fun instanceTypes(): List = unwrap(this).getInstanceTypes() ?: emptyList() @@ -9358,6 +9849,7 @@ public open class CfnJobDefinition( * .requests(requests) * .build()) * .securityContext(SecurityContextProperty.builder() + * .allowPrivilegeEscalation(false) * .privileged(false) * .readOnlyRootFilesystem(false) * .runAsGroup(123) @@ -9372,6 +9864,9 @@ public open class CfnJobDefinition( * .build())) * .dnsPolicy("dnsPolicy") * .hostNetwork(false) + * .imagePullSecrets(List.of(ImagePullSecretProperty.builder() + * .name("name") + * .build())) * .initContainers(List.of(EksContainerProperty.builder() * .image("image") * // the properties below are optional @@ -9389,6 +9884,7 @@ public open class CfnJobDefinition( * .requests(requests) * .build()) * .securityContext(SecurityContextProperty.builder() + * .allowPrivilegeEscalation(false) * .privileged(false) * .readOnlyRootFilesystem(false) * .runAsGroup(123) @@ -9467,6 +9963,23 @@ public open class CfnJobDefinition( public fun hostNetwork(): Any? = unwrap(this).getHostNetwork() /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-podproperties.html#cfn-batch-jobdefinition-podproperties-imagepullsecrets) + */ + public fun imagePullSecrets(): Any? = unwrap(this).getImagePullSecrets() + + /** + * These containers run before application containers, always runs to completion, and must + * complete successfully before the next container starts. + * + * These containers are registered with the Amazon EKS Connector agent and persists the + * registration information in the Kubernetes backend data store. For more information, see [Init + * Containers](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) + * in the *Kubernetes documentation* . + * + * + * This object is limited to 10 elements + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-podproperties.html#cfn-batch-jobdefinition-podproperties-initcontainers) */ public fun initContainers(): Any? = unwrap(this).getInitContainers() @@ -9498,6 +10011,13 @@ public open class CfnJobDefinition( public fun serviceAccountName(): String? = unwrap(this).getServiceAccountName() /** + * Indicates if the processes in a container are shared, or visible, to other containers in the + * same pod. + * + * For more information, see [Share Process Namespace between Containers in a + * Pod](https://docs.aws.amazon.com/https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/) + * . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-podproperties.html#cfn-batch-jobdefinition-podproperties-shareprocessnamespace) */ public fun shareProcessNamespace(): Any? = unwrap(this).getShareProcessNamespace() @@ -9567,17 +10087,56 @@ public open class CfnJobDefinition( public fun hostNetwork(hostNetwork: IResolvable) /** - * @param initContainers the value to be set. + * @param imagePullSecrets the value to be set. + */ + public fun imagePullSecrets(imagePullSecrets: IResolvable) + + /** + * @param imagePullSecrets the value to be set. + */ + public fun imagePullSecrets(imagePullSecrets: List) + + /** + * @param imagePullSecrets the value to be set. + */ + public fun imagePullSecrets(vararg imagePullSecrets: Any) + + /** + * @param initContainers These containers run before application containers, always runs to + * completion, and must complete successfully before the next container starts. + * These containers are registered with the Amazon EKS Connector agent and persists the + * registration information in the Kubernetes backend data store. For more information, see [Init + * Containers](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) + * in the *Kubernetes documentation* . + * + * + * This object is limited to 10 elements */ public fun initContainers(initContainers: IResolvable) /** - * @param initContainers the value to be set. + * @param initContainers These containers run before application containers, always runs to + * completion, and must complete successfully before the next container starts. + * These containers are registered with the Amazon EKS Connector agent and persists the + * registration information in the Kubernetes backend data store. For more information, see [Init + * Containers](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) + * in the *Kubernetes documentation* . + * + * + * This object is limited to 10 elements */ public fun initContainers(initContainers: List) /** - * @param initContainers the value to be set. + * @param initContainers These containers run before application containers, always runs to + * completion, and must complete successfully before the next container starts. + * These containers are registered with the Amazon EKS Connector agent and persists the + * registration information in the Kubernetes backend data store. For more information, see [Init + * Containers](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) + * in the *Kubernetes documentation* . + * + * + * This object is limited to 10 elements */ public fun initContainers(vararg initContainers: Any) @@ -9620,12 +10179,20 @@ public open class CfnJobDefinition( public fun serviceAccountName(serviceAccountName: String) /** - * @param shareProcessNamespace the value to be set. + * @param shareProcessNamespace Indicates if the processes in a container are shared, or + * visible, to other containers in the same pod. + * For more information, see [Share Process Namespace between Containers in a + * Pod](https://docs.aws.amazon.com/https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/) + * . */ public fun shareProcessNamespace(shareProcessNamespace: Boolean) /** - * @param shareProcessNamespace the value to be set. + * @param shareProcessNamespace Indicates if the processes in a container are shared, or + * visible, to other containers in the same pod. + * For more information, see [Share Process Namespace between Containers in a + * Pod](https://docs.aws.amazon.com/https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/) + * . */ public fun shareProcessNamespace(shareProcessNamespace: IResolvable) @@ -9713,21 +10280,65 @@ public open class CfnJobDefinition( } /** - * @param initContainers the value to be set. + * @param imagePullSecrets the value to be set. + */ + override fun imagePullSecrets(imagePullSecrets: IResolvable) { + cdkBuilder.imagePullSecrets(imagePullSecrets.let(IResolvable::unwrap)) + } + + /** + * @param imagePullSecrets the value to be set. + */ + override fun imagePullSecrets(imagePullSecrets: List) { + cdkBuilder.imagePullSecrets(imagePullSecrets.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param imagePullSecrets the value to be set. + */ + override fun imagePullSecrets(vararg imagePullSecrets: Any): Unit = + imagePullSecrets(imagePullSecrets.toList()) + + /** + * @param initContainers These containers run before application containers, always runs to + * completion, and must complete successfully before the next container starts. + * These containers are registered with the Amazon EKS Connector agent and persists the + * registration information in the Kubernetes backend data store. For more information, see [Init + * Containers](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) + * in the *Kubernetes documentation* . + * + * + * This object is limited to 10 elements */ override fun initContainers(initContainers: IResolvable) { cdkBuilder.initContainers(initContainers.let(IResolvable::unwrap)) } /** - * @param initContainers the value to be set. + * @param initContainers These containers run before application containers, always runs to + * completion, and must complete successfully before the next container starts. + * These containers are registered with the Amazon EKS Connector agent and persists the + * registration information in the Kubernetes backend data store. For more information, see [Init + * Containers](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) + * in the *Kubernetes documentation* . + * + * + * This object is limited to 10 elements */ override fun initContainers(initContainers: List) { cdkBuilder.initContainers(initContainers.map{CdkObjectWrappers.unwrap(it)}) } /** - * @param initContainers the value to be set. + * @param initContainers These containers run before application containers, always runs to + * completion, and must complete successfully before the next container starts. + * These containers are registered with the Amazon EKS Connector agent and persists the + * registration information in the Kubernetes backend data store. For more information, see [Init + * Containers](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) + * in the *Kubernetes documentation* . + * + * + * This object is limited to 10 elements */ override fun initContainers(vararg initContainers: Any): Unit = initContainers(initContainers.toList()) @@ -9778,14 +10389,22 @@ public open class CfnJobDefinition( } /** - * @param shareProcessNamespace the value to be set. + * @param shareProcessNamespace Indicates if the processes in a container are shared, or + * visible, to other containers in the same pod. + * For more information, see [Share Process Namespace between Containers in a + * Pod](https://docs.aws.amazon.com/https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/) + * . */ override fun shareProcessNamespace(shareProcessNamespace: Boolean) { cdkBuilder.shareProcessNamespace(shareProcessNamespace) } /** - * @param shareProcessNamespace the value to be set. + * @param shareProcessNamespace Indicates if the processes in a container are shared, or + * visible, to other containers in the same pod. + * For more information, see [Share Process Namespace between Containers in a + * Pod](https://docs.aws.amazon.com/https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/) + * . */ override fun shareProcessNamespace(shareProcessNamespace: IResolvable) { cdkBuilder.shareProcessNamespace(shareProcessNamespace.let(IResolvable::unwrap)) @@ -9857,6 +10476,23 @@ public open class CfnJobDefinition( override fun hostNetwork(): Any? = unwrap(this).getHostNetwork() /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-podproperties.html#cfn-batch-jobdefinition-podproperties-imagepullsecrets) + */ + override fun imagePullSecrets(): Any? = unwrap(this).getImagePullSecrets() + + /** + * These containers run before application containers, always runs to completion, and must + * complete successfully before the next container starts. + * + * These containers are registered with the Amazon EKS Connector agent and persists the + * registration information in the Kubernetes backend data store. For more information, see [Init + * Containers](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) + * in the *Kubernetes documentation* . + * + * + * This object is limited to 10 elements + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-podproperties.html#cfn-batch-jobdefinition-podproperties-initcontainers) */ override fun initContainers(): Any? = unwrap(this).getInitContainers() @@ -9888,6 +10524,13 @@ public open class CfnJobDefinition( override fun serviceAccountName(): String? = unwrap(this).getServiceAccountName() /** + * Indicates if the processes in a container are shared, or visible, to other containers in + * the same pod. + * + * For more information, see [Share Process Namespace between Containers in a + * Pod](https://docs.aws.amazon.com/https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/) + * . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-podproperties.html#cfn-batch-jobdefinition-podproperties-shareprocessnamespace) */ override fun shareProcessNamespace(): Any? = unwrap(this).getShareProcessNamespace() @@ -11097,6 +11740,7 @@ public open class CfnJobDefinition( * // The values are placeholders you should change. * import io.cloudshiftdev.awscdk.services.batch.*; * SecurityContextProperty securityContextProperty = SecurityContextProperty.builder() + * .allowPrivilegeEscalation(false) * .privileged(false) * .readOnlyRootFilesystem(false) * .runAsGroup(123) @@ -11108,6 +11752,11 @@ public open class CfnJobDefinition( * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-securitycontext.html) */ public interface SecurityContextProperty { + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-securitycontext.html#cfn-batch-jobdefinition-securitycontext-allowprivilegeescalation) + */ + public fun allowPrivilegeEscalation(): Any? = unwrap(this).getAllowPrivilegeEscalation() + /** * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-securitycontext.html#cfn-batch-jobdefinition-securitycontext-privileged) */ @@ -11138,6 +11787,16 @@ public open class CfnJobDefinition( */ @CdkDslMarker public interface Builder { + /** + * @param allowPrivilegeEscalation the value to be set. + */ + public fun allowPrivilegeEscalation(allowPrivilegeEscalation: Boolean) + + /** + * @param allowPrivilegeEscalation the value to be set. + */ + public fun allowPrivilegeEscalation(allowPrivilegeEscalation: IResolvable) + /** * @param privileged the value to be set. */ @@ -11184,6 +11843,20 @@ public open class CfnJobDefinition( software.amazon.awscdk.services.batch.CfnJobDefinition.SecurityContextProperty.Builder = software.amazon.awscdk.services.batch.CfnJobDefinition.SecurityContextProperty.builder() + /** + * @param allowPrivilegeEscalation the value to be set. + */ + override fun allowPrivilegeEscalation(allowPrivilegeEscalation: Boolean) { + cdkBuilder.allowPrivilegeEscalation(allowPrivilegeEscalation) + } + + /** + * @param allowPrivilegeEscalation the value to be set. + */ + override fun allowPrivilegeEscalation(allowPrivilegeEscalation: IResolvable) { + cdkBuilder.allowPrivilegeEscalation(allowPrivilegeEscalation.let(IResolvable::unwrap)) + } + /** * @param privileged the value to be set. */ @@ -11248,6 +11921,11 @@ public open class CfnJobDefinition( private class Wrapper( cdkObject: software.amazon.awscdk.services.batch.CfnJobDefinition.SecurityContextProperty, ) : CdkObject(cdkObject), SecurityContextProperty { + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-securitycontext.html#cfn-batch-jobdefinition-securitycontext-allowprivilegeescalation) + */ + override fun allowPrivilegeEscalation(): Any? = unwrap(this).getAllowPrivilegeEscalation() + /** * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-securitycontext.html#cfn-batch-jobdefinition-securitycontext-privileged) */ @@ -11293,6 +11971,8 @@ public open class CfnJobDefinition( } /** + * A list of containers that this task depends on. + * * Example: * * ``` @@ -11310,11 +11990,24 @@ public open class CfnJobDefinition( */ public interface TaskContainerDependencyProperty { /** + * The dependency condition of the container. The following are the available conditions and + * their behavior:. + * + * * `START` - This condition emulates the behavior of links and volumes today. It validates + * that a dependent container is started before permitting other containers to start. + * * `COMPLETE` - This condition validates that a dependent container runs to completion (exits) + * before permitting other containers to start. This can be useful for nonessential containers that + * run a script and then exit. This condition can't be set on an essential container. + * * `SUCCESS` - This condition is the same as `COMPLETE` , but it also requires that the + * container exits with a zero status. This condition can't be set on an essential container. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerdependency.html#cfn-batch-jobdefinition-taskcontainerdependency-condition) */ public fun condition(): String /** + * A unique identifier for the container. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerdependency.html#cfn-batch-jobdefinition-taskcontainerdependency-containername) */ public fun containerName(): String @@ -11325,12 +12018,21 @@ public open class CfnJobDefinition( @CdkDslMarker public interface Builder { /** - * @param condition the value to be set. + * @param condition The dependency condition of the container. The following are the available + * conditions and their behavior:. + * * `START` - This condition emulates the behavior of links and volumes today. It validates + * that a dependent container is started before permitting other containers to start. + * * `COMPLETE` - This condition validates that a dependent container runs to completion + * (exits) before permitting other containers to start. This can be useful for nonessential + * containers that run a script and then exit. This condition can't be set on an essential + * container. + * * `SUCCESS` - This condition is the same as `COMPLETE` , but it also requires that the + * container exits with a zero status. This condition can't be set on an essential container. */ public fun condition(condition: String) /** - * @param containerName the value to be set. + * @param containerName A unique identifier for the container. */ public fun containerName(containerName: String) } @@ -11342,14 +12044,23 @@ public open class CfnJobDefinition( software.amazon.awscdk.services.batch.CfnJobDefinition.TaskContainerDependencyProperty.builder() /** - * @param condition the value to be set. + * @param condition The dependency condition of the container. The following are the available + * conditions and their behavior:. + * * `START` - This condition emulates the behavior of links and volumes today. It validates + * that a dependent container is started before permitting other containers to start. + * * `COMPLETE` - This condition validates that a dependent container runs to completion + * (exits) before permitting other containers to start. This can be useful for nonessential + * containers that run a script and then exit. This condition can't be set on an essential + * container. + * * `SUCCESS` - This condition is the same as `COMPLETE` , but it also requires that the + * container exits with a zero status. This condition can't be set on an essential container. */ override fun condition(condition: String) { cdkBuilder.condition(condition) } /** - * @param containerName the value to be set. + * @param containerName A unique identifier for the container. */ override fun containerName(containerName: String) { cdkBuilder.containerName(containerName) @@ -11364,11 +12075,25 @@ public open class CfnJobDefinition( cdkObject: software.amazon.awscdk.services.batch.CfnJobDefinition.TaskContainerDependencyProperty, ) : CdkObject(cdkObject), TaskContainerDependencyProperty { /** + * The dependency condition of the container. The following are the available conditions and + * their behavior:. + * + * * `START` - This condition emulates the behavior of links and volumes today. It validates + * that a dependent container is started before permitting other containers to start. + * * `COMPLETE` - This condition validates that a dependent container runs to completion + * (exits) before permitting other containers to start. This can be useful for nonessential + * containers that run a script and then exit. This condition can't be set on an essential + * container. + * * `SUCCESS` - This condition is the same as `COMPLETE` , but it also requires that the + * container exits with a zero status. This condition can't be set on an essential container. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerdependency.html#cfn-batch-jobdefinition-taskcontainerdependency-condition) */ override fun condition(): String = unwrap(this).getCondition() /** + * A unique identifier for the container. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerdependency.html#cfn-batch-jobdefinition-taskcontainerdependency-containername) */ override fun containerName(): String = unwrap(this).getContainerName() @@ -11393,6 +12118,10 @@ public open class CfnJobDefinition( } /** + * Container properties are used for Amazon ECS-based job definitions. + * + * These properties to describe the container that's launched as part of a job. + * * Example: * * ``` @@ -11472,81 +12201,292 @@ public open class CfnJobDefinition( */ public interface TaskContainerPropertiesProperty { /** + * The command that's passed to the container. + * + * This parameter maps to `Cmd` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/#create-a-container) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/) and the `COMMAND` + * parameter to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/) . For more + * information, see [Dockerfile reference: + * CMD](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/builder/#cmd) . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-command) */ public fun command(): List = unwrap(this).getCommand() ?: emptyList() /** + * A list of containers that this container depends on. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-dependson) */ public fun dependsOn(): Any? = unwrap(this).getDependsOn() /** + * The environment variables to pass to a container. + * + * This parameter maps to Env inthe [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/#create-a-container) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/) and the `--env` + * parameter to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/) . + * + * + * We don't recommend using plaintext environment variables for sensitive information, such as + * credential data. > Environment variables cannot start with `AWS_BATCH` . This naming + * convention is reserved for variables that AWS Batch sets. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-environment) */ public fun environment(): Any? = unwrap(this).getEnvironment() /** + * If the essential parameter of a container is marked as `true` , and that container fails or + * stops for any reason, all other containers that are part of the task are stopped. + * + * If the `essential` parameter of a container is marked as false, its failure doesn't affect + * the rest of the containers in a task. If this parameter is omitted, a container is assumed to be + * essential. + * + * All jobs must have at least one essential container. If you have an application that's + * composed of multiple containers, group containers that are used for a common purpose into + * components, and separate the different components into multiple task definitions. For more + * information, see [Application + * Architecture](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html) + * in the *Amazon Elastic Container Service Developer Guide* . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-essential) */ public fun essential(): Any? = unwrap(this).getEssential() /** + * The image used to start a container. + * + * This string is passed directly to the Docker daemon. By default, images in the Docker Hub + * registry are available. Other repositories are specified with either `repository-url/image:tag` + * or `repository-url/image@digest` . Up to 255 letters (uppercase and lowercase), numbers, + * hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This + * parameter maps to `Image` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the `IMAGE` + * parameter of the [*docker + * run*](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-image) */ public fun image(): String /** + * Linux-specific modifications that are applied to the container, such as Linux kernel + * capabilities. + * + * For more information, see + * [KernelCapabilities](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_KernelCapabilities.html) + * . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-linuxparameters) */ public fun linuxParameters(): Any? = unwrap(this).getLinuxParameters() /** + * The log configuration specification for the container. + * + * This parameter maps to `LogConfig` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the + * `--log-driver` option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * By default, containers use the same logging driver that the Docker daemon uses. However the + * container can use a different logging driver than the Docker daemon by specifying a log driver + * with this parameter in the container definition. To use a different logging driver for a + * container, the log system must be configured properly on the container instance (or on a + * different log server for remote logging options). For more information about the options for + * different supported log drivers, see [Configure logging + * drivers](https://docs.aws.amazon.com/https://docs.docker.com/engine/admin/logging/overview/) in + * the *Docker documentation* . + * + * + * Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon + * (shown in the `LogConfiguration` data type). Additional log drivers may be available in future + * releases of the Amazon ECS container agent. + * + * + * This parameter requires version 1.18 of the Docker Remote API or greater on your container + * instance. To check the Docker Remote API version on your container instance, log in to your + * container instance and run the following command: sudo docker version `--format + * '{{.Server.APIVersion}}'` + * + * + * The Amazon ECS container agent running on a container instance must register the logging + * drivers available on that instance with the `ECS_AVAILABLE_LOGGING_DRIVERS` environment variable + * before containers placed on that instance can use these log configuration options. For more + * information, see [Amazon ECS container agent + * configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) + * in the *Amazon Elastic Container Service Developer Guide* . + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-logconfiguration) */ public fun logConfiguration(): Any? = unwrap(this).getLogConfiguration() /** + * The mount points for data volumes in your container. + * + * This parameter maps to `Volumes` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the + * [--volume](https://docs.aws.amazon.com/) option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * Windows containers can mount whole directories on the same drive as `$env:ProgramData` . + * Windows containers can't mount directories on a different drive, and mount point can't be across + * drives. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-mountpoints) */ public fun mountPoints(): Any? = unwrap(this).getMountPoints() /** + * The name of a container. + * + * The name can be used as a unique identifier to target your `dependsOn` and `Overrides` + * objects. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-name) */ public fun name(): String? = unwrap(this).getName() /** + * When this parameter is `true` , the container is given elevated privileges on the host + * container instance (similar to the `root` user). + * + * This parameter maps to `Privileged` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the + * `--privileged` option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * + * This parameter is not supported for Windows containers or tasks run on Fargate. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-privileged) */ public fun privileged(): Any? = unwrap(this).getPrivileged() /** + * When this parameter is true, the container is given read-only access to its root file system. + * + * This parameter maps to `ReadonlyRootfs` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the + * `--read-only` option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * + * This parameter is not supported for Windows containers. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-readonlyrootfilesystem) */ public fun readonlyRootFilesystem(): Any? = unwrap(this).getReadonlyRootFilesystem() /** + * The private repository authentication credentials to use. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-repositorycredentials) */ public fun repositoryCredentials(): Any? = unwrap(this).getRepositoryCredentials() /** + * The type and amount of a resource to assign to a container. + * + * The only supported resource is a GPU. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-resourcerequirements) */ public fun resourceRequirements(): Any? = unwrap(this).getResourceRequirements() /** + * The secrets to pass to the container. + * + * For more information, see [Specifying Sensitive + * Data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) + * in the Amazon Elastic Container Service Developer Guide. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-secrets) */ public fun secrets(): Any? = unwrap(this).getSecrets() /** + * A list of `ulimits` to set in the container. + * + * If a `ulimit` value is specified in a task definition, it overrides the default values set by + * Docker. This parameter maps to `Ulimits` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the `--ulimit` + * option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * Amazon ECS tasks hosted on Fargate use the default resource limit values set by the operating + * system with the exception of the nofile resource limit parameter which Fargate overrides. The + * `nofile` resource limit sets a restriction on the number of open files that a container can use. + * The default `nofile` soft limit is `1024` and the default hard limit is `65535` . + * + * This parameter requires version 1.18 of the Docker Remote API or greater on your container + * instance. To check the Docker Remote API version on your container instance, log in to your + * container instance and run the following command: sudo docker version `--format + * '{{.Server.APIVersion}}'` + * + * + * This parameter is not supported for Windows containers. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-ulimits) */ public fun ulimits(): Any? = unwrap(this).getUlimits() /** + * The user to use inside the container. + * + * This parameter maps to User in the Create a container section of the Docker Remote API and + * the --user option to docker run. + * + * + * When running tasks using the `host` network mode, don't run containers using the `root user + * (UID 0)` . We recommend using a non-root user for better security. + * + * + * You can specify the `user` using the following formats. If specifying a UID or GID, you must + * specify it as a positive integer. + * + * * `user` + * * `user:group` + * * `uid` + * * `uid:gid` + * * `user:gi` + * * `uid:group` + * + * + * This parameter is not supported for Windows containers. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-user) */ public fun user(): String? = unwrap(this).getUser() @@ -11557,146 +12497,426 @@ public open class CfnJobDefinition( @CdkDslMarker public interface Builder { /** - * @param command the value to be set. + * @param command The command that's passed to the container. + * This parameter maps to `Cmd` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/#create-a-container) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/) and the `COMMAND` + * parameter to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/) . For more + * information, see [Dockerfile reference: + * CMD](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/builder/#cmd) . */ public fun command(command: List) /** - * @param command the value to be set. + * @param command The command that's passed to the container. + * This parameter maps to `Cmd` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/#create-a-container) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/) and the `COMMAND` + * parameter to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/) . For more + * information, see [Dockerfile reference: + * CMD](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/builder/#cmd) . */ public fun command(vararg command: String) /** - * @param dependsOn the value to be set. + * @param dependsOn A list of containers that this container depends on. */ public fun dependsOn(dependsOn: IResolvable) /** - * @param dependsOn the value to be set. + * @param dependsOn A list of containers that this container depends on. */ public fun dependsOn(dependsOn: List) /** - * @param dependsOn the value to be set. + * @param dependsOn A list of containers that this container depends on. */ public fun dependsOn(vararg dependsOn: Any) /** - * @param environment the value to be set. + * @param environment The environment variables to pass to a container. + * This parameter maps to Env inthe [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/#create-a-container) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/) and the `--env` + * parameter to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/) . + * + * + * We don't recommend using plaintext environment variables for sensitive information, such as + * credential data. > Environment variables cannot start with `AWS_BATCH` . This naming + * convention is reserved for variables that AWS Batch sets. */ public fun environment(environment: IResolvable) /** - * @param environment the value to be set. + * @param environment The environment variables to pass to a container. + * This parameter maps to Env inthe [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/#create-a-container) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/) and the `--env` + * parameter to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/) . + * + * + * We don't recommend using plaintext environment variables for sensitive information, such as + * credential data. > Environment variables cannot start with `AWS_BATCH` . This naming + * convention is reserved for variables that AWS Batch sets. */ public fun environment(environment: List) /** - * @param environment the value to be set. + * @param environment The environment variables to pass to a container. + * This parameter maps to Env inthe [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/#create-a-container) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/) and the `--env` + * parameter to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/) . + * + * + * We don't recommend using plaintext environment variables for sensitive information, such as + * credential data. > Environment variables cannot start with `AWS_BATCH` . This naming + * convention is reserved for variables that AWS Batch sets. */ public fun environment(vararg environment: Any) /** - * @param essential the value to be set. + * @param essential If the essential parameter of a container is marked as `true` , and that + * container fails or stops for any reason, all other containers that are part of the task are + * stopped. + * If the `essential` parameter of a container is marked as false, its failure doesn't affect + * the rest of the containers in a task. If this parameter is omitted, a container is assumed to + * be essential. + * + * All jobs must have at least one essential container. If you have an application that's + * composed of multiple containers, group containers that are used for a common purpose into + * components, and separate the different components into multiple task definitions. For more + * information, see [Application + * Architecture](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html) + * in the *Amazon Elastic Container Service Developer Guide* . */ public fun essential(essential: Boolean) /** - * @param essential the value to be set. + * @param essential If the essential parameter of a container is marked as `true` , and that + * container fails or stops for any reason, all other containers that are part of the task are + * stopped. + * If the `essential` parameter of a container is marked as false, its failure doesn't affect + * the rest of the containers in a task. If this parameter is omitted, a container is assumed to + * be essential. + * + * All jobs must have at least one essential container. If you have an application that's + * composed of multiple containers, group containers that are used for a common purpose into + * components, and separate the different components into multiple task definitions. For more + * information, see [Application + * Architecture](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html) + * in the *Amazon Elastic Container Service Developer Guide* . */ public fun essential(essential: IResolvable) /** - * @param image the value to be set. + * @param image The image used to start a container. + * This string is passed directly to the Docker daemon. By default, images in the Docker Hub + * registry are available. Other repositories are specified with either + * `repository-url/image:tag` or `repository-url/image@digest` . Up to 255 letters (uppercase + * and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number + * signs are allowed. This parameter maps to `Image` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the `IMAGE` + * parameter of the [*docker + * run*](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . */ public fun image(image: String) /** - * @param linuxParameters the value to be set. + * @param linuxParameters Linux-specific modifications that are applied to the container, such + * as Linux kernel capabilities. + * For more information, see + * [KernelCapabilities](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_KernelCapabilities.html) + * . */ public fun linuxParameters(linuxParameters: IResolvable) /** - * @param linuxParameters the value to be set. + * @param linuxParameters Linux-specific modifications that are applied to the container, such + * as Linux kernel capabilities. + * For more information, see + * [KernelCapabilities](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_KernelCapabilities.html) + * . */ public fun linuxParameters(linuxParameters: LinuxParametersProperty) /** - * @param linuxParameters the value to be set. + * @param linuxParameters Linux-specific modifications that are applied to the container, such + * as Linux kernel capabilities. + * For more information, see + * [KernelCapabilities](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_KernelCapabilities.html) + * . */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("19170a13fe587140f52b0d1dca6ae814149b4c2f39891024990e70a036011ce6") public fun linuxParameters(linuxParameters: LinuxParametersProperty.Builder.() -> Unit) /** - * @param logConfiguration the value to be set. + * @param logConfiguration The log configuration specification for the container. + * This parameter maps to `LogConfig` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the + * `--log-driver` option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * By default, containers use the same logging driver that the Docker daemon uses. However the + * container can use a different logging driver than the Docker daemon by specifying a log driver + * with this parameter in the container definition. To use a different logging driver for a + * container, the log system must be configured properly on the container instance (or on a + * different log server for remote logging options). For more information about the options for + * different supported log drivers, see [Configure logging + * drivers](https://docs.aws.amazon.com/https://docs.docker.com/engine/admin/logging/overview/) + * in the *Docker documentation* . + * + * + * Amazon ECS currently supports a subset of the logging drivers available to the Docker + * daemon (shown in the `LogConfiguration` data type). Additional log drivers may be available in + * future releases of the Amazon ECS container agent. + * + * + * This parameter requires version 1.18 of the Docker Remote API or greater on your container + * instance. To check the Docker Remote API version on your container instance, log in to your + * container instance and run the following command: sudo docker version `--format + * '{{.Server.APIVersion}}'` + * + * + * The Amazon ECS container agent running on a container instance must register the logging + * drivers available on that instance with the `ECS_AVAILABLE_LOGGING_DRIVERS` environment + * variable before containers placed on that instance can use these log configuration options. + * For more information, see [Amazon ECS container agent + * configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) + * in the *Amazon Elastic Container Service Developer Guide* . */ public fun logConfiguration(logConfiguration: IResolvable) /** - * @param logConfiguration the value to be set. + * @param logConfiguration The log configuration specification for the container. + * This parameter maps to `LogConfig` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the + * `--log-driver` option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * By default, containers use the same logging driver that the Docker daemon uses. However the + * container can use a different logging driver than the Docker daemon by specifying a log driver + * with this parameter in the container definition. To use a different logging driver for a + * container, the log system must be configured properly on the container instance (or on a + * different log server for remote logging options). For more information about the options for + * different supported log drivers, see [Configure logging + * drivers](https://docs.aws.amazon.com/https://docs.docker.com/engine/admin/logging/overview/) + * in the *Docker documentation* . + * + * + * Amazon ECS currently supports a subset of the logging drivers available to the Docker + * daemon (shown in the `LogConfiguration` data type). Additional log drivers may be available in + * future releases of the Amazon ECS container agent. + * + * + * This parameter requires version 1.18 of the Docker Remote API or greater on your container + * instance. To check the Docker Remote API version on your container instance, log in to your + * container instance and run the following command: sudo docker version `--format + * '{{.Server.APIVersion}}'` + * + * + * The Amazon ECS container agent running on a container instance must register the logging + * drivers available on that instance with the `ECS_AVAILABLE_LOGGING_DRIVERS` environment + * variable before containers placed on that instance can use these log configuration options. + * For more information, see [Amazon ECS container agent + * configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) + * in the *Amazon Elastic Container Service Developer Guide* . */ public fun logConfiguration(logConfiguration: LogConfigurationProperty) /** - * @param logConfiguration the value to be set. + * @param logConfiguration The log configuration specification for the container. + * This parameter maps to `LogConfig` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the + * `--log-driver` option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * By default, containers use the same logging driver that the Docker daemon uses. However the + * container can use a different logging driver than the Docker daemon by specifying a log driver + * with this parameter in the container definition. To use a different logging driver for a + * container, the log system must be configured properly on the container instance (or on a + * different log server for remote logging options). For more information about the options for + * different supported log drivers, see [Configure logging + * drivers](https://docs.aws.amazon.com/https://docs.docker.com/engine/admin/logging/overview/) + * in the *Docker documentation* . + * + * + * Amazon ECS currently supports a subset of the logging drivers available to the Docker + * daemon (shown in the `LogConfiguration` data type). Additional log drivers may be available in + * future releases of the Amazon ECS container agent. + * + * + * This parameter requires version 1.18 of the Docker Remote API or greater on your container + * instance. To check the Docker Remote API version on your container instance, log in to your + * container instance and run the following command: sudo docker version `--format + * '{{.Server.APIVersion}}'` + * + * + * The Amazon ECS container agent running on a container instance must register the logging + * drivers available on that instance with the `ECS_AVAILABLE_LOGGING_DRIVERS` environment + * variable before containers placed on that instance can use these log configuration options. + * For more information, see [Amazon ECS container agent + * configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) + * in the *Amazon Elastic Container Service Developer Guide* . */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("f07cb87f43f4bebadd01f6ebb5f9bd7dc010b0b3927192f24ce10039e10545ee") public fun logConfiguration(logConfiguration: LogConfigurationProperty.Builder.() -> Unit) /** - * @param mountPoints the value to be set. + * @param mountPoints The mount points for data volumes in your container. + * This parameter maps to `Volumes` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the + * [--volume](https://docs.aws.amazon.com/) option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * Windows containers can mount whole directories on the same drive as `$env:ProgramData` . + * Windows containers can't mount directories on a different drive, and mount point can't be + * across drives. */ public fun mountPoints(mountPoints: IResolvable) /** - * @param mountPoints the value to be set. + * @param mountPoints The mount points for data volumes in your container. + * This parameter maps to `Volumes` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the + * [--volume](https://docs.aws.amazon.com/) option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * Windows containers can mount whole directories on the same drive as `$env:ProgramData` . + * Windows containers can't mount directories on a different drive, and mount point can't be + * across drives. */ public fun mountPoints(mountPoints: List) /** - * @param mountPoints the value to be set. + * @param mountPoints The mount points for data volumes in your container. + * This parameter maps to `Volumes` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the + * [--volume](https://docs.aws.amazon.com/) option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * Windows containers can mount whole directories on the same drive as `$env:ProgramData` . + * Windows containers can't mount directories on a different drive, and mount point can't be + * across drives. */ public fun mountPoints(vararg mountPoints: Any) /** - * @param name the value to be set. + * @param name The name of a container. + * The name can be used as a unique identifier to target your `dependsOn` and `Overrides` + * objects. */ public fun name(name: String) /** - * @param privileged the value to be set. + * @param privileged When this parameter is `true` , the container is given elevated + * privileges on the host container instance (similar to the `root` user). + * This parameter maps to `Privileged` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the + * `--privileged` option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * + * This parameter is not supported for Windows containers or tasks run on Fargate. */ public fun privileged(privileged: Boolean) /** - * @param privileged the value to be set. + * @param privileged When this parameter is `true` , the container is given elevated + * privileges on the host container instance (similar to the `root` user). + * This parameter maps to `Privileged` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the + * `--privileged` option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * + * This parameter is not supported for Windows containers or tasks run on Fargate. */ public fun privileged(privileged: IResolvable) /** - * @param readonlyRootFilesystem the value to be set. + * @param readonlyRootFilesystem When this parameter is true, the container is given read-only + * access to its root file system. + * This parameter maps to `ReadonlyRootfs` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the + * `--read-only` option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * + * This parameter is not supported for Windows containers. */ public fun readonlyRootFilesystem(readonlyRootFilesystem: Boolean) /** - * @param readonlyRootFilesystem the value to be set. + * @param readonlyRootFilesystem When this parameter is true, the container is given read-only + * access to its root file system. + * This parameter maps to `ReadonlyRootfs` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the + * `--read-only` option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * + * This parameter is not supported for Windows containers. */ public fun readonlyRootFilesystem(readonlyRootFilesystem: IResolvable) /** - * @param repositoryCredentials the value to be set. + * @param repositoryCredentials The private repository authentication credentials to use. */ public fun repositoryCredentials(repositoryCredentials: IResolvable) /** - * @param repositoryCredentials the value to be set. + * @param repositoryCredentials The private repository authentication credentials to use. */ public fun repositoryCredentials(repositoryCredentials: RepositoryCredentialsProperty) /** - * @param repositoryCredentials the value to be set. + * @param repositoryCredentials The private repository authentication credentials to use. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("8d9376f019bdc67670dd0f6b52daadd3aecc1e9d8846fddac7c2fe9d0ce3420e") @@ -11704,52 +12924,150 @@ public open class CfnJobDefinition( fun repositoryCredentials(repositoryCredentials: RepositoryCredentialsProperty.Builder.() -> Unit) /** - * @param resourceRequirements the value to be set. + * @param resourceRequirements The type and amount of a resource to assign to a container. + * The only supported resource is a GPU. */ public fun resourceRequirements(resourceRequirements: IResolvable) /** - * @param resourceRequirements the value to be set. + * @param resourceRequirements The type and amount of a resource to assign to a container. + * The only supported resource is a GPU. */ public fun resourceRequirements(resourceRequirements: List) /** - * @param resourceRequirements the value to be set. + * @param resourceRequirements The type and amount of a resource to assign to a container. + * The only supported resource is a GPU. */ public fun resourceRequirements(vararg resourceRequirements: Any) /** - * @param secrets the value to be set. + * @param secrets The secrets to pass to the container. + * For more information, see [Specifying Sensitive + * Data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) + * in the Amazon Elastic Container Service Developer Guide. */ public fun secrets(secrets: IResolvable) /** - * @param secrets the value to be set. + * @param secrets The secrets to pass to the container. + * For more information, see [Specifying Sensitive + * Data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) + * in the Amazon Elastic Container Service Developer Guide. */ public fun secrets(secrets: List) /** - * @param secrets the value to be set. + * @param secrets The secrets to pass to the container. + * For more information, see [Specifying Sensitive + * Data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) + * in the Amazon Elastic Container Service Developer Guide. */ public fun secrets(vararg secrets: Any) /** - * @param ulimits the value to be set. + * @param ulimits A list of `ulimits` to set in the container. + * If a `ulimit` value is specified in a task definition, it overrides the default values set + * by Docker. This parameter maps to `Ulimits` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the `--ulimit` + * option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * Amazon ECS tasks hosted on Fargate use the default resource limit values set by the + * operating system with the exception of the nofile resource limit parameter which Fargate + * overrides. The `nofile` resource limit sets a restriction on the number of open files that a + * container can use. The default `nofile` soft limit is `1024` and the default hard limit is + * `65535` . + * + * This parameter requires version 1.18 of the Docker Remote API or greater on your container + * instance. To check the Docker Remote API version on your container instance, log in to your + * container instance and run the following command: sudo docker version `--format + * '{{.Server.APIVersion}}'` + * + * + * This parameter is not supported for Windows containers. */ public fun ulimits(ulimits: IResolvable) /** - * @param ulimits the value to be set. + * @param ulimits A list of `ulimits` to set in the container. + * If a `ulimit` value is specified in a task definition, it overrides the default values set + * by Docker. This parameter maps to `Ulimits` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the `--ulimit` + * option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * Amazon ECS tasks hosted on Fargate use the default resource limit values set by the + * operating system with the exception of the nofile resource limit parameter which Fargate + * overrides. The `nofile` resource limit sets a restriction on the number of open files that a + * container can use. The default `nofile` soft limit is `1024` and the default hard limit is + * `65535` . + * + * This parameter requires version 1.18 of the Docker Remote API or greater on your container + * instance. To check the Docker Remote API version on your container instance, log in to your + * container instance and run the following command: sudo docker version `--format + * '{{.Server.APIVersion}}'` + * + * + * This parameter is not supported for Windows containers. */ public fun ulimits(ulimits: List) /** - * @param ulimits the value to be set. + * @param ulimits A list of `ulimits` to set in the container. + * If a `ulimit` value is specified in a task definition, it overrides the default values set + * by Docker. This parameter maps to `Ulimits` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the `--ulimit` + * option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * Amazon ECS tasks hosted on Fargate use the default resource limit values set by the + * operating system with the exception of the nofile resource limit parameter which Fargate + * overrides. The `nofile` resource limit sets a restriction on the number of open files that a + * container can use. The default `nofile` soft limit is `1024` and the default hard limit is + * `65535` . + * + * This parameter requires version 1.18 of the Docker Remote API or greater on your container + * instance. To check the Docker Remote API version on your container instance, log in to your + * container instance and run the following command: sudo docker version `--format + * '{{.Server.APIVersion}}'` + * + * + * This parameter is not supported for Windows containers. */ public fun ulimits(vararg ulimits: Any) /** - * @param user the value to be set. + * @param user The user to use inside the container. + * This parameter maps to User in the Create a container section of the Docker Remote API and + * the --user option to docker run. + * + * + * When running tasks using the `host` network mode, don't run containers using the `root user + * (UID 0)` . We recommend using a non-root user for better security. + * + * + * You can specify the `user` using the following formats. If specifying a UID or GID, you + * must specify it as a positive integer. + * + * * `user` + * * `user:group` + * * `uid` + * * `uid:gid` + * * `user:gi` + * * `uid:group` + * + * + * This parameter is not supported for Windows containers. */ public fun user(user: String) } @@ -11761,92 +13079,188 @@ public open class CfnJobDefinition( software.amazon.awscdk.services.batch.CfnJobDefinition.TaskContainerPropertiesProperty.builder() /** - * @param command the value to be set. + * @param command The command that's passed to the container. + * This parameter maps to `Cmd` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/#create-a-container) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/) and the `COMMAND` + * parameter to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/) . For more + * information, see [Dockerfile reference: + * CMD](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/builder/#cmd) . */ override fun command(command: List) { cdkBuilder.command(command) } /** - * @param command the value to be set. + * @param command The command that's passed to the container. + * This parameter maps to `Cmd` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/#create-a-container) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/) and the `COMMAND` + * parameter to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/) . For more + * information, see [Dockerfile reference: + * CMD](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/builder/#cmd) . */ override fun command(vararg command: String): Unit = command(command.toList()) /** - * @param dependsOn the value to be set. + * @param dependsOn A list of containers that this container depends on. */ override fun dependsOn(dependsOn: IResolvable) { cdkBuilder.dependsOn(dependsOn.let(IResolvable::unwrap)) } /** - * @param dependsOn the value to be set. + * @param dependsOn A list of containers that this container depends on. */ override fun dependsOn(dependsOn: List) { cdkBuilder.dependsOn(dependsOn.map{CdkObjectWrappers.unwrap(it)}) } /** - * @param dependsOn the value to be set. + * @param dependsOn A list of containers that this container depends on. */ override fun dependsOn(vararg dependsOn: Any): Unit = dependsOn(dependsOn.toList()) /** - * @param environment the value to be set. + * @param environment The environment variables to pass to a container. + * This parameter maps to Env inthe [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/#create-a-container) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/) and the `--env` + * parameter to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/) . + * + * + * We don't recommend using plaintext environment variables for sensitive information, such as + * credential data. > Environment variables cannot start with `AWS_BATCH` . This naming + * convention is reserved for variables that AWS Batch sets. */ override fun environment(environment: IResolvable) { cdkBuilder.environment(environment.let(IResolvable::unwrap)) } /** - * @param environment the value to be set. + * @param environment The environment variables to pass to a container. + * This parameter maps to Env inthe [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/#create-a-container) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/) and the `--env` + * parameter to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/) . + * + * + * We don't recommend using plaintext environment variables for sensitive information, such as + * credential data. > Environment variables cannot start with `AWS_BATCH` . This naming + * convention is reserved for variables that AWS Batch sets. */ override fun environment(environment: List) { cdkBuilder.environment(environment.map{CdkObjectWrappers.unwrap(it)}) } /** - * @param environment the value to be set. + * @param environment The environment variables to pass to a container. + * This parameter maps to Env inthe [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/#create-a-container) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/) and the `--env` + * parameter to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/) . + * + * + * We don't recommend using plaintext environment variables for sensitive information, such as + * credential data. > Environment variables cannot start with `AWS_BATCH` . This naming + * convention is reserved for variables that AWS Batch sets. */ override fun environment(vararg environment: Any): Unit = environment(environment.toList()) /** - * @param essential the value to be set. + * @param essential If the essential parameter of a container is marked as `true` , and that + * container fails or stops for any reason, all other containers that are part of the task are + * stopped. + * If the `essential` parameter of a container is marked as false, its failure doesn't affect + * the rest of the containers in a task. If this parameter is omitted, a container is assumed to + * be essential. + * + * All jobs must have at least one essential container. If you have an application that's + * composed of multiple containers, group containers that are used for a common purpose into + * components, and separate the different components into multiple task definitions. For more + * information, see [Application + * Architecture](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html) + * in the *Amazon Elastic Container Service Developer Guide* . */ override fun essential(essential: Boolean) { cdkBuilder.essential(essential) } /** - * @param essential the value to be set. + * @param essential If the essential parameter of a container is marked as `true` , and that + * container fails or stops for any reason, all other containers that are part of the task are + * stopped. + * If the `essential` parameter of a container is marked as false, its failure doesn't affect + * the rest of the containers in a task. If this parameter is omitted, a container is assumed to + * be essential. + * + * All jobs must have at least one essential container. If you have an application that's + * composed of multiple containers, group containers that are used for a common purpose into + * components, and separate the different components into multiple task definitions. For more + * information, see [Application + * Architecture](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html) + * in the *Amazon Elastic Container Service Developer Guide* . */ override fun essential(essential: IResolvable) { cdkBuilder.essential(essential.let(IResolvable::unwrap)) } /** - * @param image the value to be set. + * @param image The image used to start a container. + * This string is passed directly to the Docker daemon. By default, images in the Docker Hub + * registry are available. Other repositories are specified with either + * `repository-url/image:tag` or `repository-url/image@digest` . Up to 255 letters (uppercase + * and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number + * signs are allowed. This parameter maps to `Image` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the `IMAGE` + * parameter of the [*docker + * run*](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . */ override fun image(image: String) { cdkBuilder.image(image) } /** - * @param linuxParameters the value to be set. + * @param linuxParameters Linux-specific modifications that are applied to the container, such + * as Linux kernel capabilities. + * For more information, see + * [KernelCapabilities](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_KernelCapabilities.html) + * . */ override fun linuxParameters(linuxParameters: IResolvable) { cdkBuilder.linuxParameters(linuxParameters.let(IResolvable::unwrap)) } /** - * @param linuxParameters the value to be set. + * @param linuxParameters Linux-specific modifications that are applied to the container, such + * as Linux kernel capabilities. + * For more information, see + * [KernelCapabilities](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_KernelCapabilities.html) + * . */ override fun linuxParameters(linuxParameters: LinuxParametersProperty) { cdkBuilder.linuxParameters(linuxParameters.let(LinuxParametersProperty::unwrap)) } /** - * @param linuxParameters the value to be set. + * @param linuxParameters Linux-specific modifications that are applied to the container, such + * as Linux kernel capabilities. + * For more information, see + * [KernelCapabilities](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_KernelCapabilities.html) + * . */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("19170a13fe587140f52b0d1dca6ae814149b4c2f39891024990e70a036011ce6") @@ -11854,21 +13268,126 @@ public open class CfnJobDefinition( Unit = linuxParameters(LinuxParametersProperty(linuxParameters)) /** - * @param logConfiguration the value to be set. + * @param logConfiguration The log configuration specification for the container. + * This parameter maps to `LogConfig` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the + * `--log-driver` option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * By default, containers use the same logging driver that the Docker daemon uses. However the + * container can use a different logging driver than the Docker daemon by specifying a log driver + * with this parameter in the container definition. To use a different logging driver for a + * container, the log system must be configured properly on the container instance (or on a + * different log server for remote logging options). For more information about the options for + * different supported log drivers, see [Configure logging + * drivers](https://docs.aws.amazon.com/https://docs.docker.com/engine/admin/logging/overview/) + * in the *Docker documentation* . + * + * + * Amazon ECS currently supports a subset of the logging drivers available to the Docker + * daemon (shown in the `LogConfiguration` data type). Additional log drivers may be available in + * future releases of the Amazon ECS container agent. + * + * + * This parameter requires version 1.18 of the Docker Remote API or greater on your container + * instance. To check the Docker Remote API version on your container instance, log in to your + * container instance and run the following command: sudo docker version `--format + * '{{.Server.APIVersion}}'` + * + * + * The Amazon ECS container agent running on a container instance must register the logging + * drivers available on that instance with the `ECS_AVAILABLE_LOGGING_DRIVERS` environment + * variable before containers placed on that instance can use these log configuration options. + * For more information, see [Amazon ECS container agent + * configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) + * in the *Amazon Elastic Container Service Developer Guide* . */ override fun logConfiguration(logConfiguration: IResolvable) { cdkBuilder.logConfiguration(logConfiguration.let(IResolvable::unwrap)) } /** - * @param logConfiguration the value to be set. + * @param logConfiguration The log configuration specification for the container. + * This parameter maps to `LogConfig` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the + * `--log-driver` option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * By default, containers use the same logging driver that the Docker daemon uses. However the + * container can use a different logging driver than the Docker daemon by specifying a log driver + * with this parameter in the container definition. To use a different logging driver for a + * container, the log system must be configured properly on the container instance (or on a + * different log server for remote logging options). For more information about the options for + * different supported log drivers, see [Configure logging + * drivers](https://docs.aws.amazon.com/https://docs.docker.com/engine/admin/logging/overview/) + * in the *Docker documentation* . + * + * + * Amazon ECS currently supports a subset of the logging drivers available to the Docker + * daemon (shown in the `LogConfiguration` data type). Additional log drivers may be available in + * future releases of the Amazon ECS container agent. + * + * + * This parameter requires version 1.18 of the Docker Remote API or greater on your container + * instance. To check the Docker Remote API version on your container instance, log in to your + * container instance and run the following command: sudo docker version `--format + * '{{.Server.APIVersion}}'` + * + * + * The Amazon ECS container agent running on a container instance must register the logging + * drivers available on that instance with the `ECS_AVAILABLE_LOGGING_DRIVERS` environment + * variable before containers placed on that instance can use these log configuration options. + * For more information, see [Amazon ECS container agent + * configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) + * in the *Amazon Elastic Container Service Developer Guide* . */ override fun logConfiguration(logConfiguration: LogConfigurationProperty) { cdkBuilder.logConfiguration(logConfiguration.let(LogConfigurationProperty::unwrap)) } /** - * @param logConfiguration the value to be set. + * @param logConfiguration The log configuration specification for the container. + * This parameter maps to `LogConfig` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the + * `--log-driver` option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * By default, containers use the same logging driver that the Docker daemon uses. However the + * container can use a different logging driver than the Docker daemon by specifying a log driver + * with this parameter in the container definition. To use a different logging driver for a + * container, the log system must be configured properly on the container instance (or on a + * different log server for remote logging options). For more information about the options for + * different supported log drivers, see [Configure logging + * drivers](https://docs.aws.amazon.com/https://docs.docker.com/engine/admin/logging/overview/) + * in the *Docker documentation* . + * + * + * Amazon ECS currently supports a subset of the logging drivers available to the Docker + * daemon (shown in the `LogConfiguration` data type). Additional log drivers may be available in + * future releases of the Amazon ECS container agent. + * + * + * This parameter requires version 1.18 of the Docker Remote API or greater on your container + * instance. To check the Docker Remote API version on your container instance, log in to your + * container instance and run the following command: sudo docker version `--format + * '{{.Server.APIVersion}}'` + * + * + * The Amazon ECS container agent running on a container instance must register the logging + * drivers available on that instance with the `ECS_AVAILABLE_LOGGING_DRIVERS` environment + * variable before containers placed on that instance can use these log configuration options. + * For more information, see [Amazon ECS container agent + * configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) + * in the *Amazon Elastic Container Service Developer Guide* . */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("f07cb87f43f4bebadd01f6ebb5f9bd7dc010b0b3927192f24ce10039e10545ee") @@ -11876,75 +13395,154 @@ public open class CfnJobDefinition( Unit = logConfiguration(LogConfigurationProperty(logConfiguration)) /** - * @param mountPoints the value to be set. + * @param mountPoints The mount points for data volumes in your container. + * This parameter maps to `Volumes` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the + * [--volume](https://docs.aws.amazon.com/) option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * Windows containers can mount whole directories on the same drive as `$env:ProgramData` . + * Windows containers can't mount directories on a different drive, and mount point can't be + * across drives. */ override fun mountPoints(mountPoints: IResolvable) { cdkBuilder.mountPoints(mountPoints.let(IResolvable::unwrap)) } /** - * @param mountPoints the value to be set. + * @param mountPoints The mount points for data volumes in your container. + * This parameter maps to `Volumes` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the + * [--volume](https://docs.aws.amazon.com/) option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * Windows containers can mount whole directories on the same drive as `$env:ProgramData` . + * Windows containers can't mount directories on a different drive, and mount point can't be + * across drives. */ override fun mountPoints(mountPoints: List) { cdkBuilder.mountPoints(mountPoints.map{CdkObjectWrappers.unwrap(it)}) } /** - * @param mountPoints the value to be set. + * @param mountPoints The mount points for data volumes in your container. + * This parameter maps to `Volumes` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the + * [--volume](https://docs.aws.amazon.com/) option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * Windows containers can mount whole directories on the same drive as `$env:ProgramData` . + * Windows containers can't mount directories on a different drive, and mount point can't be + * across drives. */ override fun mountPoints(vararg mountPoints: Any): Unit = mountPoints(mountPoints.toList()) /** - * @param name the value to be set. + * @param name The name of a container. + * The name can be used as a unique identifier to target your `dependsOn` and `Overrides` + * objects. */ override fun name(name: String) { cdkBuilder.name(name) } /** - * @param privileged the value to be set. + * @param privileged When this parameter is `true` , the container is given elevated + * privileges on the host container instance (similar to the `root` user). + * This parameter maps to `Privileged` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the + * `--privileged` option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * + * This parameter is not supported for Windows containers or tasks run on Fargate. */ override fun privileged(privileged: Boolean) { cdkBuilder.privileged(privileged) } /** - * @param privileged the value to be set. + * @param privileged When this parameter is `true` , the container is given elevated + * privileges on the host container instance (similar to the `root` user). + * This parameter maps to `Privileged` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the + * `--privileged` option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * + * This parameter is not supported for Windows containers or tasks run on Fargate. */ override fun privileged(privileged: IResolvable) { cdkBuilder.privileged(privileged.let(IResolvable::unwrap)) } /** - * @param readonlyRootFilesystem the value to be set. + * @param readonlyRootFilesystem When this parameter is true, the container is given read-only + * access to its root file system. + * This parameter maps to `ReadonlyRootfs` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the + * `--read-only` option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * + * This parameter is not supported for Windows containers. */ override fun readonlyRootFilesystem(readonlyRootFilesystem: Boolean) { cdkBuilder.readonlyRootFilesystem(readonlyRootFilesystem) } /** - * @param readonlyRootFilesystem the value to be set. + * @param readonlyRootFilesystem When this parameter is true, the container is given read-only + * access to its root file system. + * This parameter maps to `ReadonlyRootfs` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the + * `--read-only` option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * + * This parameter is not supported for Windows containers. */ override fun readonlyRootFilesystem(readonlyRootFilesystem: IResolvable) { cdkBuilder.readonlyRootFilesystem(readonlyRootFilesystem.let(IResolvable::unwrap)) } /** - * @param repositoryCredentials the value to be set. + * @param repositoryCredentials The private repository authentication credentials to use. */ override fun repositoryCredentials(repositoryCredentials: IResolvable) { cdkBuilder.repositoryCredentials(repositoryCredentials.let(IResolvable::unwrap)) } /** - * @param repositoryCredentials the value to be set. + * @param repositoryCredentials The private repository authentication credentials to use. */ override fun repositoryCredentials(repositoryCredentials: RepositoryCredentialsProperty) { cdkBuilder.repositoryCredentials(repositoryCredentials.let(RepositoryCredentialsProperty::unwrap)) } /** - * @param repositoryCredentials the value to be set. + * @param repositoryCredentials The private repository authentication credentials to use. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("8d9376f019bdc67670dd0f6b52daadd3aecc1e9d8846fddac7c2fe9d0ce3420e") @@ -11953,65 +13551,163 @@ public open class CfnJobDefinition( Unit = repositoryCredentials(RepositoryCredentialsProperty(repositoryCredentials)) /** - * @param resourceRequirements the value to be set. + * @param resourceRequirements The type and amount of a resource to assign to a container. + * The only supported resource is a GPU. */ override fun resourceRequirements(resourceRequirements: IResolvable) { cdkBuilder.resourceRequirements(resourceRequirements.let(IResolvable::unwrap)) } /** - * @param resourceRequirements the value to be set. + * @param resourceRequirements The type and amount of a resource to assign to a container. + * The only supported resource is a GPU. */ override fun resourceRequirements(resourceRequirements: List) { cdkBuilder.resourceRequirements(resourceRequirements.map{CdkObjectWrappers.unwrap(it)}) } /** - * @param resourceRequirements the value to be set. + * @param resourceRequirements The type and amount of a resource to assign to a container. + * The only supported resource is a GPU. */ override fun resourceRequirements(vararg resourceRequirements: Any): Unit = resourceRequirements(resourceRequirements.toList()) /** - * @param secrets the value to be set. + * @param secrets The secrets to pass to the container. + * For more information, see [Specifying Sensitive + * Data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) + * in the Amazon Elastic Container Service Developer Guide. */ override fun secrets(secrets: IResolvable) { cdkBuilder.secrets(secrets.let(IResolvable::unwrap)) } /** - * @param secrets the value to be set. + * @param secrets The secrets to pass to the container. + * For more information, see [Specifying Sensitive + * Data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) + * in the Amazon Elastic Container Service Developer Guide. */ override fun secrets(secrets: List) { cdkBuilder.secrets(secrets.map{CdkObjectWrappers.unwrap(it)}) } /** - * @param secrets the value to be set. + * @param secrets The secrets to pass to the container. + * For more information, see [Specifying Sensitive + * Data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) + * in the Amazon Elastic Container Service Developer Guide. */ override fun secrets(vararg secrets: Any): Unit = secrets(secrets.toList()) /** - * @param ulimits the value to be set. + * @param ulimits A list of `ulimits` to set in the container. + * If a `ulimit` value is specified in a task definition, it overrides the default values set + * by Docker. This parameter maps to `Ulimits` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the `--ulimit` + * option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * Amazon ECS tasks hosted on Fargate use the default resource limit values set by the + * operating system with the exception of the nofile resource limit parameter which Fargate + * overrides. The `nofile` resource limit sets a restriction on the number of open files that a + * container can use. The default `nofile` soft limit is `1024` and the default hard limit is + * `65535` . + * + * This parameter requires version 1.18 of the Docker Remote API or greater on your container + * instance. To check the Docker Remote API version on your container instance, log in to your + * container instance and run the following command: sudo docker version `--format + * '{{.Server.APIVersion}}'` + * + * + * This parameter is not supported for Windows containers. */ override fun ulimits(ulimits: IResolvable) { cdkBuilder.ulimits(ulimits.let(IResolvable::unwrap)) } /** - * @param ulimits the value to be set. + * @param ulimits A list of `ulimits` to set in the container. + * If a `ulimit` value is specified in a task definition, it overrides the default values set + * by Docker. This parameter maps to `Ulimits` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the `--ulimit` + * option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * Amazon ECS tasks hosted on Fargate use the default resource limit values set by the + * operating system with the exception of the nofile resource limit parameter which Fargate + * overrides. The `nofile` resource limit sets a restriction on the number of open files that a + * container can use. The default `nofile` soft limit is `1024` and the default hard limit is + * `65535` . + * + * This parameter requires version 1.18 of the Docker Remote API or greater on your container + * instance. To check the Docker Remote API version on your container instance, log in to your + * container instance and run the following command: sudo docker version `--format + * '{{.Server.APIVersion}}'` + * + * + * This parameter is not supported for Windows containers. */ override fun ulimits(ulimits: List) { cdkBuilder.ulimits(ulimits.map{CdkObjectWrappers.unwrap(it)}) } /** - * @param ulimits the value to be set. + * @param ulimits A list of `ulimits` to set in the container. + * If a `ulimit` value is specified in a task definition, it overrides the default values set + * by Docker. This parameter maps to `Ulimits` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the `--ulimit` + * option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * Amazon ECS tasks hosted on Fargate use the default resource limit values set by the + * operating system with the exception of the nofile resource limit parameter which Fargate + * overrides. The `nofile` resource limit sets a restriction on the number of open files that a + * container can use. The default `nofile` soft limit is `1024` and the default hard limit is + * `65535` . + * + * This parameter requires version 1.18 of the Docker Remote API or greater on your container + * instance. To check the Docker Remote API version on your container instance, log in to your + * container instance and run the following command: sudo docker version `--format + * '{{.Server.APIVersion}}'` + * + * + * This parameter is not supported for Windows containers. */ override fun ulimits(vararg ulimits: Any): Unit = ulimits(ulimits.toList()) /** - * @param user the value to be set. + * @param user The user to use inside the container. + * This parameter maps to User in the Create a container section of the Docker Remote API and + * the --user option to docker run. + * + * + * When running tasks using the `host` network mode, don't run containers using the `root user + * (UID 0)` . We recommend using a non-root user for better security. + * + * + * You can specify the `user` using the following formats. If specifying a UID or GID, you + * must specify it as a positive integer. + * + * * `user` + * * `user:group` + * * `uid` + * * `uid:gid` + * * `user:gi` + * * `uid:group` + * + * + * This parameter is not supported for Windows containers. */ override fun user(user: String) { cdkBuilder.user(user) @@ -12026,81 +13722,294 @@ public open class CfnJobDefinition( cdkObject: software.amazon.awscdk.services.batch.CfnJobDefinition.TaskContainerPropertiesProperty, ) : CdkObject(cdkObject), TaskContainerPropertiesProperty { /** + * The command that's passed to the container. + * + * This parameter maps to `Cmd` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/#create-a-container) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/) and the `COMMAND` + * parameter to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/) . For more + * information, see [Dockerfile reference: + * CMD](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/builder/#cmd) . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-command) */ override fun command(): List = unwrap(this).getCommand() ?: emptyList() /** + * A list of containers that this container depends on. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-dependson) */ override fun dependsOn(): Any? = unwrap(this).getDependsOn() /** + * The environment variables to pass to a container. + * + * This parameter maps to Env inthe [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/#create-a-container) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.23/) and the `--env` + * parameter to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/) . + * + * + * We don't recommend using plaintext environment variables for sensitive information, such as + * credential data. > Environment variables cannot start with `AWS_BATCH` . This naming + * convention is reserved for variables that AWS Batch sets. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-environment) */ override fun environment(): Any? = unwrap(this).getEnvironment() /** + * If the essential parameter of a container is marked as `true` , and that container fails or + * stops for any reason, all other containers that are part of the task are stopped. + * + * If the `essential` parameter of a container is marked as false, its failure doesn't affect + * the rest of the containers in a task. If this parameter is omitted, a container is assumed to + * be essential. + * + * All jobs must have at least one essential container. If you have an application that's + * composed of multiple containers, group containers that are used for a common purpose into + * components, and separate the different components into multiple task definitions. For more + * information, see [Application + * Architecture](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html) + * in the *Amazon Elastic Container Service Developer Guide* . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-essential) */ override fun essential(): Any? = unwrap(this).getEssential() /** + * The image used to start a container. + * + * This string is passed directly to the Docker daemon. By default, images in the Docker Hub + * registry are available. Other repositories are specified with either + * `repository-url/image:tag` or `repository-url/image@digest` . Up to 255 letters (uppercase + * and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number + * signs are allowed. This parameter maps to `Image` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the `IMAGE` + * parameter of the [*docker + * run*](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-image) */ override fun image(): String = unwrap(this).getImage() /** + * Linux-specific modifications that are applied to the container, such as Linux kernel + * capabilities. + * + * For more information, see + * [KernelCapabilities](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_KernelCapabilities.html) + * . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-linuxparameters) */ override fun linuxParameters(): Any? = unwrap(this).getLinuxParameters() /** + * The log configuration specification for the container. + * + * This parameter maps to `LogConfig` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the + * `--log-driver` option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * By default, containers use the same logging driver that the Docker daemon uses. However the + * container can use a different logging driver than the Docker daemon by specifying a log driver + * with this parameter in the container definition. To use a different logging driver for a + * container, the log system must be configured properly on the container instance (or on a + * different log server for remote logging options). For more information about the options for + * different supported log drivers, see [Configure logging + * drivers](https://docs.aws.amazon.com/https://docs.docker.com/engine/admin/logging/overview/) + * in the *Docker documentation* . + * + * + * Amazon ECS currently supports a subset of the logging drivers available to the Docker + * daemon (shown in the `LogConfiguration` data type). Additional log drivers may be available in + * future releases of the Amazon ECS container agent. + * + * + * This parameter requires version 1.18 of the Docker Remote API or greater on your container + * instance. To check the Docker Remote API version on your container instance, log in to your + * container instance and run the following command: sudo docker version `--format + * '{{.Server.APIVersion}}'` + * + * + * The Amazon ECS container agent running on a container instance must register the logging + * drivers available on that instance with the `ECS_AVAILABLE_LOGGING_DRIVERS` environment + * variable before containers placed on that instance can use these log configuration options. + * For more information, see [Amazon ECS container agent + * configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) + * in the *Amazon Elastic Container Service Developer Guide* . + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-logconfiguration) */ override fun logConfiguration(): Any? = unwrap(this).getLogConfiguration() /** + * The mount points for data volumes in your container. + * + * This parameter maps to `Volumes` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the + * [--volume](https://docs.aws.amazon.com/) option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * Windows containers can mount whole directories on the same drive as `$env:ProgramData` . + * Windows containers can't mount directories on a different drive, and mount point can't be + * across drives. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-mountpoints) */ override fun mountPoints(): Any? = unwrap(this).getMountPoints() /** + * The name of a container. + * + * The name can be used as a unique identifier to target your `dependsOn` and `Overrides` + * objects. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-name) */ override fun name(): String? = unwrap(this).getName() /** + * When this parameter is `true` , the container is given elevated privileges on the host + * container instance (similar to the `root` user). + * + * This parameter maps to `Privileged` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the + * `--privileged` option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * + * This parameter is not supported for Windows containers or tasks run on Fargate. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-privileged) */ override fun privileged(): Any? = unwrap(this).getPrivileged() /** + * When this parameter is true, the container is given read-only access to its root file + * system. + * + * This parameter maps to `ReadonlyRootfs` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the + * `--read-only` option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * + * This parameter is not supported for Windows containers. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-readonlyrootfilesystem) */ override fun readonlyRootFilesystem(): Any? = unwrap(this).getReadonlyRootFilesystem() /** + * The private repository authentication credentials to use. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-repositorycredentials) */ override fun repositoryCredentials(): Any? = unwrap(this).getRepositoryCredentials() /** + * The type and amount of a resource to assign to a container. + * + * The only supported resource is a GPU. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-resourcerequirements) */ override fun resourceRequirements(): Any? = unwrap(this).getResourceRequirements() /** + * The secrets to pass to the container. + * + * For more information, see [Specifying Sensitive + * Data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) + * in the Amazon Elastic Container Service Developer Guide. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-secrets) */ override fun secrets(): Any? = unwrap(this).getSecrets() /** + * A list of `ulimits` to set in the container. + * + * If a `ulimit` value is specified in a task definition, it overrides the default values set + * by Docker. This parameter maps to `Ulimits` in the [Create a + * container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + * section of the [Docker Remote + * API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the `--ulimit` + * option to [docker + * run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) + * . + * + * Amazon ECS tasks hosted on Fargate use the default resource limit values set by the + * operating system with the exception of the nofile resource limit parameter which Fargate + * overrides. The `nofile` resource limit sets a restriction on the number of open files that a + * container can use. The default `nofile` soft limit is `1024` and the default hard limit is + * `65535` . + * + * This parameter requires version 1.18 of the Docker Remote API or greater on your container + * instance. To check the Docker Remote API version on your container instance, log in to your + * container instance and run the following command: sudo docker version `--format + * '{{.Server.APIVersion}}'` + * + * + * This parameter is not supported for Windows containers. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-ulimits) */ override fun ulimits(): Any? = unwrap(this).getUlimits() /** + * The user to use inside the container. + * + * This parameter maps to User in the Create a container section of the Docker Remote API and + * the --user option to docker run. + * + * + * When running tasks using the `host` network mode, don't run containers using the `root user + * (UID 0)` . We recommend using a non-root user for better security. + * + * + * You can specify the `user` using the following formats. If specifying a UID or GID, you + * must specify it as a positive integer. + * + * * `user` + * * `user:group` + * * `uid` + * * `uid:gid` + * * `user:gi` + * * `uid:group` + * + * + * This parameter is not supported for Windows containers. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-taskcontainerproperties.html#cfn-batch-jobdefinition-taskcontainerproperties-user) */ override fun user(): String? = unwrap(this).getUser() diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/batch/CfnJobDefinitionProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/batch/CfnJobDefinitionProps.kt index c5ca9a877b..8537c1d069 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/batch/CfnJobDefinitionProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/batch/CfnJobDefinitionProps.kt @@ -36,6 +36,10 @@ public interface CfnJobDefinitionProps { public fun containerProperties(): Any? = unwrap(this).getContainerProperties() /** + * An object that contains the properties for the Amazon ECS resources of a job.When + * `ecsProperties` is used in the job definition, it can't be used in addition to + * `containerProperties` , `eksProperties` , or `nodeProperties` . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-ecsproperties) */ public fun ecsProperties(): Any? = unwrap(this).getEcsProperties() @@ -193,17 +197,23 @@ public interface CfnJobDefinitionProps { fun containerProperties(containerProperties: CfnJobDefinition.ContainerPropertiesProperty.Builder.() -> Unit) /** - * @param ecsProperties the value to be set. + * @param ecsProperties An object that contains the properties for the Amazon ECS resources of a + * job.When `ecsProperties` is used in the job definition, it can't be used in addition to + * `containerProperties` , `eksProperties` , or `nodeProperties` . */ public fun ecsProperties(ecsProperties: IResolvable) /** - * @param ecsProperties the value to be set. + * @param ecsProperties An object that contains the properties for the Amazon ECS resources of a + * job.When `ecsProperties` is used in the job definition, it can't be used in addition to + * `containerProperties` , `eksProperties` , or `nodeProperties` . */ public fun ecsProperties(ecsProperties: CfnJobDefinition.EcsPropertiesProperty) /** - * @param ecsProperties the value to be set. + * @param ecsProperties An object that contains the properties for the Amazon ECS resources of a + * job.When `ecsProperties` is used in the job definition, it can't be used in addition to + * `containerProperties` , `eksProperties` , or `nodeProperties` . */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("9d0f7241d0572f1ae89ed491015194934b521dc18be2e856aff197c63c11b9de") @@ -431,21 +441,27 @@ public interface CfnJobDefinitionProps { containerProperties(CfnJobDefinition.ContainerPropertiesProperty(containerProperties)) /** - * @param ecsProperties the value to be set. + * @param ecsProperties An object that contains the properties for the Amazon ECS resources of a + * job.When `ecsProperties` is used in the job definition, it can't be used in addition to + * `containerProperties` , `eksProperties` , or `nodeProperties` . */ override fun ecsProperties(ecsProperties: IResolvable) { cdkBuilder.ecsProperties(ecsProperties.let(IResolvable::unwrap)) } /** - * @param ecsProperties the value to be set. + * @param ecsProperties An object that contains the properties for the Amazon ECS resources of a + * job.When `ecsProperties` is used in the job definition, it can't be used in addition to + * `containerProperties` , `eksProperties` , or `nodeProperties` . */ override fun ecsProperties(ecsProperties: CfnJobDefinition.EcsPropertiesProperty) { cdkBuilder.ecsProperties(ecsProperties.let(CfnJobDefinition.EcsPropertiesProperty::unwrap)) } /** - * @param ecsProperties the value to be set. + * @param ecsProperties An object that contains the properties for the Amazon ECS resources of a + * job.When `ecsProperties` is used in the job definition, it can't be used in addition to + * `containerProperties` , `eksProperties` , or `nodeProperties` . */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("9d0f7241d0572f1ae89ed491015194934b521dc18be2e856aff197c63c11b9de") @@ -692,6 +708,10 @@ public interface CfnJobDefinitionProps { override fun containerProperties(): Any? = unwrap(this).getContainerProperties() /** + * An object that contains the properties for the Amazon ECS resources of a job.When + * `ecsProperties` is used in the job definition, it can't be used in addition to + * `containerProperties` , `eksProperties` , or `nodeProperties` . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-ecsproperties) */ override fun ecsProperties(): Any? = unwrap(this).getEcsProperties() diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/batch/CfnJobQueue.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/batch/CfnJobQueue.kt index e2930afb75..74b77476e7 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/batch/CfnJobQueue.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/batch/CfnJobQueue.kt @@ -41,6 +41,12 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .priority(123) * // the properties below are optional * .jobQueueName("jobQueueName") + * .jobStateTimeLimitActions(List.of(JobStateTimeLimitActionProperty.builder() + * .action("action") + * .maxTimeSeconds(123) + * .reason("reason") + * .state("state") + * .build())) * .schedulingPolicyArn("schedulingPolicyArn") * .state("state") * .tags(Map.of( @@ -121,6 +127,35 @@ public open class CfnJobQueue( unwrap(this).setJobQueueName(`value`) } + /** + * The set of actions that AWS Batch perform on jobs that remain at the head of the job queue in + * the specified state longer than specified times. + */ + public open fun jobStateTimeLimitActions(): Any? = unwrap(this).getJobStateTimeLimitActions() + + /** + * The set of actions that AWS Batch perform on jobs that remain at the head of the job queue in + * the specified state longer than specified times. + */ + public open fun jobStateTimeLimitActions(`value`: IResolvable) { + unwrap(this).setJobStateTimeLimitActions(`value`.let(IResolvable::unwrap)) + } + + /** + * The set of actions that AWS Batch perform on jobs that remain at the head of the job queue in + * the specified state longer than specified times. + */ + public open fun jobStateTimeLimitActions(`value`: List) { + unwrap(this).setJobStateTimeLimitActions(`value`.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * The set of actions that AWS Batch perform on jobs that remain at the head of the job queue in + * the specified state longer than specified times. + */ + public open fun jobStateTimeLimitActions(vararg `value`: Any): Unit = + jobStateTimeLimitActions(`value`.toList()) + /** * The priority of the job queue. */ @@ -253,6 +288,42 @@ public open class CfnJobQueue( */ public fun jobQueueName(jobQueueName: String) + /** + * The set of actions that AWS Batch perform on jobs that remain at the head of the job queue in + * the specified state longer than specified times. + * + * AWS Batch will perform each action after `maxTimeSeconds` has passed. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-jobstatetimelimitactions) + * @param jobStateTimeLimitActions The set of actions that AWS Batch perform on jobs that remain + * at the head of the job queue in the specified state longer than specified times. + */ + public fun jobStateTimeLimitActions(jobStateTimeLimitActions: IResolvable) + + /** + * The set of actions that AWS Batch perform on jobs that remain at the head of the job queue in + * the specified state longer than specified times. + * + * AWS Batch will perform each action after `maxTimeSeconds` has passed. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-jobstatetimelimitactions) + * @param jobStateTimeLimitActions The set of actions that AWS Batch perform on jobs that remain + * at the head of the job queue in the specified state longer than specified times. + */ + public fun jobStateTimeLimitActions(jobStateTimeLimitActions: List) + + /** + * The set of actions that AWS Batch perform on jobs that remain at the head of the job queue in + * the specified state longer than specified times. + * + * AWS Batch will perform each action after `maxTimeSeconds` has passed. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-jobstatetimelimitactions) + * @param jobStateTimeLimitActions The set of actions that AWS Batch perform on jobs that remain + * at the head of the job queue in the specified state longer than specified times. + */ + public fun jobStateTimeLimitActions(vararg jobStateTimeLimitActions: Any) + /** * The priority of the job queue. * @@ -391,6 +462,47 @@ public open class CfnJobQueue( cdkBuilder.jobQueueName(jobQueueName) } + /** + * The set of actions that AWS Batch perform on jobs that remain at the head of the job queue in + * the specified state longer than specified times. + * + * AWS Batch will perform each action after `maxTimeSeconds` has passed. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-jobstatetimelimitactions) + * @param jobStateTimeLimitActions The set of actions that AWS Batch perform on jobs that remain + * at the head of the job queue in the specified state longer than specified times. + */ + override fun jobStateTimeLimitActions(jobStateTimeLimitActions: IResolvable) { + cdkBuilder.jobStateTimeLimitActions(jobStateTimeLimitActions.let(IResolvable::unwrap)) + } + + /** + * The set of actions that AWS Batch perform on jobs that remain at the head of the job queue in + * the specified state longer than specified times. + * + * AWS Batch will perform each action after `maxTimeSeconds` has passed. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-jobstatetimelimitactions) + * @param jobStateTimeLimitActions The set of actions that AWS Batch perform on jobs that remain + * at the head of the job queue in the specified state longer than specified times. + */ + override fun jobStateTimeLimitActions(jobStateTimeLimitActions: List) { + cdkBuilder.jobStateTimeLimitActions(jobStateTimeLimitActions.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * The set of actions that AWS Batch perform on jobs that remain at the head of the job queue in + * the specified state longer than specified times. + * + * AWS Batch will perform each action after `maxTimeSeconds` has passed. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-jobstatetimelimitactions) + * @param jobStateTimeLimitActions The set of actions that AWS Batch perform on jobs that remain + * at the head of the job queue in the specified state longer than specified times. + */ + override fun jobStateTimeLimitActions(vararg jobStateTimeLimitActions: Any): Unit = + jobStateTimeLimitActions(jobStateTimeLimitActions.toList()) + /** * The priority of the job queue. * @@ -606,4 +718,195 @@ public open class CfnJobQueue( software.amazon.awscdk.services.batch.CfnJobQueue.ComputeEnvironmentOrderProperty } } + + /** + * Specifies an action that AWS Batch will take after the job has remained at the head of the + * queue in the specified state for longer than the specified time. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.batch.*; + * JobStateTimeLimitActionProperty jobStateTimeLimitActionProperty = + * JobStateTimeLimitActionProperty.builder() + * .action("action") + * .maxTimeSeconds(123) + * .reason("reason") + * .state("state") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-jobstatetimelimitaction.html) + */ + public interface JobStateTimeLimitActionProperty { + /** + * The action to take when a job is at the head of the job queue in the specified state for the + * specified period of time. + * + * The only supported value is `CANCEL` , which will cancel the job. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-jobstatetimelimitaction.html#cfn-batch-jobqueue-jobstatetimelimitaction-action) + */ + public fun action(): String + + /** + * The approximate amount of time, in seconds, that must pass with the job in the specified + * state before the action is taken. + * + * The minimum value is 600 (10 minutes) and the maximum value is 86,400 (24 hours). + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-jobstatetimelimitaction.html#cfn-batch-jobqueue-jobstatetimelimitaction-maxtimeseconds) + */ + public fun maxTimeSeconds(): Number + + /** + * The reason to log for the action being taken. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-jobstatetimelimitaction.html#cfn-batch-jobqueue-jobstatetimelimitaction-reason) + */ + public fun reason(): String + + /** + * The state of the job needed to trigger the action. + * + * The only supported value is `RUNNABLE` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-jobstatetimelimitaction.html#cfn-batch-jobqueue-jobstatetimelimitaction-state) + */ + public fun state(): String + + /** + * A builder for [JobStateTimeLimitActionProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param action The action to take when a job is at the head of the job queue in the + * specified state for the specified period of time. + * The only supported value is `CANCEL` , which will cancel the job. + */ + public fun action(action: String) + + /** + * @param maxTimeSeconds The approximate amount of time, in seconds, that must pass with the + * job in the specified state before the action is taken. + * The minimum value is 600 (10 minutes) and the maximum value is 86,400 (24 hours). + */ + public fun maxTimeSeconds(maxTimeSeconds: Number) + + /** + * @param reason The reason to log for the action being taken. + */ + public fun reason(reason: String) + + /** + * @param state The state of the job needed to trigger the action. + * The only supported value is `RUNNABLE` . + */ + public fun state(state: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.batch.CfnJobQueue.JobStateTimeLimitActionProperty.Builder + = + software.amazon.awscdk.services.batch.CfnJobQueue.JobStateTimeLimitActionProperty.builder() + + /** + * @param action The action to take when a job is at the head of the job queue in the + * specified state for the specified period of time. + * The only supported value is `CANCEL` , which will cancel the job. + */ + override fun action(action: String) { + cdkBuilder.action(action) + } + + /** + * @param maxTimeSeconds The approximate amount of time, in seconds, that must pass with the + * job in the specified state before the action is taken. + * The minimum value is 600 (10 minutes) and the maximum value is 86,400 (24 hours). + */ + override fun maxTimeSeconds(maxTimeSeconds: Number) { + cdkBuilder.maxTimeSeconds(maxTimeSeconds) + } + + /** + * @param reason The reason to log for the action being taken. + */ + override fun reason(reason: String) { + cdkBuilder.reason(reason) + } + + /** + * @param state The state of the job needed to trigger the action. + * The only supported value is `RUNNABLE` . + */ + override fun state(state: String) { + cdkBuilder.state(state) + } + + public fun build(): + software.amazon.awscdk.services.batch.CfnJobQueue.JobStateTimeLimitActionProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.batch.CfnJobQueue.JobStateTimeLimitActionProperty, + ) : CdkObject(cdkObject), JobStateTimeLimitActionProperty { + /** + * The action to take when a job is at the head of the job queue in the specified state for + * the specified period of time. + * + * The only supported value is `CANCEL` , which will cancel the job. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-jobstatetimelimitaction.html#cfn-batch-jobqueue-jobstatetimelimitaction-action) + */ + override fun action(): String = unwrap(this).getAction() + + /** + * The approximate amount of time, in seconds, that must pass with the job in the specified + * state before the action is taken. + * + * The minimum value is 600 (10 minutes) and the maximum value is 86,400 (24 hours). + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-jobstatetimelimitaction.html#cfn-batch-jobqueue-jobstatetimelimitaction-maxtimeseconds) + */ + override fun maxTimeSeconds(): Number = unwrap(this).getMaxTimeSeconds() + + /** + * The reason to log for the action being taken. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-jobstatetimelimitaction.html#cfn-batch-jobqueue-jobstatetimelimitaction-reason) + */ + override fun reason(): String = unwrap(this).getReason() + + /** + * The state of the job needed to trigger the action. + * + * The only supported value is `RUNNABLE` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-jobstatetimelimitaction.html#cfn-batch-jobqueue-jobstatetimelimitaction-state) + */ + override fun state(): String = unwrap(this).getState() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): JobStateTimeLimitActionProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.batch.CfnJobQueue.JobStateTimeLimitActionProperty): + JobStateTimeLimitActionProperty = CdkObjectWrappers.wrap(cdkObject) as? + JobStateTimeLimitActionProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: JobStateTimeLimitActionProperty): + software.amazon.awscdk.services.batch.CfnJobQueue.JobStateTimeLimitActionProperty = + (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.batch.CfnJobQueue.JobStateTimeLimitActionProperty + } + } } diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/batch/CfnJobQueueProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/batch/CfnJobQueueProps.kt index 74fc530f7d..1740d72803 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/batch/CfnJobQueueProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/batch/CfnJobQueueProps.kt @@ -30,6 +30,12 @@ import kotlin.collections.Map * .priority(123) * // the properties below are optional * .jobQueueName("jobQueueName") + * .jobStateTimeLimitActions(List.of(JobStateTimeLimitActionProperty.builder() + * .action("action") + * .maxTimeSeconds(123) + * .reason("reason") + * .state("state") + * .build())) * .schedulingPolicyArn("schedulingPolicyArn") * .state("state") * .tags(Map.of( @@ -68,6 +74,16 @@ public interface CfnJobQueueProps { */ public fun jobQueueName(): String? = unwrap(this).getJobQueueName() + /** + * The set of actions that AWS Batch perform on jobs that remain at the head of the job queue in + * the specified state longer than specified times. + * + * AWS Batch will perform each action after `maxTimeSeconds` has passed. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-jobstatetimelimitactions) + */ + public fun jobStateTimeLimitActions(): Any? = unwrap(this).getJobStateTimeLimitActions() + /** * The priority of the job queue. * @@ -173,6 +189,27 @@ public interface CfnJobQueueProps { */ public fun jobQueueName(jobQueueName: String) + /** + * @param jobStateTimeLimitActions The set of actions that AWS Batch perform on jobs that remain + * at the head of the job queue in the specified state longer than specified times. + * AWS Batch will perform each action after `maxTimeSeconds` has passed. + */ + public fun jobStateTimeLimitActions(jobStateTimeLimitActions: IResolvable) + + /** + * @param jobStateTimeLimitActions The set of actions that AWS Batch perform on jobs that remain + * at the head of the job queue in the specified state longer than specified times. + * AWS Batch will perform each action after `maxTimeSeconds` has passed. + */ + public fun jobStateTimeLimitActions(jobStateTimeLimitActions: List) + + /** + * @param jobStateTimeLimitActions The set of actions that AWS Batch perform on jobs that remain + * at the head of the job queue in the specified state longer than specified times. + * AWS Batch will perform each action after `maxTimeSeconds` has passed. + */ + public fun jobStateTimeLimitActions(vararg jobStateTimeLimitActions: Any) + /** * @param priority The priority of the job queue. * Job queues with a higher priority (or a higher integer value for the `priority` parameter) @@ -273,6 +310,32 @@ public interface CfnJobQueueProps { cdkBuilder.jobQueueName(jobQueueName) } + /** + * @param jobStateTimeLimitActions The set of actions that AWS Batch perform on jobs that remain + * at the head of the job queue in the specified state longer than specified times. + * AWS Batch will perform each action after `maxTimeSeconds` has passed. + */ + override fun jobStateTimeLimitActions(jobStateTimeLimitActions: IResolvable) { + cdkBuilder.jobStateTimeLimitActions(jobStateTimeLimitActions.let(IResolvable::unwrap)) + } + + /** + * @param jobStateTimeLimitActions The set of actions that AWS Batch perform on jobs that remain + * at the head of the job queue in the specified state longer than specified times. + * AWS Batch will perform each action after `maxTimeSeconds` has passed. + */ + override fun jobStateTimeLimitActions(jobStateTimeLimitActions: List) { + cdkBuilder.jobStateTimeLimitActions(jobStateTimeLimitActions.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param jobStateTimeLimitActions The set of actions that AWS Batch perform on jobs that remain + * at the head of the job queue in the specified state longer than specified times. + * AWS Batch will perform each action after `maxTimeSeconds` has passed. + */ + override fun jobStateTimeLimitActions(vararg jobStateTimeLimitActions: Any): Unit = + jobStateTimeLimitActions(jobStateTimeLimitActions.toList()) + /** * @param priority The priority of the job queue. * Job queues with a higher priority (or a higher integer value for the `priority` parameter) @@ -349,6 +412,16 @@ public interface CfnJobQueueProps { */ override fun jobQueueName(): String? = unwrap(this).getJobQueueName() + /** + * The set of actions that AWS Batch perform on jobs that remain at the head of the job queue in + * the specified state longer than specified times. + * + * AWS Batch will perform each action after `maxTimeSeconds` has passed. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-jobstatetimelimitactions) + */ + override fun jobStateTimeLimitActions(): Any? = unwrap(this).getJobStateTimeLimitActions() + /** * The priority of the job queue. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/batch/IUnmanagedComputeEnvironment.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/batch/IUnmanagedComputeEnvironment.kt index 99bae51636..8fe5b8bde7 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/batch/IUnmanagedComputeEnvironment.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/batch/IUnmanagedComputeEnvironment.kt @@ -27,7 +27,7 @@ public interface IUnmanagedComputeEnvironment : IComputeEnvironment { * **If this parameter is not provided on a fairshare queue, no capacity is reserved**; * that is, the `FairshareSchedulingPolicy` is ignored. */ - public fun unmanagedvCpUs(): Number? = unwrap(this).getUnmanagedvCPUs() + public fun unmanagedvCPUs(): Number? = unwrap(this).getUnmanagedvCPUs() private class Wrapper( cdkObject: software.amazon.awscdk.services.batch.IUnmanagedComputeEnvironment, @@ -110,7 +110,7 @@ public interface IUnmanagedComputeEnvironment : IComputeEnvironment { * **If this parameter is not provided on a fairshare queue, no capacity is reserved**; * that is, the `FairshareSchedulingPolicy` is ignored. */ - override fun unmanagedvCpUs(): Number? = unwrap(this).getUnmanagedvCPUs() + override fun unmanagedvCPUs(): Number? = unwrap(this).getUnmanagedvCPUs() } public companion object { diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/batch/UnmanagedComputeEnvironment.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/batch/UnmanagedComputeEnvironment.kt index 18432c0c16..9b736ae346 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/batch/UnmanagedComputeEnvironment.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/batch/UnmanagedComputeEnvironment.kt @@ -96,7 +96,7 @@ public open class UnmanagedComputeEnvironment( * **If this parameter is not provided on a fairshare queue, no capacity is reserved**; * that is, the `FairshareSchedulingPolicy` is ignored. */ - public override fun unmanagedvCpUs(): Number? = unwrap(this).getUnmanagedvCPUs() + public override fun unmanagedvCPUs(): Number? = unwrap(this).getUnmanagedvCPUs() /** * A fluent builder for [io.cloudshiftdev.awscdk.services.batch.UnmanagedComputeEnvironment]. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bcmdataexports/CfnExport.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bcmdataexports/CfnExport.kt new file mode 100644 index 0000000000..63912bace6 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bcmdataexports/CfnExport.kt @@ -0,0 +1,1438 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.bcmdataexports + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.ITaggableV2 +import io.cloudshiftdev.awscdk.TagManager +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.collections.Map +import kotlin.jvm.JvmName +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * Creates a data export and specifies the data query, the delivery preference, and any optional + * resource tags. + * + * A `DataQuery` consists of both a `QueryStatement` and `TableConfigurations` . + * + * The `QueryStatement` is an SQL statement. Data Exports only supports a limited subset of the SQL + * syntax. For more information on the SQL syntax that is supported, see [Data + * query](https://docs.aws.amazon.com/cur/latest/userguide/de-data-query.html) . To view the available + * tables and columns, see the [Data Exports table + * dictionary](https://docs.aws.amazon.com/cur/latest/userguide/de-table-dictionary.html) . + * + * The `TableConfigurations` is a collection of specified `TableProperties` for the table being + * queried in the `QueryStatement` . TableProperties are additional configurations you can provide to + * change the data and schema of a table. Each table can have different TableProperties. However, + * tables are not required to have any TableProperties. Each table property has a default value that it + * assumes if not specified. For more information on table configurations, see [Data + * query](https://docs.aws.amazon.com/cur/latest/userguide/de-data-query.html) . To view the table + * properties available for each table, see the [Data Exports table + * dictionary](https://docs.aws.amazon.com/cur/latest/userguide/de-table-dictionary.html) or use the + * `ListTables` API to get a response of all tables and their available properties. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bcmdataexports.*; + * CfnExport cfnExport = CfnExport.Builder.create(this, "MyCfnExport") + * .export(ExportProperty.builder() + * .dataQuery(DataQueryProperty.builder() + * .queryStatement("queryStatement") + * // the properties below are optional + * .tableConfigurations(Map.of( + * "tableConfigurationsKey", Map.of( + * "tableConfigurationsKey", "tableConfigurations"))) + * .build()) + * .destinationConfigurations(DestinationConfigurationsProperty.builder() + * .s3Destination(S3DestinationProperty.builder() + * .s3Bucket("s3Bucket") + * .s3OutputConfigurations(S3OutputConfigurationsProperty.builder() + * .compression("compression") + * .format("format") + * .outputType("outputType") + * .overwrite("overwrite") + * .build()) + * .s3Prefix("s3Prefix") + * .s3Region("s3Region") + * .build()) + * .build()) + * .name("name") + * .refreshCadence(RefreshCadenceProperty.builder() + * .frequency("frequency") + * .build()) + * // the properties below are optional + * .description("description") + * .exportArn("exportArn") + * .build()) + * // the properties below are optional + * .tags(List.of(ResourceTagProperty.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bcmdataexports-export.html) + */ +public open class CfnExport( + cdkObject: software.amazon.awscdk.services.bcmdataexports.CfnExport, +) : CfnResource(cdkObject), IInspectable, ITaggableV2 { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnExportProps, + ) : + this(software.amazon.awscdk.services.bcmdataexports.CfnExport(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnExportProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnExportProps.Builder.() -> Unit, + ) : this(scope, id, CfnExportProps(props) + ) + + /** + * The Amazon Resource Name (ARN) for this export. + */ + public open fun attrExportArn(): String = unwrap(this).getAttrExportArn() + + /** + * Tag Manager which manages the tags for this resource. + */ + public override fun cdkTagManager(): TagManager = + unwrap(this).getCdkTagManager().let(TagManager::wrap) + + /** + * The details that are available for an export. + */ + public open fun export(): Any = unwrap(this).getExport() + + /** + * The details that are available for an export. + */ + public open fun export(`value`: IResolvable) { + unwrap(this).setExport(`value`.let(IResolvable::unwrap)) + } + + /** + * The details that are available for an export. + */ + public open fun export(`value`: ExportProperty) { + unwrap(this).setExport(`value`.let(ExportProperty::unwrap)) + } + + /** + * The details that are available for an export. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("64fa73e58837f4ddf9c3b3d3bcb8eb6bf002216e9bae531314c9aa2a6e011eee") + public open fun export(`value`: ExportProperty.Builder.() -> Unit): Unit = + export(ExportProperty(`value`)) + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * + */ + public open fun tags(): List = + unwrap(this).getTags()?.map(ResourceTagProperty::wrap) ?: emptyList() + + /** + * + */ + public open fun tags(`value`: List) { + unwrap(this).setTags(`value`.map(ResourceTagProperty::unwrap)) + } + + /** + * + */ + public open fun tags(vararg `value`: ResourceTagProperty): Unit = tags(`value`.toList()) + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.bcmdataexports.CfnExport]. + */ + @CdkDslMarker + public interface Builder { + /** + * The details that are available for an export. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bcmdataexports-export.html#cfn-bcmdataexports-export-export) + * @param export The details that are available for an export. + */ + public fun export(export: IResolvable) + + /** + * The details that are available for an export. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bcmdataexports-export.html#cfn-bcmdataexports-export-export) + * @param export The details that are available for an export. + */ + public fun export(export: ExportProperty) + + /** + * The details that are available for an export. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bcmdataexports-export.html#cfn-bcmdataexports-export-export) + * @param export The details that are available for an export. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("b07bdc3ce8dd112805a2dee7f11a2c76e942e0e57a7892480ce50587dda2cc39") + public fun export(export: ExportProperty.Builder.() -> Unit) + + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bcmdataexports-export.html#cfn-bcmdataexports-export-tags) + * @param tags + */ + public fun tags(tags: List) + + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bcmdataexports-export.html#cfn-bcmdataexports-export-tags) + * @param tags + */ + public fun tags(vararg tags: ResourceTagProperty) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.services.bcmdataexports.CfnExport.Builder = + software.amazon.awscdk.services.bcmdataexports.CfnExport.Builder.create(scope, id) + + /** + * The details that are available for an export. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bcmdataexports-export.html#cfn-bcmdataexports-export-export) + * @param export The details that are available for an export. + */ + override fun export(export: IResolvable) { + cdkBuilder.export(export.let(IResolvable::unwrap)) + } + + /** + * The details that are available for an export. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bcmdataexports-export.html#cfn-bcmdataexports-export-export) + * @param export The details that are available for an export. + */ + override fun export(export: ExportProperty) { + cdkBuilder.export(export.let(ExportProperty::unwrap)) + } + + /** + * The details that are available for an export. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bcmdataexports-export.html#cfn-bcmdataexports-export-export) + * @param export The details that are available for an export. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("b07bdc3ce8dd112805a2dee7f11a2c76e942e0e57a7892480ce50587dda2cc39") + override fun export(export: ExportProperty.Builder.() -> Unit): Unit = + export(ExportProperty(export)) + + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bcmdataexports-export.html#cfn-bcmdataexports-export-tags) + * @param tags + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(ResourceTagProperty::unwrap)) + } + + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bcmdataexports-export.html#cfn-bcmdataexports-export-tags) + * @param tags + */ + override fun tags(vararg tags: ResourceTagProperty): Unit = tags(tags.toList()) + + public fun build(): software.amazon.awscdk.services.bcmdataexports.CfnExport = + cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.bcmdataexports.CfnExport.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnExport { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnExport(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.bcmdataexports.CfnExport): + CfnExport = CfnExport(cdkObject) + + internal fun unwrap(wrapped: CfnExport): + software.amazon.awscdk.services.bcmdataexports.CfnExport = wrapped.cdkObject as + software.amazon.awscdk.services.bcmdataexports.CfnExport + } + + /** + * The SQL query of column selections and row filters from the data table you want. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bcmdataexports.*; + * DataQueryProperty dataQueryProperty = DataQueryProperty.builder() + * .queryStatement("queryStatement") + * // the properties below are optional + * .tableConfigurations(Map.of( + * "tableConfigurationsKey", Map.of( + * "tableConfigurationsKey", "tableConfigurations"))) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-dataquery.html) + */ + public interface DataQueryProperty { + /** + * The query statement. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-dataquery.html#cfn-bcmdataexports-export-dataquery-querystatement) + */ + public fun queryStatement(): String + + /** + * The table configuration. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-dataquery.html#cfn-bcmdataexports-export-dataquery-tableconfigurations) + */ + public fun tableConfigurations(): Any? = unwrap(this).getTableConfigurations() + + /** + * A builder for [DataQueryProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param queryStatement The query statement. + */ + public fun queryStatement(queryStatement: String) + + /** + * @param tableConfigurations The table configuration. + */ + public fun tableConfigurations(tableConfigurations: IResolvable) + + /** + * @param tableConfigurations The table configuration. + */ + public fun tableConfigurations(tableConfigurations: Map) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.bcmdataexports.CfnExport.DataQueryProperty.Builder = + software.amazon.awscdk.services.bcmdataexports.CfnExport.DataQueryProperty.builder() + + /** + * @param queryStatement The query statement. + */ + override fun queryStatement(queryStatement: String) { + cdkBuilder.queryStatement(queryStatement) + } + + /** + * @param tableConfigurations The table configuration. + */ + override fun tableConfigurations(tableConfigurations: IResolvable) { + cdkBuilder.tableConfigurations(tableConfigurations.let(IResolvable::unwrap)) + } + + /** + * @param tableConfigurations The table configuration. + */ + override fun tableConfigurations(tableConfigurations: Map) { + cdkBuilder.tableConfigurations(tableConfigurations.mapValues{CdkObjectWrappers.unwrap(it.value)}) + } + + public fun build(): software.amazon.awscdk.services.bcmdataexports.CfnExport.DataQueryProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.bcmdataexports.CfnExport.DataQueryProperty, + ) : CdkObject(cdkObject), DataQueryProperty { + /** + * The query statement. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-dataquery.html#cfn-bcmdataexports-export-dataquery-querystatement) + */ + override fun queryStatement(): String = unwrap(this).getQueryStatement() + + /** + * The table configuration. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-dataquery.html#cfn-bcmdataexports-export-dataquery-tableconfigurations) + */ + override fun tableConfigurations(): Any? = unwrap(this).getTableConfigurations() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): DataQueryProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.bcmdataexports.CfnExport.DataQueryProperty): + DataQueryProperty = CdkObjectWrappers.wrap(cdkObject) as? DataQueryProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: DataQueryProperty): + software.amazon.awscdk.services.bcmdataexports.CfnExport.DataQueryProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.bcmdataexports.CfnExport.DataQueryProperty + } + } + + /** + * The destinations used for data exports. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bcmdataexports.*; + * DestinationConfigurationsProperty destinationConfigurationsProperty = + * DestinationConfigurationsProperty.builder() + * .s3Destination(S3DestinationProperty.builder() + * .s3Bucket("s3Bucket") + * .s3OutputConfigurations(S3OutputConfigurationsProperty.builder() + * .compression("compression") + * .format("format") + * .outputType("outputType") + * .overwrite("overwrite") + * .build()) + * .s3Prefix("s3Prefix") + * .s3Region("s3Region") + * .build()) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-destinationconfigurations.html) + */ + public interface DestinationConfigurationsProperty { + /** + * An object that describes the destination of the data exports file. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-destinationconfigurations.html#cfn-bcmdataexports-export-destinationconfigurations-s3destination) + */ + public fun s3Destination(): Any + + /** + * A builder for [DestinationConfigurationsProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param s3Destination An object that describes the destination of the data exports file. + */ + public fun s3Destination(s3Destination: IResolvable) + + /** + * @param s3Destination An object that describes the destination of the data exports file. + */ + public fun s3Destination(s3Destination: S3DestinationProperty) + + /** + * @param s3Destination An object that describes the destination of the data exports file. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("58aa8b5f0f947f867f11ebbeb89af9b81881d86f40357871a4c9bac631c5aeb5") + public fun s3Destination(s3Destination: S3DestinationProperty.Builder.() -> Unit) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.bcmdataexports.CfnExport.DestinationConfigurationsProperty.Builder + = + software.amazon.awscdk.services.bcmdataexports.CfnExport.DestinationConfigurationsProperty.builder() + + /** + * @param s3Destination An object that describes the destination of the data exports file. + */ + override fun s3Destination(s3Destination: IResolvable) { + cdkBuilder.s3Destination(s3Destination.let(IResolvable::unwrap)) + } + + /** + * @param s3Destination An object that describes the destination of the data exports file. + */ + override fun s3Destination(s3Destination: S3DestinationProperty) { + cdkBuilder.s3Destination(s3Destination.let(S3DestinationProperty::unwrap)) + } + + /** + * @param s3Destination An object that describes the destination of the data exports file. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("58aa8b5f0f947f867f11ebbeb89af9b81881d86f40357871a4c9bac631c5aeb5") + override fun s3Destination(s3Destination: S3DestinationProperty.Builder.() -> Unit): Unit = + s3Destination(S3DestinationProperty(s3Destination)) + + public fun build(): + software.amazon.awscdk.services.bcmdataexports.CfnExport.DestinationConfigurationsProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.bcmdataexports.CfnExport.DestinationConfigurationsProperty, + ) : CdkObject(cdkObject), DestinationConfigurationsProperty { + /** + * An object that describes the destination of the data exports file. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-destinationconfigurations.html#cfn-bcmdataexports-export-destinationconfigurations-s3destination) + */ + override fun s3Destination(): Any = unwrap(this).getS3Destination() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): + DestinationConfigurationsProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.bcmdataexports.CfnExport.DestinationConfigurationsProperty): + DestinationConfigurationsProperty = CdkObjectWrappers.wrap(cdkObject) as? + DestinationConfigurationsProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: DestinationConfigurationsProperty): + software.amazon.awscdk.services.bcmdataexports.CfnExport.DestinationConfigurationsProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.bcmdataexports.CfnExport.DestinationConfigurationsProperty + } + } + + /** + * The details that are available for an export. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bcmdataexports.*; + * ExportProperty exportProperty = ExportProperty.builder() + * .dataQuery(DataQueryProperty.builder() + * .queryStatement("queryStatement") + * // the properties below are optional + * .tableConfigurations(Map.of( + * "tableConfigurationsKey", Map.of( + * "tableConfigurationsKey", "tableConfigurations"))) + * .build()) + * .destinationConfigurations(DestinationConfigurationsProperty.builder() + * .s3Destination(S3DestinationProperty.builder() + * .s3Bucket("s3Bucket") + * .s3OutputConfigurations(S3OutputConfigurationsProperty.builder() + * .compression("compression") + * .format("format") + * .outputType("outputType") + * .overwrite("overwrite") + * .build()) + * .s3Prefix("s3Prefix") + * .s3Region("s3Region") + * .build()) + * .build()) + * .name("name") + * .refreshCadence(RefreshCadenceProperty.builder() + * .frequency("frequency") + * .build()) + * // the properties below are optional + * .description("description") + * .exportArn("exportArn") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-export.html) + */ + public interface ExportProperty { + /** + * The data query for this specific data export. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-export.html#cfn-bcmdataexports-export-export-dataquery) + */ + public fun dataQuery(): Any + + /** + * The description for this specific data export. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-export.html#cfn-bcmdataexports-export-export-description) + */ + public fun description(): String? = unwrap(this).getDescription() + + /** + * The destination configuration for this specific data export. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-export.html#cfn-bcmdataexports-export-export-destinationconfigurations) + */ + public fun destinationConfigurations(): Any + + /** + * The Amazon Resource Name (ARN) for this export. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-export.html#cfn-bcmdataexports-export-export-exportarn) + */ + public fun exportArn(): String? = unwrap(this).getExportArn() + + /** + * The name of this specific data export. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-export.html#cfn-bcmdataexports-export-export-name) + */ + public fun name(): String + + /** + * The cadence for AWS to update the export in your S3 bucket. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-export.html#cfn-bcmdataexports-export-export-refreshcadence) + */ + public fun refreshCadence(): Any + + /** + * A builder for [ExportProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param dataQuery The data query for this specific data export. + */ + public fun dataQuery(dataQuery: IResolvable) + + /** + * @param dataQuery The data query for this specific data export. + */ + public fun dataQuery(dataQuery: DataQueryProperty) + + /** + * @param dataQuery The data query for this specific data export. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("37fd819f4775aea98062114c02ffc38dcc387847496df5b5bdee6087932125c1") + public fun dataQuery(dataQuery: DataQueryProperty.Builder.() -> Unit) + + /** + * @param description The description for this specific data export. + */ + public fun description(description: String) + + /** + * @param destinationConfigurations The destination configuration for this specific data + * export. + */ + public fun destinationConfigurations(destinationConfigurations: IResolvable) + + /** + * @param destinationConfigurations The destination configuration for this specific data + * export. + */ + public + fun destinationConfigurations(destinationConfigurations: DestinationConfigurationsProperty) + + /** + * @param destinationConfigurations The destination configuration for this specific data + * export. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("43909252005d375776f6cdad98b9c792b723c428e584fd7cbafc68332aff4459") + public + fun destinationConfigurations(destinationConfigurations: DestinationConfigurationsProperty.Builder.() -> Unit) + + /** + * @param exportArn The Amazon Resource Name (ARN) for this export. + */ + public fun exportArn(exportArn: String) + + /** + * @param name The name of this specific data export. + */ + public fun name(name: String) + + /** + * @param refreshCadence The cadence for AWS to update the export in your S3 bucket. + */ + public fun refreshCadence(refreshCadence: IResolvable) + + /** + * @param refreshCadence The cadence for AWS to update the export in your S3 bucket. + */ + public fun refreshCadence(refreshCadence: RefreshCadenceProperty) + + /** + * @param refreshCadence The cadence for AWS to update the export in your S3 bucket. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("b2c8f10bdfc68bae47889a6cffbd12d62d0da314e0cb2d434eb4bc2cfda11486") + public fun refreshCadence(refreshCadence: RefreshCadenceProperty.Builder.() -> Unit) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.bcmdataexports.CfnExport.ExportProperty.Builder = + software.amazon.awscdk.services.bcmdataexports.CfnExport.ExportProperty.builder() + + /** + * @param dataQuery The data query for this specific data export. + */ + override fun dataQuery(dataQuery: IResolvable) { + cdkBuilder.dataQuery(dataQuery.let(IResolvable::unwrap)) + } + + /** + * @param dataQuery The data query for this specific data export. + */ + override fun dataQuery(dataQuery: DataQueryProperty) { + cdkBuilder.dataQuery(dataQuery.let(DataQueryProperty::unwrap)) + } + + /** + * @param dataQuery The data query for this specific data export. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("37fd819f4775aea98062114c02ffc38dcc387847496df5b5bdee6087932125c1") + override fun dataQuery(dataQuery: DataQueryProperty.Builder.() -> Unit): Unit = + dataQuery(DataQueryProperty(dataQuery)) + + /** + * @param description The description for this specific data export. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * @param destinationConfigurations The destination configuration for this specific data + * export. + */ + override fun destinationConfigurations(destinationConfigurations: IResolvable) { + cdkBuilder.destinationConfigurations(destinationConfigurations.let(IResolvable::unwrap)) + } + + /** + * @param destinationConfigurations The destination configuration for this specific data + * export. + */ + override + fun destinationConfigurations(destinationConfigurations: DestinationConfigurationsProperty) { + cdkBuilder.destinationConfigurations(destinationConfigurations.let(DestinationConfigurationsProperty::unwrap)) + } + + /** + * @param destinationConfigurations The destination configuration for this specific data + * export. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("43909252005d375776f6cdad98b9c792b723c428e584fd7cbafc68332aff4459") + override + fun destinationConfigurations(destinationConfigurations: DestinationConfigurationsProperty.Builder.() -> Unit): + Unit = + destinationConfigurations(DestinationConfigurationsProperty(destinationConfigurations)) + + /** + * @param exportArn The Amazon Resource Name (ARN) for this export. + */ + override fun exportArn(exportArn: String) { + cdkBuilder.exportArn(exportArn) + } + + /** + * @param name The name of this specific data export. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + /** + * @param refreshCadence The cadence for AWS to update the export in your S3 bucket. + */ + override fun refreshCadence(refreshCadence: IResolvable) { + cdkBuilder.refreshCadence(refreshCadence.let(IResolvable::unwrap)) + } + + /** + * @param refreshCadence The cadence for AWS to update the export in your S3 bucket. + */ + override fun refreshCadence(refreshCadence: RefreshCadenceProperty) { + cdkBuilder.refreshCadence(refreshCadence.let(RefreshCadenceProperty::unwrap)) + } + + /** + * @param refreshCadence The cadence for AWS to update the export in your S3 bucket. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("b2c8f10bdfc68bae47889a6cffbd12d62d0da314e0cb2d434eb4bc2cfda11486") + override fun refreshCadence(refreshCadence: RefreshCadenceProperty.Builder.() -> Unit): Unit = + refreshCadence(RefreshCadenceProperty(refreshCadence)) + + public fun build(): software.amazon.awscdk.services.bcmdataexports.CfnExport.ExportProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.bcmdataexports.CfnExport.ExportProperty, + ) : CdkObject(cdkObject), ExportProperty { + /** + * The data query for this specific data export. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-export.html#cfn-bcmdataexports-export-export-dataquery) + */ + override fun dataQuery(): Any = unwrap(this).getDataQuery() + + /** + * The description for this specific data export. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-export.html#cfn-bcmdataexports-export-export-description) + */ + override fun description(): String? = unwrap(this).getDescription() + + /** + * The destination configuration for this specific data export. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-export.html#cfn-bcmdataexports-export-export-destinationconfigurations) + */ + override fun destinationConfigurations(): Any = unwrap(this).getDestinationConfigurations() + + /** + * The Amazon Resource Name (ARN) for this export. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-export.html#cfn-bcmdataexports-export-export-exportarn) + */ + override fun exportArn(): String? = unwrap(this).getExportArn() + + /** + * The name of this specific data export. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-export.html#cfn-bcmdataexports-export-export-name) + */ + override fun name(): String = unwrap(this).getName() + + /** + * The cadence for AWS to update the export in your S3 bucket. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-export.html#cfn-bcmdataexports-export-export-refreshcadence) + */ + override fun refreshCadence(): Any = unwrap(this).getRefreshCadence() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): ExportProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.bcmdataexports.CfnExport.ExportProperty): + ExportProperty = CdkObjectWrappers.wrap(cdkObject) as? ExportProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: ExportProperty): + software.amazon.awscdk.services.bcmdataexports.CfnExport.ExportProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.bcmdataexports.CfnExport.ExportProperty + } + } + + /** + * The cadence for AWS to update the data export in your S3 bucket. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bcmdataexports.*; + * RefreshCadenceProperty refreshCadenceProperty = RefreshCadenceProperty.builder() + * .frequency("frequency") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-refreshcadence.html) + */ + public interface RefreshCadenceProperty { + /** + * The frequency that data exports are updated. + * + * The export refreshes each time the source data updates, up to three times daily. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-refreshcadence.html#cfn-bcmdataexports-export-refreshcadence-frequency) + */ + public fun frequency(): String + + /** + * A builder for [RefreshCadenceProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param frequency The frequency that data exports are updated. + * The export refreshes each time the source data updates, up to three times daily. + */ + public fun frequency(frequency: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.bcmdataexports.CfnExport.RefreshCadenceProperty.Builder = + software.amazon.awscdk.services.bcmdataexports.CfnExport.RefreshCadenceProperty.builder() + + /** + * @param frequency The frequency that data exports are updated. + * The export refreshes each time the source data updates, up to three times daily. + */ + override fun frequency(frequency: String) { + cdkBuilder.frequency(frequency) + } + + public fun build(): + software.amazon.awscdk.services.bcmdataexports.CfnExport.RefreshCadenceProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.bcmdataexports.CfnExport.RefreshCadenceProperty, + ) : CdkObject(cdkObject), RefreshCadenceProperty { + /** + * The frequency that data exports are updated. + * + * The export refreshes each time the source data updates, up to three times daily. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-refreshcadence.html#cfn-bcmdataexports-export-refreshcadence-frequency) + */ + override fun frequency(): String = unwrap(this).getFrequency() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): RefreshCadenceProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.bcmdataexports.CfnExport.RefreshCadenceProperty): + RefreshCadenceProperty = CdkObjectWrappers.wrap(cdkObject) as? RefreshCadenceProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: RefreshCadenceProperty): + software.amazon.awscdk.services.bcmdataexports.CfnExport.RefreshCadenceProperty = (wrapped + as CdkObject).cdkObject as + software.amazon.awscdk.services.bcmdataexports.CfnExport.RefreshCadenceProperty + } + } + + /** + * The tag structure that contains a tag key and value. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bcmdataexports.*; + * ResourceTagProperty resourceTagProperty = ResourceTagProperty.builder() + * .key("key") + * .value("value") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-resourcetag.html) + */ + public interface ResourceTagProperty { + /** + * The key that's associated with the tag. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-resourcetag.html#cfn-bcmdataexports-export-resourcetag-key) + */ + public fun key(): String + + /** + * The value that's associated with the tag. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-resourcetag.html#cfn-bcmdataexports-export-resourcetag-value) + */ + public fun `value`(): String + + /** + * A builder for [ResourceTagProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param key The key that's associated with the tag. + */ + public fun key(key: String) + + /** + * @param value The value that's associated with the tag. + */ + public fun `value`(`value`: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.bcmdataexports.CfnExport.ResourceTagProperty.Builder = + software.amazon.awscdk.services.bcmdataexports.CfnExport.ResourceTagProperty.builder() + + /** + * @param key The key that's associated with the tag. + */ + override fun key(key: String) { + cdkBuilder.key(key) + } + + /** + * @param value The value that's associated with the tag. + */ + override fun `value`(`value`: String) { + cdkBuilder.`value`(`value`) + } + + public fun build(): + software.amazon.awscdk.services.bcmdataexports.CfnExport.ResourceTagProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.bcmdataexports.CfnExport.ResourceTagProperty, + ) : CdkObject(cdkObject), ResourceTagProperty { + /** + * The key that's associated with the tag. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-resourcetag.html#cfn-bcmdataexports-export-resourcetag-key) + */ + override fun key(): String = unwrap(this).getKey() + + /** + * The value that's associated with the tag. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-resourcetag.html#cfn-bcmdataexports-export-resourcetag-value) + */ + override fun `value`(): String = unwrap(this).getValue() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): ResourceTagProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.bcmdataexports.CfnExport.ResourceTagProperty): + ResourceTagProperty = CdkObjectWrappers.wrap(cdkObject) as? ResourceTagProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: ResourceTagProperty): + software.amazon.awscdk.services.bcmdataexports.CfnExport.ResourceTagProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.bcmdataexports.CfnExport.ResourceTagProperty + } + } + + /** + * Describes the destination Amazon Simple Storage Service (Amazon S3) bucket name and object keys + * of a data exports file. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bcmdataexports.*; + * S3DestinationProperty s3DestinationProperty = S3DestinationProperty.builder() + * .s3Bucket("s3Bucket") + * .s3OutputConfigurations(S3OutputConfigurationsProperty.builder() + * .compression("compression") + * .format("format") + * .outputType("outputType") + * .overwrite("overwrite") + * .build()) + * .s3Prefix("s3Prefix") + * .s3Region("s3Region") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-s3destination.html) + */ + public interface S3DestinationProperty { + /** + * The name of the Amazon S3 bucket used as the destination of a data export file. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-s3destination.html#cfn-bcmdataexports-export-s3destination-s3bucket) + */ + public fun s3Bucket(): String + + /** + * The output configuration for the data export. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-s3destination.html#cfn-bcmdataexports-export-s3destination-s3outputconfigurations) + */ + public fun s3OutputConfigurations(): Any + + /** + * The S3 path prefix you want prepended to the name of your data export. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-s3destination.html#cfn-bcmdataexports-export-s3destination-s3prefix) + */ + public fun s3Prefix(): String + + /** + * The S3 bucket Region. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-s3destination.html#cfn-bcmdataexports-export-s3destination-s3region) + */ + public fun s3Region(): String + + /** + * A builder for [S3DestinationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param s3Bucket The name of the Amazon S3 bucket used as the destination of a data export + * file. + */ + public fun s3Bucket(s3Bucket: String) + + /** + * @param s3OutputConfigurations The output configuration for the data export. + */ + public fun s3OutputConfigurations(s3OutputConfigurations: IResolvable) + + /** + * @param s3OutputConfigurations The output configuration for the data export. + */ + public fun s3OutputConfigurations(s3OutputConfigurations: S3OutputConfigurationsProperty) + + /** + * @param s3OutputConfigurations The output configuration for the data export. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("c38eeafbf61853827b2be8535fb69bd2ecbe5e2343d1bd03c39248969c22540d") + public + fun s3OutputConfigurations(s3OutputConfigurations: S3OutputConfigurationsProperty.Builder.() -> Unit) + + /** + * @param s3Prefix The S3 path prefix you want prepended to the name of your data export. + */ + public fun s3Prefix(s3Prefix: String) + + /** + * @param s3Region The S3 bucket Region. + */ + public fun s3Region(s3Region: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.bcmdataexports.CfnExport.S3DestinationProperty.Builder = + software.amazon.awscdk.services.bcmdataexports.CfnExport.S3DestinationProperty.builder() + + /** + * @param s3Bucket The name of the Amazon S3 bucket used as the destination of a data export + * file. + */ + override fun s3Bucket(s3Bucket: String) { + cdkBuilder.s3Bucket(s3Bucket) + } + + /** + * @param s3OutputConfigurations The output configuration for the data export. + */ + override fun s3OutputConfigurations(s3OutputConfigurations: IResolvable) { + cdkBuilder.s3OutputConfigurations(s3OutputConfigurations.let(IResolvable::unwrap)) + } + + /** + * @param s3OutputConfigurations The output configuration for the data export. + */ + override fun s3OutputConfigurations(s3OutputConfigurations: S3OutputConfigurationsProperty) { + cdkBuilder.s3OutputConfigurations(s3OutputConfigurations.let(S3OutputConfigurationsProperty::unwrap)) + } + + /** + * @param s3OutputConfigurations The output configuration for the data export. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("c38eeafbf61853827b2be8535fb69bd2ecbe5e2343d1bd03c39248969c22540d") + override + fun s3OutputConfigurations(s3OutputConfigurations: S3OutputConfigurationsProperty.Builder.() -> Unit): + Unit = s3OutputConfigurations(S3OutputConfigurationsProperty(s3OutputConfigurations)) + + /** + * @param s3Prefix The S3 path prefix you want prepended to the name of your data export. + */ + override fun s3Prefix(s3Prefix: String) { + cdkBuilder.s3Prefix(s3Prefix) + } + + /** + * @param s3Region The S3 bucket Region. + */ + override fun s3Region(s3Region: String) { + cdkBuilder.s3Region(s3Region) + } + + public fun build(): + software.amazon.awscdk.services.bcmdataexports.CfnExport.S3DestinationProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.bcmdataexports.CfnExport.S3DestinationProperty, + ) : CdkObject(cdkObject), S3DestinationProperty { + /** + * The name of the Amazon S3 bucket used as the destination of a data export file. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-s3destination.html#cfn-bcmdataexports-export-s3destination-s3bucket) + */ + override fun s3Bucket(): String = unwrap(this).getS3Bucket() + + /** + * The output configuration for the data export. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-s3destination.html#cfn-bcmdataexports-export-s3destination-s3outputconfigurations) + */ + override fun s3OutputConfigurations(): Any = unwrap(this).getS3OutputConfigurations() + + /** + * The S3 path prefix you want prepended to the name of your data export. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-s3destination.html#cfn-bcmdataexports-export-s3destination-s3prefix) + */ + override fun s3Prefix(): String = unwrap(this).getS3Prefix() + + /** + * The S3 bucket Region. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-s3destination.html#cfn-bcmdataexports-export-s3destination-s3region) + */ + override fun s3Region(): String = unwrap(this).getS3Region() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): S3DestinationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.bcmdataexports.CfnExport.S3DestinationProperty): + S3DestinationProperty = CdkObjectWrappers.wrap(cdkObject) as? S3DestinationProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: S3DestinationProperty): + software.amazon.awscdk.services.bcmdataexports.CfnExport.S3DestinationProperty = (wrapped + as CdkObject).cdkObject as + software.amazon.awscdk.services.bcmdataexports.CfnExport.S3DestinationProperty + } + } + + /** + * The compression type, file format, and overwrite preference for the data export. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bcmdataexports.*; + * S3OutputConfigurationsProperty s3OutputConfigurationsProperty = + * S3OutputConfigurationsProperty.builder() + * .compression("compression") + * .format("format") + * .outputType("outputType") + * .overwrite("overwrite") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-s3outputconfigurations.html) + */ + public interface S3OutputConfigurationsProperty { + /** + * The compression type for the data export. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-s3outputconfigurations.html#cfn-bcmdataexports-export-s3outputconfigurations-compression) + */ + public fun compression(): String + + /** + * The file format for the data export. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-s3outputconfigurations.html#cfn-bcmdataexports-export-s3outputconfigurations-format) + */ + public fun format(): String + + /** + * The output type for the data export. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-s3outputconfigurations.html#cfn-bcmdataexports-export-s3outputconfigurations-outputtype) + */ + public fun outputType(): String + + /** + * The rule to follow when generating a version of the data export file. + * + * You have the choice to overwrite the previous version or to be delivered in addition to the + * previous versions. Overwriting exports can save on Amazon S3 storage costs. Creating new export + * versions allows you to track the changes in cost and usage data over time. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-s3outputconfigurations.html#cfn-bcmdataexports-export-s3outputconfigurations-overwrite) + */ + public fun overwrite(): String + + /** + * A builder for [S3OutputConfigurationsProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param compression The compression type for the data export. + */ + public fun compression(compression: String) + + /** + * @param format The file format for the data export. + */ + public fun format(format: String) + + /** + * @param outputType The output type for the data export. + */ + public fun outputType(outputType: String) + + /** + * @param overwrite The rule to follow when generating a version of the data export file. + * You have the choice to overwrite the previous version or to be delivered in addition to the + * previous versions. Overwriting exports can save on Amazon S3 storage costs. Creating new + * export versions allows you to track the changes in cost and usage data over time. + */ + public fun overwrite(overwrite: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.bcmdataexports.CfnExport.S3OutputConfigurationsProperty.Builder + = + software.amazon.awscdk.services.bcmdataexports.CfnExport.S3OutputConfigurationsProperty.builder() + + /** + * @param compression The compression type for the data export. + */ + override fun compression(compression: String) { + cdkBuilder.compression(compression) + } + + /** + * @param format The file format for the data export. + */ + override fun format(format: String) { + cdkBuilder.format(format) + } + + /** + * @param outputType The output type for the data export. + */ + override fun outputType(outputType: String) { + cdkBuilder.outputType(outputType) + } + + /** + * @param overwrite The rule to follow when generating a version of the data export file. + * You have the choice to overwrite the previous version or to be delivered in addition to the + * previous versions. Overwriting exports can save on Amazon S3 storage costs. Creating new + * export versions allows you to track the changes in cost and usage data over time. + */ + override fun overwrite(overwrite: String) { + cdkBuilder.overwrite(overwrite) + } + + public fun build(): + software.amazon.awscdk.services.bcmdataexports.CfnExport.S3OutputConfigurationsProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.bcmdataexports.CfnExport.S3OutputConfigurationsProperty, + ) : CdkObject(cdkObject), S3OutputConfigurationsProperty { + /** + * The compression type for the data export. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-s3outputconfigurations.html#cfn-bcmdataexports-export-s3outputconfigurations-compression) + */ + override fun compression(): String = unwrap(this).getCompression() + + /** + * The file format for the data export. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-s3outputconfigurations.html#cfn-bcmdataexports-export-s3outputconfigurations-format) + */ + override fun format(): String = unwrap(this).getFormat() + + /** + * The output type for the data export. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-s3outputconfigurations.html#cfn-bcmdataexports-export-s3outputconfigurations-outputtype) + */ + override fun outputType(): String = unwrap(this).getOutputType() + + /** + * The rule to follow when generating a version of the data export file. + * + * You have the choice to overwrite the previous version or to be delivered in addition to the + * previous versions. Overwriting exports can save on Amazon S3 storage costs. Creating new + * export versions allows you to track the changes in cost and usage data over time. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bcmdataexports-export-s3outputconfigurations.html#cfn-bcmdataexports-export-s3outputconfigurations-overwrite) + */ + override fun overwrite(): String = unwrap(this).getOverwrite() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): S3OutputConfigurationsProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.bcmdataexports.CfnExport.S3OutputConfigurationsProperty): + S3OutputConfigurationsProperty = CdkObjectWrappers.wrap(cdkObject) as? + S3OutputConfigurationsProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: S3OutputConfigurationsProperty): + software.amazon.awscdk.services.bcmdataexports.CfnExport.S3OutputConfigurationsProperty = + (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.bcmdataexports.CfnExport.S3OutputConfigurationsProperty + } + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bcmdataexports/CfnExportProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bcmdataexports/CfnExportProps.kt new file mode 100644 index 0000000000..d4a80f9774 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bcmdataexports/CfnExportProps.kt @@ -0,0 +1,182 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.bcmdataexports + +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.Unit +import kotlin.collections.List +import kotlin.jvm.JvmName + +/** + * Properties for defining a `CfnExport`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bcmdataexports.*; + * CfnExportProps cfnExportProps = CfnExportProps.builder() + * .export(ExportProperty.builder() + * .dataQuery(DataQueryProperty.builder() + * .queryStatement("queryStatement") + * // the properties below are optional + * .tableConfigurations(Map.of( + * "tableConfigurationsKey", Map.of( + * "tableConfigurationsKey", "tableConfigurations"))) + * .build()) + * .destinationConfigurations(DestinationConfigurationsProperty.builder() + * .s3Destination(S3DestinationProperty.builder() + * .s3Bucket("s3Bucket") + * .s3OutputConfigurations(S3OutputConfigurationsProperty.builder() + * .compression("compression") + * .format("format") + * .outputType("outputType") + * .overwrite("overwrite") + * .build()) + * .s3Prefix("s3Prefix") + * .s3Region("s3Region") + * .build()) + * .build()) + * .name("name") + * .refreshCadence(RefreshCadenceProperty.builder() + * .frequency("frequency") + * .build()) + * // the properties below are optional + * .description("description") + * .exportArn("exportArn") + * .build()) + * // the properties below are optional + * .tags(List.of(ResourceTagProperty.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bcmdataexports-export.html) + */ +public interface CfnExportProps { + /** + * The details that are available for an export. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bcmdataexports-export.html#cfn-bcmdataexports-export-export) + */ + public fun export(): Any + + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bcmdataexports-export.html#cfn-bcmdataexports-export-tags) + */ + public fun tags(): List = + unwrap(this).getTags()?.map(CfnExport.ResourceTagProperty::wrap) ?: emptyList() + + /** + * A builder for [CfnExportProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param export The details that are available for an export. + */ + public fun export(export: IResolvable) + + /** + * @param export The details that are available for an export. + */ + public fun export(export: CfnExport.ExportProperty) + + /** + * @param export The details that are available for an export. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("fab601fddc38fb1b87676f741edd5dbfe6c38ec7726c7dd36a063c06b3528929") + public fun export(export: CfnExport.ExportProperty.Builder.() -> Unit) + + /** + * @param tags the value to be set. + */ + public fun tags(tags: List) + + /** + * @param tags the value to be set. + */ + public fun tags(vararg tags: CfnExport.ResourceTagProperty) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.services.bcmdataexports.CfnExportProps.Builder = + software.amazon.awscdk.services.bcmdataexports.CfnExportProps.builder() + + /** + * @param export The details that are available for an export. + */ + override fun export(export: IResolvable) { + cdkBuilder.export(export.let(IResolvable::unwrap)) + } + + /** + * @param export The details that are available for an export. + */ + override fun export(export: CfnExport.ExportProperty) { + cdkBuilder.export(export.let(CfnExport.ExportProperty::unwrap)) + } + + /** + * @param export The details that are available for an export. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("fab601fddc38fb1b87676f741edd5dbfe6c38ec7726c7dd36a063c06b3528929") + override fun export(export: CfnExport.ExportProperty.Builder.() -> Unit): Unit = + export(CfnExport.ExportProperty(export)) + + /** + * @param tags the value to be set. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnExport.ResourceTagProperty::unwrap)) + } + + /** + * @param tags the value to be set. + */ + override fun tags(vararg tags: CfnExport.ResourceTagProperty): Unit = tags(tags.toList()) + + public fun build(): software.amazon.awscdk.services.bcmdataexports.CfnExportProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.bcmdataexports.CfnExportProps, + ) : CdkObject(cdkObject), CfnExportProps { + /** + * The details that are available for an export. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bcmdataexports-export.html#cfn-bcmdataexports-export-export) + */ + override fun export(): Any = unwrap(this).getExport() + + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bcmdataexports-export.html#cfn-bcmdataexports-export-tags) + */ + override fun tags(): List = + unwrap(this).getTags()?.map(CfnExport.ResourceTagProperty::wrap) ?: emptyList() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnExportProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.bcmdataexports.CfnExportProps): + CfnExportProps = CdkObjectWrappers.wrap(cdkObject) as? CfnExportProps ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnExportProps): + software.amazon.awscdk.services.bcmdataexports.CfnExportProps = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.bcmdataexports.CfnExportProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bedrock/CfnAgent.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bedrock/CfnAgent.kt new file mode 100644 index 0000000000..b480347313 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bedrock/CfnAgent.kt @@ -0,0 +1,2703 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.bedrock + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.ITaggableV2 +import io.cloudshiftdev.awscdk.TagManager +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.Boolean +import kotlin.Number +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.collections.Map +import kotlin.jvm.JvmName +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * Specifies an agent as a resource in a top-level template. Minimally, you must specify the + * following properties:. + * + * * AgentName – Specify a name for the agent. + * * AgentResourceRoleArn – Specify the Amazon Resource Name (ARN) of the service role with + * permissions to invoke API operations on the agent. For more information, see [Create a service role + * for Agents for Amazon + * Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-permissions.html) . + * * FoundationModel – Specify the model ID of a foundation model to use when invoking the agent. + * For more information, see [Supported regions and models for Agents for Amazon + * Bedrock](https://docs.aws.amazon.com//bedrock/latest/userguide/agents-supported.html) . + * + * For more information about using agents in Amazon Bedrock , see [Agents for Amazon + * Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/agents.html) . + * + * See the *Properties* section below for descriptions of both the required and optional properties. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bedrock.*; + * CfnAgent cfnAgent = CfnAgent.Builder.create(this, "MyCfnAgent") + * .agentName("agentName") + * // the properties below are optional + * .actionGroups(List.of(AgentActionGroupProperty.builder() + * .actionGroupName("actionGroupName") + * // the properties below are optional + * .actionGroupExecutor(ActionGroupExecutorProperty.builder() + * .lambda("lambda") + * .build()) + * .actionGroupState("actionGroupState") + * .apiSchema(APISchemaProperty.builder() + * .payload("payload") + * .s3(S3IdentifierProperty.builder() + * .s3BucketName("s3BucketName") + * .s3ObjectKey("s3ObjectKey") + * .build()) + * .build()) + * .description("description") + * .parentActionGroupSignature("parentActionGroupSignature") + * .skipResourceInUseCheckOnDelete(false) + * .build())) + * .agentResourceRoleArn("agentResourceRoleArn") + * .autoPrepare(false) + * .customerEncryptionKeyArn("customerEncryptionKeyArn") + * .description("description") + * .foundationModel("foundationModel") + * .idleSessionTtlInSeconds(123) + * .instruction("instruction") + * .knowledgeBases(List.of(AgentKnowledgeBaseProperty.builder() + * .description("description") + * .knowledgeBaseId("knowledgeBaseId") + * // the properties below are optional + * .knowledgeBaseState("knowledgeBaseState") + * .build())) + * .promptOverrideConfiguration(PromptOverrideConfigurationProperty.builder() + * .promptConfigurations(List.of(PromptConfigurationProperty.builder() + * .basePromptTemplate("basePromptTemplate") + * .inferenceConfiguration(InferenceConfigurationProperty.builder() + * .maximumLength(123) + * .stopSequences(List.of("stopSequences")) + * .temperature(123) + * .topK(123) + * .topP(123) + * .build()) + * .parserMode("parserMode") + * .promptCreationMode("promptCreationMode") + * .promptState("promptState") + * .promptType("promptType") + * .build())) + * // the properties below are optional + * .overrideLambda("overrideLambda") + * .build()) + * .skipResourceInUseCheckOnDelete(false) + * .tags(Map.of( + * "tagsKey", "tags")) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html) + */ +public open class CfnAgent( + cdkObject: software.amazon.awscdk.services.bedrock.CfnAgent, +) : CfnResource(cdkObject), IInspectable, ITaggableV2 { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnAgentProps, + ) : + this(software.amazon.awscdk.services.bedrock.CfnAgent(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnAgentProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnAgentProps.Builder.() -> Unit, + ) : this(scope, id, CfnAgentProps(props) + ) + + /** + * The action groups that belong to an agent. + */ + public open fun actionGroups(): Any? = unwrap(this).getActionGroups() + + /** + * The action groups that belong to an agent. + */ + public open fun actionGroups(`value`: IResolvable) { + unwrap(this).setActionGroups(`value`.let(IResolvable::unwrap)) + } + + /** + * The action groups that belong to an agent. + */ + public open fun actionGroups(`value`: List) { + unwrap(this).setActionGroups(`value`.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * The action groups that belong to an agent. + */ + public open fun actionGroups(vararg `value`: Any): Unit = actionGroups(`value`.toList()) + + /** + * The name of the agent. + */ + public open fun agentName(): String = unwrap(this).getAgentName() + + /** + * The name of the agent. + */ + public open fun agentName(`value`: String) { + unwrap(this).setAgentName(`value`) + } + + /** + * The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on the + * agent. + */ + public open fun agentResourceRoleArn(): String? = unwrap(this).getAgentResourceRoleArn() + + /** + * The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on the + * agent. + */ + public open fun agentResourceRoleArn(`value`: String) { + unwrap(this).setAgentResourceRoleArn(`value`) + } + + /** + * The Amazon Resource Name (ARN) of the agent. + */ + public open fun attrAgentArn(): String = unwrap(this).getAttrAgentArn() + + /** + * The unique identifier of the agent. + */ + public open fun attrAgentId(): String = unwrap(this).getAttrAgentId() + + /** + * The status of the agent and whether it is ready for use. The following statuses are possible:. + * + * * CREATING – The agent is being created. + * * PREPARING – The agent is being prepared. + * * PREPARED – The agent is prepared and ready to be invoked. + * * NOT_PREPARED – The agent has been created but not yet prepared. + * * FAILED – The agent API operation failed. + * * UPDATING – The agent is being updated. + * * DELETING – The agent is being deleted. + */ + public open fun attrAgentStatus(): String = unwrap(this).getAttrAgentStatus() + + /** + * The version of the agent. + */ + public open fun attrAgentVersion(): String = unwrap(this).getAttrAgentVersion() + + /** + * The time at which the agent was created. + */ + public open fun attrCreatedAt(): String = unwrap(this).getAttrCreatedAt() + + /** + * Contains reasons that the agent-related API that you invoked failed. + */ + public open fun attrFailureReasons(): List = unwrap(this).getAttrFailureReasons() + + /** + * The time at which the agent was last prepared. + */ + public open fun attrPreparedAt(): String = unwrap(this).getAttrPreparedAt() + + /** + * Contains recommended actions to take for the agent-related API that you invoked to succeed. + */ + public open fun attrRecommendedActions(): List = unwrap(this).getAttrRecommendedActions() + + /** + * The time at which the agent was last updated. + */ + public open fun attrUpdatedAt(): String = unwrap(this).getAttrUpdatedAt() + + /** + * Specifies whether to automatically update the `DRAFT` version of the agent after making changes + * to the agent. + */ + public open fun autoPrepare(): Any? = unwrap(this).getAutoPrepare() + + /** + * Specifies whether to automatically update the `DRAFT` version of the agent after making changes + * to the agent. + */ + public open fun autoPrepare(`value`: Boolean) { + unwrap(this).setAutoPrepare(`value`) + } + + /** + * Specifies whether to automatically update the `DRAFT` version of the agent after making changes + * to the agent. + */ + public open fun autoPrepare(`value`: IResolvable) { + unwrap(this).setAutoPrepare(`value`.let(IResolvable::unwrap)) + } + + /** + * Tag Manager which manages the tags for this resource. + */ + public override fun cdkTagManager(): TagManager = + unwrap(this).getCdkTagManager().let(TagManager::wrap) + + /** + * The Amazon Resource Name (ARN) of the AWS KMS key that encrypts the agent. + */ + public open fun customerEncryptionKeyArn(): String? = unwrap(this).getCustomerEncryptionKeyArn() + + /** + * The Amazon Resource Name (ARN) of the AWS KMS key that encrypts the agent. + */ + public open fun customerEncryptionKeyArn(`value`: String) { + unwrap(this).setCustomerEncryptionKeyArn(`value`) + } + + /** + * The description of the agent. + */ + public open fun description(): String? = unwrap(this).getDescription() + + /** + * The description of the agent. + */ + public open fun description(`value`: String) { + unwrap(this).setDescription(`value`) + } + + /** + * The foundation model used for orchestration by the agent. + */ + public open fun foundationModel(): String? = unwrap(this).getFoundationModel() + + /** + * The foundation model used for orchestration by the agent. + */ + public open fun foundationModel(`value`: String) { + unwrap(this).setFoundationModel(`value`) + } + + /** + * The number of seconds for which Amazon Bedrock keeps information about a user's conversation + * with the agent. + */ + public open fun idleSessionTtlInSeconds(): Number? = unwrap(this).getIdleSessionTtlInSeconds() + + /** + * The number of seconds for which Amazon Bedrock keeps information about a user's conversation + * with the agent. + */ + public open fun idleSessionTtlInSeconds(`value`: Number) { + unwrap(this).setIdleSessionTtlInSeconds(`value`) + } + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * Instructions that tell the agent what it should do and how it should interact with users. + */ + public open fun instruction(): String? = unwrap(this).getInstruction() + + /** + * Instructions that tell the agent what it should do and how it should interact with users. + */ + public open fun instruction(`value`: String) { + unwrap(this).setInstruction(`value`) + } + + /** + * The knowledge bases associated with the agent. + */ + public open fun knowledgeBases(): Any? = unwrap(this).getKnowledgeBases() + + /** + * The knowledge bases associated with the agent. + */ + public open fun knowledgeBases(`value`: IResolvable) { + unwrap(this).setKnowledgeBases(`value`.let(IResolvable::unwrap)) + } + + /** + * The knowledge bases associated with the agent. + */ + public open fun knowledgeBases(`value`: List) { + unwrap(this).setKnowledgeBases(`value`.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * The knowledge bases associated with the agent. + */ + public open fun knowledgeBases(vararg `value`: Any): Unit = knowledgeBases(`value`.toList()) + + /** + * Contains configurations to override prompt templates in different parts of an agent sequence. + */ + public open fun promptOverrideConfiguration(): Any? = + unwrap(this).getPromptOverrideConfiguration() + + /** + * Contains configurations to override prompt templates in different parts of an agent sequence. + */ + public open fun promptOverrideConfiguration(`value`: IResolvable) { + unwrap(this).setPromptOverrideConfiguration(`value`.let(IResolvable::unwrap)) + } + + /** + * Contains configurations to override prompt templates in different parts of an agent sequence. + */ + public open fun promptOverrideConfiguration(`value`: PromptOverrideConfigurationProperty) { + unwrap(this).setPromptOverrideConfiguration(`value`.let(PromptOverrideConfigurationProperty::unwrap)) + } + + /** + * Contains configurations to override prompt templates in different parts of an agent sequence. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("910512d1ffbfb09cb0f740546a7e7856681d649dd88fc9ce9c47c2775d1dc878") + public open + fun promptOverrideConfiguration(`value`: PromptOverrideConfigurationProperty.Builder.() -> Unit): + Unit = promptOverrideConfiguration(PromptOverrideConfigurationProperty(`value`)) + + /** + * Specifies whether to delete the resource even if it's in use. + */ + public open fun skipResourceInUseCheckOnDelete(): Any? = + unwrap(this).getSkipResourceInUseCheckOnDelete() + + /** + * Specifies whether to delete the resource even if it's in use. + */ + public open fun skipResourceInUseCheckOnDelete(`value`: Boolean) { + unwrap(this).setSkipResourceInUseCheckOnDelete(`value`) + } + + /** + * Specifies whether to delete the resource even if it's in use. + */ + public open fun skipResourceInUseCheckOnDelete(`value`: IResolvable) { + unwrap(this).setSkipResourceInUseCheckOnDelete(`value`.let(IResolvable::unwrap)) + } + + /** + * Metadata that you can assign to a resource as key-value pairs. + * + * For more information, see the following resources:. + */ + public open fun tags(): Map = unwrap(this).getTags() ?: emptyMap() + + /** + * Metadata that you can assign to a resource as key-value pairs. + * + * For more information, see the following resources:. + */ + public open fun tags(`value`: Map) { + unwrap(this).setTags(`value`) + } + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.bedrock.CfnAgent]. + */ + @CdkDslMarker + public interface Builder { + /** + * The action groups that belong to an agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-actiongroups) + * @param actionGroups The action groups that belong to an agent. + */ + public fun actionGroups(actionGroups: IResolvable) + + /** + * The action groups that belong to an agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-actiongroups) + * @param actionGroups The action groups that belong to an agent. + */ + public fun actionGroups(actionGroups: List) + + /** + * The action groups that belong to an agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-actiongroups) + * @param actionGroups The action groups that belong to an agent. + */ + public fun actionGroups(vararg actionGroups: Any) + + /** + * The name of the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-agentname) + * @param agentName The name of the agent. + */ + public fun agentName(agentName: String) + + /** + * The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on + * the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-agentresourcerolearn) + * @param agentResourceRoleArn The Amazon Resource Name (ARN) of the IAM role with permissions + * to invoke API operations on the agent. + */ + public fun agentResourceRoleArn(agentResourceRoleArn: String) + + /** + * Specifies whether to automatically update the `DRAFT` version of the agent after making + * changes to the agent. + * + * The `DRAFT` version can be continually iterated upon during internal development. By default, + * this value is `false` . + * + * Default: - false + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-autoprepare) + * @param autoPrepare Specifies whether to automatically update the `DRAFT` version of the agent + * after making changes to the agent. + */ + public fun autoPrepare(autoPrepare: Boolean) + + /** + * Specifies whether to automatically update the `DRAFT` version of the agent after making + * changes to the agent. + * + * The `DRAFT` version can be continually iterated upon during internal development. By default, + * this value is `false` . + * + * Default: - false + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-autoprepare) + * @param autoPrepare Specifies whether to automatically update the `DRAFT` version of the agent + * after making changes to the agent. + */ + public fun autoPrepare(autoPrepare: IResolvable) + + /** + * The Amazon Resource Name (ARN) of the AWS KMS key that encrypts the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-customerencryptionkeyarn) + * @param customerEncryptionKeyArn The Amazon Resource Name (ARN) of the AWS KMS key that + * encrypts the agent. + */ + public fun customerEncryptionKeyArn(customerEncryptionKeyArn: String) + + /** + * The description of the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-description) + * @param description The description of the agent. + */ + public fun description(description: String) + + /** + * The foundation model used for orchestration by the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-foundationmodel) + * @param foundationModel The foundation model used for orchestration by the agent. + */ + public fun foundationModel(foundationModel: String) + + /** + * The number of seconds for which Amazon Bedrock keeps information about a user's conversation + * with the agent. + * + * A user interaction remains active for the amount of time specified. If no conversation occurs + * during this time, the session expires and Amazon Bedrock deletes any data provided before the + * timeout. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-idlesessionttlinseconds) + * @param idleSessionTtlInSeconds The number of seconds for which Amazon Bedrock keeps + * information about a user's conversation with the agent. + */ + public fun idleSessionTtlInSeconds(idleSessionTtlInSeconds: Number) + + /** + * Instructions that tell the agent what it should do and how it should interact with users. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-instruction) + * @param instruction Instructions that tell the agent what it should do and how it should + * interact with users. + */ + public fun instruction(instruction: String) + + /** + * The knowledge bases associated with the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-knowledgebases) + * @param knowledgeBases The knowledge bases associated with the agent. + */ + public fun knowledgeBases(knowledgeBases: IResolvable) + + /** + * The knowledge bases associated with the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-knowledgebases) + * @param knowledgeBases The knowledge bases associated with the agent. + */ + public fun knowledgeBases(knowledgeBases: List) + + /** + * The knowledge bases associated with the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-knowledgebases) + * @param knowledgeBases The knowledge bases associated with the agent. + */ + public fun knowledgeBases(vararg knowledgeBases: Any) + + /** + * Contains configurations to override prompt templates in different parts of an agent sequence. + * + * For more information, see [Advanced + * prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-promptoverrideconfiguration) + * @param promptOverrideConfiguration Contains configurations to override prompt templates in + * different parts of an agent sequence. + */ + public fun promptOverrideConfiguration(promptOverrideConfiguration: IResolvable) + + /** + * Contains configurations to override prompt templates in different parts of an agent sequence. + * + * For more information, see [Advanced + * prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-promptoverrideconfiguration) + * @param promptOverrideConfiguration Contains configurations to override prompt templates in + * different parts of an agent sequence. + */ + public + fun promptOverrideConfiguration(promptOverrideConfiguration: PromptOverrideConfigurationProperty) + + /** + * Contains configurations to override prompt templates in different parts of an agent sequence. + * + * For more information, see [Advanced + * prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-promptoverrideconfiguration) + * @param promptOverrideConfiguration Contains configurations to override prompt templates in + * different parts of an agent sequence. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("9b61e2d46e1a572cddb4e9171b94f9069b7eddc6c44b643337fd8c78b6716e1f") + public + fun promptOverrideConfiguration(promptOverrideConfiguration: PromptOverrideConfigurationProperty.Builder.() -> Unit) + + /** + * Specifies whether to delete the resource even if it's in use. + * + * By default, this value is `false` . + * + * Default: - false + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-skipresourceinusecheckondelete) + * @param skipResourceInUseCheckOnDelete Specifies whether to delete the resource even if it's + * in use. + */ + public fun skipResourceInUseCheckOnDelete(skipResourceInUseCheckOnDelete: Boolean) + + /** + * Specifies whether to delete the resource even if it's in use. + * + * By default, this value is `false` . + * + * Default: - false + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-skipresourceinusecheckondelete) + * @param skipResourceInUseCheckOnDelete Specifies whether to delete the resource even if it's + * in use. + */ + public fun skipResourceInUseCheckOnDelete(skipResourceInUseCheckOnDelete: IResolvable) + + /** + * Metadata that you can assign to a resource as key-value pairs. For more information, see the + * following resources:. + * + * * [Tag naming limits and + * requirements](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions) + * * [Tagging best + * practices](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-best-practices) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-tags) + * @param tags Metadata that you can assign to a resource as key-value pairs. For more + * information, see the following resources:. + */ + public fun tags(tags: Map) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.services.bedrock.CfnAgent.Builder = + software.amazon.awscdk.services.bedrock.CfnAgent.Builder.create(scope, id) + + /** + * The action groups that belong to an agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-actiongroups) + * @param actionGroups The action groups that belong to an agent. + */ + override fun actionGroups(actionGroups: IResolvable) { + cdkBuilder.actionGroups(actionGroups.let(IResolvable::unwrap)) + } + + /** + * The action groups that belong to an agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-actiongroups) + * @param actionGroups The action groups that belong to an agent. + */ + override fun actionGroups(actionGroups: List) { + cdkBuilder.actionGroups(actionGroups.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * The action groups that belong to an agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-actiongroups) + * @param actionGroups The action groups that belong to an agent. + */ + override fun actionGroups(vararg actionGroups: Any): Unit = actionGroups(actionGroups.toList()) + + /** + * The name of the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-agentname) + * @param agentName The name of the agent. + */ + override fun agentName(agentName: String) { + cdkBuilder.agentName(agentName) + } + + /** + * The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on + * the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-agentresourcerolearn) + * @param agentResourceRoleArn The Amazon Resource Name (ARN) of the IAM role with permissions + * to invoke API operations on the agent. + */ + override fun agentResourceRoleArn(agentResourceRoleArn: String) { + cdkBuilder.agentResourceRoleArn(agentResourceRoleArn) + } + + /** + * Specifies whether to automatically update the `DRAFT` version of the agent after making + * changes to the agent. + * + * The `DRAFT` version can be continually iterated upon during internal development. By default, + * this value is `false` . + * + * Default: - false + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-autoprepare) + * @param autoPrepare Specifies whether to automatically update the `DRAFT` version of the agent + * after making changes to the agent. + */ + override fun autoPrepare(autoPrepare: Boolean) { + cdkBuilder.autoPrepare(autoPrepare) + } + + /** + * Specifies whether to automatically update the `DRAFT` version of the agent after making + * changes to the agent. + * + * The `DRAFT` version can be continually iterated upon during internal development. By default, + * this value is `false` . + * + * Default: - false + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-autoprepare) + * @param autoPrepare Specifies whether to automatically update the `DRAFT` version of the agent + * after making changes to the agent. + */ + override fun autoPrepare(autoPrepare: IResolvable) { + cdkBuilder.autoPrepare(autoPrepare.let(IResolvable::unwrap)) + } + + /** + * The Amazon Resource Name (ARN) of the AWS KMS key that encrypts the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-customerencryptionkeyarn) + * @param customerEncryptionKeyArn The Amazon Resource Name (ARN) of the AWS KMS key that + * encrypts the agent. + */ + override fun customerEncryptionKeyArn(customerEncryptionKeyArn: String) { + cdkBuilder.customerEncryptionKeyArn(customerEncryptionKeyArn) + } + + /** + * The description of the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-description) + * @param description The description of the agent. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * The foundation model used for orchestration by the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-foundationmodel) + * @param foundationModel The foundation model used for orchestration by the agent. + */ + override fun foundationModel(foundationModel: String) { + cdkBuilder.foundationModel(foundationModel) + } + + /** + * The number of seconds for which Amazon Bedrock keeps information about a user's conversation + * with the agent. + * + * A user interaction remains active for the amount of time specified. If no conversation occurs + * during this time, the session expires and Amazon Bedrock deletes any data provided before the + * timeout. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-idlesessionttlinseconds) + * @param idleSessionTtlInSeconds The number of seconds for which Amazon Bedrock keeps + * information about a user's conversation with the agent. + */ + override fun idleSessionTtlInSeconds(idleSessionTtlInSeconds: Number) { + cdkBuilder.idleSessionTtlInSeconds(idleSessionTtlInSeconds) + } + + /** + * Instructions that tell the agent what it should do and how it should interact with users. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-instruction) + * @param instruction Instructions that tell the agent what it should do and how it should + * interact with users. + */ + override fun instruction(instruction: String) { + cdkBuilder.instruction(instruction) + } + + /** + * The knowledge bases associated with the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-knowledgebases) + * @param knowledgeBases The knowledge bases associated with the agent. + */ + override fun knowledgeBases(knowledgeBases: IResolvable) { + cdkBuilder.knowledgeBases(knowledgeBases.let(IResolvable::unwrap)) + } + + /** + * The knowledge bases associated with the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-knowledgebases) + * @param knowledgeBases The knowledge bases associated with the agent. + */ + override fun knowledgeBases(knowledgeBases: List) { + cdkBuilder.knowledgeBases(knowledgeBases.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * The knowledge bases associated with the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-knowledgebases) + * @param knowledgeBases The knowledge bases associated with the agent. + */ + override fun knowledgeBases(vararg knowledgeBases: Any): Unit = + knowledgeBases(knowledgeBases.toList()) + + /** + * Contains configurations to override prompt templates in different parts of an agent sequence. + * + * For more information, see [Advanced + * prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-promptoverrideconfiguration) + * @param promptOverrideConfiguration Contains configurations to override prompt templates in + * different parts of an agent sequence. + */ + override fun promptOverrideConfiguration(promptOverrideConfiguration: IResolvable) { + cdkBuilder.promptOverrideConfiguration(promptOverrideConfiguration.let(IResolvable::unwrap)) + } + + /** + * Contains configurations to override prompt templates in different parts of an agent sequence. + * + * For more information, see [Advanced + * prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-promptoverrideconfiguration) + * @param promptOverrideConfiguration Contains configurations to override prompt templates in + * different parts of an agent sequence. + */ + override + fun promptOverrideConfiguration(promptOverrideConfiguration: PromptOverrideConfigurationProperty) { + cdkBuilder.promptOverrideConfiguration(promptOverrideConfiguration.let(PromptOverrideConfigurationProperty::unwrap)) + } + + /** + * Contains configurations to override prompt templates in different parts of an agent sequence. + * + * For more information, see [Advanced + * prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-promptoverrideconfiguration) + * @param promptOverrideConfiguration Contains configurations to override prompt templates in + * different parts of an agent sequence. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("9b61e2d46e1a572cddb4e9171b94f9069b7eddc6c44b643337fd8c78b6716e1f") + override + fun promptOverrideConfiguration(promptOverrideConfiguration: PromptOverrideConfigurationProperty.Builder.() -> Unit): + Unit = + promptOverrideConfiguration(PromptOverrideConfigurationProperty(promptOverrideConfiguration)) + + /** + * Specifies whether to delete the resource even if it's in use. + * + * By default, this value is `false` . + * + * Default: - false + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-skipresourceinusecheckondelete) + * @param skipResourceInUseCheckOnDelete Specifies whether to delete the resource even if it's + * in use. + */ + override fun skipResourceInUseCheckOnDelete(skipResourceInUseCheckOnDelete: Boolean) { + cdkBuilder.skipResourceInUseCheckOnDelete(skipResourceInUseCheckOnDelete) + } + + /** + * Specifies whether to delete the resource even if it's in use. + * + * By default, this value is `false` . + * + * Default: - false + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-skipresourceinusecheckondelete) + * @param skipResourceInUseCheckOnDelete Specifies whether to delete the resource even if it's + * in use. + */ + override fun skipResourceInUseCheckOnDelete(skipResourceInUseCheckOnDelete: IResolvable) { + cdkBuilder.skipResourceInUseCheckOnDelete(skipResourceInUseCheckOnDelete.let(IResolvable::unwrap)) + } + + /** + * Metadata that you can assign to a resource as key-value pairs. For more information, see the + * following resources:. + * + * * [Tag naming limits and + * requirements](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions) + * * [Tagging best + * practices](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-best-practices) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-tags) + * @param tags Metadata that you can assign to a resource as key-value pairs. For more + * information, see the following resources:. + */ + override fun tags(tags: Map) { + cdkBuilder.tags(tags) + } + + public fun build(): software.amazon.awscdk.services.bedrock.CfnAgent = cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.bedrock.CfnAgent.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnAgent { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnAgent(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.bedrock.CfnAgent): CfnAgent = + CfnAgent(cdkObject) + + internal fun unwrap(wrapped: CfnAgent): software.amazon.awscdk.services.bedrock.CfnAgent = + wrapped.cdkObject as software.amazon.awscdk.services.bedrock.CfnAgent + } + + /** + * Contains details about the OpenAPI schema for the action group. + * + * For more information, see [Action group OpenAPI + * schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html) . You can + * either include the schema directly in the `payload` field or you can upload it to an S3 bucket and + * specify the S3 bucket location in the `s3` field. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bedrock.*; + * APISchemaProperty aPISchemaProperty = APISchemaProperty.builder() + * .payload("payload") + * .s3(S3IdentifierProperty.builder() + * .s3BucketName("s3BucketName") + * .s3ObjectKey("s3ObjectKey") + * .build()) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-apischema.html) + */ + public interface APISchemaProperty { + /** + * The JSON or YAML-formatted payload defining the OpenAPI schema for the action group. + * + * For more information, see [Action group OpenAPI + * schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-apischema.html#cfn-bedrock-agent-apischema-payload) + */ + public fun payload(): String? = unwrap(this).getPayload() + + /** + * Contains details about the S3 object containing the OpenAPI schema for the action group. + * + * For more information, see [Action group OpenAPI + * schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-apischema.html#cfn-bedrock-agent-apischema-s3) + */ + public fun s3(): Any? = unwrap(this).getS3() + + /** + * A builder for [APISchemaProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param payload The JSON or YAML-formatted payload defining the OpenAPI schema for the + * action group. + * For more information, see [Action group OpenAPI + * schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html) . + */ + public fun payload(payload: String) + + /** + * @param s3 Contains details about the S3 object containing the OpenAPI schema for the action + * group. + * For more information, see [Action group OpenAPI + * schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html) . + */ + public fun s3(s3: IResolvable) + + /** + * @param s3 Contains details about the S3 object containing the OpenAPI schema for the action + * group. + * For more information, see [Action group OpenAPI + * schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html) . + */ + public fun s3(s3: S3IdentifierProperty) + + /** + * @param s3 Contains details about the S3 object containing the OpenAPI schema for the action + * group. + * For more information, see [Action group OpenAPI + * schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html) . + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("d3709b0a16a0ad1e7693d74f1a146d5aebd11b63fb28f127c1b77deddbd4e974") + public fun s3(s3: S3IdentifierProperty.Builder.() -> Unit) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.bedrock.CfnAgent.APISchemaProperty.Builder = + software.amazon.awscdk.services.bedrock.CfnAgent.APISchemaProperty.builder() + + /** + * @param payload The JSON or YAML-formatted payload defining the OpenAPI schema for the + * action group. + * For more information, see [Action group OpenAPI + * schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html) . + */ + override fun payload(payload: String) { + cdkBuilder.payload(payload) + } + + /** + * @param s3 Contains details about the S3 object containing the OpenAPI schema for the action + * group. + * For more information, see [Action group OpenAPI + * schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html) . + */ + override fun s3(s3: IResolvable) { + cdkBuilder.s3(s3.let(IResolvable::unwrap)) + } + + /** + * @param s3 Contains details about the S3 object containing the OpenAPI schema for the action + * group. + * For more information, see [Action group OpenAPI + * schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html) . + */ + override fun s3(s3: S3IdentifierProperty) { + cdkBuilder.s3(s3.let(S3IdentifierProperty::unwrap)) + } + + /** + * @param s3 Contains details about the S3 object containing the OpenAPI schema for the action + * group. + * For more information, see [Action group OpenAPI + * schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html) . + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("d3709b0a16a0ad1e7693d74f1a146d5aebd11b63fb28f127c1b77deddbd4e974") + override fun s3(s3: S3IdentifierProperty.Builder.() -> Unit): Unit = + s3(S3IdentifierProperty(s3)) + + public fun build(): software.amazon.awscdk.services.bedrock.CfnAgent.APISchemaProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.bedrock.CfnAgent.APISchemaProperty, + ) : CdkObject(cdkObject), APISchemaProperty { + /** + * The JSON or YAML-formatted payload defining the OpenAPI schema for the action group. + * + * For more information, see [Action group OpenAPI + * schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-apischema.html#cfn-bedrock-agent-apischema-payload) + */ + override fun payload(): String? = unwrap(this).getPayload() + + /** + * Contains details about the S3 object containing the OpenAPI schema for the action group. + * + * For more information, see [Action group OpenAPI + * schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-apischema.html#cfn-bedrock-agent-apischema-s3) + */ + override fun s3(): Any? = unwrap(this).getS3() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): APISchemaProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.bedrock.CfnAgent.APISchemaProperty): + APISchemaProperty = CdkObjectWrappers.wrap(cdkObject) as? APISchemaProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: APISchemaProperty): + software.amazon.awscdk.services.bedrock.CfnAgent.APISchemaProperty = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.bedrock.CfnAgent.APISchemaProperty + } + } + + /** + * Contains details about the Lambda function containing the business logic that is carried out + * upon invoking the action. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bedrock.*; + * ActionGroupExecutorProperty actionGroupExecutorProperty = ActionGroupExecutorProperty.builder() + * .lambda("lambda") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-actiongroupexecutor.html) + */ + public interface ActionGroupExecutorProperty { + /** + * The Amazon Resource Name (ARN) of the Lambda function containing the business logic that is + * carried out upon invoking the action. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-actiongroupexecutor.html#cfn-bedrock-agent-actiongroupexecutor-lambda) + */ + public fun lambda(): String + + /** + * A builder for [ActionGroupExecutorProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param lambda The Amazon Resource Name (ARN) of the Lambda function containing the business + * logic that is carried out upon invoking the action. + */ + public fun lambda(lambda: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.bedrock.CfnAgent.ActionGroupExecutorProperty.Builder = + software.amazon.awscdk.services.bedrock.CfnAgent.ActionGroupExecutorProperty.builder() + + /** + * @param lambda The Amazon Resource Name (ARN) of the Lambda function containing the business + * logic that is carried out upon invoking the action. + */ + override fun lambda(lambda: String) { + cdkBuilder.lambda(lambda) + } + + public fun build(): + software.amazon.awscdk.services.bedrock.CfnAgent.ActionGroupExecutorProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.bedrock.CfnAgent.ActionGroupExecutorProperty, + ) : CdkObject(cdkObject), ActionGroupExecutorProperty { + /** + * The Amazon Resource Name (ARN) of the Lambda function containing the business logic that is + * carried out upon invoking the action. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-actiongroupexecutor.html#cfn-bedrock-agent-actiongroupexecutor-lambda) + */ + override fun lambda(): String = unwrap(this).getLambda() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): ActionGroupExecutorProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.bedrock.CfnAgent.ActionGroupExecutorProperty): + ActionGroupExecutorProperty = CdkObjectWrappers.wrap(cdkObject) as? + ActionGroupExecutorProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: ActionGroupExecutorProperty): + software.amazon.awscdk.services.bedrock.CfnAgent.ActionGroupExecutorProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.bedrock.CfnAgent.ActionGroupExecutorProperty + } + } + + /** + * Contains details about an action group. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bedrock.*; + * AgentActionGroupProperty agentActionGroupProperty = AgentActionGroupProperty.builder() + * .actionGroupName("actionGroupName") + * // the properties below are optional + * .actionGroupExecutor(ActionGroupExecutorProperty.builder() + * .lambda("lambda") + * .build()) + * .actionGroupState("actionGroupState") + * .apiSchema(APISchemaProperty.builder() + * .payload("payload") + * .s3(S3IdentifierProperty.builder() + * .s3BucketName("s3BucketName") + * .s3ObjectKey("s3ObjectKey") + * .build()) + * .build()) + * .description("description") + * .parentActionGroupSignature("parentActionGroupSignature") + * .skipResourceInUseCheckOnDelete(false) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-agentactiongroup.html) + */ + public interface AgentActionGroupProperty { + /** + * The Amazon Resource Name (ARN) of the Lambda function containing the business logic that is + * carried out upon invoking the action. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-agentactiongroup.html#cfn-bedrock-agent-agentactiongroup-actiongroupexecutor) + */ + public fun actionGroupExecutor(): Any? = unwrap(this).getActionGroupExecutor() + + /** + * The name of the action group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-agentactiongroup.html#cfn-bedrock-agent-agentactiongroup-actiongroupname) + */ + public fun actionGroupName(): String + + /** + * Specifies whether the action group is available for the agent to invoke or not when sending + * an + * [InvokeAgent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) + * request. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-agentactiongroup.html#cfn-bedrock-agent-agentactiongroup-actiongroupstate) + */ + public fun actionGroupState(): String? = unwrap(this).getActionGroupState() + + /** + * Contains either details about the S3 object containing the OpenAPI schema for the action + * group or the JSON or YAML-formatted payload defining the schema. + * + * For more information, see [Action group OpenAPI + * schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-agentactiongroup.html#cfn-bedrock-agent-agentactiongroup-apischema) + */ + public fun apiSchema(): Any? = unwrap(this).getApiSchema() + + /** + * The description of the action group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-agentactiongroup.html#cfn-bedrock-agent-agentactiongroup-description) + */ + public fun description(): String? = unwrap(this).getDescription() + + /** + * If this field is set as `AMAZON.UserInput` , the agent can request the user for additional + * information when trying to complete a task. The `description` , `apiSchema` , and + * `actionGroupExecutor` fields must be blank for this action group. + * + * During orchestration, if the agent determines that it needs to invoke an API in an action + * group, but doesn't have enough information to complete the API request, it will invoke this + * action group instead and return an + * [Observation](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Observation.html) + * reprompting the user for more information. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-agentactiongroup.html#cfn-bedrock-agent-agentactiongroup-parentactiongroupsignature) + */ + public fun parentActionGroupSignature(): String? = unwrap(this).getParentActionGroupSignature() + + /** + * Specifies whether to delete the resource even if it's in use. + * + * By default, this value is `false` . + * + * Default: - false + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-agentactiongroup.html#cfn-bedrock-agent-agentactiongroup-skipresourceinusecheckondelete) + */ + public fun skipResourceInUseCheckOnDelete(): Any? = + unwrap(this).getSkipResourceInUseCheckOnDelete() + + /** + * A builder for [AgentActionGroupProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param actionGroupExecutor The Amazon Resource Name (ARN) of the Lambda function containing + * the business logic that is carried out upon invoking the action. + */ + public fun actionGroupExecutor(actionGroupExecutor: IResolvable) + + /** + * @param actionGroupExecutor The Amazon Resource Name (ARN) of the Lambda function containing + * the business logic that is carried out upon invoking the action. + */ + public fun actionGroupExecutor(actionGroupExecutor: ActionGroupExecutorProperty) + + /** + * @param actionGroupExecutor The Amazon Resource Name (ARN) of the Lambda function containing + * the business logic that is carried out upon invoking the action. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("bbe9062ac1f596537a9de04683d855a04b2e8cd613ad96c21989601a932af6ab") + public + fun actionGroupExecutor(actionGroupExecutor: ActionGroupExecutorProperty.Builder.() -> Unit) + + /** + * @param actionGroupName The name of the action group. + */ + public fun actionGroupName(actionGroupName: String) + + /** + * @param actionGroupState Specifies whether the action group is available for the agent to + * invoke or not when sending an + * [InvokeAgent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) + * request. + */ + public fun actionGroupState(actionGroupState: String) + + /** + * @param apiSchema Contains either details about the S3 object containing the OpenAPI schema + * for the action group or the JSON or YAML-formatted payload defining the schema. + * For more information, see [Action group OpenAPI + * schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html) . + */ + public fun apiSchema(apiSchema: IResolvable) + + /** + * @param apiSchema Contains either details about the S3 object containing the OpenAPI schema + * for the action group or the JSON or YAML-formatted payload defining the schema. + * For more information, see [Action group OpenAPI + * schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html) . + */ + public fun apiSchema(apiSchema: APISchemaProperty) + + /** + * @param apiSchema Contains either details about the S3 object containing the OpenAPI schema + * for the action group or the JSON or YAML-formatted payload defining the schema. + * For more information, see [Action group OpenAPI + * schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html) . + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("be49a66ceb426740b8b0779f6110b585a64c809f1c0de64db0220e4424b031e9") + public fun apiSchema(apiSchema: APISchemaProperty.Builder.() -> Unit) + + /** + * @param description The description of the action group. + */ + public fun description(description: String) + + /** + * @param parentActionGroupSignature If this field is set as `AMAZON.UserInput` , the agent + * can request the user for additional information when trying to complete a task. The + * `description` , `apiSchema` , and `actionGroupExecutor` fields must be blank for this action + * group. + * During orchestration, if the agent determines that it needs to invoke an API in an action + * group, but doesn't have enough information to complete the API request, it will invoke this + * action group instead and return an + * [Observation](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Observation.html) + * reprompting the user for more information. + */ + public fun parentActionGroupSignature(parentActionGroupSignature: String) + + /** + * @param skipResourceInUseCheckOnDelete Specifies whether to delete the resource even if it's + * in use. + * By default, this value is `false` . + */ + public fun skipResourceInUseCheckOnDelete(skipResourceInUseCheckOnDelete: Boolean) + + /** + * @param skipResourceInUseCheckOnDelete Specifies whether to delete the resource even if it's + * in use. + * By default, this value is `false` . + */ + public fun skipResourceInUseCheckOnDelete(skipResourceInUseCheckOnDelete: IResolvable) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.bedrock.CfnAgent.AgentActionGroupProperty.Builder = + software.amazon.awscdk.services.bedrock.CfnAgent.AgentActionGroupProperty.builder() + + /** + * @param actionGroupExecutor The Amazon Resource Name (ARN) of the Lambda function containing + * the business logic that is carried out upon invoking the action. + */ + override fun actionGroupExecutor(actionGroupExecutor: IResolvable) { + cdkBuilder.actionGroupExecutor(actionGroupExecutor.let(IResolvable::unwrap)) + } + + /** + * @param actionGroupExecutor The Amazon Resource Name (ARN) of the Lambda function containing + * the business logic that is carried out upon invoking the action. + */ + override fun actionGroupExecutor(actionGroupExecutor: ActionGroupExecutorProperty) { + cdkBuilder.actionGroupExecutor(actionGroupExecutor.let(ActionGroupExecutorProperty::unwrap)) + } + + /** + * @param actionGroupExecutor The Amazon Resource Name (ARN) of the Lambda function containing + * the business logic that is carried out upon invoking the action. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("bbe9062ac1f596537a9de04683d855a04b2e8cd613ad96c21989601a932af6ab") + override + fun actionGroupExecutor(actionGroupExecutor: ActionGroupExecutorProperty.Builder.() -> Unit): + Unit = actionGroupExecutor(ActionGroupExecutorProperty(actionGroupExecutor)) + + /** + * @param actionGroupName The name of the action group. + */ + override fun actionGroupName(actionGroupName: String) { + cdkBuilder.actionGroupName(actionGroupName) + } + + /** + * @param actionGroupState Specifies whether the action group is available for the agent to + * invoke or not when sending an + * [InvokeAgent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) + * request. + */ + override fun actionGroupState(actionGroupState: String) { + cdkBuilder.actionGroupState(actionGroupState) + } + + /** + * @param apiSchema Contains either details about the S3 object containing the OpenAPI schema + * for the action group or the JSON or YAML-formatted payload defining the schema. + * For more information, see [Action group OpenAPI + * schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html) . + */ + override fun apiSchema(apiSchema: IResolvable) { + cdkBuilder.apiSchema(apiSchema.let(IResolvable::unwrap)) + } + + /** + * @param apiSchema Contains either details about the S3 object containing the OpenAPI schema + * for the action group or the JSON or YAML-formatted payload defining the schema. + * For more information, see [Action group OpenAPI + * schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html) . + */ + override fun apiSchema(apiSchema: APISchemaProperty) { + cdkBuilder.apiSchema(apiSchema.let(APISchemaProperty::unwrap)) + } + + /** + * @param apiSchema Contains either details about the S3 object containing the OpenAPI schema + * for the action group or the JSON or YAML-formatted payload defining the schema. + * For more information, see [Action group OpenAPI + * schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html) . + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("be49a66ceb426740b8b0779f6110b585a64c809f1c0de64db0220e4424b031e9") + override fun apiSchema(apiSchema: APISchemaProperty.Builder.() -> Unit): Unit = + apiSchema(APISchemaProperty(apiSchema)) + + /** + * @param description The description of the action group. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * @param parentActionGroupSignature If this field is set as `AMAZON.UserInput` , the agent + * can request the user for additional information when trying to complete a task. The + * `description` , `apiSchema` , and `actionGroupExecutor` fields must be blank for this action + * group. + * During orchestration, if the agent determines that it needs to invoke an API in an action + * group, but doesn't have enough information to complete the API request, it will invoke this + * action group instead and return an + * [Observation](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Observation.html) + * reprompting the user for more information. + */ + override fun parentActionGroupSignature(parentActionGroupSignature: String) { + cdkBuilder.parentActionGroupSignature(parentActionGroupSignature) + } + + /** + * @param skipResourceInUseCheckOnDelete Specifies whether to delete the resource even if it's + * in use. + * By default, this value is `false` . + */ + override fun skipResourceInUseCheckOnDelete(skipResourceInUseCheckOnDelete: Boolean) { + cdkBuilder.skipResourceInUseCheckOnDelete(skipResourceInUseCheckOnDelete) + } + + /** + * @param skipResourceInUseCheckOnDelete Specifies whether to delete the resource even if it's + * in use. + * By default, this value is `false` . + */ + override fun skipResourceInUseCheckOnDelete(skipResourceInUseCheckOnDelete: IResolvable) { + cdkBuilder.skipResourceInUseCheckOnDelete(skipResourceInUseCheckOnDelete.let(IResolvable::unwrap)) + } + + public fun build(): software.amazon.awscdk.services.bedrock.CfnAgent.AgentActionGroupProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.bedrock.CfnAgent.AgentActionGroupProperty, + ) : CdkObject(cdkObject), AgentActionGroupProperty { + /** + * The Amazon Resource Name (ARN) of the Lambda function containing the business logic that is + * carried out upon invoking the action. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-agentactiongroup.html#cfn-bedrock-agent-agentactiongroup-actiongroupexecutor) + */ + override fun actionGroupExecutor(): Any? = unwrap(this).getActionGroupExecutor() + + /** + * The name of the action group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-agentactiongroup.html#cfn-bedrock-agent-agentactiongroup-actiongroupname) + */ + override fun actionGroupName(): String = unwrap(this).getActionGroupName() + + /** + * Specifies whether the action group is available for the agent to invoke or not when sending + * an + * [InvokeAgent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) + * request. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-agentactiongroup.html#cfn-bedrock-agent-agentactiongroup-actiongroupstate) + */ + override fun actionGroupState(): String? = unwrap(this).getActionGroupState() + + /** + * Contains either details about the S3 object containing the OpenAPI schema for the action + * group or the JSON or YAML-formatted payload defining the schema. + * + * For more information, see [Action group OpenAPI + * schemas](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-agentactiongroup.html#cfn-bedrock-agent-agentactiongroup-apischema) + */ + override fun apiSchema(): Any? = unwrap(this).getApiSchema() + + /** + * The description of the action group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-agentactiongroup.html#cfn-bedrock-agent-agentactiongroup-description) + */ + override fun description(): String? = unwrap(this).getDescription() + + /** + * If this field is set as `AMAZON.UserInput` , the agent can request the user for additional + * information when trying to complete a task. The `description` , `apiSchema` , and + * `actionGroupExecutor` fields must be blank for this action group. + * + * During orchestration, if the agent determines that it needs to invoke an API in an action + * group, but doesn't have enough information to complete the API request, it will invoke this + * action group instead and return an + * [Observation](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Observation.html) + * reprompting the user for more information. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-agentactiongroup.html#cfn-bedrock-agent-agentactiongroup-parentactiongroupsignature) + */ + override fun parentActionGroupSignature(): String? = + unwrap(this).getParentActionGroupSignature() + + /** + * Specifies whether to delete the resource even if it's in use. + * + * By default, this value is `false` . + * + * Default: - false + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-agentactiongroup.html#cfn-bedrock-agent-agentactiongroup-skipresourceinusecheckondelete) + */ + override fun skipResourceInUseCheckOnDelete(): Any? = + unwrap(this).getSkipResourceInUseCheckOnDelete() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): AgentActionGroupProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.bedrock.CfnAgent.AgentActionGroupProperty): + AgentActionGroupProperty = CdkObjectWrappers.wrap(cdkObject) as? AgentActionGroupProperty + ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: AgentActionGroupProperty): + software.amazon.awscdk.services.bedrock.CfnAgent.AgentActionGroupProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.bedrock.CfnAgent.AgentActionGroupProperty + } + } + + /** + * Contains details about a knowledge base that is associated with an agent. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bedrock.*; + * AgentKnowledgeBaseProperty agentKnowledgeBaseProperty = AgentKnowledgeBaseProperty.builder() + * .description("description") + * .knowledgeBaseId("knowledgeBaseId") + * // the properties below are optional + * .knowledgeBaseState("knowledgeBaseState") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-agentknowledgebase.html) + */ + public interface AgentKnowledgeBaseProperty { + /** + * The description of the association between the agent and the knowledge base. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-agentknowledgebase.html#cfn-bedrock-agent-agentknowledgebase-description) + */ + public fun description(): String + + /** + * The unique identifier of the association between the agent and the knowledge base. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-agentknowledgebase.html#cfn-bedrock-agent-agentknowledgebase-knowledgebaseid) + */ + public fun knowledgeBaseId(): String + + /** + * Specifies whether to use the knowledge base or not when sending an + * [InvokeAgent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) + * request. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-agentknowledgebase.html#cfn-bedrock-agent-agentknowledgebase-knowledgebasestate) + */ + public fun knowledgeBaseState(): String? = unwrap(this).getKnowledgeBaseState() + + /** + * A builder for [AgentKnowledgeBaseProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param description The description of the association between the agent and the knowledge + * base. + */ + public fun description(description: String) + + /** + * @param knowledgeBaseId The unique identifier of the association between the agent and the + * knowledge base. + */ + public fun knowledgeBaseId(knowledgeBaseId: String) + + /** + * @param knowledgeBaseState Specifies whether to use the knowledge base or not when sending + * an + * [InvokeAgent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) + * request. + */ + public fun knowledgeBaseState(knowledgeBaseState: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.bedrock.CfnAgent.AgentKnowledgeBaseProperty.Builder = + software.amazon.awscdk.services.bedrock.CfnAgent.AgentKnowledgeBaseProperty.builder() + + /** + * @param description The description of the association between the agent and the knowledge + * base. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * @param knowledgeBaseId The unique identifier of the association between the agent and the + * knowledge base. + */ + override fun knowledgeBaseId(knowledgeBaseId: String) { + cdkBuilder.knowledgeBaseId(knowledgeBaseId) + } + + /** + * @param knowledgeBaseState Specifies whether to use the knowledge base or not when sending + * an + * [InvokeAgent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) + * request. + */ + override fun knowledgeBaseState(knowledgeBaseState: String) { + cdkBuilder.knowledgeBaseState(knowledgeBaseState) + } + + public fun build(): + software.amazon.awscdk.services.bedrock.CfnAgent.AgentKnowledgeBaseProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.bedrock.CfnAgent.AgentKnowledgeBaseProperty, + ) : CdkObject(cdkObject), AgentKnowledgeBaseProperty { + /** + * The description of the association between the agent and the knowledge base. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-agentknowledgebase.html#cfn-bedrock-agent-agentknowledgebase-description) + */ + override fun description(): String = unwrap(this).getDescription() + + /** + * The unique identifier of the association between the agent and the knowledge base. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-agentknowledgebase.html#cfn-bedrock-agent-agentknowledgebase-knowledgebaseid) + */ + override fun knowledgeBaseId(): String = unwrap(this).getKnowledgeBaseId() + + /** + * Specifies whether to use the knowledge base or not when sending an + * [InvokeAgent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) + * request. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-agentknowledgebase.html#cfn-bedrock-agent-agentknowledgebase-knowledgebasestate) + */ + override fun knowledgeBaseState(): String? = unwrap(this).getKnowledgeBaseState() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): AgentKnowledgeBaseProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.bedrock.CfnAgent.AgentKnowledgeBaseProperty): + AgentKnowledgeBaseProperty = CdkObjectWrappers.wrap(cdkObject) as? + AgentKnowledgeBaseProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: AgentKnowledgeBaseProperty): + software.amazon.awscdk.services.bedrock.CfnAgent.AgentKnowledgeBaseProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.bedrock.CfnAgent.AgentKnowledgeBaseProperty + } + } + + /** + * Contains inference parameters to use when the agent invokes a foundation model in the part of + * the agent sequence defined by the `promptType` . + * + * For more information, see [Inference parameters for foundation + * models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html) . + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bedrock.*; + * InferenceConfigurationProperty inferenceConfigurationProperty = + * InferenceConfigurationProperty.builder() + * .maximumLength(123) + * .stopSequences(List.of("stopSequences")) + * .temperature(123) + * .topK(123) + * .topP(123) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-inferenceconfiguration.html) + */ + public interface InferenceConfigurationProperty { + /** + * The maximum number of tokens to allow in the generated response. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-inferenceconfiguration.html#cfn-bedrock-agent-inferenceconfiguration-maximumlength) + */ + public fun maximumLength(): Number? = unwrap(this).getMaximumLength() + + /** + * A list of stop sequences. + * + * A stop sequence is a sequence of characters that causes the model to stop generating the + * response. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-inferenceconfiguration.html#cfn-bedrock-agent-inferenceconfiguration-stopsequences) + */ + public fun stopSequences(): List = unwrap(this).getStopSequences() ?: emptyList() + + /** + * The likelihood of the model selecting higher-probability options while generating a response. + * + * A lower value makes the model more likely to choose higher-probability options, while a + * higher value makes the model more likely to choose lower-probability options. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-inferenceconfiguration.html#cfn-bedrock-agent-inferenceconfiguration-temperature) + */ + public fun temperature(): Number? = unwrap(this).getTemperature() + + /** + * While generating a response, the model determines the probability of the following token at + * each point of generation. + * + * The value that you set for `topK` is the number of most-likely candidates from which the + * model chooses the next token in the sequence. For example, if you set `topK` to 50, the model + * selects the next token from among the top 50 most likely choices. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-inferenceconfiguration.html#cfn-bedrock-agent-inferenceconfiguration-topk) + */ + public fun topK(): Number? = unwrap(this).getTopK() + + /** + * While generating a response, the model determines the probability of the following token at + * each point of generation. + * + * The value that you set for `Top P` determines the number of most-likely candidates from which + * the model chooses the next token in the sequence. For example, if you set `topP` to 80, the + * model only selects the next token from the top 80% of the probability distribution of next + * tokens. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-inferenceconfiguration.html#cfn-bedrock-agent-inferenceconfiguration-topp) + */ + public fun topP(): Number? = unwrap(this).getTopP() + + /** + * A builder for [InferenceConfigurationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param maximumLength The maximum number of tokens to allow in the generated response. + */ + public fun maximumLength(maximumLength: Number) + + /** + * @param stopSequences A list of stop sequences. + * A stop sequence is a sequence of characters that causes the model to stop generating the + * response. + */ + public fun stopSequences(stopSequences: List) + + /** + * @param stopSequences A list of stop sequences. + * A stop sequence is a sequence of characters that causes the model to stop generating the + * response. + */ + public fun stopSequences(vararg stopSequences: String) + + /** + * @param temperature The likelihood of the model selecting higher-probability options while + * generating a response. + * A lower value makes the model more likely to choose higher-probability options, while a + * higher value makes the model more likely to choose lower-probability options. + */ + public fun temperature(temperature: Number) + + /** + * @param topK While generating a response, the model determines the probability of the + * following token at each point of generation. + * The value that you set for `topK` is the number of most-likely candidates from which the + * model chooses the next token in the sequence. For example, if you set `topK` to 50, the model + * selects the next token from among the top 50 most likely choices. + */ + public fun topK(topK: Number) + + /** + * @param topP While generating a response, the model determines the probability of the + * following token at each point of generation. + * The value that you set for `Top P` determines the number of most-likely candidates from + * which the model chooses the next token in the sequence. For example, if you set `topP` to 80, + * the model only selects the next token from the top 80% of the probability distribution of next + * tokens. + */ + public fun topP(topP: Number) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.bedrock.CfnAgent.InferenceConfigurationProperty.Builder = + software.amazon.awscdk.services.bedrock.CfnAgent.InferenceConfigurationProperty.builder() + + /** + * @param maximumLength The maximum number of tokens to allow in the generated response. + */ + override fun maximumLength(maximumLength: Number) { + cdkBuilder.maximumLength(maximumLength) + } + + /** + * @param stopSequences A list of stop sequences. + * A stop sequence is a sequence of characters that causes the model to stop generating the + * response. + */ + override fun stopSequences(stopSequences: List) { + cdkBuilder.stopSequences(stopSequences) + } + + /** + * @param stopSequences A list of stop sequences. + * A stop sequence is a sequence of characters that causes the model to stop generating the + * response. + */ + override fun stopSequences(vararg stopSequences: String): Unit = + stopSequences(stopSequences.toList()) + + /** + * @param temperature The likelihood of the model selecting higher-probability options while + * generating a response. + * A lower value makes the model more likely to choose higher-probability options, while a + * higher value makes the model more likely to choose lower-probability options. + */ + override fun temperature(temperature: Number) { + cdkBuilder.temperature(temperature) + } + + /** + * @param topK While generating a response, the model determines the probability of the + * following token at each point of generation. + * The value that you set for `topK` is the number of most-likely candidates from which the + * model chooses the next token in the sequence. For example, if you set `topK` to 50, the model + * selects the next token from among the top 50 most likely choices. + */ + override fun topK(topK: Number) { + cdkBuilder.topK(topK) + } + + /** + * @param topP While generating a response, the model determines the probability of the + * following token at each point of generation. + * The value that you set for `Top P` determines the number of most-likely candidates from + * which the model chooses the next token in the sequence. For example, if you set `topP` to 80, + * the model only selects the next token from the top 80% of the probability distribution of next + * tokens. + */ + override fun topP(topP: Number) { + cdkBuilder.topP(topP) + } + + public fun build(): + software.amazon.awscdk.services.bedrock.CfnAgent.InferenceConfigurationProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.bedrock.CfnAgent.InferenceConfigurationProperty, + ) : CdkObject(cdkObject), InferenceConfigurationProperty { + /** + * The maximum number of tokens to allow in the generated response. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-inferenceconfiguration.html#cfn-bedrock-agent-inferenceconfiguration-maximumlength) + */ + override fun maximumLength(): Number? = unwrap(this).getMaximumLength() + + /** + * A list of stop sequences. + * + * A stop sequence is a sequence of characters that causes the model to stop generating the + * response. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-inferenceconfiguration.html#cfn-bedrock-agent-inferenceconfiguration-stopsequences) + */ + override fun stopSequences(): List = unwrap(this).getStopSequences() ?: emptyList() + + /** + * The likelihood of the model selecting higher-probability options while generating a + * response. + * + * A lower value makes the model more likely to choose higher-probability options, while a + * higher value makes the model more likely to choose lower-probability options. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-inferenceconfiguration.html#cfn-bedrock-agent-inferenceconfiguration-temperature) + */ + override fun temperature(): Number? = unwrap(this).getTemperature() + + /** + * While generating a response, the model determines the probability of the following token at + * each point of generation. + * + * The value that you set for `topK` is the number of most-likely candidates from which the + * model chooses the next token in the sequence. For example, if you set `topK` to 50, the model + * selects the next token from among the top 50 most likely choices. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-inferenceconfiguration.html#cfn-bedrock-agent-inferenceconfiguration-topk) + */ + override fun topK(): Number? = unwrap(this).getTopK() + + /** + * While generating a response, the model determines the probability of the following token at + * each point of generation. + * + * The value that you set for `Top P` determines the number of most-likely candidates from + * which the model chooses the next token in the sequence. For example, if you set `topP` to 80, + * the model only selects the next token from the top 80% of the probability distribution of next + * tokens. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-inferenceconfiguration.html#cfn-bedrock-agent-inferenceconfiguration-topp) + */ + override fun topP(): Number? = unwrap(this).getTopP() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): InferenceConfigurationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.bedrock.CfnAgent.InferenceConfigurationProperty): + InferenceConfigurationProperty = CdkObjectWrappers.wrap(cdkObject) as? + InferenceConfigurationProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: InferenceConfigurationProperty): + software.amazon.awscdk.services.bedrock.CfnAgent.InferenceConfigurationProperty = (wrapped + as CdkObject).cdkObject as + software.amazon.awscdk.services.bedrock.CfnAgent.InferenceConfigurationProperty + } + } + + /** + * Contains configurations to override a prompt template in one part of an agent sequence. + * + * For more information, see [Advanced + * prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html) . + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bedrock.*; + * PromptConfigurationProperty promptConfigurationProperty = PromptConfigurationProperty.builder() + * .basePromptTemplate("basePromptTemplate") + * .inferenceConfiguration(InferenceConfigurationProperty.builder() + * .maximumLength(123) + * .stopSequences(List.of("stopSequences")) + * .temperature(123) + * .topK(123) + * .topP(123) + * .build()) + * .parserMode("parserMode") + * .promptCreationMode("promptCreationMode") + * .promptState("promptState") + * .promptType("promptType") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-promptconfiguration.html) + */ + public interface PromptConfigurationProperty { + /** + * Defines the prompt template with which to replace the default prompt template. + * + * You can use placeholder variables in the base prompt template to customize the prompt. For + * more information, see [Prompt template placeholder + * variables](https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-placeholders.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-promptconfiguration.html#cfn-bedrock-agent-promptconfiguration-baseprompttemplate) + */ + public fun basePromptTemplate(): String? = unwrap(this).getBasePromptTemplate() + + /** + * Contains inference parameters to use when the agent invokes a foundation model in the part of + * the agent sequence defined by the `promptType` . + * + * For more information, see [Inference parameters for foundation + * models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-promptconfiguration.html#cfn-bedrock-agent-promptconfiguration-inferenceconfiguration) + */ + public fun inferenceConfiguration(): Any? = unwrap(this).getInferenceConfiguration() + + /** + * Specifies whether to override the default parser Lambda function when parsing the raw + * foundation model output in the part of the agent sequence defined by the `promptType` . + * + * If you set the field as `OVERRIDEN` , the `overrideLambda` field in the + * [PromptOverrideConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_PromptOverrideConfiguration.html) + * must be specified with the ARN of a Lambda function. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-promptconfiguration.html#cfn-bedrock-agent-promptconfiguration-parsermode) + */ + public fun parserMode(): String? = unwrap(this).getParserMode() + + /** + * Specifies whether to override the default prompt template for this `promptType` . + * + * Set this value to `OVERRIDDEN` to use the prompt that you provide in the `basePromptTemplate` + * . If you leave it as `DEFAULT` , the agent uses a default prompt template. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-promptconfiguration.html#cfn-bedrock-agent-promptconfiguration-promptcreationmode) + */ + public fun promptCreationMode(): String? = unwrap(this).getPromptCreationMode() + + /** + * Specifies whether to allow the agent to carry out the step specified in the `promptType` . + * + * If you set this value to `DISABLED` , the agent skips that step. The default state for each + * `promptType` is as follows. + * + * * `PRE_PROCESSING` – `ENABLED` + * * `ORCHESTRATION` – `ENABLED` + * * `KNOWLEDGE_BASE_RESPONSE_GENERATION` – `ENABLED` + * * `POST_PROCESSING` – `DISABLED` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-promptconfiguration.html#cfn-bedrock-agent-promptconfiguration-promptstate) + */ + public fun promptState(): String? = unwrap(this).getPromptState() + + /** + * The step in the agent sequence that this prompt configuration applies to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-promptconfiguration.html#cfn-bedrock-agent-promptconfiguration-prompttype) + */ + public fun promptType(): String? = unwrap(this).getPromptType() + + /** + * A builder for [PromptConfigurationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param basePromptTemplate Defines the prompt template with which to replace the default + * prompt template. + * You can use placeholder variables in the base prompt template to customize the prompt. For + * more information, see [Prompt template placeholder + * variables](https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-placeholders.html) . + */ + public fun basePromptTemplate(basePromptTemplate: String) + + /** + * @param inferenceConfiguration Contains inference parameters to use when the agent invokes a + * foundation model in the part of the agent sequence defined by the `promptType` . + * For more information, see [Inference parameters for foundation + * models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html) . + */ + public fun inferenceConfiguration(inferenceConfiguration: IResolvable) + + /** + * @param inferenceConfiguration Contains inference parameters to use when the agent invokes a + * foundation model in the part of the agent sequence defined by the `promptType` . + * For more information, see [Inference parameters for foundation + * models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html) . + */ + public fun inferenceConfiguration(inferenceConfiguration: InferenceConfigurationProperty) + + /** + * @param inferenceConfiguration Contains inference parameters to use when the agent invokes a + * foundation model in the part of the agent sequence defined by the `promptType` . + * For more information, see [Inference parameters for foundation + * models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html) . + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("28f92ae04d5c07417a391b6f4fa805cd0010eb598952bdd757f82759d5dbe953") + public + fun inferenceConfiguration(inferenceConfiguration: InferenceConfigurationProperty.Builder.() -> Unit) + + /** + * @param parserMode Specifies whether to override the default parser Lambda function when + * parsing the raw foundation model output in the part of the agent sequence defined by the + * `promptType` . + * If you set the field as `OVERRIDEN` , the `overrideLambda` field in the + * [PromptOverrideConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_PromptOverrideConfiguration.html) + * must be specified with the ARN of a Lambda function. + */ + public fun parserMode(parserMode: String) + + /** + * @param promptCreationMode Specifies whether to override the default prompt template for + * this `promptType` . + * Set this value to `OVERRIDDEN` to use the prompt that you provide in the + * `basePromptTemplate` . If you leave it as `DEFAULT` , the agent uses a default prompt + * template. + */ + public fun promptCreationMode(promptCreationMode: String) + + /** + * @param promptState Specifies whether to allow the agent to carry out the step specified in + * the `promptType` . + * If you set this value to `DISABLED` , the agent skips that step. The default state for each + * `promptType` is as follows. + * + * * `PRE_PROCESSING` – `ENABLED` + * * `ORCHESTRATION` – `ENABLED` + * * `KNOWLEDGE_BASE_RESPONSE_GENERATION` – `ENABLED` + * * `POST_PROCESSING` – `DISABLED` + */ + public fun promptState(promptState: String) + + /** + * @param promptType The step in the agent sequence that this prompt configuration applies to. + */ + public fun promptType(promptType: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.bedrock.CfnAgent.PromptConfigurationProperty.Builder = + software.amazon.awscdk.services.bedrock.CfnAgent.PromptConfigurationProperty.builder() + + /** + * @param basePromptTemplate Defines the prompt template with which to replace the default + * prompt template. + * You can use placeholder variables in the base prompt template to customize the prompt. For + * more information, see [Prompt template placeholder + * variables](https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-placeholders.html) . + */ + override fun basePromptTemplate(basePromptTemplate: String) { + cdkBuilder.basePromptTemplate(basePromptTemplate) + } + + /** + * @param inferenceConfiguration Contains inference parameters to use when the agent invokes a + * foundation model in the part of the agent sequence defined by the `promptType` . + * For more information, see [Inference parameters for foundation + * models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html) . + */ + override fun inferenceConfiguration(inferenceConfiguration: IResolvable) { + cdkBuilder.inferenceConfiguration(inferenceConfiguration.let(IResolvable::unwrap)) + } + + /** + * @param inferenceConfiguration Contains inference parameters to use when the agent invokes a + * foundation model in the part of the agent sequence defined by the `promptType` . + * For more information, see [Inference parameters for foundation + * models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html) . + */ + override fun inferenceConfiguration(inferenceConfiguration: InferenceConfigurationProperty) { + cdkBuilder.inferenceConfiguration(inferenceConfiguration.let(InferenceConfigurationProperty::unwrap)) + } + + /** + * @param inferenceConfiguration Contains inference parameters to use when the agent invokes a + * foundation model in the part of the agent sequence defined by the `promptType` . + * For more information, see [Inference parameters for foundation + * models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html) . + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("28f92ae04d5c07417a391b6f4fa805cd0010eb598952bdd757f82759d5dbe953") + override + fun inferenceConfiguration(inferenceConfiguration: InferenceConfigurationProperty.Builder.() -> Unit): + Unit = inferenceConfiguration(InferenceConfigurationProperty(inferenceConfiguration)) + + /** + * @param parserMode Specifies whether to override the default parser Lambda function when + * parsing the raw foundation model output in the part of the agent sequence defined by the + * `promptType` . + * If you set the field as `OVERRIDEN` , the `overrideLambda` field in the + * [PromptOverrideConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_PromptOverrideConfiguration.html) + * must be specified with the ARN of a Lambda function. + */ + override fun parserMode(parserMode: String) { + cdkBuilder.parserMode(parserMode) + } + + /** + * @param promptCreationMode Specifies whether to override the default prompt template for + * this `promptType` . + * Set this value to `OVERRIDDEN` to use the prompt that you provide in the + * `basePromptTemplate` . If you leave it as `DEFAULT` , the agent uses a default prompt + * template. + */ + override fun promptCreationMode(promptCreationMode: String) { + cdkBuilder.promptCreationMode(promptCreationMode) + } + + /** + * @param promptState Specifies whether to allow the agent to carry out the step specified in + * the `promptType` . + * If you set this value to `DISABLED` , the agent skips that step. The default state for each + * `promptType` is as follows. + * + * * `PRE_PROCESSING` – `ENABLED` + * * `ORCHESTRATION` – `ENABLED` + * * `KNOWLEDGE_BASE_RESPONSE_GENERATION` – `ENABLED` + * * `POST_PROCESSING` – `DISABLED` + */ + override fun promptState(promptState: String) { + cdkBuilder.promptState(promptState) + } + + /** + * @param promptType The step in the agent sequence that this prompt configuration applies to. + */ + override fun promptType(promptType: String) { + cdkBuilder.promptType(promptType) + } + + public fun build(): + software.amazon.awscdk.services.bedrock.CfnAgent.PromptConfigurationProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.bedrock.CfnAgent.PromptConfigurationProperty, + ) : CdkObject(cdkObject), PromptConfigurationProperty { + /** + * Defines the prompt template with which to replace the default prompt template. + * + * You can use placeholder variables in the base prompt template to customize the prompt. For + * more information, see [Prompt template placeholder + * variables](https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-placeholders.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-promptconfiguration.html#cfn-bedrock-agent-promptconfiguration-baseprompttemplate) + */ + override fun basePromptTemplate(): String? = unwrap(this).getBasePromptTemplate() + + /** + * Contains inference parameters to use when the agent invokes a foundation model in the part + * of the agent sequence defined by the `promptType` . + * + * For more information, see [Inference parameters for foundation + * models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-promptconfiguration.html#cfn-bedrock-agent-promptconfiguration-inferenceconfiguration) + */ + override fun inferenceConfiguration(): Any? = unwrap(this).getInferenceConfiguration() + + /** + * Specifies whether to override the default parser Lambda function when parsing the raw + * foundation model output in the part of the agent sequence defined by the `promptType` . + * + * If you set the field as `OVERRIDEN` , the `overrideLambda` field in the + * [PromptOverrideConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_PromptOverrideConfiguration.html) + * must be specified with the ARN of a Lambda function. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-promptconfiguration.html#cfn-bedrock-agent-promptconfiguration-parsermode) + */ + override fun parserMode(): String? = unwrap(this).getParserMode() + + /** + * Specifies whether to override the default prompt template for this `promptType` . + * + * Set this value to `OVERRIDDEN` to use the prompt that you provide in the + * `basePromptTemplate` . If you leave it as `DEFAULT` , the agent uses a default prompt + * template. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-promptconfiguration.html#cfn-bedrock-agent-promptconfiguration-promptcreationmode) + */ + override fun promptCreationMode(): String? = unwrap(this).getPromptCreationMode() + + /** + * Specifies whether to allow the agent to carry out the step specified in the `promptType` . + * + * If you set this value to `DISABLED` , the agent skips that step. The default state for each + * `promptType` is as follows. + * + * * `PRE_PROCESSING` – `ENABLED` + * * `ORCHESTRATION` – `ENABLED` + * * `KNOWLEDGE_BASE_RESPONSE_GENERATION` – `ENABLED` + * * `POST_PROCESSING` – `DISABLED` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-promptconfiguration.html#cfn-bedrock-agent-promptconfiguration-promptstate) + */ + override fun promptState(): String? = unwrap(this).getPromptState() + + /** + * The step in the agent sequence that this prompt configuration applies to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-promptconfiguration.html#cfn-bedrock-agent-promptconfiguration-prompttype) + */ + override fun promptType(): String? = unwrap(this).getPromptType() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): PromptConfigurationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.bedrock.CfnAgent.PromptConfigurationProperty): + PromptConfigurationProperty = CdkObjectWrappers.wrap(cdkObject) as? + PromptConfigurationProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: PromptConfigurationProperty): + software.amazon.awscdk.services.bedrock.CfnAgent.PromptConfigurationProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.bedrock.CfnAgent.PromptConfigurationProperty + } + } + + /** + * Contains configurations to override prompts in different parts of an agent sequence. + * + * For more information, see [Advanced + * prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html) . + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bedrock.*; + * PromptOverrideConfigurationProperty promptOverrideConfigurationProperty = + * PromptOverrideConfigurationProperty.builder() + * .promptConfigurations(List.of(PromptConfigurationProperty.builder() + * .basePromptTemplate("basePromptTemplate") + * .inferenceConfiguration(InferenceConfigurationProperty.builder() + * .maximumLength(123) + * .stopSequences(List.of("stopSequences")) + * .temperature(123) + * .topK(123) + * .topP(123) + * .build()) + * .parserMode("parserMode") + * .promptCreationMode("promptCreationMode") + * .promptState("promptState") + * .promptType("promptType") + * .build())) + * // the properties below are optional + * .overrideLambda("overrideLambda") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-promptoverrideconfiguration.html) + */ + public interface PromptOverrideConfigurationProperty { + /** + * The ARN of the Lambda function to use when parsing the raw foundation model output in parts + * of the agent sequence. + * + * If you specify this field, at least one of the `promptConfigurations` must contain a + * `parserMode` value that is set to `OVERRIDDEN` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-promptoverrideconfiguration.html#cfn-bedrock-agent-promptoverrideconfiguration-overridelambda) + */ + public fun overrideLambda(): String? = unwrap(this).getOverrideLambda() + + /** + * Contains configurations to override a prompt template in one part of an agent sequence. + * + * For more information, see [Advanced + * prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-promptoverrideconfiguration.html#cfn-bedrock-agent-promptoverrideconfiguration-promptconfigurations) + */ + public fun promptConfigurations(): Any + + /** + * A builder for [PromptOverrideConfigurationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param overrideLambda The ARN of the Lambda function to use when parsing the raw foundation + * model output in parts of the agent sequence. + * If you specify this field, at least one of the `promptConfigurations` must contain a + * `parserMode` value that is set to `OVERRIDDEN` . + */ + public fun overrideLambda(overrideLambda: String) + + /** + * @param promptConfigurations Contains configurations to override a prompt template in one + * part of an agent sequence. + * For more information, see [Advanced + * prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html) . + */ + public fun promptConfigurations(promptConfigurations: IResolvable) + + /** + * @param promptConfigurations Contains configurations to override a prompt template in one + * part of an agent sequence. + * For more information, see [Advanced + * prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html) . + */ + public fun promptConfigurations(promptConfigurations: List) + + /** + * @param promptConfigurations Contains configurations to override a prompt template in one + * part of an agent sequence. + * For more information, see [Advanced + * prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html) . + */ + public fun promptConfigurations(vararg promptConfigurations: Any) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.bedrock.CfnAgent.PromptOverrideConfigurationProperty.Builder + = + software.amazon.awscdk.services.bedrock.CfnAgent.PromptOverrideConfigurationProperty.builder() + + /** + * @param overrideLambda The ARN of the Lambda function to use when parsing the raw foundation + * model output in parts of the agent sequence. + * If you specify this field, at least one of the `promptConfigurations` must contain a + * `parserMode` value that is set to `OVERRIDDEN` . + */ + override fun overrideLambda(overrideLambda: String) { + cdkBuilder.overrideLambda(overrideLambda) + } + + /** + * @param promptConfigurations Contains configurations to override a prompt template in one + * part of an agent sequence. + * For more information, see [Advanced + * prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html) . + */ + override fun promptConfigurations(promptConfigurations: IResolvable) { + cdkBuilder.promptConfigurations(promptConfigurations.let(IResolvable::unwrap)) + } + + /** + * @param promptConfigurations Contains configurations to override a prompt template in one + * part of an agent sequence. + * For more information, see [Advanced + * prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html) . + */ + override fun promptConfigurations(promptConfigurations: List) { + cdkBuilder.promptConfigurations(promptConfigurations.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param promptConfigurations Contains configurations to override a prompt template in one + * part of an agent sequence. + * For more information, see [Advanced + * prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html) . + */ + override fun promptConfigurations(vararg promptConfigurations: Any): Unit = + promptConfigurations(promptConfigurations.toList()) + + public fun build(): + software.amazon.awscdk.services.bedrock.CfnAgent.PromptOverrideConfigurationProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.bedrock.CfnAgent.PromptOverrideConfigurationProperty, + ) : CdkObject(cdkObject), PromptOverrideConfigurationProperty { + /** + * The ARN of the Lambda function to use when parsing the raw foundation model output in parts + * of the agent sequence. + * + * If you specify this field, at least one of the `promptConfigurations` must contain a + * `parserMode` value that is set to `OVERRIDDEN` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-promptoverrideconfiguration.html#cfn-bedrock-agent-promptoverrideconfiguration-overridelambda) + */ + override fun overrideLambda(): String? = unwrap(this).getOverrideLambda() + + /** + * Contains configurations to override a prompt template in one part of an agent sequence. + * + * For more information, see [Advanced + * prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-promptoverrideconfiguration.html#cfn-bedrock-agent-promptoverrideconfiguration-promptconfigurations) + */ + override fun promptConfigurations(): Any = unwrap(this).getPromptConfigurations() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): + PromptOverrideConfigurationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.bedrock.CfnAgent.PromptOverrideConfigurationProperty): + PromptOverrideConfigurationProperty = CdkObjectWrappers.wrap(cdkObject) as? + PromptOverrideConfigurationProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: PromptOverrideConfigurationProperty): + software.amazon.awscdk.services.bedrock.CfnAgent.PromptOverrideConfigurationProperty = + (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.bedrock.CfnAgent.PromptOverrideConfigurationProperty + } + } + + /** + * Contains information about the S3 object containing the resource. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bedrock.*; + * S3IdentifierProperty s3IdentifierProperty = S3IdentifierProperty.builder() + * .s3BucketName("s3BucketName") + * .s3ObjectKey("s3ObjectKey") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-s3identifier.html) + */ + public interface S3IdentifierProperty { + /** + * The name of the S3 bucket. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-s3identifier.html#cfn-bedrock-agent-s3identifier-s3bucketname) + */ + public fun s3BucketName(): String? = unwrap(this).getS3BucketName() + + /** + * The S3 object key containing the resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-s3identifier.html#cfn-bedrock-agent-s3identifier-s3objectkey) + */ + public fun s3ObjectKey(): String? = unwrap(this).getS3ObjectKey() + + /** + * A builder for [S3IdentifierProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param s3BucketName The name of the S3 bucket. + */ + public fun s3BucketName(s3BucketName: String) + + /** + * @param s3ObjectKey The S3 object key containing the resource. + */ + public fun s3ObjectKey(s3ObjectKey: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.bedrock.CfnAgent.S3IdentifierProperty.Builder = + software.amazon.awscdk.services.bedrock.CfnAgent.S3IdentifierProperty.builder() + + /** + * @param s3BucketName The name of the S3 bucket. + */ + override fun s3BucketName(s3BucketName: String) { + cdkBuilder.s3BucketName(s3BucketName) + } + + /** + * @param s3ObjectKey The S3 object key containing the resource. + */ + override fun s3ObjectKey(s3ObjectKey: String) { + cdkBuilder.s3ObjectKey(s3ObjectKey) + } + + public fun build(): software.amazon.awscdk.services.bedrock.CfnAgent.S3IdentifierProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.bedrock.CfnAgent.S3IdentifierProperty, + ) : CdkObject(cdkObject), S3IdentifierProperty { + /** + * The name of the S3 bucket. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-s3identifier.html#cfn-bedrock-agent-s3identifier-s3bucketname) + */ + override fun s3BucketName(): String? = unwrap(this).getS3BucketName() + + /** + * The S3 object key containing the resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agent-s3identifier.html#cfn-bedrock-agent-s3identifier-s3objectkey) + */ + override fun s3ObjectKey(): String? = unwrap(this).getS3ObjectKey() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): S3IdentifierProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.bedrock.CfnAgent.S3IdentifierProperty): + S3IdentifierProperty = CdkObjectWrappers.wrap(cdkObject) as? S3IdentifierProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: S3IdentifierProperty): + software.amazon.awscdk.services.bedrock.CfnAgent.S3IdentifierProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.bedrock.CfnAgent.S3IdentifierProperty + } + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bedrock/CfnAgentAlias.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bedrock/CfnAgentAlias.kt new file mode 100644 index 0000000000..4f522043d4 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bedrock/CfnAgentAlias.kt @@ -0,0 +1,639 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.bedrock + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.ITaggableV2 +import io.cloudshiftdev.awscdk.TagManager +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.collections.Map +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * Specifies an agent alias as a resource in a top-level template. Minimally, you must specify the + * following properties:. + * + * * AgentAliasName – Specify a name for the alias. + * + * For more information about creating aliases for an agent in Amazon Bedrock , see [Deploy an + * Amazon Bedrock agent](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-deploy.html) . + * + * See the *Properties* section below for descriptions of both the required and optional properties. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bedrock.*; + * CfnAgentAlias cfnAgentAlias = CfnAgentAlias.Builder.create(this, "MyCfnAgentAlias") + * .agentAliasName("agentAliasName") + * .agentId("agentId") + * // the properties below are optional + * .description("description") + * .routingConfiguration(List.of(AgentAliasRoutingConfigurationListItemProperty.builder() + * .agentVersion("agentVersion") + * .build())) + * .tags(Map.of( + * "tagsKey", "tags")) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html) + */ +public open class CfnAgentAlias( + cdkObject: software.amazon.awscdk.services.bedrock.CfnAgentAlias, +) : CfnResource(cdkObject), IInspectable, ITaggableV2 { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnAgentAliasProps, + ) : + this(software.amazon.awscdk.services.bedrock.CfnAgentAlias(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnAgentAliasProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnAgentAliasProps.Builder.() -> Unit, + ) : this(scope, id, CfnAgentAliasProps(props) + ) + + /** + * The name of the alias of the agent. + */ + public open fun agentAliasName(): String = unwrap(this).getAgentAliasName() + + /** + * The name of the alias of the agent. + */ + public open fun agentAliasName(`value`: String) { + unwrap(this).setAgentAliasName(`value`) + } + + /** + * The unique identifier of the agent. + */ + public open fun agentId(): String = unwrap(this).getAgentId() + + /** + * The unique identifier of the agent. + */ + public open fun agentId(`value`: String) { + unwrap(this).setAgentId(`value`) + } + + /** + * The Amazon Resource Name (ARN) of the alias of the agent. + */ + public open fun attrAgentAliasArn(): String = unwrap(this).getAttrAgentAliasArn() + + /** + * Contains details about the history of the alias. + */ + public open fun attrAgentAliasHistoryEvents(): IResolvable = + unwrap(this).getAttrAgentAliasHistoryEvents().let(IResolvable::wrap) + + /** + * The unique identifier of the alias of the agent. + */ + public open fun attrAgentAliasId(): String = unwrap(this).getAttrAgentAliasId() + + /** + * The status of the alias of the agent and whether it is ready for use. + * + * The following statuses are possible: + * + * * CREATING – The agent alias is being created. + * * PREPARED – The agent alias is finished being created or updated and is ready to be invoked. + * * FAILED – The agent alias API operation failed. + * * UPDATING – The agent alias is being updated. + * * DELETING – The agent alias is being deleted. + */ + public open fun attrAgentAliasStatus(): String = unwrap(this).getAttrAgentAliasStatus() + + /** + * The time at which the alias of the agent was created. + */ + public open fun attrCreatedAt(): String = unwrap(this).getAttrCreatedAt() + + /** + * The time at which the alias was last updated. + */ + public open fun attrUpdatedAt(): String = unwrap(this).getAttrUpdatedAt() + + /** + * Tag Manager which manages the tags for this resource. + */ + public override fun cdkTagManager(): TagManager = + unwrap(this).getCdkTagManager().let(TagManager::wrap) + + /** + * The description of the alias of the agent. + */ + public open fun description(): String? = unwrap(this).getDescription() + + /** + * The description of the alias of the agent. + */ + public open fun description(`value`: String) { + unwrap(this).setDescription(`value`) + } + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * Contains details about the routing configuration of the alias. + */ + public open fun routingConfiguration(): Any? = unwrap(this).getRoutingConfiguration() + + /** + * Contains details about the routing configuration of the alias. + */ + public open fun routingConfiguration(`value`: IResolvable) { + unwrap(this).setRoutingConfiguration(`value`.let(IResolvable::unwrap)) + } + + /** + * Contains details about the routing configuration of the alias. + */ + public open fun routingConfiguration(`value`: List) { + unwrap(this).setRoutingConfiguration(`value`.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * Contains details about the routing configuration of the alias. + */ + public open fun routingConfiguration(vararg `value`: Any): Unit = + routingConfiguration(`value`.toList()) + + /** + * Metadata that you can assign to a resource as key-value pairs. + * + * For more information, see the following resources:. + */ + public open fun tags(): Map = unwrap(this).getTags() ?: emptyMap() + + /** + * Metadata that you can assign to a resource as key-value pairs. + * + * For more information, see the following resources:. + */ + public open fun tags(`value`: Map) { + unwrap(this).setTags(`value`) + } + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.bedrock.CfnAgentAlias]. + */ + @CdkDslMarker + public interface Builder { + /** + * The name of the alias of the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html#cfn-bedrock-agentalias-agentaliasname) + * @param agentAliasName The name of the alias of the agent. + */ + public fun agentAliasName(agentAliasName: String) + + /** + * The unique identifier of the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html#cfn-bedrock-agentalias-agentid) + * @param agentId The unique identifier of the agent. + */ + public fun agentId(agentId: String) + + /** + * The description of the alias of the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html#cfn-bedrock-agentalias-description) + * @param description The description of the alias of the agent. + */ + public fun description(description: String) + + /** + * Contains details about the routing configuration of the alias. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html#cfn-bedrock-agentalias-routingconfiguration) + * @param routingConfiguration Contains details about the routing configuration of the alias. + */ + public fun routingConfiguration(routingConfiguration: IResolvable) + + /** + * Contains details about the routing configuration of the alias. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html#cfn-bedrock-agentalias-routingconfiguration) + * @param routingConfiguration Contains details about the routing configuration of the alias. + */ + public fun routingConfiguration(routingConfiguration: List) + + /** + * Contains details about the routing configuration of the alias. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html#cfn-bedrock-agentalias-routingconfiguration) + * @param routingConfiguration Contains details about the routing configuration of the alias. + */ + public fun routingConfiguration(vararg routingConfiguration: Any) + + /** + * Metadata that you can assign to a resource as key-value pairs. For more information, see the + * following resources:. + * + * * [Tag naming limits and + * requirements](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions) + * * [Tagging best + * practices](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-best-practices) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html#cfn-bedrock-agentalias-tags) + * @param tags Metadata that you can assign to a resource as key-value pairs. For more + * information, see the following resources:. + */ + public fun tags(tags: Map) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.services.bedrock.CfnAgentAlias.Builder = + software.amazon.awscdk.services.bedrock.CfnAgentAlias.Builder.create(scope, id) + + /** + * The name of the alias of the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html#cfn-bedrock-agentalias-agentaliasname) + * @param agentAliasName The name of the alias of the agent. + */ + override fun agentAliasName(agentAliasName: String) { + cdkBuilder.agentAliasName(agentAliasName) + } + + /** + * The unique identifier of the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html#cfn-bedrock-agentalias-agentid) + * @param agentId The unique identifier of the agent. + */ + override fun agentId(agentId: String) { + cdkBuilder.agentId(agentId) + } + + /** + * The description of the alias of the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html#cfn-bedrock-agentalias-description) + * @param description The description of the alias of the agent. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * Contains details about the routing configuration of the alias. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html#cfn-bedrock-agentalias-routingconfiguration) + * @param routingConfiguration Contains details about the routing configuration of the alias. + */ + override fun routingConfiguration(routingConfiguration: IResolvable) { + cdkBuilder.routingConfiguration(routingConfiguration.let(IResolvable::unwrap)) + } + + /** + * Contains details about the routing configuration of the alias. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html#cfn-bedrock-agentalias-routingconfiguration) + * @param routingConfiguration Contains details about the routing configuration of the alias. + */ + override fun routingConfiguration(routingConfiguration: List) { + cdkBuilder.routingConfiguration(routingConfiguration.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * Contains details about the routing configuration of the alias. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html#cfn-bedrock-agentalias-routingconfiguration) + * @param routingConfiguration Contains details about the routing configuration of the alias. + */ + override fun routingConfiguration(vararg routingConfiguration: Any): Unit = + routingConfiguration(routingConfiguration.toList()) + + /** + * Metadata that you can assign to a resource as key-value pairs. For more information, see the + * following resources:. + * + * * [Tag naming limits and + * requirements](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions) + * * [Tagging best + * practices](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-best-practices) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html#cfn-bedrock-agentalias-tags) + * @param tags Metadata that you can assign to a resource as key-value pairs. For more + * information, see the following resources:. + */ + override fun tags(tags: Map) { + cdkBuilder.tags(tags) + } + + public fun build(): software.amazon.awscdk.services.bedrock.CfnAgentAlias = cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.bedrock.CfnAgentAlias.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnAgentAlias { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnAgentAlias(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.bedrock.CfnAgentAlias): + CfnAgentAlias = CfnAgentAlias(cdkObject) + + internal fun unwrap(wrapped: CfnAgentAlias): + software.amazon.awscdk.services.bedrock.CfnAgentAlias = wrapped.cdkObject as + software.amazon.awscdk.services.bedrock.CfnAgentAlias + } + + /** + * Contains details about the history of the alias. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bedrock.*; + * AgentAliasHistoryEventProperty agentAliasHistoryEventProperty = + * AgentAliasHistoryEventProperty.builder() + * .endDate("endDate") + * .routingConfiguration(List.of(AgentAliasRoutingConfigurationListItemProperty.builder() + * .agentVersion("agentVersion") + * .build())) + * .startDate("startDate") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agentalias-agentaliashistoryevent.html) + */ + public interface AgentAliasHistoryEventProperty { + /** + * The date that the alias stopped being associated to the version in the `routingConfiguration` + * object. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agentalias-agentaliashistoryevent.html#cfn-bedrock-agentalias-agentaliashistoryevent-enddate) + */ + public fun endDate(): String? = unwrap(this).getEndDate() + + /** + * Contains details about the version of the agent with which the alias is associated. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agentalias-agentaliashistoryevent.html#cfn-bedrock-agentalias-agentaliashistoryevent-routingconfiguration) + */ + public fun routingConfiguration(): Any? = unwrap(this).getRoutingConfiguration() + + /** + * The date that the alias began being associated to the version in the `routingConfiguration` + * object. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agentalias-agentaliashistoryevent.html#cfn-bedrock-agentalias-agentaliashistoryevent-startdate) + */ + public fun startDate(): String? = unwrap(this).getStartDate() + + /** + * A builder for [AgentAliasHistoryEventProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param endDate The date that the alias stopped being associated to the version in the + * `routingConfiguration` object. + */ + public fun endDate(endDate: String) + + /** + * @param routingConfiguration Contains details about the version of the agent with which the + * alias is associated. + */ + public fun routingConfiguration(routingConfiguration: IResolvable) + + /** + * @param routingConfiguration Contains details about the version of the agent with which the + * alias is associated. + */ + public fun routingConfiguration(routingConfiguration: List) + + /** + * @param routingConfiguration Contains details about the version of the agent with which the + * alias is associated. + */ + public fun routingConfiguration(vararg routingConfiguration: Any) + + /** + * @param startDate The date that the alias began being associated to the version in the + * `routingConfiguration` object. + */ + public fun startDate(startDate: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.bedrock.CfnAgentAlias.AgentAliasHistoryEventProperty.Builder + = + software.amazon.awscdk.services.bedrock.CfnAgentAlias.AgentAliasHistoryEventProperty.builder() + + /** + * @param endDate The date that the alias stopped being associated to the version in the + * `routingConfiguration` object. + */ + override fun endDate(endDate: String) { + cdkBuilder.endDate(endDate) + } + + /** + * @param routingConfiguration Contains details about the version of the agent with which the + * alias is associated. + */ + override fun routingConfiguration(routingConfiguration: IResolvable) { + cdkBuilder.routingConfiguration(routingConfiguration.let(IResolvable::unwrap)) + } + + /** + * @param routingConfiguration Contains details about the version of the agent with which the + * alias is associated. + */ + override fun routingConfiguration(routingConfiguration: List) { + cdkBuilder.routingConfiguration(routingConfiguration.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param routingConfiguration Contains details about the version of the agent with which the + * alias is associated. + */ + override fun routingConfiguration(vararg routingConfiguration: Any): Unit = + routingConfiguration(routingConfiguration.toList()) + + /** + * @param startDate The date that the alias began being associated to the version in the + * `routingConfiguration` object. + */ + override fun startDate(startDate: String) { + cdkBuilder.startDate(startDate) + } + + public fun build(): + software.amazon.awscdk.services.bedrock.CfnAgentAlias.AgentAliasHistoryEventProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.bedrock.CfnAgentAlias.AgentAliasHistoryEventProperty, + ) : CdkObject(cdkObject), AgentAliasHistoryEventProperty { + /** + * The date that the alias stopped being associated to the version in the + * `routingConfiguration` object. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agentalias-agentaliashistoryevent.html#cfn-bedrock-agentalias-agentaliashistoryevent-enddate) + */ + override fun endDate(): String? = unwrap(this).getEndDate() + + /** + * Contains details about the version of the agent with which the alias is associated. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agentalias-agentaliashistoryevent.html#cfn-bedrock-agentalias-agentaliashistoryevent-routingconfiguration) + */ + override fun routingConfiguration(): Any? = unwrap(this).getRoutingConfiguration() + + /** + * The date that the alias began being associated to the version in the `routingConfiguration` + * object. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agentalias-agentaliashistoryevent.html#cfn-bedrock-agentalias-agentaliashistoryevent-startdate) + */ + override fun startDate(): String? = unwrap(this).getStartDate() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): AgentAliasHistoryEventProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.bedrock.CfnAgentAlias.AgentAliasHistoryEventProperty): + AgentAliasHistoryEventProperty = CdkObjectWrappers.wrap(cdkObject) as? + AgentAliasHistoryEventProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: AgentAliasHistoryEventProperty): + software.amazon.awscdk.services.bedrock.CfnAgentAlias.AgentAliasHistoryEventProperty = + (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.bedrock.CfnAgentAlias.AgentAliasHistoryEventProperty + } + } + + /** + * Contains details about the routing configuration of the alias. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bedrock.*; + * AgentAliasRoutingConfigurationListItemProperty agentAliasRoutingConfigurationListItemProperty = + * AgentAliasRoutingConfigurationListItemProperty.builder() + * .agentVersion("agentVersion") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agentalias-agentaliasroutingconfigurationlistitem.html) + */ + public interface AgentAliasRoutingConfigurationListItemProperty { + /** + * The version of the agent with which the alias is associated. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agentalias-agentaliasroutingconfigurationlistitem.html#cfn-bedrock-agentalias-agentaliasroutingconfigurationlistitem-agentversion) + */ + public fun agentVersion(): String + + /** + * A builder for [AgentAliasRoutingConfigurationListItemProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param agentVersion The version of the agent with which the alias is associated. + */ + public fun agentVersion(agentVersion: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.bedrock.CfnAgentAlias.AgentAliasRoutingConfigurationListItemProperty.Builder + = + software.amazon.awscdk.services.bedrock.CfnAgentAlias.AgentAliasRoutingConfigurationListItemProperty.builder() + + /** + * @param agentVersion The version of the agent with which the alias is associated. + */ + override fun agentVersion(agentVersion: String) { + cdkBuilder.agentVersion(agentVersion) + } + + public fun build(): + software.amazon.awscdk.services.bedrock.CfnAgentAlias.AgentAliasRoutingConfigurationListItemProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.bedrock.CfnAgentAlias.AgentAliasRoutingConfigurationListItemProperty, + ) : CdkObject(cdkObject), AgentAliasRoutingConfigurationListItemProperty { + /** + * The version of the agent with which the alias is associated. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-agentalias-agentaliasroutingconfigurationlistitem.html#cfn-bedrock-agentalias-agentaliasroutingconfigurationlistitem-agentversion) + */ + override fun agentVersion(): String = unwrap(this).getAgentVersion() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): + AgentAliasRoutingConfigurationListItemProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.bedrock.CfnAgentAlias.AgentAliasRoutingConfigurationListItemProperty): + AgentAliasRoutingConfigurationListItemProperty = CdkObjectWrappers.wrap(cdkObject) as? + AgentAliasRoutingConfigurationListItemProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: AgentAliasRoutingConfigurationListItemProperty): + software.amazon.awscdk.services.bedrock.CfnAgentAlias.AgentAliasRoutingConfigurationListItemProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.bedrock.CfnAgentAlias.AgentAliasRoutingConfigurationListItemProperty + } + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bedrock/CfnAgentAliasProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bedrock/CfnAgentAliasProps.kt new file mode 100644 index 0000000000..bae431ef46 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bedrock/CfnAgentAliasProps.kt @@ -0,0 +1,247 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.bedrock + +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.collections.Map + +/** + * Properties for defining a `CfnAgentAlias`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bedrock.*; + * CfnAgentAliasProps cfnAgentAliasProps = CfnAgentAliasProps.builder() + * .agentAliasName("agentAliasName") + * .agentId("agentId") + * // the properties below are optional + * .description("description") + * .routingConfiguration(List.of(AgentAliasRoutingConfigurationListItemProperty.builder() + * .agentVersion("agentVersion") + * .build())) + * .tags(Map.of( + * "tagsKey", "tags")) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html) + */ +public interface CfnAgentAliasProps { + /** + * The name of the alias of the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html#cfn-bedrock-agentalias-agentaliasname) + */ + public fun agentAliasName(): String + + /** + * The unique identifier of the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html#cfn-bedrock-agentalias-agentid) + */ + public fun agentId(): String + + /** + * The description of the alias of the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html#cfn-bedrock-agentalias-description) + */ + public fun description(): String? = unwrap(this).getDescription() + + /** + * Contains details about the routing configuration of the alias. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html#cfn-bedrock-agentalias-routingconfiguration) + */ + public fun routingConfiguration(): Any? = unwrap(this).getRoutingConfiguration() + + /** + * Metadata that you can assign to a resource as key-value pairs. For more information, see the + * following resources:. + * + * * [Tag naming limits and + * requirements](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions) + * * [Tagging best + * practices](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-best-practices) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html#cfn-bedrock-agentalias-tags) + */ + public fun tags(): Map = unwrap(this).getTags() ?: emptyMap() + + /** + * A builder for [CfnAgentAliasProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param agentAliasName The name of the alias of the agent. + */ + public fun agentAliasName(agentAliasName: String) + + /** + * @param agentId The unique identifier of the agent. + */ + public fun agentId(agentId: String) + + /** + * @param description The description of the alias of the agent. + */ + public fun description(description: String) + + /** + * @param routingConfiguration Contains details about the routing configuration of the alias. + */ + public fun routingConfiguration(routingConfiguration: IResolvable) + + /** + * @param routingConfiguration Contains details about the routing configuration of the alias. + */ + public fun routingConfiguration(routingConfiguration: List) + + /** + * @param routingConfiguration Contains details about the routing configuration of the alias. + */ + public fun routingConfiguration(vararg routingConfiguration: Any) + + /** + * @param tags Metadata that you can assign to a resource as key-value pairs. For more + * information, see the following resources:. + * * [Tag naming limits and + * requirements](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions) + * * [Tagging best + * practices](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-best-practices) + */ + public fun tags(tags: Map) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.services.bedrock.CfnAgentAliasProps.Builder = + software.amazon.awscdk.services.bedrock.CfnAgentAliasProps.builder() + + /** + * @param agentAliasName The name of the alias of the agent. + */ + override fun agentAliasName(agentAliasName: String) { + cdkBuilder.agentAliasName(agentAliasName) + } + + /** + * @param agentId The unique identifier of the agent. + */ + override fun agentId(agentId: String) { + cdkBuilder.agentId(agentId) + } + + /** + * @param description The description of the alias of the agent. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * @param routingConfiguration Contains details about the routing configuration of the alias. + */ + override fun routingConfiguration(routingConfiguration: IResolvable) { + cdkBuilder.routingConfiguration(routingConfiguration.let(IResolvable::unwrap)) + } + + /** + * @param routingConfiguration Contains details about the routing configuration of the alias. + */ + override fun routingConfiguration(routingConfiguration: List) { + cdkBuilder.routingConfiguration(routingConfiguration.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param routingConfiguration Contains details about the routing configuration of the alias. + */ + override fun routingConfiguration(vararg routingConfiguration: Any): Unit = + routingConfiguration(routingConfiguration.toList()) + + /** + * @param tags Metadata that you can assign to a resource as key-value pairs. For more + * information, see the following resources:. + * * [Tag naming limits and + * requirements](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions) + * * [Tagging best + * practices](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-best-practices) + */ + override fun tags(tags: Map) { + cdkBuilder.tags(tags) + } + + public fun build(): software.amazon.awscdk.services.bedrock.CfnAgentAliasProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.bedrock.CfnAgentAliasProps, + ) : CdkObject(cdkObject), CfnAgentAliasProps { + /** + * The name of the alias of the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html#cfn-bedrock-agentalias-agentaliasname) + */ + override fun agentAliasName(): String = unwrap(this).getAgentAliasName() + + /** + * The unique identifier of the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html#cfn-bedrock-agentalias-agentid) + */ + override fun agentId(): String = unwrap(this).getAgentId() + + /** + * The description of the alias of the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html#cfn-bedrock-agentalias-description) + */ + override fun description(): String? = unwrap(this).getDescription() + + /** + * Contains details about the routing configuration of the alias. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html#cfn-bedrock-agentalias-routingconfiguration) + */ + override fun routingConfiguration(): Any? = unwrap(this).getRoutingConfiguration() + + /** + * Metadata that you can assign to a resource as key-value pairs. For more information, see the + * following resources:. + * + * * [Tag naming limits and + * requirements](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions) + * * [Tagging best + * practices](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-best-practices) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agentalias.html#cfn-bedrock-agentalias-tags) + */ + override fun tags(): Map = unwrap(this).getTags() ?: emptyMap() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnAgentAliasProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.bedrock.CfnAgentAliasProps): + CfnAgentAliasProps = CdkObjectWrappers.wrap(cdkObject) as? CfnAgentAliasProps ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnAgentAliasProps): + software.amazon.awscdk.services.bedrock.CfnAgentAliasProps = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.bedrock.CfnAgentAliasProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bedrock/CfnAgentProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bedrock/CfnAgentProps.kt new file mode 100644 index 0000000000..49d39f2970 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bedrock/CfnAgentProps.kt @@ -0,0 +1,671 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.bedrock + +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.Boolean +import kotlin.Number +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.collections.Map +import kotlin.jvm.JvmName + +/** + * Properties for defining a `CfnAgent`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bedrock.*; + * CfnAgentProps cfnAgentProps = CfnAgentProps.builder() + * .agentName("agentName") + * // the properties below are optional + * .actionGroups(List.of(AgentActionGroupProperty.builder() + * .actionGroupName("actionGroupName") + * // the properties below are optional + * .actionGroupExecutor(ActionGroupExecutorProperty.builder() + * .lambda("lambda") + * .build()) + * .actionGroupState("actionGroupState") + * .apiSchema(APISchemaProperty.builder() + * .payload("payload") + * .s3(S3IdentifierProperty.builder() + * .s3BucketName("s3BucketName") + * .s3ObjectKey("s3ObjectKey") + * .build()) + * .build()) + * .description("description") + * .parentActionGroupSignature("parentActionGroupSignature") + * .skipResourceInUseCheckOnDelete(false) + * .build())) + * .agentResourceRoleArn("agentResourceRoleArn") + * .autoPrepare(false) + * .customerEncryptionKeyArn("customerEncryptionKeyArn") + * .description("description") + * .foundationModel("foundationModel") + * .idleSessionTtlInSeconds(123) + * .instruction("instruction") + * .knowledgeBases(List.of(AgentKnowledgeBaseProperty.builder() + * .description("description") + * .knowledgeBaseId("knowledgeBaseId") + * // the properties below are optional + * .knowledgeBaseState("knowledgeBaseState") + * .build())) + * .promptOverrideConfiguration(PromptOverrideConfigurationProperty.builder() + * .promptConfigurations(List.of(PromptConfigurationProperty.builder() + * .basePromptTemplate("basePromptTemplate") + * .inferenceConfiguration(InferenceConfigurationProperty.builder() + * .maximumLength(123) + * .stopSequences(List.of("stopSequences")) + * .temperature(123) + * .topK(123) + * .topP(123) + * .build()) + * .parserMode("parserMode") + * .promptCreationMode("promptCreationMode") + * .promptState("promptState") + * .promptType("promptType") + * .build())) + * // the properties below are optional + * .overrideLambda("overrideLambda") + * .build()) + * .skipResourceInUseCheckOnDelete(false) + * .tags(Map.of( + * "tagsKey", "tags")) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html) + */ +public interface CfnAgentProps { + /** + * The action groups that belong to an agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-actiongroups) + */ + public fun actionGroups(): Any? = unwrap(this).getActionGroups() + + /** + * The name of the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-agentname) + */ + public fun agentName(): String + + /** + * The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on the + * agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-agentresourcerolearn) + */ + public fun agentResourceRoleArn(): String? = unwrap(this).getAgentResourceRoleArn() + + /** + * Specifies whether to automatically update the `DRAFT` version of the agent after making changes + * to the agent. + * + * The `DRAFT` version can be continually iterated upon during internal development. By default, + * this value is `false` . + * + * Default: - false + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-autoprepare) + */ + public fun autoPrepare(): Any? = unwrap(this).getAutoPrepare() + + /** + * The Amazon Resource Name (ARN) of the AWS KMS key that encrypts the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-customerencryptionkeyarn) + */ + public fun customerEncryptionKeyArn(): String? = unwrap(this).getCustomerEncryptionKeyArn() + + /** + * The description of the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-description) + */ + public fun description(): String? = unwrap(this).getDescription() + + /** + * The foundation model used for orchestration by the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-foundationmodel) + */ + public fun foundationModel(): String? = unwrap(this).getFoundationModel() + + /** + * The number of seconds for which Amazon Bedrock keeps information about a user's conversation + * with the agent. + * + * A user interaction remains active for the amount of time specified. If no conversation occurs + * during this time, the session expires and Amazon Bedrock deletes any data provided before the + * timeout. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-idlesessionttlinseconds) + */ + public fun idleSessionTtlInSeconds(): Number? = unwrap(this).getIdleSessionTtlInSeconds() + + /** + * Instructions that tell the agent what it should do and how it should interact with users. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-instruction) + */ + public fun instruction(): String? = unwrap(this).getInstruction() + + /** + * The knowledge bases associated with the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-knowledgebases) + */ + public fun knowledgeBases(): Any? = unwrap(this).getKnowledgeBases() + + /** + * Contains configurations to override prompt templates in different parts of an agent sequence. + * + * For more information, see [Advanced + * prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-promptoverrideconfiguration) + */ + public fun promptOverrideConfiguration(): Any? = unwrap(this).getPromptOverrideConfiguration() + + /** + * Specifies whether to delete the resource even if it's in use. + * + * By default, this value is `false` . + * + * Default: - false + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-skipresourceinusecheckondelete) + */ + public fun skipResourceInUseCheckOnDelete(): Any? = + unwrap(this).getSkipResourceInUseCheckOnDelete() + + /** + * Metadata that you can assign to a resource as key-value pairs. For more information, see the + * following resources:. + * + * * [Tag naming limits and + * requirements](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions) + * * [Tagging best + * practices](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-best-practices) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-tags) + */ + public fun tags(): Map = unwrap(this).getTags() ?: emptyMap() + + /** + * A builder for [CfnAgentProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param actionGroups The action groups that belong to an agent. + */ + public fun actionGroups(actionGroups: IResolvable) + + /** + * @param actionGroups The action groups that belong to an agent. + */ + public fun actionGroups(actionGroups: List) + + /** + * @param actionGroups The action groups that belong to an agent. + */ + public fun actionGroups(vararg actionGroups: Any) + + /** + * @param agentName The name of the agent. + */ + public fun agentName(agentName: String) + + /** + * @param agentResourceRoleArn The Amazon Resource Name (ARN) of the IAM role with permissions + * to invoke API operations on the agent. + */ + public fun agentResourceRoleArn(agentResourceRoleArn: String) + + /** + * @param autoPrepare Specifies whether to automatically update the `DRAFT` version of the agent + * after making changes to the agent. + * The `DRAFT` version can be continually iterated upon during internal development. By default, + * this value is `false` . + */ + public fun autoPrepare(autoPrepare: Boolean) + + /** + * @param autoPrepare Specifies whether to automatically update the `DRAFT` version of the agent + * after making changes to the agent. + * The `DRAFT` version can be continually iterated upon during internal development. By default, + * this value is `false` . + */ + public fun autoPrepare(autoPrepare: IResolvable) + + /** + * @param customerEncryptionKeyArn The Amazon Resource Name (ARN) of the AWS KMS key that + * encrypts the agent. + */ + public fun customerEncryptionKeyArn(customerEncryptionKeyArn: String) + + /** + * @param description The description of the agent. + */ + public fun description(description: String) + + /** + * @param foundationModel The foundation model used for orchestration by the agent. + */ + public fun foundationModel(foundationModel: String) + + /** + * @param idleSessionTtlInSeconds The number of seconds for which Amazon Bedrock keeps + * information about a user's conversation with the agent. + * A user interaction remains active for the amount of time specified. If no conversation occurs + * during this time, the session expires and Amazon Bedrock deletes any data provided before the + * timeout. + */ + public fun idleSessionTtlInSeconds(idleSessionTtlInSeconds: Number) + + /** + * @param instruction Instructions that tell the agent what it should do and how it should + * interact with users. + */ + public fun instruction(instruction: String) + + /** + * @param knowledgeBases The knowledge bases associated with the agent. + */ + public fun knowledgeBases(knowledgeBases: IResolvable) + + /** + * @param knowledgeBases The knowledge bases associated with the agent. + */ + public fun knowledgeBases(knowledgeBases: List) + + /** + * @param knowledgeBases The knowledge bases associated with the agent. + */ + public fun knowledgeBases(vararg knowledgeBases: Any) + + /** + * @param promptOverrideConfiguration Contains configurations to override prompt templates in + * different parts of an agent sequence. + * For more information, see [Advanced + * prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html) . + */ + public fun promptOverrideConfiguration(promptOverrideConfiguration: IResolvable) + + /** + * @param promptOverrideConfiguration Contains configurations to override prompt templates in + * different parts of an agent sequence. + * For more information, see [Advanced + * prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html) . + */ + public + fun promptOverrideConfiguration(promptOverrideConfiguration: CfnAgent.PromptOverrideConfigurationProperty) + + /** + * @param promptOverrideConfiguration Contains configurations to override prompt templates in + * different parts of an agent sequence. + * For more information, see [Advanced + * prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html) . + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("c30767a4aa8ca0670c9af8bd2cf590dfe41b26e0dc9d860f546007a052d4812f") + public + fun promptOverrideConfiguration(promptOverrideConfiguration: CfnAgent.PromptOverrideConfigurationProperty.Builder.() -> Unit) + + /** + * @param skipResourceInUseCheckOnDelete Specifies whether to delete the resource even if it's + * in use. + * By default, this value is `false` . + */ + public fun skipResourceInUseCheckOnDelete(skipResourceInUseCheckOnDelete: Boolean) + + /** + * @param skipResourceInUseCheckOnDelete Specifies whether to delete the resource even if it's + * in use. + * By default, this value is `false` . + */ + public fun skipResourceInUseCheckOnDelete(skipResourceInUseCheckOnDelete: IResolvable) + + /** + * @param tags Metadata that you can assign to a resource as key-value pairs. For more + * information, see the following resources:. + * * [Tag naming limits and + * requirements](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions) + * * [Tagging best + * practices](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-best-practices) + */ + public fun tags(tags: Map) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.services.bedrock.CfnAgentProps.Builder = + software.amazon.awscdk.services.bedrock.CfnAgentProps.builder() + + /** + * @param actionGroups The action groups that belong to an agent. + */ + override fun actionGroups(actionGroups: IResolvable) { + cdkBuilder.actionGroups(actionGroups.let(IResolvable::unwrap)) + } + + /** + * @param actionGroups The action groups that belong to an agent. + */ + override fun actionGroups(actionGroups: List) { + cdkBuilder.actionGroups(actionGroups.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param actionGroups The action groups that belong to an agent. + */ + override fun actionGroups(vararg actionGroups: Any): Unit = actionGroups(actionGroups.toList()) + + /** + * @param agentName The name of the agent. + */ + override fun agentName(agentName: String) { + cdkBuilder.agentName(agentName) + } + + /** + * @param agentResourceRoleArn The Amazon Resource Name (ARN) of the IAM role with permissions + * to invoke API operations on the agent. + */ + override fun agentResourceRoleArn(agentResourceRoleArn: String) { + cdkBuilder.agentResourceRoleArn(agentResourceRoleArn) + } + + /** + * @param autoPrepare Specifies whether to automatically update the `DRAFT` version of the agent + * after making changes to the agent. + * The `DRAFT` version can be continually iterated upon during internal development. By default, + * this value is `false` . + */ + override fun autoPrepare(autoPrepare: Boolean) { + cdkBuilder.autoPrepare(autoPrepare) + } + + /** + * @param autoPrepare Specifies whether to automatically update the `DRAFT` version of the agent + * after making changes to the agent. + * The `DRAFT` version can be continually iterated upon during internal development. By default, + * this value is `false` . + */ + override fun autoPrepare(autoPrepare: IResolvable) { + cdkBuilder.autoPrepare(autoPrepare.let(IResolvable::unwrap)) + } + + /** + * @param customerEncryptionKeyArn The Amazon Resource Name (ARN) of the AWS KMS key that + * encrypts the agent. + */ + override fun customerEncryptionKeyArn(customerEncryptionKeyArn: String) { + cdkBuilder.customerEncryptionKeyArn(customerEncryptionKeyArn) + } + + /** + * @param description The description of the agent. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * @param foundationModel The foundation model used for orchestration by the agent. + */ + override fun foundationModel(foundationModel: String) { + cdkBuilder.foundationModel(foundationModel) + } + + /** + * @param idleSessionTtlInSeconds The number of seconds for which Amazon Bedrock keeps + * information about a user's conversation with the agent. + * A user interaction remains active for the amount of time specified. If no conversation occurs + * during this time, the session expires and Amazon Bedrock deletes any data provided before the + * timeout. + */ + override fun idleSessionTtlInSeconds(idleSessionTtlInSeconds: Number) { + cdkBuilder.idleSessionTtlInSeconds(idleSessionTtlInSeconds) + } + + /** + * @param instruction Instructions that tell the agent what it should do and how it should + * interact with users. + */ + override fun instruction(instruction: String) { + cdkBuilder.instruction(instruction) + } + + /** + * @param knowledgeBases The knowledge bases associated with the agent. + */ + override fun knowledgeBases(knowledgeBases: IResolvable) { + cdkBuilder.knowledgeBases(knowledgeBases.let(IResolvable::unwrap)) + } + + /** + * @param knowledgeBases The knowledge bases associated with the agent. + */ + override fun knowledgeBases(knowledgeBases: List) { + cdkBuilder.knowledgeBases(knowledgeBases.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param knowledgeBases The knowledge bases associated with the agent. + */ + override fun knowledgeBases(vararg knowledgeBases: Any): Unit = + knowledgeBases(knowledgeBases.toList()) + + /** + * @param promptOverrideConfiguration Contains configurations to override prompt templates in + * different parts of an agent sequence. + * For more information, see [Advanced + * prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html) . + */ + override fun promptOverrideConfiguration(promptOverrideConfiguration: IResolvable) { + cdkBuilder.promptOverrideConfiguration(promptOverrideConfiguration.let(IResolvable::unwrap)) + } + + /** + * @param promptOverrideConfiguration Contains configurations to override prompt templates in + * different parts of an agent sequence. + * For more information, see [Advanced + * prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html) . + */ + override + fun promptOverrideConfiguration(promptOverrideConfiguration: CfnAgent.PromptOverrideConfigurationProperty) { + cdkBuilder.promptOverrideConfiguration(promptOverrideConfiguration.let(CfnAgent.PromptOverrideConfigurationProperty::unwrap)) + } + + /** + * @param promptOverrideConfiguration Contains configurations to override prompt templates in + * different parts of an agent sequence. + * For more information, see [Advanced + * prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html) . + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("c30767a4aa8ca0670c9af8bd2cf590dfe41b26e0dc9d860f546007a052d4812f") + override + fun promptOverrideConfiguration(promptOverrideConfiguration: CfnAgent.PromptOverrideConfigurationProperty.Builder.() -> Unit): + Unit = + promptOverrideConfiguration(CfnAgent.PromptOverrideConfigurationProperty(promptOverrideConfiguration)) + + /** + * @param skipResourceInUseCheckOnDelete Specifies whether to delete the resource even if it's + * in use. + * By default, this value is `false` . + */ + override fun skipResourceInUseCheckOnDelete(skipResourceInUseCheckOnDelete: Boolean) { + cdkBuilder.skipResourceInUseCheckOnDelete(skipResourceInUseCheckOnDelete) + } + + /** + * @param skipResourceInUseCheckOnDelete Specifies whether to delete the resource even if it's + * in use. + * By default, this value is `false` . + */ + override fun skipResourceInUseCheckOnDelete(skipResourceInUseCheckOnDelete: IResolvable) { + cdkBuilder.skipResourceInUseCheckOnDelete(skipResourceInUseCheckOnDelete.let(IResolvable::unwrap)) + } + + /** + * @param tags Metadata that you can assign to a resource as key-value pairs. For more + * information, see the following resources:. + * * [Tag naming limits and + * requirements](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions) + * * [Tagging best + * practices](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-best-practices) + */ + override fun tags(tags: Map) { + cdkBuilder.tags(tags) + } + + public fun build(): software.amazon.awscdk.services.bedrock.CfnAgentProps = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.bedrock.CfnAgentProps, + ) : CdkObject(cdkObject), CfnAgentProps { + /** + * The action groups that belong to an agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-actiongroups) + */ + override fun actionGroups(): Any? = unwrap(this).getActionGroups() + + /** + * The name of the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-agentname) + */ + override fun agentName(): String = unwrap(this).getAgentName() + + /** + * The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on + * the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-agentresourcerolearn) + */ + override fun agentResourceRoleArn(): String? = unwrap(this).getAgentResourceRoleArn() + + /** + * Specifies whether to automatically update the `DRAFT` version of the agent after making + * changes to the agent. + * + * The `DRAFT` version can be continually iterated upon during internal development. By default, + * this value is `false` . + * + * Default: - false + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-autoprepare) + */ + override fun autoPrepare(): Any? = unwrap(this).getAutoPrepare() + + /** + * The Amazon Resource Name (ARN) of the AWS KMS key that encrypts the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-customerencryptionkeyarn) + */ + override fun customerEncryptionKeyArn(): String? = unwrap(this).getCustomerEncryptionKeyArn() + + /** + * The description of the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-description) + */ + override fun description(): String? = unwrap(this).getDescription() + + /** + * The foundation model used for orchestration by the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-foundationmodel) + */ + override fun foundationModel(): String? = unwrap(this).getFoundationModel() + + /** + * The number of seconds for which Amazon Bedrock keeps information about a user's conversation + * with the agent. + * + * A user interaction remains active for the amount of time specified. If no conversation occurs + * during this time, the session expires and Amazon Bedrock deletes any data provided before the + * timeout. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-idlesessionttlinseconds) + */ + override fun idleSessionTtlInSeconds(): Number? = unwrap(this).getIdleSessionTtlInSeconds() + + /** + * Instructions that tell the agent what it should do and how it should interact with users. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-instruction) + */ + override fun instruction(): String? = unwrap(this).getInstruction() + + /** + * The knowledge bases associated with the agent. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-knowledgebases) + */ + override fun knowledgeBases(): Any? = unwrap(this).getKnowledgeBases() + + /** + * Contains configurations to override prompt templates in different parts of an agent sequence. + * + * For more information, see [Advanced + * prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-promptoverrideconfiguration) + */ + override fun promptOverrideConfiguration(): Any? = unwrap(this).getPromptOverrideConfiguration() + + /** + * Specifies whether to delete the resource even if it's in use. + * + * By default, this value is `false` . + * + * Default: - false + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-skipresourceinusecheckondelete) + */ + override fun skipResourceInUseCheckOnDelete(): Any? = + unwrap(this).getSkipResourceInUseCheckOnDelete() + + /** + * Metadata that you can assign to a resource as key-value pairs. For more information, see the + * following resources:. + * + * * [Tag naming limits and + * requirements](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions) + * * [Tagging best + * practices](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-best-practices) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-agent.html#cfn-bedrock-agent-tags) + */ + override fun tags(): Map = unwrap(this).getTags() ?: emptyMap() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnAgentProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.bedrock.CfnAgentProps): + CfnAgentProps = CdkObjectWrappers.wrap(cdkObject) as? CfnAgentProps ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnAgentProps): + software.amazon.awscdk.services.bedrock.CfnAgentProps = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.bedrock.CfnAgentProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bedrock/CfnDataSource.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bedrock/CfnDataSource.kt new file mode 100644 index 0000000000..c1b93499f2 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bedrock/CfnDataSource.kt @@ -0,0 +1,1374 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.bedrock + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.Number +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.jvm.JvmName +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * Specifies a data source as a resource in a top-level template. Minimally, you must specify the + * following properties:. + * + * * Name – Specify a name for the data source. + * * KnowledgeBaseId – Specify the ID of the knowledge base for the data source to belong to. + * * DataSourceConfiguration – Specify information about the Amazon S3 bucket containing the data + * source. The following sub-properties are required: + * * Type – Specify the value `S3` . + * + * For more information about setting up data sources in Amazon Bedrock , see [Set up a data source + * for your knowledge + * base](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-ds.html) . + * + * See the *Properties* section below for descriptions of both the required and optional properties. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bedrock.*; + * CfnDataSource cfnDataSource = CfnDataSource.Builder.create(this, "MyCfnDataSource") + * .dataSourceConfiguration(DataSourceConfigurationProperty.builder() + * .s3Configuration(S3DataSourceConfigurationProperty.builder() + * .bucketArn("bucketArn") + * // the properties below are optional + * .inclusionPrefixes(List.of("inclusionPrefixes")) + * .build()) + * .type("type") + * .build()) + * .knowledgeBaseId("knowledgeBaseId") + * .name("name") + * // the properties below are optional + * .description("description") + * .serverSideEncryptionConfiguration(ServerSideEncryptionConfigurationProperty.builder() + * .kmsKeyArn("kmsKeyArn") + * .build()) + * .vectorIngestionConfiguration(VectorIngestionConfigurationProperty.builder() + * .chunkingConfiguration(ChunkingConfigurationProperty.builder() + * .chunkingStrategy("chunkingStrategy") + * // the properties below are optional + * .fixedSizeChunkingConfiguration(FixedSizeChunkingConfigurationProperty.builder() + * .maxTokens(123) + * .overlapPercentage(123) + * .build()) + * .build()) + * .build()) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html) + */ +public open class CfnDataSource( + cdkObject: software.amazon.awscdk.services.bedrock.CfnDataSource, +) : CfnResource(cdkObject), IInspectable { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnDataSourceProps, + ) : + this(software.amazon.awscdk.services.bedrock.CfnDataSource(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnDataSourceProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnDataSourceProps.Builder.() -> Unit, + ) : this(scope, id, CfnDataSourceProps(props) + ) + + /** + * The time at which the data source was created. + */ + public open fun attrCreatedAt(): String = unwrap(this).getAttrCreatedAt() + + /** + * The unique identifier of the data source. + */ + public open fun attrDataSourceId(): String = unwrap(this).getAttrDataSourceId() + + /** + * The status of the data source. The following statuses are possible:. + * + * * Available – The data source has been created and is ready for ingestion into the knowledge + * base. + * * Deleting – The data source is being deleted. + */ + public open fun attrDataSourceStatus(): String = unwrap(this).getAttrDataSourceStatus() + + /** + * The time at which the data source was last updated. + */ + public open fun attrUpdatedAt(): String = unwrap(this).getAttrUpdatedAt() + + /** + * Contains details about how the data source is stored. + */ + public open fun dataSourceConfiguration(): Any = unwrap(this).getDataSourceConfiguration() + + /** + * Contains details about how the data source is stored. + */ + public open fun dataSourceConfiguration(`value`: IResolvable) { + unwrap(this).setDataSourceConfiguration(`value`.let(IResolvable::unwrap)) + } + + /** + * Contains details about how the data source is stored. + */ + public open fun dataSourceConfiguration(`value`: DataSourceConfigurationProperty) { + unwrap(this).setDataSourceConfiguration(`value`.let(DataSourceConfigurationProperty::unwrap)) + } + + /** + * Contains details about how the data source is stored. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("450511e416fa4de3cf65f957ddfb66669cb9320e233b58185f6c507112c24632") + public open + fun dataSourceConfiguration(`value`: DataSourceConfigurationProperty.Builder.() -> Unit): Unit + = dataSourceConfiguration(DataSourceConfigurationProperty(`value`)) + + /** + * The description of the data source. + */ + public open fun description(): String? = unwrap(this).getDescription() + + /** + * The description of the data source. + */ + public open fun description(`value`: String) { + unwrap(this).setDescription(`value`) + } + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * The unique identifier of the knowledge base to which the data source belongs. + */ + public open fun knowledgeBaseId(): String = unwrap(this).getKnowledgeBaseId() + + /** + * The unique identifier of the knowledge base to which the data source belongs. + */ + public open fun knowledgeBaseId(`value`: String) { + unwrap(this).setKnowledgeBaseId(`value`) + } + + /** + * The name of the data source. + */ + public open fun name(): String = unwrap(this).getName() + + /** + * The name of the data source. + */ + public open fun name(`value`: String) { + unwrap(this).setName(`value`) + } + + /** + * Contains details about the configuration of the server-side encryption. + */ + public open fun serverSideEncryptionConfiguration(): Any? = + unwrap(this).getServerSideEncryptionConfiguration() + + /** + * Contains details about the configuration of the server-side encryption. + */ + public open fun serverSideEncryptionConfiguration(`value`: IResolvable) { + unwrap(this).setServerSideEncryptionConfiguration(`value`.let(IResolvable::unwrap)) + } + + /** + * Contains details about the configuration of the server-side encryption. + */ + public open + fun serverSideEncryptionConfiguration(`value`: ServerSideEncryptionConfigurationProperty) { + unwrap(this).setServerSideEncryptionConfiguration(`value`.let(ServerSideEncryptionConfigurationProperty::unwrap)) + } + + /** + * Contains details about the configuration of the server-side encryption. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("a5c831df08edc33329772f664a6ec5e03b72150019c93718da062c6ec680f3f9") + public open + fun serverSideEncryptionConfiguration(`value`: ServerSideEncryptionConfigurationProperty.Builder.() -> Unit): + Unit = serverSideEncryptionConfiguration(ServerSideEncryptionConfigurationProperty(`value`)) + + /** + * Contains details about how to ingest the documents in the data source. + */ + public open fun vectorIngestionConfiguration(): Any? = + unwrap(this).getVectorIngestionConfiguration() + + /** + * Contains details about how to ingest the documents in the data source. + */ + public open fun vectorIngestionConfiguration(`value`: IResolvable) { + unwrap(this).setVectorIngestionConfiguration(`value`.let(IResolvable::unwrap)) + } + + /** + * Contains details about how to ingest the documents in the data source. + */ + public open fun vectorIngestionConfiguration(`value`: VectorIngestionConfigurationProperty) { + unwrap(this).setVectorIngestionConfiguration(`value`.let(VectorIngestionConfigurationProperty::unwrap)) + } + + /** + * Contains details about how to ingest the documents in the data source. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("b4283f3cf6536a64a2a71740f5c1314b977cba351458cf40aacc6b31a531ed1d") + public open + fun vectorIngestionConfiguration(`value`: VectorIngestionConfigurationProperty.Builder.() -> Unit): + Unit = vectorIngestionConfiguration(VectorIngestionConfigurationProperty(`value`)) + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.bedrock.CfnDataSource]. + */ + @CdkDslMarker + public interface Builder { + /** + * Contains details about how the data source is stored. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-datasourceconfiguration) + * @param dataSourceConfiguration Contains details about how the data source is stored. + */ + public fun dataSourceConfiguration(dataSourceConfiguration: IResolvable) + + /** + * Contains details about how the data source is stored. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-datasourceconfiguration) + * @param dataSourceConfiguration Contains details about how the data source is stored. + */ + public fun dataSourceConfiguration(dataSourceConfiguration: DataSourceConfigurationProperty) + + /** + * Contains details about how the data source is stored. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-datasourceconfiguration) + * @param dataSourceConfiguration Contains details about how the data source is stored. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("91e233c010d47768c60bfdc0dba1f7f3220eeb3e31f346e31ef4d80aa4d9984b") + public + fun dataSourceConfiguration(dataSourceConfiguration: DataSourceConfigurationProperty.Builder.() -> Unit) + + /** + * The description of the data source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-description) + * @param description The description of the data source. + */ + public fun description(description: String) + + /** + * The unique identifier of the knowledge base to which the data source belongs. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-knowledgebaseid) + * @param knowledgeBaseId The unique identifier of the knowledge base to which the data source + * belongs. + */ + public fun knowledgeBaseId(knowledgeBaseId: String) + + /** + * The name of the data source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-name) + * @param name The name of the data source. + */ + public fun name(name: String) + + /** + * Contains details about the configuration of the server-side encryption. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-serversideencryptionconfiguration) + * @param serverSideEncryptionConfiguration Contains details about the configuration of the + * server-side encryption. + */ + public fun serverSideEncryptionConfiguration(serverSideEncryptionConfiguration: IResolvable) + + /** + * Contains details about the configuration of the server-side encryption. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-serversideencryptionconfiguration) + * @param serverSideEncryptionConfiguration Contains details about the configuration of the + * server-side encryption. + */ + public + fun serverSideEncryptionConfiguration(serverSideEncryptionConfiguration: ServerSideEncryptionConfigurationProperty) + + /** + * Contains details about the configuration of the server-side encryption. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-serversideencryptionconfiguration) + * @param serverSideEncryptionConfiguration Contains details about the configuration of the + * server-side encryption. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("8b7b9405a65f26fee70e40f59bac567a5fd157ebc9bb4bb4cf393ed256289f4d") + public + fun serverSideEncryptionConfiguration(serverSideEncryptionConfiguration: ServerSideEncryptionConfigurationProperty.Builder.() -> Unit) + + /** + * Contains details about how to ingest the documents in the data source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-vectoringestionconfiguration) + * @param vectorIngestionConfiguration Contains details about how to ingest the documents in the + * data source. + */ + public fun vectorIngestionConfiguration(vectorIngestionConfiguration: IResolvable) + + /** + * Contains details about how to ingest the documents in the data source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-vectoringestionconfiguration) + * @param vectorIngestionConfiguration Contains details about how to ingest the documents in the + * data source. + */ + public + fun vectorIngestionConfiguration(vectorIngestionConfiguration: VectorIngestionConfigurationProperty) + + /** + * Contains details about how to ingest the documents in the data source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-vectoringestionconfiguration) + * @param vectorIngestionConfiguration Contains details about how to ingest the documents in the + * data source. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("8ed565b9bd41dc5d8856de6d7d3b5af02c3d64a4b083b75343bb946ae8923d20") + public + fun vectorIngestionConfiguration(vectorIngestionConfiguration: VectorIngestionConfigurationProperty.Builder.() -> Unit) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.services.bedrock.CfnDataSource.Builder = + software.amazon.awscdk.services.bedrock.CfnDataSource.Builder.create(scope, id) + + /** + * Contains details about how the data source is stored. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-datasourceconfiguration) + * @param dataSourceConfiguration Contains details about how the data source is stored. + */ + override fun dataSourceConfiguration(dataSourceConfiguration: IResolvable) { + cdkBuilder.dataSourceConfiguration(dataSourceConfiguration.let(IResolvable::unwrap)) + } + + /** + * Contains details about how the data source is stored. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-datasourceconfiguration) + * @param dataSourceConfiguration Contains details about how the data source is stored. + */ + override fun dataSourceConfiguration(dataSourceConfiguration: DataSourceConfigurationProperty) { + cdkBuilder.dataSourceConfiguration(dataSourceConfiguration.let(DataSourceConfigurationProperty::unwrap)) + } + + /** + * Contains details about how the data source is stored. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-datasourceconfiguration) + * @param dataSourceConfiguration Contains details about how the data source is stored. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("91e233c010d47768c60bfdc0dba1f7f3220eeb3e31f346e31ef4d80aa4d9984b") + override + fun dataSourceConfiguration(dataSourceConfiguration: DataSourceConfigurationProperty.Builder.() -> Unit): + Unit = dataSourceConfiguration(DataSourceConfigurationProperty(dataSourceConfiguration)) + + /** + * The description of the data source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-description) + * @param description The description of the data source. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * The unique identifier of the knowledge base to which the data source belongs. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-knowledgebaseid) + * @param knowledgeBaseId The unique identifier of the knowledge base to which the data source + * belongs. + */ + override fun knowledgeBaseId(knowledgeBaseId: String) { + cdkBuilder.knowledgeBaseId(knowledgeBaseId) + } + + /** + * The name of the data source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-name) + * @param name The name of the data source. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + /** + * Contains details about the configuration of the server-side encryption. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-serversideencryptionconfiguration) + * @param serverSideEncryptionConfiguration Contains details about the configuration of the + * server-side encryption. + */ + override fun serverSideEncryptionConfiguration(serverSideEncryptionConfiguration: IResolvable) { + cdkBuilder.serverSideEncryptionConfiguration(serverSideEncryptionConfiguration.let(IResolvable::unwrap)) + } + + /** + * Contains details about the configuration of the server-side encryption. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-serversideencryptionconfiguration) + * @param serverSideEncryptionConfiguration Contains details about the configuration of the + * server-side encryption. + */ + override + fun serverSideEncryptionConfiguration(serverSideEncryptionConfiguration: ServerSideEncryptionConfigurationProperty) { + cdkBuilder.serverSideEncryptionConfiguration(serverSideEncryptionConfiguration.let(ServerSideEncryptionConfigurationProperty::unwrap)) + } + + /** + * Contains details about the configuration of the server-side encryption. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-serversideencryptionconfiguration) + * @param serverSideEncryptionConfiguration Contains details about the configuration of the + * server-side encryption. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("8b7b9405a65f26fee70e40f59bac567a5fd157ebc9bb4bb4cf393ed256289f4d") + override + fun serverSideEncryptionConfiguration(serverSideEncryptionConfiguration: ServerSideEncryptionConfigurationProperty.Builder.() -> Unit): + Unit = + serverSideEncryptionConfiguration(ServerSideEncryptionConfigurationProperty(serverSideEncryptionConfiguration)) + + /** + * Contains details about how to ingest the documents in the data source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-vectoringestionconfiguration) + * @param vectorIngestionConfiguration Contains details about how to ingest the documents in the + * data source. + */ + override fun vectorIngestionConfiguration(vectorIngestionConfiguration: IResolvable) { + cdkBuilder.vectorIngestionConfiguration(vectorIngestionConfiguration.let(IResolvable::unwrap)) + } + + /** + * Contains details about how to ingest the documents in the data source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-vectoringestionconfiguration) + * @param vectorIngestionConfiguration Contains details about how to ingest the documents in the + * data source. + */ + override + fun vectorIngestionConfiguration(vectorIngestionConfiguration: VectorIngestionConfigurationProperty) { + cdkBuilder.vectorIngestionConfiguration(vectorIngestionConfiguration.let(VectorIngestionConfigurationProperty::unwrap)) + } + + /** + * Contains details about how to ingest the documents in the data source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-vectoringestionconfiguration) + * @param vectorIngestionConfiguration Contains details about how to ingest the documents in the + * data source. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("8ed565b9bd41dc5d8856de6d7d3b5af02c3d64a4b083b75343bb946ae8923d20") + override + fun vectorIngestionConfiguration(vectorIngestionConfiguration: VectorIngestionConfigurationProperty.Builder.() -> Unit): + Unit = + vectorIngestionConfiguration(VectorIngestionConfigurationProperty(vectorIngestionConfiguration)) + + public fun build(): software.amazon.awscdk.services.bedrock.CfnDataSource = cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.bedrock.CfnDataSource.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnDataSource { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnDataSource(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.bedrock.CfnDataSource): + CfnDataSource = CfnDataSource(cdkObject) + + internal fun unwrap(wrapped: CfnDataSource): + software.amazon.awscdk.services.bedrock.CfnDataSource = wrapped.cdkObject as + software.amazon.awscdk.services.bedrock.CfnDataSource + } + + /** + * Details about how to chunk the documents in the data source. + * + * A *chunk* refers to an excerpt from a data source that is returned when the knowledge base that + * it belongs to is queried. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bedrock.*; + * ChunkingConfigurationProperty chunkingConfigurationProperty = + * ChunkingConfigurationProperty.builder() + * .chunkingStrategy("chunkingStrategy") + * // the properties below are optional + * .fixedSizeChunkingConfiguration(FixedSizeChunkingConfigurationProperty.builder() + * .maxTokens(123) + * .overlapPercentage(123) + * .build()) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-datasource-chunkingconfiguration.html) + */ + public interface ChunkingConfigurationProperty { + /** + * Knowledge base can split your source data into chunks. + * + * A *chunk* refers to an excerpt from a data source that is returned when the knowledge base + * that it belongs to is queried. You have the following options for chunking your data. If you opt + * for `NONE` , then you may want to pre-process your files by splitting them up such that each + * file corresponds to a chunk. + * + * * `FIXED_SIZE` – Amazon Bedrock splits your source data into chunks of the approximate size + * that you set in the `fixedSizeChunkingConfiguration` . + * * `NONE` – Amazon Bedrock treats each file as one chunk. If you choose this option, you may + * want to pre-process your documents by splitting them into separate files. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-datasource-chunkingconfiguration.html#cfn-bedrock-datasource-chunkingconfiguration-chunkingstrategy) + */ + public fun chunkingStrategy(): String + + /** + * Configurations for when you choose fixed-size chunking. + * + * If you set the `chunkingStrategy` as `NONE` , exclude this field. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-datasource-chunkingconfiguration.html#cfn-bedrock-datasource-chunkingconfiguration-fixedsizechunkingconfiguration) + */ + public fun fixedSizeChunkingConfiguration(): Any? = + unwrap(this).getFixedSizeChunkingConfiguration() + + /** + * A builder for [ChunkingConfigurationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param chunkingStrategy Knowledge base can split your source data into chunks. + * A *chunk* refers to an excerpt from a data source that is returned when the knowledge base + * that it belongs to is queried. You have the following options for chunking your data. If you + * opt for `NONE` , then you may want to pre-process your files by splitting them up such that + * each file corresponds to a chunk. + * + * * `FIXED_SIZE` – Amazon Bedrock splits your source data into chunks of the approximate size + * that you set in the `fixedSizeChunkingConfiguration` . + * * `NONE` – Amazon Bedrock treats each file as one chunk. If you choose this option, you may + * want to pre-process your documents by splitting them into separate files. + */ + public fun chunkingStrategy(chunkingStrategy: String) + + /** + * @param fixedSizeChunkingConfiguration Configurations for when you choose fixed-size + * chunking. + * If you set the `chunkingStrategy` as `NONE` , exclude this field. + */ + public fun fixedSizeChunkingConfiguration(fixedSizeChunkingConfiguration: IResolvable) + + /** + * @param fixedSizeChunkingConfiguration Configurations for when you choose fixed-size + * chunking. + * If you set the `chunkingStrategy` as `NONE` , exclude this field. + */ + public + fun fixedSizeChunkingConfiguration(fixedSizeChunkingConfiguration: FixedSizeChunkingConfigurationProperty) + + /** + * @param fixedSizeChunkingConfiguration Configurations for when you choose fixed-size + * chunking. + * If you set the `chunkingStrategy` as `NONE` , exclude this field. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("d9c98baa96dc4757da95ec8608c2fcdc9e28b022502d051fe253ec992df9f7d5") + public + fun fixedSizeChunkingConfiguration(fixedSizeChunkingConfiguration: FixedSizeChunkingConfigurationProperty.Builder.() -> Unit) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.bedrock.CfnDataSource.ChunkingConfigurationProperty.Builder + = + software.amazon.awscdk.services.bedrock.CfnDataSource.ChunkingConfigurationProperty.builder() + + /** + * @param chunkingStrategy Knowledge base can split your source data into chunks. + * A *chunk* refers to an excerpt from a data source that is returned when the knowledge base + * that it belongs to is queried. You have the following options for chunking your data. If you + * opt for `NONE` , then you may want to pre-process your files by splitting them up such that + * each file corresponds to a chunk. + * + * * `FIXED_SIZE` – Amazon Bedrock splits your source data into chunks of the approximate size + * that you set in the `fixedSizeChunkingConfiguration` . + * * `NONE` – Amazon Bedrock treats each file as one chunk. If you choose this option, you may + * want to pre-process your documents by splitting them into separate files. + */ + override fun chunkingStrategy(chunkingStrategy: String) { + cdkBuilder.chunkingStrategy(chunkingStrategy) + } + + /** + * @param fixedSizeChunkingConfiguration Configurations for when you choose fixed-size + * chunking. + * If you set the `chunkingStrategy` as `NONE` , exclude this field. + */ + override fun fixedSizeChunkingConfiguration(fixedSizeChunkingConfiguration: IResolvable) { + cdkBuilder.fixedSizeChunkingConfiguration(fixedSizeChunkingConfiguration.let(IResolvable::unwrap)) + } + + /** + * @param fixedSizeChunkingConfiguration Configurations for when you choose fixed-size + * chunking. + * If you set the `chunkingStrategy` as `NONE` , exclude this field. + */ + override + fun fixedSizeChunkingConfiguration(fixedSizeChunkingConfiguration: FixedSizeChunkingConfigurationProperty) { + cdkBuilder.fixedSizeChunkingConfiguration(fixedSizeChunkingConfiguration.let(FixedSizeChunkingConfigurationProperty::unwrap)) + } + + /** + * @param fixedSizeChunkingConfiguration Configurations for when you choose fixed-size + * chunking. + * If you set the `chunkingStrategy` as `NONE` , exclude this field. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("d9c98baa96dc4757da95ec8608c2fcdc9e28b022502d051fe253ec992df9f7d5") + override + fun fixedSizeChunkingConfiguration(fixedSizeChunkingConfiguration: FixedSizeChunkingConfigurationProperty.Builder.() -> Unit): + Unit = + fixedSizeChunkingConfiguration(FixedSizeChunkingConfigurationProperty(fixedSizeChunkingConfiguration)) + + public fun build(): + software.amazon.awscdk.services.bedrock.CfnDataSource.ChunkingConfigurationProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.bedrock.CfnDataSource.ChunkingConfigurationProperty, + ) : CdkObject(cdkObject), ChunkingConfigurationProperty { + /** + * Knowledge base can split your source data into chunks. + * + * A *chunk* refers to an excerpt from a data source that is returned when the knowledge base + * that it belongs to is queried. You have the following options for chunking your data. If you + * opt for `NONE` , then you may want to pre-process your files by splitting them up such that + * each file corresponds to a chunk. + * + * * `FIXED_SIZE` – Amazon Bedrock splits your source data into chunks of the approximate size + * that you set in the `fixedSizeChunkingConfiguration` . + * * `NONE` – Amazon Bedrock treats each file as one chunk. If you choose this option, you may + * want to pre-process your documents by splitting them into separate files. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-datasource-chunkingconfiguration.html#cfn-bedrock-datasource-chunkingconfiguration-chunkingstrategy) + */ + override fun chunkingStrategy(): String = unwrap(this).getChunkingStrategy() + + /** + * Configurations for when you choose fixed-size chunking. + * + * If you set the `chunkingStrategy` as `NONE` , exclude this field. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-datasource-chunkingconfiguration.html#cfn-bedrock-datasource-chunkingconfiguration-fixedsizechunkingconfiguration) + */ + override fun fixedSizeChunkingConfiguration(): Any? = + unwrap(this).getFixedSizeChunkingConfiguration() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): ChunkingConfigurationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.bedrock.CfnDataSource.ChunkingConfigurationProperty): + ChunkingConfigurationProperty = CdkObjectWrappers.wrap(cdkObject) as? + ChunkingConfigurationProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: ChunkingConfigurationProperty): + software.amazon.awscdk.services.bedrock.CfnDataSource.ChunkingConfigurationProperty = + (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.bedrock.CfnDataSource.ChunkingConfigurationProperty + } + } + + /** + * Contains details about how a data source is stored. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bedrock.*; + * DataSourceConfigurationProperty dataSourceConfigurationProperty = + * DataSourceConfigurationProperty.builder() + * .s3Configuration(S3DataSourceConfigurationProperty.builder() + * .bucketArn("bucketArn") + * // the properties below are optional + * .inclusionPrefixes(List.of("inclusionPrefixes")) + * .build()) + * .type("type") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-datasource-datasourceconfiguration.html) + */ + public interface DataSourceConfigurationProperty { + /** + * Contains details about the configuration of the S3 object containing the data source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-datasource-datasourceconfiguration.html#cfn-bedrock-datasource-datasourceconfiguration-s3configuration) + */ + public fun s3Configuration(): Any + + /** + * The type of storage for the data source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-datasource-datasourceconfiguration.html#cfn-bedrock-datasource-datasourceconfiguration-type) + */ + public fun type(): String + + /** + * A builder for [DataSourceConfigurationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param s3Configuration Contains details about the configuration of the S3 object containing + * the data source. + */ + public fun s3Configuration(s3Configuration: IResolvable) + + /** + * @param s3Configuration Contains details about the configuration of the S3 object containing + * the data source. + */ + public fun s3Configuration(s3Configuration: S3DataSourceConfigurationProperty) + + /** + * @param s3Configuration Contains details about the configuration of the S3 object containing + * the data source. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("548e7ecb02258f6ed61d218f2d1f893be2816cedb6d9f9e52cbfac7678c73a90") + public + fun s3Configuration(s3Configuration: S3DataSourceConfigurationProperty.Builder.() -> Unit) + + /** + * @param type The type of storage for the data source. + */ + public fun type(type: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.bedrock.CfnDataSource.DataSourceConfigurationProperty.Builder + = + software.amazon.awscdk.services.bedrock.CfnDataSource.DataSourceConfigurationProperty.builder() + + /** + * @param s3Configuration Contains details about the configuration of the S3 object containing + * the data source. + */ + override fun s3Configuration(s3Configuration: IResolvable) { + cdkBuilder.s3Configuration(s3Configuration.let(IResolvable::unwrap)) + } + + /** + * @param s3Configuration Contains details about the configuration of the S3 object containing + * the data source. + */ + override fun s3Configuration(s3Configuration: S3DataSourceConfigurationProperty) { + cdkBuilder.s3Configuration(s3Configuration.let(S3DataSourceConfigurationProperty::unwrap)) + } + + /** + * @param s3Configuration Contains details about the configuration of the S3 object containing + * the data source. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("548e7ecb02258f6ed61d218f2d1f893be2816cedb6d9f9e52cbfac7678c73a90") + override + fun s3Configuration(s3Configuration: S3DataSourceConfigurationProperty.Builder.() -> Unit): + Unit = s3Configuration(S3DataSourceConfigurationProperty(s3Configuration)) + + /** + * @param type The type of storage for the data source. + */ + override fun type(type: String) { + cdkBuilder.type(type) + } + + public fun build(): + software.amazon.awscdk.services.bedrock.CfnDataSource.DataSourceConfigurationProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.bedrock.CfnDataSource.DataSourceConfigurationProperty, + ) : CdkObject(cdkObject), DataSourceConfigurationProperty { + /** + * Contains details about the configuration of the S3 object containing the data source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-datasource-datasourceconfiguration.html#cfn-bedrock-datasource-datasourceconfiguration-s3configuration) + */ + override fun s3Configuration(): Any = unwrap(this).getS3Configuration() + + /** + * The type of storage for the data source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-datasource-datasourceconfiguration.html#cfn-bedrock-datasource-datasourceconfiguration-type) + */ + override fun type(): String = unwrap(this).getType() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): DataSourceConfigurationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.bedrock.CfnDataSource.DataSourceConfigurationProperty): + DataSourceConfigurationProperty = CdkObjectWrappers.wrap(cdkObject) as? + DataSourceConfigurationProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: DataSourceConfigurationProperty): + software.amazon.awscdk.services.bedrock.CfnDataSource.DataSourceConfigurationProperty = + (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.bedrock.CfnDataSource.DataSourceConfigurationProperty + } + } + + /** + * Configurations for when you choose fixed-size chunking. + * + * If you set the `chunkingStrategy` as `NONE` , exclude this field. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bedrock.*; + * FixedSizeChunkingConfigurationProperty fixedSizeChunkingConfigurationProperty = + * FixedSizeChunkingConfigurationProperty.builder() + * .maxTokens(123) + * .overlapPercentage(123) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-datasource-fixedsizechunkingconfiguration.html) + */ + public interface FixedSizeChunkingConfigurationProperty { + /** + * The maximum number of tokens to include in a chunk. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-datasource-fixedsizechunkingconfiguration.html#cfn-bedrock-datasource-fixedsizechunkingconfiguration-maxtokens) + */ + public fun maxTokens(): Number + + /** + * The percentage of overlap between adjacent chunks of a data source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-datasource-fixedsizechunkingconfiguration.html#cfn-bedrock-datasource-fixedsizechunkingconfiguration-overlappercentage) + */ + public fun overlapPercentage(): Number + + /** + * A builder for [FixedSizeChunkingConfigurationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param maxTokens The maximum number of tokens to include in a chunk. + */ + public fun maxTokens(maxTokens: Number) + + /** + * @param overlapPercentage The percentage of overlap between adjacent chunks of a data + * source. + */ + public fun overlapPercentage(overlapPercentage: Number) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.bedrock.CfnDataSource.FixedSizeChunkingConfigurationProperty.Builder + = + software.amazon.awscdk.services.bedrock.CfnDataSource.FixedSizeChunkingConfigurationProperty.builder() + + /** + * @param maxTokens The maximum number of tokens to include in a chunk. + */ + override fun maxTokens(maxTokens: Number) { + cdkBuilder.maxTokens(maxTokens) + } + + /** + * @param overlapPercentage The percentage of overlap between adjacent chunks of a data + * source. + */ + override fun overlapPercentage(overlapPercentage: Number) { + cdkBuilder.overlapPercentage(overlapPercentage) + } + + public fun build(): + software.amazon.awscdk.services.bedrock.CfnDataSource.FixedSizeChunkingConfigurationProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.bedrock.CfnDataSource.FixedSizeChunkingConfigurationProperty, + ) : CdkObject(cdkObject), FixedSizeChunkingConfigurationProperty { + /** + * The maximum number of tokens to include in a chunk. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-datasource-fixedsizechunkingconfiguration.html#cfn-bedrock-datasource-fixedsizechunkingconfiguration-maxtokens) + */ + override fun maxTokens(): Number = unwrap(this).getMaxTokens() + + /** + * The percentage of overlap between adjacent chunks of a data source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-datasource-fixedsizechunkingconfiguration.html#cfn-bedrock-datasource-fixedsizechunkingconfiguration-overlappercentage) + */ + override fun overlapPercentage(): Number = unwrap(this).getOverlapPercentage() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): + FixedSizeChunkingConfigurationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.bedrock.CfnDataSource.FixedSizeChunkingConfigurationProperty): + FixedSizeChunkingConfigurationProperty = CdkObjectWrappers.wrap(cdkObject) as? + FixedSizeChunkingConfigurationProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: FixedSizeChunkingConfigurationProperty): + software.amazon.awscdk.services.bedrock.CfnDataSource.FixedSizeChunkingConfigurationProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.bedrock.CfnDataSource.FixedSizeChunkingConfigurationProperty + } + } + + /** + * Contains information about the S3 configuration of the data source. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bedrock.*; + * S3DataSourceConfigurationProperty s3DataSourceConfigurationProperty = + * S3DataSourceConfigurationProperty.builder() + * .bucketArn("bucketArn") + * // the properties below are optional + * .inclusionPrefixes(List.of("inclusionPrefixes")) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-datasource-s3datasourceconfiguration.html) + */ + public interface S3DataSourceConfigurationProperty { + /** + * The Amazon Resource Name (ARN) of the bucket that contains the data source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-datasource-s3datasourceconfiguration.html#cfn-bedrock-datasource-s3datasourceconfiguration-bucketarn) + */ + public fun bucketArn(): String + + /** + * A list of S3 prefixes that define the object containing the data sources. + * + * For more information, see [Organizing objects using + * prefixes](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-datasource-s3datasourceconfiguration.html#cfn-bedrock-datasource-s3datasourceconfiguration-inclusionprefixes) + */ + public fun inclusionPrefixes(): List = unwrap(this).getInclusionPrefixes() ?: + emptyList() + + /** + * A builder for [S3DataSourceConfigurationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param bucketArn The Amazon Resource Name (ARN) of the bucket that contains the data + * source. + */ + public fun bucketArn(bucketArn: String) + + /** + * @param inclusionPrefixes A list of S3 prefixes that define the object containing the data + * sources. + * For more information, see [Organizing objects using + * prefixes](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html) . + */ + public fun inclusionPrefixes(inclusionPrefixes: List) + + /** + * @param inclusionPrefixes A list of S3 prefixes that define the object containing the data + * sources. + * For more information, see [Organizing objects using + * prefixes](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html) . + */ + public fun inclusionPrefixes(vararg inclusionPrefixes: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.bedrock.CfnDataSource.S3DataSourceConfigurationProperty.Builder + = + software.amazon.awscdk.services.bedrock.CfnDataSource.S3DataSourceConfigurationProperty.builder() + + /** + * @param bucketArn The Amazon Resource Name (ARN) of the bucket that contains the data + * source. + */ + override fun bucketArn(bucketArn: String) { + cdkBuilder.bucketArn(bucketArn) + } + + /** + * @param inclusionPrefixes A list of S3 prefixes that define the object containing the data + * sources. + * For more information, see [Organizing objects using + * prefixes](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html) . + */ + override fun inclusionPrefixes(inclusionPrefixes: List) { + cdkBuilder.inclusionPrefixes(inclusionPrefixes) + } + + /** + * @param inclusionPrefixes A list of S3 prefixes that define the object containing the data + * sources. + * For more information, see [Organizing objects using + * prefixes](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html) . + */ + override fun inclusionPrefixes(vararg inclusionPrefixes: String): Unit = + inclusionPrefixes(inclusionPrefixes.toList()) + + public fun build(): + software.amazon.awscdk.services.bedrock.CfnDataSource.S3DataSourceConfigurationProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.bedrock.CfnDataSource.S3DataSourceConfigurationProperty, + ) : CdkObject(cdkObject), S3DataSourceConfigurationProperty { + /** + * The Amazon Resource Name (ARN) of the bucket that contains the data source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-datasource-s3datasourceconfiguration.html#cfn-bedrock-datasource-s3datasourceconfiguration-bucketarn) + */ + override fun bucketArn(): String = unwrap(this).getBucketArn() + + /** + * A list of S3 prefixes that define the object containing the data sources. + * + * For more information, see [Organizing objects using + * prefixes](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-datasource-s3datasourceconfiguration.html#cfn-bedrock-datasource-s3datasourceconfiguration-inclusionprefixes) + */ + override fun inclusionPrefixes(): List = unwrap(this).getInclusionPrefixes() ?: + emptyList() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): + S3DataSourceConfigurationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.bedrock.CfnDataSource.S3DataSourceConfigurationProperty): + S3DataSourceConfigurationProperty = CdkObjectWrappers.wrap(cdkObject) as? + S3DataSourceConfigurationProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: S3DataSourceConfigurationProperty): + software.amazon.awscdk.services.bedrock.CfnDataSource.S3DataSourceConfigurationProperty = + (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.bedrock.CfnDataSource.S3DataSourceConfigurationProperty + } + } + + /** + * Contains the configuration for server-side encryption. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bedrock.*; + * ServerSideEncryptionConfigurationProperty serverSideEncryptionConfigurationProperty = + * ServerSideEncryptionConfigurationProperty.builder() + * .kmsKeyArn("kmsKeyArn") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-datasource-serversideencryptionconfiguration.html) + */ + public interface ServerSideEncryptionConfigurationProperty { + /** + * The Amazon Resource Name (ARN) of the AWS KMS key used to encrypt the resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-datasource-serversideencryptionconfiguration.html#cfn-bedrock-datasource-serversideencryptionconfiguration-kmskeyarn) + */ + public fun kmsKeyArn(): String? = unwrap(this).getKmsKeyArn() + + /** + * A builder for [ServerSideEncryptionConfigurationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param kmsKeyArn The Amazon Resource Name (ARN) of the AWS KMS key used to encrypt the + * resource. + */ + public fun kmsKeyArn(kmsKeyArn: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.bedrock.CfnDataSource.ServerSideEncryptionConfigurationProperty.Builder + = + software.amazon.awscdk.services.bedrock.CfnDataSource.ServerSideEncryptionConfigurationProperty.builder() + + /** + * @param kmsKeyArn The Amazon Resource Name (ARN) of the AWS KMS key used to encrypt the + * resource. + */ + override fun kmsKeyArn(kmsKeyArn: String) { + cdkBuilder.kmsKeyArn(kmsKeyArn) + } + + public fun build(): + software.amazon.awscdk.services.bedrock.CfnDataSource.ServerSideEncryptionConfigurationProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.bedrock.CfnDataSource.ServerSideEncryptionConfigurationProperty, + ) : CdkObject(cdkObject), ServerSideEncryptionConfigurationProperty { + /** + * The Amazon Resource Name (ARN) of the AWS KMS key used to encrypt the resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-datasource-serversideencryptionconfiguration.html#cfn-bedrock-datasource-serversideencryptionconfiguration-kmskeyarn) + */ + override fun kmsKeyArn(): String? = unwrap(this).getKmsKeyArn() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): + ServerSideEncryptionConfigurationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.bedrock.CfnDataSource.ServerSideEncryptionConfigurationProperty): + ServerSideEncryptionConfigurationProperty = CdkObjectWrappers.wrap(cdkObject) as? + ServerSideEncryptionConfigurationProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: ServerSideEncryptionConfigurationProperty): + software.amazon.awscdk.services.bedrock.CfnDataSource.ServerSideEncryptionConfigurationProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.bedrock.CfnDataSource.ServerSideEncryptionConfigurationProperty + } + } + + /** + * Contains details about how to ingest the documents in a data source. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bedrock.*; + * VectorIngestionConfigurationProperty vectorIngestionConfigurationProperty = + * VectorIngestionConfigurationProperty.builder() + * .chunkingConfiguration(ChunkingConfigurationProperty.builder() + * .chunkingStrategy("chunkingStrategy") + * // the properties below are optional + * .fixedSizeChunkingConfiguration(FixedSizeChunkingConfigurationProperty.builder() + * .maxTokens(123) + * .overlapPercentage(123) + * .build()) + * .build()) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-datasource-vectoringestionconfiguration.html) + */ + public interface VectorIngestionConfigurationProperty { + /** + * Details about how to chunk the documents in the data source. + * + * A *chunk* refers to an excerpt from a data source that is returned when the knowledge base + * that it belongs to is queried. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-datasource-vectoringestionconfiguration.html#cfn-bedrock-datasource-vectoringestionconfiguration-chunkingconfiguration) + */ + public fun chunkingConfiguration(): Any? = unwrap(this).getChunkingConfiguration() + + /** + * A builder for [VectorIngestionConfigurationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param chunkingConfiguration Details about how to chunk the documents in the data source. + * A *chunk* refers to an excerpt from a data source that is returned when the knowledge base + * that it belongs to is queried. + */ + public fun chunkingConfiguration(chunkingConfiguration: IResolvable) + + /** + * @param chunkingConfiguration Details about how to chunk the documents in the data source. + * A *chunk* refers to an excerpt from a data source that is returned when the knowledge base + * that it belongs to is queried. + */ + public fun chunkingConfiguration(chunkingConfiguration: ChunkingConfigurationProperty) + + /** + * @param chunkingConfiguration Details about how to chunk the documents in the data source. + * A *chunk* refers to an excerpt from a data source that is returned when the knowledge base + * that it belongs to is queried. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("c44d549c914ff158cdb23c41be0b341d8b85e7b602c0d8c95a2f8f31bc6da3c4") + public + fun chunkingConfiguration(chunkingConfiguration: ChunkingConfigurationProperty.Builder.() -> Unit) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.bedrock.CfnDataSource.VectorIngestionConfigurationProperty.Builder + = + software.amazon.awscdk.services.bedrock.CfnDataSource.VectorIngestionConfigurationProperty.builder() + + /** + * @param chunkingConfiguration Details about how to chunk the documents in the data source. + * A *chunk* refers to an excerpt from a data source that is returned when the knowledge base + * that it belongs to is queried. + */ + override fun chunkingConfiguration(chunkingConfiguration: IResolvable) { + cdkBuilder.chunkingConfiguration(chunkingConfiguration.let(IResolvable::unwrap)) + } + + /** + * @param chunkingConfiguration Details about how to chunk the documents in the data source. + * A *chunk* refers to an excerpt from a data source that is returned when the knowledge base + * that it belongs to is queried. + */ + override fun chunkingConfiguration(chunkingConfiguration: ChunkingConfigurationProperty) { + cdkBuilder.chunkingConfiguration(chunkingConfiguration.let(ChunkingConfigurationProperty::unwrap)) + } + + /** + * @param chunkingConfiguration Details about how to chunk the documents in the data source. + * A *chunk* refers to an excerpt from a data source that is returned when the knowledge base + * that it belongs to is queried. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("c44d549c914ff158cdb23c41be0b341d8b85e7b602c0d8c95a2f8f31bc6da3c4") + override + fun chunkingConfiguration(chunkingConfiguration: ChunkingConfigurationProperty.Builder.() -> Unit): + Unit = chunkingConfiguration(ChunkingConfigurationProperty(chunkingConfiguration)) + + public fun build(): + software.amazon.awscdk.services.bedrock.CfnDataSource.VectorIngestionConfigurationProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.bedrock.CfnDataSource.VectorIngestionConfigurationProperty, + ) : CdkObject(cdkObject), VectorIngestionConfigurationProperty { + /** + * Details about how to chunk the documents in the data source. + * + * A *chunk* refers to an excerpt from a data source that is returned when the knowledge base + * that it belongs to is queried. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-datasource-vectoringestionconfiguration.html#cfn-bedrock-datasource-vectoringestionconfiguration-chunkingconfiguration) + */ + override fun chunkingConfiguration(): Any? = unwrap(this).getChunkingConfiguration() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): + VectorIngestionConfigurationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.bedrock.CfnDataSource.VectorIngestionConfigurationProperty): + VectorIngestionConfigurationProperty = CdkObjectWrappers.wrap(cdkObject) as? + VectorIngestionConfigurationProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: VectorIngestionConfigurationProperty): + software.amazon.awscdk.services.bedrock.CfnDataSource.VectorIngestionConfigurationProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.bedrock.CfnDataSource.VectorIngestionConfigurationProperty + } + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bedrock/CfnDataSourceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bedrock/CfnDataSourceProps.kt new file mode 100644 index 0000000000..64f07c0ef1 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bedrock/CfnDataSourceProps.kt @@ -0,0 +1,356 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.bedrock + +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.jvm.JvmName + +/** + * Properties for defining a `CfnDataSource`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bedrock.*; + * CfnDataSourceProps cfnDataSourceProps = CfnDataSourceProps.builder() + * .dataSourceConfiguration(DataSourceConfigurationProperty.builder() + * .s3Configuration(S3DataSourceConfigurationProperty.builder() + * .bucketArn("bucketArn") + * // the properties below are optional + * .inclusionPrefixes(List.of("inclusionPrefixes")) + * .build()) + * .type("type") + * .build()) + * .knowledgeBaseId("knowledgeBaseId") + * .name("name") + * // the properties below are optional + * .description("description") + * .serverSideEncryptionConfiguration(ServerSideEncryptionConfigurationProperty.builder() + * .kmsKeyArn("kmsKeyArn") + * .build()) + * .vectorIngestionConfiguration(VectorIngestionConfigurationProperty.builder() + * .chunkingConfiguration(ChunkingConfigurationProperty.builder() + * .chunkingStrategy("chunkingStrategy") + * // the properties below are optional + * .fixedSizeChunkingConfiguration(FixedSizeChunkingConfigurationProperty.builder() + * .maxTokens(123) + * .overlapPercentage(123) + * .build()) + * .build()) + * .build()) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html) + */ +public interface CfnDataSourceProps { + /** + * Contains details about how the data source is stored. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-datasourceconfiguration) + */ + public fun dataSourceConfiguration(): Any + + /** + * The description of the data source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-description) + */ + public fun description(): String? = unwrap(this).getDescription() + + /** + * The unique identifier of the knowledge base to which the data source belongs. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-knowledgebaseid) + */ + public fun knowledgeBaseId(): String + + /** + * The name of the data source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-name) + */ + public fun name(): String + + /** + * Contains details about the configuration of the server-side encryption. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-serversideencryptionconfiguration) + */ + public fun serverSideEncryptionConfiguration(): Any? = + unwrap(this).getServerSideEncryptionConfiguration() + + /** + * Contains details about how to ingest the documents in the data source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-vectoringestionconfiguration) + */ + public fun vectorIngestionConfiguration(): Any? = unwrap(this).getVectorIngestionConfiguration() + + /** + * A builder for [CfnDataSourceProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param dataSourceConfiguration Contains details about how the data source is stored. + */ + public fun dataSourceConfiguration(dataSourceConfiguration: IResolvable) + + /** + * @param dataSourceConfiguration Contains details about how the data source is stored. + */ + public + fun dataSourceConfiguration(dataSourceConfiguration: CfnDataSource.DataSourceConfigurationProperty) + + /** + * @param dataSourceConfiguration Contains details about how the data source is stored. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("9a4c1c768982411da1bad8b5e946ce39b5959c643170f2361795c4a5af2844e4") + public + fun dataSourceConfiguration(dataSourceConfiguration: CfnDataSource.DataSourceConfigurationProperty.Builder.() -> Unit) + + /** + * @param description The description of the data source. + */ + public fun description(description: String) + + /** + * @param knowledgeBaseId The unique identifier of the knowledge base to which the data source + * belongs. + */ + public fun knowledgeBaseId(knowledgeBaseId: String) + + /** + * @param name The name of the data source. + */ + public fun name(name: String) + + /** + * @param serverSideEncryptionConfiguration Contains details about the configuration of the + * server-side encryption. + */ + public fun serverSideEncryptionConfiguration(serverSideEncryptionConfiguration: IResolvable) + + /** + * @param serverSideEncryptionConfiguration Contains details about the configuration of the + * server-side encryption. + */ + public + fun serverSideEncryptionConfiguration(serverSideEncryptionConfiguration: CfnDataSource.ServerSideEncryptionConfigurationProperty) + + /** + * @param serverSideEncryptionConfiguration Contains details about the configuration of the + * server-side encryption. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("5428395513537e9795b737c8e0faed6130654ce7a5870c3b4febe5afd49a9c5c") + public + fun serverSideEncryptionConfiguration(serverSideEncryptionConfiguration: CfnDataSource.ServerSideEncryptionConfigurationProperty.Builder.() -> Unit) + + /** + * @param vectorIngestionConfiguration Contains details about how to ingest the documents in the + * data source. + */ + public fun vectorIngestionConfiguration(vectorIngestionConfiguration: IResolvable) + + /** + * @param vectorIngestionConfiguration Contains details about how to ingest the documents in the + * data source. + */ + public + fun vectorIngestionConfiguration(vectorIngestionConfiguration: CfnDataSource.VectorIngestionConfigurationProperty) + + /** + * @param vectorIngestionConfiguration Contains details about how to ingest the documents in the + * data source. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("c3b17843fd7fdda02a94c52ecc146d02221a04e7cc25c64ce4d243579b2073f1") + public + fun vectorIngestionConfiguration(vectorIngestionConfiguration: CfnDataSource.VectorIngestionConfigurationProperty.Builder.() -> Unit) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.services.bedrock.CfnDataSourceProps.Builder = + software.amazon.awscdk.services.bedrock.CfnDataSourceProps.builder() + + /** + * @param dataSourceConfiguration Contains details about how the data source is stored. + */ + override fun dataSourceConfiguration(dataSourceConfiguration: IResolvable) { + cdkBuilder.dataSourceConfiguration(dataSourceConfiguration.let(IResolvable::unwrap)) + } + + /** + * @param dataSourceConfiguration Contains details about how the data source is stored. + */ + override + fun dataSourceConfiguration(dataSourceConfiguration: CfnDataSource.DataSourceConfigurationProperty) { + cdkBuilder.dataSourceConfiguration(dataSourceConfiguration.let(CfnDataSource.DataSourceConfigurationProperty::unwrap)) + } + + /** + * @param dataSourceConfiguration Contains details about how the data source is stored. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("9a4c1c768982411da1bad8b5e946ce39b5959c643170f2361795c4a5af2844e4") + override + fun dataSourceConfiguration(dataSourceConfiguration: CfnDataSource.DataSourceConfigurationProperty.Builder.() -> Unit): + Unit = + dataSourceConfiguration(CfnDataSource.DataSourceConfigurationProperty(dataSourceConfiguration)) + + /** + * @param description The description of the data source. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * @param knowledgeBaseId The unique identifier of the knowledge base to which the data source + * belongs. + */ + override fun knowledgeBaseId(knowledgeBaseId: String) { + cdkBuilder.knowledgeBaseId(knowledgeBaseId) + } + + /** + * @param name The name of the data source. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + /** + * @param serverSideEncryptionConfiguration Contains details about the configuration of the + * server-side encryption. + */ + override fun serverSideEncryptionConfiguration(serverSideEncryptionConfiguration: IResolvable) { + cdkBuilder.serverSideEncryptionConfiguration(serverSideEncryptionConfiguration.let(IResolvable::unwrap)) + } + + /** + * @param serverSideEncryptionConfiguration Contains details about the configuration of the + * server-side encryption. + */ + override + fun serverSideEncryptionConfiguration(serverSideEncryptionConfiguration: CfnDataSource.ServerSideEncryptionConfigurationProperty) { + cdkBuilder.serverSideEncryptionConfiguration(serverSideEncryptionConfiguration.let(CfnDataSource.ServerSideEncryptionConfigurationProperty::unwrap)) + } + + /** + * @param serverSideEncryptionConfiguration Contains details about the configuration of the + * server-side encryption. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("5428395513537e9795b737c8e0faed6130654ce7a5870c3b4febe5afd49a9c5c") + override + fun serverSideEncryptionConfiguration(serverSideEncryptionConfiguration: CfnDataSource.ServerSideEncryptionConfigurationProperty.Builder.() -> Unit): + Unit = + serverSideEncryptionConfiguration(CfnDataSource.ServerSideEncryptionConfigurationProperty(serverSideEncryptionConfiguration)) + + /** + * @param vectorIngestionConfiguration Contains details about how to ingest the documents in the + * data source. + */ + override fun vectorIngestionConfiguration(vectorIngestionConfiguration: IResolvable) { + cdkBuilder.vectorIngestionConfiguration(vectorIngestionConfiguration.let(IResolvable::unwrap)) + } + + /** + * @param vectorIngestionConfiguration Contains details about how to ingest the documents in the + * data source. + */ + override + fun vectorIngestionConfiguration(vectorIngestionConfiguration: CfnDataSource.VectorIngestionConfigurationProperty) { + cdkBuilder.vectorIngestionConfiguration(vectorIngestionConfiguration.let(CfnDataSource.VectorIngestionConfigurationProperty::unwrap)) + } + + /** + * @param vectorIngestionConfiguration Contains details about how to ingest the documents in the + * data source. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("c3b17843fd7fdda02a94c52ecc146d02221a04e7cc25c64ce4d243579b2073f1") + override + fun vectorIngestionConfiguration(vectorIngestionConfiguration: CfnDataSource.VectorIngestionConfigurationProperty.Builder.() -> Unit): + Unit = + vectorIngestionConfiguration(CfnDataSource.VectorIngestionConfigurationProperty(vectorIngestionConfiguration)) + + public fun build(): software.amazon.awscdk.services.bedrock.CfnDataSourceProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.bedrock.CfnDataSourceProps, + ) : CdkObject(cdkObject), CfnDataSourceProps { + /** + * Contains details about how the data source is stored. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-datasourceconfiguration) + */ + override fun dataSourceConfiguration(): Any = unwrap(this).getDataSourceConfiguration() + + /** + * The description of the data source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-description) + */ + override fun description(): String? = unwrap(this).getDescription() + + /** + * The unique identifier of the knowledge base to which the data source belongs. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-knowledgebaseid) + */ + override fun knowledgeBaseId(): String = unwrap(this).getKnowledgeBaseId() + + /** + * The name of the data source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-name) + */ + override fun name(): String = unwrap(this).getName() + + /** + * Contains details about the configuration of the server-side encryption. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-serversideencryptionconfiguration) + */ + override fun serverSideEncryptionConfiguration(): Any? = + unwrap(this).getServerSideEncryptionConfiguration() + + /** + * Contains details about how to ingest the documents in the data source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-datasource.html#cfn-bedrock-datasource-vectoringestionconfiguration) + */ + override fun vectorIngestionConfiguration(): Any? = + unwrap(this).getVectorIngestionConfiguration() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnDataSourceProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.bedrock.CfnDataSourceProps): + CfnDataSourceProps = CdkObjectWrappers.wrap(cdkObject) as? CfnDataSourceProps ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnDataSourceProps): + software.amazon.awscdk.services.bedrock.CfnDataSourceProps = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.bedrock.CfnDataSourceProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bedrock/CfnKnowledgeBase.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bedrock/CfnKnowledgeBase.kt new file mode 100644 index 0000000000..b643716120 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bedrock/CfnKnowledgeBase.kt @@ -0,0 +1,654 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.bedrock + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.ITaggableV2 +import io.cloudshiftdev.awscdk.TagManager +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.collections.Map +import kotlin.jvm.JvmName +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * Specifies a knowledge base as a resource in a top-level template. Minimally, you must specify the + * following properties:. + * + * * Name – Specify a name for the knowledge base. + * * RoleArn – Specify the Amazon Resource Name (ARN) of the IAM role with permissions to invoke API + * operations on the knowledge base. For more information, see [Create a service role for Knowledge + * base for Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-permissions.html) . + * * KnowledgeBaseConfiguration – Specify the embeddings configuration of the knowledge base. The + * following sub-properties are required: + * * Type – Specify the value `VECTOR` . + * * StorageConfiguration – Specify information about the vector store in which the data source is + * stored. The following sub-properties are required: + * * Type – Specify the vector store service that you are using. + * + * + * Redis Enterprise Cloud vector stores are currently unsupported in AWS CloudFormation . + * + * + * For more information about using knowledge bases in Amazon Bedrock , see [Knowledge base for + * Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base.html) . + * + * See the *Properties* section below for descriptions of both the required and optional properties. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bedrock.*; + * CfnKnowledgeBase cfnKnowledgeBase = CfnKnowledgeBase.Builder.create(this, "MyCfnKnowledgeBase") + * .knowledgeBaseConfiguration(KnowledgeBaseConfigurationProperty.builder() + * .type("type") + * .vectorKnowledgeBaseConfiguration(VectorKnowledgeBaseConfigurationProperty.builder() + * .embeddingModelArn("embeddingModelArn") + * .build()) + * .build()) + * .name("name") + * .roleArn("roleArn") + * // the properties below are optional + * .description("description") + * .tags(Map.of( + * "tagsKey", "tags")) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html) + */ +public open class CfnKnowledgeBase( + cdkObject: software.amazon.awscdk.services.bedrock.CfnKnowledgeBase, +) : CfnResource(cdkObject), IInspectable, ITaggableV2 { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnKnowledgeBaseProps, + ) : + this(software.amazon.awscdk.services.bedrock.CfnKnowledgeBase(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnKnowledgeBaseProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnKnowledgeBaseProps.Builder.() -> Unit, + ) : this(scope, id, CfnKnowledgeBaseProps(props) + ) + + /** + * The time at which the knowledge base was created. + */ + public open fun attrCreatedAt(): String = unwrap(this).getAttrCreatedAt() + + /** + * A list of reasons that the API operation on the knowledge base failed. + */ + public open fun attrFailureReasons(): List = unwrap(this).getAttrFailureReasons() + + /** + * The Amazon Resource Name (ARN) of the knowledge base. + */ + public open fun attrKnowledgeBaseArn(): String = unwrap(this).getAttrKnowledgeBaseArn() + + /** + * The unique identifier of the knowledge base. + */ + public open fun attrKnowledgeBaseId(): String = unwrap(this).getAttrKnowledgeBaseId() + + /** + * The status of the knowledge base. + */ + public open fun attrStatus(): String = unwrap(this).getAttrStatus() + + /** + * The time at which the knowledge base was last updated. + */ + public open fun attrUpdatedAt(): String = unwrap(this).getAttrUpdatedAt() + + /** + * Tag Manager which manages the tags for this resource. + */ + public override fun cdkTagManager(): TagManager = + unwrap(this).getCdkTagManager().let(TagManager::wrap) + + /** + * The description of the knowledge base. + */ + public open fun description(): String? = unwrap(this).getDescription() + + /** + * The description of the knowledge base. + */ + public open fun description(`value`: String) { + unwrap(this).setDescription(`value`) + } + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * Contains details about the embeddings configuration of the knowledge base. + */ + public open fun knowledgeBaseConfiguration(): Any = unwrap(this).getKnowledgeBaseConfiguration() + + /** + * Contains details about the embeddings configuration of the knowledge base. + */ + public open fun knowledgeBaseConfiguration(`value`: IResolvable) { + unwrap(this).setKnowledgeBaseConfiguration(`value`.let(IResolvable::unwrap)) + } + + /** + * Contains details about the embeddings configuration of the knowledge base. + */ + public open fun knowledgeBaseConfiguration(`value`: KnowledgeBaseConfigurationProperty) { + unwrap(this).setKnowledgeBaseConfiguration(`value`.let(KnowledgeBaseConfigurationProperty::unwrap)) + } + + /** + * Contains details about the embeddings configuration of the knowledge base. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("fcb8ed0b40e4bbe893862b91aa1789967d4426f915c13d4a9c1d3045cc0bd158") + public open + fun knowledgeBaseConfiguration(`value`: KnowledgeBaseConfigurationProperty.Builder.() -> Unit): + Unit = knowledgeBaseConfiguration(KnowledgeBaseConfigurationProperty(`value`)) + + /** + * The name of the knowledge base. + */ + public open fun name(): String = unwrap(this).getName() + + /** + * The name of the knowledge base. + */ + public open fun name(`value`: String) { + unwrap(this).setName(`value`) + } + + /** + * The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on the + * knowledge base. + */ + public open fun roleArn(): String = unwrap(this).getRoleArn() + + /** + * The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on the + * knowledge base. + */ + public open fun roleArn(`value`: String) { + unwrap(this).setRoleArn(`value`) + } + + /** + * Metadata that you can assign to a resource as key-value pairs. + * + * For more information, see the following resources:. + */ + public open fun tags(): Map = unwrap(this).getTags() ?: emptyMap() + + /** + * Metadata that you can assign to a resource as key-value pairs. + * + * For more information, see the following resources:. + */ + public open fun tags(`value`: Map) { + unwrap(this).setTags(`value`) + } + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.bedrock.CfnKnowledgeBase]. + */ + @CdkDslMarker + public interface Builder { + /** + * The description of the knowledge base. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html#cfn-bedrock-knowledgebase-description) + * @param description The description of the knowledge base. + */ + public fun description(description: String) + + /** + * Contains details about the embeddings configuration of the knowledge base. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html#cfn-bedrock-knowledgebase-knowledgebaseconfiguration) + * @param knowledgeBaseConfiguration Contains details about the embeddings configuration of the + * knowledge base. + */ + public fun knowledgeBaseConfiguration(knowledgeBaseConfiguration: IResolvable) + + /** + * Contains details about the embeddings configuration of the knowledge base. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html#cfn-bedrock-knowledgebase-knowledgebaseconfiguration) + * @param knowledgeBaseConfiguration Contains details about the embeddings configuration of the + * knowledge base. + */ + public + fun knowledgeBaseConfiguration(knowledgeBaseConfiguration: KnowledgeBaseConfigurationProperty) + + /** + * Contains details about the embeddings configuration of the knowledge base. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html#cfn-bedrock-knowledgebase-knowledgebaseconfiguration) + * @param knowledgeBaseConfiguration Contains details about the embeddings configuration of the + * knowledge base. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("e18c0fc8e887b4409f1e5e1896da5eeecbdd5355f7dce58896e871606ba123b6") + public + fun knowledgeBaseConfiguration(knowledgeBaseConfiguration: KnowledgeBaseConfigurationProperty.Builder.() -> Unit) + + /** + * The name of the knowledge base. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html#cfn-bedrock-knowledgebase-name) + * @param name The name of the knowledge base. + */ + public fun name(name: String) + + /** + * The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on + * the knowledge base. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html#cfn-bedrock-knowledgebase-rolearn) + * @param roleArn The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API + * operations on the knowledge base. + */ + public fun roleArn(roleArn: String) + + /** + * Metadata that you can assign to a resource as key-value pairs. For more information, see the + * following resources:. + * + * * [Tag naming limits and + * requirements](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions) + * * [Tagging best + * practices](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-best-practices) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html#cfn-bedrock-knowledgebase-tags) + * @param tags Metadata that you can assign to a resource as key-value pairs. For more + * information, see the following resources:. + */ + public fun tags(tags: Map) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.services.bedrock.CfnKnowledgeBase.Builder = + software.amazon.awscdk.services.bedrock.CfnKnowledgeBase.Builder.create(scope, id) + + /** + * The description of the knowledge base. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html#cfn-bedrock-knowledgebase-description) + * @param description The description of the knowledge base. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * Contains details about the embeddings configuration of the knowledge base. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html#cfn-bedrock-knowledgebase-knowledgebaseconfiguration) + * @param knowledgeBaseConfiguration Contains details about the embeddings configuration of the + * knowledge base. + */ + override fun knowledgeBaseConfiguration(knowledgeBaseConfiguration: IResolvable) { + cdkBuilder.knowledgeBaseConfiguration(knowledgeBaseConfiguration.let(IResolvable::unwrap)) + } + + /** + * Contains details about the embeddings configuration of the knowledge base. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html#cfn-bedrock-knowledgebase-knowledgebaseconfiguration) + * @param knowledgeBaseConfiguration Contains details about the embeddings configuration of the + * knowledge base. + */ + override + fun knowledgeBaseConfiguration(knowledgeBaseConfiguration: KnowledgeBaseConfigurationProperty) { + cdkBuilder.knowledgeBaseConfiguration(knowledgeBaseConfiguration.let(KnowledgeBaseConfigurationProperty::unwrap)) + } + + /** + * Contains details about the embeddings configuration of the knowledge base. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html#cfn-bedrock-knowledgebase-knowledgebaseconfiguration) + * @param knowledgeBaseConfiguration Contains details about the embeddings configuration of the + * knowledge base. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("e18c0fc8e887b4409f1e5e1896da5eeecbdd5355f7dce58896e871606ba123b6") + override + fun knowledgeBaseConfiguration(knowledgeBaseConfiguration: KnowledgeBaseConfigurationProperty.Builder.() -> Unit): + Unit = + knowledgeBaseConfiguration(KnowledgeBaseConfigurationProperty(knowledgeBaseConfiguration)) + + /** + * The name of the knowledge base. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html#cfn-bedrock-knowledgebase-name) + * @param name The name of the knowledge base. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + /** + * The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on + * the knowledge base. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html#cfn-bedrock-knowledgebase-rolearn) + * @param roleArn The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API + * operations on the knowledge base. + */ + override fun roleArn(roleArn: String) { + cdkBuilder.roleArn(roleArn) + } + + /** + * Metadata that you can assign to a resource as key-value pairs. For more information, see the + * following resources:. + * + * * [Tag naming limits and + * requirements](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions) + * * [Tagging best + * practices](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-best-practices) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html#cfn-bedrock-knowledgebase-tags) + * @param tags Metadata that you can assign to a resource as key-value pairs. For more + * information, see the following resources:. + */ + override fun tags(tags: Map) { + cdkBuilder.tags(tags) + } + + public fun build(): software.amazon.awscdk.services.bedrock.CfnKnowledgeBase = + cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.bedrock.CfnKnowledgeBase.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnKnowledgeBase { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnKnowledgeBase(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.bedrock.CfnKnowledgeBase): + CfnKnowledgeBase = CfnKnowledgeBase(cdkObject) + + internal fun unwrap(wrapped: CfnKnowledgeBase): + software.amazon.awscdk.services.bedrock.CfnKnowledgeBase = wrapped.cdkObject as + software.amazon.awscdk.services.bedrock.CfnKnowledgeBase + } + + /** + * Contains details about the embeddings configuration of the knowledge base. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bedrock.*; + * KnowledgeBaseConfigurationProperty knowledgeBaseConfigurationProperty = + * KnowledgeBaseConfigurationProperty.builder() + * .type("type") + * .vectorKnowledgeBaseConfiguration(VectorKnowledgeBaseConfigurationProperty.builder() + * .embeddingModelArn("embeddingModelArn") + * .build()) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-knowledgebase-knowledgebaseconfiguration.html) + */ + public interface KnowledgeBaseConfigurationProperty { + /** + * The type of data that the data source is converted into for the knowledge base. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-knowledgebase-knowledgebaseconfiguration.html#cfn-bedrock-knowledgebase-knowledgebaseconfiguration-type) + */ + public fun type(): String + + /** + * Contains details about the embeddings model that'sused to convert the data source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-knowledgebase-knowledgebaseconfiguration.html#cfn-bedrock-knowledgebase-knowledgebaseconfiguration-vectorknowledgebaseconfiguration) + */ + public fun vectorKnowledgeBaseConfiguration(): Any + + /** + * A builder for [KnowledgeBaseConfigurationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param type The type of data that the data source is converted into for the knowledge base. + * + */ + public fun type(type: String) + + /** + * @param vectorKnowledgeBaseConfiguration Contains details about the embeddings model + * that'sused to convert the data source. + */ + public fun vectorKnowledgeBaseConfiguration(vectorKnowledgeBaseConfiguration: IResolvable) + + /** + * @param vectorKnowledgeBaseConfiguration Contains details about the embeddings model + * that'sused to convert the data source. + */ + public + fun vectorKnowledgeBaseConfiguration(vectorKnowledgeBaseConfiguration: VectorKnowledgeBaseConfigurationProperty) + + /** + * @param vectorKnowledgeBaseConfiguration Contains details about the embeddings model + * that'sused to convert the data source. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("d1436463a51d226fda4896a15739aa86c924098a9d68554af8e2d3e4633b861f") + public + fun vectorKnowledgeBaseConfiguration(vectorKnowledgeBaseConfiguration: VectorKnowledgeBaseConfigurationProperty.Builder.() -> Unit) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.bedrock.CfnKnowledgeBase.KnowledgeBaseConfigurationProperty.Builder + = + software.amazon.awscdk.services.bedrock.CfnKnowledgeBase.KnowledgeBaseConfigurationProperty.builder() + + /** + * @param type The type of data that the data source is converted into for the knowledge base. + * + */ + override fun type(type: String) { + cdkBuilder.type(type) + } + + /** + * @param vectorKnowledgeBaseConfiguration Contains details about the embeddings model + * that'sused to convert the data source. + */ + override fun vectorKnowledgeBaseConfiguration(vectorKnowledgeBaseConfiguration: IResolvable) { + cdkBuilder.vectorKnowledgeBaseConfiguration(vectorKnowledgeBaseConfiguration.let(IResolvable::unwrap)) + } + + /** + * @param vectorKnowledgeBaseConfiguration Contains details about the embeddings model + * that'sused to convert the data source. + */ + override + fun vectorKnowledgeBaseConfiguration(vectorKnowledgeBaseConfiguration: VectorKnowledgeBaseConfigurationProperty) { + cdkBuilder.vectorKnowledgeBaseConfiguration(vectorKnowledgeBaseConfiguration.let(VectorKnowledgeBaseConfigurationProperty::unwrap)) + } + + /** + * @param vectorKnowledgeBaseConfiguration Contains details about the embeddings model + * that'sused to convert the data source. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("d1436463a51d226fda4896a15739aa86c924098a9d68554af8e2d3e4633b861f") + override + fun vectorKnowledgeBaseConfiguration(vectorKnowledgeBaseConfiguration: VectorKnowledgeBaseConfigurationProperty.Builder.() -> Unit): + Unit = + vectorKnowledgeBaseConfiguration(VectorKnowledgeBaseConfigurationProperty(vectorKnowledgeBaseConfiguration)) + + public fun build(): + software.amazon.awscdk.services.bedrock.CfnKnowledgeBase.KnowledgeBaseConfigurationProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.bedrock.CfnKnowledgeBase.KnowledgeBaseConfigurationProperty, + ) : CdkObject(cdkObject), KnowledgeBaseConfigurationProperty { + /** + * The type of data that the data source is converted into for the knowledge base. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-knowledgebase-knowledgebaseconfiguration.html#cfn-bedrock-knowledgebase-knowledgebaseconfiguration-type) + */ + override fun type(): String = unwrap(this).getType() + + /** + * Contains details about the embeddings model that'sused to convert the data source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-knowledgebase-knowledgebaseconfiguration.html#cfn-bedrock-knowledgebase-knowledgebaseconfiguration-vectorknowledgebaseconfiguration) + */ + override fun vectorKnowledgeBaseConfiguration(): Any = + unwrap(this).getVectorKnowledgeBaseConfiguration() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): + KnowledgeBaseConfigurationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.bedrock.CfnKnowledgeBase.KnowledgeBaseConfigurationProperty): + KnowledgeBaseConfigurationProperty = CdkObjectWrappers.wrap(cdkObject) as? + KnowledgeBaseConfigurationProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: KnowledgeBaseConfigurationProperty): + software.amazon.awscdk.services.bedrock.CfnKnowledgeBase.KnowledgeBaseConfigurationProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.bedrock.CfnKnowledgeBase.KnowledgeBaseConfigurationProperty + } + } + + /** + * Contains details about the model used to create vector embeddings for the knowledge base. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bedrock.*; + * VectorKnowledgeBaseConfigurationProperty vectorKnowledgeBaseConfigurationProperty = + * VectorKnowledgeBaseConfigurationProperty.builder() + * .embeddingModelArn("embeddingModelArn") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-knowledgebase-vectorknowledgebaseconfiguration.html) + */ + public interface VectorKnowledgeBaseConfigurationProperty { + /** + * The Amazon Resource Name (ARN) of the model used to create vector embeddings for the + * knowledge base. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-knowledgebase-vectorknowledgebaseconfiguration.html#cfn-bedrock-knowledgebase-vectorknowledgebaseconfiguration-embeddingmodelarn) + */ + public fun embeddingModelArn(): String + + /** + * A builder for [VectorKnowledgeBaseConfigurationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param embeddingModelArn The Amazon Resource Name (ARN) of the model used to create vector + * embeddings for the knowledge base. + */ + public fun embeddingModelArn(embeddingModelArn: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.bedrock.CfnKnowledgeBase.VectorKnowledgeBaseConfigurationProperty.Builder + = + software.amazon.awscdk.services.bedrock.CfnKnowledgeBase.VectorKnowledgeBaseConfigurationProperty.builder() + + /** + * @param embeddingModelArn The Amazon Resource Name (ARN) of the model used to create vector + * embeddings for the knowledge base. + */ + override fun embeddingModelArn(embeddingModelArn: String) { + cdkBuilder.embeddingModelArn(embeddingModelArn) + } + + public fun build(): + software.amazon.awscdk.services.bedrock.CfnKnowledgeBase.VectorKnowledgeBaseConfigurationProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.bedrock.CfnKnowledgeBase.VectorKnowledgeBaseConfigurationProperty, + ) : CdkObject(cdkObject), VectorKnowledgeBaseConfigurationProperty { + /** + * The Amazon Resource Name (ARN) of the model used to create vector embeddings for the + * knowledge base. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-bedrock-knowledgebase-vectorknowledgebaseconfiguration.html#cfn-bedrock-knowledgebase-vectorknowledgebaseconfiguration-embeddingmodelarn) + */ + override fun embeddingModelArn(): String = unwrap(this).getEmbeddingModelArn() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): + VectorKnowledgeBaseConfigurationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.bedrock.CfnKnowledgeBase.VectorKnowledgeBaseConfigurationProperty): + VectorKnowledgeBaseConfigurationProperty = CdkObjectWrappers.wrap(cdkObject) as? + VectorKnowledgeBaseConfigurationProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: VectorKnowledgeBaseConfigurationProperty): + software.amazon.awscdk.services.bedrock.CfnKnowledgeBase.VectorKnowledgeBaseConfigurationProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.bedrock.CfnKnowledgeBase.VectorKnowledgeBaseConfigurationProperty + } + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bedrock/CfnKnowledgeBaseProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bedrock/CfnKnowledgeBaseProps.kt new file mode 100644 index 0000000000..2cf4f1fe92 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bedrock/CfnKnowledgeBaseProps.kt @@ -0,0 +1,269 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.bedrock + +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.Map +import kotlin.jvm.JvmName + +/** + * Properties for defining a `CfnKnowledgeBase`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.bedrock.*; + * CfnKnowledgeBaseProps cfnKnowledgeBaseProps = CfnKnowledgeBaseProps.builder() + * .knowledgeBaseConfiguration(KnowledgeBaseConfigurationProperty.builder() + * .type("type") + * .vectorKnowledgeBaseConfiguration(VectorKnowledgeBaseConfigurationProperty.builder() + * .embeddingModelArn("embeddingModelArn") + * .build()) + * .build()) + * .name("name") + * .roleArn("roleArn") + * // the properties below are optional + * .description("description") + * .tags(Map.of( + * "tagsKey", "tags")) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html) + */ +public interface CfnKnowledgeBaseProps { + /** + * The description of the knowledge base. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html#cfn-bedrock-knowledgebase-description) + */ + public fun description(): String? = unwrap(this).getDescription() + + /** + * Contains details about the embeddings configuration of the knowledge base. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html#cfn-bedrock-knowledgebase-knowledgebaseconfiguration) + */ + public fun knowledgeBaseConfiguration(): Any + + /** + * The name of the knowledge base. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html#cfn-bedrock-knowledgebase-name) + */ + public fun name(): String + + /** + * The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on the + * knowledge base. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html#cfn-bedrock-knowledgebase-rolearn) + */ + public fun roleArn(): String + + /** + * Metadata that you can assign to a resource as key-value pairs. For more information, see the + * following resources:. + * + * * [Tag naming limits and + * requirements](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions) + * * [Tagging best + * practices](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-best-practices) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html#cfn-bedrock-knowledgebase-tags) + */ + public fun tags(): Map = unwrap(this).getTags() ?: emptyMap() + + /** + * A builder for [CfnKnowledgeBaseProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param description The description of the knowledge base. + */ + public fun description(description: String) + + /** + * @param knowledgeBaseConfiguration Contains details about the embeddings configuration of the + * knowledge base. + */ + public fun knowledgeBaseConfiguration(knowledgeBaseConfiguration: IResolvable) + + /** + * @param knowledgeBaseConfiguration Contains details about the embeddings configuration of the + * knowledge base. + */ + public + fun knowledgeBaseConfiguration(knowledgeBaseConfiguration: CfnKnowledgeBase.KnowledgeBaseConfigurationProperty) + + /** + * @param knowledgeBaseConfiguration Contains details about the embeddings configuration of the + * knowledge base. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("8025d938b3af075f8df8fc861a0b9c1f5dadec596fc119b1b68de7e98a8cc166") + public + fun knowledgeBaseConfiguration(knowledgeBaseConfiguration: CfnKnowledgeBase.KnowledgeBaseConfigurationProperty.Builder.() -> Unit) + + /** + * @param name The name of the knowledge base. + */ + public fun name(name: String) + + /** + * @param roleArn The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API + * operations on the knowledge base. + */ + public fun roleArn(roleArn: String) + + /** + * @param tags Metadata that you can assign to a resource as key-value pairs. For more + * information, see the following resources:. + * * [Tag naming limits and + * requirements](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions) + * * [Tagging best + * practices](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-best-practices) + */ + public fun tags(tags: Map) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.services.bedrock.CfnKnowledgeBaseProps.Builder = + software.amazon.awscdk.services.bedrock.CfnKnowledgeBaseProps.builder() + + /** + * @param description The description of the knowledge base. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * @param knowledgeBaseConfiguration Contains details about the embeddings configuration of the + * knowledge base. + */ + override fun knowledgeBaseConfiguration(knowledgeBaseConfiguration: IResolvable) { + cdkBuilder.knowledgeBaseConfiguration(knowledgeBaseConfiguration.let(IResolvable::unwrap)) + } + + /** + * @param knowledgeBaseConfiguration Contains details about the embeddings configuration of the + * knowledge base. + */ + override + fun knowledgeBaseConfiguration(knowledgeBaseConfiguration: CfnKnowledgeBase.KnowledgeBaseConfigurationProperty) { + cdkBuilder.knowledgeBaseConfiguration(knowledgeBaseConfiguration.let(CfnKnowledgeBase.KnowledgeBaseConfigurationProperty::unwrap)) + } + + /** + * @param knowledgeBaseConfiguration Contains details about the embeddings configuration of the + * knowledge base. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("8025d938b3af075f8df8fc861a0b9c1f5dadec596fc119b1b68de7e98a8cc166") + override + fun knowledgeBaseConfiguration(knowledgeBaseConfiguration: CfnKnowledgeBase.KnowledgeBaseConfigurationProperty.Builder.() -> Unit): + Unit = + knowledgeBaseConfiguration(CfnKnowledgeBase.KnowledgeBaseConfigurationProperty(knowledgeBaseConfiguration)) + + /** + * @param name The name of the knowledge base. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + /** + * @param roleArn The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API + * operations on the knowledge base. + */ + override fun roleArn(roleArn: String) { + cdkBuilder.roleArn(roleArn) + } + + /** + * @param tags Metadata that you can assign to a resource as key-value pairs. For more + * information, see the following resources:. + * * [Tag naming limits and + * requirements](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions) + * * [Tagging best + * practices](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-best-practices) + */ + override fun tags(tags: Map) { + cdkBuilder.tags(tags) + } + + public fun build(): software.amazon.awscdk.services.bedrock.CfnKnowledgeBaseProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.bedrock.CfnKnowledgeBaseProps, + ) : CdkObject(cdkObject), CfnKnowledgeBaseProps { + /** + * The description of the knowledge base. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html#cfn-bedrock-knowledgebase-description) + */ + override fun description(): String? = unwrap(this).getDescription() + + /** + * Contains details about the embeddings configuration of the knowledge base. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html#cfn-bedrock-knowledgebase-knowledgebaseconfiguration) + */ + override fun knowledgeBaseConfiguration(): Any = unwrap(this).getKnowledgeBaseConfiguration() + + /** + * The name of the knowledge base. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html#cfn-bedrock-knowledgebase-name) + */ + override fun name(): String = unwrap(this).getName() + + /** + * The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on + * the knowledge base. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html#cfn-bedrock-knowledgebase-rolearn) + */ + override fun roleArn(): String = unwrap(this).getRoleArn() + + /** + * Metadata that you can assign to a resource as key-value pairs. For more information, see the + * following resources:. + * + * * [Tag naming limits and + * requirements](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions) + * * [Tagging best + * practices](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-best-practices) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-knowledgebase.html#cfn-bedrock-knowledgebase-tags) + */ + override fun tags(): Map = unwrap(this).getTags() ?: emptyMap() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnKnowledgeBaseProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.bedrock.CfnKnowledgeBaseProps): + CfnKnowledgeBaseProps = CdkObjectWrappers.wrap(cdkObject) as? CfnKnowledgeBaseProps ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnKnowledgeBaseProps): + software.amazon.awscdk.services.bedrock.CfnKnowledgeBaseProps = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.bedrock.CfnKnowledgeBaseProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bedrock/FoundationModelIdentifier.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bedrock/FoundationModelIdentifier.kt index f4ac43d6a1..2f7049d23e 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bedrock/FoundationModelIdentifier.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/bedrock/FoundationModelIdentifier.kt @@ -31,39 +31,117 @@ public open class FoundationModelIdentifier( public open fun modelId(): String = unwrap(this).getModelId() public companion object { + public val AI21_J2_GRANDE_INSTRUCT: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.AI21_J2_GRANDE_INSTRUCT) + + public val AI21_J2_JUMBO_INSTRUCT: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.AI21_J2_JUMBO_INSTRUCT) + + public val AI21_J2_MID: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.AI21_J2_MID) + + public val AI21_J2_ULTRA: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.AI21_J2_ULTRA) + public val AI21_LABS_JURASSIC_2_MID_V1: FoundationModelIdentifier = FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.AI21_LABS_JURASSIC_2_MID_V1) public val AI21_LABS_JURASSIC_2_ULTRA_V1: FoundationModelIdentifier = FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.AI21_LABS_JURASSIC_2_ULTRA_V1) + public val AMAZON_TITAN_EMBED_G1_TEXT_02: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.AMAZON_TITAN_EMBED_G1_TEXT_02) + + public val AMAZON_TITAN_EMBED_IMAGE_V1_0: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.AMAZON_TITAN_EMBED_IMAGE_V1_0) + + public val AMAZON_TITAN_EMBED_TEXT_V1_2_8_K: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.AMAZON_TITAN_EMBED_TEXT_V1_2_8_K) + public val AMAZON_TITAN_EMBEDDINGS_G1_TEXT_V1: FoundationModelIdentifier = FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.AMAZON_TITAN_EMBEDDINGS_G1_TEXT_V1) public val AMAZON_TITAN_IMAGE_GENERATOR_G1_V1: FoundationModelIdentifier = FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.AMAZON_TITAN_IMAGE_GENERATOR_G1_V1) + public val AMAZON_TITAN_IMAGE_GENERATOR_V1_0: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.AMAZON_TITAN_IMAGE_GENERATOR_V1_0) + public val AMAZON_TITAN_MULTIMODAL_EMBEDDINGS_G1_V1: FoundationModelIdentifier = FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.AMAZON_TITAN_MULTIMODAL_EMBEDDINGS_G1_V1) + public val AMAZON_TITAN_TEXT_EXPRESS_V1_0_8_K: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.AMAZON_TITAN_TEXT_EXPRESS_V1_0_8_K) + public val AMAZON_TITAN_TEXT_G1_EXPRESS_V1: FoundationModelIdentifier = FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.AMAZON_TITAN_TEXT_G1_EXPRESS_V1) + public val AMAZON_TITAN_TEXT_LITE_V1: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.AMAZON_TITAN_TEXT_LITE_V1) + + public val AMAZON_TITAN_TEXT_LITE_V1_0_4_K: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.AMAZON_TITAN_TEXT_LITE_V1_0_4_K) + + public val AMAZON_TITAN_TG1_LARGE: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.AMAZON_TITAN_TG1_LARGE) + + public val ANTHROPIC_CLAUDE_3_HAIKU_20240307_V1_0: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.ANTHROPIC_CLAUDE_3_HAIKU_20240307_V1_0) + + public val ANTHROPIC_CLAUDE_3_HAIKU_20240307_V1_0_200_K: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.ANTHROPIC_CLAUDE_3_HAIKU_20240307_V1_0_200_K) + + public val ANTHROPIC_CLAUDE_3_HAIKU_20240307_V1_0_48_K: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.ANTHROPIC_CLAUDE_3_HAIKU_20240307_V1_0_48_K) + + public val ANTHROPIC_CLAUDE_3_OPUS_20240229_V1_0: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.ANTHROPIC_CLAUDE_3_OPUS_20240229_V1_0) + + public val ANTHROPIC_CLAUDE_3_SONNET_20240229_V1_0: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.ANTHROPIC_CLAUDE_3_SONNET_20240229_V1_0) + + public val ANTHROPIC_CLAUDE_3_SONNET_20240229_V1_0_200_K: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.ANTHROPIC_CLAUDE_3_SONNET_20240229_V1_0_200_K) + + public val ANTHROPIC_CLAUDE_3_SONNET_20240229_V1_0_28_K: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.ANTHROPIC_CLAUDE_3_SONNET_20240229_V1_0_28_K) + public val ANTHROPIC_CLAUDE_INSTANT_V1: FoundationModelIdentifier = FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.ANTHROPIC_CLAUDE_INSTANT_V1) + public val ANTHROPIC_CLAUDE_INSTANT_V1_2_100_K: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.ANTHROPIC_CLAUDE_INSTANT_V1_2_100_K) + public val ANTHROPIC_CLAUDE_V1: FoundationModelIdentifier = FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.ANTHROPIC_CLAUDE_V1) public val ANTHROPIC_CLAUDE_V2: FoundationModelIdentifier = FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.ANTHROPIC_CLAUDE_V2) + public val ANTHROPIC_CLAUDE_V2_0_100_K: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.ANTHROPIC_CLAUDE_V2_0_100_K) + + public val ANTHROPIC_CLAUDE_V2_0_18_K: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.ANTHROPIC_CLAUDE_V2_0_18_K) + public val ANTHROPIC_CLAUDE_V2_1: FoundationModelIdentifier = FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.ANTHROPIC_CLAUDE_V2_1) + public val ANTHROPIC_CLAUDE_V2_1_18_K: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.ANTHROPIC_CLAUDE_V2_1_18_K) + + public val ANTHROPIC_CLAUDE_V2_1_200_K: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.ANTHROPIC_CLAUDE_V2_1_200_K) + + public val COHERE_COMMAND_LIGHT_TEXT_V14_7_4_K: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.COHERE_COMMAND_LIGHT_TEXT_V14_7_4_K) + public val COHERE_COMMAND_LIGHT_V14: FoundationModelIdentifier = FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.COHERE_COMMAND_LIGHT_V14) + public val COHERE_COMMAND_TEXT_V14_7_4_K: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.COHERE_COMMAND_TEXT_V14_7_4_K) + public val COHERE_COMMAND_V14: FoundationModelIdentifier = FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.COHERE_COMMAND_V14) @@ -73,18 +151,48 @@ public open class FoundationModelIdentifier( public val COHERE_EMBED_MULTILINGUAL_V3: FoundationModelIdentifier = FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.COHERE_EMBED_MULTILINGUAL_V3) + public val META_LLAMA_2_13_B_CHAT_V1_0_4_K: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.META_LLAMA_2_13_B_CHAT_V1_0_4_K) + + public val META_LLAMA_2_13_B_V1: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.META_LLAMA_2_13_B_V1) + + public val META_LLAMA_2_13_B_V1_0_4_K: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.META_LLAMA_2_13_B_V1_0_4_K) + + public val META_LLAMA_2_70_B_CHAT_V1_0_4_K: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.META_LLAMA_2_70_B_CHAT_V1_0_4_K) + + public val META_LLAMA_2_70_B_V1: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.META_LLAMA_2_70_B_V1) + + public val META_LLAMA_2_70_B_V1_0_4_K: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.META_LLAMA_2_70_B_V1_0_4_K) + public val META_LLAMA_2_CHAT_13_B_V1: FoundationModelIdentifier = FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.META_LLAMA_2_CHAT_13_B_V1) public val META_LLAMA_2_CHAT_70_B_V1: FoundationModelIdentifier = FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.META_LLAMA_2_CHAT_70_B_V1) + public val MISTRAL_MISTRAL_7_B_INSTRUCT_V0_2: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.MISTRAL_MISTRAL_7_B_INSTRUCT_V0_2) + + public val MISTRAL_MIXTRAL_8_X7_B_INSTRUCT_V0_1: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.MISTRAL_MIXTRAL_8_X7_B_INSTRUCT_V0_1) + + public val STABILITY_STABLE_DIFFUSION_XL: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.STABILITY_STABLE_DIFFUSION_XL) + public val STABILITY_STABLE_DIFFUSION_XL_V0: FoundationModelIdentifier = FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.STABILITY_STABLE_DIFFUSION_XL_V0) public val STABILITY_STABLE_DIFFUSION_XL_V1: FoundationModelIdentifier = FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.STABILITY_STABLE_DIFFUSION_XL_V1) + public val STABILITY_STABLE_DIFFUSION_XL_V1_0: FoundationModelIdentifier = + FoundationModelIdentifier.wrap(software.amazon.awscdk.services.bedrock.FoundationModelIdentifier.STABILITY_STABLE_DIFFUSION_XL_V1_0) + internal fun wrap(cdkObject: software.amazon.awscdk.services.bedrock.FoundationModelIdentifier): FoundationModelIdentifier = FoundationModelIdentifier(cdkObject) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/chatbot/CfnMicrosoftTeamsChannelConfiguration.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/chatbot/CfnMicrosoftTeamsChannelConfiguration.kt index 64b70eb107..17bf992e0a 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/chatbot/CfnMicrosoftTeamsChannelConfiguration.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/chatbot/CfnMicrosoftTeamsChannelConfiguration.kt @@ -172,12 +172,12 @@ public open class CfnMicrosoftTeamsChannelConfiguration( } /** - * The id of the Microsoft Teams channel. + * The ID of the Microsoft Teams channel. */ public open fun teamsChannelId(): String = unwrap(this).getTeamsChannelId() /** - * The id of the Microsoft Teams channel. + * The ID of the Microsoft Teams channel. */ public open fun teamsChannelId(`value`: String) { unwrap(this).setTeamsChannelId(`value`) @@ -305,10 +305,14 @@ public open class CfnMicrosoftTeamsChannelConfiguration( public fun teamId(teamId: String) /** - * The id of the Microsoft Teams channel. + * The ID of the Microsoft Teams channel. + * + * To get the channel ID, open Microsoft Teams, right click on the channel name in the left + * pane, then choose Copy. An example of the channel ID syntax is: + * `19%3ab6ef35dc342d56ba5654e6fc6d25a071%40thread.tacv2` . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-microsoftteamschannelconfiguration.html#cfn-chatbot-microsoftteamschannelconfiguration-teamschannelid) - * @param teamsChannelId The id of the Microsoft Teams channel. + * @param teamsChannelId The ID of the Microsoft Teams channel. */ public fun teamsChannelId(teamsChannelId: String) @@ -455,10 +459,14 @@ public open class CfnMicrosoftTeamsChannelConfiguration( } /** - * The id of the Microsoft Teams channel. + * The ID of the Microsoft Teams channel. + * + * To get the channel ID, open Microsoft Teams, right click on the channel name in the left + * pane, then choose Copy. An example of the channel ID syntax is: + * `19%3ab6ef35dc342d56ba5654e6fc6d25a071%40thread.tacv2` . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-microsoftteamschannelconfiguration.html#cfn-chatbot-microsoftteamschannelconfiguration-teamschannelid) - * @param teamsChannelId The id of the Microsoft Teams channel. + * @param teamsChannelId The ID of the Microsoft Teams channel. */ override fun teamsChannelId(teamsChannelId: String) { cdkBuilder.teamsChannelId(teamsChannelId) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/chatbot/CfnMicrosoftTeamsChannelConfigurationProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/chatbot/CfnMicrosoftTeamsChannelConfigurationProps.kt index 7cbed5c44a..f9a5c4c5eb 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/chatbot/CfnMicrosoftTeamsChannelConfigurationProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/chatbot/CfnMicrosoftTeamsChannelConfigurationProps.kt @@ -99,7 +99,11 @@ public interface CfnMicrosoftTeamsChannelConfigurationProps { public fun teamId(): String /** - * The id of the Microsoft Teams channel. + * The ID of the Microsoft Teams channel. + * + * To get the channel ID, open Microsoft Teams, right click on the channel name in the left pane, + * then choose Copy. An example of the channel ID syntax is: + * `19%3ab6ef35dc342d56ba5654e6fc6d25a071%40thread.tacv2` . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-microsoftteamschannelconfiguration.html#cfn-chatbot-microsoftteamschannelconfiguration-teamschannelid) */ @@ -185,7 +189,10 @@ public interface CfnMicrosoftTeamsChannelConfigurationProps { public fun teamId(teamId: String) /** - * @param teamsChannelId The id of the Microsoft Teams channel. + * @param teamsChannelId The ID of the Microsoft Teams channel. + * To get the channel ID, open Microsoft Teams, right click on the channel name in the left + * pane, then choose Copy. An example of the channel ID syntax is: + * `19%3ab6ef35dc342d56ba5654e6fc6d25a071%40thread.tacv2` . */ public fun teamsChannelId(teamsChannelId: String) @@ -282,7 +289,10 @@ public interface CfnMicrosoftTeamsChannelConfigurationProps { } /** - * @param teamsChannelId The id of the Microsoft Teams channel. + * @param teamsChannelId The ID of the Microsoft Teams channel. + * To get the channel ID, open Microsoft Teams, right click on the channel name in the left + * pane, then choose Copy. An example of the channel ID syntax is: + * `19%3ab6ef35dc342d56ba5654e6fc6d25a071%40thread.tacv2` . */ override fun teamsChannelId(teamsChannelId: String) { cdkBuilder.teamsChannelId(teamsChannelId) @@ -383,7 +393,11 @@ public interface CfnMicrosoftTeamsChannelConfigurationProps { override fun teamId(): String = unwrap(this).getTeamId() /** - * The id of the Microsoft Teams channel. + * The ID of the Microsoft Teams channel. + * + * To get the channel ID, open Microsoft Teams, right click on the channel name in the left + * pane, then choose Copy. An example of the channel ID syntax is: + * `19%3ab6ef35dc342d56ba5654e6fc6d25a071%40thread.tacv2` . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-microsoftteamschannelconfiguration.html#cfn-chatbot-microsoftteamschannelconfiguration-teamschannelid) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cleanrooms/CfnConfiguredTable.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cleanrooms/CfnConfiguredTable.kt index ef88d6ee5a..4198b53e49 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cleanrooms/CfnConfiguredTable.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cleanrooms/CfnConfiguredTable.kt @@ -66,6 +66,11 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .allowedAnalyses(List.of("allowedAnalyses")) * // the properties below are optional * .allowedAnalysisProviders(List.of("allowedAnalysisProviders")) + * .differentialPrivacy(DifferentialPrivacyProperty.builder() + * .columns(List.of(DifferentialPrivacyColumnProperty.builder() + * .name("name") + * .build())) + * .build()) * .build()) * .list(AnalysisRuleListProperty.builder() * .joinColumns(List.of("joinColumns")) @@ -1246,6 +1251,11 @@ public open class CfnConfiguredTable( * .allowedAnalyses(List.of("allowedAnalyses")) * // the properties below are optional * .allowedAnalysisProviders(List.of("allowedAnalysisProviders")) + * .differentialPrivacy(DifferentialPrivacyProperty.builder() + * .columns(List.of(DifferentialPrivacyColumnProperty.builder() + * .name("name") + * .build())) + * .build()) * .build(); * ``` * @@ -1269,6 +1279,13 @@ public open class CfnConfiguredTable( public fun allowedAnalysisProviders(): List = unwrap(this).getAllowedAnalysisProviders() ?: emptyList() + /** + * The differential privacy configuration. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanrooms-configuredtable-analysisrulecustom.html#cfn-cleanrooms-configuredtable-analysisrulecustom-differentialprivacy) + */ + public fun differentialPrivacy(): Any? = unwrap(this).getDifferentialPrivacy() + /** * A builder for [AnalysisRuleCustomProperty] */ @@ -1299,6 +1316,24 @@ public open class CfnConfiguredTable( * Required when `allowedAnalyses` is `ANY_QUERY` . */ public fun allowedAnalysisProviders(vararg allowedAnalysisProviders: String) + + /** + * @param differentialPrivacy The differential privacy configuration. + */ + public fun differentialPrivacy(differentialPrivacy: IResolvable) + + /** + * @param differentialPrivacy The differential privacy configuration. + */ + public fun differentialPrivacy(differentialPrivacy: DifferentialPrivacyProperty) + + /** + * @param differentialPrivacy The differential privacy configuration. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("68525e7452b4a2f759a4506872d5696396f687bb0c04eda5fe6627d5d83f845c") + public + fun differentialPrivacy(differentialPrivacy: DifferentialPrivacyProperty.Builder.() -> Unit) } private class BuilderImpl : Builder { @@ -1339,6 +1374,29 @@ public open class CfnConfiguredTable( override fun allowedAnalysisProviders(vararg allowedAnalysisProviders: String): Unit = allowedAnalysisProviders(allowedAnalysisProviders.toList()) + /** + * @param differentialPrivacy The differential privacy configuration. + */ + override fun differentialPrivacy(differentialPrivacy: IResolvable) { + cdkBuilder.differentialPrivacy(differentialPrivacy.let(IResolvable::unwrap)) + } + + /** + * @param differentialPrivacy The differential privacy configuration. + */ + override fun differentialPrivacy(differentialPrivacy: DifferentialPrivacyProperty) { + cdkBuilder.differentialPrivacy(differentialPrivacy.let(DifferentialPrivacyProperty::unwrap)) + } + + /** + * @param differentialPrivacy The differential privacy configuration. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("68525e7452b4a2f759a4506872d5696396f687bb0c04eda5fe6627d5d83f845c") + override + fun differentialPrivacy(differentialPrivacy: DifferentialPrivacyProperty.Builder.() -> Unit): + Unit = differentialPrivacy(DifferentialPrivacyProperty(differentialPrivacy)) + public fun build(): software.amazon.awscdk.services.cleanrooms.CfnConfiguredTable.AnalysisRuleCustomProperty = cdkBuilder.build() @@ -1363,6 +1421,13 @@ public open class CfnConfiguredTable( */ override fun allowedAnalysisProviders(): List = unwrap(this).getAllowedAnalysisProviders() ?: emptyList() + + /** + * The differential privacy configuration. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanrooms-configuredtable-analysisrulecustom.html#cfn-cleanrooms-configuredtable-analysisrulecustom-differentialprivacy) + */ + override fun differentialPrivacy(): Any? = unwrap(this).getDifferentialPrivacy() } public companion object { @@ -1604,6 +1669,11 @@ public open class CfnConfiguredTable( * .allowedAnalyses(List.of("allowedAnalyses")) * // the properties below are optional * .allowedAnalysisProviders(List.of("allowedAnalysisProviders")) + * .differentialPrivacy(DifferentialPrivacyProperty.builder() + * .columns(List.of(DifferentialPrivacyColumnProperty.builder() + * .name("name") + * .build())) + * .build()) * .build()) * .list(AnalysisRuleListProperty.builder() * .joinColumns(List.of("joinColumns")) @@ -1771,6 +1841,11 @@ public open class CfnConfiguredTable( * .allowedAnalyses(List.of("allowedAnalyses")) * // the properties below are optional * .allowedAnalysisProviders(List.of("allowedAnalysisProviders")) + * .differentialPrivacy(DifferentialPrivacyProperty.builder() + * .columns(List.of(DifferentialPrivacyColumnProperty.builder() + * .name("name") + * .build())) + * .build()) * .build()) * .list(AnalysisRuleListProperty.builder() * .joinColumns(List.of("joinColumns")) @@ -1910,6 +1985,11 @@ public open class CfnConfiguredTable( * .allowedAnalyses(List.of("allowedAnalyses")) * // the properties below are optional * .allowedAnalysisProviders(List.of("allowedAnalysisProviders")) + * .differentialPrivacy(DifferentialPrivacyProperty.builder() + * .columns(List.of(DifferentialPrivacyColumnProperty.builder() + * .name("name") + * .build())) + * .build()) * .build()) * .list(AnalysisRuleListProperty.builder() * .joinColumns(List.of("joinColumns")) @@ -2128,6 +2208,239 @@ public open class CfnConfiguredTable( } } + /** + * Specifies the name of the column that contains the unique identifier of your users, whose + * privacy you want to protect. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.cleanrooms.*; + * DifferentialPrivacyColumnProperty differentialPrivacyColumnProperty = + * DifferentialPrivacyColumnProperty.builder() + * .name("name") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanrooms-configuredtable-differentialprivacycolumn.html) + */ + public interface DifferentialPrivacyColumnProperty { + /** + * The name of the column, such as user_id, that contains the unique identifier of your users, + * whose privacy you want to protect. + * + * If you want to turn on differential privacy for two or more tables in a collaboration, you + * must configure the same column as the user identifier column in both analysis rules. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanrooms-configuredtable-differentialprivacycolumn.html#cfn-cleanrooms-configuredtable-differentialprivacycolumn-name) + */ + public fun name(): String + + /** + * A builder for [DifferentialPrivacyColumnProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param name The name of the column, such as user_id, that contains the unique identifier of + * your users, whose privacy you want to protect. + * If you want to turn on differential privacy for two or more tables in a collaboration, you + * must configure the same column as the user identifier column in both analysis rules. + */ + public fun name(name: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.cleanrooms.CfnConfiguredTable.DifferentialPrivacyColumnProperty.Builder + = + software.amazon.awscdk.services.cleanrooms.CfnConfiguredTable.DifferentialPrivacyColumnProperty.builder() + + /** + * @param name The name of the column, such as user_id, that contains the unique identifier of + * your users, whose privacy you want to protect. + * If you want to turn on differential privacy for two or more tables in a collaboration, you + * must configure the same column as the user identifier column in both analysis rules. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + public fun build(): + software.amazon.awscdk.services.cleanrooms.CfnConfiguredTable.DifferentialPrivacyColumnProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.cleanrooms.CfnConfiguredTable.DifferentialPrivacyColumnProperty, + ) : CdkObject(cdkObject), DifferentialPrivacyColumnProperty { + /** + * The name of the column, such as user_id, that contains the unique identifier of your users, + * whose privacy you want to protect. + * + * If you want to turn on differential privacy for two or more tables in a collaboration, you + * must configure the same column as the user identifier column in both analysis rules. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanrooms-configuredtable-differentialprivacycolumn.html#cfn-cleanrooms-configuredtable-differentialprivacycolumn-name) + */ + override fun name(): String = unwrap(this).getName() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): + DifferentialPrivacyColumnProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.cleanrooms.CfnConfiguredTable.DifferentialPrivacyColumnProperty): + DifferentialPrivacyColumnProperty = CdkObjectWrappers.wrap(cdkObject) as? + DifferentialPrivacyColumnProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: DifferentialPrivacyColumnProperty): + software.amazon.awscdk.services.cleanrooms.CfnConfiguredTable.DifferentialPrivacyColumnProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.cleanrooms.CfnConfiguredTable.DifferentialPrivacyColumnProperty + } + } + + /** + * The analysis method for the configured tables. + * + * The only valid value is currently `DIRECT_QUERY`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.cleanrooms.*; + * DifferentialPrivacyProperty differentialPrivacyProperty = DifferentialPrivacyProperty.builder() + * .columns(List.of(DifferentialPrivacyColumnProperty.builder() + * .name("name") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanrooms-configuredtable-differentialprivacy.html) + */ + public interface DifferentialPrivacyProperty { + /** + * The name of the column, such as user_id, that contains the unique identifier of your users, + * whose privacy you want to protect. + * + * If you want to turn on differential privacy for two or more tables in a collaboration, you + * must configure the same column as the user identifier column in both analysis rules. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanrooms-configuredtable-differentialprivacy.html#cfn-cleanrooms-configuredtable-differentialprivacy-columns) + */ + public fun columns(): Any + + /** + * A builder for [DifferentialPrivacyProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param columns The name of the column, such as user_id, that contains the unique identifier + * of your users, whose privacy you want to protect. + * If you want to turn on differential privacy for two or more tables in a collaboration, you + * must configure the same column as the user identifier column in both analysis rules. + */ + public fun columns(columns: IResolvable) + + /** + * @param columns The name of the column, such as user_id, that contains the unique identifier + * of your users, whose privacy you want to protect. + * If you want to turn on differential privacy for two or more tables in a collaboration, you + * must configure the same column as the user identifier column in both analysis rules. + */ + public fun columns(columns: List) + + /** + * @param columns The name of the column, such as user_id, that contains the unique identifier + * of your users, whose privacy you want to protect. + * If you want to turn on differential privacy for two or more tables in a collaboration, you + * must configure the same column as the user identifier column in both analysis rules. + */ + public fun columns(vararg columns: Any) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.cleanrooms.CfnConfiguredTable.DifferentialPrivacyProperty.Builder + = + software.amazon.awscdk.services.cleanrooms.CfnConfiguredTable.DifferentialPrivacyProperty.builder() + + /** + * @param columns The name of the column, such as user_id, that contains the unique identifier + * of your users, whose privacy you want to protect. + * If you want to turn on differential privacy for two or more tables in a collaboration, you + * must configure the same column as the user identifier column in both analysis rules. + */ + override fun columns(columns: IResolvable) { + cdkBuilder.columns(columns.let(IResolvable::unwrap)) + } + + /** + * @param columns The name of the column, such as user_id, that contains the unique identifier + * of your users, whose privacy you want to protect. + * If you want to turn on differential privacy for two or more tables in a collaboration, you + * must configure the same column as the user identifier column in both analysis rules. + */ + override fun columns(columns: List) { + cdkBuilder.columns(columns.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param columns The name of the column, such as user_id, that contains the unique identifier + * of your users, whose privacy you want to protect. + * If you want to turn on differential privacy for two or more tables in a collaboration, you + * must configure the same column as the user identifier column in both analysis rules. + */ + override fun columns(vararg columns: Any): Unit = columns(columns.toList()) + + public fun build(): + software.amazon.awscdk.services.cleanrooms.CfnConfiguredTable.DifferentialPrivacyProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.cleanrooms.CfnConfiguredTable.DifferentialPrivacyProperty, + ) : CdkObject(cdkObject), DifferentialPrivacyProperty { + /** + * The name of the column, such as user_id, that contains the unique identifier of your users, + * whose privacy you want to protect. + * + * If you want to turn on differential privacy for two or more tables in a collaboration, you + * must configure the same column as the user identifier column in both analysis rules. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanrooms-configuredtable-differentialprivacy.html#cfn-cleanrooms-configuredtable-differentialprivacy-columns) + */ + override fun columns(): Any = unwrap(this).getColumns() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): DifferentialPrivacyProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.cleanrooms.CfnConfiguredTable.DifferentialPrivacyProperty): + DifferentialPrivacyProperty = CdkObjectWrappers.wrap(cdkObject) as? + DifferentialPrivacyProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: DifferentialPrivacyProperty): + software.amazon.awscdk.services.cleanrooms.CfnConfiguredTable.DifferentialPrivacyProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.cleanrooms.CfnConfiguredTable.DifferentialPrivacyProperty + } + } + /** * A reference to a table within an AWS Glue data catalog. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cleanrooms/CfnConfiguredTableProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cleanrooms/CfnConfiguredTableProps.kt index 9c7a46b73b..18341ffae5 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cleanrooms/CfnConfiguredTableProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cleanrooms/CfnConfiguredTableProps.kt @@ -57,6 +57,11 @@ import kotlin.jvm.JvmName * .allowedAnalyses(List.of("allowedAnalyses")) * // the properties below are optional * .allowedAnalysisProviders(List.of("allowedAnalysisProviders")) + * .differentialPrivacy(DifferentialPrivacyProperty.builder() + * .columns(List.of(DifferentialPrivacyColumnProperty.builder() + * .name("name") + * .build())) + * .build()) * .build()) * .list(AnalysisRuleListProperty.builder() * .joinColumns(List.of("joinColumns")) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cleanrooms/CfnPrivacyBudgetTemplate.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cleanrooms/CfnPrivacyBudgetTemplate.kt new file mode 100644 index 0000000000..ecbc510132 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cleanrooms/CfnPrivacyBudgetTemplate.kt @@ -0,0 +1,526 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.cleanrooms + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.ITaggableV2 +import io.cloudshiftdev.awscdk.TagManager +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.Number +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.jvm.JvmName +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * An object that defines the privacy budget template. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.cleanrooms.*; + * CfnPrivacyBudgetTemplate cfnPrivacyBudgetTemplate = CfnPrivacyBudgetTemplate.Builder.create(this, + * "MyCfnPrivacyBudgetTemplate") + * .autoRefresh("autoRefresh") + * .membershipIdentifier("membershipIdentifier") + * .parameters(ParametersProperty.builder() + * .epsilon(123) + * .usersNoisePerQuery(123) + * .build()) + * .privacyBudgetType("privacyBudgetType") + * // the properties below are optional + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html) + */ +public open class CfnPrivacyBudgetTemplate( + cdkObject: software.amazon.awscdk.services.cleanrooms.CfnPrivacyBudgetTemplate, +) : CfnResource(cdkObject), IInspectable, ITaggableV2 { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnPrivacyBudgetTemplateProps, + ) : + this(software.amazon.awscdk.services.cleanrooms.CfnPrivacyBudgetTemplate(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnPrivacyBudgetTemplateProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnPrivacyBudgetTemplateProps.Builder.() -> Unit, + ) : this(scope, id, CfnPrivacyBudgetTemplateProps(props) + ) + + /** + * The ARN of the privacy budget template. + */ + public open fun attrArn(): String = unwrap(this).getAttrArn() + + /** + * The ARN of the collaboration that contains this privacy budget template. + */ + public open fun attrCollaborationArn(): String = unwrap(this).getAttrCollaborationArn() + + /** + * The unique ID of the collaboration that contains this privacy budget template. + */ + public open fun attrCollaborationIdentifier(): String = + unwrap(this).getAttrCollaborationIdentifier() + + /** + * The Amazon Resource Name (ARN) of the member who created the privacy budget template. + */ + public open fun attrMembershipArn(): String = unwrap(this).getAttrMembershipArn() + + /** + * A unique identifier for one of your memberships for a collaboration. + * + * The privacy budget template is created in the collaboration that this membership belongs to. + * Accepts a membership ID. + */ + public open fun attrPrivacyBudgetTemplateIdentifier(): String = + unwrap(this).getAttrPrivacyBudgetTemplateIdentifier() + + /** + * How often the privacy budget refreshes. + */ + public open fun autoRefresh(): String = unwrap(this).getAutoRefresh() + + /** + * How often the privacy budget refreshes. + */ + public open fun autoRefresh(`value`: String) { + unwrap(this).setAutoRefresh(`value`) + } + + /** + * Tag Manager which manages the tags for this resource. + */ + public override fun cdkTagManager(): TagManager = + unwrap(this).getCdkTagManager().let(TagManager::wrap) + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * The identifier for a membership resource. + */ + public open fun membershipIdentifier(): String = unwrap(this).getMembershipIdentifier() + + /** + * The identifier for a membership resource. + */ + public open fun membershipIdentifier(`value`: String) { + unwrap(this).setMembershipIdentifier(`value`) + } + + /** + * Specifies the epislon and noise parameters for the privacy budget template. + */ + public open fun parameters(): Any = unwrap(this).getParameters() + + /** + * Specifies the epislon and noise parameters for the privacy budget template. + */ + public open fun parameters(`value`: IResolvable) { + unwrap(this).setParameters(`value`.let(IResolvable::unwrap)) + } + + /** + * Specifies the epislon and noise parameters for the privacy budget template. + */ + public open fun parameters(`value`: ParametersProperty) { + unwrap(this).setParameters(`value`.let(ParametersProperty::unwrap)) + } + + /** + * Specifies the epislon and noise parameters for the privacy budget template. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("17f1a856e6a243445ca1547fc7b18d136ee5d18d64120adf860743610bba9970") + public open fun parameters(`value`: ParametersProperty.Builder.() -> Unit): Unit = + parameters(ParametersProperty(`value`)) + + /** + * Specifies the type of the privacy budget template. + */ + public open fun privacyBudgetType(): String = unwrap(this).getPrivacyBudgetType() + + /** + * Specifies the type of the privacy budget template. + */ + public open fun privacyBudgetType(`value`: String) { + unwrap(this).setPrivacyBudgetType(`value`) + } + + /** + * An arbitrary set of tags (key-value pairs) for this cleanrooms privacy budget template. + */ + public open fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * An arbitrary set of tags (key-value pairs) for this cleanrooms privacy budget template. + */ + public open fun tags(`value`: List) { + unwrap(this).setTags(`value`.map(CfnTag::unwrap)) + } + + /** + * An arbitrary set of tags (key-value pairs) for this cleanrooms privacy budget template. + */ + public open fun tags(vararg `value`: CfnTag): Unit = tags(`value`.toList()) + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.cleanrooms.CfnPrivacyBudgetTemplate]. + */ + @CdkDslMarker + public interface Builder { + /** + * How often the privacy budget refreshes. + * + * + * If you plan to regularly bring new data into the collaboration, use `CALENDAR_MONTH` to + * automatically get a new privacy budget for the collaboration every calendar month. Choosing this + * option allows arbitrary amounts of information to be revealed about rows of the data when + * repeatedly queried across refreshes. Avoid choosing this if the same rows will be repeatedly + * queried between privacy budget refreshes. + * + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html#cfn-cleanrooms-privacybudgettemplate-autorefresh) + * @param autoRefresh How often the privacy budget refreshes. + */ + public fun autoRefresh(autoRefresh: String) + + /** + * The identifier for a membership resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html#cfn-cleanrooms-privacybudgettemplate-membershipidentifier) + * @param membershipIdentifier The identifier for a membership resource. + */ + public fun membershipIdentifier(membershipIdentifier: String) + + /** + * Specifies the epislon and noise parameters for the privacy budget template. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html#cfn-cleanrooms-privacybudgettemplate-parameters) + * @param parameters Specifies the epislon and noise parameters for the privacy budget template. + * + */ + public fun parameters(parameters: IResolvable) + + /** + * Specifies the epislon and noise parameters for the privacy budget template. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html#cfn-cleanrooms-privacybudgettemplate-parameters) + * @param parameters Specifies the epislon and noise parameters for the privacy budget template. + * + */ + public fun parameters(parameters: ParametersProperty) + + /** + * Specifies the epislon and noise parameters for the privacy budget template. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html#cfn-cleanrooms-privacybudgettemplate-parameters) + * @param parameters Specifies the epislon and noise parameters for the privacy budget template. + * + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("af41cd37bd4b36eee0a864b98fd9c69bb6791dda6387fc56bd808ab4c95df1df") + public fun parameters(parameters: ParametersProperty.Builder.() -> Unit) + + /** + * Specifies the type of the privacy budget template. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html#cfn-cleanrooms-privacybudgettemplate-privacybudgettype) + * @param privacyBudgetType Specifies the type of the privacy budget template. + */ + public fun privacyBudgetType(privacyBudgetType: String) + + /** + * An arbitrary set of tags (key-value pairs) for this cleanrooms privacy budget template. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html#cfn-cleanrooms-privacybudgettemplate-tags) + * @param tags An arbitrary set of tags (key-value pairs) for this cleanrooms privacy budget + * template. + */ + public fun tags(tags: List) + + /** + * An arbitrary set of tags (key-value pairs) for this cleanrooms privacy budget template. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html#cfn-cleanrooms-privacybudgettemplate-tags) + * @param tags An arbitrary set of tags (key-value pairs) for this cleanrooms privacy budget + * template. + */ + public fun tags(vararg tags: CfnTag) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.cleanrooms.CfnPrivacyBudgetTemplate.Builder = + software.amazon.awscdk.services.cleanrooms.CfnPrivacyBudgetTemplate.Builder.create(scope, + id) + + /** + * How often the privacy budget refreshes. + * + * + * If you plan to regularly bring new data into the collaboration, use `CALENDAR_MONTH` to + * automatically get a new privacy budget for the collaboration every calendar month. Choosing this + * option allows arbitrary amounts of information to be revealed about rows of the data when + * repeatedly queried across refreshes. Avoid choosing this if the same rows will be repeatedly + * queried between privacy budget refreshes. + * + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html#cfn-cleanrooms-privacybudgettemplate-autorefresh) + * @param autoRefresh How often the privacy budget refreshes. + */ + override fun autoRefresh(autoRefresh: String) { + cdkBuilder.autoRefresh(autoRefresh) + } + + /** + * The identifier for a membership resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html#cfn-cleanrooms-privacybudgettemplate-membershipidentifier) + * @param membershipIdentifier The identifier for a membership resource. + */ + override fun membershipIdentifier(membershipIdentifier: String) { + cdkBuilder.membershipIdentifier(membershipIdentifier) + } + + /** + * Specifies the epislon and noise parameters for the privacy budget template. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html#cfn-cleanrooms-privacybudgettemplate-parameters) + * @param parameters Specifies the epislon and noise parameters for the privacy budget template. + * + */ + override fun parameters(parameters: IResolvable) { + cdkBuilder.parameters(parameters.let(IResolvable::unwrap)) + } + + /** + * Specifies the epislon and noise parameters for the privacy budget template. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html#cfn-cleanrooms-privacybudgettemplate-parameters) + * @param parameters Specifies the epislon and noise parameters for the privacy budget template. + * + */ + override fun parameters(parameters: ParametersProperty) { + cdkBuilder.parameters(parameters.let(ParametersProperty::unwrap)) + } + + /** + * Specifies the epislon and noise parameters for the privacy budget template. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html#cfn-cleanrooms-privacybudgettemplate-parameters) + * @param parameters Specifies the epislon and noise parameters for the privacy budget template. + * + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("af41cd37bd4b36eee0a864b98fd9c69bb6791dda6387fc56bd808ab4c95df1df") + override fun parameters(parameters: ParametersProperty.Builder.() -> Unit): Unit = + parameters(ParametersProperty(parameters)) + + /** + * Specifies the type of the privacy budget template. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html#cfn-cleanrooms-privacybudgettemplate-privacybudgettype) + * @param privacyBudgetType Specifies the type of the privacy budget template. + */ + override fun privacyBudgetType(privacyBudgetType: String) { + cdkBuilder.privacyBudgetType(privacyBudgetType) + } + + /** + * An arbitrary set of tags (key-value pairs) for this cleanrooms privacy budget template. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html#cfn-cleanrooms-privacybudgettemplate-tags) + * @param tags An arbitrary set of tags (key-value pairs) for this cleanrooms privacy budget + * template. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * An arbitrary set of tags (key-value pairs) for this cleanrooms privacy budget template. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html#cfn-cleanrooms-privacybudgettemplate-tags) + * @param tags An arbitrary set of tags (key-value pairs) for this cleanrooms privacy budget + * template. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + public fun build(): software.amazon.awscdk.services.cleanrooms.CfnPrivacyBudgetTemplate = + cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.cleanrooms.CfnPrivacyBudgetTemplate.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnPrivacyBudgetTemplate { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnPrivacyBudgetTemplate(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.cleanrooms.CfnPrivacyBudgetTemplate): + CfnPrivacyBudgetTemplate = CfnPrivacyBudgetTemplate(cdkObject) + + internal fun unwrap(wrapped: CfnPrivacyBudgetTemplate): + software.amazon.awscdk.services.cleanrooms.CfnPrivacyBudgetTemplate = wrapped.cdkObject as + software.amazon.awscdk.services.cleanrooms.CfnPrivacyBudgetTemplate + } + + /** + * Specifies the epislon and noise parameters for the privacy budget template. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.cleanrooms.*; + * ParametersProperty parametersProperty = ParametersProperty.builder() + * .epsilon(123) + * .usersNoisePerQuery(123) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanrooms-privacybudgettemplate-parameters.html) + */ + public interface ParametersProperty { + /** + * The epsilon value that you want to use. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanrooms-privacybudgettemplate-parameters.html#cfn-cleanrooms-privacybudgettemplate-parameters-epsilon) + */ + public fun epsilon(): Number + + /** + * Noise added per query is measured in terms of the number of users whose contributions you + * want to obscure. + * + * This value governs the rate at which the privacy budget is depleted. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanrooms-privacybudgettemplate-parameters.html#cfn-cleanrooms-privacybudgettemplate-parameters-usersnoiseperquery) + */ + public fun usersNoisePerQuery(): Number + + /** + * A builder for [ParametersProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param epsilon The epsilon value that you want to use. + */ + public fun epsilon(epsilon: Number) + + /** + * @param usersNoisePerQuery Noise added per query is measured in terms of the number of users + * whose contributions you want to obscure. + * This value governs the rate at which the privacy budget is depleted. + */ + public fun usersNoisePerQuery(usersNoisePerQuery: Number) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.cleanrooms.CfnPrivacyBudgetTemplate.ParametersProperty.Builder + = + software.amazon.awscdk.services.cleanrooms.CfnPrivacyBudgetTemplate.ParametersProperty.builder() + + /** + * @param epsilon The epsilon value that you want to use. + */ + override fun epsilon(epsilon: Number) { + cdkBuilder.epsilon(epsilon) + } + + /** + * @param usersNoisePerQuery Noise added per query is measured in terms of the number of users + * whose contributions you want to obscure. + * This value governs the rate at which the privacy budget is depleted. + */ + override fun usersNoisePerQuery(usersNoisePerQuery: Number) { + cdkBuilder.usersNoisePerQuery(usersNoisePerQuery) + } + + public fun build(): + software.amazon.awscdk.services.cleanrooms.CfnPrivacyBudgetTemplate.ParametersProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.cleanrooms.CfnPrivacyBudgetTemplate.ParametersProperty, + ) : CdkObject(cdkObject), ParametersProperty { + /** + * The epsilon value that you want to use. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanrooms-privacybudgettemplate-parameters.html#cfn-cleanrooms-privacybudgettemplate-parameters-epsilon) + */ + override fun epsilon(): Number = unwrap(this).getEpsilon() + + /** + * Noise added per query is measured in terms of the number of users whose contributions you + * want to obscure. + * + * This value governs the rate at which the privacy budget is depleted. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanrooms-privacybudgettemplate-parameters.html#cfn-cleanrooms-privacybudgettemplate-parameters-usersnoiseperquery) + */ + override fun usersNoisePerQuery(): Number = unwrap(this).getUsersNoisePerQuery() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): ParametersProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.cleanrooms.CfnPrivacyBudgetTemplate.ParametersProperty): + ParametersProperty = CdkObjectWrappers.wrap(cdkObject) as? ParametersProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: ParametersProperty): + software.amazon.awscdk.services.cleanrooms.CfnPrivacyBudgetTemplate.ParametersProperty = + (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.cleanrooms.CfnPrivacyBudgetTemplate.ParametersProperty + } + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cleanrooms/CfnPrivacyBudgetTemplateProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cleanrooms/CfnPrivacyBudgetTemplateProps.kt new file mode 100644 index 0000000000..1961182d55 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cleanrooms/CfnPrivacyBudgetTemplateProps.kt @@ -0,0 +1,287 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.cleanrooms + +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.jvm.JvmName + +/** + * Properties for defining a `CfnPrivacyBudgetTemplate`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.cleanrooms.*; + * CfnPrivacyBudgetTemplateProps cfnPrivacyBudgetTemplateProps = + * CfnPrivacyBudgetTemplateProps.builder() + * .autoRefresh("autoRefresh") + * .membershipIdentifier("membershipIdentifier") + * .parameters(ParametersProperty.builder() + * .epsilon(123) + * .usersNoisePerQuery(123) + * .build()) + * .privacyBudgetType("privacyBudgetType") + * // the properties below are optional + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html) + */ +public interface CfnPrivacyBudgetTemplateProps { + /** + * How often the privacy budget refreshes. + * + * + * If you plan to regularly bring new data into the collaboration, use `CALENDAR_MONTH` to + * automatically get a new privacy budget for the collaboration every calendar month. Choosing this + * option allows arbitrary amounts of information to be revealed about rows of the data when + * repeatedly queried across refreshes. Avoid choosing this if the same rows will be repeatedly + * queried between privacy budget refreshes. + * + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html#cfn-cleanrooms-privacybudgettemplate-autorefresh) + */ + public fun autoRefresh(): String + + /** + * The identifier for a membership resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html#cfn-cleanrooms-privacybudgettemplate-membershipidentifier) + */ + public fun membershipIdentifier(): String + + /** + * Specifies the epislon and noise parameters for the privacy budget template. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html#cfn-cleanrooms-privacybudgettemplate-parameters) + */ + public fun parameters(): Any + + /** + * Specifies the type of the privacy budget template. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html#cfn-cleanrooms-privacybudgettemplate-privacybudgettype) + */ + public fun privacyBudgetType(): String + + /** + * An arbitrary set of tags (key-value pairs) for this cleanrooms privacy budget template. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html#cfn-cleanrooms-privacybudgettemplate-tags) + */ + public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * A builder for [CfnPrivacyBudgetTemplateProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param autoRefresh How often the privacy budget refreshes. + * + * If you plan to regularly bring new data into the collaboration, use `CALENDAR_MONTH` to + * automatically get a new privacy budget for the collaboration every calendar month. Choosing this + * option allows arbitrary amounts of information to be revealed about rows of the data when + * repeatedly queried across refreshes. Avoid choosing this if the same rows will be repeatedly + * queried between privacy budget refreshes. + */ + public fun autoRefresh(autoRefresh: String) + + /** + * @param membershipIdentifier The identifier for a membership resource. + */ + public fun membershipIdentifier(membershipIdentifier: String) + + /** + * @param parameters Specifies the epislon and noise parameters for the privacy budget template. + * + */ + public fun parameters(parameters: IResolvable) + + /** + * @param parameters Specifies the epislon and noise parameters for the privacy budget template. + * + */ + public fun parameters(parameters: CfnPrivacyBudgetTemplate.ParametersProperty) + + /** + * @param parameters Specifies the epislon and noise parameters for the privacy budget template. + * + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("3939c37a7b4d7d65b82ddc35ec73b3269d743b71a636f074ebbb7054a1612847") + public + fun parameters(parameters: CfnPrivacyBudgetTemplate.ParametersProperty.Builder.() -> Unit) + + /** + * @param privacyBudgetType Specifies the type of the privacy budget template. + */ + public fun privacyBudgetType(privacyBudgetType: String) + + /** + * @param tags An arbitrary set of tags (key-value pairs) for this cleanrooms privacy budget + * template. + */ + public fun tags(tags: List) + + /** + * @param tags An arbitrary set of tags (key-value pairs) for this cleanrooms privacy budget + * template. + */ + public fun tags(vararg tags: CfnTag) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.cleanrooms.CfnPrivacyBudgetTemplateProps.Builder = + software.amazon.awscdk.services.cleanrooms.CfnPrivacyBudgetTemplateProps.builder() + + /** + * @param autoRefresh How often the privacy budget refreshes. + * + * If you plan to regularly bring new data into the collaboration, use `CALENDAR_MONTH` to + * automatically get a new privacy budget for the collaboration every calendar month. Choosing this + * option allows arbitrary amounts of information to be revealed about rows of the data when + * repeatedly queried across refreshes. Avoid choosing this if the same rows will be repeatedly + * queried between privacy budget refreshes. + */ + override fun autoRefresh(autoRefresh: String) { + cdkBuilder.autoRefresh(autoRefresh) + } + + /** + * @param membershipIdentifier The identifier for a membership resource. + */ + override fun membershipIdentifier(membershipIdentifier: String) { + cdkBuilder.membershipIdentifier(membershipIdentifier) + } + + /** + * @param parameters Specifies the epislon and noise parameters for the privacy budget template. + * + */ + override fun parameters(parameters: IResolvable) { + cdkBuilder.parameters(parameters.let(IResolvable::unwrap)) + } + + /** + * @param parameters Specifies the epislon and noise parameters for the privacy budget template. + * + */ + override fun parameters(parameters: CfnPrivacyBudgetTemplate.ParametersProperty) { + cdkBuilder.parameters(parameters.let(CfnPrivacyBudgetTemplate.ParametersProperty::unwrap)) + } + + /** + * @param parameters Specifies the epislon and noise parameters for the privacy budget template. + * + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("3939c37a7b4d7d65b82ddc35ec73b3269d743b71a636f074ebbb7054a1612847") + override + fun parameters(parameters: CfnPrivacyBudgetTemplate.ParametersProperty.Builder.() -> Unit): + Unit = parameters(CfnPrivacyBudgetTemplate.ParametersProperty(parameters)) + + /** + * @param privacyBudgetType Specifies the type of the privacy budget template. + */ + override fun privacyBudgetType(privacyBudgetType: String) { + cdkBuilder.privacyBudgetType(privacyBudgetType) + } + + /** + * @param tags An arbitrary set of tags (key-value pairs) for this cleanrooms privacy budget + * template. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * @param tags An arbitrary set of tags (key-value pairs) for this cleanrooms privacy budget + * template. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + public fun build(): software.amazon.awscdk.services.cleanrooms.CfnPrivacyBudgetTemplateProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.cleanrooms.CfnPrivacyBudgetTemplateProps, + ) : CdkObject(cdkObject), CfnPrivacyBudgetTemplateProps { + /** + * How often the privacy budget refreshes. + * + * + * If you plan to regularly bring new data into the collaboration, use `CALENDAR_MONTH` to + * automatically get a new privacy budget for the collaboration every calendar month. Choosing this + * option allows arbitrary amounts of information to be revealed about rows of the data when + * repeatedly queried across refreshes. Avoid choosing this if the same rows will be repeatedly + * queried between privacy budget refreshes. + * + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html#cfn-cleanrooms-privacybudgettemplate-autorefresh) + */ + override fun autoRefresh(): String = unwrap(this).getAutoRefresh() + + /** + * The identifier for a membership resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html#cfn-cleanrooms-privacybudgettemplate-membershipidentifier) + */ + override fun membershipIdentifier(): String = unwrap(this).getMembershipIdentifier() + + /** + * Specifies the epislon and noise parameters for the privacy budget template. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html#cfn-cleanrooms-privacybudgettemplate-parameters) + */ + override fun parameters(): Any = unwrap(this).getParameters() + + /** + * Specifies the type of the privacy budget template. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html#cfn-cleanrooms-privacybudgettemplate-privacybudgettype) + */ + override fun privacyBudgetType(): String = unwrap(this).getPrivacyBudgetType() + + /** + * An arbitrary set of tags (key-value pairs) for this cleanrooms privacy budget template. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-privacybudgettemplate.html#cfn-cleanrooms-privacybudgettemplate-tags) + */ + override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnPrivacyBudgetTemplateProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.cleanrooms.CfnPrivacyBudgetTemplateProps): + CfnPrivacyBudgetTemplateProps = CdkObjectWrappers.wrap(cdkObject) as? + CfnPrivacyBudgetTemplateProps ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnPrivacyBudgetTemplateProps): + software.amazon.awscdk.services.cleanrooms.CfnPrivacyBudgetTemplateProps = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.cleanrooms.CfnPrivacyBudgetTemplateProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cleanroomsml/CfnTrainingDataset.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cleanroomsml/CfnTrainingDataset.kt new file mode 100644 index 0000000000..69ba6c08c8 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cleanroomsml/CfnTrainingDataset.kt @@ -0,0 +1,1168 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.cleanroomsml + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.ITaggableV2 +import io.cloudshiftdev.awscdk.TagManager +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.jvm.JvmName +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * Defines the information necessary to create a training dataset. + * + * In Clean Rooms ML, the `TrainingDataset` is metadata that points to a Glue table, which is read + * only during `AudienceModel` creation. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.cleanroomsml.*; + * CfnTrainingDataset cfnTrainingDataset = CfnTrainingDataset.Builder.create(this, + * "MyCfnTrainingDataset") + * .name("name") + * .roleArn("roleArn") + * .trainingData(List.of(DatasetProperty.builder() + * .inputConfig(DatasetInputConfigProperty.builder() + * .dataSource(DataSourceProperty.builder() + * .glueDataSource(GlueDataSourceProperty.builder() + * .databaseName("databaseName") + * .tableName("tableName") + * // the properties below are optional + * .catalogId("catalogId") + * .build()) + * .build()) + * .schema(List.of(ColumnSchemaProperty.builder() + * .columnName("columnName") + * .columnTypes(List.of("columnTypes")) + * .build())) + * .build()) + * .type("type") + * .build())) + * // the properties below are optional + * .description("description") + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html) + */ +public open class CfnTrainingDataset( + cdkObject: software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset, +) : CfnResource(cdkObject), IInspectable, ITaggableV2 { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnTrainingDatasetProps, + ) : + this(software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnTrainingDatasetProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnTrainingDatasetProps.Builder.() -> Unit, + ) : this(scope, id, CfnTrainingDatasetProps(props) + ) + + /** + * The status of the training dataset. + */ + public open fun attrStatus(): String = unwrap(this).getAttrStatus() + + /** + * The Amazon Resource Name (ARN) of the training dataset. + */ + public open fun attrTrainingDatasetArn(): String = unwrap(this).getAttrTrainingDatasetArn() + + /** + * Tag Manager which manages the tags for this resource. + */ + public override fun cdkTagManager(): TagManager = + unwrap(this).getCdkTagManager().let(TagManager::wrap) + + /** + * The description of the training dataset. + */ + public open fun description(): String? = unwrap(this).getDescription() + + /** + * The description of the training dataset. + */ + public open fun description(`value`: String) { + unwrap(this).setDescription(`value`) + } + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * The name of the training dataset. + */ + public open fun name(): String = unwrap(this).getName() + + /** + * The name of the training dataset. + */ + public open fun name(`value`: String) { + unwrap(this).setName(`value`) + } + + /** + * The ARN of the IAM role that Clean Rooms ML can assume to read the data referred to in the + * `dataSource` field of each dataset. + */ + public open fun roleArn(): String = unwrap(this).getRoleArn() + + /** + * The ARN of the IAM role that Clean Rooms ML can assume to read the data referred to in the + * `dataSource` field of each dataset. + */ + public open fun roleArn(`value`: String) { + unwrap(this).setRoleArn(`value`) + } + + /** + * The optional metadata that you apply to the resource to help you categorize and organize them. + */ + public open fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * The optional metadata that you apply to the resource to help you categorize and organize them. + */ + public open fun tags(`value`: List) { + unwrap(this).setTags(`value`.map(CfnTag::unwrap)) + } + + /** + * The optional metadata that you apply to the resource to help you categorize and organize them. + */ + public open fun tags(vararg `value`: CfnTag): Unit = tags(`value`.toList()) + + /** + * An array of information that lists the Dataset objects, which specifies the dataset type and + * details on its location and schema. + */ + public open fun trainingData(): Any = unwrap(this).getTrainingData() + + /** + * An array of information that lists the Dataset objects, which specifies the dataset type and + * details on its location and schema. + */ + public open fun trainingData(`value`: IResolvable) { + unwrap(this).setTrainingData(`value`.let(IResolvable::unwrap)) + } + + /** + * An array of information that lists the Dataset objects, which specifies the dataset type and + * details on its location and schema. + */ + public open fun trainingData(`value`: List) { + unwrap(this).setTrainingData(`value`.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * An array of information that lists the Dataset objects, which specifies the dataset type and + * details on its location and schema. + */ + public open fun trainingData(vararg `value`: Any): Unit = trainingData(`value`.toList()) + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.cleanroomsml.CfnTrainingDataset]. + */ + @CdkDslMarker + public interface Builder { + /** + * The description of the training dataset. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html#cfn-cleanroomsml-trainingdataset-description) + * @param description The description of the training dataset. + */ + public fun description(description: String) + + /** + * The name of the training dataset. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html#cfn-cleanroomsml-trainingdataset-name) + * @param name The name of the training dataset. + */ + public fun name(name: String) + + /** + * The ARN of the IAM role that Clean Rooms ML can assume to read the data referred to in the + * `dataSource` field of each dataset. + * + * Passing a role across accounts is not allowed. If you pass a role that isn't in your account, + * you get an `AccessDeniedException` error. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html#cfn-cleanroomsml-trainingdataset-rolearn) + * @param roleArn The ARN of the IAM role that Clean Rooms ML can assume to read the data + * referred to in the `dataSource` field of each dataset. + */ + public fun roleArn(roleArn: String) + + /** + * The optional metadata that you apply to the resource to help you categorize and organize + * them. + * + * Each tag consists of a key and an optional value, both of which you define. + * + * The following basic restrictions apply to tags: + * + * * Maximum number of tags per resource - 50. + * * For each resource, each tag key must be unique, and each tag key can have only one value. + * * Maximum key length - 128 Unicode characters in UTF-8. + * * Maximum value length - 256 Unicode characters in UTF-8. + * * If your tagging schema is used across multiple services and resources, remember that other + * services may have restrictions on allowed characters. Generally allowed characters are: letters, + * numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html#cfn-cleanroomsml-trainingdataset-tags) + * @param tags The optional metadata that you apply to the resource to help you categorize and + * organize them. + */ + public fun tags(tags: List) + + /** + * The optional metadata that you apply to the resource to help you categorize and organize + * them. + * + * Each tag consists of a key and an optional value, both of which you define. + * + * The following basic restrictions apply to tags: + * + * * Maximum number of tags per resource - 50. + * * For each resource, each tag key must be unique, and each tag key can have only one value. + * * Maximum key length - 128 Unicode characters in UTF-8. + * * Maximum value length - 256 Unicode characters in UTF-8. + * * If your tagging schema is used across multiple services and resources, remember that other + * services may have restrictions on allowed characters. Generally allowed characters are: letters, + * numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html#cfn-cleanroomsml-trainingdataset-tags) + * @param tags The optional metadata that you apply to the resource to help you categorize and + * organize them. + */ + public fun tags(vararg tags: CfnTag) + + /** + * An array of information that lists the Dataset objects, which specifies the dataset type and + * details on its location and schema. + * + * You must provide a role that has read access to these tables. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html#cfn-cleanroomsml-trainingdataset-trainingdata) + * @param trainingData An array of information that lists the Dataset objects, which specifies + * the dataset type and details on its location and schema. + */ + public fun trainingData(trainingData: IResolvable) + + /** + * An array of information that lists the Dataset objects, which specifies the dataset type and + * details on its location and schema. + * + * You must provide a role that has read access to these tables. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html#cfn-cleanroomsml-trainingdataset-trainingdata) + * @param trainingData An array of information that lists the Dataset objects, which specifies + * the dataset type and details on its location and schema. + */ + public fun trainingData(trainingData: List) + + /** + * An array of information that lists the Dataset objects, which specifies the dataset type and + * details on its location and schema. + * + * You must provide a role that has read access to these tables. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html#cfn-cleanroomsml-trainingdataset-trainingdata) + * @param trainingData An array of information that lists the Dataset objects, which specifies + * the dataset type and details on its location and schema. + */ + public fun trainingData(vararg trainingData: Any) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.Builder + = software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.Builder.create(scope, id) + + /** + * The description of the training dataset. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html#cfn-cleanroomsml-trainingdataset-description) + * @param description The description of the training dataset. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * The name of the training dataset. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html#cfn-cleanroomsml-trainingdataset-name) + * @param name The name of the training dataset. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + /** + * The ARN of the IAM role that Clean Rooms ML can assume to read the data referred to in the + * `dataSource` field of each dataset. + * + * Passing a role across accounts is not allowed. If you pass a role that isn't in your account, + * you get an `AccessDeniedException` error. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html#cfn-cleanroomsml-trainingdataset-rolearn) + * @param roleArn The ARN of the IAM role that Clean Rooms ML can assume to read the data + * referred to in the `dataSource` field of each dataset. + */ + override fun roleArn(roleArn: String) { + cdkBuilder.roleArn(roleArn) + } + + /** + * The optional metadata that you apply to the resource to help you categorize and organize + * them. + * + * Each tag consists of a key and an optional value, both of which you define. + * + * The following basic restrictions apply to tags: + * + * * Maximum number of tags per resource - 50. + * * For each resource, each tag key must be unique, and each tag key can have only one value. + * * Maximum key length - 128 Unicode characters in UTF-8. + * * Maximum value length - 256 Unicode characters in UTF-8. + * * If your tagging schema is used across multiple services and resources, remember that other + * services may have restrictions on allowed characters. Generally allowed characters are: letters, + * numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html#cfn-cleanroomsml-trainingdataset-tags) + * @param tags The optional metadata that you apply to the resource to help you categorize and + * organize them. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * The optional metadata that you apply to the resource to help you categorize and organize + * them. + * + * Each tag consists of a key and an optional value, both of which you define. + * + * The following basic restrictions apply to tags: + * + * * Maximum number of tags per resource - 50. + * * For each resource, each tag key must be unique, and each tag key can have only one value. + * * Maximum key length - 128 Unicode characters in UTF-8. + * * Maximum value length - 256 Unicode characters in UTF-8. + * * If your tagging schema is used across multiple services and resources, remember that other + * services may have restrictions on allowed characters. Generally allowed characters are: letters, + * numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html#cfn-cleanroomsml-trainingdataset-tags) + * @param tags The optional metadata that you apply to the resource to help you categorize and + * organize them. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + /** + * An array of information that lists the Dataset objects, which specifies the dataset type and + * details on its location and schema. + * + * You must provide a role that has read access to these tables. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html#cfn-cleanroomsml-trainingdataset-trainingdata) + * @param trainingData An array of information that lists the Dataset objects, which specifies + * the dataset type and details on its location and schema. + */ + override fun trainingData(trainingData: IResolvable) { + cdkBuilder.trainingData(trainingData.let(IResolvable::unwrap)) + } + + /** + * An array of information that lists the Dataset objects, which specifies the dataset type and + * details on its location and schema. + * + * You must provide a role that has read access to these tables. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html#cfn-cleanroomsml-trainingdataset-trainingdata) + * @param trainingData An array of information that lists the Dataset objects, which specifies + * the dataset type and details on its location and schema. + */ + override fun trainingData(trainingData: List) { + cdkBuilder.trainingData(trainingData.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * An array of information that lists the Dataset objects, which specifies the dataset type and + * details on its location and schema. + * + * You must provide a role that has read access to these tables. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html#cfn-cleanroomsml-trainingdataset-trainingdata) + * @param trainingData An array of information that lists the Dataset objects, which specifies + * the dataset type and details on its location and schema. + */ + override fun trainingData(vararg trainingData: Any): Unit = trainingData(trainingData.toList()) + + public fun build(): software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset = + cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnTrainingDataset { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnTrainingDataset(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset): + CfnTrainingDataset = CfnTrainingDataset(cdkObject) + + internal fun unwrap(wrapped: CfnTrainingDataset): + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset = wrapped.cdkObject as + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset + } + + /** + * Metadata for a column. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.cleanroomsml.*; + * ColumnSchemaProperty columnSchemaProperty = ColumnSchemaProperty.builder() + * .columnName("columnName") + * .columnTypes(List.of("columnTypes")) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanroomsml-trainingdataset-columnschema.html) + */ + public interface ColumnSchemaProperty { + /** + * The name of a column. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanroomsml-trainingdataset-columnschema.html#cfn-cleanroomsml-trainingdataset-columnschema-columnname) + */ + public fun columnName(): String + + /** + * The data type of column. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanroomsml-trainingdataset-columnschema.html#cfn-cleanroomsml-trainingdataset-columnschema-columntypes) + */ + public fun columnTypes(): List + + /** + * A builder for [ColumnSchemaProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param columnName The name of a column. + */ + public fun columnName(columnName: String) + + /** + * @param columnTypes The data type of column. + */ + public fun columnTypes(columnTypes: List) + + /** + * @param columnTypes The data type of column. + */ + public fun columnTypes(vararg columnTypes: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.ColumnSchemaProperty.Builder + = + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.ColumnSchemaProperty.builder() + + /** + * @param columnName The name of a column. + */ + override fun columnName(columnName: String) { + cdkBuilder.columnName(columnName) + } + + /** + * @param columnTypes The data type of column. + */ + override fun columnTypes(columnTypes: List) { + cdkBuilder.columnTypes(columnTypes) + } + + /** + * @param columnTypes The data type of column. + */ + override fun columnTypes(vararg columnTypes: String): Unit = columnTypes(columnTypes.toList()) + + public fun build(): + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.ColumnSchemaProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.ColumnSchemaProperty, + ) : CdkObject(cdkObject), ColumnSchemaProperty { + /** + * The name of a column. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanroomsml-trainingdataset-columnschema.html#cfn-cleanroomsml-trainingdataset-columnschema-columnname) + */ + override fun columnName(): String = unwrap(this).getColumnName() + + /** + * The data type of column. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanroomsml-trainingdataset-columnschema.html#cfn-cleanroomsml-trainingdataset-columnschema-columntypes) + */ + override fun columnTypes(): List = unwrap(this).getColumnTypes() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): ColumnSchemaProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.ColumnSchemaProperty): + ColumnSchemaProperty = CdkObjectWrappers.wrap(cdkObject) as? ColumnSchemaProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: ColumnSchemaProperty): + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.ColumnSchemaProperty = + (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.ColumnSchemaProperty + } + } + + /** + * Defines information about the Glue data source that contains the training data. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.cleanroomsml.*; + * DataSourceProperty dataSourceProperty = DataSourceProperty.builder() + * .glueDataSource(GlueDataSourceProperty.builder() + * .databaseName("databaseName") + * .tableName("tableName") + * // the properties below are optional + * .catalogId("catalogId") + * .build()) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanroomsml-trainingdataset-datasource.html) + */ + public interface DataSourceProperty { + /** + * A GlueDataSource object that defines the catalog ID, database name, and table name for the + * training data. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanroomsml-trainingdataset-datasource.html#cfn-cleanroomsml-trainingdataset-datasource-gluedatasource) + */ + public fun glueDataSource(): Any + + /** + * A builder for [DataSourceProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param glueDataSource A GlueDataSource object that defines the catalog ID, database name, + * and table name for the training data. + */ + public fun glueDataSource(glueDataSource: IResolvable) + + /** + * @param glueDataSource A GlueDataSource object that defines the catalog ID, database name, + * and table name for the training data. + */ + public fun glueDataSource(glueDataSource: GlueDataSourceProperty) + + /** + * @param glueDataSource A GlueDataSource object that defines the catalog ID, database name, + * and table name for the training data. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("ddb2be06c262f0b4baa0748ea9a651d39ef4b204794901ed301ad0830cc44542") + public fun glueDataSource(glueDataSource: GlueDataSourceProperty.Builder.() -> Unit) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.DataSourceProperty.Builder + = + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.DataSourceProperty.builder() + + /** + * @param glueDataSource A GlueDataSource object that defines the catalog ID, database name, + * and table name for the training data. + */ + override fun glueDataSource(glueDataSource: IResolvable) { + cdkBuilder.glueDataSource(glueDataSource.let(IResolvable::unwrap)) + } + + /** + * @param glueDataSource A GlueDataSource object that defines the catalog ID, database name, + * and table name for the training data. + */ + override fun glueDataSource(glueDataSource: GlueDataSourceProperty) { + cdkBuilder.glueDataSource(glueDataSource.let(GlueDataSourceProperty::unwrap)) + } + + /** + * @param glueDataSource A GlueDataSource object that defines the catalog ID, database name, + * and table name for the training data. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("ddb2be06c262f0b4baa0748ea9a651d39ef4b204794901ed301ad0830cc44542") + override fun glueDataSource(glueDataSource: GlueDataSourceProperty.Builder.() -> Unit): Unit = + glueDataSource(GlueDataSourceProperty(glueDataSource)) + + public fun build(): + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.DataSourceProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.DataSourceProperty, + ) : CdkObject(cdkObject), DataSourceProperty { + /** + * A GlueDataSource object that defines the catalog ID, database name, and table name for the + * training data. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanroomsml-trainingdataset-datasource.html#cfn-cleanroomsml-trainingdataset-datasource-gluedatasource) + */ + override fun glueDataSource(): Any = unwrap(this).getGlueDataSource() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): DataSourceProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.DataSourceProperty): + DataSourceProperty = CdkObjectWrappers.wrap(cdkObject) as? DataSourceProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: DataSourceProperty): + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.DataSourceProperty = + (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.DataSourceProperty + } + } + + /** + * Defines the Glue data source and schema mapping information. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.cleanroomsml.*; + * DatasetInputConfigProperty datasetInputConfigProperty = DatasetInputConfigProperty.builder() + * .dataSource(DataSourceProperty.builder() + * .glueDataSource(GlueDataSourceProperty.builder() + * .databaseName("databaseName") + * .tableName("tableName") + * // the properties below are optional + * .catalogId("catalogId") + * .build()) + * .build()) + * .schema(List.of(ColumnSchemaProperty.builder() + * .columnName("columnName") + * .columnTypes(List.of("columnTypes")) + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanroomsml-trainingdataset-datasetinputconfig.html) + */ + public interface DatasetInputConfigProperty { + /** + * A DataSource object that specifies the Glue data source for the training data. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanroomsml-trainingdataset-datasetinputconfig.html#cfn-cleanroomsml-trainingdataset-datasetinputconfig-datasource) + */ + public fun dataSource(): Any + + /** + * The schema information for the training data. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanroomsml-trainingdataset-datasetinputconfig.html#cfn-cleanroomsml-trainingdataset-datasetinputconfig-schema) + */ + public fun schema(): Any + + /** + * A builder for [DatasetInputConfigProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param dataSource A DataSource object that specifies the Glue data source for the training + * data. + */ + public fun dataSource(dataSource: IResolvable) + + /** + * @param dataSource A DataSource object that specifies the Glue data source for the training + * data. + */ + public fun dataSource(dataSource: DataSourceProperty) + + /** + * @param dataSource A DataSource object that specifies the Glue data source for the training + * data. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("d17fc4efee505daf86a3547b601eecc12389762a954b2d518ada94514659fce8") + public fun dataSource(dataSource: DataSourceProperty.Builder.() -> Unit) + + /** + * @param schema The schema information for the training data. + */ + public fun schema(schema: IResolvable) + + /** + * @param schema The schema information for the training data. + */ + public fun schema(schema: List) + + /** + * @param schema The schema information for the training data. + */ + public fun schema(vararg schema: Any) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.DatasetInputConfigProperty.Builder + = + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.DatasetInputConfigProperty.builder() + + /** + * @param dataSource A DataSource object that specifies the Glue data source for the training + * data. + */ + override fun dataSource(dataSource: IResolvable) { + cdkBuilder.dataSource(dataSource.let(IResolvable::unwrap)) + } + + /** + * @param dataSource A DataSource object that specifies the Glue data source for the training + * data. + */ + override fun dataSource(dataSource: DataSourceProperty) { + cdkBuilder.dataSource(dataSource.let(DataSourceProperty::unwrap)) + } + + /** + * @param dataSource A DataSource object that specifies the Glue data source for the training + * data. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("d17fc4efee505daf86a3547b601eecc12389762a954b2d518ada94514659fce8") + override fun dataSource(dataSource: DataSourceProperty.Builder.() -> Unit): Unit = + dataSource(DataSourceProperty(dataSource)) + + /** + * @param schema The schema information for the training data. + */ + override fun schema(schema: IResolvable) { + cdkBuilder.schema(schema.let(IResolvable::unwrap)) + } + + /** + * @param schema The schema information for the training data. + */ + override fun schema(schema: List) { + cdkBuilder.schema(schema.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param schema The schema information for the training data. + */ + override fun schema(vararg schema: Any): Unit = schema(schema.toList()) + + public fun build(): + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.DatasetInputConfigProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.DatasetInputConfigProperty, + ) : CdkObject(cdkObject), DatasetInputConfigProperty { + /** + * A DataSource object that specifies the Glue data source for the training data. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanroomsml-trainingdataset-datasetinputconfig.html#cfn-cleanroomsml-trainingdataset-datasetinputconfig-datasource) + */ + override fun dataSource(): Any = unwrap(this).getDataSource() + + /** + * The schema information for the training data. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanroomsml-trainingdataset-datasetinputconfig.html#cfn-cleanroomsml-trainingdataset-datasetinputconfig-schema) + */ + override fun schema(): Any = unwrap(this).getSchema() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): DatasetInputConfigProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.DatasetInputConfigProperty): + DatasetInputConfigProperty = CdkObjectWrappers.wrap(cdkObject) as? + DatasetInputConfigProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: DatasetInputConfigProperty): + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.DatasetInputConfigProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.DatasetInputConfigProperty + } + } + + /** + * Defines where the training dataset is located, what type of data it contains, and how to access + * the data. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.cleanroomsml.*; + * DatasetProperty datasetProperty = DatasetProperty.builder() + * .inputConfig(DatasetInputConfigProperty.builder() + * .dataSource(DataSourceProperty.builder() + * .glueDataSource(GlueDataSourceProperty.builder() + * .databaseName("databaseName") + * .tableName("tableName") + * // the properties below are optional + * .catalogId("catalogId") + * .build()) + * .build()) + * .schema(List.of(ColumnSchemaProperty.builder() + * .columnName("columnName") + * .columnTypes(List.of("columnTypes")) + * .build())) + * .build()) + * .type("type") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanroomsml-trainingdataset-dataset.html) + */ + public interface DatasetProperty { + /** + * A DatasetInputConfig object that defines the data source and schema mapping. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanroomsml-trainingdataset-dataset.html#cfn-cleanroomsml-trainingdataset-dataset-inputconfig) + */ + public fun inputConfig(): Any + + /** + * What type of information is found in the dataset. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanroomsml-trainingdataset-dataset.html#cfn-cleanroomsml-trainingdataset-dataset-type) + */ + public fun type(): String + + /** + * A builder for [DatasetProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param inputConfig A DatasetInputConfig object that defines the data source and schema + * mapping. + */ + public fun inputConfig(inputConfig: IResolvable) + + /** + * @param inputConfig A DatasetInputConfig object that defines the data source and schema + * mapping. + */ + public fun inputConfig(inputConfig: DatasetInputConfigProperty) + + /** + * @param inputConfig A DatasetInputConfig object that defines the data source and schema + * mapping. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("75dd0a95d341b66f02f97c49f5b3941e87d7f2afc1d94bb3c15d6f14e945f1fd") + public fun inputConfig(inputConfig: DatasetInputConfigProperty.Builder.() -> Unit) + + /** + * @param type What type of information is found in the dataset. + */ + public fun type(type: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.DatasetProperty.Builder = + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.DatasetProperty.builder() + + /** + * @param inputConfig A DatasetInputConfig object that defines the data source and schema + * mapping. + */ + override fun inputConfig(inputConfig: IResolvable) { + cdkBuilder.inputConfig(inputConfig.let(IResolvable::unwrap)) + } + + /** + * @param inputConfig A DatasetInputConfig object that defines the data source and schema + * mapping. + */ + override fun inputConfig(inputConfig: DatasetInputConfigProperty) { + cdkBuilder.inputConfig(inputConfig.let(DatasetInputConfigProperty::unwrap)) + } + + /** + * @param inputConfig A DatasetInputConfig object that defines the data source and schema + * mapping. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("75dd0a95d341b66f02f97c49f5b3941e87d7f2afc1d94bb3c15d6f14e945f1fd") + override fun inputConfig(inputConfig: DatasetInputConfigProperty.Builder.() -> Unit): Unit = + inputConfig(DatasetInputConfigProperty(inputConfig)) + + /** + * @param type What type of information is found in the dataset. + */ + override fun type(type: String) { + cdkBuilder.type(type) + } + + public fun build(): + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.DatasetProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.DatasetProperty, + ) : CdkObject(cdkObject), DatasetProperty { + /** + * A DatasetInputConfig object that defines the data source and schema mapping. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanroomsml-trainingdataset-dataset.html#cfn-cleanroomsml-trainingdataset-dataset-inputconfig) + */ + override fun inputConfig(): Any = unwrap(this).getInputConfig() + + /** + * What type of information is found in the dataset. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanroomsml-trainingdataset-dataset.html#cfn-cleanroomsml-trainingdataset-dataset-type) + */ + override fun type(): String = unwrap(this).getType() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): DatasetProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.DatasetProperty): + DatasetProperty = CdkObjectWrappers.wrap(cdkObject) as? DatasetProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: DatasetProperty): + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.DatasetProperty = (wrapped + as CdkObject).cdkObject as + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.DatasetProperty + } + } + + /** + * Defines the Glue data source that contains the training data. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.cleanroomsml.*; + * GlueDataSourceProperty glueDataSourceProperty = GlueDataSourceProperty.builder() + * .databaseName("databaseName") + * .tableName("tableName") + * // the properties below are optional + * .catalogId("catalogId") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanroomsml-trainingdataset-gluedatasource.html) + */ + public interface GlueDataSourceProperty { + /** + * The Glue catalog that contains the training data. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanroomsml-trainingdataset-gluedatasource.html#cfn-cleanroomsml-trainingdataset-gluedatasource-catalogid) + */ + public fun catalogId(): String? = unwrap(this).getCatalogId() + + /** + * The Glue database that contains the training data. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanroomsml-trainingdataset-gluedatasource.html#cfn-cleanroomsml-trainingdataset-gluedatasource-databasename) + */ + public fun databaseName(): String + + /** + * The Glue table that contains the training data. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanroomsml-trainingdataset-gluedatasource.html#cfn-cleanroomsml-trainingdataset-gluedatasource-tablename) + */ + public fun tableName(): String + + /** + * A builder for [GlueDataSourceProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param catalogId The Glue catalog that contains the training data. + */ + public fun catalogId(catalogId: String) + + /** + * @param databaseName The Glue database that contains the training data. + */ + public fun databaseName(databaseName: String) + + /** + * @param tableName The Glue table that contains the training data. + */ + public fun tableName(tableName: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.GlueDataSourceProperty.Builder + = + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.GlueDataSourceProperty.builder() + + /** + * @param catalogId The Glue catalog that contains the training data. + */ + override fun catalogId(catalogId: String) { + cdkBuilder.catalogId(catalogId) + } + + /** + * @param databaseName The Glue database that contains the training data. + */ + override fun databaseName(databaseName: String) { + cdkBuilder.databaseName(databaseName) + } + + /** + * @param tableName The Glue table that contains the training data. + */ + override fun tableName(tableName: String) { + cdkBuilder.tableName(tableName) + } + + public fun build(): + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.GlueDataSourceProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.GlueDataSourceProperty, + ) : CdkObject(cdkObject), GlueDataSourceProperty { + /** + * The Glue catalog that contains the training data. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanroomsml-trainingdataset-gluedatasource.html#cfn-cleanroomsml-trainingdataset-gluedatasource-catalogid) + */ + override fun catalogId(): String? = unwrap(this).getCatalogId() + + /** + * The Glue database that contains the training data. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanroomsml-trainingdataset-gluedatasource.html#cfn-cleanroomsml-trainingdataset-gluedatasource-databasename) + */ + override fun databaseName(): String = unwrap(this).getDatabaseName() + + /** + * The Glue table that contains the training data. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanroomsml-trainingdataset-gluedatasource.html#cfn-cleanroomsml-trainingdataset-gluedatasource-tablename) + */ + override fun tableName(): String = unwrap(this).getTableName() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): GlueDataSourceProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.GlueDataSourceProperty): + GlueDataSourceProperty = CdkObjectWrappers.wrap(cdkObject) as? GlueDataSourceProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: GlueDataSourceProperty): + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.GlueDataSourceProperty = + (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDataset.GlueDataSourceProperty + } + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cleanroomsml/CfnTrainingDatasetProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cleanroomsml/CfnTrainingDatasetProps.kt new file mode 100644 index 0000000000..3365745875 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cleanroomsml/CfnTrainingDatasetProps.kt @@ -0,0 +1,357 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.cleanroomsml + +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.List + +/** + * Properties for defining a `CfnTrainingDataset`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.cleanroomsml.*; + * CfnTrainingDatasetProps cfnTrainingDatasetProps = CfnTrainingDatasetProps.builder() + * .name("name") + * .roleArn("roleArn") + * .trainingData(List.of(DatasetProperty.builder() + * .inputConfig(DatasetInputConfigProperty.builder() + * .dataSource(DataSourceProperty.builder() + * .glueDataSource(GlueDataSourceProperty.builder() + * .databaseName("databaseName") + * .tableName("tableName") + * // the properties below are optional + * .catalogId("catalogId") + * .build()) + * .build()) + * .schema(List.of(ColumnSchemaProperty.builder() + * .columnName("columnName") + * .columnTypes(List.of("columnTypes")) + * .build())) + * .build()) + * .type("type") + * .build())) + * // the properties below are optional + * .description("description") + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html) + */ +public interface CfnTrainingDatasetProps { + /** + * The description of the training dataset. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html#cfn-cleanroomsml-trainingdataset-description) + */ + public fun description(): String? = unwrap(this).getDescription() + + /** + * The name of the training dataset. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html#cfn-cleanroomsml-trainingdataset-name) + */ + public fun name(): String + + /** + * The ARN of the IAM role that Clean Rooms ML can assume to read the data referred to in the + * `dataSource` field of each dataset. + * + * Passing a role across accounts is not allowed. If you pass a role that isn't in your account, + * you get an `AccessDeniedException` error. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html#cfn-cleanroomsml-trainingdataset-rolearn) + */ + public fun roleArn(): String + + /** + * The optional metadata that you apply to the resource to help you categorize and organize them. + * + * Each tag consists of a key and an optional value, both of which you define. + * + * The following basic restrictions apply to tags: + * + * * Maximum number of tags per resource - 50. + * * For each resource, each tag key must be unique, and each tag key can have only one value. + * * Maximum key length - 128 Unicode characters in UTF-8. + * * Maximum value length - 256 Unicode characters in UTF-8. + * * If your tagging schema is used across multiple services and resources, remember that other + * services may have restrictions on allowed characters. Generally allowed characters are: letters, + * numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html#cfn-cleanroomsml-trainingdataset-tags) + */ + public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * An array of information that lists the Dataset objects, which specifies the dataset type and + * details on its location and schema. + * + * You must provide a role that has read access to these tables. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html#cfn-cleanroomsml-trainingdataset-trainingdata) + */ + public fun trainingData(): Any + + /** + * A builder for [CfnTrainingDatasetProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param description The description of the training dataset. + */ + public fun description(description: String) + + /** + * @param name The name of the training dataset. + */ + public fun name(name: String) + + /** + * @param roleArn The ARN of the IAM role that Clean Rooms ML can assume to read the data + * referred to in the `dataSource` field of each dataset. + * Passing a role across accounts is not allowed. If you pass a role that isn't in your account, + * you get an `AccessDeniedException` error. + */ + public fun roleArn(roleArn: String) + + /** + * @param tags The optional metadata that you apply to the resource to help you categorize and + * organize them. + * Each tag consists of a key and an optional value, both of which you define. + * + * The following basic restrictions apply to tags: + * + * * Maximum number of tags per resource - 50. + * * For each resource, each tag key must be unique, and each tag key can have only one value. + * * Maximum key length - 128 Unicode characters in UTF-8. + * * Maximum value length - 256 Unicode characters in UTF-8. + * * If your tagging schema is used across multiple services and resources, remember that other + * services may have restrictions on allowed characters. Generally allowed characters are: letters, + * numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / + */ + public fun tags(tags: List) + + /** + * @param tags The optional metadata that you apply to the resource to help you categorize and + * organize them. + * Each tag consists of a key and an optional value, both of which you define. + * + * The following basic restrictions apply to tags: + * + * * Maximum number of tags per resource - 50. + * * For each resource, each tag key must be unique, and each tag key can have only one value. + * * Maximum key length - 128 Unicode characters in UTF-8. + * * Maximum value length - 256 Unicode characters in UTF-8. + * * If your tagging schema is used across multiple services and resources, remember that other + * services may have restrictions on allowed characters. Generally allowed characters are: letters, + * numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / + */ + public fun tags(vararg tags: CfnTag) + + /** + * @param trainingData An array of information that lists the Dataset objects, which specifies + * the dataset type and details on its location and schema. + * You must provide a role that has read access to these tables. + */ + public fun trainingData(trainingData: IResolvable) + + /** + * @param trainingData An array of information that lists the Dataset objects, which specifies + * the dataset type and details on its location and schema. + * You must provide a role that has read access to these tables. + */ + public fun trainingData(trainingData: List) + + /** + * @param trainingData An array of information that lists the Dataset objects, which specifies + * the dataset type and details on its location and schema. + * You must provide a role that has read access to these tables. + */ + public fun trainingData(vararg trainingData: Any) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDatasetProps.Builder = + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDatasetProps.builder() + + /** + * @param description The description of the training dataset. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * @param name The name of the training dataset. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + /** + * @param roleArn The ARN of the IAM role that Clean Rooms ML can assume to read the data + * referred to in the `dataSource` field of each dataset. + * Passing a role across accounts is not allowed. If you pass a role that isn't in your account, + * you get an `AccessDeniedException` error. + */ + override fun roleArn(roleArn: String) { + cdkBuilder.roleArn(roleArn) + } + + /** + * @param tags The optional metadata that you apply to the resource to help you categorize and + * organize them. + * Each tag consists of a key and an optional value, both of which you define. + * + * The following basic restrictions apply to tags: + * + * * Maximum number of tags per resource - 50. + * * For each resource, each tag key must be unique, and each tag key can have only one value. + * * Maximum key length - 128 Unicode characters in UTF-8. + * * Maximum value length - 256 Unicode characters in UTF-8. + * * If your tagging schema is used across multiple services and resources, remember that other + * services may have restrictions on allowed characters. Generally allowed characters are: letters, + * numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * @param tags The optional metadata that you apply to the resource to help you categorize and + * organize them. + * Each tag consists of a key and an optional value, both of which you define. + * + * The following basic restrictions apply to tags: + * + * * Maximum number of tags per resource - 50. + * * For each resource, each tag key must be unique, and each tag key can have only one value. + * * Maximum key length - 128 Unicode characters in UTF-8. + * * Maximum value length - 256 Unicode characters in UTF-8. + * * If your tagging schema is used across multiple services and resources, remember that other + * services may have restrictions on allowed characters. Generally allowed characters are: letters, + * numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + /** + * @param trainingData An array of information that lists the Dataset objects, which specifies + * the dataset type and details on its location and schema. + * You must provide a role that has read access to these tables. + */ + override fun trainingData(trainingData: IResolvable) { + cdkBuilder.trainingData(trainingData.let(IResolvable::unwrap)) + } + + /** + * @param trainingData An array of information that lists the Dataset objects, which specifies + * the dataset type and details on its location and schema. + * You must provide a role that has read access to these tables. + */ + override fun trainingData(trainingData: List) { + cdkBuilder.trainingData(trainingData.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param trainingData An array of information that lists the Dataset objects, which specifies + * the dataset type and details on its location and schema. + * You must provide a role that has read access to these tables. + */ + override fun trainingData(vararg trainingData: Any): Unit = trainingData(trainingData.toList()) + + public fun build(): software.amazon.awscdk.services.cleanroomsml.CfnTrainingDatasetProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.cleanroomsml.CfnTrainingDatasetProps, + ) : CdkObject(cdkObject), CfnTrainingDatasetProps { + /** + * The description of the training dataset. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html#cfn-cleanroomsml-trainingdataset-description) + */ + override fun description(): String? = unwrap(this).getDescription() + + /** + * The name of the training dataset. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html#cfn-cleanroomsml-trainingdataset-name) + */ + override fun name(): String = unwrap(this).getName() + + /** + * The ARN of the IAM role that Clean Rooms ML can assume to read the data referred to in the + * `dataSource` field of each dataset. + * + * Passing a role across accounts is not allowed. If you pass a role that isn't in your account, + * you get an `AccessDeniedException` error. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html#cfn-cleanroomsml-trainingdataset-rolearn) + */ + override fun roleArn(): String = unwrap(this).getRoleArn() + + /** + * The optional metadata that you apply to the resource to help you categorize and organize + * them. + * + * Each tag consists of a key and an optional value, both of which you define. + * + * The following basic restrictions apply to tags: + * + * * Maximum number of tags per resource - 50. + * * For each resource, each tag key must be unique, and each tag key can have only one value. + * * Maximum key length - 128 Unicode characters in UTF-8. + * * Maximum value length - 256 Unicode characters in UTF-8. + * * If your tagging schema is used across multiple services and resources, remember that other + * services may have restrictions on allowed characters. Generally allowed characters are: letters, + * numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html#cfn-cleanroomsml-trainingdataset-tags) + */ + override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * An array of information that lists the Dataset objects, which specifies the dataset type and + * details on its location and schema. + * + * You must provide a role that has read access to these tables. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanroomsml-trainingdataset.html#cfn-cleanroomsml-trainingdataset-trainingdata) + */ + override fun trainingData(): Any = unwrap(this).getTrainingData() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnTrainingDatasetProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.cleanroomsml.CfnTrainingDatasetProps): + CfnTrainingDatasetProps = CdkObjectWrappers.wrap(cdkObject) as? CfnTrainingDatasetProps ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnTrainingDatasetProps): + software.amazon.awscdk.services.cleanroomsml.CfnTrainingDatasetProps = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.cleanroomsml.CfnTrainingDatasetProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudformation/CfnTypeActivation.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudformation/CfnTypeActivation.kt index dcd4b94ed7..c018387d0f 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudformation/CfnTypeActivation.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudformation/CfnTypeActivation.kt @@ -28,7 +28,7 @@ import software.constructs.Construct as SoftwareConstructsConstruct * [SetTypeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html) * to specify configuration properties for the extension. For more information, see [Configuring * extensions at the account - * level](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration) + * level](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-private.html#registry-set-configuration) * in the *CloudFormation User Guide* . * * Example: diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/AssetImportSource.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/AssetImportSource.kt index d527e3857d..c48ddf2458 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/AssetImportSource.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/AssetImportSource.kt @@ -29,7 +29,7 @@ import kotlin.jvm.JvmName * DockerImage dockerImage; * IGrantable grantable; * ILocalBundling localBundling; - * AssetImportSource assetImportSource = AssetImportSource.Builder.create("path") + * ImportSource assetImportSource = AssetImportSource.fromAsset("path", AssetOptions.builder() * .assetHash("assetHash") * .assetHashType(AssetHashType.SOURCE) * .bundling(BundlingOptions.builder() @@ -60,7 +60,7 @@ import kotlin.jvm.JvmName * .followSymlinks(SymlinkFollowMode.NEVER) * .ignoreMode(IgnoreMode.GLOB) * .readers(List.of(grantable)) - * .build(); + * .build()); * ``` */ public open class AssetImportSource( diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/CfnContinuousDeploymentPolicy.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/CfnContinuousDeploymentPolicy.kt index 39459e3346..fcc45014e8 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/CfnContinuousDeploymentPolicy.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/CfnContinuousDeploymentPolicy.kt @@ -1078,7 +1078,8 @@ public open class CfnContinuousDeploymentPolicy( /** * The percentage of traffic to send to a staging distribution, expressed as a decimal number - * between 0 and .15. + * between 0 and 0.15. For example, a value of 0.10 means 10% of traffic is sent to the staging + * distribution. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-singleweightconfig.html#cfn-cloudfront-continuousdeploymentpolicy-singleweightconfig-weight) */ @@ -1121,7 +1122,8 @@ public open class CfnContinuousDeploymentPolicy( /** * @param weight The percentage of traffic to send to a staging distribution, expressed as a - * decimal number between 0 and .15. + * decimal number between 0 and 0.15. For example, a value of 0.10 means 10% of traffic is sent + * to the staging distribution. */ public fun weight(weight: Number) } @@ -1170,7 +1172,8 @@ public open class CfnContinuousDeploymentPolicy( /** * @param weight The percentage of traffic to send to a staging distribution, expressed as a - * decimal number between 0 and .15. + * decimal number between 0 and 0.15. For example, a value of 0.10 means 10% of traffic is sent + * to the staging distribution. */ override fun weight(weight: Number) { cdkBuilder.weight(weight) @@ -1198,7 +1201,8 @@ public open class CfnContinuousDeploymentPolicy( /** * The percentage of traffic to send to a staging distribution, expressed as a decimal number - * between 0 and .15. + * between 0 and 0.15. For example, a value of 0.10 means 10% of traffic is sent to the staging + * distribution. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-singleweightconfig.html#cfn-cloudfront-continuousdeploymentpolicy-singleweightconfig-weight) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/CloudFrontWebDistributionProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/CloudFrontWebDistributionProps.kt index 5f3173fa9f..f92d62625f 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/CloudFrontWebDistributionProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/CloudFrontWebDistributionProps.kt @@ -147,7 +147,7 @@ public interface CloudFrontWebDistributionProps { * * [Documentation](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html#API_CreateDistribution_RequestParameters.) */ - public fun webAclId(): String? = unwrap(this).getWebACLId() + public fun webACLId(): String? = unwrap(this).getWebACLId() /** * A builder for [CloudFrontWebDistributionProps] @@ -525,7 +525,7 @@ public interface CloudFrontWebDistributionProps { * * [Documentation](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html#API_CreateDistribution_RequestParameters.) */ - override fun webAclId(): String? = unwrap(this).getWebACLId() + override fun webACLId(): String? = unwrap(this).getWebACLId() } public companion object { diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/CustomOriginConfig.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/CustomOriginConfig.kt index 2bc87c4e17..8e836fbd1f 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/CustomOriginConfig.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/CustomOriginConfig.kt @@ -42,7 +42,7 @@ public interface CustomOriginConfig { * * Default: OriginSslPolicy.TLS_V1_2 */ - public fun allowedOriginSslVersions(): List = + public fun allowedOriginSSLVersions(): List = unwrap(this).getAllowedOriginSSLVersions()?.map(OriginSslPolicy::wrap) ?: emptyList() /** @@ -271,7 +271,7 @@ public interface CustomOriginConfig { * * Default: OriginSslPolicy.TLS_V1_2 */ - override fun allowedOriginSslVersions(): List = + override fun allowedOriginSSLVersions(): List = unwrap(this).getAllowedOriginSSLVersions()?.map(OriginSslPolicy::wrap) ?: emptyList() /** diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/ImportSource.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/ImportSource.kt index ff6763221c..91c9bdf9f2 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/ImportSource.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/ImportSource.kt @@ -16,10 +16,19 @@ import kotlin.jvm.JvmName * Example: * * ``` - * KeyValueStore store = KeyValueStore.Builder.create(this, "KeyValueStore") - * .keyValueStoreName("KeyValueStore") + * KeyValueStore storeAsset = KeyValueStore.Builder.create(this, "KeyValueStoreAsset") + * .keyValueStoreName("KeyValueStoreAsset") * .source(ImportSource.fromAsset("path-to-data.json")) * .build(); + * KeyValueStore storeInline = KeyValueStore.Builder.create(this, "KeyValueStoreInline") + * .keyValueStoreName("KeyValueStoreInline") + * .source(ImportSource.fromInline(JSON.stringify(Map.of( + * "data", List.of(Map.of( + * "key", "key1", + * "value", "value1"), Map.of( + * "key", "key2", + * "value", "value2")))))) + * .build(); * ``` */ public abstract class ImportSource( @@ -46,6 +55,9 @@ public abstract class ImportSource( software.amazon.awscdk.services.cloudfront.ImportSource.fromBucket(bucket.let(IBucket::unwrap), key).let(ImportSource::wrap) + public fun fromInline(`data`: String): ImportSource = + software.amazon.awscdk.services.cloudfront.ImportSource.fromInline(`data`).let(ImportSource::wrap) + internal fun wrap(cdkObject: software.amazon.awscdk.services.cloudfront.ImportSource): ImportSource = CdkObjectWrappers.wrap(cdkObject) as? ImportSource ?: Wrapper(cdkObject) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/InlineImportSource.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/InlineImportSource.kt new file mode 100644 index 0000000000..3939ed5a29 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/InlineImportSource.kt @@ -0,0 +1,75 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.cloudfront + +import kotlin.String + +/** + * An import source from an inline string. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.*; + * import io.cloudshiftdev.awscdk.services.cloudfront.*; + * import io.cloudshiftdev.awscdk.services.iam.*; + * DockerImage dockerImage; + * IGrantable grantable; + * ILocalBundling localBundling; + * ImportSource inlineImportSource = InlineImportSource.fromAsset("path", AssetOptions.builder() + * .assetHash("assetHash") + * .assetHashType(AssetHashType.SOURCE) + * .bundling(BundlingOptions.builder() + * .image(dockerImage) + * // the properties below are optional + * .bundlingFileAccess(BundlingFileAccess.VOLUME_COPY) + * .command(List.of("command")) + * .entrypoint(List.of("entrypoint")) + * .environment(Map.of( + * "environmentKey", "environment")) + * .local(localBundling) + * .network("network") + * .outputType(BundlingOutput.ARCHIVED) + * .platform("platform") + * .securityOpt("securityOpt") + * .user("user") + * .volumes(List.of(DockerVolume.builder() + * .containerPath("containerPath") + * .hostPath("hostPath") + * // the properties below are optional + * .consistency(DockerVolumeConsistency.CONSISTENT) + * .build())) + * .volumesFrom(List.of("volumesFrom")) + * .workingDirectory("workingDirectory") + * .build()) + * .deployTime(false) + * .exclude(List.of("exclude")) + * .followSymlinks(SymlinkFollowMode.NEVER) + * .ignoreMode(IgnoreMode.GLOB) + * .readers(List.of(grantable)) + * .build()); + * ``` + */ +public open class InlineImportSource( + cdkObject: software.amazon.awscdk.services.cloudfront.InlineImportSource, +) : ImportSource(cdkObject) { + public constructor(`data`: String) : + this(software.amazon.awscdk.services.cloudfront.InlineImportSource(`data`) + ) + + /** + * the contents of the KeyValueStore. + */ + public open fun `data`(): String = unwrap(this).getData() + + public companion object { + internal fun wrap(cdkObject: software.amazon.awscdk.services.cloudfront.InlineImportSource): + InlineImportSource = InlineImportSource(cdkObject) + + internal fun unwrap(wrapped: InlineImportSource): + software.amazon.awscdk.services.cloudfront.InlineImportSource = wrapped.cdkObject as + software.amazon.awscdk.services.cloudfront.InlineImportSource + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/KeyValueStore.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/KeyValueStore.kt index a76a858553..bdc9026a24 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/KeyValueStore.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/KeyValueStore.kt @@ -15,9 +15,12 @@ import software.constructs.Construct as SoftwareConstructsConstruct * Example: * * ``` - * KeyValueStore store = KeyValueStore.Builder.create(this, "KeyValueStore") - * .keyValueStoreName("KeyValueStore") - * .source(ImportSource.fromAsset("path-to-data.json")) + * KeyValueStore store = new KeyValueStore(this, "KeyValueStore"); + * Function.Builder.create(this, "Function") + * .code(FunctionCode.fromInline("function handler(event) { return event.request }")) + * // Note that JS_2_0 must be used for Key Value Store support + * .runtime(FunctionRuntime.JS_2_0) + * .keyValueStore(store) * .build(); * ``` */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/KeyValueStoreProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/KeyValueStoreProps.kt index 3234aefb91..1b4390be62 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/KeyValueStoreProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/KeyValueStoreProps.kt @@ -14,10 +14,19 @@ import kotlin.Unit * Example: * * ``` - * KeyValueStore store = KeyValueStore.Builder.create(this, "KeyValueStore") - * .keyValueStoreName("KeyValueStore") + * KeyValueStore storeAsset = KeyValueStore.Builder.create(this, "KeyValueStoreAsset") + * .keyValueStoreName("KeyValueStoreAsset") * .source(ImportSource.fromAsset("path-to-data.json")) * .build(); + * KeyValueStore storeInline = KeyValueStore.Builder.create(this, "KeyValueStoreInline") + * .keyValueStoreName("KeyValueStoreInline") + * .source(ImportSource.fromInline(JSON.stringify(Map.of( + * "data", List.of(Map.of( + * "key", "key1", + * "value", "value1"), Map.of( + * "key", "key2", + * "value", "value2")))))) + * .build(); * ``` */ public interface KeyValueStoreProps { diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/S3ImportSource.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/S3ImportSource.kt index c2e17f64d2..9e1ea64d55 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/S3ImportSource.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudfront/S3ImportSource.kt @@ -13,10 +13,44 @@ import kotlin.String * ``` * // The code below shows an example of how to instantiate this type. * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.*; * import io.cloudshiftdev.awscdk.services.cloudfront.*; - * import io.cloudshiftdev.awscdk.services.s3.*; - * Bucket bucket; - * S3ImportSource s3ImportSource = new S3ImportSource(bucket, "key"); + * import io.cloudshiftdev.awscdk.services.iam.*; + * DockerImage dockerImage; + * IGrantable grantable; + * ILocalBundling localBundling; + * ImportSource s3ImportSource = S3ImportSource.fromAsset("path", AssetOptions.builder() + * .assetHash("assetHash") + * .assetHashType(AssetHashType.SOURCE) + * .bundling(BundlingOptions.builder() + * .image(dockerImage) + * // the properties below are optional + * .bundlingFileAccess(BundlingFileAccess.VOLUME_COPY) + * .command(List.of("command")) + * .entrypoint(List.of("entrypoint")) + * .environment(Map.of( + * "environmentKey", "environment")) + * .local(localBundling) + * .network("network") + * .outputType(BundlingOutput.ARCHIVED) + * .platform("platform") + * .securityOpt("securityOpt") + * .user("user") + * .volumes(List.of(DockerVolume.builder() + * .containerPath("containerPath") + * .hostPath("hostPath") + * // the properties below are optional + * .consistency(DockerVolumeConsistency.CONSISTENT) + * .build())) + * .volumesFrom(List.of("volumesFrom")) + * .workingDirectory("workingDirectory") + * .build()) + * .deployTime(false) + * .exclude(List.of("exclude")) + * .followSymlinks(SymlinkFollowMode.NEVER) + * .ignoreMode(IgnoreMode.GLOB) + * .readers(List.of(grantable)) + * .build()); * ``` */ public open class S3ImportSource( diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudtrail/CfnEventDataStore.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudtrail/CfnEventDataStore.kt index e731b8b1fb..b35c2f4354 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudtrail/CfnEventDataStore.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudtrail/CfnEventDataStore.kt @@ -403,12 +403,12 @@ public open class CfnEventDataStore( * For more information about how to use advanced event selectors to include AWS Config * configuration items in your event data store, see [Create an event data store for AWS Config * configuration - * items](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-lake-cli.html#lake-cli-create-eds-config) + * items](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-eds-cli.html#lake-cli-create-eds-config) * in the CloudTrail User Guide. * - * For more information about how to use advanced event selectors to include non- AWS events in - * your event data store, see [Create an integration to log events from outside - * AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-lake-cli.html#lake-cli-create-integration) + * For more information about how to use advanced event selectors to include events outside of + * AWS events in your event data store, see [Create an integration to log events from outside + * AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-integrations-cli.html#lake-cli-create-integration) * in the CloudTrail User Guide. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-eventdatastore.html#cfn-cloudtrail-eventdatastore-advancedeventselectors) @@ -430,12 +430,12 @@ public open class CfnEventDataStore( * For more information about how to use advanced event selectors to include AWS Config * configuration items in your event data store, see [Create an event data store for AWS Config * configuration - * items](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-lake-cli.html#lake-cli-create-eds-config) + * items](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-eds-cli.html#lake-cli-create-eds-config) * in the CloudTrail User Guide. * - * For more information about how to use advanced event selectors to include non- AWS events in - * your event data store, see [Create an integration to log events from outside - * AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-lake-cli.html#lake-cli-create-integration) + * For more information about how to use advanced event selectors to include events outside of + * AWS events in your event data store, see [Create an integration to log events from outside + * AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-integrations-cli.html#lake-cli-create-integration) * in the CloudTrail User Guide. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-eventdatastore.html#cfn-cloudtrail-eventdatastore-advancedeventselectors) @@ -457,12 +457,12 @@ public open class CfnEventDataStore( * For more information about how to use advanced event selectors to include AWS Config * configuration items in your event data store, see [Create an event data store for AWS Config * configuration - * items](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-lake-cli.html#lake-cli-create-eds-config) + * items](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-eds-cli.html#lake-cli-create-eds-config) * in the CloudTrail User Guide. * - * For more information about how to use advanced event selectors to include non- AWS events in - * your event data store, see [Create an integration to log events from outside - * AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-lake-cli.html#lake-cli-create-integration) + * For more information about how to use advanced event selectors to include events outside of + * AWS events in your event data store, see [Create an integration to log events from outside + * AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-integrations-cli.html#lake-cli-create-integration) * in the CloudTrail User Guide. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-eventdatastore.html#cfn-cloudtrail-eventdatastore-advancedeventselectors) @@ -792,12 +792,12 @@ public open class CfnEventDataStore( * For more information about how to use advanced event selectors to include AWS Config * configuration items in your event data store, see [Create an event data store for AWS Config * configuration - * items](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-lake-cli.html#lake-cli-create-eds-config) + * items](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-eds-cli.html#lake-cli-create-eds-config) * in the CloudTrail User Guide. * - * For more information about how to use advanced event selectors to include non- AWS events in - * your event data store, see [Create an integration to log events from outside - * AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-lake-cli.html#lake-cli-create-integration) + * For more information about how to use advanced event selectors to include events outside of + * AWS events in your event data store, see [Create an integration to log events from outside + * AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-integrations-cli.html#lake-cli-create-integration) * in the CloudTrail User Guide. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-eventdatastore.html#cfn-cloudtrail-eventdatastore-advancedeventselectors) @@ -821,12 +821,12 @@ public open class CfnEventDataStore( * For more information about how to use advanced event selectors to include AWS Config * configuration items in your event data store, see [Create an event data store for AWS Config * configuration - * items](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-lake-cli.html#lake-cli-create-eds-config) + * items](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-eds-cli.html#lake-cli-create-eds-config) * in the CloudTrail User Guide. * - * For more information about how to use advanced event selectors to include non- AWS events in - * your event data store, see [Create an integration to log events from outside - * AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-lake-cli.html#lake-cli-create-integration) + * For more information about how to use advanced event selectors to include events outside of + * AWS events in your event data store, see [Create an integration to log events from outside + * AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-integrations-cli.html#lake-cli-create-integration) * in the CloudTrail User Guide. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-eventdatastore.html#cfn-cloudtrail-eventdatastore-advancedeventselectors) @@ -850,12 +850,12 @@ public open class CfnEventDataStore( * For more information about how to use advanced event selectors to include AWS Config * configuration items in your event data store, see [Create an event data store for AWS Config * configuration - * items](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-lake-cli.html#lake-cli-create-eds-config) + * items](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-eds-cli.html#lake-cli-create-eds-config) * in the CloudTrail User Guide. * - * For more information about how to use advanced event selectors to include non- AWS events in - * your event data store, see [Create an integration to log events from outside - * AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-lake-cli.html#lake-cli-create-integration) + * For more information about how to use advanced event selectors to include events outside of + * AWS events in your event data store, see [Create an integration to log events from outside + * AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-integrations-cli.html#lake-cli-create-integration) * in the CloudTrail User Guide. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-eventdatastore.html#cfn-cloudtrail-eventdatastore-advancedeventselectors) @@ -1535,24 +1535,33 @@ public open class CfnEventDataStore( * * `AWS::SCN::Instance` * * `AWS::SNS::PlatformEndpoint` * * `AWS::SNS::Topic` - * * `AWS::SWF::Domain` * * `AWS::SQS::Queue` + * * `AWS::SSM::ManagedNode` * * `AWS::SSMMessages::ControlChannel` + * * `AWS::SWF::Domain` * * `AWS::ThinClient::Device` * * `AWS::ThinClient::Environment` * * `AWS::Timestream::Database` * * `AWS::Timestream::Table` * * `AWS::VerifiedPermissions::PolicyStore` + * * `AWS::XRay::Trace` * * You can have only one `resources.type` field per selector. To log data events on more than one * resource type, add another selector. * * * *`resources.ARN`* - You can use any operator with `resources.ARN` , but if you use `Equals` * or `NotEquals` , the value must exactly match the ARN of a valid resource of the type you've - * specified in the template as the value of resources.type. For example, if resources.type equals - * `AWS::S3::Object` , the ARN must be in one of the following formats. To log all data events for - * all objects in a specific S3 bucket, use the `StartsWith` operator, and include only the bucket - * ARN as the matching value. + * specified in the template as the value of resources.type. + * + * + * You can't use the `resources.ARN` field to filter resource types that do not have ARNs. + * + * + * The `resources.ARN` field can be set one of the following. + * + * If resources.type equals `AWS::S3::Object` , the ARN must be in one of the following formats. + * To log all data events for all objects in a specific S3 bucket, use the `StartsWith` operator, + * and include only the bucket ARN as the matching value. * * The trailing slash is intentional; do not exclude it. Replace the text between less than and * greater than symbols (<>) with resource-specific information. @@ -1849,22 +1858,29 @@ public open class CfnEventDataStore( * * * `arn:<partition>:sns:<region>:<account_ID>:<topic_name>` * - * When `resources.type` equals `AWS::SWF::Domain` , and the operator is set to `Equals` or - * `NotEquals` , the ARN must be in the following format: - * - * * `arn:<partition>:swf:<region>:<account_ID>:domain/<domain_name>` - * * When `resources.type` equals `AWS::SQS::Queue` , and the operator is set to `Equals` or * `NotEquals` , the ARN must be in the following format: * * * `arn:<partition>:sqs:<region>:<account_ID>:<queue_name>` * + * When `resources.type` equals `AWS::SSM::ManagedNode` , and the operator is set to `Equals` or + * `NotEquals` , the ARN must be in one of the following formats: + * + * * + * `arn:<partition>:ssm:<region>:<account_ID>:managed-instance/<instance_ID>` + * * `arn:<partition>:ec2:<region>:<account_ID>:instance/<instance_ID>` + * * When `resources.type` equals `AWS::SSMMessages::ControlChannel` , and the operator is set to * `Equals` or `NotEquals` , the ARN must be in the following format: * * * * `arn:<partition>:ssmmessages:<region>:<account_ID>:control-channel/<channel_ID>` * + * When `resources.type` equals `AWS::SWF::Domain` , and the operator is set to `Equals` or + * `NotEquals` , the ARN must be in the following format: + * + * * `arn:<partition>:swf:<region>:<account_ID>:domain/<domain_name>` + * * When `resources.type` equals `AWS::ThinClient::Device` , and the operator is set to `Equals` * or `NotEquals` , the ARN must be in the following format: * @@ -2049,24 +2065,33 @@ public open class CfnEventDataStore( * * `AWS::SCN::Instance` * * `AWS::SNS::PlatformEndpoint` * * `AWS::SNS::Topic` - * * `AWS::SWF::Domain` * * `AWS::SQS::Queue` + * * `AWS::SSM::ManagedNode` * * `AWS::SSMMessages::ControlChannel` + * * `AWS::SWF::Domain` * * `AWS::ThinClient::Device` * * `AWS::ThinClient::Environment` * * `AWS::Timestream::Database` * * `AWS::Timestream::Table` * * `AWS::VerifiedPermissions::PolicyStore` + * * `AWS::XRay::Trace` * * You can have only one `resources.type` field per selector. To log data events on more than * one resource type, add another selector. * * * *`resources.ARN`* - You can use any operator with `resources.ARN` , but if you use * `Equals` or `NotEquals` , the value must exactly match the ARN of a valid resource of the type - * you've specified in the template as the value of resources.type. For example, if resources.type - * equals `AWS::S3::Object` , the ARN must be in one of the following formats. To log all data - * events for all objects in a specific S3 bucket, use the `StartsWith` operator, and include - * only the bucket ARN as the matching value. + * you've specified in the template as the value of resources.type. + * + * + * You can't use the `resources.ARN` field to filter resource types that do not have ARNs. + * + * + * The `resources.ARN` field can be set one of the following. + * + * If resources.type equals `AWS::S3::Object` , the ARN must be in one of the following + * formats. To log all data events for all objects in a specific S3 bucket, use the `StartsWith` + * operator, and include only the bucket ARN as the matching value. * * The trailing slash is intentional; do not exclude it. Replace the text between less than * and greater than symbols (<>) with resource-specific information. @@ -2366,22 +2391,30 @@ public open class CfnEventDataStore( * * * `arn:<partition>:sns:<region>:<account_ID>:<topic_name>` * - * When `resources.type` equals `AWS::SWF::Domain` , and the operator is set to `Equals` or - * `NotEquals` , the ARN must be in the following format: - * - * * `arn:<partition>:swf:<region>:<account_ID>:domain/<domain_name>` - * * When `resources.type` equals `AWS::SQS::Queue` , and the operator is set to `Equals` or * `NotEquals` , the ARN must be in the following format: * * * `arn:<partition>:sqs:<region>:<account_ID>:<queue_name>` * + * When `resources.type` equals `AWS::SSM::ManagedNode` , and the operator is set to `Equals` + * or `NotEquals` , the ARN must be in one of the following formats: + * + * * + * `arn:<partition>:ssm:<region>:<account_ID>:managed-instance/<instance_ID>` + * * + * `arn:<partition>:ec2:<region>:<account_ID>:instance/<instance_ID>` + * * When `resources.type` equals `AWS::SSMMessages::ControlChannel` , and the operator is set * to `Equals` or `NotEquals` , the ARN must be in the following format: * * * * `arn:<partition>:ssmmessages:<region>:<account_ID>:control-channel/<channel_ID>` * + * When `resources.type` equals `AWS::SWF::Domain` , and the operator is set to `Equals` or + * `NotEquals` , the ARN must be in the following format: + * + * * `arn:<partition>:swf:<region>:<account_ID>:domain/<domain_name>` + * * When `resources.type` equals `AWS::ThinClient::Device` , and the operator is set to * `Equals` or `NotEquals` , the ARN must be in the following format: * @@ -2586,24 +2619,33 @@ public open class CfnEventDataStore( * * `AWS::SCN::Instance` * * `AWS::SNS::PlatformEndpoint` * * `AWS::SNS::Topic` - * * `AWS::SWF::Domain` * * `AWS::SQS::Queue` + * * `AWS::SSM::ManagedNode` * * `AWS::SSMMessages::ControlChannel` + * * `AWS::SWF::Domain` * * `AWS::ThinClient::Device` * * `AWS::ThinClient::Environment` * * `AWS::Timestream::Database` * * `AWS::Timestream::Table` * * `AWS::VerifiedPermissions::PolicyStore` + * * `AWS::XRay::Trace` * * You can have only one `resources.type` field per selector. To log data events on more than * one resource type, add another selector. * * * *`resources.ARN`* - You can use any operator with `resources.ARN` , but if you use * `Equals` or `NotEquals` , the value must exactly match the ARN of a valid resource of the type - * you've specified in the template as the value of resources.type. For example, if resources.type - * equals `AWS::S3::Object` , the ARN must be in one of the following formats. To log all data - * events for all objects in a specific S3 bucket, use the `StartsWith` operator, and include - * only the bucket ARN as the matching value. + * you've specified in the template as the value of resources.type. + * + * + * You can't use the `resources.ARN` field to filter resource types that do not have ARNs. + * + * + * The `resources.ARN` field can be set one of the following. + * + * If resources.type equals `AWS::S3::Object` , the ARN must be in one of the following + * formats. To log all data events for all objects in a specific S3 bucket, use the `StartsWith` + * operator, and include only the bucket ARN as the matching value. * * The trailing slash is intentional; do not exclude it. Replace the text between less than * and greater than symbols (<>) with resource-specific information. @@ -2903,22 +2945,30 @@ public open class CfnEventDataStore( * * * `arn:<partition>:sns:<region>:<account_ID>:<topic_name>` * - * When `resources.type` equals `AWS::SWF::Domain` , and the operator is set to `Equals` or - * `NotEquals` , the ARN must be in the following format: - * - * * `arn:<partition>:swf:<region>:<account_ID>:domain/<domain_name>` - * * When `resources.type` equals `AWS::SQS::Queue` , and the operator is set to `Equals` or * `NotEquals` , the ARN must be in the following format: * * * `arn:<partition>:sqs:<region>:<account_ID>:<queue_name>` * + * When `resources.type` equals `AWS::SSM::ManagedNode` , and the operator is set to `Equals` + * or `NotEquals` , the ARN must be in one of the following formats: + * + * * + * `arn:<partition>:ssm:<region>:<account_ID>:managed-instance/<instance_ID>` + * * + * `arn:<partition>:ec2:<region>:<account_ID>:instance/<instance_ID>` + * * When `resources.type` equals `AWS::SSMMessages::ControlChannel` , and the operator is set * to `Equals` or `NotEquals` , the ARN must be in the following format: * * * * `arn:<partition>:ssmmessages:<region>:<account_ID>:control-channel/<channel_ID>` * + * When `resources.type` equals `AWS::SWF::Domain` , and the operator is set to `Equals` or + * `NotEquals` , the ARN must be in the following format: + * + * * `arn:<partition>:swf:<region>:<account_ID>:domain/<domain_name>` + * * When `resources.type` equals `AWS::ThinClient::Device` , and the operator is set to * `Equals` or `NotEquals` , the ARN must be in the following format: * @@ -3123,24 +3173,33 @@ public open class CfnEventDataStore( * * `AWS::SCN::Instance` * * `AWS::SNS::PlatformEndpoint` * * `AWS::SNS::Topic` - * * `AWS::SWF::Domain` * * `AWS::SQS::Queue` + * * `AWS::SSM::ManagedNode` * * `AWS::SSMMessages::ControlChannel` + * * `AWS::SWF::Domain` * * `AWS::ThinClient::Device` * * `AWS::ThinClient::Environment` * * `AWS::Timestream::Database` * * `AWS::Timestream::Table` * * `AWS::VerifiedPermissions::PolicyStore` + * * `AWS::XRay::Trace` * * You can have only one `resources.type` field per selector. To log data events on more than * one resource type, add another selector. * * * *`resources.ARN`* - You can use any operator with `resources.ARN` , but if you use * `Equals` or `NotEquals` , the value must exactly match the ARN of a valid resource of the type - * you've specified in the template as the value of resources.type. For example, if resources.type - * equals `AWS::S3::Object` , the ARN must be in one of the following formats. To log all data - * events for all objects in a specific S3 bucket, use the `StartsWith` operator, and include - * only the bucket ARN as the matching value. + * you've specified in the template as the value of resources.type. + * + * + * You can't use the `resources.ARN` field to filter resource types that do not have ARNs. + * + * + * The `resources.ARN` field can be set one of the following. + * + * If resources.type equals `AWS::S3::Object` , the ARN must be in one of the following + * formats. To log all data events for all objects in a specific S3 bucket, use the `StartsWith` + * operator, and include only the bucket ARN as the matching value. * * The trailing slash is intentional; do not exclude it. Replace the text between less than * and greater than symbols (<>) with resource-specific information. @@ -3440,22 +3499,30 @@ public open class CfnEventDataStore( * * * `arn:<partition>:sns:<region>:<account_ID>:<topic_name>` * - * When `resources.type` equals `AWS::SWF::Domain` , and the operator is set to `Equals` or - * `NotEquals` , the ARN must be in the following format: - * - * * `arn:<partition>:swf:<region>:<account_ID>:domain/<domain_name>` - * * When `resources.type` equals `AWS::SQS::Queue` , and the operator is set to `Equals` or * `NotEquals` , the ARN must be in the following format: * * * `arn:<partition>:sqs:<region>:<account_ID>:<queue_name>` * + * When `resources.type` equals `AWS::SSM::ManagedNode` , and the operator is set to `Equals` + * or `NotEquals` , the ARN must be in one of the following formats: + * + * * + * `arn:<partition>:ssm:<region>:<account_ID>:managed-instance/<instance_ID>` + * * + * `arn:<partition>:ec2:<region>:<account_ID>:instance/<instance_ID>` + * * When `resources.type` equals `AWS::SSMMessages::ControlChannel` , and the operator is set * to `Equals` or `NotEquals` , the ARN must be in the following format: * * * * `arn:<partition>:ssmmessages:<region>:<account_ID>:control-channel/<channel_ID>` * + * When `resources.type` equals `AWS::SWF::Domain` , and the operator is set to `Equals` or + * `NotEquals` , the ARN must be in the following format: + * + * * `arn:<partition>:swf:<region>:<account_ID>:domain/<domain_name>` + * * When `resources.type` equals `AWS::ThinClient::Device` , and the operator is set to * `Equals` or `NotEquals` , the ARN must be in the following format: * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudtrail/CfnEventDataStoreProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudtrail/CfnEventDataStoreProps.kt index 2af23d0c46..19c8331425 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudtrail/CfnEventDataStoreProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudtrail/CfnEventDataStoreProps.kt @@ -75,12 +75,12 @@ public interface CfnEventDataStoreProps { * For more information about how to use advanced event selectors to include AWS Config * configuration items in your event data store, see [Create an event data store for AWS Config * configuration - * items](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-lake-cli.html#lake-cli-create-eds-config) + * items](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-eds-cli.html#lake-cli-create-eds-config) * in the CloudTrail User Guide. * - * For more information about how to use advanced event selectors to include non- AWS events in - * your event data store, see [Create an integration to log events from outside - * AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-lake-cli.html#lake-cli-create-integration) + * For more information about how to use advanced event selectors to include events outside of AWS + * events in your event data store, see [Create an integration to log events from outside + * AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-integrations-cli.html#lake-cli-create-integration) * in the CloudTrail User Guide. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-eventdatastore.html#cfn-cloudtrail-eventdatastore-advancedeventselectors) @@ -279,12 +279,12 @@ public interface CfnEventDataStoreProps { * For more information about how to use advanced event selectors to include AWS Config * configuration items in your event data store, see [Create an event data store for AWS Config * configuration - * items](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-lake-cli.html#lake-cli-create-eds-config) + * items](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-eds-cli.html#lake-cli-create-eds-config) * in the CloudTrail User Guide. * - * For more information about how to use advanced event selectors to include non- AWS events in - * your event data store, see [Create an integration to log events from outside - * AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-lake-cli.html#lake-cli-create-integration) + * For more information about how to use advanced event selectors to include events outside of + * AWS events in your event data store, see [Create an integration to log events from outside + * AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-integrations-cli.html#lake-cli-create-integration) * in the CloudTrail User Guide. */ public fun advancedEventSelectors(advancedEventSelectors: IResolvable) @@ -302,12 +302,12 @@ public interface CfnEventDataStoreProps { * For more information about how to use advanced event selectors to include AWS Config * configuration items in your event data store, see [Create an event data store for AWS Config * configuration - * items](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-lake-cli.html#lake-cli-create-eds-config) + * items](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-eds-cli.html#lake-cli-create-eds-config) * in the CloudTrail User Guide. * - * For more information about how to use advanced event selectors to include non- AWS events in - * your event data store, see [Create an integration to log events from outside - * AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-lake-cli.html#lake-cli-create-integration) + * For more information about how to use advanced event selectors to include events outside of + * AWS events in your event data store, see [Create an integration to log events from outside + * AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-integrations-cli.html#lake-cli-create-integration) * in the CloudTrail User Guide. */ public fun advancedEventSelectors(advancedEventSelectors: List) @@ -325,12 +325,12 @@ public interface CfnEventDataStoreProps { * For more information about how to use advanced event selectors to include AWS Config * configuration items in your event data store, see [Create an event data store for AWS Config * configuration - * items](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-lake-cli.html#lake-cli-create-eds-config) + * items](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-eds-cli.html#lake-cli-create-eds-config) * in the CloudTrail User Guide. * - * For more information about how to use advanced event selectors to include non- AWS events in - * your event data store, see [Create an integration to log events from outside - * AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-lake-cli.html#lake-cli-create-integration) + * For more information about how to use advanced event selectors to include events outside of + * AWS events in your event data store, see [Create an integration to log events from outside + * AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-integrations-cli.html#lake-cli-create-integration) * in the CloudTrail User Guide. */ public fun advancedEventSelectors(vararg advancedEventSelectors: Any) @@ -565,12 +565,12 @@ public interface CfnEventDataStoreProps { * For more information about how to use advanced event selectors to include AWS Config * configuration items in your event data store, see [Create an event data store for AWS Config * configuration - * items](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-lake-cli.html#lake-cli-create-eds-config) + * items](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-eds-cli.html#lake-cli-create-eds-config) * in the CloudTrail User Guide. * - * For more information about how to use advanced event selectors to include non- AWS events in - * your event data store, see [Create an integration to log events from outside - * AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-lake-cli.html#lake-cli-create-integration) + * For more information about how to use advanced event selectors to include events outside of + * AWS events in your event data store, see [Create an integration to log events from outside + * AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-integrations-cli.html#lake-cli-create-integration) * in the CloudTrail User Guide. */ override fun advancedEventSelectors(advancedEventSelectors: IResolvable) { @@ -590,12 +590,12 @@ public interface CfnEventDataStoreProps { * For more information about how to use advanced event selectors to include AWS Config * configuration items in your event data store, see [Create an event data store for AWS Config * configuration - * items](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-lake-cli.html#lake-cli-create-eds-config) + * items](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-eds-cli.html#lake-cli-create-eds-config) * in the CloudTrail User Guide. * - * For more information about how to use advanced event selectors to include non- AWS events in - * your event data store, see [Create an integration to log events from outside - * AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-lake-cli.html#lake-cli-create-integration) + * For more information about how to use advanced event selectors to include events outside of + * AWS events in your event data store, see [Create an integration to log events from outside + * AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-integrations-cli.html#lake-cli-create-integration) * in the CloudTrail User Guide. */ override fun advancedEventSelectors(advancedEventSelectors: List) { @@ -615,12 +615,12 @@ public interface CfnEventDataStoreProps { * For more information about how to use advanced event selectors to include AWS Config * configuration items in your event data store, see [Create an event data store for AWS Config * configuration - * items](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-lake-cli.html#lake-cli-create-eds-config) + * items](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-eds-cli.html#lake-cli-create-eds-config) * in the CloudTrail User Guide. * - * For more information about how to use advanced event selectors to include non- AWS events in - * your event data store, see [Create an integration to log events from outside - * AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-lake-cli.html#lake-cli-create-integration) + * For more information about how to use advanced event selectors to include events outside of + * AWS events in your event data store, see [Create an integration to log events from outside + * AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-integrations-cli.html#lake-cli-create-integration) * in the CloudTrail User Guide. */ override fun advancedEventSelectors(vararg advancedEventSelectors: Any): Unit = @@ -896,12 +896,12 @@ public interface CfnEventDataStoreProps { * For more information about how to use advanced event selectors to include AWS Config * configuration items in your event data store, see [Create an event data store for AWS Config * configuration - * items](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-lake-cli.html#lake-cli-create-eds-config) + * items](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-eds-cli.html#lake-cli-create-eds-config) * in the CloudTrail User Guide. * - * For more information about how to use advanced event selectors to include non- AWS events in - * your event data store, see [Create an integration to log events from outside - * AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-lake-cli.html#lake-cli-create-integration) + * For more information about how to use advanced event selectors to include events outside of + * AWS events in your event data store, see [Create an integration to log events from outside + * AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-integrations-cli.html#lake-cli-create-integration) * in the CloudTrail User Guide. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-eventdatastore.html#cfn-cloudtrail-eventdatastore-advancedeventselectors) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudtrail/CfnTrail.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudtrail/CfnTrail.kt index ba8da11d49..3b5faf2e3c 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudtrail/CfnTrail.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudtrail/CfnTrail.kt @@ -776,9 +776,8 @@ public open class CfnTrail( /** * Specifies the name of the Amazon S3 bucket designated for publishing log files. * - * See [Amazon S3 Bucket Naming - * Requirements](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/create_trail_naming_policy.html) - * . + * See [Amazon S3 Bucket naming + * rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html) . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-s3bucketname) * @param s3BucketName Specifies the name of the Amazon S3 bucket designated for publishing log @@ -791,7 +790,7 @@ public open class CfnTrail( * designated for log file delivery. * * For more information, see [Finding Your CloudTrail Log - * Files](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-find-log-files.html) + * Files](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/get-and-view-cloudtrail-log-files.html#cloudtrail-find-log-files) * . The maximum length is 200 characters. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-s3keyprefix) @@ -1250,9 +1249,8 @@ public open class CfnTrail( /** * Specifies the name of the Amazon S3 bucket designated for publishing log files. * - * See [Amazon S3 Bucket Naming - * Requirements](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/create_trail_naming_policy.html) - * . + * See [Amazon S3 Bucket naming + * rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html) . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-s3bucketname) * @param s3BucketName Specifies the name of the Amazon S3 bucket designated for publishing log @@ -1267,7 +1265,7 @@ public open class CfnTrail( * designated for log file delivery. * * For more information, see [Finding Your CloudTrail Log - * Files](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-find-log-files.html) + * Files](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/get-and-view-cloudtrail-log-files.html#cloudtrail-find-log-files) * . The maximum length is 200 characters. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-s3keyprefix) @@ -1657,24 +1655,33 @@ public open class CfnTrail( * * `AWS::SCN::Instance` * * `AWS::SNS::PlatformEndpoint` * * `AWS::SNS::Topic` - * * `AWS::SWF::Domain` * * `AWS::SQS::Queue` + * * `AWS::SSM::ManagedNode` * * `AWS::SSMMessages::ControlChannel` + * * `AWS::SWF::Domain` * * `AWS::ThinClient::Device` * * `AWS::ThinClient::Environment` * * `AWS::Timestream::Database` * * `AWS::Timestream::Table` * * `AWS::VerifiedPermissions::PolicyStore` + * * `AWS::XRay::Trace` * * You can have only one `resources.type` field per selector. To log data events on more than one * resource type, add another selector. * * * *`resources.ARN`* - You can use any operator with `resources.ARN` , but if you use `Equals` * or `NotEquals` , the value must exactly match the ARN of a valid resource of the type you've - * specified in the template as the value of resources.type. For example, if resources.type equals - * `AWS::S3::Object` , the ARN must be in one of the following formats. To log all data events for - * all objects in a specific S3 bucket, use the `StartsWith` operator, and include only the bucket - * ARN as the matching value. + * specified in the template as the value of resources.type. + * + * + * You can't use the `resources.ARN` field to filter resource types that do not have ARNs. + * + * + * The `resources.ARN` field can be set one of the following. + * + * If resources.type equals `AWS::S3::Object` , the ARN must be in one of the following formats. + * To log all data events for all objects in a specific S3 bucket, use the `StartsWith` operator, + * and include only the bucket ARN as the matching value. * * The trailing slash is intentional; do not exclude it. Replace the text between less than and * greater than symbols (<>) with resource-specific information. @@ -1971,22 +1978,29 @@ public open class CfnTrail( * * * `arn:<partition>:sns:<region>:<account_ID>:<topic_name>` * - * When `resources.type` equals `AWS::SWF::Domain` , and the operator is set to `Equals` or - * `NotEquals` , the ARN must be in the following format: - * - * * `arn:<partition>:swf:<region>:<account_ID>:domain/<domain_name>` - * * When `resources.type` equals `AWS::SQS::Queue` , and the operator is set to `Equals` or * `NotEquals` , the ARN must be in the following format: * * * `arn:<partition>:sqs:<region>:<account_ID>:<queue_name>` * + * When `resources.type` equals `AWS::SSM::ManagedNode` , and the operator is set to `Equals` or + * `NotEquals` , the ARN must be in one of the following formats: + * + * * + * `arn:<partition>:ssm:<region>:<account_ID>:managed-instance/<instance_ID>` + * * `arn:<partition>:ec2:<region>:<account_ID>:instance/<instance_ID>` + * * When `resources.type` equals `AWS::SSMMessages::ControlChannel` , and the operator is set to * `Equals` or `NotEquals` , the ARN must be in the following format: * * * * `arn:<partition>:ssmmessages:<region>:<account_ID>:control-channel/<channel_ID>` * + * When `resources.type` equals `AWS::SWF::Domain` , and the operator is set to `Equals` or + * `NotEquals` , the ARN must be in the following format: + * + * * `arn:<partition>:swf:<region>:<account_ID>:domain/<domain_name>` + * * When `resources.type` equals `AWS::ThinClient::Device` , and the operator is set to `Equals` * or `NotEquals` , the ARN must be in the following format: * @@ -2171,24 +2185,33 @@ public open class CfnTrail( * * `AWS::SCN::Instance` * * `AWS::SNS::PlatformEndpoint` * * `AWS::SNS::Topic` - * * `AWS::SWF::Domain` * * `AWS::SQS::Queue` + * * `AWS::SSM::ManagedNode` * * `AWS::SSMMessages::ControlChannel` + * * `AWS::SWF::Domain` * * `AWS::ThinClient::Device` * * `AWS::ThinClient::Environment` * * `AWS::Timestream::Database` * * `AWS::Timestream::Table` * * `AWS::VerifiedPermissions::PolicyStore` + * * `AWS::XRay::Trace` * * You can have only one `resources.type` field per selector. To log data events on more than * one resource type, add another selector. * * * *`resources.ARN`* - You can use any operator with `resources.ARN` , but if you use * `Equals` or `NotEquals` , the value must exactly match the ARN of a valid resource of the type - * you've specified in the template as the value of resources.type. For example, if resources.type - * equals `AWS::S3::Object` , the ARN must be in one of the following formats. To log all data - * events for all objects in a specific S3 bucket, use the `StartsWith` operator, and include - * only the bucket ARN as the matching value. + * you've specified in the template as the value of resources.type. + * + * + * You can't use the `resources.ARN` field to filter resource types that do not have ARNs. + * + * + * The `resources.ARN` field can be set one of the following. + * + * If resources.type equals `AWS::S3::Object` , the ARN must be in one of the following + * formats. To log all data events for all objects in a specific S3 bucket, use the `StartsWith` + * operator, and include only the bucket ARN as the matching value. * * The trailing slash is intentional; do not exclude it. Replace the text between less than * and greater than symbols (<>) with resource-specific information. @@ -2488,22 +2511,30 @@ public open class CfnTrail( * * * `arn:<partition>:sns:<region>:<account_ID>:<topic_name>` * - * When `resources.type` equals `AWS::SWF::Domain` , and the operator is set to `Equals` or - * `NotEquals` , the ARN must be in the following format: - * - * * `arn:<partition>:swf:<region>:<account_ID>:domain/<domain_name>` - * * When `resources.type` equals `AWS::SQS::Queue` , and the operator is set to `Equals` or * `NotEquals` , the ARN must be in the following format: * * * `arn:<partition>:sqs:<region>:<account_ID>:<queue_name>` * + * When `resources.type` equals `AWS::SSM::ManagedNode` , and the operator is set to `Equals` + * or `NotEquals` , the ARN must be in one of the following formats: + * + * * + * `arn:<partition>:ssm:<region>:<account_ID>:managed-instance/<instance_ID>` + * * + * `arn:<partition>:ec2:<region>:<account_ID>:instance/<instance_ID>` + * * When `resources.type` equals `AWS::SSMMessages::ControlChannel` , and the operator is set * to `Equals` or `NotEquals` , the ARN must be in the following format: * * * * `arn:<partition>:ssmmessages:<region>:<account_ID>:control-channel/<channel_ID>` * + * When `resources.type` equals `AWS::SWF::Domain` , and the operator is set to `Equals` or + * `NotEquals` , the ARN must be in the following format: + * + * * `arn:<partition>:swf:<region>:<account_ID>:domain/<domain_name>` + * * When `resources.type` equals `AWS::ThinClient::Device` , and the operator is set to * `Equals` or `NotEquals` , the ARN must be in the following format: * @@ -2708,24 +2739,33 @@ public open class CfnTrail( * * `AWS::SCN::Instance` * * `AWS::SNS::PlatformEndpoint` * * `AWS::SNS::Topic` - * * `AWS::SWF::Domain` * * `AWS::SQS::Queue` + * * `AWS::SSM::ManagedNode` * * `AWS::SSMMessages::ControlChannel` + * * `AWS::SWF::Domain` * * `AWS::ThinClient::Device` * * `AWS::ThinClient::Environment` * * `AWS::Timestream::Database` * * `AWS::Timestream::Table` * * `AWS::VerifiedPermissions::PolicyStore` + * * `AWS::XRay::Trace` * * You can have only one `resources.type` field per selector. To log data events on more than * one resource type, add another selector. * * * *`resources.ARN`* - You can use any operator with `resources.ARN` , but if you use * `Equals` or `NotEquals` , the value must exactly match the ARN of a valid resource of the type - * you've specified in the template as the value of resources.type. For example, if resources.type - * equals `AWS::S3::Object` , the ARN must be in one of the following formats. To log all data - * events for all objects in a specific S3 bucket, use the `StartsWith` operator, and include - * only the bucket ARN as the matching value. + * you've specified in the template as the value of resources.type. + * + * + * You can't use the `resources.ARN` field to filter resource types that do not have ARNs. + * + * + * The `resources.ARN` field can be set one of the following. + * + * If resources.type equals `AWS::S3::Object` , the ARN must be in one of the following + * formats. To log all data events for all objects in a specific S3 bucket, use the `StartsWith` + * operator, and include only the bucket ARN as the matching value. * * The trailing slash is intentional; do not exclude it. Replace the text between less than * and greater than symbols (<>) with resource-specific information. @@ -3025,22 +3065,30 @@ public open class CfnTrail( * * * `arn:<partition>:sns:<region>:<account_ID>:<topic_name>` * - * When `resources.type` equals `AWS::SWF::Domain` , and the operator is set to `Equals` or - * `NotEquals` , the ARN must be in the following format: - * - * * `arn:<partition>:swf:<region>:<account_ID>:domain/<domain_name>` - * * When `resources.type` equals `AWS::SQS::Queue` , and the operator is set to `Equals` or * `NotEquals` , the ARN must be in the following format: * * * `arn:<partition>:sqs:<region>:<account_ID>:<queue_name>` * + * When `resources.type` equals `AWS::SSM::ManagedNode` , and the operator is set to `Equals` + * or `NotEquals` , the ARN must be in one of the following formats: + * + * * + * `arn:<partition>:ssm:<region>:<account_ID>:managed-instance/<instance_ID>` + * * + * `arn:<partition>:ec2:<region>:<account_ID>:instance/<instance_ID>` + * * When `resources.type` equals `AWS::SSMMessages::ControlChannel` , and the operator is set * to `Equals` or `NotEquals` , the ARN must be in the following format: * * * * `arn:<partition>:ssmmessages:<region>:<account_ID>:control-channel/<channel_ID>` * + * When `resources.type` equals `AWS::SWF::Domain` , and the operator is set to `Equals` or + * `NotEquals` , the ARN must be in the following format: + * + * * `arn:<partition>:swf:<region>:<account_ID>:domain/<domain_name>` + * * When `resources.type` equals `AWS::ThinClient::Device` , and the operator is set to * `Equals` or `NotEquals` , the ARN must be in the following format: * @@ -3245,24 +3293,33 @@ public open class CfnTrail( * * `AWS::SCN::Instance` * * `AWS::SNS::PlatformEndpoint` * * `AWS::SNS::Topic` - * * `AWS::SWF::Domain` * * `AWS::SQS::Queue` + * * `AWS::SSM::ManagedNode` * * `AWS::SSMMessages::ControlChannel` + * * `AWS::SWF::Domain` * * `AWS::ThinClient::Device` * * `AWS::ThinClient::Environment` * * `AWS::Timestream::Database` * * `AWS::Timestream::Table` * * `AWS::VerifiedPermissions::PolicyStore` + * * `AWS::XRay::Trace` * * You can have only one `resources.type` field per selector. To log data events on more than * one resource type, add another selector. * * * *`resources.ARN`* - You can use any operator with `resources.ARN` , but if you use * `Equals` or `NotEquals` , the value must exactly match the ARN of a valid resource of the type - * you've specified in the template as the value of resources.type. For example, if resources.type - * equals `AWS::S3::Object` , the ARN must be in one of the following formats. To log all data - * events for all objects in a specific S3 bucket, use the `StartsWith` operator, and include - * only the bucket ARN as the matching value. + * you've specified in the template as the value of resources.type. + * + * + * You can't use the `resources.ARN` field to filter resource types that do not have ARNs. + * + * + * The `resources.ARN` field can be set one of the following. + * + * If resources.type equals `AWS::S3::Object` , the ARN must be in one of the following + * formats. To log all data events for all objects in a specific S3 bucket, use the `StartsWith` + * operator, and include only the bucket ARN as the matching value. * * The trailing slash is intentional; do not exclude it. Replace the text between less than * and greater than symbols (<>) with resource-specific information. @@ -3562,22 +3619,30 @@ public open class CfnTrail( * * * `arn:<partition>:sns:<region>:<account_ID>:<topic_name>` * - * When `resources.type` equals `AWS::SWF::Domain` , and the operator is set to `Equals` or - * `NotEquals` , the ARN must be in the following format: - * - * * `arn:<partition>:swf:<region>:<account_ID>:domain/<domain_name>` - * * When `resources.type` equals `AWS::SQS::Queue` , and the operator is set to `Equals` or * `NotEquals` , the ARN must be in the following format: * * * `arn:<partition>:sqs:<region>:<account_ID>:<queue_name>` * + * When `resources.type` equals `AWS::SSM::ManagedNode` , and the operator is set to `Equals` + * or `NotEquals` , the ARN must be in one of the following formats: + * + * * + * `arn:<partition>:ssm:<region>:<account_ID>:managed-instance/<instance_ID>` + * * + * `arn:<partition>:ec2:<region>:<account_ID>:instance/<instance_ID>` + * * When `resources.type` equals `AWS::SSMMessages::ControlChannel` , and the operator is set * to `Equals` or `NotEquals` , the ARN must be in the following format: * * * * `arn:<partition>:ssmmessages:<region>:<account_ID>:control-channel/<channel_ID>` * + * When `resources.type` equals `AWS::SWF::Domain` , and the operator is set to `Equals` or + * `NotEquals` , the ARN must be in the following format: + * + * * `arn:<partition>:swf:<region>:<account_ID>:domain/<domain_name>` + * * When `resources.type` equals `AWS::ThinClient::Device` , and the operator is set to * `Equals` or `NotEquals` , the ARN must be in the following format: * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudtrail/CfnTrailProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudtrail/CfnTrailProps.kt index 847d50f7bc..2545a36095 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudtrail/CfnTrailProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudtrail/CfnTrailProps.kt @@ -230,9 +230,8 @@ public interface CfnTrailProps { /** * Specifies the name of the Amazon S3 bucket designated for publishing log files. * - * See [Amazon S3 Bucket Naming - * Requirements](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/create_trail_naming_policy.html) - * . + * See [Amazon S3 Bucket naming + * rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html) . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-s3bucketname) */ @@ -243,7 +242,7 @@ public interface CfnTrailProps { * for log file delivery. * * For more information, see [Finding Your CloudTrail Log - * Files](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-find-log-files.html) + * Files](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/get-and-view-cloudtrail-log-files.html#cloudtrail-find-log-files) * . The maximum length is 200 characters. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-s3keyprefix) @@ -549,9 +548,8 @@ public interface CfnTrailProps { /** * @param s3BucketName Specifies the name of the Amazon S3 bucket designated for publishing log * files. - * See [Amazon S3 Bucket Naming - * Requirements](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/create_trail_naming_policy.html) - * . + * See [Amazon S3 Bucket naming + * rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html) . */ public fun s3BucketName(s3BucketName: String) @@ -559,7 +557,7 @@ public interface CfnTrailProps { * @param s3KeyPrefix Specifies the Amazon S3 key prefix that comes after the name of the bucket * you have designated for log file delivery. * For more information, see [Finding Your CloudTrail Log - * Files](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-find-log-files.html) + * Files](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/get-and-view-cloudtrail-log-files.html#cloudtrail-find-log-files) * . The maximum length is 200 characters. */ public fun s3KeyPrefix(s3KeyPrefix: String) @@ -903,9 +901,8 @@ public interface CfnTrailProps { /** * @param s3BucketName Specifies the name of the Amazon S3 bucket designated for publishing log * files. - * See [Amazon S3 Bucket Naming - * Requirements](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/create_trail_naming_policy.html) - * . + * See [Amazon S3 Bucket naming + * rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html) . */ override fun s3BucketName(s3BucketName: String) { cdkBuilder.s3BucketName(s3BucketName) @@ -915,7 +912,7 @@ public interface CfnTrailProps { * @param s3KeyPrefix Specifies the Amazon S3 key prefix that comes after the name of the bucket * you have designated for log file delivery. * For more information, see [Finding Your CloudTrail Log - * Files](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-find-log-files.html) + * Files](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/get-and-view-cloudtrail-log-files.html#cloudtrail-find-log-files) * . The maximum length is 200 characters. */ override fun s3KeyPrefix(s3KeyPrefix: String) { @@ -1123,9 +1120,8 @@ public interface CfnTrailProps { /** * Specifies the name of the Amazon S3 bucket designated for publishing log files. * - * See [Amazon S3 Bucket Naming - * Requirements](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/create_trail_naming_policy.html) - * . + * See [Amazon S3 Bucket naming + * rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html) . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-s3bucketname) */ @@ -1136,7 +1132,7 @@ public interface CfnTrailProps { * designated for log file delivery. * * For more information, see [Finding Your CloudTrail Log - * Files](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-find-log-files.html) + * Files](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/get-and-view-cloudtrail-log-files.html#cloudtrail-find-log-files) * . The maximum length is 200 characters. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-s3keyprefix) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudwatch/CfnAlarm.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudwatch/CfnAlarm.kt index 37dc193a56..689917c75e 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudwatch/CfnAlarm.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudwatch/CfnAlarm.kt @@ -3,8 +3,11 @@ package io.cloudshiftdev.awscdk.services.cloudwatch import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.CfnTag import io.cloudshiftdev.awscdk.IInspectable import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.ITaggableV2 +import io.cloudshiftdev.awscdk.TagManager import io.cloudshiftdev.awscdk.TreeInspector import io.cloudshiftdev.awscdk.common.CdkDslMarker import io.cloudshiftdev.awscdk.common.CdkObject @@ -80,6 +83,10 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .okActions(List.of("okActions")) * .period(123) * .statistic("statistic") + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) * .threshold(123) * .thresholdMetricId("thresholdMetricId") * .treatMissingData("treatMissingData") @@ -91,7 +98,7 @@ import software.constructs.Construct as SoftwareConstructsConstruct */ public open class CfnAlarm( cdkObject: software.amazon.awscdk.services.cloudwatch.CfnAlarm, -) : CfnResource(cdkObject), IInspectable { +) : CfnResource(cdkObject), IInspectable, ITaggableV2 { public constructor( scope: CloudshiftdevConstructsConstruct, id: String, @@ -177,6 +184,12 @@ public open class CfnAlarm( */ public open fun attrArn(): String = unwrap(this).getAttrArn() + /** + * Tag Manager which manages the tags for this resource. + */ + public override fun cdkTagManager(): TagManager = + unwrap(this).getCdkTagManager().let(TagManager::wrap) + /** * The arithmetic operation to use when comparing the specified statistic and threshold. */ @@ -390,6 +403,23 @@ public open class CfnAlarm( unwrap(this).setStatistic(`value`) } + /** + * A list of key-value pairs to associate with the alarm. + */ + public open fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * A list of key-value pairs to associate with the alarm. + */ + public open fun tags(`value`: List) { + unwrap(this).setTags(`value`.map(CfnTag::unwrap)) + } + + /** + * A list of key-value pairs to associate with the alarm. + */ + public open fun tags(vararg `value`: CfnTag): Unit = tags(`value`.toList()) + /** * The value to compare with the specified statistic. */ @@ -780,6 +810,36 @@ public open class CfnAlarm( */ public fun statistic(statistic: String) + /** + * A list of key-value pairs to associate with the alarm. + * + * You can associate as many as 50 tags with an alarm. To be able to associate tags with the + * alarm when you create the alarm, you must have the `cloudwatch:TagResource` permission. + * + * Tags can help you organize and categorize your resources. You can also use them to scope user + * permissions by granting a user permission to access or change only resources with certain tag + * values. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-alarm.html#cfn-cloudwatch-alarm-tags) + * @param tags A list of key-value pairs to associate with the alarm. + */ + public fun tags(tags: List) + + /** + * A list of key-value pairs to associate with the alarm. + * + * You can associate as many as 50 tags with an alarm. To be able to associate tags with the + * alarm when you create the alarm, you must have the `cloudwatch:TagResource` permission. + * + * Tags can help you organize and categorize your resources. You can also use them to scope user + * permissions by granting a user permission to access or change only resources with certain tag + * values. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-alarm.html#cfn-cloudwatch-alarm-tags) + * @param tags A list of key-value pairs to associate with the alarm. + */ + public fun tags(vararg tags: CfnTag) + /** * The value to compare with the specified statistic. * @@ -1215,6 +1275,38 @@ public open class CfnAlarm( cdkBuilder.statistic(statistic) } + /** + * A list of key-value pairs to associate with the alarm. + * + * You can associate as many as 50 tags with an alarm. To be able to associate tags with the + * alarm when you create the alarm, you must have the `cloudwatch:TagResource` permission. + * + * Tags can help you organize and categorize your resources. You can also use them to scope user + * permissions by granting a user permission to access or change only resources with certain tag + * values. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-alarm.html#cfn-cloudwatch-alarm-tags) + * @param tags A list of key-value pairs to associate with the alarm. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * A list of key-value pairs to associate with the alarm. + * + * You can associate as many as 50 tags with an alarm. To be able to associate tags with the + * alarm when you create the alarm, you must have the `cloudwatch:TagResource` permission. + * + * Tags can help you organize and categorize your resources. You can also use them to scope user + * permissions by granting a user permission to access or change only resources with certain tag + * values. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-alarm.html#cfn-cloudwatch-alarm-tags) + * @param tags A list of key-value pairs to associate with the alarm. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + /** * The value to compare with the specified statistic. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudwatch/CfnAlarmProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudwatch/CfnAlarmProps.kt index 4d14edeb98..fdc9ccde28 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudwatch/CfnAlarmProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudwatch/CfnAlarmProps.kt @@ -2,6 +2,7 @@ package io.cloudshiftdev.awscdk.services.cloudwatch +import io.cloudshiftdev.awscdk.CfnTag import io.cloudshiftdev.awscdk.IResolvable import io.cloudshiftdev.awscdk.common.CdkDslMarker import io.cloudshiftdev.awscdk.common.CdkObject @@ -66,6 +67,10 @@ import kotlin.collections.List * .okActions(List.of("okActions")) * .period(123) * .statistic("statistic") + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) * .threshold(123) * .thresholdMetricId("thresholdMetricId") * .treatMissingData("treatMissingData") @@ -285,6 +290,20 @@ public interface CfnAlarmProps { */ public fun statistic(): String? = unwrap(this).getStatistic() + /** + * A list of key-value pairs to associate with the alarm. + * + * You can associate as many as 50 tags with an alarm. To be able to associate tags with the alarm + * when you create the alarm, you must have the `cloudwatch:TagResource` permission. + * + * Tags can help you organize and categorize your resources. You can also use them to scope user + * permissions by granting a user permission to access or change only resources with certain tag + * values. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-alarm.html#cfn-cloudwatch-alarm-tags) + */ + public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + /** * The value to compare with the specified statistic. * @@ -559,6 +578,28 @@ public interface CfnAlarmProps { */ public fun statistic(statistic: String) + /** + * @param tags A list of key-value pairs to associate with the alarm. + * You can associate as many as 50 tags with an alarm. To be able to associate tags with the + * alarm when you create the alarm, you must have the `cloudwatch:TagResource` permission. + * + * Tags can help you organize and categorize your resources. You can also use them to scope user + * permissions by granting a user permission to access or change only resources with certain tag + * values. + */ + public fun tags(tags: List) + + /** + * @param tags A list of key-value pairs to associate with the alarm. + * You can associate as many as 50 tags with an alarm. To be able to associate tags with the + * alarm when you create the alarm, you must have the `cloudwatch:TagResource` permission. + * + * Tags can help you organize and categorize your resources. You can also use them to scope user + * permissions by granting a user permission to access or change only resources with certain tag + * values. + */ + public fun tags(vararg tags: CfnTag) + /** * @param threshold The value to compare with the specified statistic. */ @@ -866,6 +907,30 @@ public interface CfnAlarmProps { cdkBuilder.statistic(statistic) } + /** + * @param tags A list of key-value pairs to associate with the alarm. + * You can associate as many as 50 tags with an alarm. To be able to associate tags with the + * alarm when you create the alarm, you must have the `cloudwatch:TagResource` permission. + * + * Tags can help you organize and categorize your resources. You can also use them to scope user + * permissions by granting a user permission to access or change only resources with certain tag + * values. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * @param tags A list of key-value pairs to associate with the alarm. + * You can associate as many as 50 tags with an alarm. To be able to associate tags with the + * alarm when you create the alarm, you must have the `cloudwatch:TagResource` permission. + * + * Tags can help you organize and categorize your resources. You can also use them to scope user + * permissions by granting a user permission to access or change only resources with certain tag + * values. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + /** * @param threshold The value to compare with the specified statistic. */ @@ -1125,6 +1190,20 @@ public interface CfnAlarmProps { */ override fun statistic(): String? = unwrap(this).getStatistic() + /** + * A list of key-value pairs to associate with the alarm. + * + * You can associate as many as 50 tags with an alarm. To be able to associate tags with the + * alarm when you create the alarm, you must have the `cloudwatch:TagResource` permission. + * + * Tags can help you organize and categorize your resources. You can also use them to scope user + * permissions by granting a user permission to access or change only resources with certain tag + * values. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-alarm.html#cfn-cloudwatch-alarm-tags) + */ + override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + /** * The value to compare with the specified statistic. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudwatch/CfnAnomalyDetector.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudwatch/CfnAnomalyDetector.kt index e314edfac9..68dab7eb7b 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudwatch/CfnAnomalyDetector.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudwatch/CfnAnomalyDetector.kt @@ -49,6 +49,9 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .name("name") * .value("value") * .build())) + * .metricCharacteristics(MetricCharacteristicsProperty.builder() + * .periodicSpikes(false) + * .build()) * .metricMathAnomalyDetector(MetricMathAnomalyDetectorProperty.builder() * .metricDataQueries(List.of(MetricDataQueryProperty.builder() * .id("id") @@ -78,6 +81,7 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .metricName("metricName") * .namespace("namespace") * .singleMetricAnomalyDetector(SingleMetricAnomalyDetectorProperty.builder() + * .accountId("accountId") * .dimensions(List.of(DimensionProperty.builder() * .name("name") * .value("value") @@ -185,6 +189,37 @@ public open class CfnAnomalyDetector( unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) } + /** + * Use this object to include parameters to provide information about your metric to CloudWatch to + * help it build more accurate anomaly detection models. + */ + public open fun metricCharacteristics(): Any? = unwrap(this).getMetricCharacteristics() + + /** + * Use this object to include parameters to provide information about your metric to CloudWatch to + * help it build more accurate anomaly detection models. + */ + public open fun metricCharacteristics(`value`: IResolvable) { + unwrap(this).setMetricCharacteristics(`value`.let(IResolvable::unwrap)) + } + + /** + * Use this object to include parameters to provide information about your metric to CloudWatch to + * help it build more accurate anomaly detection models. + */ + public open fun metricCharacteristics(`value`: MetricCharacteristicsProperty) { + unwrap(this).setMetricCharacteristics(`value`.let(MetricCharacteristicsProperty::unwrap)) + } + + /** + * Use this object to include parameters to provide information about your metric to CloudWatch to + * help it build more accurate anomaly detection models. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("04ff93a2235995b928d63ba193aef641cce90a9efa36aeaa0c47b1f09dbf3b09") + public open fun metricCharacteristics(`value`: MetricCharacteristicsProperty.Builder.() -> Unit): + Unit = metricCharacteristics(MetricCharacteristicsProperty(`value`)) + /** * The CloudWatch metric math expression for this anomaly detector. */ @@ -345,6 +380,45 @@ public open class CfnAnomalyDetector( */ public fun dimensions(vararg dimensions: Any) + /** + * Use this object to include parameters to provide information about your metric to CloudWatch + * to help it build more accurate anomaly detection models. + * + * Currently, it includes the `PeriodicSpikes` parameter. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html#cfn-cloudwatch-anomalydetector-metriccharacteristics) + * @param metricCharacteristics Use this object to include parameters to provide information + * about your metric to CloudWatch to help it build more accurate anomaly detection models. + */ + public fun metricCharacteristics(metricCharacteristics: IResolvable) + + /** + * Use this object to include parameters to provide information about your metric to CloudWatch + * to help it build more accurate anomaly detection models. + * + * Currently, it includes the `PeriodicSpikes` parameter. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html#cfn-cloudwatch-anomalydetector-metriccharacteristics) + * @param metricCharacteristics Use this object to include parameters to provide information + * about your metric to CloudWatch to help it build more accurate anomaly detection models. + */ + public fun metricCharacteristics(metricCharacteristics: MetricCharacteristicsProperty) + + /** + * Use this object to include parameters to provide information about your metric to CloudWatch + * to help it build more accurate anomaly detection models. + * + * Currently, it includes the `PeriodicSpikes` parameter. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html#cfn-cloudwatch-anomalydetector-metriccharacteristics) + * @param metricCharacteristics Use this object to include parameters to provide information + * about your metric to CloudWatch to help it build more accurate anomaly detection models. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("1754c5958995e2f1f4cdca94bbda1e6467089a01657c64023ec0dd73d0aa0c74") + public + fun metricCharacteristics(metricCharacteristics: MetricCharacteristicsProperty.Builder.() -> Unit) + /** * The CloudWatch metric math expression for this anomaly detector. * @@ -510,6 +584,50 @@ public open class CfnAnomalyDetector( */ override fun dimensions(vararg dimensions: Any): Unit = dimensions(dimensions.toList()) + /** + * Use this object to include parameters to provide information about your metric to CloudWatch + * to help it build more accurate anomaly detection models. + * + * Currently, it includes the `PeriodicSpikes` parameter. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html#cfn-cloudwatch-anomalydetector-metriccharacteristics) + * @param metricCharacteristics Use this object to include parameters to provide information + * about your metric to CloudWatch to help it build more accurate anomaly detection models. + */ + override fun metricCharacteristics(metricCharacteristics: IResolvable) { + cdkBuilder.metricCharacteristics(metricCharacteristics.let(IResolvable::unwrap)) + } + + /** + * Use this object to include parameters to provide information about your metric to CloudWatch + * to help it build more accurate anomaly detection models. + * + * Currently, it includes the `PeriodicSpikes` parameter. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html#cfn-cloudwatch-anomalydetector-metriccharacteristics) + * @param metricCharacteristics Use this object to include parameters to provide information + * about your metric to CloudWatch to help it build more accurate anomaly detection models. + */ + override fun metricCharacteristics(metricCharacteristics: MetricCharacteristicsProperty) { + cdkBuilder.metricCharacteristics(metricCharacteristics.let(MetricCharacteristicsProperty::unwrap)) + } + + /** + * Use this object to include parameters to provide information about your metric to CloudWatch + * to help it build more accurate anomaly detection models. + * + * Currently, it includes the `PeriodicSpikes` parameter. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html#cfn-cloudwatch-anomalydetector-metriccharacteristics) + * @param metricCharacteristics Use this object to include parameters to provide information + * about your metric to CloudWatch to help it build more accurate anomaly detection models. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("1754c5958995e2f1f4cdca94bbda1e6467089a01657c64023ec0dd73d0aa0c74") + override + fun metricCharacteristics(metricCharacteristics: MetricCharacteristicsProperty.Builder.() -> Unit): + Unit = metricCharacteristics(MetricCharacteristicsProperty(metricCharacteristics)) + /** * The CloudWatch metric math expression for this anomaly detector. * @@ -958,6 +1076,122 @@ public open class CfnAnomalyDetector( } } + /** + * This object includes parameters that you can use to provide information to CloudWatch to help + * it build more accurate anomaly detection models. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.cloudwatch.*; + * MetricCharacteristicsProperty metricCharacteristicsProperty = + * MetricCharacteristicsProperty.builder() + * .periodicSpikes(false) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metriccharacteristics.html) + */ + public interface MetricCharacteristicsProperty { + /** + * Set this parameter to true if values for this metric consistently include spikes that should + * not be considered to be anomalies. + * + * With this set to true, CloudWatch will expect to see spikes that occurred consistently during + * the model training period, and won't flag future similar spikes as anomalies. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metriccharacteristics.html#cfn-cloudwatch-anomalydetector-metriccharacteristics-periodicspikes) + */ + public fun periodicSpikes(): Any? = unwrap(this).getPeriodicSpikes() + + /** + * A builder for [MetricCharacteristicsProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param periodicSpikes Set this parameter to true if values for this metric consistently + * include spikes that should not be considered to be anomalies. + * With this set to true, CloudWatch will expect to see spikes that occurred consistently + * during the model training period, and won't flag future similar spikes as anomalies. + */ + public fun periodicSpikes(periodicSpikes: Boolean) + + /** + * @param periodicSpikes Set this parameter to true if values for this metric consistently + * include spikes that should not be considered to be anomalies. + * With this set to true, CloudWatch will expect to see spikes that occurred consistently + * during the model training period, and won't flag future similar spikes as anomalies. + */ + public fun periodicSpikes(periodicSpikes: IResolvable) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.cloudwatch.CfnAnomalyDetector.MetricCharacteristicsProperty.Builder + = + software.amazon.awscdk.services.cloudwatch.CfnAnomalyDetector.MetricCharacteristicsProperty.builder() + + /** + * @param periodicSpikes Set this parameter to true if values for this metric consistently + * include spikes that should not be considered to be anomalies. + * With this set to true, CloudWatch will expect to see spikes that occurred consistently + * during the model training period, and won't flag future similar spikes as anomalies. + */ + override fun periodicSpikes(periodicSpikes: Boolean) { + cdkBuilder.periodicSpikes(periodicSpikes) + } + + /** + * @param periodicSpikes Set this parameter to true if values for this metric consistently + * include spikes that should not be considered to be anomalies. + * With this set to true, CloudWatch will expect to see spikes that occurred consistently + * during the model training period, and won't flag future similar spikes as anomalies. + */ + override fun periodicSpikes(periodicSpikes: IResolvable) { + cdkBuilder.periodicSpikes(periodicSpikes.let(IResolvable::unwrap)) + } + + public fun build(): + software.amazon.awscdk.services.cloudwatch.CfnAnomalyDetector.MetricCharacteristicsProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.cloudwatch.CfnAnomalyDetector.MetricCharacteristicsProperty, + ) : CdkObject(cdkObject), MetricCharacteristicsProperty { + /** + * Set this parameter to true if values for this metric consistently include spikes that + * should not be considered to be anomalies. + * + * With this set to true, CloudWatch will expect to see spikes that occurred consistently + * during the model training period, and won't flag future similar spikes as anomalies. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metriccharacteristics.html#cfn-cloudwatch-anomalydetector-metriccharacteristics-periodicspikes) + */ + override fun periodicSpikes(): Any? = unwrap(this).getPeriodicSpikes() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): MetricCharacteristicsProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.cloudwatch.CfnAnomalyDetector.MetricCharacteristicsProperty): + MetricCharacteristicsProperty = CdkObjectWrappers.wrap(cdkObject) as? + MetricCharacteristicsProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: MetricCharacteristicsProperty): + software.amazon.awscdk.services.cloudwatch.CfnAnomalyDetector.MetricCharacteristicsProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.cloudwatch.CfnAnomalyDetector.MetricCharacteristicsProperty + } + } + /** * This structure is used in both `GetMetricData` and `PutMetricAlarm` . * @@ -2285,6 +2519,7 @@ public open class CfnAnomalyDetector( * import io.cloudshiftdev.awscdk.services.cloudwatch.*; * SingleMetricAnomalyDetectorProperty singleMetricAnomalyDetectorProperty = * SingleMetricAnomalyDetectorProperty.builder() + * .accountId("accountId") * .dimensions(List.of(DimensionProperty.builder() * .name("name") * .value("value") @@ -2298,6 +2533,16 @@ public open class CfnAnomalyDetector( * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-singlemetricanomalydetector.html) */ public interface SingleMetricAnomalyDetectorProperty { + /** + * If the CloudWatch metric that provides the time series that the anomaly detector uses as + * input is in another account, specify that account ID here. + * + * If you omit this parameter, the current account is used. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-singlemetricanomalydetector.html#cfn-cloudwatch-anomalydetector-singlemetricanomalydetector-accountid) + */ + public fun accountId(): String? = unwrap(this).getAccountId() + /** * The metric dimensions to create the anomaly detection model for. * @@ -2331,6 +2576,13 @@ public open class CfnAnomalyDetector( */ @CdkDslMarker public interface Builder { + /** + * @param accountId If the CloudWatch metric that provides the time series that the anomaly + * detector uses as input is in another account, specify that account ID here. + * If you omit this parameter, the current account is used. + */ + public fun accountId(accountId: String) + /** * @param dimensions The metric dimensions to create the anomaly detection model for. */ @@ -2368,6 +2620,15 @@ public open class CfnAnomalyDetector( = software.amazon.awscdk.services.cloudwatch.CfnAnomalyDetector.SingleMetricAnomalyDetectorProperty.builder() + /** + * @param accountId If the CloudWatch metric that provides the time series that the anomaly + * detector uses as input is in another account, specify that account ID here. + * If you omit this parameter, the current account is used. + */ + override fun accountId(accountId: String) { + cdkBuilder.accountId(accountId) + } + /** * @param dimensions The metric dimensions to create the anomaly detection model for. */ @@ -2416,6 +2677,16 @@ public open class CfnAnomalyDetector( private class Wrapper( cdkObject: software.amazon.awscdk.services.cloudwatch.CfnAnomalyDetector.SingleMetricAnomalyDetectorProperty, ) : CdkObject(cdkObject), SingleMetricAnomalyDetectorProperty { + /** + * If the CloudWatch metric that provides the time series that the anomaly detector uses as + * input is in another account, specify that account ID here. + * + * If you omit this parameter, the current account is used. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-singlemetricanomalydetector.html#cfn-cloudwatch-anomalydetector-singlemetricanomalydetector-accountid) + */ + override fun accountId(): String? = unwrap(this).getAccountId() + /** * The metric dimensions to create the anomaly detection model for. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudwatch/CfnAnomalyDetectorProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudwatch/CfnAnomalyDetectorProps.kt index dbddd3f57f..e539173b5f 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudwatch/CfnAnomalyDetectorProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudwatch/CfnAnomalyDetectorProps.kt @@ -33,6 +33,9 @@ import kotlin.jvm.JvmName * .name("name") * .value("value") * .build())) + * .metricCharacteristics(MetricCharacteristicsProperty.builder() + * .periodicSpikes(false) + * .build()) * .metricMathAnomalyDetector(MetricMathAnomalyDetectorProperty.builder() * .metricDataQueries(List.of(MetricDataQueryProperty.builder() * .id("id") @@ -62,6 +65,7 @@ import kotlin.jvm.JvmName * .metricName("metricName") * .namespace("namespace") * .singleMetricAnomalyDetector(SingleMetricAnomalyDetectorProperty.builder() + * .accountId("accountId") * .dimensions(List.of(DimensionProperty.builder() * .name("name") * .value("value") @@ -94,6 +98,16 @@ public interface CfnAnomalyDetectorProps { */ public fun dimensions(): Any? = unwrap(this).getDimensions() + /** + * Use this object to include parameters to provide information about your metric to CloudWatch to + * help it build more accurate anomaly detection models. + * + * Currently, it includes the `PeriodicSpikes` parameter. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html#cfn-cloudwatch-anomalydetector-metriccharacteristics) + */ + public fun metricCharacteristics(): Any? = unwrap(this).getMetricCharacteristics() + /** * The CloudWatch metric math expression for this anomaly detector. * @@ -173,6 +187,31 @@ public interface CfnAnomalyDetectorProps { */ public fun dimensions(vararg dimensions: Any) + /** + * @param metricCharacteristics Use this object to include parameters to provide information + * about your metric to CloudWatch to help it build more accurate anomaly detection models. + * Currently, it includes the `PeriodicSpikes` parameter. + */ + public fun metricCharacteristics(metricCharacteristics: IResolvable) + + /** + * @param metricCharacteristics Use this object to include parameters to provide information + * about your metric to CloudWatch to help it build more accurate anomaly detection models. + * Currently, it includes the `PeriodicSpikes` parameter. + */ + public + fun metricCharacteristics(metricCharacteristics: CfnAnomalyDetector.MetricCharacteristicsProperty) + + /** + * @param metricCharacteristics Use this object to include parameters to provide information + * about your metric to CloudWatch to help it build more accurate anomaly detection models. + * Currently, it includes the `PeriodicSpikes` parameter. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("654cf985810a7c43de41d78bfd9150ff9a04676151f1c39d62bc87069c035555") + public + fun metricCharacteristics(metricCharacteristics: CfnAnomalyDetector.MetricCharacteristicsProperty.Builder.() -> Unit) + /** * @param metricMathAnomalyDetector The CloudWatch metric math expression for this anomaly * detector. @@ -286,6 +325,37 @@ public interface CfnAnomalyDetectorProps { */ override fun dimensions(vararg dimensions: Any): Unit = dimensions(dimensions.toList()) + /** + * @param metricCharacteristics Use this object to include parameters to provide information + * about your metric to CloudWatch to help it build more accurate anomaly detection models. + * Currently, it includes the `PeriodicSpikes` parameter. + */ + override fun metricCharacteristics(metricCharacteristics: IResolvable) { + cdkBuilder.metricCharacteristics(metricCharacteristics.let(IResolvable::unwrap)) + } + + /** + * @param metricCharacteristics Use this object to include parameters to provide information + * about your metric to CloudWatch to help it build more accurate anomaly detection models. + * Currently, it includes the `PeriodicSpikes` parameter. + */ + override + fun metricCharacteristics(metricCharacteristics: CfnAnomalyDetector.MetricCharacteristicsProperty) { + cdkBuilder.metricCharacteristics(metricCharacteristics.let(CfnAnomalyDetector.MetricCharacteristicsProperty::unwrap)) + } + + /** + * @param metricCharacteristics Use this object to include parameters to provide information + * about your metric to CloudWatch to help it build more accurate anomaly detection models. + * Currently, it includes the `PeriodicSpikes` parameter. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("654cf985810a7c43de41d78bfd9150ff9a04676151f1c39d62bc87069c035555") + override + fun metricCharacteristics(metricCharacteristics: CfnAnomalyDetector.MetricCharacteristicsProperty.Builder.() -> Unit): + Unit = + metricCharacteristics(CfnAnomalyDetector.MetricCharacteristicsProperty(metricCharacteristics)) + /** * @param metricMathAnomalyDetector The CloudWatch metric math expression for this anomaly * detector. @@ -387,6 +457,16 @@ public interface CfnAnomalyDetectorProps { */ override fun dimensions(): Any? = unwrap(this).getDimensions() + /** + * Use this object to include parameters to provide information about your metric to CloudWatch + * to help it build more accurate anomaly detection models. + * + * Currently, it includes the `PeriodicSpikes` parameter. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html#cfn-cloudwatch-anomalydetector-metriccharacteristics) + */ + override fun metricCharacteristics(): Any? = unwrap(this).getMetricCharacteristics() + /** * The CloudWatch metric math expression for this anomaly detector. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudwatch/CfnCompositeAlarm.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudwatch/CfnCompositeAlarm.kt index bb17604469..a531a1e0f8 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudwatch/CfnCompositeAlarm.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudwatch/CfnCompositeAlarm.kt @@ -3,8 +3,11 @@ package io.cloudshiftdev.awscdk.services.cloudwatch import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.CfnTag import io.cloudshiftdev.awscdk.IInspectable import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.ITaggableV2 +import io.cloudshiftdev.awscdk.TagManager import io.cloudshiftdev.awscdk.TreeInspector import io.cloudshiftdev.awscdk.common.CdkDslMarker import kotlin.Any @@ -31,8 +34,6 @@ import software.constructs.Construct as SoftwareConstructsConstruct * create a composite alarm that goes into ALARM state only when more than one of the underlying metric * alarms are in ALARM state. * - * Currently, the only alarm actions that can be taken by composite alarms are notifying SNS topics. - * * When this operation creates an alarm, the alarm state is immediately set to INSUFFICIENT_DATA. * The alarm is then evaluated and its state is set appropriately. Any actions associated with the new * state are then executed. For a composite alarm, this initial time after creation is the only time @@ -60,6 +61,10 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .alarmName("alarmName") * .insufficientDataActions(List.of("insufficientDataActions")) * .okActions(List.of("okActions")) + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) * .build(); * ``` * @@ -67,7 +72,7 @@ import software.constructs.Construct as SoftwareConstructsConstruct */ public open class CfnCompositeAlarm( cdkObject: software.amazon.awscdk.services.cloudwatch.CfnCompositeAlarm, -) : CfnResource(cdkObject), IInspectable { +) : CfnResource(cdkObject), IInspectable, ITaggableV2 { public constructor( scope: CloudshiftdevConstructsConstruct, id: String, @@ -209,6 +214,12 @@ public open class CfnCompositeAlarm( */ public open fun attrArn(): String = unwrap(this).getAttrArn() + /** + * Tag Manager which manages the tags for this resource. + */ + public override fun cdkTagManager(): TagManager = + unwrap(this).getCdkTagManager().let(TagManager::wrap) + /** * Examines the CloudFormation resource and discloses attributes. * @@ -257,6 +268,23 @@ public open class CfnCompositeAlarm( */ public open fun okActions(vararg `value`: String): Unit = okActions(`value`.toList()) + /** + * A list of key-value pairs to associate with the alarm. + */ + public open fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * A list of key-value pairs to associate with the alarm. + */ + public open fun tags(`value`: List) { + unwrap(this).setTags(`value`.map(CfnTag::unwrap)) + } + + /** + * A list of key-value pairs to associate with the alarm. + */ + public open fun tags(vararg `value`: CfnTag): Unit = tags(`value`.toList()) + /** * A fluent builder for [io.cloudshiftdev.awscdk.services.cloudwatch.CfnCompositeAlarm]. */ @@ -467,6 +495,36 @@ public open class CfnCompositeAlarm( * other state. */ public fun okActions(vararg okActions: String) + + /** + * A list of key-value pairs to associate with the alarm. + * + * You can associate as many as 50 tags with an alarm. To be able to associate tags with the + * alarm when you create the alarm, you must have the `cloudwatch:TagResource` permission. + * + * Tags can help you organize and categorize your resources. You can also use them to scope user + * permissions by granting a user permission to access or change only resources with certain tag + * values. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-compositealarm.html#cfn-cloudwatch-compositealarm-tags) + * @param tags A list of key-value pairs to associate with the alarm. + */ + public fun tags(tags: List) + + /** + * A list of key-value pairs to associate with the alarm. + * + * You can associate as many as 50 tags with an alarm. To be able to associate tags with the + * alarm when you create the alarm, you must have the `cloudwatch:TagResource` permission. + * + * Tags can help you organize and categorize your resources. You can also use them to scope user + * permissions by granting a user permission to access or change only resources with certain tag + * values. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-compositealarm.html#cfn-cloudwatch-compositealarm-tags) + * @param tags A list of key-value pairs to associate with the alarm. + */ + public fun tags(vararg tags: CfnTag) } private class BuilderImpl( @@ -706,6 +764,38 @@ public open class CfnCompositeAlarm( */ override fun okActions(vararg okActions: String): Unit = okActions(okActions.toList()) + /** + * A list of key-value pairs to associate with the alarm. + * + * You can associate as many as 50 tags with an alarm. To be able to associate tags with the + * alarm when you create the alarm, you must have the `cloudwatch:TagResource` permission. + * + * Tags can help you organize and categorize your resources. You can also use them to scope user + * permissions by granting a user permission to access or change only resources with certain tag + * values. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-compositealarm.html#cfn-cloudwatch-compositealarm-tags) + * @param tags A list of key-value pairs to associate with the alarm. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * A list of key-value pairs to associate with the alarm. + * + * You can associate as many as 50 tags with an alarm. To be able to associate tags with the + * alarm when you create the alarm, you must have the `cloudwatch:TagResource` permission. + * + * Tags can help you organize and categorize your resources. You can also use them to scope user + * permissions by granting a user permission to access or change only resources with certain tag + * values. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-compositealarm.html#cfn-cloudwatch-compositealarm-tags) + * @param tags A list of key-value pairs to associate with the alarm. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + public fun build(): software.amazon.awscdk.services.cloudwatch.CfnCompositeAlarm = cdkBuilder.build() } diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudwatch/CfnCompositeAlarmProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudwatch/CfnCompositeAlarmProps.kt index 62b0024a1c..6c1339e289 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudwatch/CfnCompositeAlarmProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cloudwatch/CfnCompositeAlarmProps.kt @@ -2,6 +2,7 @@ package io.cloudshiftdev.awscdk.services.cloudwatch +import io.cloudshiftdev.awscdk.CfnTag import io.cloudshiftdev.awscdk.IResolvable import io.cloudshiftdev.awscdk.common.CdkDslMarker import io.cloudshiftdev.awscdk.common.CdkObject @@ -34,6 +35,10 @@ import kotlin.collections.List * .alarmName("alarmName") * .insufficientDataActions(List.of("insufficientDataActions")) * .okActions(List.of("okActions")) + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) * .build(); * ``` * @@ -174,6 +179,20 @@ public interface CfnCompositeAlarmProps { */ public fun okActions(): List = unwrap(this).getOkActions() ?: emptyList() + /** + * A list of key-value pairs to associate with the alarm. + * + * You can associate as many as 50 tags with an alarm. To be able to associate tags with the alarm + * when you create the alarm, you must have the `cloudwatch:TagResource` permission. + * + * Tags can help you organize and categorize your resources. You can also use them to scope user + * permissions by granting a user permission to access or change only resources with certain tag + * values. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-compositealarm.html#cfn-cloudwatch-compositealarm-tags) + */ + public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + /** * A builder for [CfnCompositeAlarmProps] */ @@ -320,6 +339,28 @@ public interface CfnCompositeAlarmProps { * in the *Amazon CloudWatch API Reference* . */ public fun okActions(vararg okActions: String) + + /** + * @param tags A list of key-value pairs to associate with the alarm. + * You can associate as many as 50 tags with an alarm. To be able to associate tags with the + * alarm when you create the alarm, you must have the `cloudwatch:TagResource` permission. + * + * Tags can help you organize and categorize your resources. You can also use them to scope user + * permissions by granting a user permission to access or change only resources with certain tag + * values. + */ + public fun tags(tags: List) + + /** + * @param tags A list of key-value pairs to associate with the alarm. + * You can associate as many as 50 tags with an alarm. To be able to associate tags with the + * alarm when you create the alarm, you must have the `cloudwatch:TagResource` permission. + * + * Tags can help you organize and categorize your resources. You can also use them to scope user + * permissions by granting a user permission to access or change only resources with certain tag + * values. + */ + public fun tags(vararg tags: CfnTag) } private class BuilderImpl : Builder { @@ -493,6 +534,30 @@ public interface CfnCompositeAlarmProps { */ override fun okActions(vararg okActions: String): Unit = okActions(okActions.toList()) + /** + * @param tags A list of key-value pairs to associate with the alarm. + * You can associate as many as 50 tags with an alarm. To be able to associate tags with the + * alarm when you create the alarm, you must have the `cloudwatch:TagResource` permission. + * + * Tags can help you organize and categorize your resources. You can also use them to scope user + * permissions by granting a user permission to access or change only resources with certain tag + * values. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * @param tags A list of key-value pairs to associate with the alarm. + * You can associate as many as 50 tags with an alarm. To be able to associate tags with the + * alarm when you create the alarm, you must have the `cloudwatch:TagResource` permission. + * + * Tags can help you organize and categorize your resources. You can also use them to scope user + * permissions by granting a user permission to access or change only resources with certain tag + * values. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + public fun build(): software.amazon.awscdk.services.cloudwatch.CfnCompositeAlarmProps = cdkBuilder.build() } @@ -635,6 +700,20 @@ public interface CfnCompositeAlarmProps { * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-compositealarm.html#cfn-cloudwatch-compositealarm-okactions) */ override fun okActions(): List = unwrap(this).getOkActions() ?: emptyList() + + /** + * A list of key-value pairs to associate with the alarm. + * + * You can associate as many as 50 tags with an alarm. To be able to associate tags with the + * alarm when you create the alarm, you must have the `cloudwatch:TagResource` permission. + * + * Tags can help you organize and categorize your resources. You can also use them to scope user + * permissions by granting a user permission to access or change only resources with certain tag + * values. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-compositealarm.html#cfn-cloudwatch-compositealarm-tags) + */ + override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() } public companion object { diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codeartifact/CfnPackageGroup.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codeartifact/CfnPackageGroup.kt new file mode 100644 index 0000000000..f9985c48eb --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codeartifact/CfnPackageGroup.kt @@ -0,0 +1,971 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.codeartifact + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.ITaggableV2 +import io.cloudshiftdev.awscdk.TagManager +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.jvm.JvmName +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * Creates a package group. + * + * For more information about creating package groups, including example CLI commands, see [Create a + * package group](https://docs.aws.amazon.com/codeartifact/latest/ug/create-package-group.html) in the + * *CodeArtifact User Guide* . + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.codeartifact.*; + * CfnPackageGroup cfnPackageGroup = CfnPackageGroup.Builder.create(this, "MyCfnPackageGroup") + * .domainName("domainName") + * .pattern("pattern") + * // the properties below are optional + * .contactInfo("contactInfo") + * .description("description") + * .domainOwner("domainOwner") + * .originConfiguration(OriginConfigurationProperty.builder() + * .restrictions(RestrictionsProperty.builder() + * .externalUpstream(RestrictionTypeProperty.builder() + * .restrictionMode("restrictionMode") + * // the properties below are optional + * .repositories(List.of("repositories")) + * .build()) + * .internalUpstream(RestrictionTypeProperty.builder() + * .restrictionMode("restrictionMode") + * // the properties below are optional + * .repositories(List.of("repositories")) + * .build()) + * .publish(RestrictionTypeProperty.builder() + * .restrictionMode("restrictionMode") + * // the properties below are optional + * .repositories(List.of("repositories")) + * .build()) + * .build()) + * .build()) + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html) + */ +public open class CfnPackageGroup( + cdkObject: software.amazon.awscdk.services.codeartifact.CfnPackageGroup, +) : CfnResource(cdkObject), IInspectable, ITaggableV2 { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnPackageGroupProps, + ) : + this(software.amazon.awscdk.services.codeartifact.CfnPackageGroup(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnPackageGroupProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnPackageGroupProps.Builder.() -> Unit, + ) : this(scope, id, CfnPackageGroupProps(props) + ) + + /** + * When you pass the logical ID of this resource, the function returns the Amazon Resource Name + * (ARN) of the package group. + */ + public open fun attrArn(): String = unwrap(this).getAttrArn() + + /** + * Tag Manager which manages the tags for this resource. + */ + public override fun cdkTagManager(): TagManager = + unwrap(this).getCdkTagManager().let(TagManager::wrap) + + /** + * The contact information of the package group. + */ + public open fun contactInfo(): String? = unwrap(this).getContactInfo() + + /** + * The contact information of the package group. + */ + public open fun contactInfo(`value`: String) { + unwrap(this).setContactInfo(`value`) + } + + /** + * The description of the package group. + */ + public open fun description(): String? = unwrap(this).getDescription() + + /** + * The description of the package group. + */ + public open fun description(`value`: String) { + unwrap(this).setDescription(`value`) + } + + /** + * The domain that contains the package group. + */ + public open fun domainName(): String = unwrap(this).getDomainName() + + /** + * The domain that contains the package group. + */ + public open fun domainName(`value`: String) { + unwrap(this).setDomainName(`value`) + } + + /** + * The 12-digit account number of the AWS account that owns the domain. + */ + public open fun domainOwner(): String? = unwrap(this).getDomainOwner() + + /** + * The 12-digit account number of the AWS account that owns the domain. + */ + public open fun domainOwner(`value`: String) { + unwrap(this).setDomainOwner(`value`) + } + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * Details about the package origin configuration of a package group. + */ + public open fun originConfiguration(): Any? = unwrap(this).getOriginConfiguration() + + /** + * Details about the package origin configuration of a package group. + */ + public open fun originConfiguration(`value`: IResolvable) { + unwrap(this).setOriginConfiguration(`value`.let(IResolvable::unwrap)) + } + + /** + * Details about the package origin configuration of a package group. + */ + public open fun originConfiguration(`value`: OriginConfigurationProperty) { + unwrap(this).setOriginConfiguration(`value`.let(OriginConfigurationProperty::unwrap)) + } + + /** + * Details about the package origin configuration of a package group. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("9aec916802f70f687350bcb43fd4ace79c6f2d21859e5155692317783db6f4cb") + public open fun originConfiguration(`value`: OriginConfigurationProperty.Builder.() -> Unit): Unit + = originConfiguration(OriginConfigurationProperty(`value`)) + + /** + * The pattern of the package group. + */ + public open fun pattern(): String = unwrap(this).getPattern() + + /** + * The pattern of the package group. + */ + public open fun pattern(`value`: String) { + unwrap(this).setPattern(`value`) + } + + /** + * A list of tags to be applied to the package group. + */ + public open fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * A list of tags to be applied to the package group. + */ + public open fun tags(`value`: List) { + unwrap(this).setTags(`value`.map(CfnTag::unwrap)) + } + + /** + * A list of tags to be applied to the package group. + */ + public open fun tags(vararg `value`: CfnTag): Unit = tags(`value`.toList()) + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.codeartifact.CfnPackageGroup]. + */ + @CdkDslMarker + public interface Builder { + /** + * The contact information of the package group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-contactinfo) + * @param contactInfo The contact information of the package group. + */ + public fun contactInfo(contactInfo: String) + + /** + * The description of the package group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-description) + * @param description The description of the package group. + */ + public fun description(description: String) + + /** + * The domain that contains the package group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-domainname) + * @param domainName The domain that contains the package group. + */ + public fun domainName(domainName: String) + + /** + * The 12-digit account number of the AWS account that owns the domain. + * + * It does not include dashes or spaces. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-domainowner) + * @param domainOwner The 12-digit account number of the AWS account that owns the domain. + */ + public fun domainOwner(domainOwner: String) + + /** + * Details about the package origin configuration of a package group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-originconfiguration) + * @param originConfiguration Details about the package origin configuration of a package group. + * + */ + public fun originConfiguration(originConfiguration: IResolvable) + + /** + * Details about the package origin configuration of a package group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-originconfiguration) + * @param originConfiguration Details about the package origin configuration of a package group. + * + */ + public fun originConfiguration(originConfiguration: OriginConfigurationProperty) + + /** + * Details about the package origin configuration of a package group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-originconfiguration) + * @param originConfiguration Details about the package origin configuration of a package group. + * + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("7c2fbb463a9288de1784e7190069623fa5d908da580e48ff1e45a9d5d7c70f36") + public + fun originConfiguration(originConfiguration: OriginConfigurationProperty.Builder.() -> Unit) + + /** + * The pattern of the package group. + * + * The pattern determines which packages are associated with the package group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-pattern) + * @param pattern The pattern of the package group. + */ + public fun pattern(pattern: String) + + /** + * A list of tags to be applied to the package group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-tags) + * @param tags A list of tags to be applied to the package group. + */ + public fun tags(tags: List) + + /** + * A list of tags to be applied to the package group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-tags) + * @param tags A list of tags to be applied to the package group. + */ + public fun tags(vararg tags: CfnTag) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.services.codeartifact.CfnPackageGroup.Builder = + software.amazon.awscdk.services.codeartifact.CfnPackageGroup.Builder.create(scope, id) + + /** + * The contact information of the package group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-contactinfo) + * @param contactInfo The contact information of the package group. + */ + override fun contactInfo(contactInfo: String) { + cdkBuilder.contactInfo(contactInfo) + } + + /** + * The description of the package group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-description) + * @param description The description of the package group. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * The domain that contains the package group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-domainname) + * @param domainName The domain that contains the package group. + */ + override fun domainName(domainName: String) { + cdkBuilder.domainName(domainName) + } + + /** + * The 12-digit account number of the AWS account that owns the domain. + * + * It does not include dashes or spaces. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-domainowner) + * @param domainOwner The 12-digit account number of the AWS account that owns the domain. + */ + override fun domainOwner(domainOwner: String) { + cdkBuilder.domainOwner(domainOwner) + } + + /** + * Details about the package origin configuration of a package group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-originconfiguration) + * @param originConfiguration Details about the package origin configuration of a package group. + * + */ + override fun originConfiguration(originConfiguration: IResolvable) { + cdkBuilder.originConfiguration(originConfiguration.let(IResolvable::unwrap)) + } + + /** + * Details about the package origin configuration of a package group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-originconfiguration) + * @param originConfiguration Details about the package origin configuration of a package group. + * + */ + override fun originConfiguration(originConfiguration: OriginConfigurationProperty) { + cdkBuilder.originConfiguration(originConfiguration.let(OriginConfigurationProperty::unwrap)) + } + + /** + * Details about the package origin configuration of a package group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-originconfiguration) + * @param originConfiguration Details about the package origin configuration of a package group. + * + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("7c2fbb463a9288de1784e7190069623fa5d908da580e48ff1e45a9d5d7c70f36") + override + fun originConfiguration(originConfiguration: OriginConfigurationProperty.Builder.() -> Unit): + Unit = originConfiguration(OriginConfigurationProperty(originConfiguration)) + + /** + * The pattern of the package group. + * + * The pattern determines which packages are associated with the package group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-pattern) + * @param pattern The pattern of the package group. + */ + override fun pattern(pattern: String) { + cdkBuilder.pattern(pattern) + } + + /** + * A list of tags to be applied to the package group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-tags) + * @param tags A list of tags to be applied to the package group. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * A list of tags to be applied to the package group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-tags) + * @param tags A list of tags to be applied to the package group. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + public fun build(): software.amazon.awscdk.services.codeartifact.CfnPackageGroup = + cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.codeartifact.CfnPackageGroup.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnPackageGroup { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnPackageGroup(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.codeartifact.CfnPackageGroup): + CfnPackageGroup = CfnPackageGroup(cdkObject) + + internal fun unwrap(wrapped: CfnPackageGroup): + software.amazon.awscdk.services.codeartifact.CfnPackageGroup = wrapped.cdkObject as + software.amazon.awscdk.services.codeartifact.CfnPackageGroup + } + + /** + * The package group origin configuration that determines how package versions can enter + * repositories. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.codeartifact.*; + * OriginConfigurationProperty originConfigurationProperty = OriginConfigurationProperty.builder() + * .restrictions(RestrictionsProperty.builder() + * .externalUpstream(RestrictionTypeProperty.builder() + * .restrictionMode("restrictionMode") + * // the properties below are optional + * .repositories(List.of("repositories")) + * .build()) + * .internalUpstream(RestrictionTypeProperty.builder() + * .restrictionMode("restrictionMode") + * // the properties below are optional + * .repositories(List.of("repositories")) + * .build()) + * .publish(RestrictionTypeProperty.builder() + * .restrictionMode("restrictionMode") + * // the properties below are optional + * .repositories(List.of("repositories")) + * .build()) + * .build()) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codeartifact-packagegroup-originconfiguration.html) + */ + public interface OriginConfigurationProperty { + /** + * The origin configuration settings that determine how package versions can enter repositories. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codeartifact-packagegroup-originconfiguration.html#cfn-codeartifact-packagegroup-originconfiguration-restrictions) + */ + public fun restrictions(): Any + + /** + * A builder for [OriginConfigurationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param restrictions The origin configuration settings that determine how package versions + * can enter repositories. + */ + public fun restrictions(restrictions: IResolvable) + + /** + * @param restrictions The origin configuration settings that determine how package versions + * can enter repositories. + */ + public fun restrictions(restrictions: RestrictionsProperty) + + /** + * @param restrictions The origin configuration settings that determine how package versions + * can enter repositories. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("49591ad7fa504091032d0a38e28f247e7fe0849ab874454fc6cf875eb5852e6e") + public fun restrictions(restrictions: RestrictionsProperty.Builder.() -> Unit) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.codeartifact.CfnPackageGroup.OriginConfigurationProperty.Builder + = + software.amazon.awscdk.services.codeartifact.CfnPackageGroup.OriginConfigurationProperty.builder() + + /** + * @param restrictions The origin configuration settings that determine how package versions + * can enter repositories. + */ + override fun restrictions(restrictions: IResolvable) { + cdkBuilder.restrictions(restrictions.let(IResolvable::unwrap)) + } + + /** + * @param restrictions The origin configuration settings that determine how package versions + * can enter repositories. + */ + override fun restrictions(restrictions: RestrictionsProperty) { + cdkBuilder.restrictions(restrictions.let(RestrictionsProperty::unwrap)) + } + + /** + * @param restrictions The origin configuration settings that determine how package versions + * can enter repositories. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("49591ad7fa504091032d0a38e28f247e7fe0849ab874454fc6cf875eb5852e6e") + override fun restrictions(restrictions: RestrictionsProperty.Builder.() -> Unit): Unit = + restrictions(RestrictionsProperty(restrictions)) + + public fun build(): + software.amazon.awscdk.services.codeartifact.CfnPackageGroup.OriginConfigurationProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.codeartifact.CfnPackageGroup.OriginConfigurationProperty, + ) : CdkObject(cdkObject), OriginConfigurationProperty { + /** + * The origin configuration settings that determine how package versions can enter + * repositories. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codeartifact-packagegroup-originconfiguration.html#cfn-codeartifact-packagegroup-originconfiguration-restrictions) + */ + override fun restrictions(): Any = unwrap(this).getRestrictions() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): OriginConfigurationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.codeartifact.CfnPackageGroup.OriginConfigurationProperty): + OriginConfigurationProperty = CdkObjectWrappers.wrap(cdkObject) as? + OriginConfigurationProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: OriginConfigurationProperty): + software.amazon.awscdk.services.codeartifact.CfnPackageGroup.OriginConfigurationProperty = + (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.codeartifact.CfnPackageGroup.OriginConfigurationProperty + } + } + + /** + * The `RestrictionType` property type specifies the package group origin configuration + * restriction mode, and the repositories when the `RestrictionMode` is set to + * `ALLOW_SPECIFIC_REPOSITORIES` . + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.codeartifact.*; + * RestrictionTypeProperty restrictionTypeProperty = RestrictionTypeProperty.builder() + * .restrictionMode("restrictionMode") + * // the properties below are optional + * .repositories(List.of("repositories")) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codeartifact-packagegroup-restrictiontype.html) + */ + public interface RestrictionTypeProperty { + /** + * The repositories to add to the allowed repositories list. + * + * The allowed repositories list is used when the `RestrictionMode` is set to + * `ALLOW_SPECIFIC_REPOSITORIES` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codeartifact-packagegroup-restrictiontype.html#cfn-codeartifact-packagegroup-restrictiontype-repositories) + */ + public fun repositories(): List = unwrap(this).getRepositories() ?: emptyList() + + /** + * The package group origin restriction setting. + * + * When the value is `INHERIT` , the value is set to the value of the first parent package group + * which does not have a value of `INHERIT` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codeartifact-packagegroup-restrictiontype.html#cfn-codeartifact-packagegroup-restrictiontype-restrictionmode) + */ + public fun restrictionMode(): String + + /** + * A builder for [RestrictionTypeProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param repositories The repositories to add to the allowed repositories list. + * The allowed repositories list is used when the `RestrictionMode` is set to + * `ALLOW_SPECIFIC_REPOSITORIES` . + */ + public fun repositories(repositories: List) + + /** + * @param repositories The repositories to add to the allowed repositories list. + * The allowed repositories list is used when the `RestrictionMode` is set to + * `ALLOW_SPECIFIC_REPOSITORIES` . + */ + public fun repositories(vararg repositories: String) + + /** + * @param restrictionMode The package group origin restriction setting. + * When the value is `INHERIT` , the value is set to the value of the first parent package + * group which does not have a value of `INHERIT` . + */ + public fun restrictionMode(restrictionMode: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.codeartifact.CfnPackageGroup.RestrictionTypeProperty.Builder + = + software.amazon.awscdk.services.codeartifact.CfnPackageGroup.RestrictionTypeProperty.builder() + + /** + * @param repositories The repositories to add to the allowed repositories list. + * The allowed repositories list is used when the `RestrictionMode` is set to + * `ALLOW_SPECIFIC_REPOSITORIES` . + */ + override fun repositories(repositories: List) { + cdkBuilder.repositories(repositories) + } + + /** + * @param repositories The repositories to add to the allowed repositories list. + * The allowed repositories list is used when the `RestrictionMode` is set to + * `ALLOW_SPECIFIC_REPOSITORIES` . + */ + override fun repositories(vararg repositories: String): Unit = + repositories(repositories.toList()) + + /** + * @param restrictionMode The package group origin restriction setting. + * When the value is `INHERIT` , the value is set to the value of the first parent package + * group which does not have a value of `INHERIT` . + */ + override fun restrictionMode(restrictionMode: String) { + cdkBuilder.restrictionMode(restrictionMode) + } + + public fun build(): + software.amazon.awscdk.services.codeartifact.CfnPackageGroup.RestrictionTypeProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.codeartifact.CfnPackageGroup.RestrictionTypeProperty, + ) : CdkObject(cdkObject), RestrictionTypeProperty { + /** + * The repositories to add to the allowed repositories list. + * + * The allowed repositories list is used when the `RestrictionMode` is set to + * `ALLOW_SPECIFIC_REPOSITORIES` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codeartifact-packagegroup-restrictiontype.html#cfn-codeartifact-packagegroup-restrictiontype-repositories) + */ + override fun repositories(): List = unwrap(this).getRepositories() ?: emptyList() + + /** + * The package group origin restriction setting. + * + * When the value is `INHERIT` , the value is set to the value of the first parent package + * group which does not have a value of `INHERIT` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codeartifact-packagegroup-restrictiontype.html#cfn-codeartifact-packagegroup-restrictiontype-restrictionmode) + */ + override fun restrictionMode(): String = unwrap(this).getRestrictionMode() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): RestrictionTypeProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.codeartifact.CfnPackageGroup.RestrictionTypeProperty): + RestrictionTypeProperty = CdkObjectWrappers.wrap(cdkObject) as? RestrictionTypeProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: RestrictionTypeProperty): + software.amazon.awscdk.services.codeartifact.CfnPackageGroup.RestrictionTypeProperty = + (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.codeartifact.CfnPackageGroup.RestrictionTypeProperty + } + } + + /** + * Contains information about the configured restrictions of the origin controls of a package + * group. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.codeartifact.*; + * RestrictionsProperty restrictionsProperty = RestrictionsProperty.builder() + * .externalUpstream(RestrictionTypeProperty.builder() + * .restrictionMode("restrictionMode") + * // the properties below are optional + * .repositories(List.of("repositories")) + * .build()) + * .internalUpstream(RestrictionTypeProperty.builder() + * .restrictionMode("restrictionMode") + * // the properties below are optional + * .repositories(List.of("repositories")) + * .build()) + * .publish(RestrictionTypeProperty.builder() + * .restrictionMode("restrictionMode") + * // the properties below are optional + * .repositories(List.of("repositories")) + * .build()) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codeartifact-packagegroup-restrictions.html) + */ + public interface RestrictionsProperty { + /** + * The package group origin restriction setting for external, upstream repositories. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codeartifact-packagegroup-restrictions.html#cfn-codeartifact-packagegroup-restrictions-externalupstream) + */ + public fun externalUpstream(): Any? = unwrap(this).getExternalUpstream() + + /** + * The package group origin restriction setting for internal, upstream repositories. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codeartifact-packagegroup-restrictions.html#cfn-codeartifact-packagegroup-restrictions-internalupstream) + */ + public fun internalUpstream(): Any? = unwrap(this).getInternalUpstream() + + /** + * The package group origin restriction setting for publishing packages. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codeartifact-packagegroup-restrictions.html#cfn-codeartifact-packagegroup-restrictions-publish) + */ + public fun publish(): Any? = unwrap(this).getPublish() + + /** + * A builder for [RestrictionsProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param externalUpstream The package group origin restriction setting for external, upstream + * repositories. + */ + public fun externalUpstream(externalUpstream: IResolvable) + + /** + * @param externalUpstream The package group origin restriction setting for external, upstream + * repositories. + */ + public fun externalUpstream(externalUpstream: RestrictionTypeProperty) + + /** + * @param externalUpstream The package group origin restriction setting for external, upstream + * repositories. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("c9bfa5c05a75fb1643430c59944f73bc7d5acfae487abd6ee6aefe42dcfad6f1") + public fun externalUpstream(externalUpstream: RestrictionTypeProperty.Builder.() -> Unit) + + /** + * @param internalUpstream The package group origin restriction setting for internal, upstream + * repositories. + */ + public fun internalUpstream(internalUpstream: IResolvable) + + /** + * @param internalUpstream The package group origin restriction setting for internal, upstream + * repositories. + */ + public fun internalUpstream(internalUpstream: RestrictionTypeProperty) + + /** + * @param internalUpstream The package group origin restriction setting for internal, upstream + * repositories. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("9df2be732f8c2e76fa22da73deeb5bacdc6fdae0a7ad4bcaaa288d801cc5b893") + public fun internalUpstream(internalUpstream: RestrictionTypeProperty.Builder.() -> Unit) + + /** + * @param publish The package group origin restriction setting for publishing packages. + */ + public fun publish(publish: IResolvable) + + /** + * @param publish The package group origin restriction setting for publishing packages. + */ + public fun publish(publish: RestrictionTypeProperty) + + /** + * @param publish The package group origin restriction setting for publishing packages. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("c78faf7115a7c8782be73eae7a537a294d18c27a2a05b4399f927b0dabcd6544") + public fun publish(publish: RestrictionTypeProperty.Builder.() -> Unit) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.codeartifact.CfnPackageGroup.RestrictionsProperty.Builder + = + software.amazon.awscdk.services.codeartifact.CfnPackageGroup.RestrictionsProperty.builder() + + /** + * @param externalUpstream The package group origin restriction setting for external, upstream + * repositories. + */ + override fun externalUpstream(externalUpstream: IResolvable) { + cdkBuilder.externalUpstream(externalUpstream.let(IResolvable::unwrap)) + } + + /** + * @param externalUpstream The package group origin restriction setting for external, upstream + * repositories. + */ + override fun externalUpstream(externalUpstream: RestrictionTypeProperty) { + cdkBuilder.externalUpstream(externalUpstream.let(RestrictionTypeProperty::unwrap)) + } + + /** + * @param externalUpstream The package group origin restriction setting for external, upstream + * repositories. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("c9bfa5c05a75fb1643430c59944f73bc7d5acfae487abd6ee6aefe42dcfad6f1") + override fun externalUpstream(externalUpstream: RestrictionTypeProperty.Builder.() -> Unit): + Unit = externalUpstream(RestrictionTypeProperty(externalUpstream)) + + /** + * @param internalUpstream The package group origin restriction setting for internal, upstream + * repositories. + */ + override fun internalUpstream(internalUpstream: IResolvable) { + cdkBuilder.internalUpstream(internalUpstream.let(IResolvable::unwrap)) + } + + /** + * @param internalUpstream The package group origin restriction setting for internal, upstream + * repositories. + */ + override fun internalUpstream(internalUpstream: RestrictionTypeProperty) { + cdkBuilder.internalUpstream(internalUpstream.let(RestrictionTypeProperty::unwrap)) + } + + /** + * @param internalUpstream The package group origin restriction setting for internal, upstream + * repositories. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("9df2be732f8c2e76fa22da73deeb5bacdc6fdae0a7ad4bcaaa288d801cc5b893") + override fun internalUpstream(internalUpstream: RestrictionTypeProperty.Builder.() -> Unit): + Unit = internalUpstream(RestrictionTypeProperty(internalUpstream)) + + /** + * @param publish The package group origin restriction setting for publishing packages. + */ + override fun publish(publish: IResolvable) { + cdkBuilder.publish(publish.let(IResolvable::unwrap)) + } + + /** + * @param publish The package group origin restriction setting for publishing packages. + */ + override fun publish(publish: RestrictionTypeProperty) { + cdkBuilder.publish(publish.let(RestrictionTypeProperty::unwrap)) + } + + /** + * @param publish The package group origin restriction setting for publishing packages. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("c78faf7115a7c8782be73eae7a537a294d18c27a2a05b4399f927b0dabcd6544") + override fun publish(publish: RestrictionTypeProperty.Builder.() -> Unit): Unit = + publish(RestrictionTypeProperty(publish)) + + public fun build(): + software.amazon.awscdk.services.codeartifact.CfnPackageGroup.RestrictionsProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.codeartifact.CfnPackageGroup.RestrictionsProperty, + ) : CdkObject(cdkObject), RestrictionsProperty { + /** + * The package group origin restriction setting for external, upstream repositories. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codeartifact-packagegroup-restrictions.html#cfn-codeartifact-packagegroup-restrictions-externalupstream) + */ + override fun externalUpstream(): Any? = unwrap(this).getExternalUpstream() + + /** + * The package group origin restriction setting for internal, upstream repositories. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codeartifact-packagegroup-restrictions.html#cfn-codeartifact-packagegroup-restrictions-internalupstream) + */ + override fun internalUpstream(): Any? = unwrap(this).getInternalUpstream() + + /** + * The package group origin restriction setting for publishing packages. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codeartifact-packagegroup-restrictions.html#cfn-codeartifact-packagegroup-restrictions-publish) + */ + override fun publish(): Any? = unwrap(this).getPublish() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): RestrictionsProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.codeartifact.CfnPackageGroup.RestrictionsProperty): + RestrictionsProperty = CdkObjectWrappers.wrap(cdkObject) as? RestrictionsProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: RestrictionsProperty): + software.amazon.awscdk.services.codeartifact.CfnPackageGroup.RestrictionsProperty = + (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.codeartifact.CfnPackageGroup.RestrictionsProperty + } + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codeartifact/CfnPackageGroupProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codeartifact/CfnPackageGroupProps.kt new file mode 100644 index 0000000000..c9efd0b0db --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codeartifact/CfnPackageGroupProps.kt @@ -0,0 +1,328 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.codeartifact + +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.jvm.JvmName + +/** + * Properties for defining a `CfnPackageGroup`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.codeartifact.*; + * CfnPackageGroupProps cfnPackageGroupProps = CfnPackageGroupProps.builder() + * .domainName("domainName") + * .pattern("pattern") + * // the properties below are optional + * .contactInfo("contactInfo") + * .description("description") + * .domainOwner("domainOwner") + * .originConfiguration(OriginConfigurationProperty.builder() + * .restrictions(RestrictionsProperty.builder() + * .externalUpstream(RestrictionTypeProperty.builder() + * .restrictionMode("restrictionMode") + * // the properties below are optional + * .repositories(List.of("repositories")) + * .build()) + * .internalUpstream(RestrictionTypeProperty.builder() + * .restrictionMode("restrictionMode") + * // the properties below are optional + * .repositories(List.of("repositories")) + * .build()) + * .publish(RestrictionTypeProperty.builder() + * .restrictionMode("restrictionMode") + * // the properties below are optional + * .repositories(List.of("repositories")) + * .build()) + * .build()) + * .build()) + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html) + */ +public interface CfnPackageGroupProps { + /** + * The contact information of the package group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-contactinfo) + */ + public fun contactInfo(): String? = unwrap(this).getContactInfo() + + /** + * The description of the package group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-description) + */ + public fun description(): String? = unwrap(this).getDescription() + + /** + * The domain that contains the package group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-domainname) + */ + public fun domainName(): String + + /** + * The 12-digit account number of the AWS account that owns the domain. + * + * It does not include dashes or spaces. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-domainowner) + */ + public fun domainOwner(): String? = unwrap(this).getDomainOwner() + + /** + * Details about the package origin configuration of a package group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-originconfiguration) + */ + public fun originConfiguration(): Any? = unwrap(this).getOriginConfiguration() + + /** + * The pattern of the package group. + * + * The pattern determines which packages are associated with the package group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-pattern) + */ + public fun pattern(): String + + /** + * A list of tags to be applied to the package group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-tags) + */ + public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * A builder for [CfnPackageGroupProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param contactInfo The contact information of the package group. + */ + public fun contactInfo(contactInfo: String) + + /** + * @param description The description of the package group. + */ + public fun description(description: String) + + /** + * @param domainName The domain that contains the package group. + */ + public fun domainName(domainName: String) + + /** + * @param domainOwner The 12-digit account number of the AWS account that owns the domain. + * It does not include dashes or spaces. + */ + public fun domainOwner(domainOwner: String) + + /** + * @param originConfiguration Details about the package origin configuration of a package group. + */ + public fun originConfiguration(originConfiguration: IResolvable) + + /** + * @param originConfiguration Details about the package origin configuration of a package group. + */ + public fun originConfiguration(originConfiguration: CfnPackageGroup.OriginConfigurationProperty) + + /** + * @param originConfiguration Details about the package origin configuration of a package group. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("8c3c3e0f99bb67dba7271f4b17ec518526dcabaf9ba6eb537dd92f5cc9f57d5f") + public + fun originConfiguration(originConfiguration: CfnPackageGroup.OriginConfigurationProperty.Builder.() -> Unit) + + /** + * @param pattern The pattern of the package group. + * The pattern determines which packages are associated with the package group. + */ + public fun pattern(pattern: String) + + /** + * @param tags A list of tags to be applied to the package group. + */ + public fun tags(tags: List) + + /** + * @param tags A list of tags to be applied to the package group. + */ + public fun tags(vararg tags: CfnTag) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.codeartifact.CfnPackageGroupProps.Builder = + software.amazon.awscdk.services.codeartifact.CfnPackageGroupProps.builder() + + /** + * @param contactInfo The contact information of the package group. + */ + override fun contactInfo(contactInfo: String) { + cdkBuilder.contactInfo(contactInfo) + } + + /** + * @param description The description of the package group. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * @param domainName The domain that contains the package group. + */ + override fun domainName(domainName: String) { + cdkBuilder.domainName(domainName) + } + + /** + * @param domainOwner The 12-digit account number of the AWS account that owns the domain. + * It does not include dashes or spaces. + */ + override fun domainOwner(domainOwner: String) { + cdkBuilder.domainOwner(domainOwner) + } + + /** + * @param originConfiguration Details about the package origin configuration of a package group. + */ + override fun originConfiguration(originConfiguration: IResolvable) { + cdkBuilder.originConfiguration(originConfiguration.let(IResolvable::unwrap)) + } + + /** + * @param originConfiguration Details about the package origin configuration of a package group. + */ + override + fun originConfiguration(originConfiguration: CfnPackageGroup.OriginConfigurationProperty) { + cdkBuilder.originConfiguration(originConfiguration.let(CfnPackageGroup.OriginConfigurationProperty::unwrap)) + } + + /** + * @param originConfiguration Details about the package origin configuration of a package group. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("8c3c3e0f99bb67dba7271f4b17ec518526dcabaf9ba6eb537dd92f5cc9f57d5f") + override + fun originConfiguration(originConfiguration: CfnPackageGroup.OriginConfigurationProperty.Builder.() -> Unit): + Unit = originConfiguration(CfnPackageGroup.OriginConfigurationProperty(originConfiguration)) + + /** + * @param pattern The pattern of the package group. + * The pattern determines which packages are associated with the package group. + */ + override fun pattern(pattern: String) { + cdkBuilder.pattern(pattern) + } + + /** + * @param tags A list of tags to be applied to the package group. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * @param tags A list of tags to be applied to the package group. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + public fun build(): software.amazon.awscdk.services.codeartifact.CfnPackageGroupProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.codeartifact.CfnPackageGroupProps, + ) : CdkObject(cdkObject), CfnPackageGroupProps { + /** + * The contact information of the package group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-contactinfo) + */ + override fun contactInfo(): String? = unwrap(this).getContactInfo() + + /** + * The description of the package group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-description) + */ + override fun description(): String? = unwrap(this).getDescription() + + /** + * The domain that contains the package group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-domainname) + */ + override fun domainName(): String = unwrap(this).getDomainName() + + /** + * The 12-digit account number of the AWS account that owns the domain. + * + * It does not include dashes or spaces. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-domainowner) + */ + override fun domainOwner(): String? = unwrap(this).getDomainOwner() + + /** + * Details about the package origin configuration of a package group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-originconfiguration) + */ + override fun originConfiguration(): Any? = unwrap(this).getOriginConfiguration() + + /** + * The pattern of the package group. + * + * The pattern determines which packages are associated with the package group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-pattern) + */ + override fun pattern(): String = unwrap(this).getPattern() + + /** + * A list of tags to be applied to the package group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-packagegroup.html#cfn-codeartifact-packagegroup-tags) + */ + override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnPackageGroupProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.codeartifact.CfnPackageGroupProps): + CfnPackageGroupProps = CdkObjectWrappers.wrap(cdkObject) as? CfnPackageGroupProps ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnPackageGroupProps): + software.amazon.awscdk.services.codeartifact.CfnPackageGroupProps = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.codeartifact.CfnPackageGroupProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codeartifact/CfnRepository.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codeartifact/CfnRepository.kt index 2611775daa..c6b47684c8 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codeartifact/CfnRepository.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codeartifact/CfnRepository.kt @@ -253,6 +253,10 @@ public open class CfnRepository( /** * An array of external connections associated with the repository. * + * For more information, see [Supported external connection + * repositories](https://docs.aws.amazon.com/codeartifact/latest/ug/external-connection.html#supported-public-repositories) + * in the *CodeArtifact user guide* . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-repository.html#cfn-codeartifact-repository-externalconnections) * @param externalConnections An array of external connections associated with the repository. */ @@ -261,6 +265,10 @@ public open class CfnRepository( /** * An array of external connections associated with the repository. * + * For more information, see [Supported external connection + * repositories](https://docs.aws.amazon.com/codeartifact/latest/ug/external-connection.html#supported-public-repositories) + * in the *CodeArtifact user guide* . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-repository.html#cfn-codeartifact-repository-externalconnections) * @param externalConnections An array of external connections associated with the repository. */ @@ -364,6 +372,10 @@ public open class CfnRepository( /** * An array of external connections associated with the repository. * + * For more information, see [Supported external connection + * repositories](https://docs.aws.amazon.com/codeartifact/latest/ug/external-connection.html#supported-public-repositories) + * in the *CodeArtifact user guide* . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-repository.html#cfn-codeartifact-repository-externalconnections) * @param externalConnections An array of external connections associated with the repository. */ @@ -374,6 +386,10 @@ public open class CfnRepository( /** * An array of external connections associated with the repository. * + * For more information, see [Supported external connection + * repositories](https://docs.aws.amazon.com/codeartifact/latest/ug/external-connection.html#supported-public-repositories) + * in the *CodeArtifact user guide* . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-repository.html#cfn-codeartifact-repository-externalconnections) * @param externalConnections An array of external connections associated with the repository. */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codeartifact/CfnRepositoryProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codeartifact/CfnRepositoryProps.kt index f8926943fc..93b6c4ef9a 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codeartifact/CfnRepositoryProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codeartifact/CfnRepositoryProps.kt @@ -64,6 +64,10 @@ public interface CfnRepositoryProps { /** * An array of external connections associated with the repository. * + * For more information, see [Supported external connection + * repositories](https://docs.aws.amazon.com/codeartifact/latest/ug/external-connection.html#supported-public-repositories) + * in the *CodeArtifact user guide* . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-repository.html#cfn-codeartifact-repository-externalconnections) */ public fun externalConnections(): List = unwrap(this).getExternalConnections() ?: @@ -123,11 +127,17 @@ public interface CfnRepositoryProps { /** * @param externalConnections An array of external connections associated with the repository. + * For more information, see [Supported external connection + * repositories](https://docs.aws.amazon.com/codeartifact/latest/ug/external-connection.html#supported-public-repositories) + * in the *CodeArtifact user guide* . */ public fun externalConnections(externalConnections: List) /** * @param externalConnections An array of external connections associated with the repository. + * For more information, see [Supported external connection + * repositories](https://docs.aws.amazon.com/codeartifact/latest/ug/external-connection.html#supported-public-repositories) + * in the *CodeArtifact user guide* . */ public fun externalConnections(vararg externalConnections: String) @@ -196,6 +206,9 @@ public interface CfnRepositoryProps { /** * @param externalConnections An array of external connections associated with the repository. + * For more information, see [Supported external connection + * repositories](https://docs.aws.amazon.com/codeartifact/latest/ug/external-connection.html#supported-public-repositories) + * in the *CodeArtifact user guide* . */ override fun externalConnections(externalConnections: List) { cdkBuilder.externalConnections(externalConnections) @@ -203,6 +216,9 @@ public interface CfnRepositoryProps { /** * @param externalConnections An array of external connections associated with the repository. + * For more information, see [Supported external connection + * repositories](https://docs.aws.amazon.com/codeartifact/latest/ug/external-connection.html#supported-public-repositories) + * in the *CodeArtifact user guide* . */ override fun externalConnections(vararg externalConnections: String): Unit = externalConnections(externalConnections.toList()) @@ -283,6 +299,10 @@ public interface CfnRepositoryProps { /** * An array of external connections associated with the repository. * + * For more information, see [Supported external connection + * repositories](https://docs.aws.amazon.com/codeartifact/latest/ug/external-connection.html#supported-public-repositories) + * in the *CodeArtifact user guide* . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-repository.html#cfn-codeartifact-repository-externalconnections) */ override fun externalConnections(): List = unwrap(this).getExternalConnections() ?: diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codebuild/CfnProject.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codebuild/CfnProject.kt index a229d64059..dceadbfc62 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codebuild/CfnProject.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codebuild/CfnProject.kt @@ -3290,7 +3290,22 @@ public open class CfnProject( * * * `BUILD_GENERAL1_SMALL` : Use up to 3 GB memory and 2 vCPUs for builds. * * `BUILD_GENERAL1_MEDIUM` : Use up to 7 GB memory and 4 vCPUs for builds. - * * `BUILD_GENERAL1_LARGE` : Use up to 15 GB memory and 8 vCPUs for builds. + * * `BUILD_GENERAL1_LARGE` : Use up to 16 GB memory and 8 vCPUs for builds, depending on your + * environment type. + * * `BUILD_GENERAL1_XLARGE` : Use up to 70 GB memory and 36 vCPUs for builds, depending on your + * environment type. + * * `BUILD_GENERAL1_2XLARGE` : Use up to 145 GB memory, 72 vCPUs, and 824 GB of SSD storage for + * builds. This compute type supports Docker images up to 100 GB uncompressed. + * * `BUILD_LAMBDA_1GB` : Use up to 1 GB memory for builds. Only available for environment type + * `LINUX_LAMBDA_CONTAINER` and `ARM_LAMBDA_CONTAINER` . + * * `BUILD_LAMBDA_2GB` : Use up to 2 GB memory for builds. Only available for environment type + * `LINUX_LAMBDA_CONTAINER` and `ARM_LAMBDA_CONTAINER` . + * * `BUILD_LAMBDA_4GB` : Use up to 4 GB memory for builds. Only available for environment type + * `LINUX_LAMBDA_CONTAINER` and `ARM_LAMBDA_CONTAINER` . + * * `BUILD_LAMBDA_8GB` : Use up to 8 GB memory for builds. Only available for environment type + * `LINUX_LAMBDA_CONTAINER` and `ARM_LAMBDA_CONTAINER` . + * * `BUILD_LAMBDA_10GB` : Use up to 10 GB memory for builds. Only available for environment + * type `LINUX_LAMBDA_CONTAINER` and `ARM_LAMBDA_CONTAINER` . * * For more information, see [Build Environment Compute * Types](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html) @@ -3444,7 +3459,22 @@ public open class CfnProject( * * * `BUILD_GENERAL1_SMALL` : Use up to 3 GB memory and 2 vCPUs for builds. * * `BUILD_GENERAL1_MEDIUM` : Use up to 7 GB memory and 4 vCPUs for builds. - * * `BUILD_GENERAL1_LARGE` : Use up to 15 GB memory and 8 vCPUs for builds. + * * `BUILD_GENERAL1_LARGE` : Use up to 16 GB memory and 8 vCPUs for builds, depending on your + * environment type. + * * `BUILD_GENERAL1_XLARGE` : Use up to 70 GB memory and 36 vCPUs for builds, depending on + * your environment type. + * * `BUILD_GENERAL1_2XLARGE` : Use up to 145 GB memory, 72 vCPUs, and 824 GB of SSD storage + * for builds. This compute type supports Docker images up to 100 GB uncompressed. + * * `BUILD_LAMBDA_1GB` : Use up to 1 GB memory for builds. Only available for environment + * type `LINUX_LAMBDA_CONTAINER` and `ARM_LAMBDA_CONTAINER` . + * * `BUILD_LAMBDA_2GB` : Use up to 2 GB memory for builds. Only available for environment + * type `LINUX_LAMBDA_CONTAINER` and `ARM_LAMBDA_CONTAINER` . + * * `BUILD_LAMBDA_4GB` : Use up to 4 GB memory for builds. Only available for environment + * type `LINUX_LAMBDA_CONTAINER` and `ARM_LAMBDA_CONTAINER` . + * * `BUILD_LAMBDA_8GB` : Use up to 8 GB memory for builds. Only available for environment + * type `LINUX_LAMBDA_CONTAINER` and `ARM_LAMBDA_CONTAINER` . + * * `BUILD_LAMBDA_10GB` : Use up to 10 GB memory for builds. Only available for environment + * type `LINUX_LAMBDA_CONTAINER` and `ARM_LAMBDA_CONTAINER` . * * For more information, see [Build Environment Compute * Types](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html) @@ -3660,7 +3690,22 @@ public open class CfnProject( * * * `BUILD_GENERAL1_SMALL` : Use up to 3 GB memory and 2 vCPUs for builds. * * `BUILD_GENERAL1_MEDIUM` : Use up to 7 GB memory and 4 vCPUs for builds. - * * `BUILD_GENERAL1_LARGE` : Use up to 15 GB memory and 8 vCPUs for builds. + * * `BUILD_GENERAL1_LARGE` : Use up to 16 GB memory and 8 vCPUs for builds, depending on your + * environment type. + * * `BUILD_GENERAL1_XLARGE` : Use up to 70 GB memory and 36 vCPUs for builds, depending on + * your environment type. + * * `BUILD_GENERAL1_2XLARGE` : Use up to 145 GB memory, 72 vCPUs, and 824 GB of SSD storage + * for builds. This compute type supports Docker images up to 100 GB uncompressed. + * * `BUILD_LAMBDA_1GB` : Use up to 1 GB memory for builds. Only available for environment + * type `LINUX_LAMBDA_CONTAINER` and `ARM_LAMBDA_CONTAINER` . + * * `BUILD_LAMBDA_2GB` : Use up to 2 GB memory for builds. Only available for environment + * type `LINUX_LAMBDA_CONTAINER` and `ARM_LAMBDA_CONTAINER` . + * * `BUILD_LAMBDA_4GB` : Use up to 4 GB memory for builds. Only available for environment + * type `LINUX_LAMBDA_CONTAINER` and `ARM_LAMBDA_CONTAINER` . + * * `BUILD_LAMBDA_8GB` : Use up to 8 GB memory for builds. Only available for environment + * type `LINUX_LAMBDA_CONTAINER` and `ARM_LAMBDA_CONTAINER` . + * * `BUILD_LAMBDA_10GB` : Use up to 10 GB memory for builds. Only available for environment + * type `LINUX_LAMBDA_CONTAINER` and `ARM_LAMBDA_CONTAINER` . * * For more information, see [Build Environment Compute * Types](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html) @@ -3906,7 +3951,22 @@ public open class CfnProject( * * * `BUILD_GENERAL1_SMALL` : Use up to 3 GB memory and 2 vCPUs for builds. * * `BUILD_GENERAL1_MEDIUM` : Use up to 7 GB memory and 4 vCPUs for builds. - * * `BUILD_GENERAL1_LARGE` : Use up to 15 GB memory and 8 vCPUs for builds. + * * `BUILD_GENERAL1_LARGE` : Use up to 16 GB memory and 8 vCPUs for builds, depending on your + * environment type. + * * `BUILD_GENERAL1_XLARGE` : Use up to 70 GB memory and 36 vCPUs for builds, depending on + * your environment type. + * * `BUILD_GENERAL1_2XLARGE` : Use up to 145 GB memory, 72 vCPUs, and 824 GB of SSD storage + * for builds. This compute type supports Docker images up to 100 GB uncompressed. + * * `BUILD_LAMBDA_1GB` : Use up to 1 GB memory for builds. Only available for environment + * type `LINUX_LAMBDA_CONTAINER` and `ARM_LAMBDA_CONTAINER` . + * * `BUILD_LAMBDA_2GB` : Use up to 2 GB memory for builds. Only available for environment + * type `LINUX_LAMBDA_CONTAINER` and `ARM_LAMBDA_CONTAINER` . + * * `BUILD_LAMBDA_4GB` : Use up to 4 GB memory for builds. Only available for environment + * type `LINUX_LAMBDA_CONTAINER` and `ARM_LAMBDA_CONTAINER` . + * * `BUILD_LAMBDA_8GB` : Use up to 8 GB memory for builds. Only available for environment + * type `LINUX_LAMBDA_CONTAINER` and `ARM_LAMBDA_CONTAINER` . + * * `BUILD_LAMBDA_10GB` : Use up to 10 GB memory for builds. Only available for environment + * type `LINUX_LAMBDA_CONTAINER` and `ARM_LAMBDA_CONTAINER` . * * For more information, see [Build Environment Compute * Types](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html) @@ -5612,10 +5672,11 @@ public open class CfnProject( * The source version for the corresponding source identifier. If specified, must be one of:. * * * For CodeCommit: the commit ID, branch, or Git tag to use. - * * For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to - * the version of the source code you want to build. If a pull request ID is specified, it must use - * the format `pr/pull-request-ID` (for example, `pr/25` ). If a branch name is specified, the - * branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. + * * For GitHub or GitLab: the commit ID, pull request ID, branch name, or tag name that + * corresponds to the version of the source code you want to build. If a pull request ID is + * specified, it must use the format `pr/pull-request-ID` (for example, `pr/25` ). If a branch name + * is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD + * commit ID is used. * * For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of * the source code you want to build. If a branch name is specified, the branch's HEAD commit ID is * used. If not specified, the default branch's HEAD commit ID is used. @@ -5646,11 +5707,11 @@ public open class CfnProject( * @param sourceVersion The source version for the corresponding source identifier. If * specified, must be one of:. * * For CodeCommit: the commit ID, branch, or Git tag to use. - * * For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to - * the version of the source code you want to build. If a pull request ID is specified, it must - * use the format `pr/pull-request-ID` (for example, `pr/25` ). If a branch name is specified, - * the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is - * used. + * * For GitHub or GitLab: the commit ID, pull request ID, branch name, or tag name that + * corresponds to the version of the source code you want to build. If a pull request ID is + * specified, it must use the format `pr/pull-request-ID` (for example, `pr/25` ). If a branch + * name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's + * HEAD commit ID is used. * * For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of * the source code you want to build. If a branch name is specified, the branch's HEAD commit ID * is used. If not specified, the default branch's HEAD commit ID is used. @@ -5683,11 +5744,11 @@ public open class CfnProject( * @param sourceVersion The source version for the corresponding source identifier. If * specified, must be one of:. * * For CodeCommit: the commit ID, branch, or Git tag to use. - * * For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to - * the version of the source code you want to build. If a pull request ID is specified, it must - * use the format `pr/pull-request-ID` (for example, `pr/25` ). If a branch name is specified, - * the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is - * used. + * * For GitHub or GitLab: the commit ID, pull request ID, branch name, or tag name that + * corresponds to the version of the source code you want to build. If a pull request ID is + * specified, it must use the format `pr/pull-request-ID` (for example, `pr/25` ). If a branch + * name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's + * HEAD commit ID is used. * * For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of * the source code you want to build. If a branch name is specified, the branch's HEAD commit ID * is used. If not specified, the default branch's HEAD commit ID is used. @@ -5724,11 +5785,11 @@ public open class CfnProject( * The source version for the corresponding source identifier. If specified, must be one of:. * * * For CodeCommit: the commit ID, branch, or Git tag to use. - * * For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to - * the version of the source code you want to build. If a pull request ID is specified, it must - * use the format `pr/pull-request-ID` (for example, `pr/25` ). If a branch name is specified, - * the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is - * used. + * * For GitHub or GitLab: the commit ID, pull request ID, branch name, or tag name that + * corresponds to the version of the source code you want to build. If a pull request ID is + * specified, it must use the format `pr/pull-request-ID` (for example, `pr/25` ). If a branch + * name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's + * HEAD commit ID is used. * * For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of * the source code you want to build. If a branch name is specified, the branch's HEAD commit ID * is used. If not specified, the default branch's HEAD commit ID is used. @@ -6576,6 +6637,15 @@ public open class CfnProject( * GitHub account, you do not need to finish creating the build project. You can leave the AWS * CodeBuild console.) To instruct AWS CodeBuild to use this connection, in the `source` object, * set the `auth` object's `type` value to `OAUTH` . + * * For source code in an GitLab or self-managed GitLab repository, the HTTPS clone URL to the + * repository that contains the source and the buildspec file. You must connect your AWS account to + * your GitLab account. Use the AWS CodeBuild console to start creating a build project. When you + * use the console to connect (or reconnect) with GitLab, on the Connections *Authorize + * application* page, choose *Authorize* . Then on the AWS CodeConnections *Create GitLab + * connection* page, choose *Connect to GitLab* . (After you have connected to your GitLab account, + * you do not need to finish creating the build project. You can leave the AWS CodeBuild console.) + * To instruct AWS CodeBuild to override the default connection and use this connection instead, + * set the `auth` object's `type` value to `CODECONNECTIONS` in the `source` object. * * For source code in a Bitbucket repository, the HTTPS clone URL to the repository that * contains the source and the buildspec file. You must connect your AWS account to your Bitbucket * account. Use the AWS CodeBuild console to start creating a build project. When you use the @@ -6620,8 +6690,10 @@ public open class CfnProject( * * `CODECOMMIT` : The source code is in an CodeCommit repository. * * `CODEPIPELINE` : The source code settings are specified in the source action of a pipeline * in CodePipeline. - * * `GITHUB` : The source code is in a GitHub or GitHub Enterprise Cloud repository. + * * `GITHUB` : The source code is in a GitHub repository. * * `GITHUB_ENTERPRISE` : The source code is in a GitHub Enterprise Server repository. + * * `GITLAB` : The source code is in a GitLab repository. + * * `GITLAB_SELF_MANAGED` : The source code is in a self-managed GitLab repository. * * `NO_SOURCE` : The project does not have input source code. * * `S3` : The source code is in an Amazon S3 bucket. * @@ -6768,6 +6840,15 @@ public open class CfnProject( * connected to your GitHub account, you do not need to finish creating the build project. You * can leave the AWS CodeBuild console.) To instruct AWS CodeBuild to use this connection, in the * `source` object, set the `auth` object's `type` value to `OAUTH` . + * * For source code in an GitLab or self-managed GitLab repository, the HTTPS clone URL to + * the repository that contains the source and the buildspec file. You must connect your AWS + * account to your GitLab account. Use the AWS CodeBuild console to start creating a build + * project. When you use the console to connect (or reconnect) with GitLab, on the Connections + * *Authorize application* page, choose *Authorize* . Then on the AWS CodeConnections *Create + * GitLab connection* page, choose *Connect to GitLab* . (After you have connected to your GitLab + * account, you do not need to finish creating the build project. You can leave the AWS CodeBuild + * console.) To instruct AWS CodeBuild to override the default connection and use this connection + * instead, set the `auth` object's `type` value to `CODECONNECTIONS` in the `source` object. * * For source code in a Bitbucket repository, the HTTPS clone URL to the repository that * contains the source and the buildspec file. You must connect your AWS account to your * Bitbucket account. Use the AWS CodeBuild console to start creating a build project. When you @@ -6814,8 +6895,10 @@ public open class CfnProject( * * `CODECOMMIT` : The source code is in an CodeCommit repository. * * `CODEPIPELINE` : The source code settings are specified in the source action of a * pipeline in CodePipeline. - * * `GITHUB` : The source code is in a GitHub or GitHub Enterprise Cloud repository. + * * `GITHUB` : The source code is in a GitHub repository. * * `GITHUB_ENTERPRISE` : The source code is in a GitHub Enterprise Server repository. + * * `GITLAB` : The source code is in a GitLab repository. + * * `GITLAB_SELF_MANAGED` : The source code is in a self-managed GitLab repository. * * `NO_SOURCE` : The project does not have input source code. * * `S3` : The source code is in an Amazon S3 bucket. */ @@ -6985,6 +7068,15 @@ public open class CfnProject( * connected to your GitHub account, you do not need to finish creating the build project. You * can leave the AWS CodeBuild console.) To instruct AWS CodeBuild to use this connection, in the * `source` object, set the `auth` object's `type` value to `OAUTH` . + * * For source code in an GitLab or self-managed GitLab repository, the HTTPS clone URL to + * the repository that contains the source and the buildspec file. You must connect your AWS + * account to your GitLab account. Use the AWS CodeBuild console to start creating a build + * project. When you use the console to connect (or reconnect) with GitLab, on the Connections + * *Authorize application* page, choose *Authorize* . Then on the AWS CodeConnections *Create + * GitLab connection* page, choose *Connect to GitLab* . (After you have connected to your GitLab + * account, you do not need to finish creating the build project. You can leave the AWS CodeBuild + * console.) To instruct AWS CodeBuild to override the default connection and use this connection + * instead, set the `auth` object's `type` value to `CODECONNECTIONS` in the `source` object. * * For source code in a Bitbucket repository, the HTTPS clone URL to the repository that * contains the source and the buildspec file. You must connect your AWS account to your * Bitbucket account. Use the AWS CodeBuild console to start creating a build project. When you @@ -7039,8 +7131,10 @@ public open class CfnProject( * * `CODECOMMIT` : The source code is in an CodeCommit repository. * * `CODEPIPELINE` : The source code settings are specified in the source action of a * pipeline in CodePipeline. - * * `GITHUB` : The source code is in a GitHub or GitHub Enterprise Cloud repository. + * * `GITHUB` : The source code is in a GitHub repository. * * `GITHUB_ENTERPRISE` : The source code is in a GitHub Enterprise Server repository. + * * `GITLAB` : The source code is in a GitLab repository. + * * `GITLAB_SELF_MANAGED` : The source code is in a self-managed GitLab repository. * * `NO_SOURCE` : The project does not have input source code. * * `S3` : The source code is in an Amazon S3 bucket. */ @@ -7146,6 +7240,15 @@ public open class CfnProject( * connected to your GitHub account, you do not need to finish creating the build project. You * can leave the AWS CodeBuild console.) To instruct AWS CodeBuild to use this connection, in the * `source` object, set the `auth` object's `type` value to `OAUTH` . + * * For source code in an GitLab or self-managed GitLab repository, the HTTPS clone URL to + * the repository that contains the source and the buildspec file. You must connect your AWS + * account to your GitLab account. Use the AWS CodeBuild console to start creating a build + * project. When you use the console to connect (or reconnect) with GitLab, on the Connections + * *Authorize application* page, choose *Authorize* . Then on the AWS CodeConnections *Create + * GitLab connection* page, choose *Connect to GitLab* . (After you have connected to your GitLab + * account, you do not need to finish creating the build project. You can leave the AWS CodeBuild + * console.) To instruct AWS CodeBuild to override the default connection and use this connection + * instead, set the `auth` object's `type` value to `CODECONNECTIONS` in the `source` object. * * For source code in a Bitbucket repository, the HTTPS clone URL to the repository that * contains the source and the buildspec file. You must connect your AWS account to your * Bitbucket account. Use the AWS CodeBuild console to start creating a build project. When you @@ -7190,8 +7293,10 @@ public open class CfnProject( * * `CODECOMMIT` : The source code is in an CodeCommit repository. * * `CODEPIPELINE` : The source code settings are specified in the source action of a * pipeline in CodePipeline. - * * `GITHUB` : The source code is in a GitHub or GitHub Enterprise Cloud repository. + * * `GITHUB` : The source code is in a GitHub repository. * * `GITHUB_ENTERPRISE` : The source code is in a GitHub Enterprise Server repository. + * * `GITLAB` : The source code is in a GitLab repository. + * * `GITLAB_SELF_MANAGED` : The source code is in a self-managed GitLab repository. * * `NO_SOURCE` : The project does not have input source code. * * `S3` : The source code is in an Amazon S3 bucket. * @@ -7451,18 +7556,20 @@ public open class CfnProject( /** * The type of webhook filter. * - * There are six webhook filter types: `EVENT` , `ACTOR_ACCOUNT_ID` , `HEAD_REF` , `BASE_REF` , - * `FILE_PATH` , and `COMMIT_MESSAGE` . + * There are nine webhook filter types: `EVENT` , `ACTOR_ACCOUNT_ID` , `HEAD_REF` , `BASE_REF` , + * `FILE_PATH` , `COMMIT_MESSAGE` , `TAG_NAME` , `RELEASE_NAME` , and `WORKFLOW_NAME` . * * * EVENT - * * A webhook event triggers a build when the provided `pattern` matches one of six event + * * A webhook event triggers a build when the provided `pattern` matches one of nine event * types: `PUSH` , `PULL_REQUEST_CREATED` , `PULL_REQUEST_UPDATED` , `PULL_REQUEST_CLOSED` , - * `PULL_REQUEST_REOPENED` , and `PULL_REQUEST_MERGED` . The `EVENT` patterns are specified as a - * comma-separated string. For example, `PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED` filters - * all push, pull request created, and pull request updated events. + * `PULL_REQUEST_REOPENED` , `PULL_REQUEST_MERGED` , `RELEASED` , `PRERELEASED` , and + * `WORKFLOW_JOB_QUEUED` . The `EVENT` patterns are specified as a comma-separated string. For + * example, `PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED` filters all push, pull request + * created, and pull request updated events. * * - * The `PULL_REQUEST_REOPENED` works with GitHub and GitHub Enterprise only. + * The `PULL_REQUEST_REOPENED` works with GitHub and GitHub Enterprise only. The `RELEASED` , + * `PRERELEASED` , and `WORKFLOW_JOB_QUEUED` work with GitHub only. * * * * ACTOR_ACCOUNT_ID @@ -7472,9 +7579,11 @@ public open class CfnProject( * * A webhook event triggers a build when the head reference matches the regular expression * `pattern` . For example, `refs/heads/branch-name` and `refs/tags/tag-name` . * + * * Works with GitHub and GitHub Enterprise push, GitHub and GitHub Enterprise pull request, * Bitbucket push, and Bitbucket pull request events. * + * * * BASE_REF * * A webhook event triggers a build when the base reference matches the regular expression * `pattern` . For example, `refs/heads/branch-name` . @@ -7501,6 +7610,29 @@ public open class CfnProject( * Enterprise push events, but does not work with GitHub Enterprise pull request events. * * + * * TAG_NAME + * * A webhook triggers a build when the tag name of the release matches the regular expression + * `pattern` . + * + * + * Works with `RELEASED` and `PRERELEASED` events only. + * + * + * * RELEASE_NAME + * * A webhook triggers a build when the release name matches the regular expression `pattern` . + * + * + * Works with `RELEASED` and `PRERELEASED` events only. + * + * + * * WORKFLOW_NAME + * * A webhook triggers a build when the workflow name matches the regular expression `pattern` + * . + * + * + * Works with `WORKFLOW_JOB_QUEUED` events only. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-webhookfilter.html#cfn-codebuild-project-webhookfilter-type) */ public fun type(): String @@ -7541,18 +7673,20 @@ public open class CfnProject( /** * @param type The type of webhook filter. - * There are six webhook filter types: `EVENT` , `ACTOR_ACCOUNT_ID` , `HEAD_REF` , `BASE_REF` - * , `FILE_PATH` , and `COMMIT_MESSAGE` . + * There are nine webhook filter types: `EVENT` , `ACTOR_ACCOUNT_ID` , `HEAD_REF` , `BASE_REF` + * , `FILE_PATH` , `COMMIT_MESSAGE` , `TAG_NAME` , `RELEASE_NAME` , and `WORKFLOW_NAME` . * * * EVENT - * * A webhook event triggers a build when the provided `pattern` matches one of six event + * * A webhook event triggers a build when the provided `pattern` matches one of nine event * types: `PUSH` , `PULL_REQUEST_CREATED` , `PULL_REQUEST_UPDATED` , `PULL_REQUEST_CLOSED` , - * `PULL_REQUEST_REOPENED` , and `PULL_REQUEST_MERGED` . The `EVENT` patterns are specified as a - * comma-separated string. For example, `PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED` - * filters all push, pull request created, and pull request updated events. + * `PULL_REQUEST_REOPENED` , `PULL_REQUEST_MERGED` , `RELEASED` , `PRERELEASED` , and + * `WORKFLOW_JOB_QUEUED` . The `EVENT` patterns are specified as a comma-separated string. For + * example, `PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED` filters all push, pull request + * created, and pull request updated events. * * - * The `PULL_REQUEST_REOPENED` works with GitHub and GitHub Enterprise only. + * The `PULL_REQUEST_REOPENED` works with GitHub and GitHub Enterprise only. The `RELEASED` , + * `PRERELEASED` , and `WORKFLOW_JOB_QUEUED` work with GitHub only. * * * * ACTOR_ACCOUNT_ID @@ -7562,9 +7696,11 @@ public open class CfnProject( * * A webhook event triggers a build when the head reference matches the regular expression * `pattern` . For example, `refs/heads/branch-name` and `refs/tags/tag-name` . * + * * Works with GitHub and GitHub Enterprise push, GitHub and GitHub Enterprise pull request, * Bitbucket push, and Bitbucket pull request events. * + * * * BASE_REF * * A webhook event triggers a build when the base reference matches the regular expression * `pattern` . For example, `refs/heads/branch-name` . @@ -7589,6 +7725,30 @@ public open class CfnProject( * * Works with GitHub and Bitbucket events push and pull requests events. Also works with * GitHub Enterprise push events, but does not work with GitHub Enterprise pull request events. + * + * + * * TAG_NAME + * * A webhook triggers a build when the tag name of the release matches the regular + * expression `pattern` . + * + * + * Works with `RELEASED` and `PRERELEASED` events only. + * + * + * * RELEASE_NAME + * * A webhook triggers a build when the release name matches the regular expression `pattern` + * . + * + * + * Works with `RELEASED` and `PRERELEASED` events only. + * + * + * * WORKFLOW_NAME + * * A webhook triggers a build when the workflow name matches the regular expression + * `pattern` . + * + * + * Works with `WORKFLOW_JOB_QUEUED` events only. */ public fun type(type: String) } @@ -7635,18 +7795,20 @@ public open class CfnProject( /** * @param type The type of webhook filter. - * There are six webhook filter types: `EVENT` , `ACTOR_ACCOUNT_ID` , `HEAD_REF` , `BASE_REF` - * , `FILE_PATH` , and `COMMIT_MESSAGE` . + * There are nine webhook filter types: `EVENT` , `ACTOR_ACCOUNT_ID` , `HEAD_REF` , `BASE_REF` + * , `FILE_PATH` , `COMMIT_MESSAGE` , `TAG_NAME` , `RELEASE_NAME` , and `WORKFLOW_NAME` . * * * EVENT - * * A webhook event triggers a build when the provided `pattern` matches one of six event + * * A webhook event triggers a build when the provided `pattern` matches one of nine event * types: `PUSH` , `PULL_REQUEST_CREATED` , `PULL_REQUEST_UPDATED` , `PULL_REQUEST_CLOSED` , - * `PULL_REQUEST_REOPENED` , and `PULL_REQUEST_MERGED` . The `EVENT` patterns are specified as a - * comma-separated string. For example, `PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED` - * filters all push, pull request created, and pull request updated events. + * `PULL_REQUEST_REOPENED` , `PULL_REQUEST_MERGED` , `RELEASED` , `PRERELEASED` , and + * `WORKFLOW_JOB_QUEUED` . The `EVENT` patterns are specified as a comma-separated string. For + * example, `PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED` filters all push, pull request + * created, and pull request updated events. * * - * The `PULL_REQUEST_REOPENED` works with GitHub and GitHub Enterprise only. + * The `PULL_REQUEST_REOPENED` works with GitHub and GitHub Enterprise only. The `RELEASED` , + * `PRERELEASED` , and `WORKFLOW_JOB_QUEUED` work with GitHub only. * * * * ACTOR_ACCOUNT_ID @@ -7656,9 +7818,11 @@ public open class CfnProject( * * A webhook event triggers a build when the head reference matches the regular expression * `pattern` . For example, `refs/heads/branch-name` and `refs/tags/tag-name` . * + * * Works with GitHub and GitHub Enterprise push, GitHub and GitHub Enterprise pull request, * Bitbucket push, and Bitbucket pull request events. * + * * * BASE_REF * * A webhook event triggers a build when the base reference matches the regular expression * `pattern` . For example, `refs/heads/branch-name` . @@ -7683,6 +7847,30 @@ public open class CfnProject( * * Works with GitHub and Bitbucket events push and pull requests events. Also works with * GitHub Enterprise push events, but does not work with GitHub Enterprise pull request events. + * + * + * * TAG_NAME + * * A webhook triggers a build when the tag name of the release matches the regular + * expression `pattern` . + * + * + * Works with `RELEASED` and `PRERELEASED` events only. + * + * + * * RELEASE_NAME + * * A webhook triggers a build when the release name matches the regular expression `pattern` + * . + * + * + * Works with `RELEASED` and `PRERELEASED` events only. + * + * + * * WORKFLOW_NAME + * * A webhook triggers a build when the workflow name matches the regular expression + * `pattern` . + * + * + * Works with `WORKFLOW_JOB_QUEUED` events only. */ override fun type(type: String) { cdkBuilder.type(type) @@ -7724,18 +7912,20 @@ public open class CfnProject( /** * The type of webhook filter. * - * There are six webhook filter types: `EVENT` , `ACTOR_ACCOUNT_ID` , `HEAD_REF` , `BASE_REF` - * , `FILE_PATH` , and `COMMIT_MESSAGE` . + * There are nine webhook filter types: `EVENT` , `ACTOR_ACCOUNT_ID` , `HEAD_REF` , `BASE_REF` + * , `FILE_PATH` , `COMMIT_MESSAGE` , `TAG_NAME` , `RELEASE_NAME` , and `WORKFLOW_NAME` . * * * EVENT - * * A webhook event triggers a build when the provided `pattern` matches one of six event + * * A webhook event triggers a build when the provided `pattern` matches one of nine event * types: `PUSH` , `PULL_REQUEST_CREATED` , `PULL_REQUEST_UPDATED` , `PULL_REQUEST_CLOSED` , - * `PULL_REQUEST_REOPENED` , and `PULL_REQUEST_MERGED` . The `EVENT` patterns are specified as a - * comma-separated string. For example, `PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED` - * filters all push, pull request created, and pull request updated events. + * `PULL_REQUEST_REOPENED` , `PULL_REQUEST_MERGED` , `RELEASED` , `PRERELEASED` , and + * `WORKFLOW_JOB_QUEUED` . The `EVENT` patterns are specified as a comma-separated string. For + * example, `PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED` filters all push, pull request + * created, and pull request updated events. * * - * The `PULL_REQUEST_REOPENED` works with GitHub and GitHub Enterprise only. + * The `PULL_REQUEST_REOPENED` works with GitHub and GitHub Enterprise only. The `RELEASED` , + * `PRERELEASED` , and `WORKFLOW_JOB_QUEUED` work with GitHub only. * * * * ACTOR_ACCOUNT_ID @@ -7745,9 +7935,11 @@ public open class CfnProject( * * A webhook event triggers a build when the head reference matches the regular expression * `pattern` . For example, `refs/heads/branch-name` and `refs/tags/tag-name` . * + * * Works with GitHub and GitHub Enterprise push, GitHub and GitHub Enterprise pull request, * Bitbucket push, and Bitbucket pull request events. * + * * * BASE_REF * * A webhook event triggers a build when the base reference matches the regular expression * `pattern` . For example, `refs/heads/branch-name` . @@ -7774,6 +7966,30 @@ public open class CfnProject( * GitHub Enterprise push events, but does not work with GitHub Enterprise pull request events. * * + * * TAG_NAME + * * A webhook triggers a build when the tag name of the release matches the regular + * expression `pattern` . + * + * + * Works with `RELEASED` and `PRERELEASED` events only. + * + * + * * RELEASE_NAME + * * A webhook triggers a build when the release name matches the regular expression `pattern` + * . + * + * + * Works with `RELEASED` and `PRERELEASED` events only. + * + * + * * WORKFLOW_NAME + * * A webhook triggers a build when the workflow name matches the regular expression + * `pattern` . + * + * + * Works with `WORKFLOW_JOB_QUEUED` events only. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-webhookfilter.html#cfn-codebuild-project-webhookfilter-type) */ override fun type(): String = unwrap(this).getType() diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codebuild/CfnSourceCredential.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codebuild/CfnSourceCredential.kt index 75f99115eb..893c0b6577 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codebuild/CfnSourceCredential.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codebuild/CfnSourceCredential.kt @@ -132,7 +132,7 @@ public open class CfnSourceCredential( /** * The type of authentication used by the credentials. * - * Valid options are OAUTH, BASIC_AUTH, or PERSONAL_ACCESS_TOKEN. + * Valid options are OAUTH, BASIC_AUTH, PERSONAL_ACCESS_TOKEN, or CODECONNECTIONS. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-sourcecredential.html#cfn-codebuild-sourcecredential-authtype) * @param authType The type of authentication used by the credentials. @@ -142,7 +142,7 @@ public open class CfnSourceCredential( /** * The type of source provider. * - * The valid options are GITHUB, GITHUB_ENTERPRISE, or BITBUCKET. + * The valid options are GITHUB, GITHUB_ENTERPRISE, GITLAB, GITLAB_SELF_MANAGED, or BITBUCKET. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-sourcecredential.html#cfn-codebuild-sourcecredential-servertype) * @param serverType The type of source provider. @@ -152,7 +152,7 @@ public open class CfnSourceCredential( /** * For GitHub or GitHub Enterprise, this is the personal access token. * - * For Bitbucket, this is the app password. + * For Bitbucket, this is either the access token or the app password. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-sourcecredential.html#cfn-codebuild-sourcecredential-token) * @param token For GitHub or GitHub Enterprise, this is the personal access token. @@ -180,7 +180,7 @@ public open class CfnSourceCredential( /** * The type of authentication used by the credentials. * - * Valid options are OAUTH, BASIC_AUTH, or PERSONAL_ACCESS_TOKEN. + * Valid options are OAUTH, BASIC_AUTH, PERSONAL_ACCESS_TOKEN, or CODECONNECTIONS. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-sourcecredential.html#cfn-codebuild-sourcecredential-authtype) * @param authType The type of authentication used by the credentials. @@ -192,7 +192,7 @@ public open class CfnSourceCredential( /** * The type of source provider. * - * The valid options are GITHUB, GITHUB_ENTERPRISE, or BITBUCKET. + * The valid options are GITHUB, GITHUB_ENTERPRISE, GITLAB, GITLAB_SELF_MANAGED, or BITBUCKET. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-sourcecredential.html#cfn-codebuild-sourcecredential-servertype) * @param serverType The type of source provider. @@ -204,7 +204,7 @@ public open class CfnSourceCredential( /** * For GitHub or GitHub Enterprise, this is the personal access token. * - * For Bitbucket, this is the app password. + * For Bitbucket, this is either the access token or the app password. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-sourcecredential.html#cfn-codebuild-sourcecredential-token) * @param token For GitHub or GitHub Enterprise, this is the personal access token. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codebuild/CfnSourceCredentialProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codebuild/CfnSourceCredentialProps.kt index 0ec3c2e661..20d7d4ae44 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codebuild/CfnSourceCredentialProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codebuild/CfnSourceCredentialProps.kt @@ -32,7 +32,7 @@ public interface CfnSourceCredentialProps { /** * The type of authentication used by the credentials. * - * Valid options are OAUTH, BASIC_AUTH, or PERSONAL_ACCESS_TOKEN. + * Valid options are OAUTH, BASIC_AUTH, PERSONAL_ACCESS_TOKEN, or CODECONNECTIONS. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-sourcecredential.html#cfn-codebuild-sourcecredential-authtype) */ @@ -41,7 +41,7 @@ public interface CfnSourceCredentialProps { /** * The type of source provider. * - * The valid options are GITHUB, GITHUB_ENTERPRISE, or BITBUCKET. + * The valid options are GITHUB, GITHUB_ENTERPRISE, GITLAB, GITLAB_SELF_MANAGED, or BITBUCKET. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-sourcecredential.html#cfn-codebuild-sourcecredential-servertype) */ @@ -50,7 +50,7 @@ public interface CfnSourceCredentialProps { /** * For GitHub or GitHub Enterprise, this is the personal access token. * - * For Bitbucket, this is the app password. + * For Bitbucket, this is either the access token or the app password. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-sourcecredential.html#cfn-codebuild-sourcecredential-token) */ @@ -72,19 +72,19 @@ public interface CfnSourceCredentialProps { public interface Builder { /** * @param authType The type of authentication used by the credentials. - * Valid options are OAUTH, BASIC_AUTH, or PERSONAL_ACCESS_TOKEN. + * Valid options are OAUTH, BASIC_AUTH, PERSONAL_ACCESS_TOKEN, or CODECONNECTIONS. */ public fun authType(authType: String) /** * @param serverType The type of source provider. - * The valid options are GITHUB, GITHUB_ENTERPRISE, or BITBUCKET. + * The valid options are GITHUB, GITHUB_ENTERPRISE, GITLAB, GITLAB_SELF_MANAGED, or BITBUCKET. */ public fun serverType(serverType: String) /** * @param token For GitHub or GitHub Enterprise, this is the personal access token. - * For Bitbucket, this is the app password. + * For Bitbucket, this is either the access token or the app password. */ public fun token(token: String) @@ -102,7 +102,7 @@ public interface CfnSourceCredentialProps { /** * @param authType The type of authentication used by the credentials. - * Valid options are OAUTH, BASIC_AUTH, or PERSONAL_ACCESS_TOKEN. + * Valid options are OAUTH, BASIC_AUTH, PERSONAL_ACCESS_TOKEN, or CODECONNECTIONS. */ override fun authType(authType: String) { cdkBuilder.authType(authType) @@ -110,7 +110,7 @@ public interface CfnSourceCredentialProps { /** * @param serverType The type of source provider. - * The valid options are GITHUB, GITHUB_ENTERPRISE, or BITBUCKET. + * The valid options are GITHUB, GITHUB_ENTERPRISE, GITLAB, GITLAB_SELF_MANAGED, or BITBUCKET. */ override fun serverType(serverType: String) { cdkBuilder.serverType(serverType) @@ -118,7 +118,7 @@ public interface CfnSourceCredentialProps { /** * @param token For GitHub or GitHub Enterprise, this is the personal access token. - * For Bitbucket, this is the app password. + * For Bitbucket, this is either the access token or the app password. */ override fun token(token: String) { cdkBuilder.token(token) @@ -142,7 +142,7 @@ public interface CfnSourceCredentialProps { /** * The type of authentication used by the credentials. * - * Valid options are OAUTH, BASIC_AUTH, or PERSONAL_ACCESS_TOKEN. + * Valid options are OAUTH, BASIC_AUTH, PERSONAL_ACCESS_TOKEN, or CODECONNECTIONS. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-sourcecredential.html#cfn-codebuild-sourcecredential-authtype) */ @@ -151,7 +151,7 @@ public interface CfnSourceCredentialProps { /** * The type of source provider. * - * The valid options are GITHUB, GITHUB_ENTERPRISE, or BITBUCKET. + * The valid options are GITHUB, GITHUB_ENTERPRISE, GITLAB, GITLAB_SELF_MANAGED, or BITBUCKET. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-sourcecredential.html#cfn-codebuild-sourcecredential-servertype) */ @@ -160,7 +160,7 @@ public interface CfnSourceCredentialProps { /** * For GitHub or GitHub Enterprise, this is the personal access token. * - * For Bitbucket, this is the app password. + * For Bitbucket, this is either the access token or the app password. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-sourcecredential.html#cfn-codebuild-sourcecredential-token) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codeconnections/CfnConnection.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codeconnections/CfnConnection.kt new file mode 100644 index 0000000000..b0de9d8722 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codeconnections/CfnConnection.kt @@ -0,0 +1,285 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.codeconnections + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.ITaggableV2 +import io.cloudshiftdev.awscdk.TagManager +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * A resource that is used to connect third-party source providers with services like CodePipeline. + * + * Note: A connection created through AWS CloudFormation , the CLI, or the SDK is in `PENDING` + * status by default. You can make its status `AVAILABLE` by updating the connection in the console. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.codeconnections.*; + * CfnConnection cfnConnection = CfnConnection.Builder.create(this, "MyCfnConnection") + * .connectionName("connectionName") + * // the properties below are optional + * .hostArn("hostArn") + * .providerType("providerType") + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeconnections-connection.html) + */ +public open class CfnConnection( + cdkObject: software.amazon.awscdk.services.codeconnections.CfnConnection, +) : CfnResource(cdkObject), IInspectable, ITaggableV2 { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnConnectionProps, + ) : + this(software.amazon.awscdk.services.codeconnections.CfnConnection(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnConnectionProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnConnectionProps.Builder.() -> Unit, + ) : this(scope, id, CfnConnectionProps(props) + ) + + /** + * The Amazon Resource Name (ARN) of the connection. + * + * The ARN is used as the connection reference when the connection is shared between AWS services + * . + * + * + * The ARN is never reused if the connection is deleted. + */ + public open fun attrConnectionArn(): String = unwrap(this).getAttrConnectionArn() + + /** + * The current status of the connection. + */ + public open fun attrConnectionStatus(): String = unwrap(this).getAttrConnectionStatus() + + /** + * The identifier of the external provider where your third-party code repository is configured. + * + * For Bitbucket, this is the account ID of the owner of the Bitbucket repository. + */ + public open fun attrOwnerAccountId(): String = unwrap(this).getAttrOwnerAccountId() + + /** + * Tag Manager which manages the tags for this resource. + */ + public override fun cdkTagManager(): TagManager = + unwrap(this).getCdkTagManager().let(TagManager::wrap) + + /** + * The name of the connection. + */ + public open fun connectionName(): String = unwrap(this).getConnectionName() + + /** + * The name of the connection. + */ + public open fun connectionName(`value`: String) { + unwrap(this).setConnectionName(`value`) + } + + /** + * The Amazon Resource Name (ARN) of the host associated with the connection. + */ + public open fun hostArn(): String? = unwrap(this).getHostArn() + + /** + * The Amazon Resource Name (ARN) of the host associated with the connection. + */ + public open fun hostArn(`value`: String) { + unwrap(this).setHostArn(`value`) + } + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * The name of the external provider where your third-party code repository is configured. + */ + public open fun providerType(): String? = unwrap(this).getProviderType() + + /** + * The name of the external provider where your third-party code repository is configured. + */ + public open fun providerType(`value`: String) { + unwrap(this).setProviderType(`value`) + } + + /** + * Specifies the tags applied to a connection. + */ + public open fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * Specifies the tags applied to a connection. + */ + public open fun tags(`value`: List) { + unwrap(this).setTags(`value`.map(CfnTag::unwrap)) + } + + /** + * Specifies the tags applied to a connection. + */ + public open fun tags(vararg `value`: CfnTag): Unit = tags(`value`.toList()) + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.codeconnections.CfnConnection]. + */ + @CdkDslMarker + public interface Builder { + /** + * The name of the connection. + * + * Connection names must be unique in an AWS account . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeconnections-connection.html#cfn-codeconnections-connection-connectionname) + * @param connectionName The name of the connection. + */ + public fun connectionName(connectionName: String) + + /** + * The Amazon Resource Name (ARN) of the host associated with the connection. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeconnections-connection.html#cfn-codeconnections-connection-hostarn) + * @param hostArn The Amazon Resource Name (ARN) of the host associated with the connection. + */ + public fun hostArn(hostArn: String) + + /** + * The name of the external provider where your third-party code repository is configured. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeconnections-connection.html#cfn-codeconnections-connection-providertype) + * @param providerType The name of the external provider where your third-party code repository + * is configured. + */ + public fun providerType(providerType: String) + + /** + * Specifies the tags applied to a connection. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeconnections-connection.html#cfn-codeconnections-connection-tags) + * @param tags Specifies the tags applied to a connection. + */ + public fun tags(tags: List) + + /** + * Specifies the tags applied to a connection. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeconnections-connection.html#cfn-codeconnections-connection-tags) + * @param tags Specifies the tags applied to a connection. + */ + public fun tags(vararg tags: CfnTag) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.services.codeconnections.CfnConnection.Builder = + software.amazon.awscdk.services.codeconnections.CfnConnection.Builder.create(scope, id) + + /** + * The name of the connection. + * + * Connection names must be unique in an AWS account . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeconnections-connection.html#cfn-codeconnections-connection-connectionname) + * @param connectionName The name of the connection. + */ + override fun connectionName(connectionName: String) { + cdkBuilder.connectionName(connectionName) + } + + /** + * The Amazon Resource Name (ARN) of the host associated with the connection. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeconnections-connection.html#cfn-codeconnections-connection-hostarn) + * @param hostArn The Amazon Resource Name (ARN) of the host associated with the connection. + */ + override fun hostArn(hostArn: String) { + cdkBuilder.hostArn(hostArn) + } + + /** + * The name of the external provider where your third-party code repository is configured. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeconnections-connection.html#cfn-codeconnections-connection-providertype) + * @param providerType The name of the external provider where your third-party code repository + * is configured. + */ + override fun providerType(providerType: String) { + cdkBuilder.providerType(providerType) + } + + /** + * Specifies the tags applied to a connection. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeconnections-connection.html#cfn-codeconnections-connection-tags) + * @param tags Specifies the tags applied to a connection. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * Specifies the tags applied to a connection. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeconnections-connection.html#cfn-codeconnections-connection-tags) + * @param tags Specifies the tags applied to a connection. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + public fun build(): software.amazon.awscdk.services.codeconnections.CfnConnection = + cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.codeconnections.CfnConnection.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnConnection { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnConnection(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.codeconnections.CfnConnection): + CfnConnection = CfnConnection(cdkObject) + + internal fun unwrap(wrapped: CfnConnection): + software.amazon.awscdk.services.codeconnections.CfnConnection = wrapped.cdkObject as + software.amazon.awscdk.services.codeconnections.CfnConnection + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codeconnections/CfnConnectionProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codeconnections/CfnConnectionProps.kt new file mode 100644 index 0000000000..dc321e08ad --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codeconnections/CfnConnectionProps.kt @@ -0,0 +1,193 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.codeconnections + +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.String +import kotlin.Unit +import kotlin.collections.List + +/** + * Properties for defining a `CfnConnection`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.codeconnections.*; + * CfnConnectionProps cfnConnectionProps = CfnConnectionProps.builder() + * .connectionName("connectionName") + * // the properties below are optional + * .hostArn("hostArn") + * .providerType("providerType") + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeconnections-connection.html) + */ +public interface CfnConnectionProps { + /** + * The name of the connection. + * + * Connection names must be unique in an AWS account . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeconnections-connection.html#cfn-codeconnections-connection-connectionname) + */ + public fun connectionName(): String + + /** + * The Amazon Resource Name (ARN) of the host associated with the connection. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeconnections-connection.html#cfn-codeconnections-connection-hostarn) + */ + public fun hostArn(): String? = unwrap(this).getHostArn() + + /** + * The name of the external provider where your third-party code repository is configured. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeconnections-connection.html#cfn-codeconnections-connection-providertype) + */ + public fun providerType(): String? = unwrap(this).getProviderType() + + /** + * Specifies the tags applied to a connection. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeconnections-connection.html#cfn-codeconnections-connection-tags) + */ + public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * A builder for [CfnConnectionProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param connectionName The name of the connection. + * Connection names must be unique in an AWS account . + */ + public fun connectionName(connectionName: String) + + /** + * @param hostArn The Amazon Resource Name (ARN) of the host associated with the connection. + */ + public fun hostArn(hostArn: String) + + /** + * @param providerType The name of the external provider where your third-party code repository + * is configured. + */ + public fun providerType(providerType: String) + + /** + * @param tags Specifies the tags applied to a connection. + */ + public fun tags(tags: List) + + /** + * @param tags Specifies the tags applied to a connection. + */ + public fun tags(vararg tags: CfnTag) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.codeconnections.CfnConnectionProps.Builder = + software.amazon.awscdk.services.codeconnections.CfnConnectionProps.builder() + + /** + * @param connectionName The name of the connection. + * Connection names must be unique in an AWS account . + */ + override fun connectionName(connectionName: String) { + cdkBuilder.connectionName(connectionName) + } + + /** + * @param hostArn The Amazon Resource Name (ARN) of the host associated with the connection. + */ + override fun hostArn(hostArn: String) { + cdkBuilder.hostArn(hostArn) + } + + /** + * @param providerType The name of the external provider where your third-party code repository + * is configured. + */ + override fun providerType(providerType: String) { + cdkBuilder.providerType(providerType) + } + + /** + * @param tags Specifies the tags applied to a connection. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * @param tags Specifies the tags applied to a connection. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + public fun build(): software.amazon.awscdk.services.codeconnections.CfnConnectionProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.codeconnections.CfnConnectionProps, + ) : CdkObject(cdkObject), CfnConnectionProps { + /** + * The name of the connection. + * + * Connection names must be unique in an AWS account . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeconnections-connection.html#cfn-codeconnections-connection-connectionname) + */ + override fun connectionName(): String = unwrap(this).getConnectionName() + + /** + * The Amazon Resource Name (ARN) of the host associated with the connection. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeconnections-connection.html#cfn-codeconnections-connection-hostarn) + */ + override fun hostArn(): String? = unwrap(this).getHostArn() + + /** + * The name of the external provider where your third-party code repository is configured. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeconnections-connection.html#cfn-codeconnections-connection-providertype) + */ + override fun providerType(): String? = unwrap(this).getProviderType() + + /** + * Specifies the tags applied to a connection. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeconnections-connection.html#cfn-codeconnections-connection-tags) + */ + override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnConnectionProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.codeconnections.CfnConnectionProps): + CfnConnectionProps = CdkObjectWrappers.wrap(cdkObject) as? CfnConnectionProps ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnConnectionProps): + software.amazon.awscdk.services.codeconnections.CfnConnectionProps = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.codeconnections.CfnConnectionProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codepipeline/CfnCustomActionType.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codepipeline/CfnCustomActionType.kt index 895cd36e1a..dc512358b0 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codepipeline/CfnCustomActionType.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codepipeline/CfnCustomActionType.kt @@ -405,20 +405,20 @@ public open class CfnCustomActionType( public fun provider(provider: String) /** - * The tags for the custom action. + * URLs that provide users information about this custom action. * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-tags) - * @param tags The tags for the custom action. + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-settings) + * @param settings URLs that provide users information about this custom action. */ - public fun tags(tags: List) + public fun settings(settings: IResolvable) /** - * The tags for the custom action. + * URLs that provide users information about this custom action. * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-tags) - * @param tags The tags for the custom action. + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-settings) + * @param settings URLs that provide users information about this custom action. */ - public fun tags(vararg tags: CfnTag) + public fun settings(settings: SettingsProperty) /** * URLs that provide users information about this custom action. @@ -426,25 +426,25 @@ public open class CfnCustomActionType( * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-settings) * @param settings URLs that provide users information about this custom action. */ - public fun tings(settings: IResolvable) + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("73b752864910c8cd1fd1b0615620949f9560b886cf47eefc7159519d45d3f322") + public fun settings(settings: SettingsProperty.Builder.() -> Unit) /** - * URLs that provide users information about this custom action. + * The tags for the custom action. * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-settings) - * @param settings URLs that provide users information about this custom action. + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-tags) + * @param tags The tags for the custom action. */ - public fun tings(settings: SettingsProperty) + public fun tags(tags: List) /** - * URLs that provide users information about this custom action. + * The tags for the custom action. * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-settings) - * @param settings URLs that provide users information about this custom action. + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-tags) + * @param tags The tags for the custom action. */ - @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("66dba7e677bf870a75b236ff0b004c0bc110a4c4b2e371228cd57f32a20a1f6b") - public fun tings(settings: SettingsProperty.Builder.() -> Unit) + public fun tags(vararg tags: CfnTag) /** * The version identifier of the custom action. @@ -605,31 +605,13 @@ public open class CfnCustomActionType( cdkBuilder.provider(provider) } - /** - * The tags for the custom action. - * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-tags) - * @param tags The tags for the custom action. - */ - override fun tags(tags: List) { - cdkBuilder.tags(tags.map(CfnTag::unwrap)) - } - - /** - * The tags for the custom action. - * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-tags) - * @param tags The tags for the custom action. - */ - override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) - /** * URLs that provide users information about this custom action. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-settings) * @param settings URLs that provide users information about this custom action. */ - override fun tings(settings: IResolvable) { + override fun settings(settings: IResolvable) { cdkBuilder.settings(settings.let(IResolvable::unwrap)) } @@ -639,7 +621,7 @@ public open class CfnCustomActionType( * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-settings) * @param settings URLs that provide users information about this custom action. */ - override fun tings(settings: SettingsProperty) { + override fun settings(settings: SettingsProperty) { cdkBuilder.settings(settings.let(SettingsProperty::unwrap)) } @@ -650,9 +632,27 @@ public open class CfnCustomActionType( * @param settings URLs that provide users information about this custom action. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("66dba7e677bf870a75b236ff0b004c0bc110a4c4b2e371228cd57f32a20a1f6b") - override fun tings(settings: SettingsProperty.Builder.() -> Unit): Unit = - tings(SettingsProperty(settings)) + @JvmName("73b752864910c8cd1fd1b0615620949f9560b886cf47eefc7159519d45d3f322") + override fun settings(settings: SettingsProperty.Builder.() -> Unit): Unit = + settings(SettingsProperty(settings)) + + /** + * The tags for the custom action. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-tags) + * @param tags The tags for the custom action. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * The tags for the custom action. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-tags) + * @param tags The tags for the custom action. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) /** * The version identifier of the custom action. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codepipeline/CfnCustomActionTypeProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codepipeline/CfnCustomActionTypeProps.kt index 927ba579a4..46aa8d31e2 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codepipeline/CfnCustomActionTypeProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codepipeline/CfnCustomActionTypeProps.kt @@ -218,31 +218,31 @@ public interface CfnCustomActionTypeProps { public fun provider(provider: String) /** - * @param tags The tags for the custom action. + * @param settings URLs that provide users information about this custom action. */ - public fun tags(tags: List) + public fun settings(settings: IResolvable) /** - * @param tags The tags for the custom action. + * @param settings URLs that provide users information about this custom action. */ - public fun tags(vararg tags: CfnTag) + public fun settings(settings: CfnCustomActionType.SettingsProperty) /** * @param settings URLs that provide users information about this custom action. */ - public fun tings(settings: IResolvable) + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("9f879674783ccde8da210cf65e012f0e5dc2c709abc8e626120f64dbffd587d9") + public fun settings(settings: CfnCustomActionType.SettingsProperty.Builder.() -> Unit) /** - * @param settings URLs that provide users information about this custom action. + * @param tags The tags for the custom action. */ - public fun tings(settings: CfnCustomActionType.SettingsProperty) + public fun tags(tags: List) /** - * @param settings URLs that provide users information about this custom action. + * @param tags The tags for the custom action. */ - @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("c5dad734a778bd8f7c0451e773d7159ec6f4e3d028fe71958bfd43ec648fb9d3") - public fun tings(settings: CfnCustomActionType.SettingsProperty.Builder.() -> Unit) + public fun tags(vararg tags: CfnTag) /** * @param version The version identifier of the custom action. @@ -364,38 +364,38 @@ public interface CfnCustomActionTypeProps { } /** - * @param tags The tags for the custom action. + * @param settings URLs that provide users information about this custom action. */ - override fun tags(tags: List) { - cdkBuilder.tags(tags.map(CfnTag::unwrap)) + override fun settings(settings: IResolvable) { + cdkBuilder.settings(settings.let(IResolvable::unwrap)) } /** - * @param tags The tags for the custom action. + * @param settings URLs that provide users information about this custom action. */ - override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + override fun settings(settings: CfnCustomActionType.SettingsProperty) { + cdkBuilder.settings(settings.let(CfnCustomActionType.SettingsProperty::unwrap)) + } /** * @param settings URLs that provide users information about this custom action. */ - override fun tings(settings: IResolvable) { - cdkBuilder.settings(settings.let(IResolvable::unwrap)) - } + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("9f879674783ccde8da210cf65e012f0e5dc2c709abc8e626120f64dbffd587d9") + override fun settings(settings: CfnCustomActionType.SettingsProperty.Builder.() -> Unit): Unit = + settings(CfnCustomActionType.SettingsProperty(settings)) /** - * @param settings URLs that provide users information about this custom action. + * @param tags The tags for the custom action. */ - override fun tings(settings: CfnCustomActionType.SettingsProperty) { - cdkBuilder.settings(settings.let(CfnCustomActionType.SettingsProperty::unwrap)) + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) } /** - * @param settings URLs that provide users information about this custom action. + * @param tags The tags for the custom action. */ - @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("c5dad734a778bd8f7c0451e773d7159ec6f4e3d028fe71958bfd43ec648fb9d3") - override fun tings(settings: CfnCustomActionType.SettingsProperty.Builder.() -> Unit): Unit = - tings(CfnCustomActionType.SettingsProperty(settings)) + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) /** * @param version The version identifier of the custom action. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codepipeline/CfnPipeline.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codepipeline/CfnPipeline.kt index a9685d134c..44fd03d26c 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codepipeline/CfnPipeline.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codepipeline/CfnPipeline.kt @@ -64,6 +64,7 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .region("region") * .roleArn("roleArn") * .runOrder(123) + * .timeoutInMinutes(123) * .build())) * .name("name") * // the properties below are optional @@ -1147,14 +1148,6 @@ public open class CfnPipeline( /** * Represents information about an action declaration. * - * - * Documentation for the `timeoutInMinutes` parameter in the `ActionDeclaration` is not yet - * available for CloudFormation and CDK resources in CodePipeline. For more information about the - * configurable timeout for manual approval actions, see the - * [ActionDeclaration](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_ActionDeclaration.html) - * in the CodePipeline API Reference. - * - * * Example: * * ``` @@ -1182,6 +1175,7 @@ public open class CfnPipeline( * .region("region") * .roleArn("roleArn") * .runOrder(123) + * .timeoutInMinutes(123) * .build(); * ``` * @@ -1292,6 +1286,16 @@ public open class CfnPipeline( */ public fun runOrder(): Number? = unwrap(this).getRunOrder() + /** + * A timeout duration in minutes that can be applied against the ActionType’s default timeout + * value specified in [Quotas for AWS + * CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/limits.html) . This + * attribute is available only to the manual approval ActionType. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-actiondeclaration.html#cfn-codepipeline-pipeline-actiondeclaration-timeoutinminutes) + */ + public fun timeoutInMinutes(): Number? = unwrap(this).getTimeoutInMinutes() + /** * A builder for [ActionDeclarationProperty] */ @@ -1446,6 +1450,14 @@ public open class CfnPipeline( * @param runOrder The order in which actions are run. */ public fun runOrder(runOrder: Number) + + /** + * @param timeoutInMinutes A timeout duration in minutes that can be applied against the + * ActionType’s default timeout value specified in [Quotas for AWS + * CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/limits.html) . This + * attribute is available only to the manual approval ActionType. + */ + public fun timeoutInMinutes(timeoutInMinutes: Number) } private class BuilderImpl : Builder { @@ -1631,6 +1643,16 @@ public open class CfnPipeline( cdkBuilder.runOrder(runOrder) } + /** + * @param timeoutInMinutes A timeout duration in minutes that can be applied against the + * ActionType’s default timeout value specified in [Quotas for AWS + * CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/limits.html) . This + * attribute is available only to the manual approval ActionType. + */ + override fun timeoutInMinutes(timeoutInMinutes: Number) { + cdkBuilder.timeoutInMinutes(timeoutInMinutes) + } + public fun build(): software.amazon.awscdk.services.codepipeline.CfnPipeline.ActionDeclarationProperty = cdkBuilder.build() @@ -1742,6 +1764,16 @@ public open class CfnPipeline( * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-actiondeclaration.html#cfn-codepipeline-pipeline-actiondeclaration-runorder) */ override fun runOrder(): Number? = unwrap(this).getRunOrder() + + /** + * A timeout duration in minutes that can be applied against the ActionType’s default timeout + * value specified in [Quotas for AWS + * CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/limits.html) . This + * attribute is available only to the manual approval ActionType. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-actiondeclaration.html#cfn-codepipeline-pipeline-actiondeclaration-timeoutinminutes) + */ + override fun timeoutInMinutes(): Number? = unwrap(this).getTimeoutInMinutes() } public companion object { @@ -4261,6 +4293,7 @@ public open class CfnPipeline( * .region("region") * .roleArn("roleArn") * .runOrder(123) + * .timeoutInMinutes(123) * .build())) * .name("name") * // the properties below are optional diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codepipeline/CfnPipelineProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codepipeline/CfnPipelineProps.kt index a2b554026c..cbb5271438 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codepipeline/CfnPipelineProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codepipeline/CfnPipelineProps.kt @@ -47,6 +47,7 @@ import kotlin.jvm.JvmName * .region("region") * .roleArn("roleArn") * .runOrder(123) + * .timeoutInMinutes(123) * .build())) * .name("name") * // the properties below are optional diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codestarconnections/CfnSyncConfiguration.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codestarconnections/CfnSyncConfiguration.kt index b3bf3c2c3e..552d96f83a 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codestarconnections/CfnSyncConfiguration.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codestarconnections/CfnSyncConfiguration.kt @@ -29,6 +29,9 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .resourceName("resourceName") * .roleArn("roleArn") * .syncType("syncType") + * // the properties below are optional + * .publishDeploymentStatus("publishDeploymentStatus") + * .triggerResourceUpdateOn("triggerResourceUpdateOn") * .build(); * ``` * @@ -102,6 +105,18 @@ public open class CfnSyncConfiguration( unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) } + /** + * Whether to enable or disable publishing of deployment status to source providers. + */ + public open fun publishDeploymentStatus(): String? = unwrap(this).getPublishDeploymentStatus() + + /** + * Whether to enable or disable publishing of deployment status to source providers. + */ + public open fun publishDeploymentStatus(`value`: String) { + unwrap(this).setPublishDeploymentStatus(`value`) + } + /** * The ID of the repository link associated with a specific sync configuration. */ @@ -150,6 +165,18 @@ public open class CfnSyncConfiguration( unwrap(this).setSyncType(`value`) } + /** + * When to trigger Git sync to begin the stack update. + */ + public open fun triggerResourceUpdateOn(): String? = unwrap(this).getTriggerResourceUpdateOn() + + /** + * When to trigger Git sync to begin the stack update. + */ + public open fun triggerResourceUpdateOn(`value`: String) { + unwrap(this).setTriggerResourceUpdateOn(`value`) + } + /** * A fluent builder for * [io.cloudshiftdev.awscdk.services.codestarconnections.CfnSyncConfiguration]. @@ -175,6 +202,15 @@ public open class CfnSyncConfiguration( */ public fun configFile(configFile: String) + /** + * Whether to enable or disable publishing of deployment status to source providers. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-syncconfiguration.html#cfn-codestarconnections-syncconfiguration-publishdeploymentstatus) + * @param publishDeploymentStatus Whether to enable or disable publishing of deployment status + * to source providers. + */ + public fun publishDeploymentStatus(publishDeploymentStatus: String) + /** * The ID of the repository link associated with a specific sync configuration. * @@ -209,6 +245,14 @@ public open class CfnSyncConfiguration( * @param syncType The type of sync for a specific sync configuration. */ public fun syncType(syncType: String) + + /** + * When to trigger Git sync to begin the stack update. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-syncconfiguration.html#cfn-codestarconnections-syncconfiguration-triggerresourceupdateon) + * @param triggerResourceUpdateOn When to trigger Git sync to begin the stack update. + */ + public fun triggerResourceUpdateOn(triggerResourceUpdateOn: String) } private class BuilderImpl( @@ -243,6 +287,17 @@ public open class CfnSyncConfiguration( cdkBuilder.configFile(configFile) } + /** + * Whether to enable or disable publishing of deployment status to source providers. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-syncconfiguration.html#cfn-codestarconnections-syncconfiguration-publishdeploymentstatus) + * @param publishDeploymentStatus Whether to enable or disable publishing of deployment status + * to source providers. + */ + override fun publishDeploymentStatus(publishDeploymentStatus: String) { + cdkBuilder.publishDeploymentStatus(publishDeploymentStatus) + } + /** * The ID of the repository link associated with a specific sync configuration. * @@ -286,6 +341,16 @@ public open class CfnSyncConfiguration( cdkBuilder.syncType(syncType) } + /** + * When to trigger Git sync to begin the stack update. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-syncconfiguration.html#cfn-codestarconnections-syncconfiguration-triggerresourceupdateon) + * @param triggerResourceUpdateOn When to trigger Git sync to begin the stack update. + */ + override fun triggerResourceUpdateOn(triggerResourceUpdateOn: String) { + cdkBuilder.triggerResourceUpdateOn(triggerResourceUpdateOn) + } + public fun build(): software.amazon.awscdk.services.codestarconnections.CfnSyncConfiguration = cdkBuilder.build() } diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codestarconnections/CfnSyncConfigurationProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codestarconnections/CfnSyncConfigurationProps.kt index 3cb7454b6f..6c8fe8eaec 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codestarconnections/CfnSyncConfigurationProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/codestarconnections/CfnSyncConfigurationProps.kt @@ -24,6 +24,9 @@ import kotlin.Unit * .resourceName("resourceName") * .roleArn("roleArn") * .syncType("syncType") + * // the properties below are optional + * .publishDeploymentStatus("publishDeploymentStatus") + * .triggerResourceUpdateOn("triggerResourceUpdateOn") * .build(); * ``` * @@ -46,6 +49,13 @@ public interface CfnSyncConfigurationProps { */ public fun configFile(): String + /** + * Whether to enable or disable publishing of deployment status to source providers. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-syncconfiguration.html#cfn-codestarconnections-syncconfiguration-publishdeploymentstatus) + */ + public fun publishDeploymentStatus(): String? = unwrap(this).getPublishDeploymentStatus() + /** * The ID of the repository link associated with a specific sync configuration. * @@ -74,6 +84,13 @@ public interface CfnSyncConfigurationProps { */ public fun syncType(): String + /** + * When to trigger Git sync to begin the stack update. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-syncconfiguration.html#cfn-codestarconnections-syncconfiguration-triggerresourceupdateon) + */ + public fun triggerResourceUpdateOn(): String? = unwrap(this).getTriggerResourceUpdateOn() + /** * A builder for [CfnSyncConfigurationProps] */ @@ -91,6 +108,12 @@ public interface CfnSyncConfigurationProps { */ public fun configFile(configFile: String) + /** + * @param publishDeploymentStatus Whether to enable or disable publishing of deployment status + * to source providers. + */ + public fun publishDeploymentStatus(publishDeploymentStatus: String) + /** * @param repositoryLinkId The ID of the repository link associated with a specific sync * configuration. @@ -113,6 +136,11 @@ public interface CfnSyncConfigurationProps { * @param syncType The type of sync for a specific sync configuration. */ public fun syncType(syncType: String) + + /** + * @param triggerResourceUpdateOn When to trigger Git sync to begin the stack update. + */ + public fun triggerResourceUpdateOn(triggerResourceUpdateOn: String) } private class BuilderImpl : Builder { @@ -136,6 +164,14 @@ public interface CfnSyncConfigurationProps { cdkBuilder.configFile(configFile) } + /** + * @param publishDeploymentStatus Whether to enable or disable publishing of deployment status + * to source providers. + */ + override fun publishDeploymentStatus(publishDeploymentStatus: String) { + cdkBuilder.publishDeploymentStatus(publishDeploymentStatus) + } + /** * @param repositoryLinkId The ID of the repository link associated with a specific sync * configuration. @@ -167,6 +203,13 @@ public interface CfnSyncConfigurationProps { cdkBuilder.syncType(syncType) } + /** + * @param triggerResourceUpdateOn When to trigger Git sync to begin the stack update. + */ + override fun triggerResourceUpdateOn(triggerResourceUpdateOn: String) { + cdkBuilder.triggerResourceUpdateOn(triggerResourceUpdateOn) + } + public fun build(): software.amazon.awscdk.services.codestarconnections.CfnSyncConfigurationProps = cdkBuilder.build() @@ -191,6 +234,13 @@ public interface CfnSyncConfigurationProps { */ override fun configFile(): String = unwrap(this).getConfigFile() + /** + * Whether to enable or disable publishing of deployment status to source providers. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-syncconfiguration.html#cfn-codestarconnections-syncconfiguration-publishdeploymentstatus) + */ + override fun publishDeploymentStatus(): String? = unwrap(this).getPublishDeploymentStatus() + /** * The ID of the repository link associated with a specific sync configuration. * @@ -218,6 +268,13 @@ public interface CfnSyncConfigurationProps { * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-syncconfiguration.html#cfn-codestarconnections-syncconfiguration-synctype) */ override fun syncType(): String = unwrap(this).getSyncType() + + /** + * When to trigger Git sync to begin the stack update. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-syncconfiguration.html#cfn-codestarconnections-syncconfiguration-triggerresourceupdateon) + */ + override fun triggerResourceUpdateOn(): String? = unwrap(this).getTriggerResourceUpdateOn() } public companion object { diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/CfnUserPool.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/CfnUserPool.kt index ad2f6f0a3c..a076024f96 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/CfnUserPool.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/CfnUserPool.kt @@ -874,8 +874,8 @@ public open class CfnUserPool( /** * When active, `DeletionProtection` prevents accidental deletion of your user pool. * - * Before you can delete a user pool that you have protected against deletion, you must - * deactivate this feature. + * Before you can delete a user pool that you have protected against deletion, you + * must deactivate this feature. * * When you try to delete a protected user pool in a `DeleteUserPool` API request, Amazon * Cognito returns an `InvalidParameterException` error. To delete a protected user pool, send a @@ -1612,8 +1612,8 @@ public open class CfnUserPool( /** * When active, `DeletionProtection` prevents accidental deletion of your user pool. * - * Before you can delete a user pool that you have protected against deletion, you must - * deactivate this feature. + * Before you can delete a user pool that you have protected against deletion, you + * must deactivate this feature. * * When you try to delete a protected user pool in a `DeleteUserPool` API request, Amazon * Cognito returns an `InvalidParameterException` error. To delete a protected user pool, send a diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/CfnUserPoolIdentityProvider.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/CfnUserPoolIdentityProvider.kt index 718ba661ce..209de42284 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/CfnUserPoolIdentityProvider.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/CfnUserPoolIdentityProvider.kt @@ -102,16 +102,12 @@ public open class CfnUserPoolIdentityProvider( } /** - * The IdP details. - * - * The following list describes the provider detail keys for each IdP type. + * The scopes, URLs, and identifiers for your external identity provider. */ public open fun providerDetails(): Any? = unwrap(this).getProviderDetails() /** - * The IdP details. - * - * The following list describes the provider detail keys for each IdP type. + * The scopes, URLs, and identifiers for your external identity provider. */ public open fun providerDetails(`value`: Any) { unwrap(this).setProviderDetails(`value`) @@ -184,44 +180,95 @@ public open class CfnUserPoolIdentityProvider( public fun idpIdentifiers(vararg idpIdentifiers: String) /** - * The IdP details. The following list describes the provider detail keys for each IdP type. - * - * * For Google and Login with Amazon: - * * client_id - * * client_secret - * * authorize_scopes - * * For Facebook: - * * client_id - * * client_secret - * * authorize_scopes - * * api_version - * * For Sign in with Apple: - * * client_id - * * team_id - * * key_id - * * private_key - * * authorize_scopes - * * For OpenID Connect (OIDC) providers: - * * client_id - * * client_secret - * * attributes_request_method - * * oidc_issuer - * * authorize_scopes - * * The following keys are only present if Amazon Cognito didn't discover them at the - * `oidc_issuer` URL. - * * authorize_url - * * token_url - * * attributes_url - * * jwks_uri - * * Amazon Cognito sets the value of the following keys automatically. They are read-only. - * * attributes_url_add_attributes - * * For SAML providers: - * * MetadataFile or MetadataURL - * * IDPSignout *optional* + * The scopes, URLs, and identifiers for your external identity provider. + * + * The following + * examples describe the provider detail keys for each IdP type. These values and their + * schema are subject to change. Social IdP `authorize_scopes` values must match + * the values listed here. + * + * * **OpenID Connect (OIDC)** - Amazon Cognito accepts the following elements when it can't + * discover endpoint URLs from `oidc_issuer` : `attributes_url` , `authorize_url` , `jwks_uri` , + * `token_url` . + * + * Create or update request: `"ProviderDetails": { "attributes_request_method": "GET", + * "attributes_url": "https://auth.example.com/userInfo", "authorize_scopes": "openid profile + * email", "authorize_url": "https://auth.example.com/authorize", "client_id": "1example23456789", + * "client_secret": "provider-app-client-secret", "jwks_uri": + * "https://auth.example.com/.well-known/jwks.json", "oidc_issuer": "https://auth.example.com", + * "token_url": "https://example.com/token" }` + * + * Describe response: `"ProviderDetails": { "attributes_request_method": "GET", + * "attributes_url": "https://auth.example.com/userInfo", "attributes_url_add_attributes": "false", + * "authorize_scopes": "openid profile email", "authorize_url": + * "https://auth.example.com/authorize", "client_id": "1example23456789", "client_secret": + * "provider-app-client-secret", "jwks_uri": "https://auth.example.com/.well-known/jwks.json", + * "oidc_issuer": "https://auth.example.com", "token_url": "https://example.com/token" }` + * + * * **SAML** - Create or update request with Metadata URL: `"ProviderDetails": { "IDPInit": + * "true", "IDPSignout": "true", "EncryptedResponses" : "true", "MetadataURL": + * "https://auth.example.com/sso/saml/metadata", "RequestSigningAlgorithm": "rsa-sha256" }` + * + * Create or update request with Metadata file: `"ProviderDetails": { "IDPInit": "true", + * "IDPSignout": "true", "EncryptedResponses" : "true", "MetadataFile": "[metadata XML]", + * "RequestSigningAlgorithm": "rsa-sha256" }` + * + * The value of `MetadataFile` must be the plaintext metadata document with all quote (") + * characters escaped by backslashes. + * + * Describe response: `"ProviderDetails": { "IDPInit": "true", "IDPSignout": "true", + * "EncryptedResponses" : "true", "ActiveEncryptionCertificate": "[certificate]", "MetadataURL": + * "https://auth.example.com/sso/saml/metadata", "RequestSigningAlgorithm": "rsa-sha256", + * "SLORedirectBindingURI": "https://auth.example.com/slo/saml", "SSORedirectBindingURI": + * "https://auth.example.com/sso/saml" }` + * + * * **LoginWithAmazon** - Create or update request: `"ProviderDetails": { "authorize_scopes": + * "profile postal_code", "client_id": "amzn1.application-oa2-client.1example23456789", + * "client_secret": "provider-app-client-secret"` + * + * Describe response: `"ProviderDetails": { "attributes_url": + * "https://api.amazon.com/user/profile", "attributes_url_add_attributes": "false", + * "authorize_scopes": "profile postal_code", "authorize_url": "https://www.amazon.com/ap/oa", + * "client_id": "amzn1.application-oa2-client.1example23456789", "client_secret": + * "provider-app-client-secret", "token_request_method": "POST", "token_url": + * "https://api.amazon.com/auth/o2/token" }` + * + * * **Google** - Create or update request: `"ProviderDetails": { "authorize_scopes": "email + * profile openid", "client_id": "1example23456789.apps.googleusercontent.com", "client_secret": + * "provider-app-client-secret" }` + * + * Describe response: `"ProviderDetails": { "attributes_url": + * "https://people.googleapis.com/v1/people/me?personFields=", "attributes_url_add_attributes": + * "true", "authorize_scopes": "email profile openid", "authorize_url": + * "https://accounts.google.com/o/oauth2/v2/auth", "client_id": + * "1example23456789.apps.googleusercontent.com", "client_secret": "provider-app-client-secret", + * "oidc_issuer": "https://accounts.google.com", "token_request_method": "POST", "token_url": + * "https://www.googleapis.com/oauth2/v4/token" }` + * + * * **SignInWithApple** - Create or update request: `"ProviderDetails": { "authorize_scopes": + * "email name", "client_id": "com.example.cognito", "private_key": "1EXAMPLE", "key_id": + * "2EXAMPLE", "team_id": "3EXAMPLE" }` + * + * Describe response: `"ProviderDetails": { "attributes_url_add_attributes": "false", + * "authorize_scopes": "email name", "authorize_url": "https://appleid.apple.com/auth/authorize", + * "client_id": "com.example.cognito", "key_id": "1EXAMPLE", "oidc_issuer": + * "https://appleid.apple.com", "team_id": "2EXAMPLE", "token_request_method": "POST", "token_url": + * "https://appleid.apple.com/auth/token" }` + * + * * **Facebook** - Create or update request: `"ProviderDetails": { "api_version": "v17.0", + * "authorize_scopes": "public_profile, email", "client_id": "1example23456789", "client_secret": + * "provider-app-client-secret" }` + * + * Describe response: `"ProviderDetails": { "api_version": "v17.0", "attributes_url": + * "https://graph.facebook.com/v17.0/me?fields=", "attributes_url_add_attributes": "true", + * "authorize_scopes": "public_profile, email", "authorize_url": + * "https://www.facebook.com/v17.0/dialog/oauth", "client_id": "1example23456789", "client_secret": + * "provider-app-client-secret", "token_request_method": "GET", "token_url": + * "https://graph.facebook.com/v17.0/oauth/access_token" }` * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolidentityprovider.html#cfn-cognito-userpoolidentityprovider-providerdetails) - * @param providerDetails The IdP details. The following list describes the provider detail keys - * for each IdP type. + * @param providerDetails The scopes, URLs, and identifiers for your external identity provider. + * */ public fun providerDetails(providerDetails: Any) @@ -290,44 +337,95 @@ public open class CfnUserPoolIdentityProvider( idpIdentifiers(idpIdentifiers.toList()) /** - * The IdP details. The following list describes the provider detail keys for each IdP type. - * - * * For Google and Login with Amazon: - * * client_id - * * client_secret - * * authorize_scopes - * * For Facebook: - * * client_id - * * client_secret - * * authorize_scopes - * * api_version - * * For Sign in with Apple: - * * client_id - * * team_id - * * key_id - * * private_key - * * authorize_scopes - * * For OpenID Connect (OIDC) providers: - * * client_id - * * client_secret - * * attributes_request_method - * * oidc_issuer - * * authorize_scopes - * * The following keys are only present if Amazon Cognito didn't discover them at the - * `oidc_issuer` URL. - * * authorize_url - * * token_url - * * attributes_url - * * jwks_uri - * * Amazon Cognito sets the value of the following keys automatically. They are read-only. - * * attributes_url_add_attributes - * * For SAML providers: - * * MetadataFile or MetadataURL - * * IDPSignout *optional* + * The scopes, URLs, and identifiers for your external identity provider. + * + * The following + * examples describe the provider detail keys for each IdP type. These values and their + * schema are subject to change. Social IdP `authorize_scopes` values must match + * the values listed here. + * + * * **OpenID Connect (OIDC)** - Amazon Cognito accepts the following elements when it can't + * discover endpoint URLs from `oidc_issuer` : `attributes_url` , `authorize_url` , `jwks_uri` , + * `token_url` . + * + * Create or update request: `"ProviderDetails": { "attributes_request_method": "GET", + * "attributes_url": "https://auth.example.com/userInfo", "authorize_scopes": "openid profile + * email", "authorize_url": "https://auth.example.com/authorize", "client_id": "1example23456789", + * "client_secret": "provider-app-client-secret", "jwks_uri": + * "https://auth.example.com/.well-known/jwks.json", "oidc_issuer": "https://auth.example.com", + * "token_url": "https://example.com/token" }` + * + * Describe response: `"ProviderDetails": { "attributes_request_method": "GET", + * "attributes_url": "https://auth.example.com/userInfo", "attributes_url_add_attributes": "false", + * "authorize_scopes": "openid profile email", "authorize_url": + * "https://auth.example.com/authorize", "client_id": "1example23456789", "client_secret": + * "provider-app-client-secret", "jwks_uri": "https://auth.example.com/.well-known/jwks.json", + * "oidc_issuer": "https://auth.example.com", "token_url": "https://example.com/token" }` + * + * * **SAML** - Create or update request with Metadata URL: `"ProviderDetails": { "IDPInit": + * "true", "IDPSignout": "true", "EncryptedResponses" : "true", "MetadataURL": + * "https://auth.example.com/sso/saml/metadata", "RequestSigningAlgorithm": "rsa-sha256" }` + * + * Create or update request with Metadata file: `"ProviderDetails": { "IDPInit": "true", + * "IDPSignout": "true", "EncryptedResponses" : "true", "MetadataFile": "[metadata XML]", + * "RequestSigningAlgorithm": "rsa-sha256" }` + * + * The value of `MetadataFile` must be the plaintext metadata document with all quote (") + * characters escaped by backslashes. + * + * Describe response: `"ProviderDetails": { "IDPInit": "true", "IDPSignout": "true", + * "EncryptedResponses" : "true", "ActiveEncryptionCertificate": "[certificate]", "MetadataURL": + * "https://auth.example.com/sso/saml/metadata", "RequestSigningAlgorithm": "rsa-sha256", + * "SLORedirectBindingURI": "https://auth.example.com/slo/saml", "SSORedirectBindingURI": + * "https://auth.example.com/sso/saml" }` + * + * * **LoginWithAmazon** - Create or update request: `"ProviderDetails": { "authorize_scopes": + * "profile postal_code", "client_id": "amzn1.application-oa2-client.1example23456789", + * "client_secret": "provider-app-client-secret"` + * + * Describe response: `"ProviderDetails": { "attributes_url": + * "https://api.amazon.com/user/profile", "attributes_url_add_attributes": "false", + * "authorize_scopes": "profile postal_code", "authorize_url": "https://www.amazon.com/ap/oa", + * "client_id": "amzn1.application-oa2-client.1example23456789", "client_secret": + * "provider-app-client-secret", "token_request_method": "POST", "token_url": + * "https://api.amazon.com/auth/o2/token" }` + * + * * **Google** - Create or update request: `"ProviderDetails": { "authorize_scopes": "email + * profile openid", "client_id": "1example23456789.apps.googleusercontent.com", "client_secret": + * "provider-app-client-secret" }` + * + * Describe response: `"ProviderDetails": { "attributes_url": + * "https://people.googleapis.com/v1/people/me?personFields=", "attributes_url_add_attributes": + * "true", "authorize_scopes": "email profile openid", "authorize_url": + * "https://accounts.google.com/o/oauth2/v2/auth", "client_id": + * "1example23456789.apps.googleusercontent.com", "client_secret": "provider-app-client-secret", + * "oidc_issuer": "https://accounts.google.com", "token_request_method": "POST", "token_url": + * "https://www.googleapis.com/oauth2/v4/token" }` + * + * * **SignInWithApple** - Create or update request: `"ProviderDetails": { "authorize_scopes": + * "email name", "client_id": "com.example.cognito", "private_key": "1EXAMPLE", "key_id": + * "2EXAMPLE", "team_id": "3EXAMPLE" }` + * + * Describe response: `"ProviderDetails": { "attributes_url_add_attributes": "false", + * "authorize_scopes": "email name", "authorize_url": "https://appleid.apple.com/auth/authorize", + * "client_id": "com.example.cognito", "key_id": "1EXAMPLE", "oidc_issuer": + * "https://appleid.apple.com", "team_id": "2EXAMPLE", "token_request_method": "POST", "token_url": + * "https://appleid.apple.com/auth/token" }` + * + * * **Facebook** - Create or update request: `"ProviderDetails": { "api_version": "v17.0", + * "authorize_scopes": "public_profile, email", "client_id": "1example23456789", "client_secret": + * "provider-app-client-secret" }` + * + * Describe response: `"ProviderDetails": { "api_version": "v17.0", "attributes_url": + * "https://graph.facebook.com/v17.0/me?fields=", "attributes_url_add_attributes": "true", + * "authorize_scopes": "public_profile, email", "authorize_url": + * "https://www.facebook.com/v17.0/dialog/oauth", "client_id": "1example23456789", "client_secret": + * "provider-app-client-secret", "token_request_method": "GET", "token_url": + * "https://graph.facebook.com/v17.0/oauth/access_token" }` * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolidentityprovider.html#cfn-cognito-userpoolidentityprovider-providerdetails) - * @param providerDetails The IdP details. The following list describes the provider detail keys - * for each IdP type. + * @param providerDetails The scopes, URLs, and identifiers for your external identity provider. + * */ override fun providerDetails(providerDetails: Any) { cdkBuilder.providerDetails(providerDetails) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/CfnUserPoolIdentityProviderProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/CfnUserPoolIdentityProviderProps.kt index 7199abd595..d9ea3dea5a 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/CfnUserPoolIdentityProviderProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/CfnUserPoolIdentityProviderProps.kt @@ -51,40 +51,91 @@ public interface CfnUserPoolIdentityProviderProps { public fun idpIdentifiers(): List = unwrap(this).getIdpIdentifiers() ?: emptyList() /** - * The IdP details. The following list describes the provider detail keys for each IdP type. + * The scopes, URLs, and identifiers for your external identity provider. * - * * For Google and Login with Amazon: - * * client_id - * * client_secret - * * authorize_scopes - * * For Facebook: - * * client_id - * * client_secret - * * authorize_scopes - * * api_version - * * For Sign in with Apple: - * * client_id - * * team_id - * * key_id - * * private_key - * * authorize_scopes - * * For OpenID Connect (OIDC) providers: - * * client_id - * * client_secret - * * attributes_request_method - * * oidc_issuer - * * authorize_scopes - * * The following keys are only present if Amazon Cognito didn't discover them at the - * `oidc_issuer` URL. - * * authorize_url - * * token_url - * * attributes_url - * * jwks_uri - * * Amazon Cognito sets the value of the following keys automatically. They are read-only. - * * attributes_url_add_attributes - * * For SAML providers: - * * MetadataFile or MetadataURL - * * IDPSignout *optional* + * The following + * examples describe the provider detail keys for each IdP type. These values and their + * schema are subject to change. Social IdP `authorize_scopes` values must match + * the values listed here. + * + * * **OpenID Connect (OIDC)** - Amazon Cognito accepts the following elements when it can't + * discover endpoint URLs from `oidc_issuer` : `attributes_url` , `authorize_url` , `jwks_uri` , + * `token_url` . + * + * Create or update request: `"ProviderDetails": { "attributes_request_method": "GET", + * "attributes_url": "https://auth.example.com/userInfo", "authorize_scopes": "openid profile email", + * "authorize_url": "https://auth.example.com/authorize", "client_id": "1example23456789", + * "client_secret": "provider-app-client-secret", "jwks_uri": + * "https://auth.example.com/.well-known/jwks.json", "oidc_issuer": "https://auth.example.com", + * "token_url": "https://example.com/token" }` + * + * Describe response: `"ProviderDetails": { "attributes_request_method": "GET", "attributes_url": + * "https://auth.example.com/userInfo", "attributes_url_add_attributes": "false", "authorize_scopes": + * "openid profile email", "authorize_url": "https://auth.example.com/authorize", "client_id": + * "1example23456789", "client_secret": "provider-app-client-secret", "jwks_uri": + * "https://auth.example.com/.well-known/jwks.json", "oidc_issuer": "https://auth.example.com", + * "token_url": "https://example.com/token" }` + * + * * **SAML** - Create or update request with Metadata URL: `"ProviderDetails": { "IDPInit": + * "true", "IDPSignout": "true", "EncryptedResponses" : "true", "MetadataURL": + * "https://auth.example.com/sso/saml/metadata", "RequestSigningAlgorithm": "rsa-sha256" }` + * + * Create or update request with Metadata file: `"ProviderDetails": { "IDPInit": "true", + * "IDPSignout": "true", "EncryptedResponses" : "true", "MetadataFile": "[metadata XML]", + * "RequestSigningAlgorithm": "rsa-sha256" }` + * + * The value of `MetadataFile` must be the plaintext metadata document with all quote (") + * characters escaped by backslashes. + * + * Describe response: `"ProviderDetails": { "IDPInit": "true", "IDPSignout": "true", + * "EncryptedResponses" : "true", "ActiveEncryptionCertificate": "[certificate]", "MetadataURL": + * "https://auth.example.com/sso/saml/metadata", "RequestSigningAlgorithm": "rsa-sha256", + * "SLORedirectBindingURI": "https://auth.example.com/slo/saml", "SSORedirectBindingURI": + * "https://auth.example.com/sso/saml" }` + * + * * **LoginWithAmazon** - Create or update request: `"ProviderDetails": { "authorize_scopes": + * "profile postal_code", "client_id": "amzn1.application-oa2-client.1example23456789", + * "client_secret": "provider-app-client-secret"` + * + * Describe response: `"ProviderDetails": { "attributes_url": + * "https://api.amazon.com/user/profile", "attributes_url_add_attributes": "false", + * "authorize_scopes": "profile postal_code", "authorize_url": "https://www.amazon.com/ap/oa", + * "client_id": "amzn1.application-oa2-client.1example23456789", "client_secret": + * "provider-app-client-secret", "token_request_method": "POST", "token_url": + * "https://api.amazon.com/auth/o2/token" }` + * + * * **Google** - Create or update request: `"ProviderDetails": { "authorize_scopes": "email + * profile openid", "client_id": "1example23456789.apps.googleusercontent.com", "client_secret": + * "provider-app-client-secret" }` + * + * Describe response: `"ProviderDetails": { "attributes_url": + * "https://people.googleapis.com/v1/people/me?personFields=", "attributes_url_add_attributes": + * "true", "authorize_scopes": "email profile openid", "authorize_url": + * "https://accounts.google.com/o/oauth2/v2/auth", "client_id": + * "1example23456789.apps.googleusercontent.com", "client_secret": "provider-app-client-secret", + * "oidc_issuer": "https://accounts.google.com", "token_request_method": "POST", "token_url": + * "https://www.googleapis.com/oauth2/v4/token" }` + * + * * **SignInWithApple** - Create or update request: `"ProviderDetails": { "authorize_scopes": + * "email name", "client_id": "com.example.cognito", "private_key": "1EXAMPLE", "key_id": "2EXAMPLE", + * "team_id": "3EXAMPLE" }` + * + * Describe response: `"ProviderDetails": { "attributes_url_add_attributes": "false", + * "authorize_scopes": "email name", "authorize_url": "https://appleid.apple.com/auth/authorize", + * "client_id": "com.example.cognito", "key_id": "1EXAMPLE", "oidc_issuer": + * "https://appleid.apple.com", "team_id": "2EXAMPLE", "token_request_method": "POST", "token_url": + * "https://appleid.apple.com/auth/token" }` + * + * * **Facebook** - Create or update request: `"ProviderDetails": { "api_version": "v17.0", + * "authorize_scopes": "public_profile, email", "client_id": "1example23456789", "client_secret": + * "provider-app-client-secret" }` + * + * Describe response: `"ProviderDetails": { "api_version": "v17.0", "attributes_url": + * "https://graph.facebook.com/v17.0/me?fields=", "attributes_url_add_attributes": "true", + * "authorize_scopes": "public_profile, email", "authorize_url": + * "https://www.facebook.com/v17.0/dialog/oauth", "client_id": "1example23456789", "client_secret": + * "provider-app-client-secret", "token_request_method": "GET", "token_url": + * "https://graph.facebook.com/v17.0/oauth/access_token" }` * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolidentityprovider.html#cfn-cognito-userpoolidentityprovider-providerdetails) */ @@ -133,40 +184,90 @@ public interface CfnUserPoolIdentityProviderProps { public fun idpIdentifiers(vararg idpIdentifiers: String) /** - * @param providerDetails The IdP details. The following list describes the provider detail keys - * for each IdP type. - * * For Google and Login with Amazon: - * * client_id - * * client_secret - * * authorize_scopes - * * For Facebook: - * * client_id - * * client_secret - * * authorize_scopes - * * api_version - * * For Sign in with Apple: - * * client_id - * * team_id - * * key_id - * * private_key - * * authorize_scopes - * * For OpenID Connect (OIDC) providers: - * * client_id - * * client_secret - * * attributes_request_method - * * oidc_issuer - * * authorize_scopes - * * The following keys are only present if Amazon Cognito didn't discover them at the - * `oidc_issuer` URL. - * * authorize_url - * * token_url - * * attributes_url - * * jwks_uri - * * Amazon Cognito sets the value of the following keys automatically. They are read-only. - * * attributes_url_add_attributes - * * For SAML providers: - * * MetadataFile or MetadataURL - * * IDPSignout *optional* + * @param providerDetails The scopes, URLs, and identifiers for your external identity provider. + * The following + * examples describe the provider detail keys for each IdP type. These values and their + * schema are subject to change. Social IdP `authorize_scopes` values must match + * the values listed here. + * + * * **OpenID Connect (OIDC)** - Amazon Cognito accepts the following elements when it can't + * discover endpoint URLs from `oidc_issuer` : `attributes_url` , `authorize_url` , `jwks_uri` , + * `token_url` . + * + * Create or update request: `"ProviderDetails": { "attributes_request_method": "GET", + * "attributes_url": "https://auth.example.com/userInfo", "authorize_scopes": "openid profile + * email", "authorize_url": "https://auth.example.com/authorize", "client_id": "1example23456789", + * "client_secret": "provider-app-client-secret", "jwks_uri": + * "https://auth.example.com/.well-known/jwks.json", "oidc_issuer": "https://auth.example.com", + * "token_url": "https://example.com/token" }` + * + * Describe response: `"ProviderDetails": { "attributes_request_method": "GET", + * "attributes_url": "https://auth.example.com/userInfo", "attributes_url_add_attributes": "false", + * "authorize_scopes": "openid profile email", "authorize_url": + * "https://auth.example.com/authorize", "client_id": "1example23456789", "client_secret": + * "provider-app-client-secret", "jwks_uri": "https://auth.example.com/.well-known/jwks.json", + * "oidc_issuer": "https://auth.example.com", "token_url": "https://example.com/token" }` + * + * * **SAML** - Create or update request with Metadata URL: `"ProviderDetails": { "IDPInit": + * "true", "IDPSignout": "true", "EncryptedResponses" : "true", "MetadataURL": + * "https://auth.example.com/sso/saml/metadata", "RequestSigningAlgorithm": "rsa-sha256" }` + * + * Create or update request with Metadata file: `"ProviderDetails": { "IDPInit": "true", + * "IDPSignout": "true", "EncryptedResponses" : "true", "MetadataFile": "[metadata XML]", + * "RequestSigningAlgorithm": "rsa-sha256" }` + * + * The value of `MetadataFile` must be the plaintext metadata document with all quote (") + * characters escaped by backslashes. + * + * Describe response: `"ProviderDetails": { "IDPInit": "true", "IDPSignout": "true", + * "EncryptedResponses" : "true", "ActiveEncryptionCertificate": "[certificate]", "MetadataURL": + * "https://auth.example.com/sso/saml/metadata", "RequestSigningAlgorithm": "rsa-sha256", + * "SLORedirectBindingURI": "https://auth.example.com/slo/saml", "SSORedirectBindingURI": + * "https://auth.example.com/sso/saml" }` + * + * * **LoginWithAmazon** - Create or update request: `"ProviderDetails": { "authorize_scopes": + * "profile postal_code", "client_id": "amzn1.application-oa2-client.1example23456789", + * "client_secret": "provider-app-client-secret"` + * + * Describe response: `"ProviderDetails": { "attributes_url": + * "https://api.amazon.com/user/profile", "attributes_url_add_attributes": "false", + * "authorize_scopes": "profile postal_code", "authorize_url": "https://www.amazon.com/ap/oa", + * "client_id": "amzn1.application-oa2-client.1example23456789", "client_secret": + * "provider-app-client-secret", "token_request_method": "POST", "token_url": + * "https://api.amazon.com/auth/o2/token" }` + * + * * **Google** - Create or update request: `"ProviderDetails": { "authorize_scopes": "email + * profile openid", "client_id": "1example23456789.apps.googleusercontent.com", "client_secret": + * "provider-app-client-secret" }` + * + * Describe response: `"ProviderDetails": { "attributes_url": + * "https://people.googleapis.com/v1/people/me?personFields=", "attributes_url_add_attributes": + * "true", "authorize_scopes": "email profile openid", "authorize_url": + * "https://accounts.google.com/o/oauth2/v2/auth", "client_id": + * "1example23456789.apps.googleusercontent.com", "client_secret": "provider-app-client-secret", + * "oidc_issuer": "https://accounts.google.com", "token_request_method": "POST", "token_url": + * "https://www.googleapis.com/oauth2/v4/token" }` + * + * * **SignInWithApple** - Create or update request: `"ProviderDetails": { "authorize_scopes": + * "email name", "client_id": "com.example.cognito", "private_key": "1EXAMPLE", "key_id": + * "2EXAMPLE", "team_id": "3EXAMPLE" }` + * + * Describe response: `"ProviderDetails": { "attributes_url_add_attributes": "false", + * "authorize_scopes": "email name", "authorize_url": "https://appleid.apple.com/auth/authorize", + * "client_id": "com.example.cognito", "key_id": "1EXAMPLE", "oidc_issuer": + * "https://appleid.apple.com", "team_id": "2EXAMPLE", "token_request_method": "POST", "token_url": + * "https://appleid.apple.com/auth/token" }` + * + * * **Facebook** - Create or update request: `"ProviderDetails": { "api_version": "v17.0", + * "authorize_scopes": "public_profile, email", "client_id": "1example23456789", "client_secret": + * "provider-app-client-secret" }` + * + * Describe response: `"ProviderDetails": { "api_version": "v17.0", "attributes_url": + * "https://graph.facebook.com/v17.0/me?fields=", "attributes_url_add_attributes": "true", + * "authorize_scopes": "public_profile, email", "authorize_url": + * "https://www.facebook.com/v17.0/dialog/oauth", "client_id": "1example23456789", "client_secret": + * "provider-app-client-secret", "token_request_method": "GET", "token_url": + * "https://graph.facebook.com/v17.0/oauth/access_token" }` */ public fun providerDetails(providerDetails: Any) @@ -213,40 +314,90 @@ public interface CfnUserPoolIdentityProviderProps { idpIdentifiers(idpIdentifiers.toList()) /** - * @param providerDetails The IdP details. The following list describes the provider detail keys - * for each IdP type. - * * For Google and Login with Amazon: - * * client_id - * * client_secret - * * authorize_scopes - * * For Facebook: - * * client_id - * * client_secret - * * authorize_scopes - * * api_version - * * For Sign in with Apple: - * * client_id - * * team_id - * * key_id - * * private_key - * * authorize_scopes - * * For OpenID Connect (OIDC) providers: - * * client_id - * * client_secret - * * attributes_request_method - * * oidc_issuer - * * authorize_scopes - * * The following keys are only present if Amazon Cognito didn't discover them at the - * `oidc_issuer` URL. - * * authorize_url - * * token_url - * * attributes_url - * * jwks_uri - * * Amazon Cognito sets the value of the following keys automatically. They are read-only. - * * attributes_url_add_attributes - * * For SAML providers: - * * MetadataFile or MetadataURL - * * IDPSignout *optional* + * @param providerDetails The scopes, URLs, and identifiers for your external identity provider. + * The following + * examples describe the provider detail keys for each IdP type. These values and their + * schema are subject to change. Social IdP `authorize_scopes` values must match + * the values listed here. + * + * * **OpenID Connect (OIDC)** - Amazon Cognito accepts the following elements when it can't + * discover endpoint URLs from `oidc_issuer` : `attributes_url` , `authorize_url` , `jwks_uri` , + * `token_url` . + * + * Create or update request: `"ProviderDetails": { "attributes_request_method": "GET", + * "attributes_url": "https://auth.example.com/userInfo", "authorize_scopes": "openid profile + * email", "authorize_url": "https://auth.example.com/authorize", "client_id": "1example23456789", + * "client_secret": "provider-app-client-secret", "jwks_uri": + * "https://auth.example.com/.well-known/jwks.json", "oidc_issuer": "https://auth.example.com", + * "token_url": "https://example.com/token" }` + * + * Describe response: `"ProviderDetails": { "attributes_request_method": "GET", + * "attributes_url": "https://auth.example.com/userInfo", "attributes_url_add_attributes": "false", + * "authorize_scopes": "openid profile email", "authorize_url": + * "https://auth.example.com/authorize", "client_id": "1example23456789", "client_secret": + * "provider-app-client-secret", "jwks_uri": "https://auth.example.com/.well-known/jwks.json", + * "oidc_issuer": "https://auth.example.com", "token_url": "https://example.com/token" }` + * + * * **SAML** - Create or update request with Metadata URL: `"ProviderDetails": { "IDPInit": + * "true", "IDPSignout": "true", "EncryptedResponses" : "true", "MetadataURL": + * "https://auth.example.com/sso/saml/metadata", "RequestSigningAlgorithm": "rsa-sha256" }` + * + * Create or update request with Metadata file: `"ProviderDetails": { "IDPInit": "true", + * "IDPSignout": "true", "EncryptedResponses" : "true", "MetadataFile": "[metadata XML]", + * "RequestSigningAlgorithm": "rsa-sha256" }` + * + * The value of `MetadataFile` must be the plaintext metadata document with all quote (") + * characters escaped by backslashes. + * + * Describe response: `"ProviderDetails": { "IDPInit": "true", "IDPSignout": "true", + * "EncryptedResponses" : "true", "ActiveEncryptionCertificate": "[certificate]", "MetadataURL": + * "https://auth.example.com/sso/saml/metadata", "RequestSigningAlgorithm": "rsa-sha256", + * "SLORedirectBindingURI": "https://auth.example.com/slo/saml", "SSORedirectBindingURI": + * "https://auth.example.com/sso/saml" }` + * + * * **LoginWithAmazon** - Create or update request: `"ProviderDetails": { "authorize_scopes": + * "profile postal_code", "client_id": "amzn1.application-oa2-client.1example23456789", + * "client_secret": "provider-app-client-secret"` + * + * Describe response: `"ProviderDetails": { "attributes_url": + * "https://api.amazon.com/user/profile", "attributes_url_add_attributes": "false", + * "authorize_scopes": "profile postal_code", "authorize_url": "https://www.amazon.com/ap/oa", + * "client_id": "amzn1.application-oa2-client.1example23456789", "client_secret": + * "provider-app-client-secret", "token_request_method": "POST", "token_url": + * "https://api.amazon.com/auth/o2/token" }` + * + * * **Google** - Create or update request: `"ProviderDetails": { "authorize_scopes": "email + * profile openid", "client_id": "1example23456789.apps.googleusercontent.com", "client_secret": + * "provider-app-client-secret" }` + * + * Describe response: `"ProviderDetails": { "attributes_url": + * "https://people.googleapis.com/v1/people/me?personFields=", "attributes_url_add_attributes": + * "true", "authorize_scopes": "email profile openid", "authorize_url": + * "https://accounts.google.com/o/oauth2/v2/auth", "client_id": + * "1example23456789.apps.googleusercontent.com", "client_secret": "provider-app-client-secret", + * "oidc_issuer": "https://accounts.google.com", "token_request_method": "POST", "token_url": + * "https://www.googleapis.com/oauth2/v4/token" }` + * + * * **SignInWithApple** - Create or update request: `"ProviderDetails": { "authorize_scopes": + * "email name", "client_id": "com.example.cognito", "private_key": "1EXAMPLE", "key_id": + * "2EXAMPLE", "team_id": "3EXAMPLE" }` + * + * Describe response: `"ProviderDetails": { "attributes_url_add_attributes": "false", + * "authorize_scopes": "email name", "authorize_url": "https://appleid.apple.com/auth/authorize", + * "client_id": "com.example.cognito", "key_id": "1EXAMPLE", "oidc_issuer": + * "https://appleid.apple.com", "team_id": "2EXAMPLE", "token_request_method": "POST", "token_url": + * "https://appleid.apple.com/auth/token" }` + * + * * **Facebook** - Create or update request: `"ProviderDetails": { "api_version": "v17.0", + * "authorize_scopes": "public_profile, email", "client_id": "1example23456789", "client_secret": + * "provider-app-client-secret" }` + * + * Describe response: `"ProviderDetails": { "api_version": "v17.0", "attributes_url": + * "https://graph.facebook.com/v17.0/me?fields=", "attributes_url_add_attributes": "true", + * "authorize_scopes": "public_profile, email", "authorize_url": + * "https://www.facebook.com/v17.0/dialog/oauth", "client_id": "1example23456789", "client_secret": + * "provider-app-client-secret", "token_request_method": "GET", "token_url": + * "https://graph.facebook.com/v17.0/oauth/access_token" }` */ override fun providerDetails(providerDetails: Any) { cdkBuilder.providerDetails(providerDetails) @@ -295,40 +446,91 @@ public interface CfnUserPoolIdentityProviderProps { override fun idpIdentifiers(): List = unwrap(this).getIdpIdentifiers() ?: emptyList() /** - * The IdP details. The following list describes the provider detail keys for each IdP type. - * - * * For Google and Login with Amazon: - * * client_id - * * client_secret - * * authorize_scopes - * * For Facebook: - * * client_id - * * client_secret - * * authorize_scopes - * * api_version - * * For Sign in with Apple: - * * client_id - * * team_id - * * key_id - * * private_key - * * authorize_scopes - * * For OpenID Connect (OIDC) providers: - * * client_id - * * client_secret - * * attributes_request_method - * * oidc_issuer - * * authorize_scopes - * * The following keys are only present if Amazon Cognito didn't discover them at the - * `oidc_issuer` URL. - * * authorize_url - * * token_url - * * attributes_url - * * jwks_uri - * * Amazon Cognito sets the value of the following keys automatically. They are read-only. - * * attributes_url_add_attributes - * * For SAML providers: - * * MetadataFile or MetadataURL - * * IDPSignout *optional* + * The scopes, URLs, and identifiers for your external identity provider. + * + * The following + * examples describe the provider detail keys for each IdP type. These values and their + * schema are subject to change. Social IdP `authorize_scopes` values must match + * the values listed here. + * + * * **OpenID Connect (OIDC)** - Amazon Cognito accepts the following elements when it can't + * discover endpoint URLs from `oidc_issuer` : `attributes_url` , `authorize_url` , `jwks_uri` , + * `token_url` . + * + * Create or update request: `"ProviderDetails": { "attributes_request_method": "GET", + * "attributes_url": "https://auth.example.com/userInfo", "authorize_scopes": "openid profile + * email", "authorize_url": "https://auth.example.com/authorize", "client_id": "1example23456789", + * "client_secret": "provider-app-client-secret", "jwks_uri": + * "https://auth.example.com/.well-known/jwks.json", "oidc_issuer": "https://auth.example.com", + * "token_url": "https://example.com/token" }` + * + * Describe response: `"ProviderDetails": { "attributes_request_method": "GET", + * "attributes_url": "https://auth.example.com/userInfo", "attributes_url_add_attributes": "false", + * "authorize_scopes": "openid profile email", "authorize_url": + * "https://auth.example.com/authorize", "client_id": "1example23456789", "client_secret": + * "provider-app-client-secret", "jwks_uri": "https://auth.example.com/.well-known/jwks.json", + * "oidc_issuer": "https://auth.example.com", "token_url": "https://example.com/token" }` + * + * * **SAML** - Create or update request with Metadata URL: `"ProviderDetails": { "IDPInit": + * "true", "IDPSignout": "true", "EncryptedResponses" : "true", "MetadataURL": + * "https://auth.example.com/sso/saml/metadata", "RequestSigningAlgorithm": "rsa-sha256" }` + * + * Create or update request with Metadata file: `"ProviderDetails": { "IDPInit": "true", + * "IDPSignout": "true", "EncryptedResponses" : "true", "MetadataFile": "[metadata XML]", + * "RequestSigningAlgorithm": "rsa-sha256" }` + * + * The value of `MetadataFile` must be the plaintext metadata document with all quote (") + * characters escaped by backslashes. + * + * Describe response: `"ProviderDetails": { "IDPInit": "true", "IDPSignout": "true", + * "EncryptedResponses" : "true", "ActiveEncryptionCertificate": "[certificate]", "MetadataURL": + * "https://auth.example.com/sso/saml/metadata", "RequestSigningAlgorithm": "rsa-sha256", + * "SLORedirectBindingURI": "https://auth.example.com/slo/saml", "SSORedirectBindingURI": + * "https://auth.example.com/sso/saml" }` + * + * * **LoginWithAmazon** - Create or update request: `"ProviderDetails": { "authorize_scopes": + * "profile postal_code", "client_id": "amzn1.application-oa2-client.1example23456789", + * "client_secret": "provider-app-client-secret"` + * + * Describe response: `"ProviderDetails": { "attributes_url": + * "https://api.amazon.com/user/profile", "attributes_url_add_attributes": "false", + * "authorize_scopes": "profile postal_code", "authorize_url": "https://www.amazon.com/ap/oa", + * "client_id": "amzn1.application-oa2-client.1example23456789", "client_secret": + * "provider-app-client-secret", "token_request_method": "POST", "token_url": + * "https://api.amazon.com/auth/o2/token" }` + * + * * **Google** - Create or update request: `"ProviderDetails": { "authorize_scopes": "email + * profile openid", "client_id": "1example23456789.apps.googleusercontent.com", "client_secret": + * "provider-app-client-secret" }` + * + * Describe response: `"ProviderDetails": { "attributes_url": + * "https://people.googleapis.com/v1/people/me?personFields=", "attributes_url_add_attributes": + * "true", "authorize_scopes": "email profile openid", "authorize_url": + * "https://accounts.google.com/o/oauth2/v2/auth", "client_id": + * "1example23456789.apps.googleusercontent.com", "client_secret": "provider-app-client-secret", + * "oidc_issuer": "https://accounts.google.com", "token_request_method": "POST", "token_url": + * "https://www.googleapis.com/oauth2/v4/token" }` + * + * * **SignInWithApple** - Create or update request: `"ProviderDetails": { "authorize_scopes": + * "email name", "client_id": "com.example.cognito", "private_key": "1EXAMPLE", "key_id": + * "2EXAMPLE", "team_id": "3EXAMPLE" }` + * + * Describe response: `"ProviderDetails": { "attributes_url_add_attributes": "false", + * "authorize_scopes": "email name", "authorize_url": "https://appleid.apple.com/auth/authorize", + * "client_id": "com.example.cognito", "key_id": "1EXAMPLE", "oidc_issuer": + * "https://appleid.apple.com", "team_id": "2EXAMPLE", "token_request_method": "POST", "token_url": + * "https://appleid.apple.com/auth/token" }` + * + * * **Facebook** - Create or update request: `"ProviderDetails": { "api_version": "v17.0", + * "authorize_scopes": "public_profile, email", "client_id": "1example23456789", "client_secret": + * "provider-app-client-secret" }` + * + * Describe response: `"ProviderDetails": { "api_version": "v17.0", "attributes_url": + * "https://graph.facebook.com/v17.0/me?fields=", "attributes_url_add_attributes": "true", + * "authorize_scopes": "public_profile, email", "authorize_url": + * "https://www.facebook.com/v17.0/dialog/oauth", "client_id": "1example23456789", "client_secret": + * "provider-app-client-secret", "token_request_method": "GET", "token_url": + * "https://graph.facebook.com/v17.0/oauth/access_token" }` * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolidentityprovider.html#cfn-cognito-userpoolidentityprovider-providerdetails) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/CfnUserPoolProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/CfnUserPoolProps.kt index a38bffa0d3..a02789b081 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/CfnUserPoolProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/CfnUserPoolProps.kt @@ -184,8 +184,8 @@ public interface CfnUserPoolProps { /** * When active, `DeletionProtection` prevents accidental deletion of your user pool. * - * Before you can delete a user pool that you have protected against deletion, you must deactivate - * this feature. + * Before you can delete a user pool that you have protected against deletion, you + * must deactivate this feature. * * When you try to delete a protected user pool in a `DeleteUserPool` API request, Amazon Cognito * returns an `InvalidParameterException` error. To delete a protected user pool, send a new @@ -505,8 +505,8 @@ public interface CfnUserPoolProps { /** * @param deletionProtection When active, `DeletionProtection` prevents accidental deletion of * your user pool. - * Before you can delete a user pool that you have protected against deletion, you must - * deactivate this feature. + * Before you can delete a user pool that you have protected against deletion, you + * must deactivate this feature. * * When you try to delete a protected user pool in a `DeleteUserPool` API request, Amazon * Cognito returns an `InvalidParameterException` error. To delete a protected user pool, send a @@ -1023,8 +1023,8 @@ public interface CfnUserPoolProps { /** * @param deletionProtection When active, `DeletionProtection` prevents accidental deletion of * your user pool. - * Before you can delete a user pool that you have protected against deletion, you must - * deactivate this feature. + * Before you can delete a user pool that you have protected against deletion, you + * must deactivate this feature. * * When you try to delete a protected user pool in a `DeleteUserPool` API request, Amazon * Cognito returns an `InvalidParameterException` error. To delete a protected user pool, send a @@ -1560,8 +1560,8 @@ public interface CfnUserPoolProps { /** * When active, `DeletionProtection` prevents accidental deletion of your user pool. * - * Before you can delete a user pool that you have protected against deletion, you must - * deactivate this feature. + * Before you can delete a user pool that you have protected against deletion, you + * must deactivate this feature. * * When you try to delete a protected user pool in a `DeleteUserPool` API request, Amazon * Cognito returns an `InvalidParameterException` error. To delete a protected user pool, send a diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/SigningAlgorithm.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/SigningAlgorithm.kt new file mode 100644 index 0000000000..b5426671c9 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/SigningAlgorithm.kt @@ -0,0 +1,21 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.cognito + +public enum class SigningAlgorithm( + private val cdkObject: software.amazon.awscdk.services.cognito.SigningAlgorithm, +) { + RSA_SHA256(software.amazon.awscdk.services.cognito.SigningAlgorithm.RSA_SHA256), + ; + + public companion object { + internal fun wrap(cdkObject: software.amazon.awscdk.services.cognito.SigningAlgorithm): + SigningAlgorithm = when (cdkObject) { + software.amazon.awscdk.services.cognito.SigningAlgorithm.RSA_SHA256 -> + SigningAlgorithm.RSA_SHA256 + } + + internal fun unwrap(wrapped: SigningAlgorithm): + software.amazon.awscdk.services.cognito.SigningAlgorithm = wrapped.cdkObject + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/UserPoolEmail.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/UserPoolEmail.kt index 7475503f50..932928ee4b 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/UserPoolEmail.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/UserPoolEmail.kt @@ -37,13 +37,13 @@ public abstract class UserPoolEmail( public fun withCognito(replyTo: String): UserPoolEmail = software.amazon.awscdk.services.cognito.UserPoolEmail.withCognito(replyTo).let(UserPoolEmail::wrap) - public fun withSes(options: UserPoolSESOptions): UserPoolEmail = + public fun withSES(options: UserPoolSESOptions): UserPoolEmail = software.amazon.awscdk.services.cognito.UserPoolEmail.withSES(options.let(UserPoolSESOptions::unwrap)).let(UserPoolEmail::wrap) @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("936601e098b55fdc321a4be6ec6742fa825f535416e14399c65ae36e1d5754de") - public fun withSes(options: UserPoolSESOptions.Builder.() -> Unit): UserPoolEmail = - withSes(UserPoolSESOptions(options)) + @JvmName("9e7aea2e201aad045c9833224b0201605c7bf4c957cb5e589fe1dc1de7dbbb79") + public fun withSES(options: UserPoolSESOptions.Builder.() -> Unit): UserPoolEmail = + withSES(UserPoolSESOptions(options)) internal fun wrap(cdkObject: software.amazon.awscdk.services.cognito.UserPoolEmail): UserPoolEmail = CdkObjectWrappers.wrap(cdkObject) as? UserPoolEmail ?: Wrapper(cdkObject) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/UserPoolIdentityProviderSaml.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/UserPoolIdentityProviderSaml.kt index 4060a964f0..1ec6a125be 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/UserPoolIdentityProviderSaml.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/UserPoolIdentityProviderSaml.kt @@ -18,41 +18,24 @@ import software.constructs.Construct as SoftwareConstructsConstruct * Example: * * ``` - * // The code below shows an example of how to instantiate this type. - * // The values are placeholders you should change. - * import io.cloudshiftdev.awscdk.services.cognito.*; - * ProviderAttribute providerAttribute; - * UserPool userPool; - * UserPoolIdentityProviderSamlMetadata userPoolIdentityProviderSamlMetadata; - * UserPoolIdentityProviderSaml userPoolIdentityProviderSaml = - * UserPoolIdentityProviderSaml.Builder.create(this, "MyUserPoolIdentityProviderSaml") - * .metadata(userPoolIdentityProviderSamlMetadata) - * .userPool(userPool) - * // the properties below are optional - * .attributeMapping(AttributeMapping.builder() - * .address(providerAttribute) - * .birthdate(providerAttribute) - * .custom(Map.of( - * "customKey", providerAttribute)) - * .email(providerAttribute) - * .familyName(providerAttribute) - * .fullname(providerAttribute) - * .gender(providerAttribute) - * .givenName(providerAttribute) - * .lastUpdateTime(providerAttribute) - * .locale(providerAttribute) - * .middleName(providerAttribute) - * .nickname(providerAttribute) - * .phoneNumber(providerAttribute) - * .preferredUsername(providerAttribute) - * .profilePage(providerAttribute) - * .profilePicture(providerAttribute) - * .timezone(providerAttribute) - * .website(providerAttribute) - * .build()) - * .identifiers(List.of("identifiers")) - * .idpSignout(false) - * .name("name") + * UserPool userpool = new UserPool(this, "Pool"); + * // specify the metadata as a file content + * // specify the metadata as a file content + * UserPoolIdentityProviderSaml.Builder.create(this, "userpoolIdpFile") + * .userPool(userpool) + * .metadata(UserPoolIdentityProviderSamlMetadata.file("my-file-contents")) + * // Whether to require encrypted SAML assertions from IdP + * .encryptedResponses(true) + * // The signing algorithm for the SAML requests + * .requestSigningAlgorithm(SigningAlgorithm.RSA_SHA256) + * // Enable IdP initiated SAML auth flow + * .idpInitiated(true) + * .build(); + * // specify the metadata as a URL + * // specify the metadata as a URL + * UserPoolIdentityProviderSaml.Builder.create(this, "userpoolidpUrl") + * .userPool(userpool) + * .metadata(UserPoolIdentityProviderSamlMetadata.url("https://my-metadata-url.com")) * .build(); * ``` */ @@ -109,6 +92,16 @@ public open class UserPoolIdentityProviderSaml( @JvmName("f3771ad72297d21014e17d52c30c5f392224535d2f3ee940dc37713e13e6ce65") public fun attributeMapping(attributeMapping: AttributeMapping.Builder.() -> Unit) + /** + * Whether to require encrypted SAML assertions from IdP. + * + * Default: false + * + * [Documentation](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-SAML-signing-encryption.html#cognito-user-pools-SAML-encryption) + * @param encryptedResponses Whether to require encrypted SAML assertions from IdP. + */ + public fun encryptedResponses(encryptedResponses: Boolean) + /** * Identifiers. * @@ -131,6 +124,15 @@ public open class UserPoolIdentityProviderSaml( */ public fun identifiers(vararg identifiers: String) + /** + * Whether to enable IdP-initiated SAML auth flows. + * + * Default: false + * + * @param idpInitiated Whether to enable IdP-initiated SAML auth flows. + */ + public fun idpInitiated(idpInitiated: Boolean) + /** * Whether to enable the "Sign-out flow" feature. * @@ -158,6 +160,16 @@ public open class UserPoolIdentityProviderSaml( */ public fun name(name: String) + /** + * The signing algorithm for SAML requests. + * + * Default: - don't sign requests + * + * [Documentation](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-SAML-signing-encryption.html#cognito-user-pools-SAML-signing) + * @param requestSigningAlgorithm The signing algorithm for SAML requests. + */ + public fun requestSigningAlgorithm(requestSigningAlgorithm: SigningAlgorithm) + /** * The user pool to which this construct provides identities. * @@ -202,6 +214,18 @@ public open class UserPoolIdentityProviderSaml( override fun attributeMapping(attributeMapping: AttributeMapping.Builder.() -> Unit): Unit = attributeMapping(AttributeMapping(attributeMapping)) + /** + * Whether to require encrypted SAML assertions from IdP. + * + * Default: false + * + * [Documentation](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-SAML-signing-encryption.html#cognito-user-pools-SAML-encryption) + * @param encryptedResponses Whether to require encrypted SAML assertions from IdP. + */ + override fun encryptedResponses(encryptedResponses: Boolean) { + cdkBuilder.encryptedResponses(encryptedResponses) + } + /** * Identifiers. * @@ -226,6 +250,17 @@ public open class UserPoolIdentityProviderSaml( */ override fun identifiers(vararg identifiers: String): Unit = identifiers(identifiers.toList()) + /** + * Whether to enable IdP-initiated SAML auth flows. + * + * Default: false + * + * @param idpInitiated Whether to enable IdP-initiated SAML auth flows. + */ + override fun idpInitiated(idpInitiated: Boolean) { + cdkBuilder.idpInitiated(idpInitiated) + } + /** * Whether to enable the "Sign-out flow" feature. * @@ -259,6 +294,18 @@ public open class UserPoolIdentityProviderSaml( cdkBuilder.name(name) } + /** + * The signing algorithm for SAML requests. + * + * Default: - don't sign requests + * + * [Documentation](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-SAML-signing-encryption.html#cognito-user-pools-SAML-signing) + * @param requestSigningAlgorithm The signing algorithm for SAML requests. + */ + override fun requestSigningAlgorithm(requestSigningAlgorithm: SigningAlgorithm) { + cdkBuilder.requestSigningAlgorithm(requestSigningAlgorithm.let(SigningAlgorithm::unwrap)) + } + /** * The user pool to which this construct provides identities. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/UserPoolIdentityProviderSamlMetadata.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/UserPoolIdentityProviderSamlMetadata.kt index ca277ea88b..906239edb2 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/UserPoolIdentityProviderSamlMetadata.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/UserPoolIdentityProviderSamlMetadata.kt @@ -11,11 +11,25 @@ import kotlin.String * Example: * * ``` - * // The code below shows an example of how to instantiate this type. - * // The values are placeholders you should change. - * import io.cloudshiftdev.awscdk.services.cognito.*; - * UserPoolIdentityProviderSamlMetadata userPoolIdentityProviderSamlMetadata = - * UserPoolIdentityProviderSamlMetadata.file("fileContent"); + * UserPool userpool = new UserPool(this, "Pool"); + * // specify the metadata as a file content + * // specify the metadata as a file content + * UserPoolIdentityProviderSaml.Builder.create(this, "userpoolIdpFile") + * .userPool(userpool) + * .metadata(UserPoolIdentityProviderSamlMetadata.file("my-file-contents")) + * // Whether to require encrypted SAML assertions from IdP + * .encryptedResponses(true) + * // The signing algorithm for the SAML requests + * .requestSigningAlgorithm(SigningAlgorithm.RSA_SHA256) + * // Enable IdP initiated SAML auth flow + * .idpInitiated(true) + * .build(); + * // specify the metadata as a URL + * // specify the metadata as a URL + * UserPoolIdentityProviderSaml.Builder.create(this, "userpoolidpUrl") + * .userPool(userpool) + * .metadata(UserPoolIdentityProviderSamlMetadata.url("https://my-metadata-url.com")) + * .build(); * ``` */ public open class UserPoolIdentityProviderSamlMetadata( diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/UserPoolIdentityProviderSamlProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/UserPoolIdentityProviderSamlProps.kt index ded30bdc89..70d889dea3 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/UserPoolIdentityProviderSamlProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/cognito/UserPoolIdentityProviderSamlProps.kt @@ -17,45 +17,37 @@ import kotlin.jvm.JvmName * Example: * * ``` - * // The code below shows an example of how to instantiate this type. - * // The values are placeholders you should change. - * import io.cloudshiftdev.awscdk.services.cognito.*; - * ProviderAttribute providerAttribute; - * UserPool userPool; - * UserPoolIdentityProviderSamlMetadata userPoolIdentityProviderSamlMetadata; - * UserPoolIdentityProviderSamlProps userPoolIdentityProviderSamlProps = - * UserPoolIdentityProviderSamlProps.builder() - * .metadata(userPoolIdentityProviderSamlMetadata) - * .userPool(userPool) - * // the properties below are optional - * .attributeMapping(AttributeMapping.builder() - * .address(providerAttribute) - * .birthdate(providerAttribute) - * .custom(Map.of( - * "customKey", providerAttribute)) - * .email(providerAttribute) - * .familyName(providerAttribute) - * .fullname(providerAttribute) - * .gender(providerAttribute) - * .givenName(providerAttribute) - * .lastUpdateTime(providerAttribute) - * .locale(providerAttribute) - * .middleName(providerAttribute) - * .nickname(providerAttribute) - * .phoneNumber(providerAttribute) - * .preferredUsername(providerAttribute) - * .profilePage(providerAttribute) - * .profilePicture(providerAttribute) - * .timezone(providerAttribute) - * .website(providerAttribute) - * .build()) - * .identifiers(List.of("identifiers")) - * .idpSignout(false) - * .name("name") + * UserPool userpool = new UserPool(this, "Pool"); + * // specify the metadata as a file content + * // specify the metadata as a file content + * UserPoolIdentityProviderSaml.Builder.create(this, "userpoolIdpFile") + * .userPool(userpool) + * .metadata(UserPoolIdentityProviderSamlMetadata.file("my-file-contents")) + * // Whether to require encrypted SAML assertions from IdP + * .encryptedResponses(true) + * // The signing algorithm for the SAML requests + * .requestSigningAlgorithm(SigningAlgorithm.RSA_SHA256) + * // Enable IdP initiated SAML auth flow + * .idpInitiated(true) + * .build(); + * // specify the metadata as a URL + * // specify the metadata as a URL + * UserPoolIdentityProviderSaml.Builder.create(this, "userpoolidpUrl") + * .userPool(userpool) + * .metadata(UserPoolIdentityProviderSamlMetadata.url("https://my-metadata-url.com")) * .build(); * ``` */ public interface UserPoolIdentityProviderSamlProps : UserPoolIdentityProviderProps { + /** + * Whether to require encrypted SAML assertions from IdP. + * + * Default: false + * + * [Documentation](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-SAML-signing-encryption.html#cognito-user-pools-SAML-encryption) + */ + public fun encryptedResponses(): Boolean? = unwrap(this).getEncryptedResponses() + /** * Identifiers. * @@ -65,6 +57,13 @@ public interface UserPoolIdentityProviderSamlProps : UserPoolIdentityProviderPro */ public fun identifiers(): List = unwrap(this).getIdentifiers() ?: emptyList() + /** + * Whether to enable IdP-initiated SAML auth flows. + * + * Default: false + */ + public fun idpInitiated(): Boolean? = unwrap(this).getIdpInitiated() + /** * Whether to enable the "Sign-out flow" feature. * @@ -86,6 +85,16 @@ public interface UserPoolIdentityProviderSamlProps : UserPoolIdentityProviderPro */ public fun name(): String? = unwrap(this).getName() + /** + * The signing algorithm for SAML requests. + * + * Default: - don't sign requests + * + * [Documentation](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-SAML-signing-encryption.html#cognito-user-pools-SAML-signing) + */ + public fun requestSigningAlgorithm(): SigningAlgorithm? = + unwrap(this).getRequestSigningAlgorithm()?.let(SigningAlgorithm::wrap) + /** * A builder for [UserPoolIdentityProviderSamlProps] */ @@ -105,6 +114,11 @@ public interface UserPoolIdentityProviderSamlProps : UserPoolIdentityProviderPro @JvmName("f249519be5b5218935deb62a01e70e9328388781333df34109754790e1f63c43") public fun attributeMapping(attributeMapping: AttributeMapping.Builder.() -> Unit) + /** + * @param encryptedResponses Whether to require encrypted SAML assertions from IdP. + */ + public fun encryptedResponses(encryptedResponses: Boolean) + /** * @param identifiers Identifiers. * Identifiers can be used to redirect users to the correct IdP in multitenant apps. @@ -117,6 +131,11 @@ public interface UserPoolIdentityProviderSamlProps : UserPoolIdentityProviderPro */ public fun identifiers(vararg identifiers: String) + /** + * @param idpInitiated Whether to enable IdP-initiated SAML auth flows. + */ + public fun idpInitiated(idpInitiated: Boolean) + /** * @param idpSignout Whether to enable the "Sign-out flow" feature. */ @@ -133,6 +152,11 @@ public interface UserPoolIdentityProviderSamlProps : UserPoolIdentityProviderPro */ public fun name(name: String) + /** + * @param requestSigningAlgorithm The signing algorithm for SAML requests. + */ + public fun requestSigningAlgorithm(requestSigningAlgorithm: SigningAlgorithm) + /** * @param userPool The user pool to which this construct provides identities. */ @@ -161,6 +185,13 @@ public interface UserPoolIdentityProviderSamlProps : UserPoolIdentityProviderPro override fun attributeMapping(attributeMapping: AttributeMapping.Builder.() -> Unit): Unit = attributeMapping(AttributeMapping(attributeMapping)) + /** + * @param encryptedResponses Whether to require encrypted SAML assertions from IdP. + */ + override fun encryptedResponses(encryptedResponses: Boolean) { + cdkBuilder.encryptedResponses(encryptedResponses) + } + /** * @param identifiers Identifiers. * Identifiers can be used to redirect users to the correct IdP in multitenant apps. @@ -175,6 +206,13 @@ public interface UserPoolIdentityProviderSamlProps : UserPoolIdentityProviderPro */ override fun identifiers(vararg identifiers: String): Unit = identifiers(identifiers.toList()) + /** + * @param idpInitiated Whether to enable IdP-initiated SAML auth flows. + */ + override fun idpInitiated(idpInitiated: Boolean) { + cdkBuilder.idpInitiated(idpInitiated) + } + /** * @param idpSignout Whether to enable the "Sign-out flow" feature. */ @@ -197,6 +235,13 @@ public interface UserPoolIdentityProviderSamlProps : UserPoolIdentityProviderPro cdkBuilder.name(name) } + /** + * @param requestSigningAlgorithm The signing algorithm for SAML requests. + */ + override fun requestSigningAlgorithm(requestSigningAlgorithm: SigningAlgorithm) { + cdkBuilder.requestSigningAlgorithm(requestSigningAlgorithm.let(SigningAlgorithm::unwrap)) + } + /** * @param userPool The user pool to which this construct provides identities. */ @@ -220,6 +265,15 @@ public interface UserPoolIdentityProviderSamlProps : UserPoolIdentityProviderPro override fun attributeMapping(): AttributeMapping? = unwrap(this).getAttributeMapping()?.let(AttributeMapping::wrap) + /** + * Whether to require encrypted SAML assertions from IdP. + * + * Default: false + * + * [Documentation](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-SAML-signing-encryption.html#cognito-user-pools-SAML-encryption) + */ + override fun encryptedResponses(): Boolean? = unwrap(this).getEncryptedResponses() + /** * Identifiers. * @@ -229,6 +283,13 @@ public interface UserPoolIdentityProviderSamlProps : UserPoolIdentityProviderPro */ override fun identifiers(): List = unwrap(this).getIdentifiers() ?: emptyList() + /** + * Whether to enable IdP-initiated SAML auth flows. + * + * Default: false + */ + override fun idpInitiated(): Boolean? = unwrap(this).getIdpInitiated() + /** * Whether to enable the "Sign-out flow" feature. * @@ -251,6 +312,16 @@ public interface UserPoolIdentityProviderSamlProps : UserPoolIdentityProviderPro */ override fun name(): String? = unwrap(this).getName() + /** + * The signing algorithm for SAML requests. + * + * Default: - don't sign requests + * + * [Documentation](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-SAML-signing-encryption.html#cognito-user-pools-SAML-signing) + */ + override fun requestSigningAlgorithm(): SigningAlgorithm? = + unwrap(this).getRequestSigningAlgorithm()?.let(SigningAlgorithm::wrap) + /** * The user pool to which this construct provides identities. */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/connect/CfnPredefinedAttribute.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/connect/CfnPredefinedAttribute.kt index b77c4ab3bc..dc79501a94 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/connect/CfnPredefinedAttribute.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/connect/CfnPredefinedAttribute.kt @@ -57,6 +57,17 @@ public open class CfnPredefinedAttribute( ) : this(scope, id, CfnPredefinedAttributeProps(props) ) + /** + * Last modified region. + */ + public open fun attrLastModifiedRegion(): String = unwrap(this).getAttrLastModifiedRegion() + + /** + * Last modified time. + */ + public open fun attrLastModifiedTime(): IResolvable = + unwrap(this).getAttrLastModifiedTime().let(IResolvable::wrap) + /** * Examines the CloudFormation resource and discloses attributes. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/connect/CfnSecurityProfile.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/connect/CfnSecurityProfile.kt index 2135171ea0..fbc155a9c6 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/connect/CfnSecurityProfile.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/connect/CfnSecurityProfile.kt @@ -10,6 +10,7 @@ import io.cloudshiftdev.awscdk.ITaggableV2 import io.cloudshiftdev.awscdk.TagManager import io.cloudshiftdev.awscdk.TreeInspector import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject import io.cloudshiftdev.awscdk.common.CdkObjectWrappers import kotlin.Any import kotlin.String @@ -32,11 +33,17 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .instanceArn("instanceArn") * .securityProfileName("securityProfileName") * // the properties below are optional + * .allowedAccessControlHierarchyGroupId("allowedAccessControlHierarchyGroupId") * .allowedAccessControlTags(List.of(CfnTag.builder() * .key("key") * .value("value") * .build())) + * .applications(List.of(ApplicationProperty.builder() + * .applicationPermissions(List.of("applicationPermissions")) + * .namespace("namespace") + * .build())) * .description("description") + * .hierarchyRestrictedResources(List.of("hierarchyRestrictedResources")) * .permissions(List.of("permissions")) * .tagRestrictedResources(List.of("tagRestrictedResources")) * .tags(List.of(CfnTag.builder() @@ -67,6 +74,21 @@ public open class CfnSecurityProfile( ) : this(scope, id, CfnSecurityProfileProps(props) ) + /** + * The identifier of the hierarchy group that a security profile uses to restrict access to + * resources in Amazon Connect. + */ + public open fun allowedAccessControlHierarchyGroupId(): String? = + unwrap(this).getAllowedAccessControlHierarchyGroupId() + + /** + * The identifier of the hierarchy group that a security profile uses to restrict access to + * resources in Amazon Connect. + */ + public open fun allowedAccessControlHierarchyGroupId(`value`: String) { + unwrap(this).setAllowedAccessControlHierarchyGroupId(`value`) + } + /** * The list of tags that a security profile uses to restrict access to resources in Amazon * Connect. @@ -96,6 +118,41 @@ public open class CfnSecurityProfile( public open fun allowedAccessControlTags(vararg `value`: Any): Unit = allowedAccessControlTags(`value`.toList()) + /** + * A list of third-party applications that the security profile will give access to. + */ + public open fun applications(): Any? = unwrap(this).getApplications() + + /** + * A list of third-party applications that the security profile will give access to. + */ + public open fun applications(`value`: IResolvable) { + unwrap(this).setApplications(`value`.let(IResolvable::unwrap)) + } + + /** + * A list of third-party applications that the security profile will give access to. + */ + public open fun applications(`value`: List) { + unwrap(this).setApplications(`value`.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * A list of third-party applications that the security profile will give access to. + */ + public open fun applications(vararg `value`: Any): Unit = applications(`value`.toList()) + + /** + * The AWS Region where this resource was last modified. + */ + public open fun attrLastModifiedRegion(): String = unwrap(this).getAttrLastModifiedRegion() + + /** + * The timestamp when this resource was last modified. + */ + public open fun attrLastModifiedTime(): IResolvable = + unwrap(this).getAttrLastModifiedTime().let(IResolvable::wrap) + /** * The Amazon Resource Name (ARN) of the security profile. */ @@ -119,6 +176,28 @@ public open class CfnSecurityProfile( unwrap(this).setDescription(`value`) } + /** + * The list of resources that a security profile applies hierarchy restrictions to in Amazon + * Connect. + */ + public open fun hierarchyRestrictedResources(): List = + unwrap(this).getHierarchyRestrictedResources() ?: emptyList() + + /** + * The list of resources that a security profile applies hierarchy restrictions to in Amazon + * Connect. + */ + public open fun hierarchyRestrictedResources(`value`: List) { + unwrap(this).setHierarchyRestrictedResources(`value`) + } + + /** + * The list of resources that a security profile applies hierarchy restrictions to in Amazon + * Connect. + */ + public open fun hierarchyRestrictedResources(vararg `value`: String): Unit = + hierarchyRestrictedResources(`value`.toList()) + /** * Examines the CloudFormation resource and discloses attributes. * @@ -210,6 +289,16 @@ public open class CfnSecurityProfile( */ @CdkDslMarker public interface Builder { + /** + * The identifier of the hierarchy group that a security profile uses to restrict access to + * resources in Amazon Connect. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-securityprofile.html#cfn-connect-securityprofile-allowedaccesscontrolhierarchygroupid) + * @param allowedAccessControlHierarchyGroupId The identifier of the hierarchy group that a + * security profile uses to restrict access to resources in Amazon Connect. + */ + public fun allowedAccessControlHierarchyGroupId(allowedAccessControlHierarchyGroupId: String) + /** * The list of tags that a security profile uses to restrict access to resources in Amazon * Connect. @@ -240,6 +329,33 @@ public open class CfnSecurityProfile( */ public fun allowedAccessControlTags(vararg allowedAccessControlTags: Any) + /** + * A list of third-party applications that the security profile will give access to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-securityprofile.html#cfn-connect-securityprofile-applications) + * @param applications A list of third-party applications that the security profile will give + * access to. + */ + public fun applications(applications: IResolvable) + + /** + * A list of third-party applications that the security profile will give access to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-securityprofile.html#cfn-connect-securityprofile-applications) + * @param applications A list of third-party applications that the security profile will give + * access to. + */ + public fun applications(applications: List) + + /** + * A list of third-party applications that the security profile will give access to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-securityprofile.html#cfn-connect-securityprofile-applications) + * @param applications A list of third-party applications that the security profile will give + * access to. + */ + public fun applications(vararg applications: Any) + /** * The description of the security profile. * @@ -248,6 +364,30 @@ public open class CfnSecurityProfile( */ public fun description(description: String) + /** + * The list of resources that a security profile applies hierarchy restrictions to in Amazon + * Connect. + * + * Following are acceptable ResourceNames: `User` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-securityprofile.html#cfn-connect-securityprofile-hierarchyrestrictedresources) + * @param hierarchyRestrictedResources The list of resources that a security profile applies + * hierarchy restrictions to in Amazon Connect. + */ + public fun hierarchyRestrictedResources(hierarchyRestrictedResources: List) + + /** + * The list of resources that a security profile applies hierarchy restrictions to in Amazon + * Connect. + * + * Following are acceptable ResourceNames: `User` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-securityprofile.html#cfn-connect-securityprofile-hierarchyrestrictedresources) + * @param hierarchyRestrictedResources The list of resources that a security profile applies + * hierarchy restrictions to in Amazon Connect. + */ + public fun hierarchyRestrictedResources(vararg hierarchyRestrictedResources: String) + /** * The identifier of the Amazon Connect instance. * @@ -332,6 +472,19 @@ public open class CfnSecurityProfile( private val cdkBuilder: software.amazon.awscdk.services.connect.CfnSecurityProfile.Builder = software.amazon.awscdk.services.connect.CfnSecurityProfile.Builder.create(scope, id) + /** + * The identifier of the hierarchy group that a security profile uses to restrict access to + * resources in Amazon Connect. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-securityprofile.html#cfn-connect-securityprofile-allowedaccesscontrolhierarchygroupid) + * @param allowedAccessControlHierarchyGroupId The identifier of the hierarchy group that a + * security profile uses to restrict access to resources in Amazon Connect. + */ + override + fun allowedAccessControlHierarchyGroupId(allowedAccessControlHierarchyGroupId: String) { + cdkBuilder.allowedAccessControlHierarchyGroupId(allowedAccessControlHierarchyGroupId) + } + /** * The list of tags that a security profile uses to restrict access to resources in Amazon * Connect. @@ -367,6 +520,37 @@ public open class CfnSecurityProfile( override fun allowedAccessControlTags(vararg allowedAccessControlTags: Any): Unit = allowedAccessControlTags(allowedAccessControlTags.toList()) + /** + * A list of third-party applications that the security profile will give access to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-securityprofile.html#cfn-connect-securityprofile-applications) + * @param applications A list of third-party applications that the security profile will give + * access to. + */ + override fun applications(applications: IResolvable) { + cdkBuilder.applications(applications.let(IResolvable::unwrap)) + } + + /** + * A list of third-party applications that the security profile will give access to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-securityprofile.html#cfn-connect-securityprofile-applications) + * @param applications A list of third-party applications that the security profile will give + * access to. + */ + override fun applications(applications: List) { + cdkBuilder.applications(applications.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * A list of third-party applications that the security profile will give access to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-securityprofile.html#cfn-connect-securityprofile-applications) + * @param applications A list of third-party applications that the security profile will give + * access to. + */ + override fun applications(vararg applications: Any): Unit = applications(applications.toList()) + /** * The description of the security profile. * @@ -377,6 +561,33 @@ public open class CfnSecurityProfile( cdkBuilder.description(description) } + /** + * The list of resources that a security profile applies hierarchy restrictions to in Amazon + * Connect. + * + * Following are acceptable ResourceNames: `User` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-securityprofile.html#cfn-connect-securityprofile-hierarchyrestrictedresources) + * @param hierarchyRestrictedResources The list of resources that a security profile applies + * hierarchy restrictions to in Amazon Connect. + */ + override fun hierarchyRestrictedResources(hierarchyRestrictedResources: List) { + cdkBuilder.hierarchyRestrictedResources(hierarchyRestrictedResources) + } + + /** + * The list of resources that a security profile applies hierarchy restrictions to in Amazon + * Connect. + * + * Following are acceptable ResourceNames: `User` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-securityprofile.html#cfn-connect-securityprofile-hierarchyrestrictedresources) + * @param hierarchyRestrictedResources The list of resources that a security profile applies + * hierarchy restrictions to in Amazon Connect. + */ + override fun hierarchyRestrictedResources(vararg hierarchyRestrictedResources: String): Unit = + hierarchyRestrictedResources(hierarchyRestrictedResources.toList()) + /** * The identifier of the Amazon Connect instance. * @@ -488,4 +699,137 @@ public open class CfnSecurityProfile( software.amazon.awscdk.services.connect.CfnSecurityProfile = wrapped.cdkObject as software.amazon.awscdk.services.connect.CfnSecurityProfile } + + /** + * This API is in preview release for Amazon Connect and is subject to change. + * + * A third-party application's metadata. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.connect.*; + * ApplicationProperty applicationProperty = ApplicationProperty.builder() + * .applicationPermissions(List.of("applicationPermissions")) + * .namespace("namespace") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-securityprofile-application.html) + */ + public interface ApplicationProperty { + /** + * The permissions that the agent is granted on the application. + * + * Only the `ACCESS` permission is supported. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-securityprofile-application.html#cfn-connect-securityprofile-application-applicationpermissions) + */ + public fun applicationPermissions(): List + + /** + * Namespace of the application that you want to give access to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-securityprofile-application.html#cfn-connect-securityprofile-application-namespace) + */ + public fun namespace(): String + + /** + * A builder for [ApplicationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param applicationPermissions The permissions that the agent is granted on the application. + * + * Only the `ACCESS` permission is supported. + */ + public fun applicationPermissions(applicationPermissions: List) + + /** + * @param applicationPermissions The permissions that the agent is granted on the application. + * + * Only the `ACCESS` permission is supported. + */ + public fun applicationPermissions(vararg applicationPermissions: String) + + /** + * @param namespace Namespace of the application that you want to give access to. + */ + public fun namespace(namespace: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.connect.CfnSecurityProfile.ApplicationProperty.Builder = + software.amazon.awscdk.services.connect.CfnSecurityProfile.ApplicationProperty.builder() + + /** + * @param applicationPermissions The permissions that the agent is granted on the application. + * + * Only the `ACCESS` permission is supported. + */ + override fun applicationPermissions(applicationPermissions: List) { + cdkBuilder.applicationPermissions(applicationPermissions) + } + + /** + * @param applicationPermissions The permissions that the agent is granted on the application. + * + * Only the `ACCESS` permission is supported. + */ + override fun applicationPermissions(vararg applicationPermissions: String): Unit = + applicationPermissions(applicationPermissions.toList()) + + /** + * @param namespace Namespace of the application that you want to give access to. + */ + override fun namespace(namespace: String) { + cdkBuilder.namespace(namespace) + } + + public fun build(): + software.amazon.awscdk.services.connect.CfnSecurityProfile.ApplicationProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.connect.CfnSecurityProfile.ApplicationProperty, + ) : CdkObject(cdkObject), ApplicationProperty { + /** + * The permissions that the agent is granted on the application. + * + * Only the `ACCESS` permission is supported. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-securityprofile-application.html#cfn-connect-securityprofile-application-applicationpermissions) + */ + override fun applicationPermissions(): List = unwrap(this).getApplicationPermissions() + + /** + * Namespace of the application that you want to give access to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-securityprofile-application.html#cfn-connect-securityprofile-application-namespace) + */ + override fun namespace(): String = unwrap(this).getNamespace() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): ApplicationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.connect.CfnSecurityProfile.ApplicationProperty): + ApplicationProperty = CdkObjectWrappers.wrap(cdkObject) as? ApplicationProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: ApplicationProperty): + software.amazon.awscdk.services.connect.CfnSecurityProfile.ApplicationProperty = (wrapped + as CdkObject).cdkObject as + software.amazon.awscdk.services.connect.CfnSecurityProfile.ApplicationProperty + } + } } diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/connect/CfnSecurityProfileProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/connect/CfnSecurityProfileProps.kt index 3817c99822..058de74eb2 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/connect/CfnSecurityProfileProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/connect/CfnSecurityProfileProps.kt @@ -25,11 +25,17 @@ import kotlin.collections.List * .instanceArn("instanceArn") * .securityProfileName("securityProfileName") * // the properties below are optional + * .allowedAccessControlHierarchyGroupId("allowedAccessControlHierarchyGroupId") * .allowedAccessControlTags(List.of(CfnTag.builder() * .key("key") * .value("value") * .build())) + * .applications(List.of(ApplicationProperty.builder() + * .applicationPermissions(List.of("applicationPermissions")) + * .namespace("namespace") + * .build())) * .description("description") + * .hierarchyRestrictedResources(List.of("hierarchyRestrictedResources")) * .permissions(List.of("permissions")) * .tagRestrictedResources(List.of("tagRestrictedResources")) * .tags(List.of(CfnTag.builder() @@ -42,6 +48,15 @@ import kotlin.collections.List * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-securityprofile.html) */ public interface CfnSecurityProfileProps { + /** + * The identifier of the hierarchy group that a security profile uses to restrict access to + * resources in Amazon Connect. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-securityprofile.html#cfn-connect-securityprofile-allowedaccesscontrolhierarchygroupid) + */ + public fun allowedAccessControlHierarchyGroupId(): String? = + unwrap(this).getAllowedAccessControlHierarchyGroupId() + /** * The list of tags that a security profile uses to restrict access to resources in Amazon * Connect. @@ -50,6 +65,13 @@ public interface CfnSecurityProfileProps { */ public fun allowedAccessControlTags(): Any? = unwrap(this).getAllowedAccessControlTags() + /** + * A list of third-party applications that the security profile will give access to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-securityprofile.html#cfn-connect-securityprofile-applications) + */ + public fun applications(): Any? = unwrap(this).getApplications() + /** * The description of the security profile. * @@ -57,6 +79,17 @@ public interface CfnSecurityProfileProps { */ public fun description(): String? = unwrap(this).getDescription() + /** + * The list of resources that a security profile applies hierarchy restrictions to in Amazon + * Connect. + * + * Following are acceptable ResourceNames: `User` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-securityprofile.html#cfn-connect-securityprofile-hierarchyrestrictedresources) + */ + public fun hierarchyRestrictedResources(): List = + unwrap(this).getHierarchyRestrictedResources() ?: emptyList() + /** * The identifier of the Amazon Connect instance. * @@ -103,6 +136,12 @@ public interface CfnSecurityProfileProps { */ @CdkDslMarker public interface Builder { + /** + * @param allowedAccessControlHierarchyGroupId The identifier of the hierarchy group that a + * security profile uses to restrict access to resources in Amazon Connect. + */ + public fun allowedAccessControlHierarchyGroupId(allowedAccessControlHierarchyGroupId: String) + /** * @param allowedAccessControlTags The list of tags that a security profile uses to restrict * access to resources in Amazon Connect. @@ -121,11 +160,43 @@ public interface CfnSecurityProfileProps { */ public fun allowedAccessControlTags(vararg allowedAccessControlTags: Any) + /** + * @param applications A list of third-party applications that the security profile will give + * access to. + */ + public fun applications(applications: IResolvable) + + /** + * @param applications A list of third-party applications that the security profile will give + * access to. + */ + public fun applications(applications: List) + + /** + * @param applications A list of third-party applications that the security profile will give + * access to. + */ + public fun applications(vararg applications: Any) + /** * @param description The description of the security profile. */ public fun description(description: String) + /** + * @param hierarchyRestrictedResources The list of resources that a security profile applies + * hierarchy restrictions to in Amazon Connect. + * Following are acceptable ResourceNames: `User` . + */ + public fun hierarchyRestrictedResources(hierarchyRestrictedResources: List) + + /** + * @param hierarchyRestrictedResources The list of resources that a security profile applies + * hierarchy restrictions to in Amazon Connect. + * Following are acceptable ResourceNames: `User` . + */ + public fun hierarchyRestrictedResources(vararg hierarchyRestrictedResources: String) + /** * @param instanceArn The identifier of the Amazon Connect instance. */ @@ -179,6 +250,15 @@ public interface CfnSecurityProfileProps { private val cdkBuilder: software.amazon.awscdk.services.connect.CfnSecurityProfileProps.Builder = software.amazon.awscdk.services.connect.CfnSecurityProfileProps.builder() + /** + * @param allowedAccessControlHierarchyGroupId The identifier of the hierarchy group that a + * security profile uses to restrict access to resources in Amazon Connect. + */ + override + fun allowedAccessControlHierarchyGroupId(allowedAccessControlHierarchyGroupId: String) { + cdkBuilder.allowedAccessControlHierarchyGroupId(allowedAccessControlHierarchyGroupId) + } + /** * @param allowedAccessControlTags The list of tags that a security profile uses to restrict * access to resources in Amazon Connect. @@ -202,6 +282,28 @@ public interface CfnSecurityProfileProps { override fun allowedAccessControlTags(vararg allowedAccessControlTags: Any): Unit = allowedAccessControlTags(allowedAccessControlTags.toList()) + /** + * @param applications A list of third-party applications that the security profile will give + * access to. + */ + override fun applications(applications: IResolvable) { + cdkBuilder.applications(applications.let(IResolvable::unwrap)) + } + + /** + * @param applications A list of third-party applications that the security profile will give + * access to. + */ + override fun applications(applications: List) { + cdkBuilder.applications(applications.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param applications A list of third-party applications that the security profile will give + * access to. + */ + override fun applications(vararg applications: Any): Unit = applications(applications.toList()) + /** * @param description The description of the security profile. */ @@ -209,6 +311,23 @@ public interface CfnSecurityProfileProps { cdkBuilder.description(description) } + /** + * @param hierarchyRestrictedResources The list of resources that a security profile applies + * hierarchy restrictions to in Amazon Connect. + * Following are acceptable ResourceNames: `User` . + */ + override fun hierarchyRestrictedResources(hierarchyRestrictedResources: List) { + cdkBuilder.hierarchyRestrictedResources(hierarchyRestrictedResources) + } + + /** + * @param hierarchyRestrictedResources The list of resources that a security profile applies + * hierarchy restrictions to in Amazon Connect. + * Following are acceptable ResourceNames: `User` . + */ + override fun hierarchyRestrictedResources(vararg hierarchyRestrictedResources: String): Unit = + hierarchyRestrictedResources(hierarchyRestrictedResources.toList()) + /** * @param instanceArn The identifier of the Amazon Connect instance. */ @@ -275,6 +394,15 @@ public interface CfnSecurityProfileProps { private class Wrapper( cdkObject: software.amazon.awscdk.services.connect.CfnSecurityProfileProps, ) : CdkObject(cdkObject), CfnSecurityProfileProps { + /** + * The identifier of the hierarchy group that a security profile uses to restrict access to + * resources in Amazon Connect. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-securityprofile.html#cfn-connect-securityprofile-allowedaccesscontrolhierarchygroupid) + */ + override fun allowedAccessControlHierarchyGroupId(): String? = + unwrap(this).getAllowedAccessControlHierarchyGroupId() + /** * The list of tags that a security profile uses to restrict access to resources in Amazon * Connect. @@ -283,6 +411,13 @@ public interface CfnSecurityProfileProps { */ override fun allowedAccessControlTags(): Any? = unwrap(this).getAllowedAccessControlTags() + /** + * A list of third-party applications that the security profile will give access to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-securityprofile.html#cfn-connect-securityprofile-applications) + */ + override fun applications(): Any? = unwrap(this).getApplications() + /** * The description of the security profile. * @@ -290,6 +425,17 @@ public interface CfnSecurityProfileProps { */ override fun description(): String? = unwrap(this).getDescription() + /** + * The list of resources that a security profile applies hierarchy restrictions to in Amazon + * Connect. + * + * Following are acceptable ResourceNames: `User` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-securityprofile.html#cfn-connect-securityprofile-hierarchyrestrictedresources) + */ + override fun hierarchyRestrictedResources(): List = + unwrap(this).getHierarchyRestrictedResources() ?: emptyList() + /** * The identifier of the Amazon Connect instance. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/datasync/CfnTask.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/datasync/CfnTask.kt index 9247cdbf6f..cf3706a746 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/datasync/CfnTask.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/datasync/CfnTask.kt @@ -47,6 +47,19 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .filterType("filterType") * .value("value") * .build())) + * .manifestConfig(ManifestConfigProperty.builder() + * .source(SourceProperty.builder() + * .s3(ManifestConfigSourceS3Property.builder() + * .bucketAccessRoleArn("bucketAccessRoleArn") + * .manifestObjectPath("manifestObjectPath") + * .manifestObjectVersionId("manifestObjectVersionId") + * .s3BucketArn("s3BucketArn") + * .build()) + * .build()) + * // the properties below are optional + * .action("action") + * .format("format") + * .build()) * .name("name") * .options(OptionsProperty.builder() * .atime("atime") @@ -229,6 +242,33 @@ public open class CfnTask( unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) } + /** + * The configuration of the manifest that lists the files or objects to transfer. + */ + public open fun manifestConfig(): Any? = unwrap(this).getManifestConfig() + + /** + * The configuration of the manifest that lists the files or objects to transfer. + */ + public open fun manifestConfig(`value`: IResolvable) { + unwrap(this).setManifestConfig(`value`.let(IResolvable::unwrap)) + } + + /** + * The configuration of the manifest that lists the files or objects to transfer. + */ + public open fun manifestConfig(`value`: ManifestConfigProperty) { + unwrap(this).setManifestConfig(`value`.let(ManifestConfigProperty::unwrap)) + } + + /** + * The configuration of the manifest that lists the files or objects to transfer. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("3f3d5d70b2fdc8b5bbd54d646e05702d83dfc05c58a414d9a28345e7fce8bb9d") + public open fun manifestConfig(`value`: ManifestConfigProperty.Builder.() -> Unit): Unit = + manifestConfig(ManifestConfigProperty(`value`)) + /** * The name of a task. */ @@ -480,6 +520,47 @@ public open class CfnTask( */ public fun includes(vararg includes: Any) + /** + * The configuration of the manifest that lists the files or objects to transfer. + * + * For more information, see [Specifying what DataSync transfers by using a + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-task.html#cfn-datasync-task-manifestconfig) + * @param manifestConfig The configuration of the manifest that lists the files or objects to + * transfer. + */ + public fun manifestConfig(manifestConfig: IResolvable) + + /** + * The configuration of the manifest that lists the files or objects to transfer. + * + * For more information, see [Specifying what DataSync transfers by using a + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-task.html#cfn-datasync-task-manifestconfig) + * @param manifestConfig The configuration of the manifest that lists the files or objects to + * transfer. + */ + public fun manifestConfig(manifestConfig: ManifestConfigProperty) + + /** + * The configuration of the manifest that lists the files or objects to transfer. + * + * For more information, see [Specifying what DataSync transfers by using a + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-task.html#cfn-datasync-task-manifestconfig) + * @param manifestConfig The configuration of the manifest that lists the files or objects to + * transfer. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("7312f9c8ef32669d9d5371b2c1ce143f2bcca81052d450c0f5d9d7bcf9d5e543") + public fun manifestConfig(manifestConfig: ManifestConfigProperty.Builder.() -> Unit) + /** * The name of a task. * @@ -787,6 +868,52 @@ public open class CfnTask( */ override fun includes(vararg includes: Any): Unit = includes(includes.toList()) + /** + * The configuration of the manifest that lists the files or objects to transfer. + * + * For more information, see [Specifying what DataSync transfers by using a + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-task.html#cfn-datasync-task-manifestconfig) + * @param manifestConfig The configuration of the manifest that lists the files or objects to + * transfer. + */ + override fun manifestConfig(manifestConfig: IResolvable) { + cdkBuilder.manifestConfig(manifestConfig.let(IResolvable::unwrap)) + } + + /** + * The configuration of the manifest that lists the files or objects to transfer. + * + * For more information, see [Specifying what DataSync transfers by using a + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-task.html#cfn-datasync-task-manifestconfig) + * @param manifestConfig The configuration of the manifest that lists the files or objects to + * transfer. + */ + override fun manifestConfig(manifestConfig: ManifestConfigProperty) { + cdkBuilder.manifestConfig(manifestConfig.let(ManifestConfigProperty::unwrap)) + } + + /** + * The configuration of the manifest that lists the files or objects to transfer. + * + * For more information, see [Specifying what DataSync transfers by using a + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-task.html#cfn-datasync-task-manifestconfig) + * @param manifestConfig The configuration of the manifest that lists the files or objects to + * transfer. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("7312f9c8ef32669d9d5371b2c1ce143f2bcca81052d450c0f5d9d7bcf9d5e543") + override fun manifestConfig(manifestConfig: ManifestConfigProperty.Builder.() -> Unit): Unit = + manifestConfig(ManifestConfigProperty(manifestConfig)) + /** * The name of a task. * @@ -1343,6 +1470,472 @@ public open class CfnTask( } } + /** + * Configures a manifest, which is a list of files or objects that you want AWS DataSync to + * transfer. + * + * For more information and configuration examples, see [Specifying what DataSync transfers by + * using a + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html) . + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.datasync.*; + * ManifestConfigProperty manifestConfigProperty = ManifestConfigProperty.builder() + * .source(SourceProperty.builder() + * .s3(ManifestConfigSourceS3Property.builder() + * .bucketAccessRoleArn("bucketAccessRoleArn") + * .manifestObjectPath("manifestObjectPath") + * .manifestObjectVersionId("manifestObjectVersionId") + * .s3BucketArn("s3BucketArn") + * .build()) + * .build()) + * // the properties below are optional + * .action("action") + * .format("format") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-manifestconfig.html) + */ + public interface ManifestConfigProperty { + /** + * Specifies what DataSync uses the manifest for. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-manifestconfig.html#cfn-datasync-task-manifestconfig-action) + */ + public fun action(): String? = unwrap(this).getAction() + + /** + * Specifies the file format of your manifest. + * + * For more information, see [Creating a + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html#transferring-with-manifest-create) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-manifestconfig.html#cfn-datasync-task-manifestconfig-format) + */ + public fun format(): String? = unwrap(this).getFormat() + + /** + * Specifies the manifest that you want DataSync to use and where it's hosted. + * + * + * You must specify this parameter if you're configuring a new manifest on or after February 7, + * 2024. + * + * If you don't, you'll get a 400 status code and `ValidationException` error stating that + * you're missing the IAM role for DataSync to access the S3 bucket where you're hosting your + * manifest. For more information, see [Providing DataSync access to your + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html#transferring-with-manifest-access) + * . + * + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-manifestconfig.html#cfn-datasync-task-manifestconfig-source) + */ + public fun source(): Any + + /** + * A builder for [ManifestConfigProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param action Specifies what DataSync uses the manifest for. + */ + public fun action(action: String) + + /** + * @param format Specifies the file format of your manifest. + * For more information, see [Creating a + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html#transferring-with-manifest-create) + * . + */ + public fun format(format: String) + + /** + * @param source Specifies the manifest that you want DataSync to use and where it's hosted. + * + * You must specify this parameter if you're configuring a new manifest on or after February + * 7, 2024. + * + * If you don't, you'll get a 400 status code and `ValidationException` error stating that + * you're missing the IAM role for DataSync to access the S3 bucket where you're hosting your + * manifest. For more information, see [Providing DataSync access to your + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html#transferring-with-manifest-access) + * . + */ + public fun source(source: IResolvable) + + /** + * @param source Specifies the manifest that you want DataSync to use and where it's hosted. + * + * You must specify this parameter if you're configuring a new manifest on or after February + * 7, 2024. + * + * If you don't, you'll get a 400 status code and `ValidationException` error stating that + * you're missing the IAM role for DataSync to access the S3 bucket where you're hosting your + * manifest. For more information, see [Providing DataSync access to your + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html#transferring-with-manifest-access) + * . + */ + public fun source(source: SourceProperty) + + /** + * @param source Specifies the manifest that you want DataSync to use and where it's hosted. + * + * You must specify this parameter if you're configuring a new manifest on or after February + * 7, 2024. + * + * If you don't, you'll get a 400 status code and `ValidationException` error stating that + * you're missing the IAM role for DataSync to access the S3 bucket where you're hosting your + * manifest. For more information, see [Providing DataSync access to your + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html#transferring-with-manifest-access) + * . + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("5f5a570674918e0074e935aea0ece9d88aa46198985d958b1683bf8d6f1ec598") + public fun source(source: SourceProperty.Builder.() -> Unit) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.datasync.CfnTask.ManifestConfigProperty.Builder = + software.amazon.awscdk.services.datasync.CfnTask.ManifestConfigProperty.builder() + + /** + * @param action Specifies what DataSync uses the manifest for. + */ + override fun action(action: String) { + cdkBuilder.action(action) + } + + /** + * @param format Specifies the file format of your manifest. + * For more information, see [Creating a + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html#transferring-with-manifest-create) + * . + */ + override fun format(format: String) { + cdkBuilder.format(format) + } + + /** + * @param source Specifies the manifest that you want DataSync to use and where it's hosted. + * + * You must specify this parameter if you're configuring a new manifest on or after February + * 7, 2024. + * + * If you don't, you'll get a 400 status code and `ValidationException` error stating that + * you're missing the IAM role for DataSync to access the S3 bucket where you're hosting your + * manifest. For more information, see [Providing DataSync access to your + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html#transferring-with-manifest-access) + * . + */ + override fun source(source: IResolvable) { + cdkBuilder.source(source.let(IResolvable::unwrap)) + } + + /** + * @param source Specifies the manifest that you want DataSync to use and where it's hosted. + * + * You must specify this parameter if you're configuring a new manifest on or after February + * 7, 2024. + * + * If you don't, you'll get a 400 status code and `ValidationException` error stating that + * you're missing the IAM role for DataSync to access the S3 bucket where you're hosting your + * manifest. For more information, see [Providing DataSync access to your + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html#transferring-with-manifest-access) + * . + */ + override fun source(source: SourceProperty) { + cdkBuilder.source(source.let(SourceProperty::unwrap)) + } + + /** + * @param source Specifies the manifest that you want DataSync to use and where it's hosted. + * + * You must specify this parameter if you're configuring a new manifest on or after February + * 7, 2024. + * + * If you don't, you'll get a 400 status code and `ValidationException` error stating that + * you're missing the IAM role for DataSync to access the S3 bucket where you're hosting your + * manifest. For more information, see [Providing DataSync access to your + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html#transferring-with-manifest-access) + * . + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("5f5a570674918e0074e935aea0ece9d88aa46198985d958b1683bf8d6f1ec598") + override fun source(source: SourceProperty.Builder.() -> Unit): Unit = + source(SourceProperty(source)) + + public fun build(): software.amazon.awscdk.services.datasync.CfnTask.ManifestConfigProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.datasync.CfnTask.ManifestConfigProperty, + ) : CdkObject(cdkObject), ManifestConfigProperty { + /** + * Specifies what DataSync uses the manifest for. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-manifestconfig.html#cfn-datasync-task-manifestconfig-action) + */ + override fun action(): String? = unwrap(this).getAction() + + /** + * Specifies the file format of your manifest. + * + * For more information, see [Creating a + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html#transferring-with-manifest-create) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-manifestconfig.html#cfn-datasync-task-manifestconfig-format) + */ + override fun format(): String? = unwrap(this).getFormat() + + /** + * Specifies the manifest that you want DataSync to use and where it's hosted. + * + * + * You must specify this parameter if you're configuring a new manifest on or after February + * 7, 2024. + * + * If you don't, you'll get a 400 status code and `ValidationException` error stating that + * you're missing the IAM role for DataSync to access the S3 bucket where you're hosting your + * manifest. For more information, see [Providing DataSync access to your + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html#transferring-with-manifest-access) + * . + * + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-manifestconfig.html#cfn-datasync-task-manifestconfig-source) + */ + override fun source(): Any = unwrap(this).getSource() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): ManifestConfigProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.datasync.CfnTask.ManifestConfigProperty): + ManifestConfigProperty = CdkObjectWrappers.wrap(cdkObject) as? ManifestConfigProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: ManifestConfigProperty): + software.amazon.awscdk.services.datasync.CfnTask.ManifestConfigProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.datasync.CfnTask.ManifestConfigProperty + } + } + + /** + * Specifies the S3 bucket where you're hosting the manifest that you want AWS DataSync to use. + * + * For more information and configuration examples, see [Specifying what DataSync transfers by + * using a + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html) . + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.datasync.*; + * ManifestConfigSourceS3Property manifestConfigSourceS3Property = + * ManifestConfigSourceS3Property.builder() + * .bucketAccessRoleArn("bucketAccessRoleArn") + * .manifestObjectPath("manifestObjectPath") + * .manifestObjectVersionId("manifestObjectVersionId") + * .s3BucketArn("s3BucketArn") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-manifestconfigsources3.html) + */ + public interface ManifestConfigSourceS3Property { + /** + * Specifies the AWS Identity and Access Management (IAM) role that allows DataSync to access + * your manifest. + * + * For more information, see [Providing DataSync access to your + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html#transferring-with-manifest-access) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-manifestconfigsources3.html#cfn-datasync-task-manifestconfigsources3-bucketaccessrolearn) + */ + public fun bucketAccessRoleArn(): String? = unwrap(this).getBucketAccessRoleArn() + + /** + * Specifies the Amazon S3 object key of your manifest. + * + * This can include a prefix (for example, `prefix/my-manifest.csv` ). + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-manifestconfigsources3.html#cfn-datasync-task-manifestconfigsources3-manifestobjectpath) + */ + public fun manifestObjectPath(): String? = unwrap(this).getManifestObjectPath() + + /** + * Specifies the object version ID of the manifest that you want DataSync to use. + * + * If you don't set this, DataSync uses the latest version of the object. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-manifestconfigsources3.html#cfn-datasync-task-manifestconfigsources3-manifestobjectversionid) + */ + public fun manifestObjectVersionId(): String? = unwrap(this).getManifestObjectVersionId() + + /** + * Specifies the Amazon Resource Name (ARN) of the S3 bucket where you're hosting your manifest. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-manifestconfigsources3.html#cfn-datasync-task-manifestconfigsources3-s3bucketarn) + */ + public fun s3BucketArn(): String? = unwrap(this).getS3BucketArn() + + /** + * A builder for [ManifestConfigSourceS3Property] + */ + @CdkDslMarker + public interface Builder { + /** + * @param bucketAccessRoleArn Specifies the AWS Identity and Access Management (IAM) role that + * allows DataSync to access your manifest. + * For more information, see [Providing DataSync access to your + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html#transferring-with-manifest-access) + * . + */ + public fun bucketAccessRoleArn(bucketAccessRoleArn: String) + + /** + * @param manifestObjectPath Specifies the Amazon S3 object key of your manifest. + * This can include a prefix (for example, `prefix/my-manifest.csv` ). + */ + public fun manifestObjectPath(manifestObjectPath: String) + + /** + * @param manifestObjectVersionId Specifies the object version ID of the manifest that you + * want DataSync to use. + * If you don't set this, DataSync uses the latest version of the object. + */ + public fun manifestObjectVersionId(manifestObjectVersionId: String) + + /** + * @param s3BucketArn Specifies the Amazon Resource Name (ARN) of the S3 bucket where you're + * hosting your manifest. + */ + public fun s3BucketArn(s3BucketArn: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.datasync.CfnTask.ManifestConfigSourceS3Property.Builder = + software.amazon.awscdk.services.datasync.CfnTask.ManifestConfigSourceS3Property.builder() + + /** + * @param bucketAccessRoleArn Specifies the AWS Identity and Access Management (IAM) role that + * allows DataSync to access your manifest. + * For more information, see [Providing DataSync access to your + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html#transferring-with-manifest-access) + * . + */ + override fun bucketAccessRoleArn(bucketAccessRoleArn: String) { + cdkBuilder.bucketAccessRoleArn(bucketAccessRoleArn) + } + + /** + * @param manifestObjectPath Specifies the Amazon S3 object key of your manifest. + * This can include a prefix (for example, `prefix/my-manifest.csv` ). + */ + override fun manifestObjectPath(manifestObjectPath: String) { + cdkBuilder.manifestObjectPath(manifestObjectPath) + } + + /** + * @param manifestObjectVersionId Specifies the object version ID of the manifest that you + * want DataSync to use. + * If you don't set this, DataSync uses the latest version of the object. + */ + override fun manifestObjectVersionId(manifestObjectVersionId: String) { + cdkBuilder.manifestObjectVersionId(manifestObjectVersionId) + } + + /** + * @param s3BucketArn Specifies the Amazon Resource Name (ARN) of the S3 bucket where you're + * hosting your manifest. + */ + override fun s3BucketArn(s3BucketArn: String) { + cdkBuilder.s3BucketArn(s3BucketArn) + } + + public fun build(): + software.amazon.awscdk.services.datasync.CfnTask.ManifestConfigSourceS3Property = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.datasync.CfnTask.ManifestConfigSourceS3Property, + ) : CdkObject(cdkObject), ManifestConfigSourceS3Property { + /** + * Specifies the AWS Identity and Access Management (IAM) role that allows DataSync to access + * your manifest. + * + * For more information, see [Providing DataSync access to your + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html#transferring-with-manifest-access) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-manifestconfigsources3.html#cfn-datasync-task-manifestconfigsources3-bucketaccessrolearn) + */ + override fun bucketAccessRoleArn(): String? = unwrap(this).getBucketAccessRoleArn() + + /** + * Specifies the Amazon S3 object key of your manifest. + * + * This can include a prefix (for example, `prefix/my-manifest.csv` ). + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-manifestconfigsources3.html#cfn-datasync-task-manifestconfigsources3-manifestobjectpath) + */ + override fun manifestObjectPath(): String? = unwrap(this).getManifestObjectPath() + + /** + * Specifies the object version ID of the manifest that you want DataSync to use. + * + * If you don't set this, DataSync uses the latest version of the object. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-manifestconfigsources3.html#cfn-datasync-task-manifestconfigsources3-manifestobjectversionid) + */ + override fun manifestObjectVersionId(): String? = unwrap(this).getManifestObjectVersionId() + + /** + * Specifies the Amazon Resource Name (ARN) of the S3 bucket where you're hosting your + * manifest. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-manifestconfigsources3.html#cfn-datasync-task-manifestconfigsources3-s3bucketarn) + */ + override fun s3BucketArn(): String? = unwrap(this).getS3BucketArn() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): ManifestConfigSourceS3Property { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.datasync.CfnTask.ManifestConfigSourceS3Property): + ManifestConfigSourceS3Property = CdkObjectWrappers.wrap(cdkObject) as? + ManifestConfigSourceS3Property ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: ManifestConfigSourceS3Property): + software.amazon.awscdk.services.datasync.CfnTask.ManifestConfigSourceS3Property = (wrapped + as CdkObject).cdkObject as + software.amazon.awscdk.services.datasync.CfnTask.ManifestConfigSourceS3Property + } + } + /** * Represents the options that are available to control the behavior of a * [StartTaskExecution](https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html) @@ -2864,9 +3457,6 @@ public open class CfnTask( } /** - * Specifies the Amazon S3 bucket where DataSync uploads your [task - * report](https://docs.aws.amazon.com/datasync/latest/userguide/task-reports.html) . - * * Example: * * ``` @@ -2884,26 +3474,16 @@ public open class CfnTask( */ public interface S3Property { /** - * Specifies the Amazon Resource Name (ARN) of the IAM policy that allows DataSync to upload a - * task report to your S3 bucket. - * - * For more information, see [Allowing DataSync to upload a task report to an Amazon S3 - * bucket](https://docs.aws.amazon.com/datasync/latest/userguide/creating-task-reports.html) . - * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-s3.html#cfn-datasync-task-s3-bucketaccessrolearn) */ public fun bucketAccessRoleArn(): String? = unwrap(this).getBucketAccessRoleArn() /** - * Specifies the ARN of the S3 bucket where DataSync uploads your report. - * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-s3.html#cfn-datasync-task-s3-s3bucketarn) */ public fun s3BucketArn(): String? = unwrap(this).getS3BucketArn() /** - * Specifies a bucket prefix for your report. - * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-s3.html#cfn-datasync-task-s3-subdirectory) */ public fun subdirectory(): String? = unwrap(this).getSubdirectory() @@ -2914,20 +3494,17 @@ public open class CfnTask( @CdkDslMarker public interface Builder { /** - * @param bucketAccessRoleArn Specifies the Amazon Resource Name (ARN) of the IAM policy that - * allows DataSync to upload a task report to your S3 bucket. - * For more information, see [Allowing DataSync to upload a task report to an Amazon S3 - * bucket](https://docs.aws.amazon.com/datasync/latest/userguide/creating-task-reports.html) . + * @param bucketAccessRoleArn the value to be set. */ public fun bucketAccessRoleArn(bucketAccessRoleArn: String) /** - * @param s3BucketArn Specifies the ARN of the S3 bucket where DataSync uploads your report. + * @param s3BucketArn the value to be set. */ public fun s3BucketArn(s3BucketArn: String) /** - * @param subdirectory Specifies a bucket prefix for your report. + * @param subdirectory the value to be set. */ public fun subdirectory(subdirectory: String) } @@ -2937,24 +3514,21 @@ public open class CfnTask( software.amazon.awscdk.services.datasync.CfnTask.S3Property.builder() /** - * @param bucketAccessRoleArn Specifies the Amazon Resource Name (ARN) of the IAM policy that - * allows DataSync to upload a task report to your S3 bucket. - * For more information, see [Allowing DataSync to upload a task report to an Amazon S3 - * bucket](https://docs.aws.amazon.com/datasync/latest/userguide/creating-task-reports.html) . + * @param bucketAccessRoleArn the value to be set. */ override fun bucketAccessRoleArn(bucketAccessRoleArn: String) { cdkBuilder.bucketAccessRoleArn(bucketAccessRoleArn) } /** - * @param s3BucketArn Specifies the ARN of the S3 bucket where DataSync uploads your report. + * @param s3BucketArn the value to be set. */ override fun s3BucketArn(s3BucketArn: String) { cdkBuilder.s3BucketArn(s3BucketArn) } /** - * @param subdirectory Specifies a bucket prefix for your report. + * @param subdirectory the value to be set. */ override fun subdirectory(subdirectory: String) { cdkBuilder.subdirectory(subdirectory) @@ -2968,26 +3542,16 @@ public open class CfnTask( cdkObject: software.amazon.awscdk.services.datasync.CfnTask.S3Property, ) : CdkObject(cdkObject), S3Property { /** - * Specifies the Amazon Resource Name (ARN) of the IAM policy that allows DataSync to upload a - * task report to your S3 bucket. - * - * For more information, see [Allowing DataSync to upload a task report to an Amazon S3 - * bucket](https://docs.aws.amazon.com/datasync/latest/userguide/creating-task-reports.html) . - * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-s3.html#cfn-datasync-task-s3-bucketaccessrolearn) */ override fun bucketAccessRoleArn(): String? = unwrap(this).getBucketAccessRoleArn() /** - * Specifies the ARN of the S3 bucket where DataSync uploads your report. - * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-s3.html#cfn-datasync-task-s3-s3bucketarn) */ override fun s3BucketArn(): String? = unwrap(this).getS3BucketArn() /** - * Specifies a bucket prefix for your report. - * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-s3.html#cfn-datasync-task-s3-subdirectory) */ override fun subdirectory(): String? = unwrap(this).getSubdirectory() @@ -3101,6 +3665,120 @@ public open class CfnTask( } } + /** + * Specifies the manifest that you want AWS DataSync to use and where it's hosted. + * + * For more information and configuration examples, see [Specifying what DataSync transfers by + * using a + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html) . + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.datasync.*; + * SourceProperty sourceProperty = SourceProperty.builder() + * .s3(ManifestConfigSourceS3Property.builder() + * .bucketAccessRoleArn("bucketAccessRoleArn") + * .manifestObjectPath("manifestObjectPath") + * .manifestObjectVersionId("manifestObjectVersionId") + * .s3BucketArn("s3BucketArn") + * .build()) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-source.html) + */ + public interface SourceProperty { + /** + * Specifies the S3 bucket where you're hosting your manifest. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-source.html#cfn-datasync-task-source-s3) + */ + public fun s3(): Any? = unwrap(this).getS3() + + /** + * A builder for [SourceProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param s3 Specifies the S3 bucket where you're hosting your manifest. + */ + public fun s3(s3: IResolvable) + + /** + * @param s3 Specifies the S3 bucket where you're hosting your manifest. + */ + public fun s3(s3: ManifestConfigSourceS3Property) + + /** + * @param s3 Specifies the S3 bucket where you're hosting your manifest. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("2c84797c8e89c694150a127c56ebc9c607a228975717c44e723edbef68f83f08") + public fun s3(s3: ManifestConfigSourceS3Property.Builder.() -> Unit) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.datasync.CfnTask.SourceProperty.Builder = + software.amazon.awscdk.services.datasync.CfnTask.SourceProperty.builder() + + /** + * @param s3 Specifies the S3 bucket where you're hosting your manifest. + */ + override fun s3(s3: IResolvable) { + cdkBuilder.s3(s3.let(IResolvable::unwrap)) + } + + /** + * @param s3 Specifies the S3 bucket where you're hosting your manifest. + */ + override fun s3(s3: ManifestConfigSourceS3Property) { + cdkBuilder.s3(s3.let(ManifestConfigSourceS3Property::unwrap)) + } + + /** + * @param s3 Specifies the S3 bucket where you're hosting your manifest. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("2c84797c8e89c694150a127c56ebc9c607a228975717c44e723edbef68f83f08") + override fun s3(s3: ManifestConfigSourceS3Property.Builder.() -> Unit): Unit = + s3(ManifestConfigSourceS3Property(s3)) + + public fun build(): software.amazon.awscdk.services.datasync.CfnTask.SourceProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.datasync.CfnTask.SourceProperty, + ) : CdkObject(cdkObject), SourceProperty { + /** + * Specifies the S3 bucket where you're hosting your manifest. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-source.html#cfn-datasync-task-source-s3) + */ + override fun s3(): Any? = unwrap(this).getS3() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): SourceProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.datasync.CfnTask.SourceProperty): + SourceProperty = CdkObjectWrappers.wrap(cdkObject) as? SourceProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: SourceProperty): + software.amazon.awscdk.services.datasync.CfnTask.SourceProperty = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.datasync.CfnTask.SourceProperty + } + } + /** * Specifies how you want to configure a task report, which provides detailed information about * for your AWS DataSync transfer. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/datasync/CfnTaskProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/datasync/CfnTaskProps.kt index d124a6f60c..dddf96559f 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/datasync/CfnTaskProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/datasync/CfnTaskProps.kt @@ -35,6 +35,19 @@ import kotlin.jvm.JvmName * .filterType("filterType") * .value("value") * .build())) + * .manifestConfig(ManifestConfigProperty.builder() + * .source(SourceProperty.builder() + * .s3(ManifestConfigSourceS3Property.builder() + * .bucketAccessRoleArn("bucketAccessRoleArn") + * .manifestObjectPath("manifestObjectPath") + * .manifestObjectVersionId("manifestObjectVersionId") + * .s3BucketArn("s3BucketArn") + * .build()) + * .build()) + * // the properties below are optional + * .action("action") + * .format("format") + * .build()) * .name("name") * .options(OptionsProperty.builder() * .atime("atime") @@ -136,6 +149,16 @@ public interface CfnTaskProps { */ public fun includes(): Any? = unwrap(this).getIncludes() + /** + * The configuration of the manifest that lists the files or objects to transfer. + * + * For more information, see [Specifying what DataSync transfers by using a + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-task.html#cfn-datasync-task-manifestconfig) + */ + public fun manifestConfig(): Any? = unwrap(this).getManifestConfig() + /** * The name of a task. * @@ -275,6 +298,35 @@ public interface CfnTaskProps { */ public fun includes(vararg includes: Any) + /** + * @param manifestConfig The configuration of the manifest that lists the files or objects to + * transfer. + * For more information, see [Specifying what DataSync transfers by using a + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html) + * . + */ + public fun manifestConfig(manifestConfig: IResolvable) + + /** + * @param manifestConfig The configuration of the manifest that lists the files or objects to + * transfer. + * For more information, see [Specifying what DataSync transfers by using a + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html) + * . + */ + public fun manifestConfig(manifestConfig: CfnTask.ManifestConfigProperty) + + /** + * @param manifestConfig The configuration of the manifest that lists the files or objects to + * transfer. + * For more information, see [Specifying what DataSync transfers by using a + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html) + * . + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("ec8c77e6c6dfdb2c9cf682f7b4f269325702ad0aed75a50819a625d846d9ed6b") + public fun manifestConfig(manifestConfig: CfnTask.ManifestConfigProperty.Builder.() -> Unit) + /** * @param name The name of a task. * This value is a text reference that is used to identify the task in the console. @@ -486,6 +538,40 @@ public interface CfnTaskProps { */ override fun includes(vararg includes: Any): Unit = includes(includes.toList()) + /** + * @param manifestConfig The configuration of the manifest that lists the files or objects to + * transfer. + * For more information, see [Specifying what DataSync transfers by using a + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html) + * . + */ + override fun manifestConfig(manifestConfig: IResolvable) { + cdkBuilder.manifestConfig(manifestConfig.let(IResolvable::unwrap)) + } + + /** + * @param manifestConfig The configuration of the manifest that lists the files or objects to + * transfer. + * For more information, see [Specifying what DataSync transfers by using a + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html) + * . + */ + override fun manifestConfig(manifestConfig: CfnTask.ManifestConfigProperty) { + cdkBuilder.manifestConfig(manifestConfig.let(CfnTask.ManifestConfigProperty::unwrap)) + } + + /** + * @param manifestConfig The configuration of the manifest that lists the files or objects to + * transfer. + * For more information, see [Specifying what DataSync transfers by using a + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html) + * . + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("ec8c77e6c6dfdb2c9cf682f7b4f269325702ad0aed75a50819a625d846d9ed6b") + override fun manifestConfig(manifestConfig: CfnTask.ManifestConfigProperty.Builder.() -> Unit): + Unit = manifestConfig(CfnTask.ManifestConfigProperty(manifestConfig)) + /** * @param name The name of a task. * This value is a text reference that is used to identify the task in the console. @@ -683,6 +769,17 @@ public interface CfnTaskProps { */ override fun includes(): Any? = unwrap(this).getIncludes() + /** + * The configuration of the manifest that lists the files or objects to transfer. + * + * For more information, see [Specifying what DataSync transfers by using a + * manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-task.html#cfn-datasync-task-manifestconfig) + */ + override fun manifestConfig(): Any? = unwrap(this).getManifestConfig() + /** * The name of a task. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/datazone/CfnDataSource.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/datazone/CfnDataSource.kt index 17a3cea7c9..abb645f614 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/datazone/CfnDataSource.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/datazone/CfnDataSource.kt @@ -55,6 +55,7 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .schemaName("schemaName") * .build())) * // the properties below are optional + * .autoImportDataQualityResult(false) * .dataAccessRole("dataAccessRole") * .build()) * .redshiftRunConfiguration(RedshiftRunConfigurationInputProperty.builder() @@ -865,6 +866,7 @@ public open class CfnDataSource( * .schemaName("schemaName") * .build())) * // the properties below are optional + * .autoImportDataQualityResult(false) * .dataAccessRole("dataAccessRole") * .build()) * .redshiftRunConfiguration(RedshiftRunConfigurationInputProperty.builder() @@ -1341,6 +1343,7 @@ public open class CfnDataSource( * .schemaName("schemaName") * .build())) * // the properties below are optional + * .autoImportDataQualityResult(false) * .dataAccessRole("dataAccessRole") * .build(); * ``` @@ -1348,6 +1351,14 @@ public open class CfnDataSource( * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datazone-datasource-gluerunconfigurationinput.html) */ public interface GlueRunConfigurationInputProperty { + /** + * Specifies whether to automatically import data quality metrics as part of the data source + * run. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datazone-datasource-gluerunconfigurationinput.html#cfn-datazone-datasource-gluerunconfigurationinput-autoimportdataqualityresult) + */ + public fun autoImportDataQualityResult(): Any? = unwrap(this).getAutoImportDataQualityResult() + /** * The data access role included in the configuration details of the AWS Glue data source. * @@ -1368,6 +1379,18 @@ public open class CfnDataSource( */ @CdkDslMarker public interface Builder { + /** + * @param autoImportDataQualityResult Specifies whether to automatically import data quality + * metrics as part of the data source run. + */ + public fun autoImportDataQualityResult(autoImportDataQualityResult: Boolean) + + /** + * @param autoImportDataQualityResult Specifies whether to automatically import data quality + * metrics as part of the data source run. + */ + public fun autoImportDataQualityResult(autoImportDataQualityResult: IResolvable) + /** * @param dataAccessRole The data access role included in the configuration details of the AWS * Glue data source. @@ -1399,6 +1422,22 @@ public open class CfnDataSource( = software.amazon.awscdk.services.datazone.CfnDataSource.GlueRunConfigurationInputProperty.builder() + /** + * @param autoImportDataQualityResult Specifies whether to automatically import data quality + * metrics as part of the data source run. + */ + override fun autoImportDataQualityResult(autoImportDataQualityResult: Boolean) { + cdkBuilder.autoImportDataQualityResult(autoImportDataQualityResult) + } + + /** + * @param autoImportDataQualityResult Specifies whether to automatically import data quality + * metrics as part of the data source run. + */ + override fun autoImportDataQualityResult(autoImportDataQualityResult: IResolvable) { + cdkBuilder.autoImportDataQualityResult(autoImportDataQualityResult.let(IResolvable::unwrap)) + } + /** * @param dataAccessRole The data access role included in the configuration details of the AWS * Glue data source. @@ -1438,6 +1477,15 @@ public open class CfnDataSource( private class Wrapper( cdkObject: software.amazon.awscdk.services.datazone.CfnDataSource.GlueRunConfigurationInputProperty, ) : CdkObject(cdkObject), GlueRunConfigurationInputProperty { + /** + * Specifies whether to automatically import data quality metrics as part of the data source + * run. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datazone-datasource-gluerunconfigurationinput.html#cfn-datazone-datasource-gluerunconfigurationinput-autoimportdataqualityresult) + */ + override fun autoImportDataQualityResult(): Any? = + unwrap(this).getAutoImportDataQualityResult() + /** * The data access role included in the configuration details of the AWS Glue data source. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/datazone/CfnDataSourceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/datazone/CfnDataSourceProps.kt index 67c5470d8a..9724a19fe5 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/datazone/CfnDataSourceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/datazone/CfnDataSourceProps.kt @@ -48,6 +48,7 @@ import kotlin.jvm.JvmName * .schemaName("schemaName") * .build())) * // the properties below are optional + * .autoImportDataQualityResult(false) * .dataAccessRole("dataAccessRole") * .build()) * .redshiftRunConfiguration(RedshiftRunConfigurationInputProperty.builder() diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnFarm.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnFarm.kt new file mode 100644 index 0000000000..9de25f5398 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnFarm.kt @@ -0,0 +1,204 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.deadline + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import kotlin.String +import kotlin.Unit +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * Creates a farm to allow space for queues and fleets. + * + * Farms are the space where the components of your renders gather and are pieced together in the + * cloud. Farms contain budgets and allow you to enforce permissions. Deadline Cloud farms are a useful + * container for large projects. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * CfnFarm cfnFarm = CfnFarm.Builder.create(this, "MyCfnFarm") + * .displayName("displayName") + * // the properties below are optional + * .description("description") + * .kmsKeyArn("kmsKeyArn") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-farm.html) + */ +public open class CfnFarm( + cdkObject: software.amazon.awscdk.services.deadline.CfnFarm, +) : CfnResource(cdkObject), IInspectable { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnFarmProps, + ) : + this(software.amazon.awscdk.services.deadline.CfnFarm(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnFarmProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnFarmProps.Builder.() -> Unit, + ) : this(scope, id, CfnFarmProps(props) + ) + + /** + * The Amazon Resource Name (ARN) assigned to the farm. + */ + public open fun attrArn(): String = unwrap(this).getAttrArn() + + /** + * The farm ID. + */ + public open fun attrFarmId(): String = unwrap(this).getAttrFarmId() + + /** + * A description of the farm that helps identify what the farm is used for. + */ + public open fun description(): String? = unwrap(this).getDescription() + + /** + * A description of the farm that helps identify what the farm is used for. + */ + public open fun description(`value`: String) { + unwrap(this).setDescription(`value`) + } + + /** + * The display name of the farm. + */ + public open fun displayName(): String = unwrap(this).getDisplayName() + + /** + * The display name of the farm. + */ + public open fun displayName(`value`: String) { + unwrap(this).setDisplayName(`value`) + } + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * The ARN for the KMS key. + */ + public open fun kmsKeyArn(): String? = unwrap(this).getKmsKeyArn() + + /** + * The ARN for the KMS key. + */ + public open fun kmsKeyArn(`value`: String) { + unwrap(this).setKmsKeyArn(`value`) + } + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.deadline.CfnFarm]. + */ + @CdkDslMarker + public interface Builder { + /** + * A description of the farm that helps identify what the farm is used for. + * + * Default: - "" + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-farm.html#cfn-deadline-farm-description) + * @param description A description of the farm that helps identify what the farm is used for. + */ + public fun description(description: String) + + /** + * The display name of the farm. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-farm.html#cfn-deadline-farm-displayname) + * @param displayName The display name of the farm. + */ + public fun displayName(displayName: String) + + /** + * The ARN for the KMS key. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-farm.html#cfn-deadline-farm-kmskeyarn) + * @param kmsKeyArn The ARN for the KMS key. + */ + public fun kmsKeyArn(kmsKeyArn: String) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.services.deadline.CfnFarm.Builder = + software.amazon.awscdk.services.deadline.CfnFarm.Builder.create(scope, id) + + /** + * A description of the farm that helps identify what the farm is used for. + * + * Default: - "" + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-farm.html#cfn-deadline-farm-description) + * @param description A description of the farm that helps identify what the farm is used for. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * The display name of the farm. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-farm.html#cfn-deadline-farm-displayname) + * @param displayName The display name of the farm. + */ + override fun displayName(displayName: String) { + cdkBuilder.displayName(displayName) + } + + /** + * The ARN for the KMS key. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-farm.html#cfn-deadline-farm-kmskeyarn) + * @param kmsKeyArn The ARN for the KMS key. + */ + override fun kmsKeyArn(kmsKeyArn: String) { + cdkBuilder.kmsKeyArn(kmsKeyArn) + } + + public fun build(): software.amazon.awscdk.services.deadline.CfnFarm = cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.deadline.CfnFarm.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnFarm { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnFarm(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnFarm): CfnFarm = + CfnFarm(cdkObject) + + internal fun unwrap(wrapped: CfnFarm): software.amazon.awscdk.services.deadline.CfnFarm = + wrapped.cdkObject as software.amazon.awscdk.services.deadline.CfnFarm + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnFarmProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnFarmProps.kt new file mode 100644 index 0000000000..62d71a9942 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnFarmProps.kt @@ -0,0 +1,143 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.deadline + +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.String +import kotlin.Unit + +/** + * Properties for defining a `CfnFarm`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * CfnFarmProps cfnFarmProps = CfnFarmProps.builder() + * .displayName("displayName") + * // the properties below are optional + * .description("description") + * .kmsKeyArn("kmsKeyArn") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-farm.html) + */ +public interface CfnFarmProps { + /** + * A description of the farm that helps identify what the farm is used for. + * + * Default: - "" + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-farm.html#cfn-deadline-farm-description) + */ + public fun description(): String? = unwrap(this).getDescription() + + /** + * The display name of the farm. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-farm.html#cfn-deadline-farm-displayname) + */ + public fun displayName(): String + + /** + * The ARN for the KMS key. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-farm.html#cfn-deadline-farm-kmskeyarn) + */ + public fun kmsKeyArn(): String? = unwrap(this).getKmsKeyArn() + + /** + * A builder for [CfnFarmProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param description A description of the farm that helps identify what the farm is used for. + */ + public fun description(description: String) + + /** + * @param displayName The display name of the farm. + */ + public fun displayName(displayName: String) + + /** + * @param kmsKeyArn The ARN for the KMS key. + */ + public fun kmsKeyArn(kmsKeyArn: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.services.deadline.CfnFarmProps.Builder = + software.amazon.awscdk.services.deadline.CfnFarmProps.builder() + + /** + * @param description A description of the farm that helps identify what the farm is used for. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * @param displayName The display name of the farm. + */ + override fun displayName(displayName: String) { + cdkBuilder.displayName(displayName) + } + + /** + * @param kmsKeyArn The ARN for the KMS key. + */ + override fun kmsKeyArn(kmsKeyArn: String) { + cdkBuilder.kmsKeyArn(kmsKeyArn) + } + + public fun build(): software.amazon.awscdk.services.deadline.CfnFarmProps = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.deadline.CfnFarmProps, + ) : CdkObject(cdkObject), CfnFarmProps { + /** + * A description of the farm that helps identify what the farm is used for. + * + * Default: - "" + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-farm.html#cfn-deadline-farm-description) + */ + override fun description(): String? = unwrap(this).getDescription() + + /** + * The display name of the farm. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-farm.html#cfn-deadline-farm-displayname) + */ + override fun displayName(): String = unwrap(this).getDisplayName() + + /** + * The ARN for the KMS key. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-farm.html#cfn-deadline-farm-kmskeyarn) + */ + override fun kmsKeyArn(): String? = unwrap(this).getKmsKeyArn() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnFarmProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnFarmProps): + CfnFarmProps = CdkObjectWrappers.wrap(cdkObject) as? CfnFarmProps ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnFarmProps): + software.amazon.awscdk.services.deadline.CfnFarmProps = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.deadline.CfnFarmProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnFleet.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnFleet.kt new file mode 100644 index 0000000000..317d074e0c --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnFleet.kt @@ -0,0 +1,3225 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.deadline + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.Number +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.jvm.JvmName +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * Creates a fleet. + * + * Fleets gather information relating to compute, or capacity, for renders within your farms. You + * can choose to manage your own capacity or opt to have fleets fully managed by Deadline Cloud. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * CfnFleet cfnFleet = CfnFleet.Builder.create(this, "MyCfnFleet") + * .configuration(FleetConfigurationProperty.builder() + * .customerManaged(CustomerManagedFleetConfigurationProperty.builder() + * .mode("mode") + * .workerCapabilities(CustomerManagedWorkerCapabilitiesProperty.builder() + * .cpuArchitectureType("cpuArchitectureType") + * .memoryMiB(MemoryMiBRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build()) + * .osFamily("osFamily") + * .vCpuCount(VCpuCountRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build()) + * // the properties below are optional + * .acceleratorCount(AcceleratorCountRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build()) + * .acceleratorTotalMemoryMiB(AcceleratorTotalMemoryMiBRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build()) + * .acceleratorTypes(List.of("acceleratorTypes")) + * .customAmounts(List.of(FleetAmountCapabilityProperty.builder() + * .min(123) + * .name("name") + * // the properties below are optional + * .max(123) + * .build())) + * .customAttributes(List.of(FleetAttributeCapabilityProperty.builder() + * .name("name") + * .values(List.of("values")) + * .build())) + * .build()) + * // the properties below are optional + * .storageProfileId("storageProfileId") + * .build()) + * .serviceManagedEc2(ServiceManagedEc2FleetConfigurationProperty.builder() + * .instanceCapabilities(ServiceManagedEc2InstanceCapabilitiesProperty.builder() + * .cpuArchitectureType("cpuArchitectureType") + * .memoryMiB(MemoryMiBRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build()) + * .osFamily("osFamily") + * .vCpuCount(VCpuCountRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build()) + * // the properties below are optional + * .allowedInstanceTypes(List.of("allowedInstanceTypes")) + * .customAmounts(List.of(FleetAmountCapabilityProperty.builder() + * .min(123) + * .name("name") + * // the properties below are optional + * .max(123) + * .build())) + * .customAttributes(List.of(FleetAttributeCapabilityProperty.builder() + * .name("name") + * .values(List.of("values")) + * .build())) + * .excludedInstanceTypes(List.of("excludedInstanceTypes")) + * .rootEbsVolume(Ec2EbsVolumeProperty.builder() + * .iops(123) + * .sizeGiB(123) + * .throughputMiB(123) + * .build()) + * .build()) + * .instanceMarketOptions(ServiceManagedEc2InstanceMarketOptionsProperty.builder() + * .type("type") + * .build()) + * .build()) + * .build()) + * .displayName("displayName") + * .maxWorkerCount(123) + * .roleArn("roleArn") + * // the properties below are optional + * .description("description") + * .farmId("farmId") + * .minWorkerCount(123) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html) + */ +public open class CfnFleet( + cdkObject: software.amazon.awscdk.services.deadline.CfnFleet, +) : CfnResource(cdkObject), IInspectable { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnFleetProps, + ) : + this(software.amazon.awscdk.services.deadline.CfnFleet(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnFleetProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnFleetProps.Builder.() -> Unit, + ) : this(scope, id, CfnFleetProps(props) + ) + + /** + * The Amazon Resource Name (ARN) assigned to the fleet. + */ + public open fun attrArn(): String = unwrap(this).getAttrArn() + + /** + * + */ + public open fun attrCapabilities(): IResolvable = + unwrap(this).getAttrCapabilities().let(IResolvable::wrap) + + /** + * The fleet ID. + */ + public open fun attrFleetId(): String = unwrap(this).getAttrFleetId() + + /** + * The status of the fleet. + */ + public open fun attrStatus(): String = unwrap(this).getAttrStatus() + + /** + * The number of workers in the fleet summary. + */ + public open fun attrWorkerCount(): Number = unwrap(this).getAttrWorkerCount() + + /** + * The configuration details for the fleet. + */ + public open fun configuration(): Any = unwrap(this).getConfiguration() + + /** + * The configuration details for the fleet. + */ + public open fun configuration(`value`: IResolvable) { + unwrap(this).setConfiguration(`value`.let(IResolvable::unwrap)) + } + + /** + * The configuration details for the fleet. + */ + public open fun configuration(`value`: FleetConfigurationProperty) { + unwrap(this).setConfiguration(`value`.let(FleetConfigurationProperty::unwrap)) + } + + /** + * The configuration details for the fleet. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("4d24951a4113f8bfd2367704d1df2cdc6cd6bad2fa55d8056ba5e74c6ecfb153") + public open fun configuration(`value`: FleetConfigurationProperty.Builder.() -> Unit): Unit = + configuration(FleetConfigurationProperty(`value`)) + + /** + * A description that helps identify what the fleet is used for. + */ + public open fun description(): String? = unwrap(this).getDescription() + + /** + * A description that helps identify what the fleet is used for. + */ + public open fun description(`value`: String) { + unwrap(this).setDescription(`value`) + } + + /** + * The display name of the fleet summary to update. + */ + public open fun displayName(): String = unwrap(this).getDisplayName() + + /** + * The display name of the fleet summary to update. + */ + public open fun displayName(`value`: String) { + unwrap(this).setDisplayName(`value`) + } + + /** + * The farm ID. + */ + public open fun farmId(): String? = unwrap(this).getFarmId() + + /** + * The farm ID. + */ + public open fun farmId(`value`: String) { + unwrap(this).setFarmId(`value`) + } + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * The maximum number of workers specified in the fleet. + */ + public open fun maxWorkerCount(): Number = unwrap(this).getMaxWorkerCount() + + /** + * The maximum number of workers specified in the fleet. + */ + public open fun maxWorkerCount(`value`: Number) { + unwrap(this).setMaxWorkerCount(`value`) + } + + /** + * The minimum number of workers in the fleet. + */ + public open fun minWorkerCount(): Number? = unwrap(this).getMinWorkerCount() + + /** + * The minimum number of workers in the fleet. + */ + public open fun minWorkerCount(`value`: Number) { + unwrap(this).setMinWorkerCount(`value`) + } + + /** + * The IAM role that workers in the fleet use when processing jobs. + */ + public open fun roleArn(): String = unwrap(this).getRoleArn() + + /** + * The IAM role that workers in the fleet use when processing jobs. + */ + public open fun roleArn(`value`: String) { + unwrap(this).setRoleArn(`value`) + } + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.deadline.CfnFleet]. + */ + @CdkDslMarker + public interface Builder { + /** + * The configuration details for the fleet. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-configuration) + * @param configuration The configuration details for the fleet. + */ + public fun configuration(configuration: IResolvable) + + /** + * The configuration details for the fleet. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-configuration) + * @param configuration The configuration details for the fleet. + */ + public fun configuration(configuration: FleetConfigurationProperty) + + /** + * The configuration details for the fleet. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-configuration) + * @param configuration The configuration details for the fleet. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("7fd9d5f96b1071703694a7dcab950624a48683661f2e89274b76b94e98f6eeaf") + public fun configuration(configuration: FleetConfigurationProperty.Builder.() -> Unit) + + /** + * A description that helps identify what the fleet is used for. + * + * Default: - "" + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-description) + * @param description A description that helps identify what the fleet is used for. + */ + public fun description(description: String) + + /** + * The display name of the fleet summary to update. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-displayname) + * @param displayName The display name of the fleet summary to update. + */ + public fun displayName(displayName: String) + + /** + * The farm ID. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-farmid) + * @param farmId The farm ID. + */ + public fun farmId(farmId: String) + + /** + * The maximum number of workers specified in the fleet. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-maxworkercount) + * @param maxWorkerCount The maximum number of workers specified in the fleet. + */ + public fun maxWorkerCount(maxWorkerCount: Number) + + /** + * The minimum number of workers in the fleet. + * + * Default: - 0 + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-minworkercount) + * @param minWorkerCount The minimum number of workers in the fleet. + */ + public fun minWorkerCount(minWorkerCount: Number) + + /** + * The IAM role that workers in the fleet use when processing jobs. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-rolearn) + * @param roleArn The IAM role that workers in the fleet use when processing jobs. + */ + public fun roleArn(roleArn: String) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.services.deadline.CfnFleet.Builder = + software.amazon.awscdk.services.deadline.CfnFleet.Builder.create(scope, id) + + /** + * The configuration details for the fleet. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-configuration) + * @param configuration The configuration details for the fleet. + */ + override fun configuration(configuration: IResolvable) { + cdkBuilder.configuration(configuration.let(IResolvable::unwrap)) + } + + /** + * The configuration details for the fleet. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-configuration) + * @param configuration The configuration details for the fleet. + */ + override fun configuration(configuration: FleetConfigurationProperty) { + cdkBuilder.configuration(configuration.let(FleetConfigurationProperty::unwrap)) + } + + /** + * The configuration details for the fleet. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-configuration) + * @param configuration The configuration details for the fleet. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("7fd9d5f96b1071703694a7dcab950624a48683661f2e89274b76b94e98f6eeaf") + override fun configuration(configuration: FleetConfigurationProperty.Builder.() -> Unit): Unit = + configuration(FleetConfigurationProperty(configuration)) + + /** + * A description that helps identify what the fleet is used for. + * + * Default: - "" + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-description) + * @param description A description that helps identify what the fleet is used for. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * The display name of the fleet summary to update. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-displayname) + * @param displayName The display name of the fleet summary to update. + */ + override fun displayName(displayName: String) { + cdkBuilder.displayName(displayName) + } + + /** + * The farm ID. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-farmid) + * @param farmId The farm ID. + */ + override fun farmId(farmId: String) { + cdkBuilder.farmId(farmId) + } + + /** + * The maximum number of workers specified in the fleet. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-maxworkercount) + * @param maxWorkerCount The maximum number of workers specified in the fleet. + */ + override fun maxWorkerCount(maxWorkerCount: Number) { + cdkBuilder.maxWorkerCount(maxWorkerCount) + } + + /** + * The minimum number of workers in the fleet. + * + * Default: - 0 + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-minworkercount) + * @param minWorkerCount The minimum number of workers in the fleet. + */ + override fun minWorkerCount(minWorkerCount: Number) { + cdkBuilder.minWorkerCount(minWorkerCount) + } + + /** + * The IAM role that workers in the fleet use when processing jobs. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-rolearn) + * @param roleArn The IAM role that workers in the fleet use when processing jobs. + */ + override fun roleArn(roleArn: String) { + cdkBuilder.roleArn(roleArn) + } + + public fun build(): software.amazon.awscdk.services.deadline.CfnFleet = cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.deadline.CfnFleet.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnFleet { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnFleet(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnFleet): CfnFleet = + CfnFleet(cdkObject) + + internal fun unwrap(wrapped: CfnFleet): software.amazon.awscdk.services.deadline.CfnFleet = + wrapped.cdkObject as software.amazon.awscdk.services.deadline.CfnFleet + } + + /** + * The range for the GPU fleet acceleration. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * AcceleratorCountRangeProperty acceleratorCountRangeProperty = + * AcceleratorCountRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-acceleratorcountrange.html) + */ + public interface AcceleratorCountRangeProperty { + /** + * The maximum GPU for the accelerator. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-acceleratorcountrange.html#cfn-deadline-fleet-acceleratorcountrange-max) + */ + public fun max(): Number? = unwrap(this).getMax() + + /** + * The minimum GPU for the accelerator. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-acceleratorcountrange.html#cfn-deadline-fleet-acceleratorcountrange-min) + */ + public fun min(): Number + + /** + * A builder for [AcceleratorCountRangeProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param max The maximum GPU for the accelerator. + */ + public fun max(max: Number) + + /** + * @param min The minimum GPU for the accelerator. + */ + public fun min(min: Number) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.deadline.CfnFleet.AcceleratorCountRangeProperty.Builder = + software.amazon.awscdk.services.deadline.CfnFleet.AcceleratorCountRangeProperty.builder() + + /** + * @param max The maximum GPU for the accelerator. + */ + override fun max(max: Number) { + cdkBuilder.max(max) + } + + /** + * @param min The minimum GPU for the accelerator. + */ + override fun min(min: Number) { + cdkBuilder.min(min) + } + + public fun build(): + software.amazon.awscdk.services.deadline.CfnFleet.AcceleratorCountRangeProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.deadline.CfnFleet.AcceleratorCountRangeProperty, + ) : CdkObject(cdkObject), AcceleratorCountRangeProperty { + /** + * The maximum GPU for the accelerator. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-acceleratorcountrange.html#cfn-deadline-fleet-acceleratorcountrange-max) + */ + override fun max(): Number? = unwrap(this).getMax() + + /** + * The minimum GPU for the accelerator. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-acceleratorcountrange.html#cfn-deadline-fleet-acceleratorcountrange-min) + */ + override fun min(): Number = unwrap(this).getMin() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): AcceleratorCountRangeProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnFleet.AcceleratorCountRangeProperty): + AcceleratorCountRangeProperty = CdkObjectWrappers.wrap(cdkObject) as? + AcceleratorCountRangeProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: AcceleratorCountRangeProperty): + software.amazon.awscdk.services.deadline.CfnFleet.AcceleratorCountRangeProperty = (wrapped + as CdkObject).cdkObject as + software.amazon.awscdk.services.deadline.CfnFleet.AcceleratorCountRangeProperty + } + } + + /** + * The range for memory, in MiB, to use for the accelerator. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * AcceleratorTotalMemoryMiBRangeProperty acceleratorTotalMemoryMiBRangeProperty = + * AcceleratorTotalMemoryMiBRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-acceleratortotalmemorymibrange.html) + */ + public interface AcceleratorTotalMemoryMiBRangeProperty { + /** + * The maximum amount of memory to use for the accelerator, measured in MiB. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-acceleratortotalmemorymibrange.html#cfn-deadline-fleet-acceleratortotalmemorymibrange-max) + */ + public fun max(): Number? = unwrap(this).getMax() + + /** + * The minimum amount of memory to use for the accelerator, measured in MiB. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-acceleratortotalmemorymibrange.html#cfn-deadline-fleet-acceleratortotalmemorymibrange-min) + */ + public fun min(): Number + + /** + * A builder for [AcceleratorTotalMemoryMiBRangeProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param max The maximum amount of memory to use for the accelerator, measured in MiB. + */ + public fun max(max: Number) + + /** + * @param min The minimum amount of memory to use for the accelerator, measured in MiB. + */ + public fun min(min: Number) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.deadline.CfnFleet.AcceleratorTotalMemoryMiBRangeProperty.Builder + = + software.amazon.awscdk.services.deadline.CfnFleet.AcceleratorTotalMemoryMiBRangeProperty.builder() + + /** + * @param max The maximum amount of memory to use for the accelerator, measured in MiB. + */ + override fun max(max: Number) { + cdkBuilder.max(max) + } + + /** + * @param min The minimum amount of memory to use for the accelerator, measured in MiB. + */ + override fun min(min: Number) { + cdkBuilder.min(min) + } + + public fun build(): + software.amazon.awscdk.services.deadline.CfnFleet.AcceleratorTotalMemoryMiBRangeProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.deadline.CfnFleet.AcceleratorTotalMemoryMiBRangeProperty, + ) : CdkObject(cdkObject), AcceleratorTotalMemoryMiBRangeProperty { + /** + * The maximum amount of memory to use for the accelerator, measured in MiB. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-acceleratortotalmemorymibrange.html#cfn-deadline-fleet-acceleratortotalmemorymibrange-max) + */ + override fun max(): Number? = unwrap(this).getMax() + + /** + * The minimum amount of memory to use for the accelerator, measured in MiB. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-acceleratortotalmemorymibrange.html#cfn-deadline-fleet-acceleratortotalmemorymibrange-min) + */ + override fun min(): Number = unwrap(this).getMin() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): + AcceleratorTotalMemoryMiBRangeProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnFleet.AcceleratorTotalMemoryMiBRangeProperty): + AcceleratorTotalMemoryMiBRangeProperty = CdkObjectWrappers.wrap(cdkObject) as? + AcceleratorTotalMemoryMiBRangeProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: AcceleratorTotalMemoryMiBRangeProperty): + software.amazon.awscdk.services.deadline.CfnFleet.AcceleratorTotalMemoryMiBRangeProperty = + (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.deadline.CfnFleet.AcceleratorTotalMemoryMiBRangeProperty + } + } + + /** + * The details of a customer managed fleet configuration. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * CustomerManagedFleetConfigurationProperty customerManagedFleetConfigurationProperty = + * CustomerManagedFleetConfigurationProperty.builder() + * .mode("mode") + * .workerCapabilities(CustomerManagedWorkerCapabilitiesProperty.builder() + * .cpuArchitectureType("cpuArchitectureType") + * .memoryMiB(MemoryMiBRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build()) + * .osFamily("osFamily") + * .vCpuCount(VCpuCountRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build()) + * // the properties below are optional + * .acceleratorCount(AcceleratorCountRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build()) + * .acceleratorTotalMemoryMiB(AcceleratorTotalMemoryMiBRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build()) + * .acceleratorTypes(List.of("acceleratorTypes")) + * .customAmounts(List.of(FleetAmountCapabilityProperty.builder() + * .min(123) + * .name("name") + * // the properties below are optional + * .max(123) + * .build())) + * .customAttributes(List.of(FleetAttributeCapabilityProperty.builder() + * .name("name") + * .values(List.of("values")) + * .build())) + * .build()) + * // the properties below are optional + * .storageProfileId("storageProfileId") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-customermanagedfleetconfiguration.html) + */ + public interface CustomerManagedFleetConfigurationProperty { + /** + * The AWS Auto Scaling mode for the customer managed fleet configuration. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-customermanagedfleetconfiguration.html#cfn-deadline-fleet-customermanagedfleetconfiguration-mode) + */ + public fun mode(): String + + /** + * The storage profile ID. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-customermanagedfleetconfiguration.html#cfn-deadline-fleet-customermanagedfleetconfiguration-storageprofileid) + */ + public fun storageProfileId(): String? = unwrap(this).getStorageProfileId() + + /** + * The worker capabilities for a customer managed fleet configuration. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-customermanagedfleetconfiguration.html#cfn-deadline-fleet-customermanagedfleetconfiguration-workercapabilities) + */ + public fun workerCapabilities(): Any + + /** + * A builder for [CustomerManagedFleetConfigurationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param mode The AWS Auto Scaling mode for the customer managed fleet configuration. + */ + public fun mode(mode: String) + + /** + * @param storageProfileId The storage profile ID. + */ + public fun storageProfileId(storageProfileId: String) + + /** + * @param workerCapabilities The worker capabilities for a customer managed fleet + * configuration. + */ + public fun workerCapabilities(workerCapabilities: IResolvable) + + /** + * @param workerCapabilities The worker capabilities for a customer managed fleet + * configuration. + */ + public fun workerCapabilities(workerCapabilities: CustomerManagedWorkerCapabilitiesProperty) + + /** + * @param workerCapabilities The worker capabilities for a customer managed fleet + * configuration. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("2cf8eaf19b19246aeaef77ad614059f7c46e02536e16318882136dfa14296282") + public + fun workerCapabilities(workerCapabilities: CustomerManagedWorkerCapabilitiesProperty.Builder.() -> Unit) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.deadline.CfnFleet.CustomerManagedFleetConfigurationProperty.Builder + = + software.amazon.awscdk.services.deadline.CfnFleet.CustomerManagedFleetConfigurationProperty.builder() + + /** + * @param mode The AWS Auto Scaling mode for the customer managed fleet configuration. + */ + override fun mode(mode: String) { + cdkBuilder.mode(mode) + } + + /** + * @param storageProfileId The storage profile ID. + */ + override fun storageProfileId(storageProfileId: String) { + cdkBuilder.storageProfileId(storageProfileId) + } + + /** + * @param workerCapabilities The worker capabilities for a customer managed fleet + * configuration. + */ + override fun workerCapabilities(workerCapabilities: IResolvable) { + cdkBuilder.workerCapabilities(workerCapabilities.let(IResolvable::unwrap)) + } + + /** + * @param workerCapabilities The worker capabilities for a customer managed fleet + * configuration. + */ + override + fun workerCapabilities(workerCapabilities: CustomerManagedWorkerCapabilitiesProperty) { + cdkBuilder.workerCapabilities(workerCapabilities.let(CustomerManagedWorkerCapabilitiesProperty::unwrap)) + } + + /** + * @param workerCapabilities The worker capabilities for a customer managed fleet + * configuration. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("2cf8eaf19b19246aeaef77ad614059f7c46e02536e16318882136dfa14296282") + override + fun workerCapabilities(workerCapabilities: CustomerManagedWorkerCapabilitiesProperty.Builder.() -> Unit): + Unit = workerCapabilities(CustomerManagedWorkerCapabilitiesProperty(workerCapabilities)) + + public fun build(): + software.amazon.awscdk.services.deadline.CfnFleet.CustomerManagedFleetConfigurationProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.deadline.CfnFleet.CustomerManagedFleetConfigurationProperty, + ) : CdkObject(cdkObject), CustomerManagedFleetConfigurationProperty { + /** + * The AWS Auto Scaling mode for the customer managed fleet configuration. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-customermanagedfleetconfiguration.html#cfn-deadline-fleet-customermanagedfleetconfiguration-mode) + */ + override fun mode(): String = unwrap(this).getMode() + + /** + * The storage profile ID. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-customermanagedfleetconfiguration.html#cfn-deadline-fleet-customermanagedfleetconfiguration-storageprofileid) + */ + override fun storageProfileId(): String? = unwrap(this).getStorageProfileId() + + /** + * The worker capabilities for a customer managed fleet configuration. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-customermanagedfleetconfiguration.html#cfn-deadline-fleet-customermanagedfleetconfiguration-workercapabilities) + */ + override fun workerCapabilities(): Any = unwrap(this).getWorkerCapabilities() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): + CustomerManagedFleetConfigurationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnFleet.CustomerManagedFleetConfigurationProperty): + CustomerManagedFleetConfigurationProperty = CdkObjectWrappers.wrap(cdkObject) as? + CustomerManagedFleetConfigurationProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: CustomerManagedFleetConfigurationProperty): + software.amazon.awscdk.services.deadline.CfnFleet.CustomerManagedFleetConfigurationProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.deadline.CfnFleet.CustomerManagedFleetConfigurationProperty + } + } + + /** + * The worker capabilities for a customer managed workflow. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * CustomerManagedWorkerCapabilitiesProperty customerManagedWorkerCapabilitiesProperty = + * CustomerManagedWorkerCapabilitiesProperty.builder() + * .cpuArchitectureType("cpuArchitectureType") + * .memoryMiB(MemoryMiBRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build()) + * .osFamily("osFamily") + * .vCpuCount(VCpuCountRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build()) + * // the properties below are optional + * .acceleratorCount(AcceleratorCountRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build()) + * .acceleratorTotalMemoryMiB(AcceleratorTotalMemoryMiBRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build()) + * .acceleratorTypes(List.of("acceleratorTypes")) + * .customAmounts(List.of(FleetAmountCapabilityProperty.builder() + * .min(123) + * .name("name") + * // the properties below are optional + * .max(123) + * .build())) + * .customAttributes(List.of(FleetAttributeCapabilityProperty.builder() + * .name("name") + * .values(List.of("values")) + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-customermanagedworkercapabilities.html) + */ + public interface CustomerManagedWorkerCapabilitiesProperty { + /** + * The range of the accelerator. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-customermanagedworkercapabilities.html#cfn-deadline-fleet-customermanagedworkercapabilities-acceleratorcount) + */ + public fun acceleratorCount(): Any? = unwrap(this).getAcceleratorCount() + + /** + * The total memory (MiB) for the customer managed worker capabilities. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-customermanagedworkercapabilities.html#cfn-deadline-fleet-customermanagedworkercapabilities-acceleratortotalmemorymib) + */ + public fun acceleratorTotalMemoryMiB(): Any? = unwrap(this).getAcceleratorTotalMemoryMiB() + + /** + * The accelerator types for the customer managed worker capabilities. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-customermanagedworkercapabilities.html#cfn-deadline-fleet-customermanagedworkercapabilities-acceleratortypes) + */ + public fun acceleratorTypes(): List = unwrap(this).getAcceleratorTypes() ?: emptyList() + + /** + * The CPU architecture type for the customer managed worker capabilities. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-customermanagedworkercapabilities.html#cfn-deadline-fleet-customermanagedworkercapabilities-cpuarchitecturetype) + */ + public fun cpuArchitectureType(): String + + /** + * Custom requirement ranges for customer managed worker capabilities. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-customermanagedworkercapabilities.html#cfn-deadline-fleet-customermanagedworkercapabilities-customamounts) + */ + public fun customAmounts(): Any? = unwrap(this).getCustomAmounts() + + /** + * Custom attributes for the customer manged worker capabilities. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-customermanagedworkercapabilities.html#cfn-deadline-fleet-customermanagedworkercapabilities-customattributes) + */ + public fun customAttributes(): Any? = unwrap(this).getCustomAttributes() + + /** + * The memory (MiB). + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-customermanagedworkercapabilities.html#cfn-deadline-fleet-customermanagedworkercapabilities-memorymib) + */ + public fun memoryMiB(): Any + + /** + * The operating system (OS) family. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-customermanagedworkercapabilities.html#cfn-deadline-fleet-customermanagedworkercapabilities-osfamily) + */ + public fun osFamily(): String + + /** + * The vCPU count for the customer manged worker capabilities. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-customermanagedworkercapabilities.html#cfn-deadline-fleet-customermanagedworkercapabilities-vcpucount) + */ + public fun vCpuCount(): Any + + /** + * A builder for [CustomerManagedWorkerCapabilitiesProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param acceleratorCount The range of the accelerator. + */ + public fun acceleratorCount(acceleratorCount: IResolvable) + + /** + * @param acceleratorCount The range of the accelerator. + */ + public fun acceleratorCount(acceleratorCount: AcceleratorCountRangeProperty) + + /** + * @param acceleratorCount The range of the accelerator. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("bd3406f44989a5e78ce888ce0430a46f6a0d3fb66205155250543201e783c6c3") + public + fun acceleratorCount(acceleratorCount: AcceleratorCountRangeProperty.Builder.() -> Unit) + + /** + * @param acceleratorTotalMemoryMiB The total memory (MiB) for the customer managed worker + * capabilities. + */ + public fun acceleratorTotalMemoryMiB(acceleratorTotalMemoryMiB: IResolvable) + + /** + * @param acceleratorTotalMemoryMiB The total memory (MiB) for the customer managed worker + * capabilities. + */ + public + fun acceleratorTotalMemoryMiB(acceleratorTotalMemoryMiB: AcceleratorTotalMemoryMiBRangeProperty) + + /** + * @param acceleratorTotalMemoryMiB The total memory (MiB) for the customer managed worker + * capabilities. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("c44e852c863b7a341e2c017db84e51d85d8382cabb056cf12c758eb5bc73cad8") + public + fun acceleratorTotalMemoryMiB(acceleratorTotalMemoryMiB: AcceleratorTotalMemoryMiBRangeProperty.Builder.() -> Unit) + + /** + * @param acceleratorTypes The accelerator types for the customer managed worker capabilities. + */ + public fun acceleratorTypes(acceleratorTypes: List) + + /** + * @param acceleratorTypes The accelerator types for the customer managed worker capabilities. + */ + public fun acceleratorTypes(vararg acceleratorTypes: String) + + /** + * @param cpuArchitectureType The CPU architecture type for the customer managed worker + * capabilities. + */ + public fun cpuArchitectureType(cpuArchitectureType: String) + + /** + * @param customAmounts Custom requirement ranges for customer managed worker capabilities. + */ + public fun customAmounts(customAmounts: IResolvable) + + /** + * @param customAmounts Custom requirement ranges for customer managed worker capabilities. + */ + public fun customAmounts(customAmounts: List) + + /** + * @param customAmounts Custom requirement ranges for customer managed worker capabilities. + */ + public fun customAmounts(vararg customAmounts: Any) + + /** + * @param customAttributes Custom attributes for the customer manged worker capabilities. + */ + public fun customAttributes(customAttributes: IResolvable) + + /** + * @param customAttributes Custom attributes for the customer manged worker capabilities. + */ + public fun customAttributes(customAttributes: List) + + /** + * @param customAttributes Custom attributes for the customer manged worker capabilities. + */ + public fun customAttributes(vararg customAttributes: Any) + + /** + * @param memoryMiB The memory (MiB). + */ + public fun memoryMiB(memoryMiB: IResolvable) + + /** + * @param memoryMiB The memory (MiB). + */ + public fun memoryMiB(memoryMiB: MemoryMiBRangeProperty) + + /** + * @param memoryMiB The memory (MiB). + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("73ff3f138a03da0b596992f400a482752293d805a4343ea1c7545567fa47274e") + public fun memoryMiB(memoryMiB: MemoryMiBRangeProperty.Builder.() -> Unit) + + /** + * @param osFamily The operating system (OS) family. + */ + public fun osFamily(osFamily: String) + + /** + * @param vCpuCount The vCPU count for the customer manged worker capabilities. + */ + public fun vCpuCount(vCpuCount: IResolvable) + + /** + * @param vCpuCount The vCPU count for the customer manged worker capabilities. + */ + public fun vCpuCount(vCpuCount: VCpuCountRangeProperty) + + /** + * @param vCpuCount The vCPU count for the customer manged worker capabilities. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("2b27d0314708e9ec994dace5fdbc123b3fb11f7f2f54195e32840ddbddb6c15d") + public fun vCpuCount(vCpuCount: VCpuCountRangeProperty.Builder.() -> Unit) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.deadline.CfnFleet.CustomerManagedWorkerCapabilitiesProperty.Builder + = + software.amazon.awscdk.services.deadline.CfnFleet.CustomerManagedWorkerCapabilitiesProperty.builder() + + /** + * @param acceleratorCount The range of the accelerator. + */ + override fun acceleratorCount(acceleratorCount: IResolvable) { + cdkBuilder.acceleratorCount(acceleratorCount.let(IResolvable::unwrap)) + } + + /** + * @param acceleratorCount The range of the accelerator. + */ + override fun acceleratorCount(acceleratorCount: AcceleratorCountRangeProperty) { + cdkBuilder.acceleratorCount(acceleratorCount.let(AcceleratorCountRangeProperty::unwrap)) + } + + /** + * @param acceleratorCount The range of the accelerator. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("bd3406f44989a5e78ce888ce0430a46f6a0d3fb66205155250543201e783c6c3") + override + fun acceleratorCount(acceleratorCount: AcceleratorCountRangeProperty.Builder.() -> Unit): + Unit = acceleratorCount(AcceleratorCountRangeProperty(acceleratorCount)) + + /** + * @param acceleratorTotalMemoryMiB The total memory (MiB) for the customer managed worker + * capabilities. + */ + override fun acceleratorTotalMemoryMiB(acceleratorTotalMemoryMiB: IResolvable) { + cdkBuilder.acceleratorTotalMemoryMiB(acceleratorTotalMemoryMiB.let(IResolvable::unwrap)) + } + + /** + * @param acceleratorTotalMemoryMiB The total memory (MiB) for the customer managed worker + * capabilities. + */ + override + fun acceleratorTotalMemoryMiB(acceleratorTotalMemoryMiB: AcceleratorTotalMemoryMiBRangeProperty) { + cdkBuilder.acceleratorTotalMemoryMiB(acceleratorTotalMemoryMiB.let(AcceleratorTotalMemoryMiBRangeProperty::unwrap)) + } + + /** + * @param acceleratorTotalMemoryMiB The total memory (MiB) for the customer managed worker + * capabilities. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("c44e852c863b7a341e2c017db84e51d85d8382cabb056cf12c758eb5bc73cad8") + override + fun acceleratorTotalMemoryMiB(acceleratorTotalMemoryMiB: AcceleratorTotalMemoryMiBRangeProperty.Builder.() -> Unit): + Unit = + acceleratorTotalMemoryMiB(AcceleratorTotalMemoryMiBRangeProperty(acceleratorTotalMemoryMiB)) + + /** + * @param acceleratorTypes The accelerator types for the customer managed worker capabilities. + */ + override fun acceleratorTypes(acceleratorTypes: List) { + cdkBuilder.acceleratorTypes(acceleratorTypes) + } + + /** + * @param acceleratorTypes The accelerator types for the customer managed worker capabilities. + */ + override fun acceleratorTypes(vararg acceleratorTypes: String): Unit = + acceleratorTypes(acceleratorTypes.toList()) + + /** + * @param cpuArchitectureType The CPU architecture type for the customer managed worker + * capabilities. + */ + override fun cpuArchitectureType(cpuArchitectureType: String) { + cdkBuilder.cpuArchitectureType(cpuArchitectureType) + } + + /** + * @param customAmounts Custom requirement ranges for customer managed worker capabilities. + */ + override fun customAmounts(customAmounts: IResolvable) { + cdkBuilder.customAmounts(customAmounts.let(IResolvable::unwrap)) + } + + /** + * @param customAmounts Custom requirement ranges for customer managed worker capabilities. + */ + override fun customAmounts(customAmounts: List) { + cdkBuilder.customAmounts(customAmounts.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param customAmounts Custom requirement ranges for customer managed worker capabilities. + */ + override fun customAmounts(vararg customAmounts: Any): Unit = + customAmounts(customAmounts.toList()) + + /** + * @param customAttributes Custom attributes for the customer manged worker capabilities. + */ + override fun customAttributes(customAttributes: IResolvable) { + cdkBuilder.customAttributes(customAttributes.let(IResolvable::unwrap)) + } + + /** + * @param customAttributes Custom attributes for the customer manged worker capabilities. + */ + override fun customAttributes(customAttributes: List) { + cdkBuilder.customAttributes(customAttributes.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param customAttributes Custom attributes for the customer manged worker capabilities. + */ + override fun customAttributes(vararg customAttributes: Any): Unit = + customAttributes(customAttributes.toList()) + + /** + * @param memoryMiB The memory (MiB). + */ + override fun memoryMiB(memoryMiB: IResolvable) { + cdkBuilder.memoryMiB(memoryMiB.let(IResolvable::unwrap)) + } + + /** + * @param memoryMiB The memory (MiB). + */ + override fun memoryMiB(memoryMiB: MemoryMiBRangeProperty) { + cdkBuilder.memoryMiB(memoryMiB.let(MemoryMiBRangeProperty::unwrap)) + } + + /** + * @param memoryMiB The memory (MiB). + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("73ff3f138a03da0b596992f400a482752293d805a4343ea1c7545567fa47274e") + override fun memoryMiB(memoryMiB: MemoryMiBRangeProperty.Builder.() -> Unit): Unit = + memoryMiB(MemoryMiBRangeProperty(memoryMiB)) + + /** + * @param osFamily The operating system (OS) family. + */ + override fun osFamily(osFamily: String) { + cdkBuilder.osFamily(osFamily) + } + + /** + * @param vCpuCount The vCPU count for the customer manged worker capabilities. + */ + override fun vCpuCount(vCpuCount: IResolvable) { + cdkBuilder.vCpuCount(vCpuCount.let(IResolvable::unwrap)) + } + + /** + * @param vCpuCount The vCPU count for the customer manged worker capabilities. + */ + override fun vCpuCount(vCpuCount: VCpuCountRangeProperty) { + cdkBuilder.vCpuCount(vCpuCount.let(VCpuCountRangeProperty::unwrap)) + } + + /** + * @param vCpuCount The vCPU count for the customer manged worker capabilities. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("2b27d0314708e9ec994dace5fdbc123b3fb11f7f2f54195e32840ddbddb6c15d") + override fun vCpuCount(vCpuCount: VCpuCountRangeProperty.Builder.() -> Unit): Unit = + vCpuCount(VCpuCountRangeProperty(vCpuCount)) + + public fun build(): + software.amazon.awscdk.services.deadline.CfnFleet.CustomerManagedWorkerCapabilitiesProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.deadline.CfnFleet.CustomerManagedWorkerCapabilitiesProperty, + ) : CdkObject(cdkObject), CustomerManagedWorkerCapabilitiesProperty { + /** + * The range of the accelerator. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-customermanagedworkercapabilities.html#cfn-deadline-fleet-customermanagedworkercapabilities-acceleratorcount) + */ + override fun acceleratorCount(): Any? = unwrap(this).getAcceleratorCount() + + /** + * The total memory (MiB) for the customer managed worker capabilities. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-customermanagedworkercapabilities.html#cfn-deadline-fleet-customermanagedworkercapabilities-acceleratortotalmemorymib) + */ + override fun acceleratorTotalMemoryMiB(): Any? = unwrap(this).getAcceleratorTotalMemoryMiB() + + /** + * The accelerator types for the customer managed worker capabilities. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-customermanagedworkercapabilities.html#cfn-deadline-fleet-customermanagedworkercapabilities-acceleratortypes) + */ + override fun acceleratorTypes(): List = unwrap(this).getAcceleratorTypes() ?: + emptyList() + + /** + * The CPU architecture type for the customer managed worker capabilities. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-customermanagedworkercapabilities.html#cfn-deadline-fleet-customermanagedworkercapabilities-cpuarchitecturetype) + */ + override fun cpuArchitectureType(): String = unwrap(this).getCpuArchitectureType() + + /** + * Custom requirement ranges for customer managed worker capabilities. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-customermanagedworkercapabilities.html#cfn-deadline-fleet-customermanagedworkercapabilities-customamounts) + */ + override fun customAmounts(): Any? = unwrap(this).getCustomAmounts() + + /** + * Custom attributes for the customer manged worker capabilities. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-customermanagedworkercapabilities.html#cfn-deadline-fleet-customermanagedworkercapabilities-customattributes) + */ + override fun customAttributes(): Any? = unwrap(this).getCustomAttributes() + + /** + * The memory (MiB). + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-customermanagedworkercapabilities.html#cfn-deadline-fleet-customermanagedworkercapabilities-memorymib) + */ + override fun memoryMiB(): Any = unwrap(this).getMemoryMiB() + + /** + * The operating system (OS) family. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-customermanagedworkercapabilities.html#cfn-deadline-fleet-customermanagedworkercapabilities-osfamily) + */ + override fun osFamily(): String = unwrap(this).getOsFamily() + + /** + * The vCPU count for the customer manged worker capabilities. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-customermanagedworkercapabilities.html#cfn-deadline-fleet-customermanagedworkercapabilities-vcpucount) + */ + override fun vCpuCount(): Any = unwrap(this).getVCpuCount() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): + CustomerManagedWorkerCapabilitiesProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnFleet.CustomerManagedWorkerCapabilitiesProperty): + CustomerManagedWorkerCapabilitiesProperty = CdkObjectWrappers.wrap(cdkObject) as? + CustomerManagedWorkerCapabilitiesProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: CustomerManagedWorkerCapabilitiesProperty): + software.amazon.awscdk.services.deadline.CfnFleet.CustomerManagedWorkerCapabilitiesProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.deadline.CfnFleet.CustomerManagedWorkerCapabilitiesProperty + } + } + + /** + * Specifies the EBS volume. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * Ec2EbsVolumeProperty ec2EbsVolumeProperty = Ec2EbsVolumeProperty.builder() + * .iops(123) + * .sizeGiB(123) + * .throughputMiB(123) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-ec2ebsvolume.html) + */ + public interface Ec2EbsVolumeProperty { + /** + * The IOPS per volume. + * + * Default: - 3000 + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-ec2ebsvolume.html#cfn-deadline-fleet-ec2ebsvolume-iops) + */ + public fun iops(): Number? = unwrap(this).getIops() + + /** + * The EBS volume size in GiB. + * + * Default: - 250 + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-ec2ebsvolume.html#cfn-deadline-fleet-ec2ebsvolume-sizegib) + */ + public fun sizeGiB(): Number? = unwrap(this).getSizeGiB() + + /** + * The throughput per volume in MiB. + * + * Default: - 125 + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-ec2ebsvolume.html#cfn-deadline-fleet-ec2ebsvolume-throughputmib) + */ + public fun throughputMiB(): Number? = unwrap(this).getThroughputMiB() + + /** + * A builder for [Ec2EbsVolumeProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param iops The IOPS per volume. + */ + public fun iops(iops: Number) + + /** + * @param sizeGiB The EBS volume size in GiB. + */ + public fun sizeGiB(sizeGiB: Number) + + /** + * @param throughputMiB The throughput per volume in MiB. + */ + public fun throughputMiB(throughputMiB: Number) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.deadline.CfnFleet.Ec2EbsVolumeProperty.Builder = + software.amazon.awscdk.services.deadline.CfnFleet.Ec2EbsVolumeProperty.builder() + + /** + * @param iops The IOPS per volume. + */ + override fun iops(iops: Number) { + cdkBuilder.iops(iops) + } + + /** + * @param sizeGiB The EBS volume size in GiB. + */ + override fun sizeGiB(sizeGiB: Number) { + cdkBuilder.sizeGiB(sizeGiB) + } + + /** + * @param throughputMiB The throughput per volume in MiB. + */ + override fun throughputMiB(throughputMiB: Number) { + cdkBuilder.throughputMiB(throughputMiB) + } + + public fun build(): software.amazon.awscdk.services.deadline.CfnFleet.Ec2EbsVolumeProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.deadline.CfnFleet.Ec2EbsVolumeProperty, + ) : CdkObject(cdkObject), Ec2EbsVolumeProperty { + /** + * The IOPS per volume. + * + * Default: - 3000 + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-ec2ebsvolume.html#cfn-deadline-fleet-ec2ebsvolume-iops) + */ + override fun iops(): Number? = unwrap(this).getIops() + + /** + * The EBS volume size in GiB. + * + * Default: - 250 + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-ec2ebsvolume.html#cfn-deadline-fleet-ec2ebsvolume-sizegib) + */ + override fun sizeGiB(): Number? = unwrap(this).getSizeGiB() + + /** + * The throughput per volume in MiB. + * + * Default: - 125 + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-ec2ebsvolume.html#cfn-deadline-fleet-ec2ebsvolume-throughputmib) + */ + override fun throughputMiB(): Number? = unwrap(this).getThroughputMiB() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): Ec2EbsVolumeProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnFleet.Ec2EbsVolumeProperty): + Ec2EbsVolumeProperty = CdkObjectWrappers.wrap(cdkObject) as? Ec2EbsVolumeProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: Ec2EbsVolumeProperty): + software.amazon.awscdk.services.deadline.CfnFleet.Ec2EbsVolumeProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.deadline.CfnFleet.Ec2EbsVolumeProperty + } + } + + /** + * The fleet amount and attribute capabilities. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * FleetAmountCapabilityProperty fleetAmountCapabilityProperty = + * FleetAmountCapabilityProperty.builder() + * .min(123) + * .name("name") + * // the properties below are optional + * .max(123) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-fleetamountcapability.html) + */ + public interface FleetAmountCapabilityProperty { + /** + * The maximum amount of the fleet worker capability. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-fleetamountcapability.html#cfn-deadline-fleet-fleetamountcapability-max) + */ + public fun max(): Number? = unwrap(this).getMax() + + /** + * The minimum amount of fleet worker capability. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-fleetamountcapability.html#cfn-deadline-fleet-fleetamountcapability-min) + */ + public fun min(): Number + + /** + * The name of the fleet capability. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-fleetamountcapability.html#cfn-deadline-fleet-fleetamountcapability-name) + */ + public fun name(): String + + /** + * A builder for [FleetAmountCapabilityProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param max The maximum amount of the fleet worker capability. + */ + public fun max(max: Number) + + /** + * @param min The minimum amount of fleet worker capability. + */ + public fun min(min: Number) + + /** + * @param name The name of the fleet capability. + */ + public fun name(name: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.deadline.CfnFleet.FleetAmountCapabilityProperty.Builder = + software.amazon.awscdk.services.deadline.CfnFleet.FleetAmountCapabilityProperty.builder() + + /** + * @param max The maximum amount of the fleet worker capability. + */ + override fun max(max: Number) { + cdkBuilder.max(max) + } + + /** + * @param min The minimum amount of fleet worker capability. + */ + override fun min(min: Number) { + cdkBuilder.min(min) + } + + /** + * @param name The name of the fleet capability. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + public fun build(): + software.amazon.awscdk.services.deadline.CfnFleet.FleetAmountCapabilityProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.deadline.CfnFleet.FleetAmountCapabilityProperty, + ) : CdkObject(cdkObject), FleetAmountCapabilityProperty { + /** + * The maximum amount of the fleet worker capability. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-fleetamountcapability.html#cfn-deadline-fleet-fleetamountcapability-max) + */ + override fun max(): Number? = unwrap(this).getMax() + + /** + * The minimum amount of fleet worker capability. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-fleetamountcapability.html#cfn-deadline-fleet-fleetamountcapability-min) + */ + override fun min(): Number = unwrap(this).getMin() + + /** + * The name of the fleet capability. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-fleetamountcapability.html#cfn-deadline-fleet-fleetamountcapability-name) + */ + override fun name(): String = unwrap(this).getName() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): FleetAmountCapabilityProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnFleet.FleetAmountCapabilityProperty): + FleetAmountCapabilityProperty = CdkObjectWrappers.wrap(cdkObject) as? + FleetAmountCapabilityProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: FleetAmountCapabilityProperty): + software.amazon.awscdk.services.deadline.CfnFleet.FleetAmountCapabilityProperty = (wrapped + as CdkObject).cdkObject as + software.amazon.awscdk.services.deadline.CfnFleet.FleetAmountCapabilityProperty + } + } + + /** + * Defines the fleet's capability name, minimum, and maximum. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * FleetAttributeCapabilityProperty fleetAttributeCapabilityProperty = + * FleetAttributeCapabilityProperty.builder() + * .name("name") + * .values(List.of("values")) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-fleetattributecapability.html) + */ + public interface FleetAttributeCapabilityProperty { + /** + * The name of the fleet attribute capability for the worker. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-fleetattributecapability.html#cfn-deadline-fleet-fleetattributecapability-name) + */ + public fun name(): String + + /** + * The number of fleet attribute capabilities. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-fleetattributecapability.html#cfn-deadline-fleet-fleetattributecapability-values) + */ + public fun values(): List + + /** + * A builder for [FleetAttributeCapabilityProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param name The name of the fleet attribute capability for the worker. + */ + public fun name(name: String) + + /** + * @param values The number of fleet attribute capabilities. + */ + public fun values(values: List) + + /** + * @param values The number of fleet attribute capabilities. + */ + public fun values(vararg values: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.deadline.CfnFleet.FleetAttributeCapabilityProperty.Builder + = + software.amazon.awscdk.services.deadline.CfnFleet.FleetAttributeCapabilityProperty.builder() + + /** + * @param name The name of the fleet attribute capability for the worker. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + /** + * @param values The number of fleet attribute capabilities. + */ + override fun values(values: List) { + cdkBuilder.values(values) + } + + /** + * @param values The number of fleet attribute capabilities. + */ + override fun values(vararg values: String): Unit = values(values.toList()) + + public fun build(): + software.amazon.awscdk.services.deadline.CfnFleet.FleetAttributeCapabilityProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.deadline.CfnFleet.FleetAttributeCapabilityProperty, + ) : CdkObject(cdkObject), FleetAttributeCapabilityProperty { + /** + * The name of the fleet attribute capability for the worker. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-fleetattributecapability.html#cfn-deadline-fleet-fleetattributecapability-name) + */ + override fun name(): String = unwrap(this).getName() + + /** + * The number of fleet attribute capabilities. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-fleetattributecapability.html#cfn-deadline-fleet-fleetattributecapability-values) + */ + override fun values(): List = unwrap(this).getValues() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): FleetAttributeCapabilityProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnFleet.FleetAttributeCapabilityProperty): + FleetAttributeCapabilityProperty = CdkObjectWrappers.wrap(cdkObject) as? + FleetAttributeCapabilityProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: FleetAttributeCapabilityProperty): + software.amazon.awscdk.services.deadline.CfnFleet.FleetAttributeCapabilityProperty = + (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.deadline.CfnFleet.FleetAttributeCapabilityProperty + } + } + + /** + * The amounts and attributes of fleets. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * FleetCapabilitiesProperty fleetCapabilitiesProperty = FleetCapabilitiesProperty.builder() + * .amounts(List.of(FleetAmountCapabilityProperty.builder() + * .min(123) + * .name("name") + * // the properties below are optional + * .max(123) + * .build())) + * .attributes(List.of(FleetAttributeCapabilityProperty.builder() + * .name("name") + * .values(List.of("values")) + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-fleetcapabilities.html) + */ + public interface FleetCapabilitiesProperty { + /** + * Amount capabilities of the fleet. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-fleetcapabilities.html#cfn-deadline-fleet-fleetcapabilities-amounts) + */ + public fun amounts(): Any? = unwrap(this).getAmounts() + + /** + * Attribute capabilities of the fleet. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-fleetcapabilities.html#cfn-deadline-fleet-fleetcapabilities-attributes) + */ + public fun attributes(): Any? = unwrap(this).getAttributes() + + /** + * A builder for [FleetCapabilitiesProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param amounts Amount capabilities of the fleet. + */ + public fun amounts(amounts: IResolvable) + + /** + * @param amounts Amount capabilities of the fleet. + */ + public fun amounts(amounts: List) + + /** + * @param amounts Amount capabilities of the fleet. + */ + public fun amounts(vararg amounts: Any) + + /** + * @param attributes Attribute capabilities of the fleet. + */ + public fun attributes(attributes: IResolvable) + + /** + * @param attributes Attribute capabilities of the fleet. + */ + public fun attributes(attributes: List) + + /** + * @param attributes Attribute capabilities of the fleet. + */ + public fun attributes(vararg attributes: Any) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.deadline.CfnFleet.FleetCapabilitiesProperty.Builder = + software.amazon.awscdk.services.deadline.CfnFleet.FleetCapabilitiesProperty.builder() + + /** + * @param amounts Amount capabilities of the fleet. + */ + override fun amounts(amounts: IResolvable) { + cdkBuilder.amounts(amounts.let(IResolvable::unwrap)) + } + + /** + * @param amounts Amount capabilities of the fleet. + */ + override fun amounts(amounts: List) { + cdkBuilder.amounts(amounts.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param amounts Amount capabilities of the fleet. + */ + override fun amounts(vararg amounts: Any): Unit = amounts(amounts.toList()) + + /** + * @param attributes Attribute capabilities of the fleet. + */ + override fun attributes(attributes: IResolvable) { + cdkBuilder.attributes(attributes.let(IResolvable::unwrap)) + } + + /** + * @param attributes Attribute capabilities of the fleet. + */ + override fun attributes(attributes: List) { + cdkBuilder.attributes(attributes.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param attributes Attribute capabilities of the fleet. + */ + override fun attributes(vararg attributes: Any): Unit = attributes(attributes.toList()) + + public fun build(): + software.amazon.awscdk.services.deadline.CfnFleet.FleetCapabilitiesProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.deadline.CfnFleet.FleetCapabilitiesProperty, + ) : CdkObject(cdkObject), FleetCapabilitiesProperty { + /** + * Amount capabilities of the fleet. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-fleetcapabilities.html#cfn-deadline-fleet-fleetcapabilities-amounts) + */ + override fun amounts(): Any? = unwrap(this).getAmounts() + + /** + * Attribute capabilities of the fleet. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-fleetcapabilities.html#cfn-deadline-fleet-fleetcapabilities-attributes) + */ + override fun attributes(): Any? = unwrap(this).getAttributes() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): FleetCapabilitiesProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnFleet.FleetCapabilitiesProperty): + FleetCapabilitiesProperty = CdkObjectWrappers.wrap(cdkObject) as? + FleetCapabilitiesProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: FleetCapabilitiesProperty): + software.amazon.awscdk.services.deadline.CfnFleet.FleetCapabilitiesProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.deadline.CfnFleet.FleetCapabilitiesProperty + } + } + + /** + * Fleet configuration details. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * FleetConfigurationProperty fleetConfigurationProperty = FleetConfigurationProperty.builder() + * .customerManaged(CustomerManagedFleetConfigurationProperty.builder() + * .mode("mode") + * .workerCapabilities(CustomerManagedWorkerCapabilitiesProperty.builder() + * .cpuArchitectureType("cpuArchitectureType") + * .memoryMiB(MemoryMiBRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build()) + * .osFamily("osFamily") + * .vCpuCount(VCpuCountRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build()) + * // the properties below are optional + * .acceleratorCount(AcceleratorCountRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build()) + * .acceleratorTotalMemoryMiB(AcceleratorTotalMemoryMiBRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build()) + * .acceleratorTypes(List.of("acceleratorTypes")) + * .customAmounts(List.of(FleetAmountCapabilityProperty.builder() + * .min(123) + * .name("name") + * // the properties below are optional + * .max(123) + * .build())) + * .customAttributes(List.of(FleetAttributeCapabilityProperty.builder() + * .name("name") + * .values(List.of("values")) + * .build())) + * .build()) + * // the properties below are optional + * .storageProfileId("storageProfileId") + * .build()) + * .serviceManagedEc2(ServiceManagedEc2FleetConfigurationProperty.builder() + * .instanceCapabilities(ServiceManagedEc2InstanceCapabilitiesProperty.builder() + * .cpuArchitectureType("cpuArchitectureType") + * .memoryMiB(MemoryMiBRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build()) + * .osFamily("osFamily") + * .vCpuCount(VCpuCountRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build()) + * // the properties below are optional + * .allowedInstanceTypes(List.of("allowedInstanceTypes")) + * .customAmounts(List.of(FleetAmountCapabilityProperty.builder() + * .min(123) + * .name("name") + * // the properties below are optional + * .max(123) + * .build())) + * .customAttributes(List.of(FleetAttributeCapabilityProperty.builder() + * .name("name") + * .values(List.of("values")) + * .build())) + * .excludedInstanceTypes(List.of("excludedInstanceTypes")) + * .rootEbsVolume(Ec2EbsVolumeProperty.builder() + * .iops(123) + * .sizeGiB(123) + * .throughputMiB(123) + * .build()) + * .build()) + * .instanceMarketOptions(ServiceManagedEc2InstanceMarketOptionsProperty.builder() + * .type("type") + * .build()) + * .build()) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-fleetconfiguration.html) + */ + public interface FleetConfigurationProperty { + /** + * The customer managed fleets within a fleet configuration. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-fleetconfiguration.html#cfn-deadline-fleet-fleetconfiguration-customermanaged) + */ + public fun customerManaged(): Any? = unwrap(this).getCustomerManaged() + + /** + * The service managed Amazon EC2 instances for a fleet configuration. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-fleetconfiguration.html#cfn-deadline-fleet-fleetconfiguration-servicemanagedec2) + */ + public fun serviceManagedEc2(): Any? = unwrap(this).getServiceManagedEc2() + + /** + * A builder for [FleetConfigurationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param customerManaged The customer managed fleets within a fleet configuration. + */ + public fun customerManaged(customerManaged: IResolvable) + + /** + * @param customerManaged The customer managed fleets within a fleet configuration. + */ + public fun customerManaged(customerManaged: CustomerManagedFleetConfigurationProperty) + + /** + * @param customerManaged The customer managed fleets within a fleet configuration. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("ddec4bbb345e9373764a12a0fc53ab3e26fbab395d8d1e51f9d41881e5373417") + public + fun customerManaged(customerManaged: CustomerManagedFleetConfigurationProperty.Builder.() -> Unit) + + /** + * @param serviceManagedEc2 The service managed Amazon EC2 instances for a fleet + * configuration. + */ + public fun serviceManagedEc2(serviceManagedEc2: IResolvable) + + /** + * @param serviceManagedEc2 The service managed Amazon EC2 instances for a fleet + * configuration. + */ + public fun serviceManagedEc2(serviceManagedEc2: ServiceManagedEc2FleetConfigurationProperty) + + /** + * @param serviceManagedEc2 The service managed Amazon EC2 instances for a fleet + * configuration. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("cc30bf93791ae25af794a0b740a5934596911c1d7543387797228e2cb46795b9") + public + fun serviceManagedEc2(serviceManagedEc2: ServiceManagedEc2FleetConfigurationProperty.Builder.() -> Unit) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.deadline.CfnFleet.FleetConfigurationProperty.Builder = + software.amazon.awscdk.services.deadline.CfnFleet.FleetConfigurationProperty.builder() + + /** + * @param customerManaged The customer managed fleets within a fleet configuration. + */ + override fun customerManaged(customerManaged: IResolvable) { + cdkBuilder.customerManaged(customerManaged.let(IResolvable::unwrap)) + } + + /** + * @param customerManaged The customer managed fleets within a fleet configuration. + */ + override fun customerManaged(customerManaged: CustomerManagedFleetConfigurationProperty) { + cdkBuilder.customerManaged(customerManaged.let(CustomerManagedFleetConfigurationProperty::unwrap)) + } + + /** + * @param customerManaged The customer managed fleets within a fleet configuration. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("ddec4bbb345e9373764a12a0fc53ab3e26fbab395d8d1e51f9d41881e5373417") + override + fun customerManaged(customerManaged: CustomerManagedFleetConfigurationProperty.Builder.() -> Unit): + Unit = customerManaged(CustomerManagedFleetConfigurationProperty(customerManaged)) + + /** + * @param serviceManagedEc2 The service managed Amazon EC2 instances for a fleet + * configuration. + */ + override fun serviceManagedEc2(serviceManagedEc2: IResolvable) { + cdkBuilder.serviceManagedEc2(serviceManagedEc2.let(IResolvable::unwrap)) + } + + /** + * @param serviceManagedEc2 The service managed Amazon EC2 instances for a fleet + * configuration. + */ + override + fun serviceManagedEc2(serviceManagedEc2: ServiceManagedEc2FleetConfigurationProperty) { + cdkBuilder.serviceManagedEc2(serviceManagedEc2.let(ServiceManagedEc2FleetConfigurationProperty::unwrap)) + } + + /** + * @param serviceManagedEc2 The service managed Amazon EC2 instances for a fleet + * configuration. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("cc30bf93791ae25af794a0b740a5934596911c1d7543387797228e2cb46795b9") + override + fun serviceManagedEc2(serviceManagedEc2: ServiceManagedEc2FleetConfigurationProperty.Builder.() -> Unit): + Unit = serviceManagedEc2(ServiceManagedEc2FleetConfigurationProperty(serviceManagedEc2)) + + public fun build(): + software.amazon.awscdk.services.deadline.CfnFleet.FleetConfigurationProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.deadline.CfnFleet.FleetConfigurationProperty, + ) : CdkObject(cdkObject), FleetConfigurationProperty { + /** + * The customer managed fleets within a fleet configuration. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-fleetconfiguration.html#cfn-deadline-fleet-fleetconfiguration-customermanaged) + */ + override fun customerManaged(): Any? = unwrap(this).getCustomerManaged() + + /** + * The service managed Amazon EC2 instances for a fleet configuration. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-fleetconfiguration.html#cfn-deadline-fleet-fleetconfiguration-servicemanagedec2) + */ + override fun serviceManagedEc2(): Any? = unwrap(this).getServiceManagedEc2() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): FleetConfigurationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnFleet.FleetConfigurationProperty): + FleetConfigurationProperty = CdkObjectWrappers.wrap(cdkObject) as? + FleetConfigurationProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: FleetConfigurationProperty): + software.amazon.awscdk.services.deadline.CfnFleet.FleetConfigurationProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.deadline.CfnFleet.FleetConfigurationProperty + } + } + + /** + * The range of memory in MiB. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * MemoryMiBRangeProperty memoryMiBRangeProperty = MemoryMiBRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-memorymibrange.html) + */ + public interface MemoryMiBRangeProperty { + /** + * The maximum amount of memory (in MiB). + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-memorymibrange.html#cfn-deadline-fleet-memorymibrange-max) + */ + public fun max(): Number? = unwrap(this).getMax() + + /** + * The minimum amount of memory (in MiB). + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-memorymibrange.html#cfn-deadline-fleet-memorymibrange-min) + */ + public fun min(): Number + + /** + * A builder for [MemoryMiBRangeProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param max The maximum amount of memory (in MiB). + */ + public fun max(max: Number) + + /** + * @param min The minimum amount of memory (in MiB). + */ + public fun min(min: Number) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.deadline.CfnFleet.MemoryMiBRangeProperty.Builder = + software.amazon.awscdk.services.deadline.CfnFleet.MemoryMiBRangeProperty.builder() + + /** + * @param max The maximum amount of memory (in MiB). + */ + override fun max(max: Number) { + cdkBuilder.max(max) + } + + /** + * @param min The minimum amount of memory (in MiB). + */ + override fun min(min: Number) { + cdkBuilder.min(min) + } + + public fun build(): software.amazon.awscdk.services.deadline.CfnFleet.MemoryMiBRangeProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.deadline.CfnFleet.MemoryMiBRangeProperty, + ) : CdkObject(cdkObject), MemoryMiBRangeProperty { + /** + * The maximum amount of memory (in MiB). + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-memorymibrange.html#cfn-deadline-fleet-memorymibrange-max) + */ + override fun max(): Number? = unwrap(this).getMax() + + /** + * The minimum amount of memory (in MiB). + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-memorymibrange.html#cfn-deadline-fleet-memorymibrange-min) + */ + override fun min(): Number = unwrap(this).getMin() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): MemoryMiBRangeProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnFleet.MemoryMiBRangeProperty): + MemoryMiBRangeProperty = CdkObjectWrappers.wrap(cdkObject) as? MemoryMiBRangeProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: MemoryMiBRangeProperty): + software.amazon.awscdk.services.deadline.CfnFleet.MemoryMiBRangeProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.deadline.CfnFleet.MemoryMiBRangeProperty + } + } + + /** + * The configuration details for a service managed Amazon EC2 fleet. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * ServiceManagedEc2FleetConfigurationProperty serviceManagedEc2FleetConfigurationProperty = + * ServiceManagedEc2FleetConfigurationProperty.builder() + * .instanceCapabilities(ServiceManagedEc2InstanceCapabilitiesProperty.builder() + * .cpuArchitectureType("cpuArchitectureType") + * .memoryMiB(MemoryMiBRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build()) + * .osFamily("osFamily") + * .vCpuCount(VCpuCountRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build()) + * // the properties below are optional + * .allowedInstanceTypes(List.of("allowedInstanceTypes")) + * .customAmounts(List.of(FleetAmountCapabilityProperty.builder() + * .min(123) + * .name("name") + * // the properties below are optional + * .max(123) + * .build())) + * .customAttributes(List.of(FleetAttributeCapabilityProperty.builder() + * .name("name") + * .values(List.of("values")) + * .build())) + * .excludedInstanceTypes(List.of("excludedInstanceTypes")) + * .rootEbsVolume(Ec2EbsVolumeProperty.builder() + * .iops(123) + * .sizeGiB(123) + * .throughputMiB(123) + * .build()) + * .build()) + * .instanceMarketOptions(ServiceManagedEc2InstanceMarketOptionsProperty.builder() + * .type("type") + * .build()) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-servicemanagedec2fleetconfiguration.html) + */ + public interface ServiceManagedEc2FleetConfigurationProperty { + /** + * The Amazon EC2 instance capabilities. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-servicemanagedec2fleetconfiguration.html#cfn-deadline-fleet-servicemanagedec2fleetconfiguration-instancecapabilities) + */ + public fun instanceCapabilities(): Any + + /** + * The Amazon EC2 market type. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-servicemanagedec2fleetconfiguration.html#cfn-deadline-fleet-servicemanagedec2fleetconfiguration-instancemarketoptions) + */ + public fun instanceMarketOptions(): Any + + /** + * A builder for [ServiceManagedEc2FleetConfigurationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param instanceCapabilities The Amazon EC2 instance capabilities. + */ + public fun instanceCapabilities(instanceCapabilities: IResolvable) + + /** + * @param instanceCapabilities The Amazon EC2 instance capabilities. + */ + public + fun instanceCapabilities(instanceCapabilities: ServiceManagedEc2InstanceCapabilitiesProperty) + + /** + * @param instanceCapabilities The Amazon EC2 instance capabilities. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("cd5bd0a3d35b14af621c156eed724e4c5e442a3bd731ac7f1c655392ed80e932") + public + fun instanceCapabilities(instanceCapabilities: ServiceManagedEc2InstanceCapabilitiesProperty.Builder.() -> Unit) + + /** + * @param instanceMarketOptions The Amazon EC2 market type. + */ + public fun instanceMarketOptions(instanceMarketOptions: IResolvable) + + /** + * @param instanceMarketOptions The Amazon EC2 market type. + */ + public + fun instanceMarketOptions(instanceMarketOptions: ServiceManagedEc2InstanceMarketOptionsProperty) + + /** + * @param instanceMarketOptions The Amazon EC2 market type. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("7ccca052bddc943b20eef3f5b5ff5ed066efa9fcd9acb4a31fa9fc36c3728ef3") + public + fun instanceMarketOptions(instanceMarketOptions: ServiceManagedEc2InstanceMarketOptionsProperty.Builder.() -> Unit) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.deadline.CfnFleet.ServiceManagedEc2FleetConfigurationProperty.Builder + = + software.amazon.awscdk.services.deadline.CfnFleet.ServiceManagedEc2FleetConfigurationProperty.builder() + + /** + * @param instanceCapabilities The Amazon EC2 instance capabilities. + */ + override fun instanceCapabilities(instanceCapabilities: IResolvable) { + cdkBuilder.instanceCapabilities(instanceCapabilities.let(IResolvable::unwrap)) + } + + /** + * @param instanceCapabilities The Amazon EC2 instance capabilities. + */ + override + fun instanceCapabilities(instanceCapabilities: ServiceManagedEc2InstanceCapabilitiesProperty) { + cdkBuilder.instanceCapabilities(instanceCapabilities.let(ServiceManagedEc2InstanceCapabilitiesProperty::unwrap)) + } + + /** + * @param instanceCapabilities The Amazon EC2 instance capabilities. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("cd5bd0a3d35b14af621c156eed724e4c5e442a3bd731ac7f1c655392ed80e932") + override + fun instanceCapabilities(instanceCapabilities: ServiceManagedEc2InstanceCapabilitiesProperty.Builder.() -> Unit): + Unit = + instanceCapabilities(ServiceManagedEc2InstanceCapabilitiesProperty(instanceCapabilities)) + + /** + * @param instanceMarketOptions The Amazon EC2 market type. + */ + override fun instanceMarketOptions(instanceMarketOptions: IResolvable) { + cdkBuilder.instanceMarketOptions(instanceMarketOptions.let(IResolvable::unwrap)) + } + + /** + * @param instanceMarketOptions The Amazon EC2 market type. + */ + override + fun instanceMarketOptions(instanceMarketOptions: ServiceManagedEc2InstanceMarketOptionsProperty) { + cdkBuilder.instanceMarketOptions(instanceMarketOptions.let(ServiceManagedEc2InstanceMarketOptionsProperty::unwrap)) + } + + /** + * @param instanceMarketOptions The Amazon EC2 market type. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("7ccca052bddc943b20eef3f5b5ff5ed066efa9fcd9acb4a31fa9fc36c3728ef3") + override + fun instanceMarketOptions(instanceMarketOptions: ServiceManagedEc2InstanceMarketOptionsProperty.Builder.() -> Unit): + Unit = + instanceMarketOptions(ServiceManagedEc2InstanceMarketOptionsProperty(instanceMarketOptions)) + + public fun build(): + software.amazon.awscdk.services.deadline.CfnFleet.ServiceManagedEc2FleetConfigurationProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.deadline.CfnFleet.ServiceManagedEc2FleetConfigurationProperty, + ) : CdkObject(cdkObject), ServiceManagedEc2FleetConfigurationProperty { + /** + * The Amazon EC2 instance capabilities. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-servicemanagedec2fleetconfiguration.html#cfn-deadline-fleet-servicemanagedec2fleetconfiguration-instancecapabilities) + */ + override fun instanceCapabilities(): Any = unwrap(this).getInstanceCapabilities() + + /** + * The Amazon EC2 market type. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-servicemanagedec2fleetconfiguration.html#cfn-deadline-fleet-servicemanagedec2fleetconfiguration-instancemarketoptions) + */ + override fun instanceMarketOptions(): Any = unwrap(this).getInstanceMarketOptions() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): + ServiceManagedEc2FleetConfigurationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnFleet.ServiceManagedEc2FleetConfigurationProperty): + ServiceManagedEc2FleetConfigurationProperty = CdkObjectWrappers.wrap(cdkObject) as? + ServiceManagedEc2FleetConfigurationProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: ServiceManagedEc2FleetConfigurationProperty): + software.amazon.awscdk.services.deadline.CfnFleet.ServiceManagedEc2FleetConfigurationProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.deadline.CfnFleet.ServiceManagedEc2FleetConfigurationProperty + } + } + + /** + * The Amazon EC2 instance capabilities. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * ServiceManagedEc2InstanceCapabilitiesProperty serviceManagedEc2InstanceCapabilitiesProperty = + * ServiceManagedEc2InstanceCapabilitiesProperty.builder() + * .cpuArchitectureType("cpuArchitectureType") + * .memoryMiB(MemoryMiBRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build()) + * .osFamily("osFamily") + * .vCpuCount(VCpuCountRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build()) + * // the properties below are optional + * .allowedInstanceTypes(List.of("allowedInstanceTypes")) + * .customAmounts(List.of(FleetAmountCapabilityProperty.builder() + * .min(123) + * .name("name") + * // the properties below are optional + * .max(123) + * .build())) + * .customAttributes(List.of(FleetAttributeCapabilityProperty.builder() + * .name("name") + * .values(List.of("values")) + * .build())) + * .excludedInstanceTypes(List.of("excludedInstanceTypes")) + * .rootEbsVolume(Ec2EbsVolumeProperty.builder() + * .iops(123) + * .sizeGiB(123) + * .throughputMiB(123) + * .build()) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-servicemanagedec2instancecapabilities.html) + */ + public interface ServiceManagedEc2InstanceCapabilitiesProperty { + /** + * The allowable Amazon EC2 instance types. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-servicemanagedec2instancecapabilities.html#cfn-deadline-fleet-servicemanagedec2instancecapabilities-allowedinstancetypes) + */ + public fun allowedInstanceTypes(): List = unwrap(this).getAllowedInstanceTypes() ?: + emptyList() + + /** + * The CPU architecture type. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-servicemanagedec2instancecapabilities.html#cfn-deadline-fleet-servicemanagedec2instancecapabilities-cpuarchitecturetype) + */ + public fun cpuArchitectureType(): String + + /** + * The custom capability amounts to require for instances in this fleet. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-servicemanagedec2instancecapabilities.html#cfn-deadline-fleet-servicemanagedec2instancecapabilities-customamounts) + */ + public fun customAmounts(): Any? = unwrap(this).getCustomAmounts() + + /** + * The custom capability attributes to require for instances in this fleet. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-servicemanagedec2instancecapabilities.html#cfn-deadline-fleet-servicemanagedec2instancecapabilities-customattributes) + */ + public fun customAttributes(): Any? = unwrap(this).getCustomAttributes() + + /** + * The instance types to exclude from the fleet. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-servicemanagedec2instancecapabilities.html#cfn-deadline-fleet-servicemanagedec2instancecapabilities-excludedinstancetypes) + */ + public fun excludedInstanceTypes(): List = unwrap(this).getExcludedInstanceTypes() ?: + emptyList() + + /** + * The memory, as MiB, for the Amazon EC2 instance type. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-servicemanagedec2instancecapabilities.html#cfn-deadline-fleet-servicemanagedec2instancecapabilities-memorymib) + */ + public fun memoryMiB(): Any + + /** + * The operating system (OS) family. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-servicemanagedec2instancecapabilities.html#cfn-deadline-fleet-servicemanagedec2instancecapabilities-osfamily) + */ + public fun osFamily(): String + + /** + * The root EBS volume. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-servicemanagedec2instancecapabilities.html#cfn-deadline-fleet-servicemanagedec2instancecapabilities-rootebsvolume) + */ + public fun rootEbsVolume(): Any? = unwrap(this).getRootEbsVolume() + + /** + * The amount of vCPU to require for instances in this fleet. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-servicemanagedec2instancecapabilities.html#cfn-deadline-fleet-servicemanagedec2instancecapabilities-vcpucount) + */ + public fun vCpuCount(): Any + + /** + * A builder for [ServiceManagedEc2InstanceCapabilitiesProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param allowedInstanceTypes The allowable Amazon EC2 instance types. + */ + public fun allowedInstanceTypes(allowedInstanceTypes: List) + + /** + * @param allowedInstanceTypes The allowable Amazon EC2 instance types. + */ + public fun allowedInstanceTypes(vararg allowedInstanceTypes: String) + + /** + * @param cpuArchitectureType The CPU architecture type. + */ + public fun cpuArchitectureType(cpuArchitectureType: String) + + /** + * @param customAmounts The custom capability amounts to require for instances in this fleet. + */ + public fun customAmounts(customAmounts: IResolvable) + + /** + * @param customAmounts The custom capability amounts to require for instances in this fleet. + */ + public fun customAmounts(customAmounts: List) + + /** + * @param customAmounts The custom capability amounts to require for instances in this fleet. + */ + public fun customAmounts(vararg customAmounts: Any) + + /** + * @param customAttributes The custom capability attributes to require for instances in this + * fleet. + */ + public fun customAttributes(customAttributes: IResolvable) + + /** + * @param customAttributes The custom capability attributes to require for instances in this + * fleet. + */ + public fun customAttributes(customAttributes: List) + + /** + * @param customAttributes The custom capability attributes to require for instances in this + * fleet. + */ + public fun customAttributes(vararg customAttributes: Any) + + /** + * @param excludedInstanceTypes The instance types to exclude from the fleet. + */ + public fun excludedInstanceTypes(excludedInstanceTypes: List) + + /** + * @param excludedInstanceTypes The instance types to exclude from the fleet. + */ + public fun excludedInstanceTypes(vararg excludedInstanceTypes: String) + + /** + * @param memoryMiB The memory, as MiB, for the Amazon EC2 instance type. + */ + public fun memoryMiB(memoryMiB: IResolvable) + + /** + * @param memoryMiB The memory, as MiB, for the Amazon EC2 instance type. + */ + public fun memoryMiB(memoryMiB: MemoryMiBRangeProperty) + + /** + * @param memoryMiB The memory, as MiB, for the Amazon EC2 instance type. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("c185696e72372d8229263a44b65c72f54175fcadb42c545982190cca8a68ae11") + public fun memoryMiB(memoryMiB: MemoryMiBRangeProperty.Builder.() -> Unit) + + /** + * @param osFamily The operating system (OS) family. + */ + public fun osFamily(osFamily: String) + + /** + * @param rootEbsVolume The root EBS volume. + */ + public fun rootEbsVolume(rootEbsVolume: IResolvable) + + /** + * @param rootEbsVolume The root EBS volume. + */ + public fun rootEbsVolume(rootEbsVolume: Ec2EbsVolumeProperty) + + /** + * @param rootEbsVolume The root EBS volume. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("fb0296484e094fed38acf130651e18c97654fd76a689f8494777c533e4f66901") + public fun rootEbsVolume(rootEbsVolume: Ec2EbsVolumeProperty.Builder.() -> Unit) + + /** + * @param vCpuCount The amount of vCPU to require for instances in this fleet. + */ + public fun vCpuCount(vCpuCount: IResolvable) + + /** + * @param vCpuCount The amount of vCPU to require for instances in this fleet. + */ + public fun vCpuCount(vCpuCount: VCpuCountRangeProperty) + + /** + * @param vCpuCount The amount of vCPU to require for instances in this fleet. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("36c3a08e6cfcc6919d2214b94f26c0d4cec3ef83634e10438de5467972ec4eb3") + public fun vCpuCount(vCpuCount: VCpuCountRangeProperty.Builder.() -> Unit) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.deadline.CfnFleet.ServiceManagedEc2InstanceCapabilitiesProperty.Builder + = + software.amazon.awscdk.services.deadline.CfnFleet.ServiceManagedEc2InstanceCapabilitiesProperty.builder() + + /** + * @param allowedInstanceTypes The allowable Amazon EC2 instance types. + */ + override fun allowedInstanceTypes(allowedInstanceTypes: List) { + cdkBuilder.allowedInstanceTypes(allowedInstanceTypes) + } + + /** + * @param allowedInstanceTypes The allowable Amazon EC2 instance types. + */ + override fun allowedInstanceTypes(vararg allowedInstanceTypes: String): Unit = + allowedInstanceTypes(allowedInstanceTypes.toList()) + + /** + * @param cpuArchitectureType The CPU architecture type. + */ + override fun cpuArchitectureType(cpuArchitectureType: String) { + cdkBuilder.cpuArchitectureType(cpuArchitectureType) + } + + /** + * @param customAmounts The custom capability amounts to require for instances in this fleet. + */ + override fun customAmounts(customAmounts: IResolvable) { + cdkBuilder.customAmounts(customAmounts.let(IResolvable::unwrap)) + } + + /** + * @param customAmounts The custom capability amounts to require for instances in this fleet. + */ + override fun customAmounts(customAmounts: List) { + cdkBuilder.customAmounts(customAmounts.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param customAmounts The custom capability amounts to require for instances in this fleet. + */ + override fun customAmounts(vararg customAmounts: Any): Unit = + customAmounts(customAmounts.toList()) + + /** + * @param customAttributes The custom capability attributes to require for instances in this + * fleet. + */ + override fun customAttributes(customAttributes: IResolvable) { + cdkBuilder.customAttributes(customAttributes.let(IResolvable::unwrap)) + } + + /** + * @param customAttributes The custom capability attributes to require for instances in this + * fleet. + */ + override fun customAttributes(customAttributes: List) { + cdkBuilder.customAttributes(customAttributes.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param customAttributes The custom capability attributes to require for instances in this + * fleet. + */ + override fun customAttributes(vararg customAttributes: Any): Unit = + customAttributes(customAttributes.toList()) + + /** + * @param excludedInstanceTypes The instance types to exclude from the fleet. + */ + override fun excludedInstanceTypes(excludedInstanceTypes: List) { + cdkBuilder.excludedInstanceTypes(excludedInstanceTypes) + } + + /** + * @param excludedInstanceTypes The instance types to exclude from the fleet. + */ + override fun excludedInstanceTypes(vararg excludedInstanceTypes: String): Unit = + excludedInstanceTypes(excludedInstanceTypes.toList()) + + /** + * @param memoryMiB The memory, as MiB, for the Amazon EC2 instance type. + */ + override fun memoryMiB(memoryMiB: IResolvable) { + cdkBuilder.memoryMiB(memoryMiB.let(IResolvable::unwrap)) + } + + /** + * @param memoryMiB The memory, as MiB, for the Amazon EC2 instance type. + */ + override fun memoryMiB(memoryMiB: MemoryMiBRangeProperty) { + cdkBuilder.memoryMiB(memoryMiB.let(MemoryMiBRangeProperty::unwrap)) + } + + /** + * @param memoryMiB The memory, as MiB, for the Amazon EC2 instance type. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("c185696e72372d8229263a44b65c72f54175fcadb42c545982190cca8a68ae11") + override fun memoryMiB(memoryMiB: MemoryMiBRangeProperty.Builder.() -> Unit): Unit = + memoryMiB(MemoryMiBRangeProperty(memoryMiB)) + + /** + * @param osFamily The operating system (OS) family. + */ + override fun osFamily(osFamily: String) { + cdkBuilder.osFamily(osFamily) + } + + /** + * @param rootEbsVolume The root EBS volume. + */ + override fun rootEbsVolume(rootEbsVolume: IResolvable) { + cdkBuilder.rootEbsVolume(rootEbsVolume.let(IResolvable::unwrap)) + } + + /** + * @param rootEbsVolume The root EBS volume. + */ + override fun rootEbsVolume(rootEbsVolume: Ec2EbsVolumeProperty) { + cdkBuilder.rootEbsVolume(rootEbsVolume.let(Ec2EbsVolumeProperty::unwrap)) + } + + /** + * @param rootEbsVolume The root EBS volume. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("fb0296484e094fed38acf130651e18c97654fd76a689f8494777c533e4f66901") + override fun rootEbsVolume(rootEbsVolume: Ec2EbsVolumeProperty.Builder.() -> Unit): Unit = + rootEbsVolume(Ec2EbsVolumeProperty(rootEbsVolume)) + + /** + * @param vCpuCount The amount of vCPU to require for instances in this fleet. + */ + override fun vCpuCount(vCpuCount: IResolvable) { + cdkBuilder.vCpuCount(vCpuCount.let(IResolvable::unwrap)) + } + + /** + * @param vCpuCount The amount of vCPU to require for instances in this fleet. + */ + override fun vCpuCount(vCpuCount: VCpuCountRangeProperty) { + cdkBuilder.vCpuCount(vCpuCount.let(VCpuCountRangeProperty::unwrap)) + } + + /** + * @param vCpuCount The amount of vCPU to require for instances in this fleet. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("36c3a08e6cfcc6919d2214b94f26c0d4cec3ef83634e10438de5467972ec4eb3") + override fun vCpuCount(vCpuCount: VCpuCountRangeProperty.Builder.() -> Unit): Unit = + vCpuCount(VCpuCountRangeProperty(vCpuCount)) + + public fun build(): + software.amazon.awscdk.services.deadline.CfnFleet.ServiceManagedEc2InstanceCapabilitiesProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.deadline.CfnFleet.ServiceManagedEc2InstanceCapabilitiesProperty, + ) : CdkObject(cdkObject), ServiceManagedEc2InstanceCapabilitiesProperty { + /** + * The allowable Amazon EC2 instance types. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-servicemanagedec2instancecapabilities.html#cfn-deadline-fleet-servicemanagedec2instancecapabilities-allowedinstancetypes) + */ + override fun allowedInstanceTypes(): List = unwrap(this).getAllowedInstanceTypes() ?: + emptyList() + + /** + * The CPU architecture type. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-servicemanagedec2instancecapabilities.html#cfn-deadline-fleet-servicemanagedec2instancecapabilities-cpuarchitecturetype) + */ + override fun cpuArchitectureType(): String = unwrap(this).getCpuArchitectureType() + + /** + * The custom capability amounts to require for instances in this fleet. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-servicemanagedec2instancecapabilities.html#cfn-deadline-fleet-servicemanagedec2instancecapabilities-customamounts) + */ + override fun customAmounts(): Any? = unwrap(this).getCustomAmounts() + + /** + * The custom capability attributes to require for instances in this fleet. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-servicemanagedec2instancecapabilities.html#cfn-deadline-fleet-servicemanagedec2instancecapabilities-customattributes) + */ + override fun customAttributes(): Any? = unwrap(this).getCustomAttributes() + + /** + * The instance types to exclude from the fleet. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-servicemanagedec2instancecapabilities.html#cfn-deadline-fleet-servicemanagedec2instancecapabilities-excludedinstancetypes) + */ + override fun excludedInstanceTypes(): List = unwrap(this).getExcludedInstanceTypes() + ?: emptyList() + + /** + * The memory, as MiB, for the Amazon EC2 instance type. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-servicemanagedec2instancecapabilities.html#cfn-deadline-fleet-servicemanagedec2instancecapabilities-memorymib) + */ + override fun memoryMiB(): Any = unwrap(this).getMemoryMiB() + + /** + * The operating system (OS) family. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-servicemanagedec2instancecapabilities.html#cfn-deadline-fleet-servicemanagedec2instancecapabilities-osfamily) + */ + override fun osFamily(): String = unwrap(this).getOsFamily() + + /** + * The root EBS volume. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-servicemanagedec2instancecapabilities.html#cfn-deadline-fleet-servicemanagedec2instancecapabilities-rootebsvolume) + */ + override fun rootEbsVolume(): Any? = unwrap(this).getRootEbsVolume() + + /** + * The amount of vCPU to require for instances in this fleet. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-servicemanagedec2instancecapabilities.html#cfn-deadline-fleet-servicemanagedec2instancecapabilities-vcpucount) + */ + override fun vCpuCount(): Any = unwrap(this).getVCpuCount() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): + ServiceManagedEc2InstanceCapabilitiesProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnFleet.ServiceManagedEc2InstanceCapabilitiesProperty): + ServiceManagedEc2InstanceCapabilitiesProperty = CdkObjectWrappers.wrap(cdkObject) as? + ServiceManagedEc2InstanceCapabilitiesProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: ServiceManagedEc2InstanceCapabilitiesProperty): + software.amazon.awscdk.services.deadline.CfnFleet.ServiceManagedEc2InstanceCapabilitiesProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.deadline.CfnFleet.ServiceManagedEc2InstanceCapabilitiesProperty + } + } + + /** + * The details of the Amazon EC2 instance market options for a service managed fleet. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * ServiceManagedEc2InstanceMarketOptionsProperty serviceManagedEc2InstanceMarketOptionsProperty = + * ServiceManagedEc2InstanceMarketOptionsProperty.builder() + * .type("type") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-servicemanagedec2instancemarketoptions.html) + */ + public interface ServiceManagedEc2InstanceMarketOptionsProperty { + /** + * The Amazon EC2 instance type. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-servicemanagedec2instancemarketoptions.html#cfn-deadline-fleet-servicemanagedec2instancemarketoptions-type) + */ + public fun type(): String + + /** + * A builder for [ServiceManagedEc2InstanceMarketOptionsProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param type The Amazon EC2 instance type. + */ + public fun type(type: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.deadline.CfnFleet.ServiceManagedEc2InstanceMarketOptionsProperty.Builder + = + software.amazon.awscdk.services.deadline.CfnFleet.ServiceManagedEc2InstanceMarketOptionsProperty.builder() + + /** + * @param type The Amazon EC2 instance type. + */ + override fun type(type: String) { + cdkBuilder.type(type) + } + + public fun build(): + software.amazon.awscdk.services.deadline.CfnFleet.ServiceManagedEc2InstanceMarketOptionsProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.deadline.CfnFleet.ServiceManagedEc2InstanceMarketOptionsProperty, + ) : CdkObject(cdkObject), ServiceManagedEc2InstanceMarketOptionsProperty { + /** + * The Amazon EC2 instance type. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-servicemanagedec2instancemarketoptions.html#cfn-deadline-fleet-servicemanagedec2instancemarketoptions-type) + */ + override fun type(): String = unwrap(this).getType() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): + ServiceManagedEc2InstanceMarketOptionsProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnFleet.ServiceManagedEc2InstanceMarketOptionsProperty): + ServiceManagedEc2InstanceMarketOptionsProperty = CdkObjectWrappers.wrap(cdkObject) as? + ServiceManagedEc2InstanceMarketOptionsProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: ServiceManagedEc2InstanceMarketOptionsProperty): + software.amazon.awscdk.services.deadline.CfnFleet.ServiceManagedEc2InstanceMarketOptionsProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.deadline.CfnFleet.ServiceManagedEc2InstanceMarketOptionsProperty + } + } + + /** + * The allowable range of vCPU processing power for the fleet. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * VCpuCountRangeProperty vCpuCountRangeProperty = VCpuCountRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-vcpucountrange.html) + */ + public interface VCpuCountRangeProperty { + /** + * The maximum amount of vCPU. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-vcpucountrange.html#cfn-deadline-fleet-vcpucountrange-max) + */ + public fun max(): Number? = unwrap(this).getMax() + + /** + * The minimum amount of vCPU. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-vcpucountrange.html#cfn-deadline-fleet-vcpucountrange-min) + */ + public fun min(): Number + + /** + * A builder for [VCpuCountRangeProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param max The maximum amount of vCPU. + */ + public fun max(max: Number) + + /** + * @param min The minimum amount of vCPU. + */ + public fun min(min: Number) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.deadline.CfnFleet.VCpuCountRangeProperty.Builder = + software.amazon.awscdk.services.deadline.CfnFleet.VCpuCountRangeProperty.builder() + + /** + * @param max The maximum amount of vCPU. + */ + override fun max(max: Number) { + cdkBuilder.max(max) + } + + /** + * @param min The minimum amount of vCPU. + */ + override fun min(min: Number) { + cdkBuilder.min(min) + } + + public fun build(): software.amazon.awscdk.services.deadline.CfnFleet.VCpuCountRangeProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.deadline.CfnFleet.VCpuCountRangeProperty, + ) : CdkObject(cdkObject), VCpuCountRangeProperty { + /** + * The maximum amount of vCPU. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-vcpucountrange.html#cfn-deadline-fleet-vcpucountrange-max) + */ + override fun max(): Number? = unwrap(this).getMax() + + /** + * The minimum amount of vCPU. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-vcpucountrange.html#cfn-deadline-fleet-vcpucountrange-min) + */ + override fun min(): Number = unwrap(this).getMin() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): VCpuCountRangeProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnFleet.VCpuCountRangeProperty): + VCpuCountRangeProperty = CdkObjectWrappers.wrap(cdkObject) as? VCpuCountRangeProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: VCpuCountRangeProperty): + software.amazon.awscdk.services.deadline.CfnFleet.VCpuCountRangeProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.deadline.CfnFleet.VCpuCountRangeProperty + } + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnFleetProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnFleetProps.kt new file mode 100644 index 0000000000..bd619d66df --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnFleetProps.kt @@ -0,0 +1,366 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.deadline + +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.Number +import kotlin.String +import kotlin.Unit +import kotlin.jvm.JvmName + +/** + * Properties for defining a `CfnFleet`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * CfnFleetProps cfnFleetProps = CfnFleetProps.builder() + * .configuration(FleetConfigurationProperty.builder() + * .customerManaged(CustomerManagedFleetConfigurationProperty.builder() + * .mode("mode") + * .workerCapabilities(CustomerManagedWorkerCapabilitiesProperty.builder() + * .cpuArchitectureType("cpuArchitectureType") + * .memoryMiB(MemoryMiBRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build()) + * .osFamily("osFamily") + * .vCpuCount(VCpuCountRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build()) + * // the properties below are optional + * .acceleratorCount(AcceleratorCountRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build()) + * .acceleratorTotalMemoryMiB(AcceleratorTotalMemoryMiBRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build()) + * .acceleratorTypes(List.of("acceleratorTypes")) + * .customAmounts(List.of(FleetAmountCapabilityProperty.builder() + * .min(123) + * .name("name") + * // the properties below are optional + * .max(123) + * .build())) + * .customAttributes(List.of(FleetAttributeCapabilityProperty.builder() + * .name("name") + * .values(List.of("values")) + * .build())) + * .build()) + * // the properties below are optional + * .storageProfileId("storageProfileId") + * .build()) + * .serviceManagedEc2(ServiceManagedEc2FleetConfigurationProperty.builder() + * .instanceCapabilities(ServiceManagedEc2InstanceCapabilitiesProperty.builder() + * .cpuArchitectureType("cpuArchitectureType") + * .memoryMiB(MemoryMiBRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build()) + * .osFamily("osFamily") + * .vCpuCount(VCpuCountRangeProperty.builder() + * .min(123) + * // the properties below are optional + * .max(123) + * .build()) + * // the properties below are optional + * .allowedInstanceTypes(List.of("allowedInstanceTypes")) + * .customAmounts(List.of(FleetAmountCapabilityProperty.builder() + * .min(123) + * .name("name") + * // the properties below are optional + * .max(123) + * .build())) + * .customAttributes(List.of(FleetAttributeCapabilityProperty.builder() + * .name("name") + * .values(List.of("values")) + * .build())) + * .excludedInstanceTypes(List.of("excludedInstanceTypes")) + * .rootEbsVolume(Ec2EbsVolumeProperty.builder() + * .iops(123) + * .sizeGiB(123) + * .throughputMiB(123) + * .build()) + * .build()) + * .instanceMarketOptions(ServiceManagedEc2InstanceMarketOptionsProperty.builder() + * .type("type") + * .build()) + * .build()) + * .build()) + * .displayName("displayName") + * .maxWorkerCount(123) + * .roleArn("roleArn") + * // the properties below are optional + * .description("description") + * .farmId("farmId") + * .minWorkerCount(123) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html) + */ +public interface CfnFleetProps { + /** + * The configuration details for the fleet. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-configuration) + */ + public fun configuration(): Any + + /** + * A description that helps identify what the fleet is used for. + * + * Default: - "" + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-description) + */ + public fun description(): String? = unwrap(this).getDescription() + + /** + * The display name of the fleet summary to update. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-displayname) + */ + public fun displayName(): String + + /** + * The farm ID. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-farmid) + */ + public fun farmId(): String? = unwrap(this).getFarmId() + + /** + * The maximum number of workers specified in the fleet. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-maxworkercount) + */ + public fun maxWorkerCount(): Number + + /** + * The minimum number of workers in the fleet. + * + * Default: - 0 + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-minworkercount) + */ + public fun minWorkerCount(): Number? = unwrap(this).getMinWorkerCount() + + /** + * The IAM role that workers in the fleet use when processing jobs. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-rolearn) + */ + public fun roleArn(): String + + /** + * A builder for [CfnFleetProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param configuration The configuration details for the fleet. + */ + public fun configuration(configuration: IResolvable) + + /** + * @param configuration The configuration details for the fleet. + */ + public fun configuration(configuration: CfnFleet.FleetConfigurationProperty) + + /** + * @param configuration The configuration details for the fleet. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("8ff5f30b1b9fb66215f2a3f282c4322c8c030c100803f6d853923cc4ef727103") + public fun configuration(configuration: CfnFleet.FleetConfigurationProperty.Builder.() -> Unit) + + /** + * @param description A description that helps identify what the fleet is used for. + */ + public fun description(description: String) + + /** + * @param displayName The display name of the fleet summary to update. + */ + public fun displayName(displayName: String) + + /** + * @param farmId The farm ID. + */ + public fun farmId(farmId: String) + + /** + * @param maxWorkerCount The maximum number of workers specified in the fleet. + */ + public fun maxWorkerCount(maxWorkerCount: Number) + + /** + * @param minWorkerCount The minimum number of workers in the fleet. + */ + public fun minWorkerCount(minWorkerCount: Number) + + /** + * @param roleArn The IAM role that workers in the fleet use when processing jobs. + */ + public fun roleArn(roleArn: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.services.deadline.CfnFleetProps.Builder = + software.amazon.awscdk.services.deadline.CfnFleetProps.builder() + + /** + * @param configuration The configuration details for the fleet. + */ + override fun configuration(configuration: IResolvable) { + cdkBuilder.configuration(configuration.let(IResolvable::unwrap)) + } + + /** + * @param configuration The configuration details for the fleet. + */ + override fun configuration(configuration: CfnFleet.FleetConfigurationProperty) { + cdkBuilder.configuration(configuration.let(CfnFleet.FleetConfigurationProperty::unwrap)) + } + + /** + * @param configuration The configuration details for the fleet. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("8ff5f30b1b9fb66215f2a3f282c4322c8c030c100803f6d853923cc4ef727103") + override + fun configuration(configuration: CfnFleet.FleetConfigurationProperty.Builder.() -> Unit): + Unit = configuration(CfnFleet.FleetConfigurationProperty(configuration)) + + /** + * @param description A description that helps identify what the fleet is used for. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * @param displayName The display name of the fleet summary to update. + */ + override fun displayName(displayName: String) { + cdkBuilder.displayName(displayName) + } + + /** + * @param farmId The farm ID. + */ + override fun farmId(farmId: String) { + cdkBuilder.farmId(farmId) + } + + /** + * @param maxWorkerCount The maximum number of workers specified in the fleet. + */ + override fun maxWorkerCount(maxWorkerCount: Number) { + cdkBuilder.maxWorkerCount(maxWorkerCount) + } + + /** + * @param minWorkerCount The minimum number of workers in the fleet. + */ + override fun minWorkerCount(minWorkerCount: Number) { + cdkBuilder.minWorkerCount(minWorkerCount) + } + + /** + * @param roleArn The IAM role that workers in the fleet use when processing jobs. + */ + override fun roleArn(roleArn: String) { + cdkBuilder.roleArn(roleArn) + } + + public fun build(): software.amazon.awscdk.services.deadline.CfnFleetProps = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.deadline.CfnFleetProps, + ) : CdkObject(cdkObject), CfnFleetProps { + /** + * The configuration details for the fleet. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-configuration) + */ + override fun configuration(): Any = unwrap(this).getConfiguration() + + /** + * A description that helps identify what the fleet is used for. + * + * Default: - "" + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-description) + */ + override fun description(): String? = unwrap(this).getDescription() + + /** + * The display name of the fleet summary to update. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-displayname) + */ + override fun displayName(): String = unwrap(this).getDisplayName() + + /** + * The farm ID. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-farmid) + */ + override fun farmId(): String? = unwrap(this).getFarmId() + + /** + * The maximum number of workers specified in the fleet. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-maxworkercount) + */ + override fun maxWorkerCount(): Number = unwrap(this).getMaxWorkerCount() + + /** + * The minimum number of workers in the fleet. + * + * Default: - 0 + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-minworkercount) + */ + override fun minWorkerCount(): Number? = unwrap(this).getMinWorkerCount() + + /** + * The IAM role that workers in the fleet use when processing jobs. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-rolearn) + */ + override fun roleArn(): String = unwrap(this).getRoleArn() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnFleetProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnFleetProps): + CfnFleetProps = CdkObjectWrappers.wrap(cdkObject) as? CfnFleetProps ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnFleetProps): + software.amazon.awscdk.services.deadline.CfnFleetProps = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.deadline.CfnFleetProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnLicenseEndpoint.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnLicenseEndpoint.kt new file mode 100644 index 0000000000..f2b7a9a868 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnLicenseEndpoint.kt @@ -0,0 +1,263 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.deadline + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * Creates a license endpoint to integrate your various licensed software used for rendering on + * Deadline Cloud. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * CfnLicenseEndpoint cfnLicenseEndpoint = CfnLicenseEndpoint.Builder.create(this, + * "MyCfnLicenseEndpoint") + * .securityGroupIds(List.of("securityGroupIds")) + * .subnetIds(List.of("subnetIds")) + * .vpcId("vpcId") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-licenseendpoint.html) + */ +public open class CfnLicenseEndpoint( + cdkObject: software.amazon.awscdk.services.deadline.CfnLicenseEndpoint, +) : CfnResource(cdkObject), IInspectable { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnLicenseEndpointProps, + ) : + this(software.amazon.awscdk.services.deadline.CfnLicenseEndpoint(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnLicenseEndpointProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnLicenseEndpointProps.Builder.() -> Unit, + ) : this(scope, id, CfnLicenseEndpointProps(props) + ) + + /** + * The Amazon Resource Name (ARN) of the license endpoint. + */ + public open fun attrArn(): String = unwrap(this).getAttrArn() + + /** + * The DNS name of the license server endpoint. + */ + public open fun attrDnsName(): String = unwrap(this).getAttrDnsName() + + /** + * The license endpoint ID. + */ + public open fun attrLicenseEndpointId(): String = unwrap(this).getAttrLicenseEndpointId() + + /** + * The status of the license endpoint. + */ + public open fun attrStatus(): String = unwrap(this).getAttrStatus() + + /** + * The status message of the license endpoint. + */ + public open fun attrStatusMessage(): String = unwrap(this).getAttrStatusMessage() + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * The identifier of the Amazon EC2 security group that controls access to the license endpoint. + */ + public open fun securityGroupIds(): List = unwrap(this).getSecurityGroupIds() + + /** + * The identifier of the Amazon EC2 security group that controls access to the license endpoint. + */ + public open fun securityGroupIds(`value`: List) { + unwrap(this).setSecurityGroupIds(`value`) + } + + /** + * The identifier of the Amazon EC2 security group that controls access to the license endpoint. + */ + public open fun securityGroupIds(vararg `value`: String): Unit = + securityGroupIds(`value`.toList()) + + /** + * Identifies the VPC subnets that can connect to a license endpoint. + */ + public open fun subnetIds(): List = unwrap(this).getSubnetIds() + + /** + * Identifies the VPC subnets that can connect to a license endpoint. + */ + public open fun subnetIds(`value`: List) { + unwrap(this).setSubnetIds(`value`) + } + + /** + * Identifies the VPC subnets that can connect to a license endpoint. + */ + public open fun subnetIds(vararg `value`: String): Unit = subnetIds(`value`.toList()) + + /** + * The VCP(virtual private cloud) ID associated with the license endpoint. + */ + public open fun vpcId(): String = unwrap(this).getVpcId() + + /** + * The VCP(virtual private cloud) ID associated with the license endpoint. + */ + public open fun vpcId(`value`: String) { + unwrap(this).setVpcId(`value`) + } + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.deadline.CfnLicenseEndpoint]. + */ + @CdkDslMarker + public interface Builder { + /** + * The identifier of the Amazon EC2 security group that controls access to the license endpoint. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-licenseendpoint.html#cfn-deadline-licenseendpoint-securitygroupids) + * @param securityGroupIds The identifier of the Amazon EC2 security group that controls access + * to the license endpoint. + */ + public fun securityGroupIds(securityGroupIds: List) + + /** + * The identifier of the Amazon EC2 security group that controls access to the license endpoint. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-licenseendpoint.html#cfn-deadline-licenseendpoint-securitygroupids) + * @param securityGroupIds The identifier of the Amazon EC2 security group that controls access + * to the license endpoint. + */ + public fun securityGroupIds(vararg securityGroupIds: String) + + /** + * Identifies the VPC subnets that can connect to a license endpoint. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-licenseendpoint.html#cfn-deadline-licenseendpoint-subnetids) + * @param subnetIds Identifies the VPC subnets that can connect to a license endpoint. + */ + public fun subnetIds(subnetIds: List) + + /** + * Identifies the VPC subnets that can connect to a license endpoint. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-licenseendpoint.html#cfn-deadline-licenseendpoint-subnetids) + * @param subnetIds Identifies the VPC subnets that can connect to a license endpoint. + */ + public fun subnetIds(vararg subnetIds: String) + + /** + * The VCP(virtual private cloud) ID associated with the license endpoint. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-licenseendpoint.html#cfn-deadline-licenseendpoint-vpcid) + * @param vpcId The VCP(virtual private cloud) ID associated with the license endpoint. + */ + public fun vpcId(vpcId: String) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.services.deadline.CfnLicenseEndpoint.Builder = + software.amazon.awscdk.services.deadline.CfnLicenseEndpoint.Builder.create(scope, id) + + /** + * The identifier of the Amazon EC2 security group that controls access to the license endpoint. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-licenseendpoint.html#cfn-deadline-licenseendpoint-securitygroupids) + * @param securityGroupIds The identifier of the Amazon EC2 security group that controls access + * to the license endpoint. + */ + override fun securityGroupIds(securityGroupIds: List) { + cdkBuilder.securityGroupIds(securityGroupIds) + } + + /** + * The identifier of the Amazon EC2 security group that controls access to the license endpoint. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-licenseendpoint.html#cfn-deadline-licenseendpoint-securitygroupids) + * @param securityGroupIds The identifier of the Amazon EC2 security group that controls access + * to the license endpoint. + */ + override fun securityGroupIds(vararg securityGroupIds: String): Unit = + securityGroupIds(securityGroupIds.toList()) + + /** + * Identifies the VPC subnets that can connect to a license endpoint. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-licenseendpoint.html#cfn-deadline-licenseendpoint-subnetids) + * @param subnetIds Identifies the VPC subnets that can connect to a license endpoint. + */ + override fun subnetIds(subnetIds: List) { + cdkBuilder.subnetIds(subnetIds) + } + + /** + * Identifies the VPC subnets that can connect to a license endpoint. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-licenseendpoint.html#cfn-deadline-licenseendpoint-subnetids) + * @param subnetIds Identifies the VPC subnets that can connect to a license endpoint. + */ + override fun subnetIds(vararg subnetIds: String): Unit = subnetIds(subnetIds.toList()) + + /** + * The VCP(virtual private cloud) ID associated with the license endpoint. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-licenseendpoint.html#cfn-deadline-licenseendpoint-vpcid) + * @param vpcId The VCP(virtual private cloud) ID associated with the license endpoint. + */ + override fun vpcId(vpcId: String) { + cdkBuilder.vpcId(vpcId) + } + + public fun build(): software.amazon.awscdk.services.deadline.CfnLicenseEndpoint = + cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.deadline.CfnLicenseEndpoint.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnLicenseEndpoint { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnLicenseEndpoint(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnLicenseEndpoint): + CfnLicenseEndpoint = CfnLicenseEndpoint(cdkObject) + + internal fun unwrap(wrapped: CfnLicenseEndpoint): + software.amazon.awscdk.services.deadline.CfnLicenseEndpoint = wrapped.cdkObject as + software.amazon.awscdk.services.deadline.CfnLicenseEndpoint + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnLicenseEndpointProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnLicenseEndpointProps.kt new file mode 100644 index 0000000000..0bada4b1fc --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnLicenseEndpointProps.kt @@ -0,0 +1,166 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.deadline + +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.String +import kotlin.Unit +import kotlin.collections.List + +/** + * Properties for defining a `CfnLicenseEndpoint`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * CfnLicenseEndpointProps cfnLicenseEndpointProps = CfnLicenseEndpointProps.builder() + * .securityGroupIds(List.of("securityGroupIds")) + * .subnetIds(List.of("subnetIds")) + * .vpcId("vpcId") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-licenseendpoint.html) + */ +public interface CfnLicenseEndpointProps { + /** + * The identifier of the Amazon EC2 security group that controls access to the license endpoint. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-licenseendpoint.html#cfn-deadline-licenseendpoint-securitygroupids) + */ + public fun securityGroupIds(): List + + /** + * Identifies the VPC subnets that can connect to a license endpoint. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-licenseendpoint.html#cfn-deadline-licenseendpoint-subnetids) + */ + public fun subnetIds(): List + + /** + * The VCP(virtual private cloud) ID associated with the license endpoint. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-licenseendpoint.html#cfn-deadline-licenseendpoint-vpcid) + */ + public fun vpcId(): String + + /** + * A builder for [CfnLicenseEndpointProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param securityGroupIds The identifier of the Amazon EC2 security group that controls access + * to the license endpoint. + */ + public fun securityGroupIds(securityGroupIds: List) + + /** + * @param securityGroupIds The identifier of the Amazon EC2 security group that controls access + * to the license endpoint. + */ + public fun securityGroupIds(vararg securityGroupIds: String) + + /** + * @param subnetIds Identifies the VPC subnets that can connect to a license endpoint. + */ + public fun subnetIds(subnetIds: List) + + /** + * @param subnetIds Identifies the VPC subnets that can connect to a license endpoint. + */ + public fun subnetIds(vararg subnetIds: String) + + /** + * @param vpcId The VCP(virtual private cloud) ID associated with the license endpoint. + */ + public fun vpcId(vpcId: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.services.deadline.CfnLicenseEndpointProps.Builder + = software.amazon.awscdk.services.deadline.CfnLicenseEndpointProps.builder() + + /** + * @param securityGroupIds The identifier of the Amazon EC2 security group that controls access + * to the license endpoint. + */ + override fun securityGroupIds(securityGroupIds: List) { + cdkBuilder.securityGroupIds(securityGroupIds) + } + + /** + * @param securityGroupIds The identifier of the Amazon EC2 security group that controls access + * to the license endpoint. + */ + override fun securityGroupIds(vararg securityGroupIds: String): Unit = + securityGroupIds(securityGroupIds.toList()) + + /** + * @param subnetIds Identifies the VPC subnets that can connect to a license endpoint. + */ + override fun subnetIds(subnetIds: List) { + cdkBuilder.subnetIds(subnetIds) + } + + /** + * @param subnetIds Identifies the VPC subnets that can connect to a license endpoint. + */ + override fun subnetIds(vararg subnetIds: String): Unit = subnetIds(subnetIds.toList()) + + /** + * @param vpcId The VCP(virtual private cloud) ID associated with the license endpoint. + */ + override fun vpcId(vpcId: String) { + cdkBuilder.vpcId(vpcId) + } + + public fun build(): software.amazon.awscdk.services.deadline.CfnLicenseEndpointProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.deadline.CfnLicenseEndpointProps, + ) : CdkObject(cdkObject), CfnLicenseEndpointProps { + /** + * The identifier of the Amazon EC2 security group that controls access to the license endpoint. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-licenseendpoint.html#cfn-deadline-licenseendpoint-securitygroupids) + */ + override fun securityGroupIds(): List = unwrap(this).getSecurityGroupIds() + + /** + * Identifies the VPC subnets that can connect to a license endpoint. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-licenseendpoint.html#cfn-deadline-licenseendpoint-subnetids) + */ + override fun subnetIds(): List = unwrap(this).getSubnetIds() + + /** + * The VCP(virtual private cloud) ID associated with the license endpoint. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-licenseendpoint.html#cfn-deadline-licenseendpoint-vpcid) + */ + override fun vpcId(): String = unwrap(this).getVpcId() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnLicenseEndpointProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnLicenseEndpointProps): + CfnLicenseEndpointProps = CdkObjectWrappers.wrap(cdkObject) as? CfnLicenseEndpointProps ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnLicenseEndpointProps): + software.amazon.awscdk.services.deadline.CfnLicenseEndpointProps = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.deadline.CfnLicenseEndpointProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnMeteredProduct.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnMeteredProduct.kt new file mode 100644 index 0000000000..188d22bcec --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnMeteredProduct.kt @@ -0,0 +1,261 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.deadline + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import kotlin.Number +import kotlin.String +import kotlin.Unit +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * Adds a metered product. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * CfnMeteredProduct cfnMeteredProduct = CfnMeteredProduct.Builder.create(this, + * "MyCfnMeteredProduct") + * .family("family") + * .licenseEndpointId("licenseEndpointId") + * .port(123) + * .productId("productId") + * .vendor("vendor") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-meteredproduct.html) + */ +public open class CfnMeteredProduct( + cdkObject: software.amazon.awscdk.services.deadline.CfnMeteredProduct, +) : CfnResource(cdkObject), IInspectable { + public constructor(scope: CloudshiftdevConstructsConstruct, id: String) : + this(software.amazon.awscdk.services.deadline.CfnMeteredProduct(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnMeteredProductProps, + ) : + this(software.amazon.awscdk.services.deadline.CfnMeteredProduct(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnMeteredProductProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnMeteredProductProps.Builder.() -> Unit, + ) : this(scope, id, CfnMeteredProductProps(props) + ) + + /** + * The Amazon Resource Name (ARN) of the metered product. + */ + public open fun attrArn(): String = unwrap(this).getAttrArn() + + /** + * The family to which the metered product belongs. + */ + public open fun family(): String? = unwrap(this).getFamily() + + /** + * The family to which the metered product belongs. + */ + public open fun family(`value`: String) { + unwrap(this).setFamily(`value`) + } + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * The Amazon EC2 identifier of the license endpoint. + */ + public open fun licenseEndpointId(): String? = unwrap(this).getLicenseEndpointId() + + /** + * The Amazon EC2 identifier of the license endpoint. + */ + public open fun licenseEndpointId(`value`: String) { + unwrap(this).setLicenseEndpointId(`value`) + } + + /** + * The port on which the metered product should run. + */ + public open fun port(): Number? = unwrap(this).getPort() + + /** + * The port on which the metered product should run. + */ + public open fun port(`value`: Number) { + unwrap(this).setPort(`value`) + } + + /** + * The product ID. + */ + public open fun productId(): String? = unwrap(this).getProductId() + + /** + * The product ID. + */ + public open fun productId(`value`: String) { + unwrap(this).setProductId(`value`) + } + + /** + * The vendor. + */ + public open fun vendor(): String? = unwrap(this).getVendor() + + /** + * The vendor. + */ + public open fun vendor(`value`: String) { + unwrap(this).setVendor(`value`) + } + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.deadline.CfnMeteredProduct]. + */ + @CdkDslMarker + public interface Builder { + /** + * The family to which the metered product belongs. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-meteredproduct.html#cfn-deadline-meteredproduct-family) + * @param family The family to which the metered product belongs. + */ + public fun family(family: String) + + /** + * The Amazon EC2 identifier of the license endpoint. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-meteredproduct.html#cfn-deadline-meteredproduct-licenseendpointid) + * @param licenseEndpointId The Amazon EC2 identifier of the license endpoint. + */ + public fun licenseEndpointId(licenseEndpointId: String) + + /** + * The port on which the metered product should run. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-meteredproduct.html#cfn-deadline-meteredproduct-port) + * @param port The port on which the metered product should run. + */ + public fun port(port: Number) + + /** + * The product ID. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-meteredproduct.html#cfn-deadline-meteredproduct-productid) + * @param productId The product ID. + */ + public fun productId(productId: String) + + /** + * The vendor. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-meteredproduct.html#cfn-deadline-meteredproduct-vendor) + * @param vendor The vendor. + */ + public fun vendor(vendor: String) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.services.deadline.CfnMeteredProduct.Builder = + software.amazon.awscdk.services.deadline.CfnMeteredProduct.Builder.create(scope, id) + + /** + * The family to which the metered product belongs. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-meteredproduct.html#cfn-deadline-meteredproduct-family) + * @param family The family to which the metered product belongs. + */ + override fun family(family: String) { + cdkBuilder.family(family) + } + + /** + * The Amazon EC2 identifier of the license endpoint. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-meteredproduct.html#cfn-deadline-meteredproduct-licenseendpointid) + * @param licenseEndpointId The Amazon EC2 identifier of the license endpoint. + */ + override fun licenseEndpointId(licenseEndpointId: String) { + cdkBuilder.licenseEndpointId(licenseEndpointId) + } + + /** + * The port on which the metered product should run. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-meteredproduct.html#cfn-deadline-meteredproduct-port) + * @param port The port on which the metered product should run. + */ + override fun port(port: Number) { + cdkBuilder.port(port) + } + + /** + * The product ID. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-meteredproduct.html#cfn-deadline-meteredproduct-productid) + * @param productId The product ID. + */ + override fun productId(productId: String) { + cdkBuilder.productId(productId) + } + + /** + * The vendor. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-meteredproduct.html#cfn-deadline-meteredproduct-vendor) + * @param vendor The vendor. + */ + override fun vendor(vendor: String) { + cdkBuilder.vendor(vendor) + } + + public fun build(): software.amazon.awscdk.services.deadline.CfnMeteredProduct = + cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.deadline.CfnMeteredProduct.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnMeteredProduct { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnMeteredProduct(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnMeteredProduct): + CfnMeteredProduct = CfnMeteredProduct(cdkObject) + + internal fun unwrap(wrapped: CfnMeteredProduct): + software.amazon.awscdk.services.deadline.CfnMeteredProduct = wrapped.cdkObject as + software.amazon.awscdk.services.deadline.CfnMeteredProduct + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnMeteredProductProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnMeteredProductProps.kt new file mode 100644 index 0000000000..3cb01d78d7 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnMeteredProductProps.kt @@ -0,0 +1,195 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.deadline + +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Number +import kotlin.String +import kotlin.Unit + +/** + * Properties for defining a `CfnMeteredProduct`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * CfnMeteredProductProps cfnMeteredProductProps = CfnMeteredProductProps.builder() + * .family("family") + * .licenseEndpointId("licenseEndpointId") + * .port(123) + * .productId("productId") + * .vendor("vendor") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-meteredproduct.html) + */ +public interface CfnMeteredProductProps { + /** + * The family to which the metered product belongs. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-meteredproduct.html#cfn-deadline-meteredproduct-family) + */ + public fun family(): String? = unwrap(this).getFamily() + + /** + * The Amazon EC2 identifier of the license endpoint. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-meteredproduct.html#cfn-deadline-meteredproduct-licenseendpointid) + */ + public fun licenseEndpointId(): String? = unwrap(this).getLicenseEndpointId() + + /** + * The port on which the metered product should run. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-meteredproduct.html#cfn-deadline-meteredproduct-port) + */ + public fun port(): Number? = unwrap(this).getPort() + + /** + * The product ID. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-meteredproduct.html#cfn-deadline-meteredproduct-productid) + */ + public fun productId(): String? = unwrap(this).getProductId() + + /** + * The vendor. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-meteredproduct.html#cfn-deadline-meteredproduct-vendor) + */ + public fun vendor(): String? = unwrap(this).getVendor() + + /** + * A builder for [CfnMeteredProductProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param family The family to which the metered product belongs. + */ + public fun family(family: String) + + /** + * @param licenseEndpointId The Amazon EC2 identifier of the license endpoint. + */ + public fun licenseEndpointId(licenseEndpointId: String) + + /** + * @param port The port on which the metered product should run. + */ + public fun port(port: Number) + + /** + * @param productId The product ID. + */ + public fun productId(productId: String) + + /** + * @param vendor The vendor. + */ + public fun vendor(vendor: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.services.deadline.CfnMeteredProductProps.Builder + = software.amazon.awscdk.services.deadline.CfnMeteredProductProps.builder() + + /** + * @param family The family to which the metered product belongs. + */ + override fun family(family: String) { + cdkBuilder.family(family) + } + + /** + * @param licenseEndpointId The Amazon EC2 identifier of the license endpoint. + */ + override fun licenseEndpointId(licenseEndpointId: String) { + cdkBuilder.licenseEndpointId(licenseEndpointId) + } + + /** + * @param port The port on which the metered product should run. + */ + override fun port(port: Number) { + cdkBuilder.port(port) + } + + /** + * @param productId The product ID. + */ + override fun productId(productId: String) { + cdkBuilder.productId(productId) + } + + /** + * @param vendor The vendor. + */ + override fun vendor(vendor: String) { + cdkBuilder.vendor(vendor) + } + + public fun build(): software.amazon.awscdk.services.deadline.CfnMeteredProductProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.deadline.CfnMeteredProductProps, + ) : CdkObject(cdkObject), CfnMeteredProductProps { + /** + * The family to which the metered product belongs. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-meteredproduct.html#cfn-deadline-meteredproduct-family) + */ + override fun family(): String? = unwrap(this).getFamily() + + /** + * The Amazon EC2 identifier of the license endpoint. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-meteredproduct.html#cfn-deadline-meteredproduct-licenseendpointid) + */ + override fun licenseEndpointId(): String? = unwrap(this).getLicenseEndpointId() + + /** + * The port on which the metered product should run. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-meteredproduct.html#cfn-deadline-meteredproduct-port) + */ + override fun port(): Number? = unwrap(this).getPort() + + /** + * The product ID. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-meteredproduct.html#cfn-deadline-meteredproduct-productid) + */ + override fun productId(): String? = unwrap(this).getProductId() + + /** + * The vendor. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-meteredproduct.html#cfn-deadline-meteredproduct-vendor) + */ + override fun vendor(): String? = unwrap(this).getVendor() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnMeteredProductProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnMeteredProductProps): + CfnMeteredProductProps = CdkObjectWrappers.wrap(cdkObject) as? CfnMeteredProductProps ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnMeteredProductProps): + software.amazon.awscdk.services.deadline.CfnMeteredProductProps = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.deadline.CfnMeteredProductProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnQueue.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnQueue.kt new file mode 100644 index 0000000000..09af43f793 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnQueue.kt @@ -0,0 +1,1127 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.deadline + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.jvm.JvmName +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * Creates a queue to coordinate the order in which jobs run on a farm. + * + * A queue can also specify where to pull resources and indicate where to output completed jobs. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * CfnQueue cfnQueue = CfnQueue.Builder.create(this, "MyCfnQueue") + * .displayName("displayName") + * // the properties below are optional + * .allowedStorageProfileIds(List.of("allowedStorageProfileIds")) + * .defaultBudgetAction("defaultBudgetAction") + * .description("description") + * .farmId("farmId") + * .jobAttachmentSettings(JobAttachmentSettingsProperty.builder() + * .rootPrefix("rootPrefix") + * .s3BucketName("s3BucketName") + * .build()) + * .jobRunAsUser(JobRunAsUserProperty.builder() + * .runAs("runAs") + * // the properties below are optional + * .posix(PosixUserProperty.builder() + * .group("group") + * .user("user") + * .build()) + * .windows(WindowsUserProperty.builder() + * .passwordArn("passwordArn") + * .user("user") + * .build()) + * .build()) + * .requiredFileSystemLocationNames(List.of("requiredFileSystemLocationNames")) + * .roleArn("roleArn") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html) + */ +public open class CfnQueue( + cdkObject: software.amazon.awscdk.services.deadline.CfnQueue, +) : CfnResource(cdkObject), IInspectable { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnQueueProps, + ) : + this(software.amazon.awscdk.services.deadline.CfnQueue(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnQueueProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnQueueProps.Builder.() -> Unit, + ) : this(scope, id, CfnQueueProps(props) + ) + + /** + * The identifiers of the storage profiles that this queue can use to share assets between workers + * using different operating systems. + */ + public open fun allowedStorageProfileIds(): List = + unwrap(this).getAllowedStorageProfileIds() ?: emptyList() + + /** + * The identifiers of the storage profiles that this queue can use to share assets between workers + * using different operating systems. + */ + public open fun allowedStorageProfileIds(`value`: List) { + unwrap(this).setAllowedStorageProfileIds(`value`) + } + + /** + * The identifiers of the storage profiles that this queue can use to share assets between workers + * using different operating systems. + */ + public open fun allowedStorageProfileIds(vararg `value`: String): Unit = + allowedStorageProfileIds(`value`.toList()) + + /** + * The Amazon Resource Name (ARN) of the queue. + */ + public open fun attrArn(): String = unwrap(this).getAttrArn() + + /** + * The queue ID. + */ + public open fun attrQueueId(): String = unwrap(this).getAttrQueueId() + + /** + * The default action taken on a queue summary if a budget wasn't configured. + */ + public open fun defaultBudgetAction(): String? = unwrap(this).getDefaultBudgetAction() + + /** + * The default action taken on a queue summary if a budget wasn't configured. + */ + public open fun defaultBudgetAction(`value`: String) { + unwrap(this).setDefaultBudgetAction(`value`) + } + + /** + * A description of the queue that helps identify what the queue is used for. + */ + public open fun description(): String? = unwrap(this).getDescription() + + /** + * A description of the queue that helps identify what the queue is used for. + */ + public open fun description(`value`: String) { + unwrap(this).setDescription(`value`) + } + + /** + * The display name of the queue summary to update. + */ + public open fun displayName(): String = unwrap(this).getDisplayName() + + /** + * The display name of the queue summary to update. + */ + public open fun displayName(`value`: String) { + unwrap(this).setDisplayName(`value`) + } + + /** + * The farm ID. + */ + public open fun farmId(): String? = unwrap(this).getFarmId() + + /** + * The farm ID. + */ + public open fun farmId(`value`: String) { + unwrap(this).setFarmId(`value`) + } + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * The job attachment settings. + */ + public open fun jobAttachmentSettings(): Any? = unwrap(this).getJobAttachmentSettings() + + /** + * The job attachment settings. + */ + public open fun jobAttachmentSettings(`value`: IResolvable) { + unwrap(this).setJobAttachmentSettings(`value`.let(IResolvable::unwrap)) + } + + /** + * The job attachment settings. + */ + public open fun jobAttachmentSettings(`value`: JobAttachmentSettingsProperty) { + unwrap(this).setJobAttachmentSettings(`value`.let(JobAttachmentSettingsProperty::unwrap)) + } + + /** + * The job attachment settings. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("c789d9c790f13a994cbe136cf1bad82c82c2ce4fd25bdb5c9882d58ff4a22b2d") + public open fun jobAttachmentSettings(`value`: JobAttachmentSettingsProperty.Builder.() -> Unit): + Unit = jobAttachmentSettings(JobAttachmentSettingsProperty(`value`)) + + /** + * Identifies the user for a job. + */ + public open fun jobRunAsUser(): Any? = unwrap(this).getJobRunAsUser() + + /** + * Identifies the user for a job. + */ + public open fun jobRunAsUser(`value`: IResolvable) { + unwrap(this).setJobRunAsUser(`value`.let(IResolvable::unwrap)) + } + + /** + * Identifies the user for a job. + */ + public open fun jobRunAsUser(`value`: JobRunAsUserProperty) { + unwrap(this).setJobRunAsUser(`value`.let(JobRunAsUserProperty::unwrap)) + } + + /** + * Identifies the user for a job. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("dbcabd226ad5fc65952ecd18a0933d06b4086744a509c12a6fda92fb5bc5004d") + public open fun jobRunAsUser(`value`: JobRunAsUserProperty.Builder.() -> Unit): Unit = + jobRunAsUser(JobRunAsUserProperty(`value`)) + + /** + * The file system location that the queue uses. + */ + public open fun requiredFileSystemLocationNames(): List = + unwrap(this).getRequiredFileSystemLocationNames() ?: emptyList() + + /** + * The file system location that the queue uses. + */ + public open fun requiredFileSystemLocationNames(`value`: List) { + unwrap(this).setRequiredFileSystemLocationNames(`value`) + } + + /** + * The file system location that the queue uses. + */ + public open fun requiredFileSystemLocationNames(vararg `value`: String): Unit = + requiredFileSystemLocationNames(`value`.toList()) + + /** + * The Amazon Resource Name (ARN) of the IAM role that workers use when running jobs in this + * queue. + */ + public open fun roleArn(): String? = unwrap(this).getRoleArn() + + /** + * The Amazon Resource Name (ARN) of the IAM role that workers use when running jobs in this + * queue. + */ + public open fun roleArn(`value`: String) { + unwrap(this).setRoleArn(`value`) + } + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.deadline.CfnQueue]. + */ + @CdkDslMarker + public interface Builder { + /** + * The identifiers of the storage profiles that this queue can use to share assets between + * workers using different operating systems. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-allowedstorageprofileids) + * @param allowedStorageProfileIds The identifiers of the storage profiles that this queue can + * use to share assets between workers using different operating systems. + */ + public fun allowedStorageProfileIds(allowedStorageProfileIds: List) + + /** + * The identifiers of the storage profiles that this queue can use to share assets between + * workers using different operating systems. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-allowedstorageprofileids) + * @param allowedStorageProfileIds The identifiers of the storage profiles that this queue can + * use to share assets between workers using different operating systems. + */ + public fun allowedStorageProfileIds(vararg allowedStorageProfileIds: String) + + /** + * The default action taken on a queue summary if a budget wasn't configured. + * + * Default: - "NONE" + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-defaultbudgetaction) + * @param defaultBudgetAction The default action taken on a queue summary if a budget wasn't + * configured. + */ + public fun defaultBudgetAction(defaultBudgetAction: String) + + /** + * A description of the queue that helps identify what the queue is used for. + * + * Default: - "" + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-description) + * @param description A description of the queue that helps identify what the queue is used for. + * + */ + public fun description(description: String) + + /** + * The display name of the queue summary to update. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-displayname) + * @param displayName The display name of the queue summary to update. + */ + public fun displayName(displayName: String) + + /** + * The farm ID. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-farmid) + * @param farmId The farm ID. + */ + public fun farmId(farmId: String) + + /** + * The job attachment settings. + * + * These are the Amazon S3 bucket name and the Amazon S3 prefix. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-jobattachmentsettings) + * @param jobAttachmentSettings The job attachment settings. + */ + public fun jobAttachmentSettings(jobAttachmentSettings: IResolvable) + + /** + * The job attachment settings. + * + * These are the Amazon S3 bucket name and the Amazon S3 prefix. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-jobattachmentsettings) + * @param jobAttachmentSettings The job attachment settings. + */ + public fun jobAttachmentSettings(jobAttachmentSettings: JobAttachmentSettingsProperty) + + /** + * The job attachment settings. + * + * These are the Amazon S3 bucket name and the Amazon S3 prefix. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-jobattachmentsettings) + * @param jobAttachmentSettings The job attachment settings. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("ccd591204c471f9fb7d14eca3660cbd02ed1a761063708965fd92b58ba2f2a09") + public + fun jobAttachmentSettings(jobAttachmentSettings: JobAttachmentSettingsProperty.Builder.() -> Unit) + + /** + * Identifies the user for a job. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-jobrunasuser) + * @param jobRunAsUser Identifies the user for a job. + */ + public fun jobRunAsUser(jobRunAsUser: IResolvable) + + /** + * Identifies the user for a job. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-jobrunasuser) + * @param jobRunAsUser Identifies the user for a job. + */ + public fun jobRunAsUser(jobRunAsUser: JobRunAsUserProperty) + + /** + * Identifies the user for a job. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-jobrunasuser) + * @param jobRunAsUser Identifies the user for a job. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("d12b2f7d69069c42e873cee3380d9a10ba5236f1cc186ba19bd818a9a0d06480") + public fun jobRunAsUser(jobRunAsUser: JobRunAsUserProperty.Builder.() -> Unit) + + /** + * The file system location that the queue uses. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-requiredfilesystemlocationnames) + * @param requiredFileSystemLocationNames The file system location that the queue uses. + */ + public fun requiredFileSystemLocationNames(requiredFileSystemLocationNames: List) + + /** + * The file system location that the queue uses. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-requiredfilesystemlocationnames) + * @param requiredFileSystemLocationNames The file system location that the queue uses. + */ + public fun requiredFileSystemLocationNames(vararg requiredFileSystemLocationNames: String) + + /** + * The Amazon Resource Name (ARN) of the IAM role that workers use when running jobs in this + * queue. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-rolearn) + * @param roleArn The Amazon Resource Name (ARN) of the IAM role that workers use when running + * jobs in this queue. + */ + public fun roleArn(roleArn: String) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.services.deadline.CfnQueue.Builder = + software.amazon.awscdk.services.deadline.CfnQueue.Builder.create(scope, id) + + /** + * The identifiers of the storage profiles that this queue can use to share assets between + * workers using different operating systems. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-allowedstorageprofileids) + * @param allowedStorageProfileIds The identifiers of the storage profiles that this queue can + * use to share assets between workers using different operating systems. + */ + override fun allowedStorageProfileIds(allowedStorageProfileIds: List) { + cdkBuilder.allowedStorageProfileIds(allowedStorageProfileIds) + } + + /** + * The identifiers of the storage profiles that this queue can use to share assets between + * workers using different operating systems. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-allowedstorageprofileids) + * @param allowedStorageProfileIds The identifiers of the storage profiles that this queue can + * use to share assets between workers using different operating systems. + */ + override fun allowedStorageProfileIds(vararg allowedStorageProfileIds: String): Unit = + allowedStorageProfileIds(allowedStorageProfileIds.toList()) + + /** + * The default action taken on a queue summary if a budget wasn't configured. + * + * Default: - "NONE" + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-defaultbudgetaction) + * @param defaultBudgetAction The default action taken on a queue summary if a budget wasn't + * configured. + */ + override fun defaultBudgetAction(defaultBudgetAction: String) { + cdkBuilder.defaultBudgetAction(defaultBudgetAction) + } + + /** + * A description of the queue that helps identify what the queue is used for. + * + * Default: - "" + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-description) + * @param description A description of the queue that helps identify what the queue is used for. + * + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * The display name of the queue summary to update. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-displayname) + * @param displayName The display name of the queue summary to update. + */ + override fun displayName(displayName: String) { + cdkBuilder.displayName(displayName) + } + + /** + * The farm ID. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-farmid) + * @param farmId The farm ID. + */ + override fun farmId(farmId: String) { + cdkBuilder.farmId(farmId) + } + + /** + * The job attachment settings. + * + * These are the Amazon S3 bucket name and the Amazon S3 prefix. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-jobattachmentsettings) + * @param jobAttachmentSettings The job attachment settings. + */ + override fun jobAttachmentSettings(jobAttachmentSettings: IResolvable) { + cdkBuilder.jobAttachmentSettings(jobAttachmentSettings.let(IResolvable::unwrap)) + } + + /** + * The job attachment settings. + * + * These are the Amazon S3 bucket name and the Amazon S3 prefix. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-jobattachmentsettings) + * @param jobAttachmentSettings The job attachment settings. + */ + override fun jobAttachmentSettings(jobAttachmentSettings: JobAttachmentSettingsProperty) { + cdkBuilder.jobAttachmentSettings(jobAttachmentSettings.let(JobAttachmentSettingsProperty::unwrap)) + } + + /** + * The job attachment settings. + * + * These are the Amazon S3 bucket name and the Amazon S3 prefix. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-jobattachmentsettings) + * @param jobAttachmentSettings The job attachment settings. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("ccd591204c471f9fb7d14eca3660cbd02ed1a761063708965fd92b58ba2f2a09") + override + fun jobAttachmentSettings(jobAttachmentSettings: JobAttachmentSettingsProperty.Builder.() -> Unit): + Unit = jobAttachmentSettings(JobAttachmentSettingsProperty(jobAttachmentSettings)) + + /** + * Identifies the user for a job. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-jobrunasuser) + * @param jobRunAsUser Identifies the user for a job. + */ + override fun jobRunAsUser(jobRunAsUser: IResolvable) { + cdkBuilder.jobRunAsUser(jobRunAsUser.let(IResolvable::unwrap)) + } + + /** + * Identifies the user for a job. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-jobrunasuser) + * @param jobRunAsUser Identifies the user for a job. + */ + override fun jobRunAsUser(jobRunAsUser: JobRunAsUserProperty) { + cdkBuilder.jobRunAsUser(jobRunAsUser.let(JobRunAsUserProperty::unwrap)) + } + + /** + * Identifies the user for a job. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-jobrunasuser) + * @param jobRunAsUser Identifies the user for a job. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("d12b2f7d69069c42e873cee3380d9a10ba5236f1cc186ba19bd818a9a0d06480") + override fun jobRunAsUser(jobRunAsUser: JobRunAsUserProperty.Builder.() -> Unit): Unit = + jobRunAsUser(JobRunAsUserProperty(jobRunAsUser)) + + /** + * The file system location that the queue uses. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-requiredfilesystemlocationnames) + * @param requiredFileSystemLocationNames The file system location that the queue uses. + */ + override fun requiredFileSystemLocationNames(requiredFileSystemLocationNames: List) { + cdkBuilder.requiredFileSystemLocationNames(requiredFileSystemLocationNames) + } + + /** + * The file system location that the queue uses. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-requiredfilesystemlocationnames) + * @param requiredFileSystemLocationNames The file system location that the queue uses. + */ + override fun requiredFileSystemLocationNames(vararg requiredFileSystemLocationNames: String): + Unit = requiredFileSystemLocationNames(requiredFileSystemLocationNames.toList()) + + /** + * The Amazon Resource Name (ARN) of the IAM role that workers use when running jobs in this + * queue. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-rolearn) + * @param roleArn The Amazon Resource Name (ARN) of the IAM role that workers use when running + * jobs in this queue. + */ + override fun roleArn(roleArn: String) { + cdkBuilder.roleArn(roleArn) + } + + public fun build(): software.amazon.awscdk.services.deadline.CfnQueue = cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.deadline.CfnQueue.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnQueue { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnQueue(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnQueue): CfnQueue = + CfnQueue(cdkObject) + + internal fun unwrap(wrapped: CfnQueue): software.amazon.awscdk.services.deadline.CfnQueue = + wrapped.cdkObject as software.amazon.awscdk.services.deadline.CfnQueue + } + + /** + * The job attachment settings. + * + * These are the Amazon S3 bucket name and the Amazon S3 prefix. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * JobAttachmentSettingsProperty jobAttachmentSettingsProperty = + * JobAttachmentSettingsProperty.builder() + * .rootPrefix("rootPrefix") + * .s3BucketName("s3BucketName") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-queue-jobattachmentsettings.html) + */ + public interface JobAttachmentSettingsProperty { + /** + * The root prefix. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-queue-jobattachmentsettings.html#cfn-deadline-queue-jobattachmentsettings-rootprefix) + */ + public fun rootPrefix(): String + + /** + * The Amazon S3 bucket name. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-queue-jobattachmentsettings.html#cfn-deadline-queue-jobattachmentsettings-s3bucketname) + */ + public fun s3BucketName(): String + + /** + * A builder for [JobAttachmentSettingsProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param rootPrefix The root prefix. + */ + public fun rootPrefix(rootPrefix: String) + + /** + * @param s3BucketName The Amazon S3 bucket name. + */ + public fun s3BucketName(s3BucketName: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.deadline.CfnQueue.JobAttachmentSettingsProperty.Builder = + software.amazon.awscdk.services.deadline.CfnQueue.JobAttachmentSettingsProperty.builder() + + /** + * @param rootPrefix The root prefix. + */ + override fun rootPrefix(rootPrefix: String) { + cdkBuilder.rootPrefix(rootPrefix) + } + + /** + * @param s3BucketName The Amazon S3 bucket name. + */ + override fun s3BucketName(s3BucketName: String) { + cdkBuilder.s3BucketName(s3BucketName) + } + + public fun build(): + software.amazon.awscdk.services.deadline.CfnQueue.JobAttachmentSettingsProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.deadline.CfnQueue.JobAttachmentSettingsProperty, + ) : CdkObject(cdkObject), JobAttachmentSettingsProperty { + /** + * The root prefix. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-queue-jobattachmentsettings.html#cfn-deadline-queue-jobattachmentsettings-rootprefix) + */ + override fun rootPrefix(): String = unwrap(this).getRootPrefix() + + /** + * The Amazon S3 bucket name. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-queue-jobattachmentsettings.html#cfn-deadline-queue-jobattachmentsettings-s3bucketname) + */ + override fun s3BucketName(): String = unwrap(this).getS3BucketName() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): JobAttachmentSettingsProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnQueue.JobAttachmentSettingsProperty): + JobAttachmentSettingsProperty = CdkObjectWrappers.wrap(cdkObject) as? + JobAttachmentSettingsProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: JobAttachmentSettingsProperty): + software.amazon.awscdk.services.deadline.CfnQueue.JobAttachmentSettingsProperty = (wrapped + as CdkObject).cdkObject as + software.amazon.awscdk.services.deadline.CfnQueue.JobAttachmentSettingsProperty + } + } + + /** + * Identifies the user for a job. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * JobRunAsUserProperty jobRunAsUserProperty = JobRunAsUserProperty.builder() + * .runAs("runAs") + * // the properties below are optional + * .posix(PosixUserProperty.builder() + * .group("group") + * .user("user") + * .build()) + * .windows(WindowsUserProperty.builder() + * .passwordArn("passwordArn") + * .user("user") + * .build()) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-queue-jobrunasuser.html) + */ + public interface JobRunAsUserProperty { + /** + * The user and group that the jobs in the queue run as. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-queue-jobrunasuser.html#cfn-deadline-queue-jobrunasuser-posix) + */ + public fun posix(): Any? = unwrap(this).getPosix() + + /** + * Specifies whether the job should run using the queue's system user or if the job should run + * using the worker agent system user. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-queue-jobrunasuser.html#cfn-deadline-queue-jobrunasuser-runas) + */ + public fun runAs(): String + + /** + * Identifies a Microsoft Windows user. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-queue-jobrunasuser.html#cfn-deadline-queue-jobrunasuser-windows) + */ + public fun windows(): Any? = unwrap(this).getWindows() + + /** + * A builder for [JobRunAsUserProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param posix The user and group that the jobs in the queue run as. + */ + public fun posix(posix: IResolvable) + + /** + * @param posix The user and group that the jobs in the queue run as. + */ + public fun posix(posix: PosixUserProperty) + + /** + * @param posix The user and group that the jobs in the queue run as. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("451723aeabd7b73ef46a52c2cbeafe11423eed6c8337564f0b68373705d8cae7") + public fun posix(posix: PosixUserProperty.Builder.() -> Unit) + + /** + * @param runAs Specifies whether the job should run using the queue's system user or if the + * job should run using the worker agent system user. + */ + public fun runAs(runAs: String) + + /** + * @param windows Identifies a Microsoft Windows user. + */ + public fun windows(windows: IResolvable) + + /** + * @param windows Identifies a Microsoft Windows user. + */ + public fun windows(windows: WindowsUserProperty) + + /** + * @param windows Identifies a Microsoft Windows user. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("02654be1312b8216203af1c0d30a271340877267466212a0cfb22987198c4987") + public fun windows(windows: WindowsUserProperty.Builder.() -> Unit) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.deadline.CfnQueue.JobRunAsUserProperty.Builder = + software.amazon.awscdk.services.deadline.CfnQueue.JobRunAsUserProperty.builder() + + /** + * @param posix The user and group that the jobs in the queue run as. + */ + override fun posix(posix: IResolvable) { + cdkBuilder.posix(posix.let(IResolvable::unwrap)) + } + + /** + * @param posix The user and group that the jobs in the queue run as. + */ + override fun posix(posix: PosixUserProperty) { + cdkBuilder.posix(posix.let(PosixUserProperty::unwrap)) + } + + /** + * @param posix The user and group that the jobs in the queue run as. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("451723aeabd7b73ef46a52c2cbeafe11423eed6c8337564f0b68373705d8cae7") + override fun posix(posix: PosixUserProperty.Builder.() -> Unit): Unit = + posix(PosixUserProperty(posix)) + + /** + * @param runAs Specifies whether the job should run using the queue's system user or if the + * job should run using the worker agent system user. + */ + override fun runAs(runAs: String) { + cdkBuilder.runAs(runAs) + } + + /** + * @param windows Identifies a Microsoft Windows user. + */ + override fun windows(windows: IResolvable) { + cdkBuilder.windows(windows.let(IResolvable::unwrap)) + } + + /** + * @param windows Identifies a Microsoft Windows user. + */ + override fun windows(windows: WindowsUserProperty) { + cdkBuilder.windows(windows.let(WindowsUserProperty::unwrap)) + } + + /** + * @param windows Identifies a Microsoft Windows user. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("02654be1312b8216203af1c0d30a271340877267466212a0cfb22987198c4987") + override fun windows(windows: WindowsUserProperty.Builder.() -> Unit): Unit = + windows(WindowsUserProperty(windows)) + + public fun build(): software.amazon.awscdk.services.deadline.CfnQueue.JobRunAsUserProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.deadline.CfnQueue.JobRunAsUserProperty, + ) : CdkObject(cdkObject), JobRunAsUserProperty { + /** + * The user and group that the jobs in the queue run as. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-queue-jobrunasuser.html#cfn-deadline-queue-jobrunasuser-posix) + */ + override fun posix(): Any? = unwrap(this).getPosix() + + /** + * Specifies whether the job should run using the queue's system user or if the job should run + * using the worker agent system user. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-queue-jobrunasuser.html#cfn-deadline-queue-jobrunasuser-runas) + */ + override fun runAs(): String = unwrap(this).getRunAs() + + /** + * Identifies a Microsoft Windows user. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-queue-jobrunasuser.html#cfn-deadline-queue-jobrunasuser-windows) + */ + override fun windows(): Any? = unwrap(this).getWindows() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): JobRunAsUserProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnQueue.JobRunAsUserProperty): + JobRunAsUserProperty = CdkObjectWrappers.wrap(cdkObject) as? JobRunAsUserProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: JobRunAsUserProperty): + software.amazon.awscdk.services.deadline.CfnQueue.JobRunAsUserProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.deadline.CfnQueue.JobRunAsUserProperty + } + } + + /** + * The POSIX user. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * PosixUserProperty posixUserProperty = PosixUserProperty.builder() + * .group("group") + * .user("user") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-queue-posixuser.html) + */ + public interface PosixUserProperty { + /** + * The name of the POSIX user's group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-queue-posixuser.html#cfn-deadline-queue-posixuser-group) + */ + public fun group(): String + + /** + * The name of the POSIX user. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-queue-posixuser.html#cfn-deadline-queue-posixuser-user) + */ + public fun user(): String + + /** + * A builder for [PosixUserProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param group The name of the POSIX user's group. + */ + public fun group(group: String) + + /** + * @param user The name of the POSIX user. + */ + public fun user(user: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.deadline.CfnQueue.PosixUserProperty.Builder = + software.amazon.awscdk.services.deadline.CfnQueue.PosixUserProperty.builder() + + /** + * @param group The name of the POSIX user's group. + */ + override fun group(group: String) { + cdkBuilder.group(group) + } + + /** + * @param user The name of the POSIX user. + */ + override fun user(user: String) { + cdkBuilder.user(user) + } + + public fun build(): software.amazon.awscdk.services.deadline.CfnQueue.PosixUserProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.deadline.CfnQueue.PosixUserProperty, + ) : CdkObject(cdkObject), PosixUserProperty { + /** + * The name of the POSIX user's group. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-queue-posixuser.html#cfn-deadline-queue-posixuser-group) + */ + override fun group(): String = unwrap(this).getGroup() + + /** + * The name of the POSIX user. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-queue-posixuser.html#cfn-deadline-queue-posixuser-user) + */ + override fun user(): String = unwrap(this).getUser() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): PosixUserProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnQueue.PosixUserProperty): + PosixUserProperty = CdkObjectWrappers.wrap(cdkObject) as? PosixUserProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: PosixUserProperty): + software.amazon.awscdk.services.deadline.CfnQueue.PosixUserProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.deadline.CfnQueue.PosixUserProperty + } + } + + /** + * The Windows user details. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * WindowsUserProperty windowsUserProperty = WindowsUserProperty.builder() + * .passwordArn("passwordArn") + * .user("user") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-queue-windowsuser.html) + */ + public interface WindowsUserProperty { + /** + * The password ARN for the Windows user. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-queue-windowsuser.html#cfn-deadline-queue-windowsuser-passwordarn) + */ + public fun passwordArn(): String + + /** + * The user. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-queue-windowsuser.html#cfn-deadline-queue-windowsuser-user) + */ + public fun user(): String + + /** + * A builder for [WindowsUserProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param passwordArn The password ARN for the Windows user. + */ + public fun passwordArn(passwordArn: String) + + /** + * @param user The user. + */ + public fun user(user: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.deadline.CfnQueue.WindowsUserProperty.Builder = + software.amazon.awscdk.services.deadline.CfnQueue.WindowsUserProperty.builder() + + /** + * @param passwordArn The password ARN for the Windows user. + */ + override fun passwordArn(passwordArn: String) { + cdkBuilder.passwordArn(passwordArn) + } + + /** + * @param user The user. + */ + override fun user(user: String) { + cdkBuilder.user(user) + } + + public fun build(): software.amazon.awscdk.services.deadline.CfnQueue.WindowsUserProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.deadline.CfnQueue.WindowsUserProperty, + ) : CdkObject(cdkObject), WindowsUserProperty { + /** + * The password ARN for the Windows user. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-queue-windowsuser.html#cfn-deadline-queue-windowsuser-passwordarn) + */ + override fun passwordArn(): String = unwrap(this).getPasswordArn() + + /** + * The user. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-queue-windowsuser.html#cfn-deadline-queue-windowsuser-user) + */ + override fun user(): String = unwrap(this).getUser() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): WindowsUserProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnQueue.WindowsUserProperty): + WindowsUserProperty = CdkObjectWrappers.wrap(cdkObject) as? WindowsUserProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: WindowsUserProperty): + software.amazon.awscdk.services.deadline.CfnQueue.WindowsUserProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.deadline.CfnQueue.WindowsUserProperty + } + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnQueueEnvironment.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnQueueEnvironment.kt new file mode 100644 index 0000000000..09248c04ac --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnQueueEnvironment.kt @@ -0,0 +1,265 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.deadline + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import kotlin.Number +import kotlin.String +import kotlin.Unit +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * Creates an environment for a queue that defines how jobs in the queue run. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * CfnQueueEnvironment cfnQueueEnvironment = CfnQueueEnvironment.Builder.create(this, + * "MyCfnQueueEnvironment") + * .farmId("farmId") + * .priority(123) + * .queueId("queueId") + * .template("template") + * .templateType("templateType") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queueenvironment.html) + */ +public open class CfnQueueEnvironment( + cdkObject: software.amazon.awscdk.services.deadline.CfnQueueEnvironment, +) : CfnResource(cdkObject), IInspectable { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnQueueEnvironmentProps, + ) : + this(software.amazon.awscdk.services.deadline.CfnQueueEnvironment(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnQueueEnvironmentProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnQueueEnvironmentProps.Builder.() -> Unit, + ) : this(scope, id, CfnQueueEnvironmentProps(props) + ) + + /** + * The name of the queue environment. + */ + public open fun attrName(): String = unwrap(this).getAttrName() + + /** + * The queue environment ID. + */ + public open fun attrQueueEnvironmentId(): String = unwrap(this).getAttrQueueEnvironmentId() + + /** + * The identifier assigned to the farm that contains the queue. + */ + public open fun farmId(): String = unwrap(this).getFarmId() + + /** + * The identifier assigned to the farm that contains the queue. + */ + public open fun farmId(`value`: String) { + unwrap(this).setFarmId(`value`) + } + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * The queue environment's priority. + */ + public open fun priority(): Number = unwrap(this).getPriority() + + /** + * The queue environment's priority. + */ + public open fun priority(`value`: Number) { + unwrap(this).setPriority(`value`) + } + + /** + * The unique identifier of the queue that contains the environment. + */ + public open fun queueId(): String = unwrap(this).getQueueId() + + /** + * The unique identifier of the queue that contains the environment. + */ + public open fun queueId(`value`: String) { + unwrap(this).setQueueId(`value`) + } + + /** + * A JSON or YAML template the describes the processing environment for the queue. + */ + public open fun template(): String = unwrap(this).getTemplate() + + /** + * A JSON or YAML template the describes the processing environment for the queue. + */ + public open fun template(`value`: String) { + unwrap(this).setTemplate(`value`) + } + + /** + * Specifies whether the template for the queue environment is JSON or YAML. + */ + public open fun templateType(): String = unwrap(this).getTemplateType() + + /** + * Specifies whether the template for the queue environment is JSON or YAML. + */ + public open fun templateType(`value`: String) { + unwrap(this).setTemplateType(`value`) + } + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.deadline.CfnQueueEnvironment]. + */ + @CdkDslMarker + public interface Builder { + /** + * The identifier assigned to the farm that contains the queue. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queueenvironment.html#cfn-deadline-queueenvironment-farmid) + * @param farmId The identifier assigned to the farm that contains the queue. + */ + public fun farmId(farmId: String) + + /** + * The queue environment's priority. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queueenvironment.html#cfn-deadline-queueenvironment-priority) + * @param priority The queue environment's priority. + */ + public fun priority(priority: Number) + + /** + * The unique identifier of the queue that contains the environment. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queueenvironment.html#cfn-deadline-queueenvironment-queueid) + * @param queueId The unique identifier of the queue that contains the environment. + */ + public fun queueId(queueId: String) + + /** + * A JSON or YAML template the describes the processing environment for the queue. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queueenvironment.html#cfn-deadline-queueenvironment-template) + * @param template A JSON or YAML template the describes the processing environment for the + * queue. + */ + public fun template(template: String) + + /** + * Specifies whether the template for the queue environment is JSON or YAML. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queueenvironment.html#cfn-deadline-queueenvironment-templatetype) + * @param templateType Specifies whether the template for the queue environment is JSON or YAML. + * + */ + public fun templateType(templateType: String) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.services.deadline.CfnQueueEnvironment.Builder = + software.amazon.awscdk.services.deadline.CfnQueueEnvironment.Builder.create(scope, id) + + /** + * The identifier assigned to the farm that contains the queue. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queueenvironment.html#cfn-deadline-queueenvironment-farmid) + * @param farmId The identifier assigned to the farm that contains the queue. + */ + override fun farmId(farmId: String) { + cdkBuilder.farmId(farmId) + } + + /** + * The queue environment's priority. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queueenvironment.html#cfn-deadline-queueenvironment-priority) + * @param priority The queue environment's priority. + */ + override fun priority(priority: Number) { + cdkBuilder.priority(priority) + } + + /** + * The unique identifier of the queue that contains the environment. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queueenvironment.html#cfn-deadline-queueenvironment-queueid) + * @param queueId The unique identifier of the queue that contains the environment. + */ + override fun queueId(queueId: String) { + cdkBuilder.queueId(queueId) + } + + /** + * A JSON or YAML template the describes the processing environment for the queue. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queueenvironment.html#cfn-deadline-queueenvironment-template) + * @param template A JSON or YAML template the describes the processing environment for the + * queue. + */ + override fun template(template: String) { + cdkBuilder.template(template) + } + + /** + * Specifies whether the template for the queue environment is JSON or YAML. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queueenvironment.html#cfn-deadline-queueenvironment-templatetype) + * @param templateType Specifies whether the template for the queue environment is JSON or YAML. + * + */ + override fun templateType(templateType: String) { + cdkBuilder.templateType(templateType) + } + + public fun build(): software.amazon.awscdk.services.deadline.CfnQueueEnvironment = + cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.deadline.CfnQueueEnvironment.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnQueueEnvironment { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnQueueEnvironment(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnQueueEnvironment): + CfnQueueEnvironment = CfnQueueEnvironment(cdkObject) + + internal fun unwrap(wrapped: CfnQueueEnvironment): + software.amazon.awscdk.services.deadline.CfnQueueEnvironment = wrapped.cdkObject as + software.amazon.awscdk.services.deadline.CfnQueueEnvironment + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnQueueEnvironmentProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnQueueEnvironmentProps.kt new file mode 100644 index 0000000000..b664b10eab --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnQueueEnvironmentProps.kt @@ -0,0 +1,200 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.deadline + +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Number +import kotlin.String +import kotlin.Unit + +/** + * Properties for defining a `CfnQueueEnvironment`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * CfnQueueEnvironmentProps cfnQueueEnvironmentProps = CfnQueueEnvironmentProps.builder() + * .farmId("farmId") + * .priority(123) + * .queueId("queueId") + * .template("template") + * .templateType("templateType") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queueenvironment.html) + */ +public interface CfnQueueEnvironmentProps { + /** + * The identifier assigned to the farm that contains the queue. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queueenvironment.html#cfn-deadline-queueenvironment-farmid) + */ + public fun farmId(): String + + /** + * The queue environment's priority. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queueenvironment.html#cfn-deadline-queueenvironment-priority) + */ + public fun priority(): Number + + /** + * The unique identifier of the queue that contains the environment. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queueenvironment.html#cfn-deadline-queueenvironment-queueid) + */ + public fun queueId(): String + + /** + * A JSON or YAML template the describes the processing environment for the queue. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queueenvironment.html#cfn-deadline-queueenvironment-template) + */ + public fun template(): String + + /** + * Specifies whether the template for the queue environment is JSON or YAML. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queueenvironment.html#cfn-deadline-queueenvironment-templatetype) + */ + public fun templateType(): String + + /** + * A builder for [CfnQueueEnvironmentProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param farmId The identifier assigned to the farm that contains the queue. + */ + public fun farmId(farmId: String) + + /** + * @param priority The queue environment's priority. + */ + public fun priority(priority: Number) + + /** + * @param queueId The unique identifier of the queue that contains the environment. + */ + public fun queueId(queueId: String) + + /** + * @param template A JSON or YAML template the describes the processing environment for the + * queue. + */ + public fun template(template: String) + + /** + * @param templateType Specifies whether the template for the queue environment is JSON or YAML. + * + */ + public fun templateType(templateType: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.deadline.CfnQueueEnvironmentProps.Builder = + software.amazon.awscdk.services.deadline.CfnQueueEnvironmentProps.builder() + + /** + * @param farmId The identifier assigned to the farm that contains the queue. + */ + override fun farmId(farmId: String) { + cdkBuilder.farmId(farmId) + } + + /** + * @param priority The queue environment's priority. + */ + override fun priority(priority: Number) { + cdkBuilder.priority(priority) + } + + /** + * @param queueId The unique identifier of the queue that contains the environment. + */ + override fun queueId(queueId: String) { + cdkBuilder.queueId(queueId) + } + + /** + * @param template A JSON or YAML template the describes the processing environment for the + * queue. + */ + override fun template(template: String) { + cdkBuilder.template(template) + } + + /** + * @param templateType Specifies whether the template for the queue environment is JSON or YAML. + * + */ + override fun templateType(templateType: String) { + cdkBuilder.templateType(templateType) + } + + public fun build(): software.amazon.awscdk.services.deadline.CfnQueueEnvironmentProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.deadline.CfnQueueEnvironmentProps, + ) : CdkObject(cdkObject), CfnQueueEnvironmentProps { + /** + * The identifier assigned to the farm that contains the queue. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queueenvironment.html#cfn-deadline-queueenvironment-farmid) + */ + override fun farmId(): String = unwrap(this).getFarmId() + + /** + * The queue environment's priority. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queueenvironment.html#cfn-deadline-queueenvironment-priority) + */ + override fun priority(): Number = unwrap(this).getPriority() + + /** + * The unique identifier of the queue that contains the environment. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queueenvironment.html#cfn-deadline-queueenvironment-queueid) + */ + override fun queueId(): String = unwrap(this).getQueueId() + + /** + * A JSON or YAML template the describes the processing environment for the queue. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queueenvironment.html#cfn-deadline-queueenvironment-template) + */ + override fun template(): String = unwrap(this).getTemplate() + + /** + * Specifies whether the template for the queue environment is JSON or YAML. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queueenvironment.html#cfn-deadline-queueenvironment-templatetype) + */ + override fun templateType(): String = unwrap(this).getTemplateType() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnQueueEnvironmentProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnQueueEnvironmentProps): + CfnQueueEnvironmentProps = CdkObjectWrappers.wrap(cdkObject) as? CfnQueueEnvironmentProps ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnQueueEnvironmentProps): + software.amazon.awscdk.services.deadline.CfnQueueEnvironmentProps = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.deadline.CfnQueueEnvironmentProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnQueueFleetAssociation.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnQueueFleetAssociation.kt new file mode 100644 index 0000000000..3900a31948 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnQueueFleetAssociation.kt @@ -0,0 +1,189 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.deadline + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import kotlin.String +import kotlin.Unit +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * Creates an association between a queue and a fleet. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * CfnQueueFleetAssociation cfnQueueFleetAssociation = CfnQueueFleetAssociation.Builder.create(this, + * "MyCfnQueueFleetAssociation") + * .farmId("farmId") + * .fleetId("fleetId") + * .queueId("queueId") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queuefleetassociation.html) + */ +public open class CfnQueueFleetAssociation( + cdkObject: software.amazon.awscdk.services.deadline.CfnQueueFleetAssociation, +) : CfnResource(cdkObject), IInspectable { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnQueueFleetAssociationProps, + ) : + this(software.amazon.awscdk.services.deadline.CfnQueueFleetAssociation(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnQueueFleetAssociationProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnQueueFleetAssociationProps.Builder.() -> Unit, + ) : this(scope, id, CfnQueueFleetAssociationProps(props) + ) + + /** + * The identifier of the farm that contains the queue and the fleet. + */ + public open fun farmId(): String = unwrap(this).getFarmId() + + /** + * The identifier of the farm that contains the queue and the fleet. + */ + public open fun farmId(`value`: String) { + unwrap(this).setFarmId(`value`) + } + + /** + * The fleet ID. + */ + public open fun fleetId(): String = unwrap(this).getFleetId() + + /** + * The fleet ID. + */ + public open fun fleetId(`value`: String) { + unwrap(this).setFleetId(`value`) + } + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * The queue ID. + */ + public open fun queueId(): String = unwrap(this).getQueueId() + + /** + * The queue ID. + */ + public open fun queueId(`value`: String) { + unwrap(this).setQueueId(`value`) + } + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.deadline.CfnQueueFleetAssociation]. + */ + @CdkDslMarker + public interface Builder { + /** + * The identifier of the farm that contains the queue and the fleet. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queuefleetassociation.html#cfn-deadline-queuefleetassociation-farmid) + * @param farmId The identifier of the farm that contains the queue and the fleet. + */ + public fun farmId(farmId: String) + + /** + * The fleet ID. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queuefleetassociation.html#cfn-deadline-queuefleetassociation-fleetid) + * @param fleetId The fleet ID. + */ + public fun fleetId(fleetId: String) + + /** + * The queue ID. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queuefleetassociation.html#cfn-deadline-queuefleetassociation-queueid) + * @param queueId The queue ID. + */ + public fun queueId(queueId: String) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.deadline.CfnQueueFleetAssociation.Builder = + software.amazon.awscdk.services.deadline.CfnQueueFleetAssociation.Builder.create(scope, id) + + /** + * The identifier of the farm that contains the queue and the fleet. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queuefleetassociation.html#cfn-deadline-queuefleetassociation-farmid) + * @param farmId The identifier of the farm that contains the queue and the fleet. + */ + override fun farmId(farmId: String) { + cdkBuilder.farmId(farmId) + } + + /** + * The fleet ID. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queuefleetassociation.html#cfn-deadline-queuefleetassociation-fleetid) + * @param fleetId The fleet ID. + */ + override fun fleetId(fleetId: String) { + cdkBuilder.fleetId(fleetId) + } + + /** + * The queue ID. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queuefleetassociation.html#cfn-deadline-queuefleetassociation-queueid) + * @param queueId The queue ID. + */ + override fun queueId(queueId: String) { + cdkBuilder.queueId(queueId) + } + + public fun build(): software.amazon.awscdk.services.deadline.CfnQueueFleetAssociation = + cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.deadline.CfnQueueFleetAssociation.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnQueueFleetAssociation { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnQueueFleetAssociation(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnQueueFleetAssociation): + CfnQueueFleetAssociation = CfnQueueFleetAssociation(cdkObject) + + internal fun unwrap(wrapped: CfnQueueFleetAssociation): + software.amazon.awscdk.services.deadline.CfnQueueFleetAssociation = wrapped.cdkObject as + software.amazon.awscdk.services.deadline.CfnQueueFleetAssociation + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnQueueFleetAssociationProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnQueueFleetAssociationProps.kt new file mode 100644 index 0000000000..2144b3644b --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnQueueFleetAssociationProps.kt @@ -0,0 +1,144 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.deadline + +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.String +import kotlin.Unit + +/** + * Properties for defining a `CfnQueueFleetAssociation`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * CfnQueueFleetAssociationProps cfnQueueFleetAssociationProps = + * CfnQueueFleetAssociationProps.builder() + * .farmId("farmId") + * .fleetId("fleetId") + * .queueId("queueId") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queuefleetassociation.html) + */ +public interface CfnQueueFleetAssociationProps { + /** + * The identifier of the farm that contains the queue and the fleet. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queuefleetassociation.html#cfn-deadline-queuefleetassociation-farmid) + */ + public fun farmId(): String + + /** + * The fleet ID. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queuefleetassociation.html#cfn-deadline-queuefleetassociation-fleetid) + */ + public fun fleetId(): String + + /** + * The queue ID. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queuefleetassociation.html#cfn-deadline-queuefleetassociation-queueid) + */ + public fun queueId(): String + + /** + * A builder for [CfnQueueFleetAssociationProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param farmId The identifier of the farm that contains the queue and the fleet. + */ + public fun farmId(farmId: String) + + /** + * @param fleetId The fleet ID. + */ + public fun fleetId(fleetId: String) + + /** + * @param queueId The queue ID. + */ + public fun queueId(queueId: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.deadline.CfnQueueFleetAssociationProps.Builder = + software.amazon.awscdk.services.deadline.CfnQueueFleetAssociationProps.builder() + + /** + * @param farmId The identifier of the farm that contains the queue and the fleet. + */ + override fun farmId(farmId: String) { + cdkBuilder.farmId(farmId) + } + + /** + * @param fleetId The fleet ID. + */ + override fun fleetId(fleetId: String) { + cdkBuilder.fleetId(fleetId) + } + + /** + * @param queueId The queue ID. + */ + override fun queueId(queueId: String) { + cdkBuilder.queueId(queueId) + } + + public fun build(): software.amazon.awscdk.services.deadline.CfnQueueFleetAssociationProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.deadline.CfnQueueFleetAssociationProps, + ) : CdkObject(cdkObject), CfnQueueFleetAssociationProps { + /** + * The identifier of the farm that contains the queue and the fleet. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queuefleetassociation.html#cfn-deadline-queuefleetassociation-farmid) + */ + override fun farmId(): String = unwrap(this).getFarmId() + + /** + * The fleet ID. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queuefleetassociation.html#cfn-deadline-queuefleetassociation-fleetid) + */ + override fun fleetId(): String = unwrap(this).getFleetId() + + /** + * The queue ID. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queuefleetassociation.html#cfn-deadline-queuefleetassociation-queueid) + */ + override fun queueId(): String = unwrap(this).getQueueId() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnQueueFleetAssociationProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnQueueFleetAssociationProps): + CfnQueueFleetAssociationProps = CdkObjectWrappers.wrap(cdkObject) as? + CfnQueueFleetAssociationProps ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnQueueFleetAssociationProps): + software.amazon.awscdk.services.deadline.CfnQueueFleetAssociationProps = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.deadline.CfnQueueFleetAssociationProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnQueueProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnQueueProps.kt new file mode 100644 index 0000000000..3b09565f6b --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnQueueProps.kt @@ -0,0 +1,432 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.deadline + +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.jvm.JvmName + +/** + * Properties for defining a `CfnQueue`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * CfnQueueProps cfnQueueProps = CfnQueueProps.builder() + * .displayName("displayName") + * // the properties below are optional + * .allowedStorageProfileIds(List.of("allowedStorageProfileIds")) + * .defaultBudgetAction("defaultBudgetAction") + * .description("description") + * .farmId("farmId") + * .jobAttachmentSettings(JobAttachmentSettingsProperty.builder() + * .rootPrefix("rootPrefix") + * .s3BucketName("s3BucketName") + * .build()) + * .jobRunAsUser(JobRunAsUserProperty.builder() + * .runAs("runAs") + * // the properties below are optional + * .posix(PosixUserProperty.builder() + * .group("group") + * .user("user") + * .build()) + * .windows(WindowsUserProperty.builder() + * .passwordArn("passwordArn") + * .user("user") + * .build()) + * .build()) + * .requiredFileSystemLocationNames(List.of("requiredFileSystemLocationNames")) + * .roleArn("roleArn") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html) + */ +public interface CfnQueueProps { + /** + * The identifiers of the storage profiles that this queue can use to share assets between workers + * using different operating systems. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-allowedstorageprofileids) + */ + public fun allowedStorageProfileIds(): List = unwrap(this).getAllowedStorageProfileIds() + ?: emptyList() + + /** + * The default action taken on a queue summary if a budget wasn't configured. + * + * Default: - "NONE" + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-defaultbudgetaction) + */ + public fun defaultBudgetAction(): String? = unwrap(this).getDefaultBudgetAction() + + /** + * A description of the queue that helps identify what the queue is used for. + * + * Default: - "" + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-description) + */ + public fun description(): String? = unwrap(this).getDescription() + + /** + * The display name of the queue summary to update. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-displayname) + */ + public fun displayName(): String + + /** + * The farm ID. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-farmid) + */ + public fun farmId(): String? = unwrap(this).getFarmId() + + /** + * The job attachment settings. + * + * These are the Amazon S3 bucket name and the Amazon S3 prefix. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-jobattachmentsettings) + */ + public fun jobAttachmentSettings(): Any? = unwrap(this).getJobAttachmentSettings() + + /** + * Identifies the user for a job. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-jobrunasuser) + */ + public fun jobRunAsUser(): Any? = unwrap(this).getJobRunAsUser() + + /** + * The file system location that the queue uses. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-requiredfilesystemlocationnames) + */ + public fun requiredFileSystemLocationNames(): List = + unwrap(this).getRequiredFileSystemLocationNames() ?: emptyList() + + /** + * The Amazon Resource Name (ARN) of the IAM role that workers use when running jobs in this + * queue. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-rolearn) + */ + public fun roleArn(): String? = unwrap(this).getRoleArn() + + /** + * A builder for [CfnQueueProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param allowedStorageProfileIds The identifiers of the storage profiles that this queue can + * use to share assets between workers using different operating systems. + */ + public fun allowedStorageProfileIds(allowedStorageProfileIds: List) + + /** + * @param allowedStorageProfileIds The identifiers of the storage profiles that this queue can + * use to share assets between workers using different operating systems. + */ + public fun allowedStorageProfileIds(vararg allowedStorageProfileIds: String) + + /** + * @param defaultBudgetAction The default action taken on a queue summary if a budget wasn't + * configured. + */ + public fun defaultBudgetAction(defaultBudgetAction: String) + + /** + * @param description A description of the queue that helps identify what the queue is used for. + */ + public fun description(description: String) + + /** + * @param displayName The display name of the queue summary to update. + */ + public fun displayName(displayName: String) + + /** + * @param farmId The farm ID. + */ + public fun farmId(farmId: String) + + /** + * @param jobAttachmentSettings The job attachment settings. + * These are the Amazon S3 bucket name and the Amazon S3 prefix. + */ + public fun jobAttachmentSettings(jobAttachmentSettings: IResolvable) + + /** + * @param jobAttachmentSettings The job attachment settings. + * These are the Amazon S3 bucket name and the Amazon S3 prefix. + */ + public fun jobAttachmentSettings(jobAttachmentSettings: CfnQueue.JobAttachmentSettingsProperty) + + /** + * @param jobAttachmentSettings The job attachment settings. + * These are the Amazon S3 bucket name and the Amazon S3 prefix. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("74cda5701e444bcfee936cf7f08f9f1aa2b5a79268d2fd1a5eb2261186f6abee") + public + fun jobAttachmentSettings(jobAttachmentSettings: CfnQueue.JobAttachmentSettingsProperty.Builder.() -> Unit) + + /** + * @param jobRunAsUser Identifies the user for a job. + */ + public fun jobRunAsUser(jobRunAsUser: IResolvable) + + /** + * @param jobRunAsUser Identifies the user for a job. + */ + public fun jobRunAsUser(jobRunAsUser: CfnQueue.JobRunAsUserProperty) + + /** + * @param jobRunAsUser Identifies the user for a job. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("80646a702c3e0f339ed2b6192ba2735a58ffd9707de18101d58002871e0f78d6") + public fun jobRunAsUser(jobRunAsUser: CfnQueue.JobRunAsUserProperty.Builder.() -> Unit) + + /** + * @param requiredFileSystemLocationNames The file system location that the queue uses. + */ + public fun requiredFileSystemLocationNames(requiredFileSystemLocationNames: List) + + /** + * @param requiredFileSystemLocationNames The file system location that the queue uses. + */ + public fun requiredFileSystemLocationNames(vararg requiredFileSystemLocationNames: String) + + /** + * @param roleArn The Amazon Resource Name (ARN) of the IAM role that workers use when running + * jobs in this queue. + */ + public fun roleArn(roleArn: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.services.deadline.CfnQueueProps.Builder = + software.amazon.awscdk.services.deadline.CfnQueueProps.builder() + + /** + * @param allowedStorageProfileIds The identifiers of the storage profiles that this queue can + * use to share assets between workers using different operating systems. + */ + override fun allowedStorageProfileIds(allowedStorageProfileIds: List) { + cdkBuilder.allowedStorageProfileIds(allowedStorageProfileIds) + } + + /** + * @param allowedStorageProfileIds The identifiers of the storage profiles that this queue can + * use to share assets between workers using different operating systems. + */ + override fun allowedStorageProfileIds(vararg allowedStorageProfileIds: String): Unit = + allowedStorageProfileIds(allowedStorageProfileIds.toList()) + + /** + * @param defaultBudgetAction The default action taken on a queue summary if a budget wasn't + * configured. + */ + override fun defaultBudgetAction(defaultBudgetAction: String) { + cdkBuilder.defaultBudgetAction(defaultBudgetAction) + } + + /** + * @param description A description of the queue that helps identify what the queue is used for. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * @param displayName The display name of the queue summary to update. + */ + override fun displayName(displayName: String) { + cdkBuilder.displayName(displayName) + } + + /** + * @param farmId The farm ID. + */ + override fun farmId(farmId: String) { + cdkBuilder.farmId(farmId) + } + + /** + * @param jobAttachmentSettings The job attachment settings. + * These are the Amazon S3 bucket name and the Amazon S3 prefix. + */ + override fun jobAttachmentSettings(jobAttachmentSettings: IResolvable) { + cdkBuilder.jobAttachmentSettings(jobAttachmentSettings.let(IResolvable::unwrap)) + } + + /** + * @param jobAttachmentSettings The job attachment settings. + * These are the Amazon S3 bucket name and the Amazon S3 prefix. + */ + override + fun jobAttachmentSettings(jobAttachmentSettings: CfnQueue.JobAttachmentSettingsProperty) { + cdkBuilder.jobAttachmentSettings(jobAttachmentSettings.let(CfnQueue.JobAttachmentSettingsProperty::unwrap)) + } + + /** + * @param jobAttachmentSettings The job attachment settings. + * These are the Amazon S3 bucket name and the Amazon S3 prefix. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("74cda5701e444bcfee936cf7f08f9f1aa2b5a79268d2fd1a5eb2261186f6abee") + override + fun jobAttachmentSettings(jobAttachmentSettings: CfnQueue.JobAttachmentSettingsProperty.Builder.() -> Unit): + Unit = jobAttachmentSettings(CfnQueue.JobAttachmentSettingsProperty(jobAttachmentSettings)) + + /** + * @param jobRunAsUser Identifies the user for a job. + */ + override fun jobRunAsUser(jobRunAsUser: IResolvable) { + cdkBuilder.jobRunAsUser(jobRunAsUser.let(IResolvable::unwrap)) + } + + /** + * @param jobRunAsUser Identifies the user for a job. + */ + override fun jobRunAsUser(jobRunAsUser: CfnQueue.JobRunAsUserProperty) { + cdkBuilder.jobRunAsUser(jobRunAsUser.let(CfnQueue.JobRunAsUserProperty::unwrap)) + } + + /** + * @param jobRunAsUser Identifies the user for a job. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("80646a702c3e0f339ed2b6192ba2735a58ffd9707de18101d58002871e0f78d6") + override fun jobRunAsUser(jobRunAsUser: CfnQueue.JobRunAsUserProperty.Builder.() -> Unit): Unit + = jobRunAsUser(CfnQueue.JobRunAsUserProperty(jobRunAsUser)) + + /** + * @param requiredFileSystemLocationNames The file system location that the queue uses. + */ + override fun requiredFileSystemLocationNames(requiredFileSystemLocationNames: List) { + cdkBuilder.requiredFileSystemLocationNames(requiredFileSystemLocationNames) + } + + /** + * @param requiredFileSystemLocationNames The file system location that the queue uses. + */ + override fun requiredFileSystemLocationNames(vararg requiredFileSystemLocationNames: String): + Unit = requiredFileSystemLocationNames(requiredFileSystemLocationNames.toList()) + + /** + * @param roleArn The Amazon Resource Name (ARN) of the IAM role that workers use when running + * jobs in this queue. + */ + override fun roleArn(roleArn: String) { + cdkBuilder.roleArn(roleArn) + } + + public fun build(): software.amazon.awscdk.services.deadline.CfnQueueProps = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.deadline.CfnQueueProps, + ) : CdkObject(cdkObject), CfnQueueProps { + /** + * The identifiers of the storage profiles that this queue can use to share assets between + * workers using different operating systems. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-allowedstorageprofileids) + */ + override fun allowedStorageProfileIds(): List = + unwrap(this).getAllowedStorageProfileIds() ?: emptyList() + + /** + * The default action taken on a queue summary if a budget wasn't configured. + * + * Default: - "NONE" + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-defaultbudgetaction) + */ + override fun defaultBudgetAction(): String? = unwrap(this).getDefaultBudgetAction() + + /** + * A description of the queue that helps identify what the queue is used for. + * + * Default: - "" + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-description) + */ + override fun description(): String? = unwrap(this).getDescription() + + /** + * The display name of the queue summary to update. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-displayname) + */ + override fun displayName(): String = unwrap(this).getDisplayName() + + /** + * The farm ID. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-farmid) + */ + override fun farmId(): String? = unwrap(this).getFarmId() + + /** + * The job attachment settings. + * + * These are the Amazon S3 bucket name and the Amazon S3 prefix. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-jobattachmentsettings) + */ + override fun jobAttachmentSettings(): Any? = unwrap(this).getJobAttachmentSettings() + + /** + * Identifies the user for a job. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-jobrunasuser) + */ + override fun jobRunAsUser(): Any? = unwrap(this).getJobRunAsUser() + + /** + * The file system location that the queue uses. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-requiredfilesystemlocationnames) + */ + override fun requiredFileSystemLocationNames(): List = + unwrap(this).getRequiredFileSystemLocationNames() ?: emptyList() + + /** + * The Amazon Resource Name (ARN) of the IAM role that workers use when running jobs in this + * queue. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-queue.html#cfn-deadline-queue-rolearn) + */ + override fun roleArn(): String? = unwrap(this).getRoleArn() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnQueueProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnQueueProps): + CfnQueueProps = CdkObjectWrappers.wrap(cdkObject) as? CfnQueueProps ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnQueueProps): + software.amazon.awscdk.services.deadline.CfnQueueProps = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.deadline.CfnQueueProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnStorageProfile.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnStorageProfile.kt new file mode 100644 index 0000000000..bea8415a44 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnStorageProfile.kt @@ -0,0 +1,425 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.deadline + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * Creates a storage profile that specifies the operating system, file type, and file location of + * resources used on a farm. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * CfnStorageProfile cfnStorageProfile = CfnStorageProfile.Builder.create(this, + * "MyCfnStorageProfile") + * .displayName("displayName") + * .osFamily("osFamily") + * // the properties below are optional + * .farmId("farmId") + * .fileSystemLocations(List.of(FileSystemLocationProperty.builder() + * .name("name") + * .path("path") + * .type("type") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-storageprofile.html) + */ +public open class CfnStorageProfile( + cdkObject: software.amazon.awscdk.services.deadline.CfnStorageProfile, +) : CfnResource(cdkObject), IInspectable { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnStorageProfileProps, + ) : + this(software.amazon.awscdk.services.deadline.CfnStorageProfile(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnStorageProfileProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnStorageProfileProps.Builder.() -> Unit, + ) : this(scope, id, CfnStorageProfileProps(props) + ) + + /** + * The storage profile ID. + */ + public open fun attrStorageProfileId(): String = unwrap(this).getAttrStorageProfileId() + + /** + * The display name of the storage profile summary to update. + */ + public open fun displayName(): String = unwrap(this).getDisplayName() + + /** + * The display name of the storage profile summary to update. + */ + public open fun displayName(`value`: String) { + unwrap(this).setDisplayName(`value`) + } + + /** + * The unique identifier of the farm that contains the storage profile. + */ + public open fun farmId(): String? = unwrap(this).getFarmId() + + /** + * The unique identifier of the farm that contains the storage profile. + */ + public open fun farmId(`value`: String) { + unwrap(this).setFarmId(`value`) + } + + /** + * Operating system specific file system path to the storage location. + */ + public open fun fileSystemLocations(): Any? = unwrap(this).getFileSystemLocations() + + /** + * Operating system specific file system path to the storage location. + */ + public open fun fileSystemLocations(`value`: IResolvable) { + unwrap(this).setFileSystemLocations(`value`.let(IResolvable::unwrap)) + } + + /** + * Operating system specific file system path to the storage location. + */ + public open fun fileSystemLocations(`value`: List) { + unwrap(this).setFileSystemLocations(`value`.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * Operating system specific file system path to the storage location. + */ + public open fun fileSystemLocations(vararg `value`: Any): Unit = + fileSystemLocations(`value`.toList()) + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * The operating system (OS) family. + */ + public open fun osFamily(): String = unwrap(this).getOsFamily() + + /** + * The operating system (OS) family. + */ + public open fun osFamily(`value`: String) { + unwrap(this).setOsFamily(`value`) + } + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.deadline.CfnStorageProfile]. + */ + @CdkDslMarker + public interface Builder { + /** + * The display name of the storage profile summary to update. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-storageprofile.html#cfn-deadline-storageprofile-displayname) + * @param displayName The display name of the storage profile summary to update. + */ + public fun displayName(displayName: String) + + /** + * The unique identifier of the farm that contains the storage profile. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-storageprofile.html#cfn-deadline-storageprofile-farmid) + * @param farmId The unique identifier of the farm that contains the storage profile. + */ + public fun farmId(farmId: String) + + /** + * Operating system specific file system path to the storage location. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-storageprofile.html#cfn-deadline-storageprofile-filesystemlocations) + * @param fileSystemLocations Operating system specific file system path to the storage + * location. + */ + public fun fileSystemLocations(fileSystemLocations: IResolvable) + + /** + * Operating system specific file system path to the storage location. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-storageprofile.html#cfn-deadline-storageprofile-filesystemlocations) + * @param fileSystemLocations Operating system specific file system path to the storage + * location. + */ + public fun fileSystemLocations(fileSystemLocations: List) + + /** + * Operating system specific file system path to the storage location. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-storageprofile.html#cfn-deadline-storageprofile-filesystemlocations) + * @param fileSystemLocations Operating system specific file system path to the storage + * location. + */ + public fun fileSystemLocations(vararg fileSystemLocations: Any) + + /** + * The operating system (OS) family. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-storageprofile.html#cfn-deadline-storageprofile-osfamily) + * @param osFamily The operating system (OS) family. + */ + public fun osFamily(osFamily: String) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.services.deadline.CfnStorageProfile.Builder = + software.amazon.awscdk.services.deadline.CfnStorageProfile.Builder.create(scope, id) + + /** + * The display name of the storage profile summary to update. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-storageprofile.html#cfn-deadline-storageprofile-displayname) + * @param displayName The display name of the storage profile summary to update. + */ + override fun displayName(displayName: String) { + cdkBuilder.displayName(displayName) + } + + /** + * The unique identifier of the farm that contains the storage profile. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-storageprofile.html#cfn-deadline-storageprofile-farmid) + * @param farmId The unique identifier of the farm that contains the storage profile. + */ + override fun farmId(farmId: String) { + cdkBuilder.farmId(farmId) + } + + /** + * Operating system specific file system path to the storage location. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-storageprofile.html#cfn-deadline-storageprofile-filesystemlocations) + * @param fileSystemLocations Operating system specific file system path to the storage + * location. + */ + override fun fileSystemLocations(fileSystemLocations: IResolvable) { + cdkBuilder.fileSystemLocations(fileSystemLocations.let(IResolvable::unwrap)) + } + + /** + * Operating system specific file system path to the storage location. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-storageprofile.html#cfn-deadline-storageprofile-filesystemlocations) + * @param fileSystemLocations Operating system specific file system path to the storage + * location. + */ + override fun fileSystemLocations(fileSystemLocations: List) { + cdkBuilder.fileSystemLocations(fileSystemLocations.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * Operating system specific file system path to the storage location. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-storageprofile.html#cfn-deadline-storageprofile-filesystemlocations) + * @param fileSystemLocations Operating system specific file system path to the storage + * location. + */ + override fun fileSystemLocations(vararg fileSystemLocations: Any): Unit = + fileSystemLocations(fileSystemLocations.toList()) + + /** + * The operating system (OS) family. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-storageprofile.html#cfn-deadline-storageprofile-osfamily) + * @param osFamily The operating system (OS) family. + */ + override fun osFamily(osFamily: String) { + cdkBuilder.osFamily(osFamily) + } + + public fun build(): software.amazon.awscdk.services.deadline.CfnStorageProfile = + cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.deadline.CfnStorageProfile.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnStorageProfile { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnStorageProfile(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnStorageProfile): + CfnStorageProfile = CfnStorageProfile(cdkObject) + + internal fun unwrap(wrapped: CfnStorageProfile): + software.amazon.awscdk.services.deadline.CfnStorageProfile = wrapped.cdkObject as + software.amazon.awscdk.services.deadline.CfnStorageProfile + } + + /** + * The details of the file system location for the resource. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * FileSystemLocationProperty fileSystemLocationProperty = FileSystemLocationProperty.builder() + * .name("name") + * .path("path") + * .type("type") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-storageprofile-filesystemlocation.html) + */ + public interface FileSystemLocationProperty { + /** + * The location name. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-storageprofile-filesystemlocation.html#cfn-deadline-storageprofile-filesystemlocation-name) + */ + public fun name(): String + + /** + * The file path. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-storageprofile-filesystemlocation.html#cfn-deadline-storageprofile-filesystemlocation-path) + */ + public fun path(): String + + /** + * The type of file. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-storageprofile-filesystemlocation.html#cfn-deadline-storageprofile-filesystemlocation-type) + */ + public fun type(): String + + /** + * A builder for [FileSystemLocationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param name The location name. + */ + public fun name(name: String) + + /** + * @param path The file path. + */ + public fun path(path: String) + + /** + * @param type The type of file. + */ + public fun type(type: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.deadline.CfnStorageProfile.FileSystemLocationProperty.Builder + = + software.amazon.awscdk.services.deadline.CfnStorageProfile.FileSystemLocationProperty.builder() + + /** + * @param name The location name. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + /** + * @param path The file path. + */ + override fun path(path: String) { + cdkBuilder.path(path) + } + + /** + * @param type The type of file. + */ + override fun type(type: String) { + cdkBuilder.type(type) + } + + public fun build(): + software.amazon.awscdk.services.deadline.CfnStorageProfile.FileSystemLocationProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.deadline.CfnStorageProfile.FileSystemLocationProperty, + ) : CdkObject(cdkObject), FileSystemLocationProperty { + /** + * The location name. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-storageprofile-filesystemlocation.html#cfn-deadline-storageprofile-filesystemlocation-name) + */ + override fun name(): String = unwrap(this).getName() + + /** + * The file path. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-storageprofile-filesystemlocation.html#cfn-deadline-storageprofile-filesystemlocation-path) + */ + override fun path(): String = unwrap(this).getPath() + + /** + * The type of file. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-storageprofile-filesystemlocation.html#cfn-deadline-storageprofile-filesystemlocation-type) + */ + override fun type(): String = unwrap(this).getType() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): FileSystemLocationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnStorageProfile.FileSystemLocationProperty): + FileSystemLocationProperty = CdkObjectWrappers.wrap(cdkObject) as? + FileSystemLocationProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: FileSystemLocationProperty): + software.amazon.awscdk.services.deadline.CfnStorageProfile.FileSystemLocationProperty = + (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.deadline.CfnStorageProfile.FileSystemLocationProperty + } + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnStorageProfileProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnStorageProfileProps.kt new file mode 100644 index 0000000000..fee0e97f02 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/deadline/CfnStorageProfileProps.kt @@ -0,0 +1,204 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.deadline + +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.List + +/** + * Properties for defining a `CfnStorageProfile`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.deadline.*; + * CfnStorageProfileProps cfnStorageProfileProps = CfnStorageProfileProps.builder() + * .displayName("displayName") + * .osFamily("osFamily") + * // the properties below are optional + * .farmId("farmId") + * .fileSystemLocations(List.of(FileSystemLocationProperty.builder() + * .name("name") + * .path("path") + * .type("type") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-storageprofile.html) + */ +public interface CfnStorageProfileProps { + /** + * The display name of the storage profile summary to update. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-storageprofile.html#cfn-deadline-storageprofile-displayname) + */ + public fun displayName(): String + + /** + * The unique identifier of the farm that contains the storage profile. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-storageprofile.html#cfn-deadline-storageprofile-farmid) + */ + public fun farmId(): String? = unwrap(this).getFarmId() + + /** + * Operating system specific file system path to the storage location. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-storageprofile.html#cfn-deadline-storageprofile-filesystemlocations) + */ + public fun fileSystemLocations(): Any? = unwrap(this).getFileSystemLocations() + + /** + * The operating system (OS) family. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-storageprofile.html#cfn-deadline-storageprofile-osfamily) + */ + public fun osFamily(): String + + /** + * A builder for [CfnStorageProfileProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param displayName The display name of the storage profile summary to update. + */ + public fun displayName(displayName: String) + + /** + * @param farmId The unique identifier of the farm that contains the storage profile. + */ + public fun farmId(farmId: String) + + /** + * @param fileSystemLocations Operating system specific file system path to the storage + * location. + */ + public fun fileSystemLocations(fileSystemLocations: IResolvable) + + /** + * @param fileSystemLocations Operating system specific file system path to the storage + * location. + */ + public fun fileSystemLocations(fileSystemLocations: List) + + /** + * @param fileSystemLocations Operating system specific file system path to the storage + * location. + */ + public fun fileSystemLocations(vararg fileSystemLocations: Any) + + /** + * @param osFamily The operating system (OS) family. + */ + public fun osFamily(osFamily: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.services.deadline.CfnStorageProfileProps.Builder + = software.amazon.awscdk.services.deadline.CfnStorageProfileProps.builder() + + /** + * @param displayName The display name of the storage profile summary to update. + */ + override fun displayName(displayName: String) { + cdkBuilder.displayName(displayName) + } + + /** + * @param farmId The unique identifier of the farm that contains the storage profile. + */ + override fun farmId(farmId: String) { + cdkBuilder.farmId(farmId) + } + + /** + * @param fileSystemLocations Operating system specific file system path to the storage + * location. + */ + override fun fileSystemLocations(fileSystemLocations: IResolvable) { + cdkBuilder.fileSystemLocations(fileSystemLocations.let(IResolvable::unwrap)) + } + + /** + * @param fileSystemLocations Operating system specific file system path to the storage + * location. + */ + override fun fileSystemLocations(fileSystemLocations: List) { + cdkBuilder.fileSystemLocations(fileSystemLocations.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param fileSystemLocations Operating system specific file system path to the storage + * location. + */ + override fun fileSystemLocations(vararg fileSystemLocations: Any): Unit = + fileSystemLocations(fileSystemLocations.toList()) + + /** + * @param osFamily The operating system (OS) family. + */ + override fun osFamily(osFamily: String) { + cdkBuilder.osFamily(osFamily) + } + + public fun build(): software.amazon.awscdk.services.deadline.CfnStorageProfileProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.deadline.CfnStorageProfileProps, + ) : CdkObject(cdkObject), CfnStorageProfileProps { + /** + * The display name of the storage profile summary to update. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-storageprofile.html#cfn-deadline-storageprofile-displayname) + */ + override fun displayName(): String = unwrap(this).getDisplayName() + + /** + * The unique identifier of the farm that contains the storage profile. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-storageprofile.html#cfn-deadline-storageprofile-farmid) + */ + override fun farmId(): String? = unwrap(this).getFarmId() + + /** + * Operating system specific file system path to the storage location. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-storageprofile.html#cfn-deadline-storageprofile-filesystemlocations) + */ + override fun fileSystemLocations(): Any? = unwrap(this).getFileSystemLocations() + + /** + * The operating system (OS) family. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-storageprofile.html#cfn-deadline-storageprofile-osfamily) + */ + override fun osFamily(): String = unwrap(this).getOsFamily() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnStorageProfileProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.deadline.CfnStorageProfileProps): + CfnStorageProfileProps = CdkObjectWrappers.wrap(cdkObject) as? CfnStorageProfileProps ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnStorageProfileProps): + software.amazon.awscdk.services.deadline.CfnStorageProfileProps = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.deadline.CfnStorageProfileProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dlm/CfnLifecyclePolicy.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dlm/CfnLifecyclePolicy.kt index c6838eca34..30b79d3337 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dlm/CfnLifecyclePolicy.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dlm/CfnLifecyclePolicy.kt @@ -1496,9 +1496,10 @@ public open class CfnLifecyclePolicy( /** * The schedule, as a Cron expression. * - * The schedule interval must be between 1 hour and 1 year. For more information, see [Cron - * expressions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions) - * in the *Amazon CloudWatch User Guide* . + * The schedule interval must be between 1 hour and 1 year. For more information, see the [Cron + * expressions + * reference](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cron-expressions.html) in + * the *Amazon EventBridge User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-createrule.html#cfn-dlm-lifecyclepolicy-createrule-cronexpression) */ @@ -1568,9 +1569,10 @@ public open class CfnLifecyclePolicy( public interface Builder { /** * @param cronExpression The schedule, as a Cron expression. - * The schedule interval must be between 1 hour and 1 year. For more information, see [Cron - * expressions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions) - * in the *Amazon CloudWatch User Guide* . + * The schedule interval must be between 1 hour and 1 year. For more information, see the + * [Cron expressions + * reference](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cron-expressions.html) + * in the *Amazon EventBridge User Guide* . */ public fun cronExpression(cronExpression: String) @@ -1660,9 +1662,10 @@ public open class CfnLifecyclePolicy( /** * @param cronExpression The schedule, as a Cron expression. - * The schedule interval must be between 1 hour and 1 year. For more information, see [Cron - * expressions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions) - * in the *Amazon CloudWatch User Guide* . + * The schedule interval must be between 1 hour and 1 year. For more information, see the + * [Cron expressions + * reference](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cron-expressions.html) + * in the *Amazon EventBridge User Guide* . */ override fun cronExpression(cronExpression: String) { cdkBuilder.cronExpression(cronExpression) @@ -1768,9 +1771,10 @@ public open class CfnLifecyclePolicy( /** * The schedule, as a Cron expression. * - * The schedule interval must be between 1 hour and 1 year. For more information, see [Cron - * expressions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions) - * in the *Amazon CloudWatch User Guide* . + * The schedule interval must be between 1 hour and 1 year. For more information, see the + * [Cron expressions + * reference](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cron-expressions.html) + * in the *Amazon EventBridge User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-createrule.html#cfn-dlm-lifecyclepolicy-createrule-cronexpression) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dms/CfnDataProvider.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dms/CfnDataProvider.kt index 6a4be71544..70381538f9 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dms/CfnDataProvider.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dms/CfnDataProvider.kt @@ -281,20 +281,20 @@ public open class CfnDataProvider( public fun exactSettings(exactSettings: IResolvable) /** - * An array of key-value pairs to apply to this resource. + * The settings in JSON format for a data provider. * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-dataprovider.html#cfn-dms-dataprovider-tags) - * @param tags An array of key-value pairs to apply to this resource. + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-dataprovider.html#cfn-dms-dataprovider-settings) + * @param settings The settings in JSON format for a data provider. */ - public fun tags(tags: List) + public fun settings(settings: IResolvable) /** - * An array of key-value pairs to apply to this resource. + * The settings in JSON format for a data provider. * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-dataprovider.html#cfn-dms-dataprovider-tags) - * @param tags An array of key-value pairs to apply to this resource. + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-dataprovider.html#cfn-dms-dataprovider-settings) + * @param settings The settings in JSON format for a data provider. */ - public fun tags(vararg tags: CfnTag) + public fun settings(settings: SettingsProperty) /** * The settings in JSON format for a data provider. @@ -302,25 +302,25 @@ public open class CfnDataProvider( * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-dataprovider.html#cfn-dms-dataprovider-settings) * @param settings The settings in JSON format for a data provider. */ - public fun tings(settings: IResolvable) + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("ee40722a720d7943e5c842a5aa735bea262d50da0c487f2b9017c7fe45ea2928") + public fun settings(settings: SettingsProperty.Builder.() -> Unit) /** - * The settings in JSON format for a data provider. + * An array of key-value pairs to apply to this resource. * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-dataprovider.html#cfn-dms-dataprovider-settings) - * @param settings The settings in JSON format for a data provider. + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-dataprovider.html#cfn-dms-dataprovider-tags) + * @param tags An array of key-value pairs to apply to this resource. */ - public fun tings(settings: SettingsProperty) + public fun tags(tags: List) /** - * The settings in JSON format for a data provider. + * An array of key-value pairs to apply to this resource. * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-dataprovider.html#cfn-dms-dataprovider-settings) - * @param settings The settings in JSON format for a data provider. + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-dataprovider.html#cfn-dms-dataprovider-tags) + * @param tags An array of key-value pairs to apply to this resource. */ - @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("7c39604e34fcba258422b1df3816092070b4c839ccb0f3d3f90ea77f4a50919e") - public fun tings(settings: SettingsProperty.Builder.() -> Unit) + public fun tags(vararg tags: CfnTag) } private class BuilderImpl( @@ -405,31 +405,13 @@ public open class CfnDataProvider( cdkBuilder.exactSettings(exactSettings.let(IResolvable::unwrap)) } - /** - * An array of key-value pairs to apply to this resource. - * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-dataprovider.html#cfn-dms-dataprovider-tags) - * @param tags An array of key-value pairs to apply to this resource. - */ - override fun tags(tags: List) { - cdkBuilder.tags(tags.map(CfnTag::unwrap)) - } - - /** - * An array of key-value pairs to apply to this resource. - * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-dataprovider.html#cfn-dms-dataprovider-tags) - * @param tags An array of key-value pairs to apply to this resource. - */ - override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) - /** * The settings in JSON format for a data provider. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-dataprovider.html#cfn-dms-dataprovider-settings) * @param settings The settings in JSON format for a data provider. */ - override fun tings(settings: IResolvable) { + override fun settings(settings: IResolvable) { cdkBuilder.settings(settings.let(IResolvable::unwrap)) } @@ -439,7 +421,7 @@ public open class CfnDataProvider( * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-dataprovider.html#cfn-dms-dataprovider-settings) * @param settings The settings in JSON format for a data provider. */ - override fun tings(settings: SettingsProperty) { + override fun settings(settings: SettingsProperty) { cdkBuilder.settings(settings.let(SettingsProperty::unwrap)) } @@ -450,9 +432,27 @@ public open class CfnDataProvider( * @param settings The settings in JSON format for a data provider. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("7c39604e34fcba258422b1df3816092070b4c839ccb0f3d3f90ea77f4a50919e") - override fun tings(settings: SettingsProperty.Builder.() -> Unit): Unit = - tings(SettingsProperty(settings)) + @JvmName("ee40722a720d7943e5c842a5aa735bea262d50da0c487f2b9017c7fe45ea2928") + override fun settings(settings: SettingsProperty.Builder.() -> Unit): Unit = + settings(SettingsProperty(settings)) + + /** + * An array of key-value pairs to apply to this resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-dataprovider.html#cfn-dms-dataprovider-tags) + * @param tags An array of key-value pairs to apply to this resource. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * An array of key-value pairs to apply to this resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-dataprovider.html#cfn-dms-dataprovider-tags) + * @param tags An array of key-value pairs to apply to this resource. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) public fun build(): software.amazon.awscdk.services.dms.CfnDataProvider = cdkBuilder.build() } diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dms/CfnDataProviderProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dms/CfnDataProviderProps.kt index 36293a75d0..cb58859d05 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dms/CfnDataProviderProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dms/CfnDataProviderProps.kt @@ -155,31 +155,31 @@ public interface CfnDataProviderProps { public fun exactSettings(exactSettings: IResolvable) /** - * @param tags An array of key-value pairs to apply to this resource. + * @param settings The settings in JSON format for a data provider. */ - public fun tags(tags: List) + public fun settings(settings: IResolvable) /** - * @param tags An array of key-value pairs to apply to this resource. + * @param settings The settings in JSON format for a data provider. */ - public fun tags(vararg tags: CfnTag) + public fun settings(settings: CfnDataProvider.SettingsProperty) /** * @param settings The settings in JSON format for a data provider. */ - public fun tings(settings: IResolvable) + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("e5d74db5466a3c55f01d8a55af7cecd169b9ba622ed58ad61dc597716b252aab") + public fun settings(settings: CfnDataProvider.SettingsProperty.Builder.() -> Unit) /** - * @param settings The settings in JSON format for a data provider. + * @param tags An array of key-value pairs to apply to this resource. */ - public fun tings(settings: CfnDataProvider.SettingsProperty) + public fun tags(tags: List) /** - * @param settings The settings in JSON format for a data provider. + * @param tags An array of key-value pairs to apply to this resource. */ - @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("09b475e46ec9dab9f70be7a140914ccb0cd1bf64c0975e2d522e33f8d3266511") - public fun tings(settings: CfnDataProvider.SettingsProperty.Builder.() -> Unit) + public fun tags(vararg tags: CfnTag) } private class BuilderImpl : Builder { @@ -237,38 +237,38 @@ public interface CfnDataProviderProps { } /** - * @param tags An array of key-value pairs to apply to this resource. + * @param settings The settings in JSON format for a data provider. */ - override fun tags(tags: List) { - cdkBuilder.tags(tags.map(CfnTag::unwrap)) + override fun settings(settings: IResolvable) { + cdkBuilder.settings(settings.let(IResolvable::unwrap)) } /** - * @param tags An array of key-value pairs to apply to this resource. + * @param settings The settings in JSON format for a data provider. */ - override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + override fun settings(settings: CfnDataProvider.SettingsProperty) { + cdkBuilder.settings(settings.let(CfnDataProvider.SettingsProperty::unwrap)) + } /** * @param settings The settings in JSON format for a data provider. */ - override fun tings(settings: IResolvable) { - cdkBuilder.settings(settings.let(IResolvable::unwrap)) - } + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("e5d74db5466a3c55f01d8a55af7cecd169b9ba622ed58ad61dc597716b252aab") + override fun settings(settings: CfnDataProvider.SettingsProperty.Builder.() -> Unit): Unit = + settings(CfnDataProvider.SettingsProperty(settings)) /** - * @param settings The settings in JSON format for a data provider. + * @param tags An array of key-value pairs to apply to this resource. */ - override fun tings(settings: CfnDataProvider.SettingsProperty) { - cdkBuilder.settings(settings.let(CfnDataProvider.SettingsProperty::unwrap)) + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) } /** - * @param settings The settings in JSON format for a data provider. + * @param tags An array of key-value pairs to apply to this resource. */ - @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("09b475e46ec9dab9f70be7a140914ccb0cd1bf64c0975e2d522e33f8d3266511") - override fun tings(settings: CfnDataProvider.SettingsProperty.Builder.() -> Unit): Unit = - tings(CfnDataProvider.SettingsProperty(settings)) + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) public fun build(): software.amazon.awscdk.services.dms.CfnDataProviderProps = cdkBuilder.build() diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dms/CfnEndpoint.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dms/CfnEndpoint.kt index 53d3d000dc..29c18ddb80 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dms/CfnEndpoint.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dms/CfnEndpoint.kt @@ -10550,7 +10550,7 @@ public open class CfnEndpoint( * * You can later remove these artifacts. * - * If this value is set to `N` , you don't have to create tables or triggers on the source + * If this value is set to `True` , you don't have to create tables or triggers on the source * database. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-captureddls) @@ -10568,6 +10568,8 @@ public open class CfnEndpoint( /** * The schema in which the operational DDL database artifacts are created. * + * The default value is `public` . + * * Example: `ddlArtifactsSchema=xyzddlschema;` * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-ddlartifactsschema) @@ -10588,6 +10590,8 @@ public open class CfnEndpoint( * When set to `true` , this value causes a task to fail if the actual size of a LOB column is * greater than the specified `LobMaxSize` . * + * The default value is `false` . + * * If task is set to Limited LOB mode and this option is set to true, the task fails instead of * truncating the LOB data. * @@ -10602,6 +10606,8 @@ public open class CfnEndpoint( * which can result in storage full situations on the source. This heartbeat keeps `restart_lsn` * moving and prevents storage full scenarios. * + * The default value is `false` . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-heartbeatenable) */ public fun heartbeatEnable(): Any? = unwrap(this).getHeartbeatEnable() @@ -10609,6 +10615,8 @@ public open class CfnEndpoint( /** * Sets the WAL heartbeat frequency (in minutes). * + * The default value is 5 minutes. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-heartbeatfrequency) */ public fun heartbeatFrequency(): Number? = unwrap(this).getHeartbeatFrequency() @@ -10616,6 +10624,8 @@ public open class CfnEndpoint( /** * Sets the schema in which the heartbeat artifacts are created. * + * The default value is `public` . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-heartbeatschema) */ public fun heartbeatSchema(): String? = unwrap(this).getHeartbeatSchema() @@ -10626,6 +10636,8 @@ public open class CfnEndpoint( * By default, PostgreSQL migrates booleans as `varchar(5)` . You must set this setting on both * the source and target endpoints for it to take effect. * + * The default value is `false` . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-mapbooleanasboolean) */ public fun mapBooleanAsBoolean(): Any? = unwrap(this).getMapBooleanAsBoolean() @@ -10633,6 +10645,8 @@ public open class CfnEndpoint( /** * Specifies the maximum size (in KB) of any .csv file used to transfer data to PostgreSQL. * + * The default value is 32,768 KB (32 MB). + * * Example: `maxFileSize=512` * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-maxfilesize) @@ -10642,6 +10656,8 @@ public open class CfnEndpoint( /** * Specifies the plugin to use to create a replication slot. * + * The default value is `pglogical` . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-pluginname) */ public fun pluginName(): String? = unwrap(this).getPluginName() @@ -10727,7 +10743,7 @@ public open class CfnEndpoint( * PostgreSQL database when the task starts. * You can later remove these artifacts. * - * If this value is set to `N` , you don't have to create tables or triggers on the source + * If this value is set to `True` , you don't have to create tables or triggers on the source * database. */ public fun captureDdls(captureDdls: Boolean) @@ -10737,7 +10753,7 @@ public open class CfnEndpoint( * PostgreSQL database when the task starts. * You can later remove these artifacts. * - * If this value is set to `N` , you don't have to create tables or triggers on the source + * If this value is set to `True` , you don't have to create tables or triggers on the source * database. */ public fun captureDdls(captureDdls: IResolvable) @@ -10752,6 +10768,8 @@ public open class CfnEndpoint( /** * @param ddlArtifactsSchema The schema in which the operational DDL database artifacts are * created. + * The default value is `public` . + * * Example: `ddlArtifactsSchema=xyzddlschema;` */ public fun ddlArtifactsSchema(ddlArtifactsSchema: String) @@ -10766,6 +10784,8 @@ public open class CfnEndpoint( /** * @param failTasksOnLobTruncation When set to `true` , this value causes a task to fail if * the actual size of a LOB column is greater than the specified `LobMaxSize` . + * The default value is `false` . + * * If task is set to Limited LOB mode and this option is set to true, the task fails instead * of truncating the LOB data. */ @@ -10774,6 +10794,8 @@ public open class CfnEndpoint( /** * @param failTasksOnLobTruncation When set to `true` , this value causes a task to fail if * the actual size of a LOB column is greater than the specified `LobMaxSize` . + * The default value is `false` . + * * If task is set to Limited LOB mode and this option is set to true, the task fails instead * of truncating the LOB data. */ @@ -10785,6 +10807,8 @@ public open class CfnEndpoint( * By doing this, it prevents idle logical replication slots from holding onto old WAL logs, * which can result in storage full situations on the source. This heartbeat keeps `restart_lsn` * moving and prevents storage full scenarios. + * + * The default value is `false` . */ public fun heartbeatEnable(heartbeatEnable: Boolean) @@ -10794,16 +10818,20 @@ public open class CfnEndpoint( * By doing this, it prevents idle logical replication slots from holding onto old WAL logs, * which can result in storage full situations on the source. This heartbeat keeps `restart_lsn` * moving and prevents storage full scenarios. + * + * The default value is `false` . */ public fun heartbeatEnable(heartbeatEnable: IResolvable) /** * @param heartbeatFrequency Sets the WAL heartbeat frequency (in minutes). + * The default value is 5 minutes. */ public fun heartbeatFrequency(heartbeatFrequency: Number) /** * @param heartbeatSchema Sets the schema in which the heartbeat artifacts are created. + * The default value is `public` . */ public fun heartbeatSchema(heartbeatSchema: String) @@ -10811,6 +10839,8 @@ public open class CfnEndpoint( * @param mapBooleanAsBoolean When true, lets PostgreSQL migrate the boolean type as boolean. * By default, PostgreSQL migrates booleans as `varchar(5)` . You must set this setting on * both the source and target endpoints for it to take effect. + * + * The default value is `false` . */ public fun mapBooleanAsBoolean(mapBooleanAsBoolean: Boolean) @@ -10818,18 +10848,23 @@ public open class CfnEndpoint( * @param mapBooleanAsBoolean When true, lets PostgreSQL migrate the boolean type as boolean. * By default, PostgreSQL migrates booleans as `varchar(5)` . You must set this setting on * both the source and target endpoints for it to take effect. + * + * The default value is `false` . */ public fun mapBooleanAsBoolean(mapBooleanAsBoolean: IResolvable) /** * @param maxFileSize Specifies the maximum size (in KB) of any .csv file used to transfer * data to PostgreSQL. + * The default value is 32,768 KB (32 MB). + * * Example: `maxFileSize=512` */ public fun maxFileSize(maxFileSize: Number) /** * @param pluginName Specifies the plugin to use to create a replication slot. + * The default value is `pglogical` . */ public fun pluginName(pluginName: String) @@ -10911,7 +10946,7 @@ public open class CfnEndpoint( * PostgreSQL database when the task starts. * You can later remove these artifacts. * - * If this value is set to `N` , you don't have to create tables or triggers on the source + * If this value is set to `True` , you don't have to create tables or triggers on the source * database. */ override fun captureDdls(captureDdls: Boolean) { @@ -10923,7 +10958,7 @@ public open class CfnEndpoint( * PostgreSQL database when the task starts. * You can later remove these artifacts. * - * If this value is set to `N` , you don't have to create tables or triggers on the source + * If this value is set to `True` , you don't have to create tables or triggers on the source * database. */ override fun captureDdls(captureDdls: IResolvable) { @@ -10942,6 +10977,8 @@ public open class CfnEndpoint( /** * @param ddlArtifactsSchema The schema in which the operational DDL database artifacts are * created. + * The default value is `public` . + * * Example: `ddlArtifactsSchema=xyzddlschema;` */ override fun ddlArtifactsSchema(ddlArtifactsSchema: String) { @@ -10960,6 +10997,8 @@ public open class CfnEndpoint( /** * @param failTasksOnLobTruncation When set to `true` , this value causes a task to fail if * the actual size of a LOB column is greater than the specified `LobMaxSize` . + * The default value is `false` . + * * If task is set to Limited LOB mode and this option is set to true, the task fails instead * of truncating the LOB data. */ @@ -10970,6 +11009,8 @@ public open class CfnEndpoint( /** * @param failTasksOnLobTruncation When set to `true` , this value causes a task to fail if * the actual size of a LOB column is greater than the specified `LobMaxSize` . + * The default value is `false` . + * * If task is set to Limited LOB mode and this option is set to true, the task fails instead * of truncating the LOB data. */ @@ -10983,6 +11024,8 @@ public open class CfnEndpoint( * By doing this, it prevents idle logical replication slots from holding onto old WAL logs, * which can result in storage full situations on the source. This heartbeat keeps `restart_lsn` * moving and prevents storage full scenarios. + * + * The default value is `false` . */ override fun heartbeatEnable(heartbeatEnable: Boolean) { cdkBuilder.heartbeatEnable(heartbeatEnable) @@ -10994,6 +11037,8 @@ public open class CfnEndpoint( * By doing this, it prevents idle logical replication slots from holding onto old WAL logs, * which can result in storage full situations on the source. This heartbeat keeps `restart_lsn` * moving and prevents storage full scenarios. + * + * The default value is `false` . */ override fun heartbeatEnable(heartbeatEnable: IResolvable) { cdkBuilder.heartbeatEnable(heartbeatEnable.let(IResolvable::unwrap)) @@ -11001,6 +11046,7 @@ public open class CfnEndpoint( /** * @param heartbeatFrequency Sets the WAL heartbeat frequency (in minutes). + * The default value is 5 minutes. */ override fun heartbeatFrequency(heartbeatFrequency: Number) { cdkBuilder.heartbeatFrequency(heartbeatFrequency) @@ -11008,6 +11054,7 @@ public open class CfnEndpoint( /** * @param heartbeatSchema Sets the schema in which the heartbeat artifacts are created. + * The default value is `public` . */ override fun heartbeatSchema(heartbeatSchema: String) { cdkBuilder.heartbeatSchema(heartbeatSchema) @@ -11017,6 +11064,8 @@ public open class CfnEndpoint( * @param mapBooleanAsBoolean When true, lets PostgreSQL migrate the boolean type as boolean. * By default, PostgreSQL migrates booleans as `varchar(5)` . You must set this setting on * both the source and target endpoints for it to take effect. + * + * The default value is `false` . */ override fun mapBooleanAsBoolean(mapBooleanAsBoolean: Boolean) { cdkBuilder.mapBooleanAsBoolean(mapBooleanAsBoolean) @@ -11026,6 +11075,8 @@ public open class CfnEndpoint( * @param mapBooleanAsBoolean When true, lets PostgreSQL migrate the boolean type as boolean. * By default, PostgreSQL migrates booleans as `varchar(5)` . You must set this setting on * both the source and target endpoints for it to take effect. + * + * The default value is `false` . */ override fun mapBooleanAsBoolean(mapBooleanAsBoolean: IResolvable) { cdkBuilder.mapBooleanAsBoolean(mapBooleanAsBoolean.let(IResolvable::unwrap)) @@ -11034,6 +11085,8 @@ public open class CfnEndpoint( /** * @param maxFileSize Specifies the maximum size (in KB) of any .csv file used to transfer * data to PostgreSQL. + * The default value is 32,768 KB (32 MB). + * * Example: `maxFileSize=512` */ override fun maxFileSize(maxFileSize: Number) { @@ -11042,6 +11095,7 @@ public open class CfnEndpoint( /** * @param pluginName Specifies the plugin to use to create a replication slot. + * The default value is `pglogical` . */ override fun pluginName(pluginName: String) { cdkBuilder.pluginName(pluginName) @@ -11133,7 +11187,7 @@ public open class CfnEndpoint( * * You can later remove these artifacts. * - * If this value is set to `N` , you don't have to create tables or triggers on the source + * If this value is set to `True` , you don't have to create tables or triggers on the source * database. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-captureddls) @@ -11151,6 +11205,8 @@ public open class CfnEndpoint( /** * The schema in which the operational DDL database artifacts are created. * + * The default value is `public` . + * * Example: `ddlArtifactsSchema=xyzddlschema;` * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-ddlartifactsschema) @@ -11171,6 +11227,8 @@ public open class CfnEndpoint( * When set to `true` , this value causes a task to fail if the actual size of a LOB column is * greater than the specified `LobMaxSize` . * + * The default value is `false` . + * * If task is set to Limited LOB mode and this option is set to true, the task fails instead * of truncating the LOB data. * @@ -11185,6 +11243,8 @@ public open class CfnEndpoint( * which can result in storage full situations on the source. This heartbeat keeps `restart_lsn` * moving and prevents storage full scenarios. * + * The default value is `false` . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-heartbeatenable) */ override fun heartbeatEnable(): Any? = unwrap(this).getHeartbeatEnable() @@ -11192,6 +11252,8 @@ public open class CfnEndpoint( /** * Sets the WAL heartbeat frequency (in minutes). * + * The default value is 5 minutes. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-heartbeatfrequency) */ override fun heartbeatFrequency(): Number? = unwrap(this).getHeartbeatFrequency() @@ -11199,6 +11261,8 @@ public open class CfnEndpoint( /** * Sets the schema in which the heartbeat artifacts are created. * + * The default value is `public` . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-heartbeatschema) */ override fun heartbeatSchema(): String? = unwrap(this).getHeartbeatSchema() @@ -11209,6 +11273,8 @@ public open class CfnEndpoint( * By default, PostgreSQL migrates booleans as `varchar(5)` . You must set this setting on * both the source and target endpoints for it to take effect. * + * The default value is `false` . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-mapbooleanasboolean) */ override fun mapBooleanAsBoolean(): Any? = unwrap(this).getMapBooleanAsBoolean() @@ -11216,6 +11282,8 @@ public open class CfnEndpoint( /** * Specifies the maximum size (in KB) of any .csv file used to transfer data to PostgreSQL. * + * The default value is 32,768 KB (32 MB). + * * Example: `maxFileSize=512` * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-maxfilesize) @@ -11225,6 +11293,8 @@ public open class CfnEndpoint( /** * Specifies the plugin to use to create a replication slot. * + * The default value is `pglogical` . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-pluginname) */ override fun pluginName(): String? = unwrap(this).getPluginName() diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/docdbelastic/CfnCluster.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/docdbelastic/CfnCluster.kt index 2d32c99566..804d8f2c17 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/docdbelastic/CfnCluster.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/docdbelastic/CfnCluster.kt @@ -33,8 +33,11 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .shardCount(123) * // the properties below are optional * .adminUserPassword("adminUserPassword") + * .backupRetentionPeriod(123) * .kmsKeyId("kmsKeyId") + * .preferredBackupWindow("preferredBackupWindow") * .preferredMaintenanceWindow("preferredMaintenanceWindow") + * .shardInstanceCount(123) * .subnetIds(List.of("subnetIds")) * .tags(List.of(CfnTag.builder() * .key("key") @@ -115,6 +118,18 @@ public open class CfnCluster( unwrap(this).setAuthType(`value`) } + /** + * The number of days for which automatic snapshots are retained. + */ + public open fun backupRetentionPeriod(): Number? = unwrap(this).getBackupRetentionPeriod() + + /** + * The number of days for which automatic snapshots are retained. + */ + public open fun backupRetentionPeriod(`value`: Number) { + unwrap(this).setBackupRetentionPeriod(`value`) + } + /** * The name of the new elastic cluster. * @@ -152,6 +167,20 @@ public open class CfnCluster( unwrap(this).setKmsKeyId(`value`) } + /** + * The daily time range during which automated backups are created if automated backups are + * enabled, as determined by `backupRetentionPeriod` . + */ + public open fun preferredBackupWindow(): String? = unwrap(this).getPreferredBackupWindow() + + /** + * The daily time range during which automated backups are created if automated backups are + * enabled, as determined by `backupRetentionPeriod` . + */ + public open fun preferredBackupWindow(`value`: String) { + unwrap(this).setPreferredBackupWindow(`value`) + } + /** * The weekly time range during which system maintenance can occur, in Universal Coordinated Time * (UTC). @@ -191,6 +220,18 @@ public open class CfnCluster( unwrap(this).setShardCount(`value`) } + /** + * The number of replica instances applying to all shards in the cluster. + */ + public open fun shardInstanceCount(): Number? = unwrap(this).getShardInstanceCount() + + /** + * The number of replica instances applying to all shards in the cluster. + */ + public open fun shardInstanceCount(`value`: Number) { + unwrap(this).setShardInstanceCount(`value`) + } + /** * The Amazon EC2 subnet IDs for the new elastic cluster. */ @@ -297,6 +338,14 @@ public open class CfnCluster( */ public fun authType(authType: String) + /** + * The number of days for which automatic snapshots are retained. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html#cfn-docdbelastic-cluster-backupretentionperiod) + * @param backupRetentionPeriod The number of days for which automatic snapshots are retained. + */ + public fun backupRetentionPeriod(backupRetentionPeriod: Number) + /** * The name of the new elastic cluster. This parameter is stored as a lowercase string. * @@ -330,6 +379,16 @@ public open class CfnCluster( */ public fun kmsKeyId(kmsKeyId: String) + /** + * The daily time range during which automated backups are created if automated backups are + * enabled, as determined by `backupRetentionPeriod` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html#cfn-docdbelastic-cluster-preferredbackupwindow) + * @param preferredBackupWindow The daily time range during which automated backups are created + * if automated backups are enabled, as determined by `backupRetentionPeriod` . + */ + public fun preferredBackupWindow(preferredBackupWindow: String) + /** * The weekly time range during which system maintenance can occur, in Universal Coordinated * Time (UTC). @@ -369,6 +428,18 @@ public open class CfnCluster( */ public fun shardCount(shardCount: Number) + /** + * The number of replica instances applying to all shards in the cluster. + * + * A `shardInstanceCount` value of 1 means there is one writer instance, and any additional + * instances are replicas that can be used for reads and to improve availability. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html#cfn-docdbelastic-cluster-shardinstancecount) + * @param shardInstanceCount The number of replica instances applying to all shards in the + * cluster. + */ + public fun shardInstanceCount(shardInstanceCount: Number) + /** * The Amazon EC2 subnet IDs for the new elastic cluster. * @@ -475,6 +546,16 @@ public open class CfnCluster( cdkBuilder.authType(authType) } + /** + * The number of days for which automatic snapshots are retained. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html#cfn-docdbelastic-cluster-backupretentionperiod) + * @param backupRetentionPeriod The number of days for which automatic snapshots are retained. + */ + override fun backupRetentionPeriod(backupRetentionPeriod: Number) { + cdkBuilder.backupRetentionPeriod(backupRetentionPeriod) + } + /** * The name of the new elastic cluster. This parameter is stored as a lowercase string. * @@ -512,6 +593,18 @@ public open class CfnCluster( cdkBuilder.kmsKeyId(kmsKeyId) } + /** + * The daily time range during which automated backups are created if automated backups are + * enabled, as determined by `backupRetentionPeriod` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html#cfn-docdbelastic-cluster-preferredbackupwindow) + * @param preferredBackupWindow The daily time range during which automated backups are created + * if automated backups are enabled, as determined by `backupRetentionPeriod` . + */ + override fun preferredBackupWindow(preferredBackupWindow: String) { + cdkBuilder.preferredBackupWindow(preferredBackupWindow) + } + /** * The weekly time range during which system maintenance can occur, in Universal Coordinated * Time (UTC). @@ -557,6 +650,20 @@ public open class CfnCluster( cdkBuilder.shardCount(shardCount) } + /** + * The number of replica instances applying to all shards in the cluster. + * + * A `shardInstanceCount` value of 1 means there is one writer instance, and any additional + * instances are replicas that can be used for reads and to improve availability. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html#cfn-docdbelastic-cluster-shardinstancecount) + * @param shardInstanceCount The number of replica instances applying to all shards in the + * cluster. + */ + override fun shardInstanceCount(shardInstanceCount: Number) { + cdkBuilder.shardInstanceCount(shardInstanceCount) + } + /** * The Amazon EC2 subnet IDs for the new elastic cluster. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/docdbelastic/CfnClusterProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/docdbelastic/CfnClusterProps.kt index 0fa4f996ae..86a7d8eb6b 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/docdbelastic/CfnClusterProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/docdbelastic/CfnClusterProps.kt @@ -28,8 +28,11 @@ import kotlin.collections.List * .shardCount(123) * // the properties below are optional * .adminUserPassword("adminUserPassword") + * .backupRetentionPeriod(123) * .kmsKeyId("kmsKeyId") + * .preferredBackupWindow("preferredBackupWindow") * .preferredMaintenanceWindow("preferredMaintenanceWindow") + * .shardInstanceCount(123) * .subnetIds(List.of("subnetIds")) * .tags(List.of(CfnTag.builder() * .key("key") @@ -79,6 +82,13 @@ public interface CfnClusterProps { */ public fun authType(): String + /** + * The number of days for which automatic snapshots are retained. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html#cfn-docdbelastic-cluster-backupretentionperiod) + */ + public fun backupRetentionPeriod(): Number? = unwrap(this).getBackupRetentionPeriod() + /** * The name of the new elastic cluster. This parameter is stored as a lowercase string. * @@ -109,6 +119,14 @@ public interface CfnClusterProps { */ public fun kmsKeyId(): String? = unwrap(this).getKmsKeyId() + /** + * The daily time range during which automated backups are created if automated backups are + * enabled, as determined by `backupRetentionPeriod` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html#cfn-docdbelastic-cluster-preferredbackupwindow) + */ + public fun preferredBackupWindow(): String? = unwrap(this).getPreferredBackupWindow() + /** * The weekly time range during which system maintenance can occur, in Universal Coordinated Time * (UTC). @@ -144,6 +162,16 @@ public interface CfnClusterProps { */ public fun shardCount(): Number + /** + * The number of replica instances applying to all shards in the cluster. + * + * A `shardInstanceCount` value of 1 means there is one writer instance, and any additional + * instances are replicas that can be used for reads and to improve availability. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html#cfn-docdbelastic-cluster-shardinstancecount) + */ + public fun shardInstanceCount(): Number? = unwrap(this).getShardInstanceCount() + /** * The Amazon EC2 subnet IDs for the new elastic cluster. * @@ -199,6 +227,11 @@ public interface CfnClusterProps { */ public fun authType(authType: String) + /** + * @param backupRetentionPeriod The number of days for which automatic snapshots are retained. + */ + public fun backupRetentionPeriod(backupRetentionPeriod: Number) + /** * @param clusterName The name of the new elastic cluster. This parameter is stored as a * lowercase string. @@ -224,6 +257,12 @@ public interface CfnClusterProps { */ public fun kmsKeyId(kmsKeyId: String) + /** + * @param preferredBackupWindow The daily time range during which automated backups are created + * if automated backups are enabled, as determined by `backupRetentionPeriod` . + */ + public fun preferredBackupWindow(preferredBackupWindow: String) + /** * @param preferredMaintenanceWindow The weekly time range during which system maintenance can * occur, in Universal Coordinated Time (UTC). @@ -250,6 +289,14 @@ public interface CfnClusterProps { */ public fun shardCount(shardCount: Number) + /** + * @param shardInstanceCount The number of replica instances applying to all shards in the + * cluster. + * A `shardInstanceCount` value of 1 means there is one writer instance, and any additional + * instances are replicas that can be used for reads and to improve availability. + */ + public fun shardInstanceCount(shardInstanceCount: Number) + /** * @param subnetIds The Amazon EC2 subnet IDs for the new elastic cluster. */ @@ -321,6 +368,13 @@ public interface CfnClusterProps { cdkBuilder.authType(authType) } + /** + * @param backupRetentionPeriod The number of days for which automatic snapshots are retained. + */ + override fun backupRetentionPeriod(backupRetentionPeriod: Number) { + cdkBuilder.backupRetentionPeriod(backupRetentionPeriod) + } + /** * @param clusterName The name of the new elastic cluster. This parameter is stored as a * lowercase string. @@ -350,6 +404,14 @@ public interface CfnClusterProps { cdkBuilder.kmsKeyId(kmsKeyId) } + /** + * @param preferredBackupWindow The daily time range during which automated backups are created + * if automated backups are enabled, as determined by `backupRetentionPeriod` . + */ + override fun preferredBackupWindow(preferredBackupWindow: String) { + cdkBuilder.preferredBackupWindow(preferredBackupWindow) + } + /** * @param preferredMaintenanceWindow The weekly time range during which system maintenance can * occur, in Universal Coordinated Time (UTC). @@ -382,6 +444,16 @@ public interface CfnClusterProps { cdkBuilder.shardCount(shardCount) } + /** + * @param shardInstanceCount The number of replica instances applying to all shards in the + * cluster. + * A `shardInstanceCount` value of 1 means there is one writer instance, and any additional + * instances are replicas that can be used for reads and to improve availability. + */ + override fun shardInstanceCount(shardInstanceCount: Number) { + cdkBuilder.shardInstanceCount(shardInstanceCount) + } + /** * @param subnetIds The Amazon EC2 subnet IDs for the new elastic cluster. */ @@ -465,6 +537,13 @@ public interface CfnClusterProps { */ override fun authType(): String = unwrap(this).getAuthType() + /** + * The number of days for which automatic snapshots are retained. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html#cfn-docdbelastic-cluster-backupretentionperiod) + */ + override fun backupRetentionPeriod(): Number? = unwrap(this).getBackupRetentionPeriod() + /** * The name of the new elastic cluster. This parameter is stored as a lowercase string. * @@ -495,6 +574,14 @@ public interface CfnClusterProps { */ override fun kmsKeyId(): String? = unwrap(this).getKmsKeyId() + /** + * The daily time range during which automated backups are created if automated backups are + * enabled, as determined by `backupRetentionPeriod` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html#cfn-docdbelastic-cluster-preferredbackupwindow) + */ + override fun preferredBackupWindow(): String? = unwrap(this).getPreferredBackupWindow() + /** * The weekly time range during which system maintenance can occur, in Universal Coordinated * Time (UTC). @@ -531,6 +618,16 @@ public interface CfnClusterProps { */ override fun shardCount(): Number = unwrap(this).getShardCount() + /** + * The number of replica instances applying to all shards in the cluster. + * + * A `shardInstanceCount` value of 1 means there is one writer instance, and any additional + * instances are replicas that can be used for reads and to improve availability. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdbelastic-cluster.html#cfn-docdbelastic-cluster-shardinstancecount) + */ + override fun shardInstanceCount(): Number? = unwrap(this).getShardInstanceCount() + /** * The Amazon EC2 subnet IDs for the new elastic cluster. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dynamodb/CfnGlobalTable.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dynamodb/CfnGlobalTable.kt index 18f22a9345..8285cf030d 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dynamodb/CfnGlobalTable.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dynamodb/CfnGlobalTable.kt @@ -108,6 +108,7 @@ import software.constructs.Construct as SoftwareConstructsConstruct * // The code below shows an example of how to instantiate this type. * // The values are placeholders you should change. * import io.cloudshiftdev.awscdk.services.dynamodb.*; + * Object policyDocument; * CfnGlobalTable cfnGlobalTable = CfnGlobalTable.Builder.create(this, "MyCfnGlobalTable") * .attributeDefinitions(List.of(AttributeDefinitionProperty.builder() * .attributeName("attributeName") @@ -171,6 +172,14 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .build()) * .readCapacityUnits(123) * .build()) + * .replicaStreamSpecification(ReplicaStreamSpecificationProperty.builder() + * .resourcePolicy(ResourcePolicyProperty.builder() + * .policyDocument(policyDocument) + * .build()) + * .build()) + * .resourcePolicy(ResourcePolicyProperty.builder() + * .policyDocument(policyDocument) + * .build()) * .sseSpecification(ReplicaSSESpecificationProperty.builder() * .kmsMasterKeyId("kmsMasterKeyId") * .build()) @@ -3808,6 +3817,7 @@ public open class CfnGlobalTable( * // The code below shows an example of how to instantiate this type. * // The values are placeholders you should change. * import io.cloudshiftdev.awscdk.services.dynamodb.*; + * Object policyDocument; * ReplicaSpecificationProperty replicaSpecificationProperty = * ReplicaSpecificationProperty.builder() * .region("region") @@ -3863,6 +3873,14 @@ public open class CfnGlobalTable( * .build()) * .readCapacityUnits(123) * .build()) + * .replicaStreamSpecification(ReplicaStreamSpecificationProperty.builder() + * .resourcePolicy(ResourcePolicyProperty.builder() + * .policyDocument(policyDocument) + * .build()) + * .build()) + * .resourcePolicy(ResourcePolicyProperty.builder() + * .policyDocument(policyDocument) + * .build()) * .sseSpecification(ReplicaSSESpecificationProperty.builder() * .kmsMasterKeyId("kmsMasterKeyId") * .build()) @@ -3939,6 +3957,31 @@ public open class CfnGlobalTable( */ public fun region(): String + /** + * Represents the DynamoDB Streams configuration for a global table replica. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaspecification.html#cfn-dynamodb-globaltable-replicaspecification-replicastreamspecification) + */ + public fun replicaStreamSpecification(): Any? = unwrap(this).getReplicaStreamSpecification() + + /** + * A resource-based policy document that contains permissions to add to the specified replica of + * a DynamoDB global table. + * + * Resource-based policies let you define access permissions by specifying who has access to + * each resource, and the actions they are allowed to perform on each resource. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaspecification.html#cfn-dynamodb-globaltable-replicaspecification-resourcepolicy) + */ + public fun resourcePolicy(): Any? = unwrap(this).getResourcePolicy() + /** * Allows you to specify a customer-managed key for the replica. * @@ -4106,6 +4149,78 @@ public open class CfnGlobalTable( */ public fun region(region: String) + /** + * @param replicaStreamSpecification Represents the DynamoDB Streams configuration for a + * global table replica. + */ + public fun replicaStreamSpecification(replicaStreamSpecification: IResolvable) + + /** + * @param replicaStreamSpecification Represents the DynamoDB Streams configuration for a + * global table replica. + */ + public + fun replicaStreamSpecification(replicaStreamSpecification: ReplicaStreamSpecificationProperty) + + /** + * @param replicaStreamSpecification Represents the DynamoDB Streams configuration for a + * global table replica. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("2d266938c0d6175f430ad87daaec4f53238b764dbe50abbb85c842fcfb611a0c") + public + fun replicaStreamSpecification(replicaStreamSpecification: ReplicaStreamSpecificationProperty.Builder.() -> Unit) + + /** + * @param resourcePolicy A resource-based policy document that contains permissions to add to + * the specified replica of a DynamoDB global table. + * Resource-based policies let you define access permissions by specifying who has access to + * each resource, and the actions they are allowed to perform on each resource. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) + * . + */ + public fun resourcePolicy(resourcePolicy: IResolvable) + + /** + * @param resourcePolicy A resource-based policy document that contains permissions to add to + * the specified replica of a DynamoDB global table. + * Resource-based policies let you define access permissions by specifying who has access to + * each resource, and the actions they are allowed to perform on each resource. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) + * . + */ + public fun resourcePolicy(resourcePolicy: ResourcePolicyProperty) + + /** + * @param resourcePolicy A resource-based policy document that contains permissions to add to + * the specified replica of a DynamoDB global table. + * Resource-based policies let you define access permissions by specifying who has access to + * each resource, and the actions they are allowed to perform on each resource. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) + * . + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("bc4eb99dacedf0dcd85e9dd608ab0515a57863e8d1489e0a10ba4cd0e0c9c92c") + public fun resourcePolicy(resourcePolicy: ResourcePolicyProperty.Builder.() -> Unit) + /** * @param sseSpecification Allows you to specify a customer-managed key for the replica. * When using customer-managed keys for server-side encryption, this property must have a @@ -4327,6 +4442,89 @@ public open class CfnGlobalTable( cdkBuilder.region(region) } + /** + * @param replicaStreamSpecification Represents the DynamoDB Streams configuration for a + * global table replica. + */ + override fun replicaStreamSpecification(replicaStreamSpecification: IResolvable) { + cdkBuilder.replicaStreamSpecification(replicaStreamSpecification.let(IResolvable::unwrap)) + } + + /** + * @param replicaStreamSpecification Represents the DynamoDB Streams configuration for a + * global table replica. + */ + override + fun replicaStreamSpecification(replicaStreamSpecification: ReplicaStreamSpecificationProperty) { + cdkBuilder.replicaStreamSpecification(replicaStreamSpecification.let(ReplicaStreamSpecificationProperty::unwrap)) + } + + /** + * @param replicaStreamSpecification Represents the DynamoDB Streams configuration for a + * global table replica. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("2d266938c0d6175f430ad87daaec4f53238b764dbe50abbb85c842fcfb611a0c") + override + fun replicaStreamSpecification(replicaStreamSpecification: ReplicaStreamSpecificationProperty.Builder.() -> Unit): + Unit = + replicaStreamSpecification(ReplicaStreamSpecificationProperty(replicaStreamSpecification)) + + /** + * @param resourcePolicy A resource-based policy document that contains permissions to add to + * the specified replica of a DynamoDB global table. + * Resource-based policies let you define access permissions by specifying who has access to + * each resource, and the actions they are allowed to perform on each resource. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) + * . + */ + override fun resourcePolicy(resourcePolicy: IResolvable) { + cdkBuilder.resourcePolicy(resourcePolicy.let(IResolvable::unwrap)) + } + + /** + * @param resourcePolicy A resource-based policy document that contains permissions to add to + * the specified replica of a DynamoDB global table. + * Resource-based policies let you define access permissions by specifying who has access to + * each resource, and the actions they are allowed to perform on each resource. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) + * . + */ + override fun resourcePolicy(resourcePolicy: ResourcePolicyProperty) { + cdkBuilder.resourcePolicy(resourcePolicy.let(ResourcePolicyProperty::unwrap)) + } + + /** + * @param resourcePolicy A resource-based policy document that contains permissions to add to + * the specified replica of a DynamoDB global table. + * Resource-based policies let you define access permissions by specifying who has access to + * each resource, and the actions they are allowed to perform on each resource. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) + * . + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("bc4eb99dacedf0dcd85e9dd608ab0515a57863e8d1489e0a10ba4cd0e0c9c92c") + override fun resourcePolicy(resourcePolicy: ResourcePolicyProperty.Builder.() -> Unit): Unit = + resourcePolicy(ResourcePolicyProperty(resourcePolicy)) + /** * @param sseSpecification Allows you to specify a customer-managed key for the replica. * When using customer-managed keys for server-side encryption, this property must have a @@ -4452,6 +4650,32 @@ public open class CfnGlobalTable( */ override fun region(): String = unwrap(this).getRegion() + /** + * Represents the DynamoDB Streams configuration for a global table replica. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaspecification.html#cfn-dynamodb-globaltable-replicaspecification-replicastreamspecification) + */ + override fun replicaStreamSpecification(): Any? = unwrap(this).getReplicaStreamSpecification() + + /** + * A resource-based policy document that contains permissions to add to the specified replica + * of a DynamoDB global table. + * + * Resource-based policies let you define access permissions by specifying who has access to + * each resource, and the actions they are allowed to perform on each resource. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaspecification.html#cfn-dynamodb-globaltable-replicaspecification-resourcepolicy) + */ + override fun resourcePolicy(): Any? = unwrap(this).getResourcePolicy() + /** * Allows you to specify a customer-managed key for the replica. * @@ -4501,6 +4725,408 @@ public open class CfnGlobalTable( } } + /** + * Represents the DynamoDB Streams configuration for a global table replica. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.dynamodb.*; + * Object policyDocument; + * ReplicaStreamSpecificationProperty replicaStreamSpecificationProperty = + * ReplicaStreamSpecificationProperty.builder() + * .resourcePolicy(ResourcePolicyProperty.builder() + * .policyDocument(policyDocument) + * .build()) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicastreamspecification.html) + */ + public interface ReplicaStreamSpecificationProperty { + /** + * A resource-based policy document that contains the permissions for the specified stream of a + * DynamoDB global table replica. + * + * Resource-based policies let you define access permissions by specifying who has access to + * each resource, and the actions they are allowed to perform on each resource. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) . + * + * You can update the `ResourcePolicy` property if you've specified more than one table using + * the [AWS + * ::DynamoDB::GlobalTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html) + * resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicastreamspecification.html#cfn-dynamodb-globaltable-replicastreamspecification-resourcepolicy) + */ + public fun resourcePolicy(): Any + + /** + * A builder for [ReplicaStreamSpecificationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param resourcePolicy A resource-based policy document that contains the permissions for + * the specified stream of a DynamoDB global table replica. + * Resource-based policies let you define access permissions by specifying who has access to + * each resource, and the actions they are allowed to perform on each resource. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) + * . + * + * You can update the `ResourcePolicy` property if you've specified more than one table using + * the [AWS + * ::DynamoDB::GlobalTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html) + * resource. + */ + public fun resourcePolicy(resourcePolicy: IResolvable) + + /** + * @param resourcePolicy A resource-based policy document that contains the permissions for + * the specified stream of a DynamoDB global table replica. + * Resource-based policies let you define access permissions by specifying who has access to + * each resource, and the actions they are allowed to perform on each resource. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) + * . + * + * You can update the `ResourcePolicy` property if you've specified more than one table using + * the [AWS + * ::DynamoDB::GlobalTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html) + * resource. + */ + public fun resourcePolicy(resourcePolicy: ResourcePolicyProperty) + + /** + * @param resourcePolicy A resource-based policy document that contains the permissions for + * the specified stream of a DynamoDB global table replica. + * Resource-based policies let you define access permissions by specifying who has access to + * each resource, and the actions they are allowed to perform on each resource. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) + * . + * + * You can update the `ResourcePolicy` property if you've specified more than one table using + * the [AWS + * ::DynamoDB::GlobalTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html) + * resource. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("1d9dc54025c1a70ad31b7f954ae90cd43bbaeae4f661785a9aa0c31c9fb2c559") + public fun resourcePolicy(resourcePolicy: ResourcePolicyProperty.Builder.() -> Unit) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.dynamodb.CfnGlobalTable.ReplicaStreamSpecificationProperty.Builder + = + software.amazon.awscdk.services.dynamodb.CfnGlobalTable.ReplicaStreamSpecificationProperty.builder() + + /** + * @param resourcePolicy A resource-based policy document that contains the permissions for + * the specified stream of a DynamoDB global table replica. + * Resource-based policies let you define access permissions by specifying who has access to + * each resource, and the actions they are allowed to perform on each resource. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) + * . + * + * You can update the `ResourcePolicy` property if you've specified more than one table using + * the [AWS + * ::DynamoDB::GlobalTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html) + * resource. + */ + override fun resourcePolicy(resourcePolicy: IResolvable) { + cdkBuilder.resourcePolicy(resourcePolicy.let(IResolvable::unwrap)) + } + + /** + * @param resourcePolicy A resource-based policy document that contains the permissions for + * the specified stream of a DynamoDB global table replica. + * Resource-based policies let you define access permissions by specifying who has access to + * each resource, and the actions they are allowed to perform on each resource. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) + * . + * + * You can update the `ResourcePolicy` property if you've specified more than one table using + * the [AWS + * ::DynamoDB::GlobalTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html) + * resource. + */ + override fun resourcePolicy(resourcePolicy: ResourcePolicyProperty) { + cdkBuilder.resourcePolicy(resourcePolicy.let(ResourcePolicyProperty::unwrap)) + } + + /** + * @param resourcePolicy A resource-based policy document that contains the permissions for + * the specified stream of a DynamoDB global table replica. + * Resource-based policies let you define access permissions by specifying who has access to + * each resource, and the actions they are allowed to perform on each resource. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) + * . + * + * You can update the `ResourcePolicy` property if you've specified more than one table using + * the [AWS + * ::DynamoDB::GlobalTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html) + * resource. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("1d9dc54025c1a70ad31b7f954ae90cd43bbaeae4f661785a9aa0c31c9fb2c559") + override fun resourcePolicy(resourcePolicy: ResourcePolicyProperty.Builder.() -> Unit): Unit = + resourcePolicy(ResourcePolicyProperty(resourcePolicy)) + + public fun build(): + software.amazon.awscdk.services.dynamodb.CfnGlobalTable.ReplicaStreamSpecificationProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.dynamodb.CfnGlobalTable.ReplicaStreamSpecificationProperty, + ) : CdkObject(cdkObject), ReplicaStreamSpecificationProperty { + /** + * A resource-based policy document that contains the permissions for the specified stream of + * a DynamoDB global table replica. + * + * Resource-based policies let you define access permissions by specifying who has access to + * each resource, and the actions they are allowed to perform on each resource. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) + * . + * + * You can update the `ResourcePolicy` property if you've specified more than one table using + * the [AWS + * ::DynamoDB::GlobalTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html) + * resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicastreamspecification.html#cfn-dynamodb-globaltable-replicastreamspecification-resourcepolicy) + */ + override fun resourcePolicy(): Any = unwrap(this).getResourcePolicy() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): + ReplicaStreamSpecificationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.dynamodb.CfnGlobalTable.ReplicaStreamSpecificationProperty): + ReplicaStreamSpecificationProperty = CdkObjectWrappers.wrap(cdkObject) as? + ReplicaStreamSpecificationProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: ReplicaStreamSpecificationProperty): + software.amazon.awscdk.services.dynamodb.CfnGlobalTable.ReplicaStreamSpecificationProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.dynamodb.CfnGlobalTable.ReplicaStreamSpecificationProperty + } + } + + /** + * Creates or updates a resource-based policy document that contains the permissions for DynamoDB + * resources, such as a table, its indexes, and stream. + * + * Resource-based policies let you define access permissions by specifying who has access to each + * resource, and the actions they are allowed to perform on each resource. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information about + * resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) . + * + * While defining resource-based policies in your CloudFormation templates, the following + * considerations apply: + * + * * The maximum size supported for a resource-based policy document in JSON format is 20 KB. + * DynamoDB counts whitespaces when calculating the size of a policy against this limit. + * * Resource-based policies don't support [drift + * detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html#) + * . If you update a policy outside of the CloudFormation stack template, you'll need to update the + * CloudFormation stack with the changes. + * * Resource-based policies don't support out-of-band changes. If you add, update, or delete a + * policy outside of the CloudFormation template, the change won't be overwritten if there are no + * changes to the policy within the template. + * + * For example, say that your template contains a resource-based policy, which you later update + * outside of the template. If you don't make any changes to the policy in the template, the updated + * policy in DynamoDB won’t be synced with the policy in the template. + * + * Conversely, say that your template doesn’t contain a resource-based policy, but you add a + * policy outside of the template. This policy won’t be removed from DynamoDB as long as you don’t + * add it to the template. When you add a policy to the template and update the stack, the existing + * policy in DynamoDB will be updated to match the one defined in the template. + * + * * Within a resource-based policy, if the action for a DynamoDB service-linked role (SLR) to + * replicate data for a global table is denied, adding or deleting a replica will fail with an error. + * * The [AWS + * ::DynamoDB::GlobalTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html) + * resource doesn't support creating a replica in the same stack update in Regions other than the + * Region where you deploy the stack update. + * + * For a full list of all considerations, see [Resource-based policy + * considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html) + * . + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.dynamodb.*; + * Object policyDocument; + * ResourcePolicyProperty resourcePolicyProperty = ResourcePolicyProperty.builder() + * .policyDocument(policyDocument) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-resourcepolicy.html) + */ + public interface ResourcePolicyProperty { + /** + * A resource-based policy document that contains permissions to add to the specified DynamoDB + * table, its indexes, and stream. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-resourcepolicy.html#cfn-dynamodb-globaltable-resourcepolicy-policydocument) + */ + public fun policyDocument(): Any + + /** + * A builder for [ResourcePolicyProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param policyDocument A resource-based policy document that contains permissions to add to + * the specified DynamoDB table, its indexes, and stream. + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) + * . + */ + public fun policyDocument(policyDocument: Any) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.dynamodb.CfnGlobalTable.ResourcePolicyProperty.Builder = + software.amazon.awscdk.services.dynamodb.CfnGlobalTable.ResourcePolicyProperty.builder() + + /** + * @param policyDocument A resource-based policy document that contains permissions to add to + * the specified DynamoDB table, its indexes, and stream. + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) + * . + */ + override fun policyDocument(policyDocument: Any) { + cdkBuilder.policyDocument(policyDocument) + } + + public fun build(): + software.amazon.awscdk.services.dynamodb.CfnGlobalTable.ResourcePolicyProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.dynamodb.CfnGlobalTable.ResourcePolicyProperty, + ) : CdkObject(cdkObject), ResourcePolicyProperty { + /** + * A resource-based policy document that contains permissions to add to the specified DynamoDB + * table, its indexes, and stream. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-resourcepolicy.html#cfn-dynamodb-globaltable-resourcepolicy-policydocument) + */ + override fun policyDocument(): Any = unwrap(this).getPolicyDocument() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): ResourcePolicyProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.dynamodb.CfnGlobalTable.ResourcePolicyProperty): + ResourcePolicyProperty = CdkObjectWrappers.wrap(cdkObject) as? ResourcePolicyProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: ResourcePolicyProperty): + software.amazon.awscdk.services.dynamodb.CfnGlobalTable.ResourcePolicyProperty = (wrapped + as CdkObject).cdkObject as + software.amazon.awscdk.services.dynamodb.CfnGlobalTable.ResourcePolicyProperty + } + } + /** * Represents the settings used to enable server-side encryption. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dynamodb/CfnGlobalTableProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dynamodb/CfnGlobalTableProps.kt index 38d4fbef17..da779c9b56 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dynamodb/CfnGlobalTableProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dynamodb/CfnGlobalTableProps.kt @@ -21,6 +21,7 @@ import kotlin.jvm.JvmName * // The code below shows an example of how to instantiate this type. * // The values are placeholders you should change. * import io.cloudshiftdev.awscdk.services.dynamodb.*; + * Object policyDocument; * CfnGlobalTableProps cfnGlobalTableProps = CfnGlobalTableProps.builder() * .attributeDefinitions(List.of(AttributeDefinitionProperty.builder() * .attributeName("attributeName") @@ -84,6 +85,14 @@ import kotlin.jvm.JvmName * .build()) * .readCapacityUnits(123) * .build()) + * .replicaStreamSpecification(ReplicaStreamSpecificationProperty.builder() + * .resourcePolicy(ResourcePolicyProperty.builder() + * .policyDocument(policyDocument) + * .build()) + * .build()) + * .resourcePolicy(ResourcePolicyProperty.builder() + * .policyDocument(policyDocument) + * .build()) * .sseSpecification(ReplicaSSESpecificationProperty.builder() * .kmsMasterKeyId("kmsMasterKeyId") * .build()) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dynamodb/CfnTable.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dynamodb/CfnTable.kt index 1422b82fcb..4d0235aa37 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dynamodb/CfnTable.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dynamodb/CfnTable.kt @@ -51,6 +51,7 @@ import software.constructs.Construct as SoftwareConstructsConstruct * // The code below shows an example of how to instantiate this type. * // The values are placeholders you should change. * import io.cloudshiftdev.awscdk.services.dynamodb.*; + * Object policyDocument; * CfnTable cfnTable = CfnTable.Builder.create(this, "MyCfnTable") * .keySchema(List.of(KeySchemaProperty.builder() * .attributeName("attributeName") @@ -125,6 +126,9 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .readCapacityUnits(123) * .writeCapacityUnits(123) * .build()) + * .resourcePolicy(ResourcePolicyProperty.builder() + * .policyDocument(policyDocument) + * .build()) * .sseSpecification(SSESpecificationProperty.builder() * .sseEnabled(false) * // the properties below are optional @@ -133,6 +137,10 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .build()) * .streamSpecification(StreamSpecificationProperty.builder() * .streamViewType("streamViewType") + * // the properties below are optional + * .resourcePolicy(ResourcePolicyProperty.builder() + * .policyDocument(policyDocument) + * .build()) * .build()) * .tableClass("tableClass") * .tableName("tableName") @@ -479,6 +487,33 @@ public open class CfnTable( public open fun provisionedThroughput(`value`: ProvisionedThroughputProperty.Builder.() -> Unit): Unit = provisionedThroughput(ProvisionedThroughputProperty(`value`)) + /** + * A resource-based policy document that contains permissions to add to the specified table. + */ + public open fun resourcePolicy(): Any? = unwrap(this).getResourcePolicy() + + /** + * A resource-based policy document that contains permissions to add to the specified table. + */ + public open fun resourcePolicy(`value`: IResolvable) { + unwrap(this).setResourcePolicy(`value`.let(IResolvable::unwrap)) + } + + /** + * A resource-based policy document that contains permissions to add to the specified table. + */ + public open fun resourcePolicy(`value`: ResourcePolicyProperty) { + unwrap(this).setResourcePolicy(`value`.let(ResourcePolicyProperty::unwrap)) + } + + /** + * A resource-based policy document that contains permissions to add to the specified table. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("08606eacfa4d59bd31a6a176c75c87a142cf509f2e116f3e127589c67b99cada") + public open fun resourcePolicy(`value`: ResourcePolicyProperty.Builder.() -> Unit): Unit = + resourcePolicy(ResourcePolicyProperty(`value`)) + /** * Specifies the settings to enable server-side encryption. */ @@ -1064,6 +1099,74 @@ public open class CfnTable( public fun provisionedThroughput(provisionedThroughput: ProvisionedThroughputProperty.Builder.() -> Unit) + /** + * A resource-based policy document that contains permissions to add to the specified table. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) . + * + * When you attach a resource-based policy while creating a table, the policy creation is + * *strongly consistent* . For information about the considerations that you should keep in mind + * while attaching a resource-based policy, see [Resource-based policy + * considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-resourcepolicy) + * @param resourcePolicy A resource-based policy document that contains permissions to add to + * the specified table. + */ + public fun resourcePolicy(resourcePolicy: IResolvable) + + /** + * A resource-based policy document that contains permissions to add to the specified table. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) . + * + * When you attach a resource-based policy while creating a table, the policy creation is + * *strongly consistent* . For information about the considerations that you should keep in mind + * while attaching a resource-based policy, see [Resource-based policy + * considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-resourcepolicy) + * @param resourcePolicy A resource-based policy document that contains permissions to add to + * the specified table. + */ + public fun resourcePolicy(resourcePolicy: ResourcePolicyProperty) + + /** + * A resource-based policy document that contains permissions to add to the specified table. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) . + * + * When you attach a resource-based policy while creating a table, the policy creation is + * *strongly consistent* . For information about the considerations that you should keep in mind + * while attaching a resource-based policy, see [Resource-based policy + * considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-resourcepolicy) + * @param resourcePolicy A resource-based policy document that contains permissions to add to + * the specified table. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("0a78d8d20b3bf8b2664ee8129dc273fe9e78e2cc8324253d2f108f34f7327bea") + public fun resourcePolicy(resourcePolicy: ResourcePolicyProperty.Builder.() -> Unit) + /** * Specifies the settings to enable server-side encryption. * @@ -1733,6 +1836,79 @@ public open class CfnTable( fun provisionedThroughput(provisionedThroughput: ProvisionedThroughputProperty.Builder.() -> Unit): Unit = provisionedThroughput(ProvisionedThroughputProperty(provisionedThroughput)) + /** + * A resource-based policy document that contains permissions to add to the specified table. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) . + * + * When you attach a resource-based policy while creating a table, the policy creation is + * *strongly consistent* . For information about the considerations that you should keep in mind + * while attaching a resource-based policy, see [Resource-based policy + * considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-resourcepolicy) + * @param resourcePolicy A resource-based policy document that contains permissions to add to + * the specified table. + */ + override fun resourcePolicy(resourcePolicy: IResolvable) { + cdkBuilder.resourcePolicy(resourcePolicy.let(IResolvable::unwrap)) + } + + /** + * A resource-based policy document that contains permissions to add to the specified table. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) . + * + * When you attach a resource-based policy while creating a table, the policy creation is + * *strongly consistent* . For information about the considerations that you should keep in mind + * while attaching a resource-based policy, see [Resource-based policy + * considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-resourcepolicy) + * @param resourcePolicy A resource-based policy document that contains permissions to add to + * the specified table. + */ + override fun resourcePolicy(resourcePolicy: ResourcePolicyProperty) { + cdkBuilder.resourcePolicy(resourcePolicy.let(ResourcePolicyProperty::unwrap)) + } + + /** + * A resource-based policy document that contains permissions to add to the specified table. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) . + * + * When you attach a resource-based policy while creating a table, the policy creation is + * *strongly consistent* . For information about the considerations that you should keep in mind + * while attaching a resource-based policy, see [Resource-based policy + * considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-resourcepolicy) + * @param resourcePolicy A resource-based policy document that contains permissions to add to + * the specified table. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("0a78d8d20b3bf8b2664ee8129dc273fe9e78e2cc8324253d2f108f34f7327bea") + override fun resourcePolicy(resourcePolicy: ResourcePolicyProperty.Builder.() -> Unit): Unit = + resourcePolicy(ResourcePolicyProperty(resourcePolicy)) + /** * Specifies the settings to enable server-side encryption. * @@ -4151,6 +4327,157 @@ public open class CfnTable( } } + /** + * Creates or updates a resource-based policy document that contains the permissions for DynamoDB + * resources, such as a table, its indexes, and stream. + * + * Resource-based policies let you define access permissions by specifying who has access to each + * resource, and the actions they are allowed to perform on each resource. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information about + * resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) . + * + * While defining resource-based policies in your CloudFormation templates, the following + * considerations apply: + * + * * The maximum size supported for a resource-based policy document in JSON format is 20 KB. + * DynamoDB counts whitespaces when calculating the size of a policy against this limit. + * * Resource-based policies don't support [drift + * detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html#) + * . If you update a policy outside of the CloudFormation stack template, you'll need to update the + * CloudFormation stack with the changes. + * * Resource-based policies don't support out-of-band changes. If you add, update, or delete a + * policy outside of the CloudFormation template, the change won't be overwritten if there are no + * changes to the policy within the template. + * + * For example, say that your template contains a resource-based policy, which you later update + * outside of the template. If you don't make any changes to the policy in the template, the updated + * policy in DynamoDB won’t be synced with the policy in the template. + * + * Conversely, say that your template doesn’t contain a resource-based policy, but you add a + * policy outside of the template. This policy won’t be removed from DynamoDB as long as you don’t + * add it to the template. When you add a policy to the template and update the stack, the existing + * policy in DynamoDB will be updated to match the one defined in the template. + * + * For a full list of all considerations, see [Resource-based policy + * considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html) + * . + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.dynamodb.*; + * Object policyDocument; + * ResourcePolicyProperty resourcePolicyProperty = ResourcePolicyProperty.builder() + * .policyDocument(policyDocument) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-resourcepolicy.html) + */ + public interface ResourcePolicyProperty { + /** + * A resource-based policy document that contains permissions to add to the specified DynamoDB + * table, index, or both. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-resourcepolicy.html#cfn-dynamodb-table-resourcepolicy-policydocument) + */ + public fun policyDocument(): Any + + /** + * A builder for [ResourcePolicyProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param policyDocument A resource-based policy document that contains permissions to add to + * the specified DynamoDB table, index, or both. + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) + * . + */ + public fun policyDocument(policyDocument: Any) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.dynamodb.CfnTable.ResourcePolicyProperty.Builder = + software.amazon.awscdk.services.dynamodb.CfnTable.ResourcePolicyProperty.builder() + + /** + * @param policyDocument A resource-based policy document that contains permissions to add to + * the specified DynamoDB table, index, or both. + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) + * . + */ + override fun policyDocument(policyDocument: Any) { + cdkBuilder.policyDocument(policyDocument) + } + + public fun build(): software.amazon.awscdk.services.dynamodb.CfnTable.ResourcePolicyProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.dynamodb.CfnTable.ResourcePolicyProperty, + ) : CdkObject(cdkObject), ResourcePolicyProperty { + /** + * A resource-based policy document that contains permissions to add to the specified DynamoDB + * table, index, or both. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-resourcepolicy.html#cfn-dynamodb-table-resourcepolicy-policydocument) + */ + override fun policyDocument(): Any = unwrap(this).getPolicyDocument() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): ResourcePolicyProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.dynamodb.CfnTable.ResourcePolicyProperty): + ResourcePolicyProperty = CdkObjectWrappers.wrap(cdkObject) as? ResourcePolicyProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: ResourcePolicyProperty): + software.amazon.awscdk.services.dynamodb.CfnTable.ResourcePolicyProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.dynamodb.CfnTable.ResourcePolicyProperty + } + } + /** * The S3 bucket that is being imported from. * @@ -4498,14 +4825,37 @@ public open class CfnTable( * // The code below shows an example of how to instantiate this type. * // The values are placeholders you should change. * import io.cloudshiftdev.awscdk.services.dynamodb.*; + * Object policyDocument; * StreamSpecificationProperty streamSpecificationProperty = StreamSpecificationProperty.builder() * .streamViewType("streamViewType") + * // the properties below are optional + * .resourcePolicy(ResourcePolicyProperty.builder() + * .policyDocument(policyDocument) + * .build()) * .build(); * ``` * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-streamspecification.html) */ public interface StreamSpecificationProperty { + /** + * Creates or updates a resource-based policy document that contains the permissions for + * DynamoDB resources, such as a table's streams. + * + * Resource-based policies let you define access permissions by specifying who has access to + * each resource, and the actions they are allowed to perform on each resource. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-streamspecification.html#cfn-dynamodb-table-streamspecification-resourcepolicy) + */ + public fun resourcePolicy(): Any? = unwrap(this).getResourcePolicy() + /** * When an item in the table is modified, `StreamViewType` determines what information is * written to the stream for this table. @@ -4529,6 +4879,56 @@ public open class CfnTable( */ @CdkDslMarker public interface Builder { + /** + * @param resourcePolicy Creates or updates a resource-based policy document that contains the + * permissions for DynamoDB resources, such as a table's streams. + * Resource-based policies let you define access permissions by specifying who has access to + * each resource, and the actions they are allowed to perform on each resource. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) + * . + */ + public fun resourcePolicy(resourcePolicy: IResolvable) + + /** + * @param resourcePolicy Creates or updates a resource-based policy document that contains the + * permissions for DynamoDB resources, such as a table's streams. + * Resource-based policies let you define access permissions by specifying who has access to + * each resource, and the actions they are allowed to perform on each resource. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) + * . + */ + public fun resourcePolicy(resourcePolicy: ResourcePolicyProperty) + + /** + * @param resourcePolicy Creates or updates a resource-based policy document that contains the + * permissions for DynamoDB resources, such as a table's streams. + * Resource-based policies let you define access permissions by specifying who has access to + * each resource, and the actions they are allowed to perform on each resource. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) + * . + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("a6e5af203e1692b7eb47a2141fc8ac4bcb4be49470e3bee260f10498c91d806c") + public fun resourcePolicy(resourcePolicy: ResourcePolicyProperty.Builder.() -> Unit) + /** * @param streamViewType When an item in the table is modified, `StreamViewType` determines * what information is written to the stream for this table. @@ -4550,6 +4950,61 @@ public open class CfnTable( software.amazon.awscdk.services.dynamodb.CfnTable.StreamSpecificationProperty.Builder = software.amazon.awscdk.services.dynamodb.CfnTable.StreamSpecificationProperty.builder() + /** + * @param resourcePolicy Creates or updates a resource-based policy document that contains the + * permissions for DynamoDB resources, such as a table's streams. + * Resource-based policies let you define access permissions by specifying who has access to + * each resource, and the actions they are allowed to perform on each resource. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) + * . + */ + override fun resourcePolicy(resourcePolicy: IResolvable) { + cdkBuilder.resourcePolicy(resourcePolicy.let(IResolvable::unwrap)) + } + + /** + * @param resourcePolicy Creates or updates a resource-based policy document that contains the + * permissions for DynamoDB resources, such as a table's streams. + * Resource-based policies let you define access permissions by specifying who has access to + * each resource, and the actions they are allowed to perform on each resource. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) + * . + */ + override fun resourcePolicy(resourcePolicy: ResourcePolicyProperty) { + cdkBuilder.resourcePolicy(resourcePolicy.let(ResourcePolicyProperty::unwrap)) + } + + /** + * @param resourcePolicy Creates or updates a resource-based policy document that contains the + * permissions for DynamoDB resources, such as a table's streams. + * Resource-based policies let you define access permissions by specifying who has access to + * each resource, and the actions they are allowed to perform on each resource. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) + * . + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("a6e5af203e1692b7eb47a2141fc8ac4bcb4be49470e3bee260f10498c91d806c") + override fun resourcePolicy(resourcePolicy: ResourcePolicyProperty.Builder.() -> Unit): Unit = + resourcePolicy(ResourcePolicyProperty(resourcePolicy)) + /** * @param streamViewType When an item in the table is modified, `StreamViewType` determines * what information is written to the stream for this table. @@ -4575,6 +5030,25 @@ public open class CfnTable( private class Wrapper( cdkObject: software.amazon.awscdk.services.dynamodb.CfnTable.StreamSpecificationProperty, ) : CdkObject(cdkObject), StreamSpecificationProperty { + /** + * Creates or updates a resource-based policy document that contains the permissions for + * DynamoDB resources, such as a table's streams. + * + * Resource-based policies let you define access permissions by specifying who has access to + * each resource, and the actions they are allowed to perform on each resource. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-streamspecification.html#cfn-dynamodb-table-streamspecification-resourcepolicy) + */ + override fun resourcePolicy(): Any? = unwrap(this).getResourcePolicy() + /** * When an item in the table is modified, `StreamViewType` determines what information is * written to the stream for this table. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dynamodb/CfnTableProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dynamodb/CfnTableProps.kt index f4d543762a..d9f9cc666b 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dynamodb/CfnTableProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dynamodb/CfnTableProps.kt @@ -23,6 +23,7 @@ import kotlin.jvm.JvmName * // The code below shows an example of how to instantiate this type. * // The values are placeholders you should change. * import io.cloudshiftdev.awscdk.services.dynamodb.*; + * Object policyDocument; * CfnTableProps cfnTableProps = CfnTableProps.builder() * .keySchema(List.of(KeySchemaProperty.builder() * .attributeName("attributeName") @@ -97,6 +98,9 @@ import kotlin.jvm.JvmName * .readCapacityUnits(123) * .writeCapacityUnits(123) * .build()) + * .resourcePolicy(ResourcePolicyProperty.builder() + * .policyDocument(policyDocument) + * .build()) * .sseSpecification(SSESpecificationProperty.builder() * .sseEnabled(false) * // the properties below are optional @@ -105,6 +109,10 @@ import kotlin.jvm.JvmName * .build()) * .streamSpecification(StreamSpecificationProperty.builder() * .streamViewType("streamViewType") + * // the properties below are optional + * .resourcePolicy(ResourcePolicyProperty.builder() + * .policyDocument(policyDocument) + * .build()) * .build()) * .tableClass("tableClass") * .tableName("tableName") @@ -269,6 +277,26 @@ public interface CfnTableProps { */ public fun provisionedThroughput(): Any? = unwrap(this).getProvisionedThroughput() + /** + * A resource-based policy document that contains permissions to add to the specified table. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information about + * resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) . + * + * When you attach a resource-based policy while creating a table, the policy creation is + * *strongly consistent* . For information about the considerations that you should keep in mind + * while attaching a resource-based policy, see [Resource-based policy + * considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-resourcepolicy) + */ + public fun resourcePolicy(): Any? = unwrap(this).getResourcePolicy() + /** * Specifies the settings to enable server-side encryption. * @@ -663,6 +691,62 @@ public interface CfnTableProps { public fun provisionedThroughput(provisionedThroughput: CfnTable.ProvisionedThroughputProperty.Builder.() -> Unit) + /** + * @param resourcePolicy A resource-based policy document that contains permissions to add to + * the specified table. + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) . + * + * When you attach a resource-based policy while creating a table, the policy creation is + * *strongly consistent* . For information about the considerations that you should keep in mind + * while attaching a resource-based policy, see [Resource-based policy + * considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html) + * . + */ + public fun resourcePolicy(resourcePolicy: IResolvable) + + /** + * @param resourcePolicy A resource-based policy document that contains permissions to add to + * the specified table. + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) . + * + * When you attach a resource-based policy while creating a table, the policy creation is + * *strongly consistent* . For information about the considerations that you should keep in mind + * while attaching a resource-based policy, see [Resource-based policy + * considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html) + * . + */ + public fun resourcePolicy(resourcePolicy: CfnTable.ResourcePolicyProperty) + + /** + * @param resourcePolicy A resource-based policy document that contains permissions to add to + * the specified table. + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) . + * + * When you attach a resource-based policy while creating a table, the policy creation is + * *strongly consistent* . For information about the considerations that you should keep in mind + * while attaching a resource-based policy, see [Resource-based policy + * considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html) + * . + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("10e80221d99cc74afc329f0fd4a910679ebd3c01b9d358a32301040ee1b08a26") + public fun resourcePolicy(resourcePolicy: CfnTable.ResourcePolicyProperty.Builder.() -> Unit) + /** * @param sseSpecification Specifies the settings to enable server-side encryption. */ @@ -1153,6 +1237,67 @@ public interface CfnTableProps { fun provisionedThroughput(provisionedThroughput: CfnTable.ProvisionedThroughputProperty.Builder.() -> Unit): Unit = provisionedThroughput(CfnTable.ProvisionedThroughputProperty(provisionedThroughput)) + /** + * @param resourcePolicy A resource-based policy document that contains permissions to add to + * the specified table. + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) . + * + * When you attach a resource-based policy while creating a table, the policy creation is + * *strongly consistent* . For information about the considerations that you should keep in mind + * while attaching a resource-based policy, see [Resource-based policy + * considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html) + * . + */ + override fun resourcePolicy(resourcePolicy: IResolvable) { + cdkBuilder.resourcePolicy(resourcePolicy.let(IResolvable::unwrap)) + } + + /** + * @param resourcePolicy A resource-based policy document that contains permissions to add to + * the specified table. + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) . + * + * When you attach a resource-based policy while creating a table, the policy creation is + * *strongly consistent* . For information about the considerations that you should keep in mind + * while attaching a resource-based policy, see [Resource-based policy + * considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html) + * . + */ + override fun resourcePolicy(resourcePolicy: CfnTable.ResourcePolicyProperty) { + cdkBuilder.resourcePolicy(resourcePolicy.let(CfnTable.ResourcePolicyProperty::unwrap)) + } + + /** + * @param resourcePolicy A resource-based policy document that contains permissions to add to + * the specified table. + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) . + * + * When you attach a resource-based policy while creating a table, the policy creation is + * *strongly consistent* . For information about the considerations that you should keep in mind + * while attaching a resource-based policy, see [Resource-based policy + * considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html) + * . + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("10e80221d99cc74afc329f0fd4a910679ebd3c01b9d358a32301040ee1b08a26") + override fun resourcePolicy(resourcePolicy: CfnTable.ResourcePolicyProperty.Builder.() -> Unit): + Unit = resourcePolicy(CfnTable.ResourcePolicyProperty(resourcePolicy)) + /** * @param sseSpecification Specifies the settings to enable server-side encryption. */ @@ -1433,6 +1578,26 @@ public interface CfnTableProps { */ override fun provisionedThroughput(): Any? = unwrap(this).getProvisionedThroughput() + /** + * A resource-based policy document that contains permissions to add to the specified table. + * + * In a CloudFormation template, you can provide the policy in JSON or YAML format because + * CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information + * about resource-based policies, see [Using resource-based policies for + * DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) + * and [Resource-based policy + * examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html) . + * + * When you attach a resource-based policy while creating a table, the policy creation is + * *strongly consistent* . For information about the considerations that you should keep in mind + * while attaching a resource-based policy, see [Resource-based policy + * considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-resourcepolicy) + */ + override fun resourcePolicy(): Any? = unwrap(this).getResourcePolicy() + /** * Specifies the settings to enable server-side encryption. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dynamodb/InputFormat.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dynamodb/InputFormat.kt index 2748c5d080..0b80f428d9 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dynamodb/InputFormat.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/dynamodb/InputFormat.kt @@ -50,7 +50,7 @@ public abstract class InputFormat( @JvmName("2755f0fdb57e36185ffda293270efaf3fa63ca1727275d2fcf5c04e945bdd9ba") public fun csv(options: CsvOptions.Builder.() -> Unit): InputFormat = csv(CsvOptions(options)) - public fun dynamoDbJson(): InputFormat = + public fun dynamoDBJson(): InputFormat = software.amazon.awscdk.services.dynamodb.InputFormat.dynamoDBJson().let(InputFormat::wrap) public fun ion(): InputFormat = diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnCustomerGateway.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnCustomerGateway.kt index 585891b753..34dd26e850 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnCustomerGateway.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnCustomerGateway.kt @@ -27,10 +27,12 @@ import software.constructs.Construct as SoftwareConstructsConstruct * import io.cloudshiftdev.awscdk.services.ec2.*; * CfnCustomerGateway cfnCustomerGateway = CfnCustomerGateway.Builder.create(this, * "MyCfnCustomerGateway") - * .bgpAsn(123) * .ipAddress("ipAddress") * .type("type") * // the properties below are optional + * .bgpAsn(123) + * .bgpAsnExtended(123) + * .certificateArn("certificateArn") * .deviceName("deviceName") * .tags(List.of(CfnTag.builder() * .key("key") @@ -68,7 +70,7 @@ public open class CfnCustomerGateway( /** * For devices that support BGP, the customer gateway's BGP ASN. */ - public open fun bgpAsn(): Number = unwrap(this).getBgpAsn() + public open fun bgpAsn(): Number? = unwrap(this).getBgpAsn() /** * For devices that support BGP, the customer gateway's BGP ASN. @@ -77,6 +79,30 @@ public open class CfnCustomerGateway( unwrap(this).setBgpAsn(`value`) } + /** + * + */ + public open fun bgpAsnExtended(): Number? = unwrap(this).getBgpAsnExtended() + + /** + * + */ + public open fun bgpAsnExtended(`value`: Number) { + unwrap(this).setBgpAsnExtended(`value`) + } + + /** + * The Amazon Resource Name (ARN) for the customer gateway certificate. + */ + public open fun certificateArn(): String? = unwrap(this).getCertificateArn() + + /** + * The Amazon Resource Name (ARN) for the customer gateway certificate. + */ + public open fun certificateArn(`value`: String) { + unwrap(this).setCertificateArn(`value`) + } + /** * The name of customer gateway device. */ @@ -162,6 +188,20 @@ public open class CfnCustomerGateway( */ public fun bgpAsn(bgpAsn: Number) + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customergateway.html#cfn-ec2-customergateway-bgpasnextended) + * @param bgpAsnExtended + */ + public fun bgpAsnExtended(bgpAsnExtended: Number) + + /** + * The Amazon Resource Name (ARN) for the customer gateway certificate. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customergateway.html#cfn-ec2-customergateway-certificatearn) + * @param certificateArn The Amazon Resource Name (ARN) for the customer gateway certificate. + */ + public fun certificateArn(certificateArn: String) + /** * The name of customer gateway device. * @@ -226,6 +266,24 @@ public open class CfnCustomerGateway( cdkBuilder.bgpAsn(bgpAsn) } + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customergateway.html#cfn-ec2-customergateway-bgpasnextended) + * @param bgpAsnExtended + */ + override fun bgpAsnExtended(bgpAsnExtended: Number) { + cdkBuilder.bgpAsnExtended(bgpAsnExtended) + } + + /** + * The Amazon Resource Name (ARN) for the customer gateway certificate. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customergateway.html#cfn-ec2-customergateway-certificatearn) + * @param certificateArn The Amazon Resource Name (ARN) for the customer gateway certificate. + */ + override fun certificateArn(certificateArn: String) { + cdkBuilder.certificateArn(certificateArn) + } + /** * The name of customer gateway device. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnCustomerGatewayProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnCustomerGatewayProps.kt index 8f1e76a4d0..919a639b29 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnCustomerGatewayProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnCustomerGatewayProps.kt @@ -21,10 +21,12 @@ import kotlin.collections.List * // The values are placeholders you should change. * import io.cloudshiftdev.awscdk.services.ec2.*; * CfnCustomerGatewayProps cfnCustomerGatewayProps = CfnCustomerGatewayProps.builder() - * .bgpAsn(123) * .ipAddress("ipAddress") * .type("type") * // the properties below are optional + * .bgpAsn(123) + * .bgpAsnExtended(123) + * .certificateArn("certificateArn") * .deviceName("deviceName") * .tags(List.of(CfnTag.builder() * .key("key") @@ -45,7 +47,19 @@ public interface CfnCustomerGatewayProps { * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customergateway.html#cfn-ec2-customergateway-bgpasn) */ - public fun bgpAsn(): Number + public fun bgpAsn(): Number? = unwrap(this).getBgpAsn() + + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customergateway.html#cfn-ec2-customergateway-bgpasnextended) + */ + public fun bgpAsnExtended(): Number? = unwrap(this).getBgpAsnExtended() + + /** + * The Amazon Resource Name (ARN) for the customer gateway certificate. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customergateway.html#cfn-ec2-customergateway-certificatearn) + */ + public fun certificateArn(): String? = unwrap(this).getCertificateArn() /** * The name of customer gateway device. @@ -83,11 +97,21 @@ public interface CfnCustomerGatewayProps { @CdkDslMarker public interface Builder { /** - * @param bgpAsn For devices that support BGP, the customer gateway's BGP ASN. + * @param bgpAsn For devices that support BGP, the customer gateway's BGP ASN. * Default: 65000 */ public fun bgpAsn(bgpAsn: Number) + /** + * @param bgpAsnExtended the value to be set. + */ + public fun bgpAsnExtended(bgpAsnExtended: Number) + + /** + * @param certificateArn The Amazon Resource Name (ARN) for the customer gateway certificate. + */ + public fun certificateArn(certificateArn: String) + /** * @param deviceName The name of customer gateway device. */ @@ -120,13 +144,27 @@ public interface CfnCustomerGatewayProps { software.amazon.awscdk.services.ec2.CfnCustomerGatewayProps.builder() /** - * @param bgpAsn For devices that support BGP, the customer gateway's BGP ASN. + * @param bgpAsn For devices that support BGP, the customer gateway's BGP ASN. * Default: 65000 */ override fun bgpAsn(bgpAsn: Number) { cdkBuilder.bgpAsn(bgpAsn) } + /** + * @param bgpAsnExtended the value to be set. + */ + override fun bgpAsnExtended(bgpAsnExtended: Number) { + cdkBuilder.bgpAsnExtended(bgpAsnExtended) + } + + /** + * @param certificateArn The Amazon Resource Name (ARN) for the customer gateway certificate. + */ + override fun certificateArn(certificateArn: String) { + cdkBuilder.certificateArn(certificateArn) + } + /** * @param deviceName The name of customer gateway device. */ @@ -177,7 +215,19 @@ public interface CfnCustomerGatewayProps { * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customergateway.html#cfn-ec2-customergateway-bgpasn) */ - override fun bgpAsn(): Number = unwrap(this).getBgpAsn() + override fun bgpAsn(): Number? = unwrap(this).getBgpAsn() + + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customergateway.html#cfn-ec2-customergateway-bgpasnextended) + */ + override fun bgpAsnExtended(): Number? = unwrap(this).getBgpAsnExtended() + + /** + * The Amazon Resource Name (ARN) for the customer gateway certificate. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customergateway.html#cfn-ec2-customergateway-certificatearn) + */ + override fun certificateArn(): String? = unwrap(this).getCertificateArn() /** * The name of customer gateway device. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnDHCPOptions.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnDHCPOptions.kt index 760fbe72f1..322f0d28a0 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnDHCPOptions.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnDHCPOptions.kt @@ -32,6 +32,7 @@ import software.constructs.Construct as SoftwareConstructsConstruct * CfnDHCPOptions cfnDHCPOptions = CfnDHCPOptions.Builder.create(this, "MyCfnDHCPOptions") * .domainName("domainName") * .domainNameServers(List.of("domainNameServers")) + * .ipv6AddressPreferredLeaseTime(123) * .netbiosNameServers(List.of("netbiosNameServers")) * .netbiosNodeType(123) * .ntpServers(List.of("ntpServers")) @@ -113,6 +114,21 @@ public open class CfnDHCPOptions( unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) } + /** + * A value (in seconds, minutes, hours, or years) for how frequently a running instance with an + * IPv6 assigned to it goes through DHCPv6 lease renewal. + */ + public open fun ipv6AddressPreferredLeaseTime(): Number? = + unwrap(this).getIpv6AddressPreferredLeaseTime() + + /** + * A value (in seconds, minutes, hours, or years) for how frequently a running instance with an + * IPv6 assigned to it goes through DHCPv6 lease renewal. + */ + public open fun ipv6AddressPreferredLeaseTime(`value`: Number) { + unwrap(this).setIpv6AddressPreferredLeaseTime(`value`) + } + /** * The IPv4 addresses of up to four NetBIOS name servers. */ @@ -226,6 +242,21 @@ public open class CfnDHCPOptions( */ public fun domainNameServers(vararg domainNameServers: String) + /** + * A value (in seconds, minutes, hours, or years) for how frequently a running instance with an + * IPv6 assigned to it goes through DHCPv6 lease renewal. + * + * Acceptable values are between 140 and 2147483647 seconds (approximately 68 years). If no + * value is entered, the default lease time is 140 seconds. If you use long-term addressing for EC2 + * instances, you can increase the lease time and avoid frequent lease renewal requests. Lease + * renewal typically occurs when half of the lease time has elapsed. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html#cfn-ec2-dhcpoptions-ipv6addresspreferredleasetime) + * @param ipv6AddressPreferredLeaseTime A value (in seconds, minutes, hours, or years) for how + * frequently a running instance with an IPv6 assigned to it goes through DHCPv6 lease renewal. + */ + public fun ipv6AddressPreferredLeaseTime(ipv6AddressPreferredLeaseTime: Number) + /** * The IPv4 addresses of up to four NetBIOS name servers. * @@ -334,6 +365,23 @@ public open class CfnDHCPOptions( override fun domainNameServers(vararg domainNameServers: String): Unit = domainNameServers(domainNameServers.toList()) + /** + * A value (in seconds, minutes, hours, or years) for how frequently a running instance with an + * IPv6 assigned to it goes through DHCPv6 lease renewal. + * + * Acceptable values are between 140 and 2147483647 seconds (approximately 68 years). If no + * value is entered, the default lease time is 140 seconds. If you use long-term addressing for EC2 + * instances, you can increase the lease time and avoid frequent lease renewal requests. Lease + * renewal typically occurs when half of the lease time has elapsed. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html#cfn-ec2-dhcpoptions-ipv6addresspreferredleasetime) + * @param ipv6AddressPreferredLeaseTime A value (in seconds, minutes, hours, or years) for how + * frequently a running instance with an IPv6 assigned to it goes through DHCPv6 lease renewal. + */ + override fun ipv6AddressPreferredLeaseTime(ipv6AddressPreferredLeaseTime: Number) { + cdkBuilder.ipv6AddressPreferredLeaseTime(ipv6AddressPreferredLeaseTime) + } + /** * The IPv4 addresses of up to four NetBIOS name servers. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnDHCPOptionsProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnDHCPOptionsProps.kt index 24b06bf618..1e615853d6 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnDHCPOptionsProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnDHCPOptionsProps.kt @@ -23,6 +23,7 @@ import kotlin.collections.List * CfnDHCPOptionsProps cfnDHCPOptionsProps = CfnDHCPOptionsProps.builder() * .domainName("domainName") * .domainNameServers(List.of("domainNameServers")) + * .ipv6AddressPreferredLeaseTime(123) * .netbiosNameServers(List.of("netbiosNameServers")) * .netbiosNodeType(123) * .ntpServers(List.of("ntpServers")) @@ -58,6 +59,20 @@ public interface CfnDHCPOptionsProps { */ public fun domainNameServers(): List = unwrap(this).getDomainNameServers() ?: emptyList() + /** + * A value (in seconds, minutes, hours, or years) for how frequently a running instance with an + * IPv6 assigned to it goes through DHCPv6 lease renewal. + * + * Acceptable values are between 140 and 2147483647 seconds (approximately 68 years). If no value + * is entered, the default lease time is 140 seconds. If you use long-term addressing for EC2 + * instances, you can increase the lease time and avoid frequent lease renewal requests. Lease + * renewal typically occurs when half of the lease time has elapsed. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html#cfn-ec2-dhcpoptions-ipv6addresspreferredleasetime) + */ + public fun ipv6AddressPreferredLeaseTime(): Number? = + unwrap(this).getIpv6AddressPreferredLeaseTime() + /** * The IPv4 addresses of up to four NetBIOS name servers. * @@ -119,6 +134,16 @@ public interface CfnDHCPOptionsProps { */ public fun domainNameServers(vararg domainNameServers: String) + /** + * @param ipv6AddressPreferredLeaseTime A value (in seconds, minutes, hours, or years) for how + * frequently a running instance with an IPv6 assigned to it goes through DHCPv6 lease renewal. + * Acceptable values are between 140 and 2147483647 seconds (approximately 68 years). If no + * value is entered, the default lease time is 140 seconds. If you use long-term addressing for EC2 + * instances, you can increase the lease time and avoid frequent lease renewal requests. Lease + * renewal typically occurs when half of the lease time has elapsed. + */ + public fun ipv6AddressPreferredLeaseTime(ipv6AddressPreferredLeaseTime: Number) + /** * @param netbiosNameServers The IPv4 addresses of up to four NetBIOS name servers. */ @@ -190,6 +215,18 @@ public interface CfnDHCPOptionsProps { override fun domainNameServers(vararg domainNameServers: String): Unit = domainNameServers(domainNameServers.toList()) + /** + * @param ipv6AddressPreferredLeaseTime A value (in seconds, minutes, hours, or years) for how + * frequently a running instance with an IPv6 assigned to it goes through DHCPv6 lease renewal. + * Acceptable values are between 140 and 2147483647 seconds (approximately 68 years). If no + * value is entered, the default lease time is 140 seconds. If you use long-term addressing for EC2 + * instances, you can increase the lease time and avoid frequent lease renewal requests. Lease + * renewal typically occurs when half of the lease time has elapsed. + */ + override fun ipv6AddressPreferredLeaseTime(ipv6AddressPreferredLeaseTime: Number) { + cdkBuilder.ipv6AddressPreferredLeaseTime(ipv6AddressPreferredLeaseTime) + } + /** * @param netbiosNameServers The IPv4 addresses of up to four NetBIOS name servers. */ @@ -264,6 +301,20 @@ public interface CfnDHCPOptionsProps { override fun domainNameServers(): List = unwrap(this).getDomainNameServers() ?: emptyList() + /** + * A value (in seconds, minutes, hours, or years) for how frequently a running instance with an + * IPv6 assigned to it goes through DHCPv6 lease renewal. + * + * Acceptable values are between 140 and 2147483647 seconds (approximately 68 years). If no + * value is entered, the default lease time is 140 seconds. If you use long-term addressing for EC2 + * instances, you can increase the lease time and avoid frequent lease renewal requests. Lease + * renewal typically occurs when half of the lease time has elapsed. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html#cfn-ec2-dhcpoptions-ipv6addresspreferredleasetime) + */ + override fun ipv6AddressPreferredLeaseTime(): Number? = + unwrap(this).getIpv6AddressPreferredLeaseTime() + /** * The IPv4 addresses of up to four NetBIOS name servers. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnFlowLog.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnFlowLog.kt index 01e4483674..03eda485e8 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnFlowLog.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnFlowLog.kt @@ -99,14 +99,12 @@ public open class CfnFlowLog( } /** - * The ARN of the IAM role that allows Amazon EC2 to publish flow logs to a CloudWatch Logs log - * group in your account. + * The ARN of the IAM role that allows Amazon EC2 to publish flow logs to the log destination. */ public open fun deliverLogsPermissionArn(): String? = unwrap(this).getDeliverLogsPermissionArn() /** - * The ARN of the IAM role that allows Amazon EC2 to publish flow logs to a CloudWatch Logs log - * group in your account. + * The ARN of the IAM role that allows Amazon EC2 to publish flow logs to the log destination. */ public open fun deliverLogsPermissionArn(`value`: String) { unwrap(this).setDeliverLogsPermissionArn(`value`) @@ -114,15 +112,11 @@ public open class CfnFlowLog( /** * The destination options. - * - * The following options are supported:. */ public open fun destinationOptions(): Any? = unwrap(this).getDestinationOptions() /** * The destination options. - * - * The following options are supported:. */ public open fun destinationOptions(`value`: Any) { unwrap(this).setDestinationOptions(`value`) @@ -279,30 +273,23 @@ public open class CfnFlowLog( public fun deliverCrossAccountRole(deliverCrossAccountRole: String) /** - * The ARN of the IAM role that allows Amazon EC2 to publish flow logs to a CloudWatch Logs log - * group in your account. + * The ARN of the IAM role that allows Amazon EC2 to publish flow logs to the log destination. * - * This parameter is required if the destination type is `cloud-watch-logs` and unsupported - * otherwise. + * This parameter is required if the destination type is `cloud-watch-logs` , or if the + * destination type is `kinesis-data-firehose` and the delivery stream and the resources to monitor + * are in different accounts. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-deliverlogspermissionarn) * @param deliverLogsPermissionArn The ARN of the IAM role that allows Amazon EC2 to publish - * flow logs to a CloudWatch Logs log group in your account. + * flow logs to the log destination. */ public fun deliverLogsPermissionArn(deliverLogsPermissionArn: String) /** - * The destination options. The following options are supported:. - * - * * `FileFormat` - The format for the flow log ( `plain-text` | `parquet` ). The default is - * `plain-text` . - * * `HiveCompatiblePartitions` - Indicates whether to use Hive-compatible prefixes for flow - * logs stored in Amazon S3 ( `true` | `false` ). The default is `false` . - * * `PerHourPartition` - Indicates whether to partition the flow log per hour ( `true` | - * `false` ). The default is `false` . + * The destination options. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-destinationoptions) - * @param destinationOptions The destination options. The following options are supported:. + * @param destinationOptions The destination options. */ public fun destinationOptions(destinationOptions: Any) @@ -461,32 +448,25 @@ public open class CfnFlowLog( } /** - * The ARN of the IAM role that allows Amazon EC2 to publish flow logs to a CloudWatch Logs log - * group in your account. + * The ARN of the IAM role that allows Amazon EC2 to publish flow logs to the log destination. * - * This parameter is required if the destination type is `cloud-watch-logs` and unsupported - * otherwise. + * This parameter is required if the destination type is `cloud-watch-logs` , or if the + * destination type is `kinesis-data-firehose` and the delivery stream and the resources to monitor + * are in different accounts. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-deliverlogspermissionarn) * @param deliverLogsPermissionArn The ARN of the IAM role that allows Amazon EC2 to publish - * flow logs to a CloudWatch Logs log group in your account. + * flow logs to the log destination. */ override fun deliverLogsPermissionArn(deliverLogsPermissionArn: String) { cdkBuilder.deliverLogsPermissionArn(deliverLogsPermissionArn) } /** - * The destination options. The following options are supported:. - * - * * `FileFormat` - The format for the flow log ( `plain-text` | `parquet` ). The default is - * `plain-text` . - * * `HiveCompatiblePartitions` - Indicates whether to use Hive-compatible prefixes for flow - * logs stored in Amazon S3 ( `true` | `false` ). The default is `false` . - * * `PerHourPartition` - Indicates whether to partition the flow log per hour ( `true` | - * `false` ). The default is `false` . + * The destination options. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-destinationoptions) - * @param destinationOptions The destination options. The following options are supported:. + * @param destinationOptions The destination options. */ override fun destinationOptions(destinationOptions: Any) { cdkBuilder.destinationOptions(destinationOptions) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnFlowLogProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnFlowLogProps.kt index 54885a865e..b18e1cb4ae 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnFlowLogProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnFlowLogProps.kt @@ -53,25 +53,18 @@ public interface CfnFlowLogProps { public fun deliverCrossAccountRole(): String? = unwrap(this).getDeliverCrossAccountRole() /** - * The ARN of the IAM role that allows Amazon EC2 to publish flow logs to a CloudWatch Logs log - * group in your account. + * The ARN of the IAM role that allows Amazon EC2 to publish flow logs to the log destination. * - * This parameter is required if the destination type is `cloud-watch-logs` and unsupported - * otherwise. + * This parameter is required if the destination type is `cloud-watch-logs` , or if the + * destination type is `kinesis-data-firehose` and the delivery stream and the resources to monitor + * are in different accounts. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-deliverlogspermissionarn) */ public fun deliverLogsPermissionArn(): String? = unwrap(this).getDeliverLogsPermissionArn() /** - * The destination options. The following options are supported:. - * - * * `FileFormat` - The format for the flow log ( `plain-text` | `parquet` ). The default is - * `plain-text` . - * * `HiveCompatiblePartitions` - Indicates whether to use Hive-compatible prefixes for flow logs - * stored in Amazon S3 ( `true` | `false` ). The default is `false` . - * * `PerHourPartition` - Indicates whether to partition the flow log per hour ( `true` | `false` - * ). The default is `false` . + * The destination options. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-destinationoptions) */ @@ -202,20 +195,15 @@ public interface CfnFlowLogProps { /** * @param deliverLogsPermissionArn The ARN of the IAM role that allows Amazon EC2 to publish - * flow logs to a CloudWatch Logs log group in your account. - * This parameter is required if the destination type is `cloud-watch-logs` and unsupported - * otherwise. + * flow logs to the log destination. + * This parameter is required if the destination type is `cloud-watch-logs` , or if the + * destination type is `kinesis-data-firehose` and the delivery stream and the resources to monitor + * are in different accounts. */ public fun deliverLogsPermissionArn(deliverLogsPermissionArn: String) /** - * @param destinationOptions The destination options. The following options are supported:. - * * `FileFormat` - The format for the flow log ( `plain-text` | `parquet` ). The default is - * `plain-text` . - * * `HiveCompatiblePartitions` - Indicates whether to use Hive-compatible prefixes for flow - * logs stored in Amazon S3 ( `true` | `false` ). The default is `false` . - * * `PerHourPartition` - Indicates whether to partition the flow log per hour ( `true` | - * `false` ). The default is `false` . + * @param destinationOptions The destination options. */ public fun destinationOptions(destinationOptions: Any) @@ -329,22 +317,17 @@ public interface CfnFlowLogProps { /** * @param deliverLogsPermissionArn The ARN of the IAM role that allows Amazon EC2 to publish - * flow logs to a CloudWatch Logs log group in your account. - * This parameter is required if the destination type is `cloud-watch-logs` and unsupported - * otherwise. + * flow logs to the log destination. + * This parameter is required if the destination type is `cloud-watch-logs` , or if the + * destination type is `kinesis-data-firehose` and the delivery stream and the resources to monitor + * are in different accounts. */ override fun deliverLogsPermissionArn(deliverLogsPermissionArn: String) { cdkBuilder.deliverLogsPermissionArn(deliverLogsPermissionArn) } /** - * @param destinationOptions The destination options. The following options are supported:. - * * `FileFormat` - The format for the flow log ( `plain-text` | `parquet` ). The default is - * `plain-text` . - * * `HiveCompatiblePartitions` - Indicates whether to use Hive-compatible prefixes for flow - * logs stored in Amazon S3 ( `true` | `false` ). The default is `false` . - * * `PerHourPartition` - Indicates whether to partition the flow log per hour ( `true` | - * `false` ). The default is `false` . + * @param destinationOptions The destination options. */ override fun destinationOptions(destinationOptions: Any) { cdkBuilder.destinationOptions(destinationOptions) @@ -477,25 +460,18 @@ public interface CfnFlowLogProps { override fun deliverCrossAccountRole(): String? = unwrap(this).getDeliverCrossAccountRole() /** - * The ARN of the IAM role that allows Amazon EC2 to publish flow logs to a CloudWatch Logs log - * group in your account. + * The ARN of the IAM role that allows Amazon EC2 to publish flow logs to the log destination. * - * This parameter is required if the destination type is `cloud-watch-logs` and unsupported - * otherwise. + * This parameter is required if the destination type is `cloud-watch-logs` , or if the + * destination type is `kinesis-data-firehose` and the delivery stream and the resources to monitor + * are in different accounts. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-deliverlogspermissionarn) */ override fun deliverLogsPermissionArn(): String? = unwrap(this).getDeliverLogsPermissionArn() /** - * The destination options. The following options are supported:. - * - * * `FileFormat` - The format for the flow log ( `plain-text` | `parquet` ). The default is - * `plain-text` . - * * `HiveCompatiblePartitions` - Indicates whether to use Hive-compatible prefixes for flow - * logs stored in Amazon S3 ( `true` | `false` ). The default is `false` . - * * `PerHourPartition` - Indicates whether to partition the flow log per hour ( `true` | - * `false` ). The default is `false` . + * The destination options. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-destinationoptions) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnInstance.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnInstance.kt index 96bba096dd..12a3381c00 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnInstance.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnInstance.kt @@ -207,18 +207,14 @@ public open class CfnInstance( } /** - * The Availability Zone where the specified instance is launched. For example: `us-east-1b` . * - * You can retrieve a list of all Availability Zones for a Region by using the - * [Fn::GetAZs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getavailabilityzones.html) - * intrinsic function. */ public open fun attrAvailabilityZone(): String = unwrap(this).getAttrAvailabilityZone() /** * The ID of the instance. */ - public open fun attrId(): String = unwrap(this).getAttrId() + public open fun attrInstanceId(): String = unwrap(this).getAttrInstanceId() /** * The private DNS name of the specified instance. @@ -248,6 +244,11 @@ public open class CfnInstance( */ public open fun attrPublicIp(): String = unwrap(this).getAttrPublicIp() + /** + * The ID of the VPC in which the instance is running. + */ + public open fun attrVpcId(): String = unwrap(this).getAttrVpcId() + /** * The Availability Zone of the instance. */ @@ -385,26 +386,26 @@ public open class CfnInstance( } /** - * Deprecated. + * An elastic GPU to associate with the instance. */ public open fun elasticGpuSpecifications(): Any? = unwrap(this).getElasticGpuSpecifications() /** - * Deprecated. + * An elastic GPU to associate with the instance. */ public open fun elasticGpuSpecifications(`value`: IResolvable) { unwrap(this).setElasticGpuSpecifications(`value`.let(IResolvable::unwrap)) } /** - * Deprecated. + * An elastic GPU to associate with the instance. */ public open fun elasticGpuSpecifications(`value`: List) { unwrap(this).setElasticGpuSpecifications(`value`.map{CdkObjectWrappers.unwrap(it)}) } /** - * Deprecated. + * An elastic GPU to associate with the instance. */ public open fun elasticGpuSpecifications(vararg `value`: Any): Unit = elasticGpuSpecifications(`value`.toList()) @@ -1311,59 +1312,48 @@ public open class CfnInstance( public fun ebsOptimized(ebsOptimized: IResolvable) /** - * Deprecated. + * An elastic GPU to associate with the instance. * * - * Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require - * graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances. + * Amazon Elastic Graphics reached end of life on January 8, 2024. * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-elasticgpuspecifications) - * @param elasticGpuSpecifications Deprecated. + * @param elasticGpuSpecifications An elastic GPU to associate with the instance. */ public fun elasticGpuSpecifications(elasticGpuSpecifications: IResolvable) /** - * Deprecated. + * An elastic GPU to associate with the instance. * * - * Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require - * graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances. + * Amazon Elastic Graphics reached end of life on January 8, 2024. * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-elasticgpuspecifications) - * @param elasticGpuSpecifications Deprecated. + * @param elasticGpuSpecifications An elastic GPU to associate with the instance. */ public fun elasticGpuSpecifications(elasticGpuSpecifications: List) /** - * Deprecated. + * An elastic GPU to associate with the instance. * * - * Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require - * graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances. + * Amazon Elastic Graphics reached end of life on January 8, 2024. * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-elasticgpuspecifications) - * @param elasticGpuSpecifications Deprecated. + * @param elasticGpuSpecifications An elastic GPU to associate with the instance. */ public fun elasticGpuSpecifications(vararg elasticGpuSpecifications: Any) /** * An elastic inference accelerator to associate with the instance. * - * Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to - * accelerate your Deep Learning (DL) inference workloads. - * - * You cannot specify accelerators from different generations in the same request. * - * - * Starting April 15, 2023, AWS will not onboard new customers to Amazon Elastic Inference (EI), - * and will help current customers migrate their workloads to options that offer better price and - * performance. After April 15, 2023, new customers will not be able to launch instances with - * Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who - * have used Amazon EI at least once during the past 30-day period are considered current customers - * and will be able to continue using the service. + * Amazon Elastic Inference (EI) is no longer available to new customers. For more information, + * see [Amazon Elastic Inference + * FAQs](https://docs.aws.amazon.com/machine-learning/elastic-inference/faqs/) . * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-elasticinferenceaccelerators) @@ -1375,18 +1365,10 @@ public open class CfnInstance( /** * An elastic inference accelerator to associate with the instance. * - * Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to - * accelerate your Deep Learning (DL) inference workloads. - * - * You cannot specify accelerators from different generations in the same request. * - * - * Starting April 15, 2023, AWS will not onboard new customers to Amazon Elastic Inference (EI), - * and will help current customers migrate their workloads to options that offer better price and - * performance. After April 15, 2023, new customers will not be able to launch instances with - * Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who - * have used Amazon EI at least once during the past 30-day period are considered current customers - * and will be able to continue using the service. + * Amazon Elastic Inference (EI) is no longer available to new customers. For more information, + * see [Amazon Elastic Inference + * FAQs](https://docs.aws.amazon.com/machine-learning/elastic-inference/faqs/) . * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-elasticinferenceaccelerators) @@ -1398,18 +1380,10 @@ public open class CfnInstance( /** * An elastic inference accelerator to associate with the instance. * - * Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to - * accelerate your Deep Learning (DL) inference workloads. - * - * You cannot specify accelerators from different generations in the same request. * - * - * Starting April 15, 2023, AWS will not onboard new customers to Amazon Elastic Inference (EI), - * and will help current customers migrate their workloads to options that offer better price and - * performance. After April 15, 2023, new customers will not be able to launch instances with - * Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who - * have used Amazon EI at least once during the past 30-day period are considered current customers - * and will be able to continue using the service. + * Amazon Elastic Inference (EI) is no longer available to new customers. For more information, + * see [Amazon Elastic Inference + * FAQs](https://docs.aws.amazon.com/machine-learning/elastic-inference/faqs/) . * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-elasticinferenceaccelerators) @@ -2083,7 +2057,7 @@ public open class CfnInstance( * The ID of the subnet to launch the instance into. * * If you specify a network interface, you must specify any subnets as part of the network - * interface. + * interface instead of using this parameter. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-subnetid) * @param subnetId The ID of the subnet to launch the instance into. @@ -2471,45 +2445,42 @@ public open class CfnInstance( } /** - * Deprecated. + * An elastic GPU to associate with the instance. * * - * Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require - * graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances. + * Amazon Elastic Graphics reached end of life on January 8, 2024. * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-elasticgpuspecifications) - * @param elasticGpuSpecifications Deprecated. + * @param elasticGpuSpecifications An elastic GPU to associate with the instance. */ override fun elasticGpuSpecifications(elasticGpuSpecifications: IResolvable) { cdkBuilder.elasticGpuSpecifications(elasticGpuSpecifications.let(IResolvable::unwrap)) } /** - * Deprecated. + * An elastic GPU to associate with the instance. * * - * Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require - * graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances. + * Amazon Elastic Graphics reached end of life on January 8, 2024. * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-elasticgpuspecifications) - * @param elasticGpuSpecifications Deprecated. + * @param elasticGpuSpecifications An elastic GPU to associate with the instance. */ override fun elasticGpuSpecifications(elasticGpuSpecifications: List) { cdkBuilder.elasticGpuSpecifications(elasticGpuSpecifications.map{CdkObjectWrappers.unwrap(it)}) } /** - * Deprecated. + * An elastic GPU to associate with the instance. * * - * Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require - * graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances. + * Amazon Elastic Graphics reached end of life on January 8, 2024. * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-elasticgpuspecifications) - * @param elasticGpuSpecifications Deprecated. + * @param elasticGpuSpecifications An elastic GPU to associate with the instance. */ override fun elasticGpuSpecifications(vararg elasticGpuSpecifications: Any): Unit = elasticGpuSpecifications(elasticGpuSpecifications.toList()) @@ -2517,18 +2488,10 @@ public open class CfnInstance( /** * An elastic inference accelerator to associate with the instance. * - * Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to - * accelerate your Deep Learning (DL) inference workloads. - * - * You cannot specify accelerators from different generations in the same request. - * * - * Starting April 15, 2023, AWS will not onboard new customers to Amazon Elastic Inference (EI), - * and will help current customers migrate their workloads to options that offer better price and - * performance. After April 15, 2023, new customers will not be able to launch instances with - * Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who - * have used Amazon EI at least once during the past 30-day period are considered current customers - * and will be able to continue using the service. + * Amazon Elastic Inference (EI) is no longer available to new customers. For more information, + * see [Amazon Elastic Inference + * FAQs](https://docs.aws.amazon.com/machine-learning/elastic-inference/faqs/) . * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-elasticinferenceaccelerators) @@ -2542,18 +2505,10 @@ public open class CfnInstance( /** * An elastic inference accelerator to associate with the instance. * - * Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to - * accelerate your Deep Learning (DL) inference workloads. * - * You cannot specify accelerators from different generations in the same request. - * - * - * Starting April 15, 2023, AWS will not onboard new customers to Amazon Elastic Inference (EI), - * and will help current customers migrate their workloads to options that offer better price and - * performance. After April 15, 2023, new customers will not be able to launch instances with - * Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who - * have used Amazon EI at least once during the past 30-day period are considered current customers - * and will be able to continue using the service. + * Amazon Elastic Inference (EI) is no longer available to new customers. For more information, + * see [Amazon Elastic Inference + * FAQs](https://docs.aws.amazon.com/machine-learning/elastic-inference/faqs/) . * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-elasticinferenceaccelerators) @@ -2567,18 +2522,10 @@ public open class CfnInstance( /** * An elastic inference accelerator to associate with the instance. * - * Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to - * accelerate your Deep Learning (DL) inference workloads. - * - * You cannot specify accelerators from different generations in the same request. * - * - * Starting April 15, 2023, AWS will not onboard new customers to Amazon Elastic Inference (EI), - * and will help current customers migrate their workloads to options that offer better price and - * performance. After April 15, 2023, new customers will not be able to launch instances with - * Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who - * have used Amazon EI at least once during the past 30-day period are considered current customers - * and will be able to continue using the service. + * Amazon Elastic Inference (EI) is no longer available to new customers. For more information, + * see [Amazon Elastic Inference + * FAQs](https://docs.aws.amazon.com/machine-learning/elastic-inference/faqs/) . * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-elasticinferenceaccelerators) @@ -3336,7 +3283,7 @@ public open class CfnInstance( * The ID of the subnet to launch the instance into. * * If you specify a network interface, you must specify any subnets as part of the network - * interface. + * interface instead of using this parameter. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-subnetid) * @param subnetId The ID of the subnet to launch the instance into. @@ -5273,6 +5220,8 @@ public open class CfnInstance( * * Default: `false` * + * Default: - false + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-hibernationoptions.html#cfn-ec2-instance-hibernationoptions-configured) */ public fun configured(): Any? = unwrap(this).getConfigured() @@ -5373,6 +5322,8 @@ public open class CfnInstance( * * Default: `false` * + * Default: - false + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-hibernationoptions.html#cfn-ec2-instance-hibernationoptions-configured) */ override fun configured(): Any? = unwrap(this).getConfigured() @@ -5489,19 +5440,15 @@ public open class CfnInstance( * * The ID or the name of the launch template, but not both. * * The version of the launch template. * - * `LaunchTemplateSpecification` is a property of the - * [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) - * resource. - * * For information about creating a launch template, see * [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html) * and [Create a launch * template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template) * in the *Amazon EC2 User Guide* . * - * For examples of launch templates, see + * For example launch templates, see the * [Examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#aws-resource-ec2-launchtemplate--examples) - * . + * for `AWS::EC2::LaunchTemplate` . * * Example: * @@ -5933,8 +5880,6 @@ public open class CfnInstance( /** * The ID of the subnet associated with the network interface. * - * Applies only if creating a network interface when launching an instance. - * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-networkinterface.html#cfn-ec2-instance-networkinterface-subnetid) */ public fun subnetId(): String? = unwrap(this).getSubnetId() @@ -6105,7 +6050,6 @@ public open class CfnInstance( /** * @param subnetId The ID of the subnet associated with the network interface. - * Applies only if creating a network interface when launching an instance. */ public fun subnetId(subnetId: String) } @@ -6312,7 +6256,6 @@ public open class CfnInstance( /** * @param subnetId The ID of the subnet associated with the network interface. - * Applies only if creating a network interface when launching an instance. */ override fun subnetId(subnetId: String) { cdkBuilder.subnetId(subnetId) @@ -6452,8 +6395,6 @@ public open class CfnInstance( /** * The ID of the subnet associated with the network interface. * - * Applies only if creating a network interface when launching an instance. - * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-networkinterface.html#cfn-ec2-instance-networkinterface-subnetid) */ override fun subnetId(): String? = unwrap(this).getSubnetId() diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnInstanceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnInstanceProps.kt index fdfabf5197..baa23511c7 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnInstanceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnInstanceProps.kt @@ -260,11 +260,10 @@ public interface CfnInstanceProps { public fun ebsOptimized(): Any? = unwrap(this).getEbsOptimized() /** - * Deprecated. + * An elastic GPU to associate with the instance. * * - * Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require - * graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances. + * Amazon Elastic Graphics reached end of life on January 8, 2024. * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-elasticgpuspecifications) @@ -274,18 +273,10 @@ public interface CfnInstanceProps { /** * An elastic inference accelerator to associate with the instance. * - * Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to - * accelerate your Deep Learning (DL) inference workloads. * - * You cannot specify accelerators from different generations in the same request. - * - * - * Starting April 15, 2023, AWS will not onboard new customers to Amazon Elastic Inference (EI), - * and will help current customers migrate their workloads to options that offer better price and - * performance. After April 15, 2023, new customers will not be able to launch instances with Amazon - * EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used - * Amazon EI at least once during the past 30-day period are considered current customers and will be - * able to continue using the service. + * Amazon Elastic Inference (EI) is no longer available to new customers. For more information, + * see [Amazon Elastic Inference + * FAQs](https://docs.aws.amazon.com/machine-learning/elastic-inference/faqs/) . * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-elasticinferenceaccelerators) @@ -607,7 +598,7 @@ public interface CfnInstanceProps { * The ID of the subnet to launch the instance into. * * If you specify a network interface, you must specify any subnets as part of the network - * interface. + * interface instead of using this parameter. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-subnetid) */ @@ -858,80 +849,53 @@ public interface CfnInstanceProps { public fun ebsOptimized(ebsOptimized: IResolvable) /** - * @param elasticGpuSpecifications Deprecated. + * @param elasticGpuSpecifications An elastic GPU to associate with the instance. * - * Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require - * graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances. + * Amazon Elastic Graphics reached end of life on January 8, 2024. */ public fun elasticGpuSpecifications(elasticGpuSpecifications: IResolvable) /** - * @param elasticGpuSpecifications Deprecated. + * @param elasticGpuSpecifications An elastic GPU to associate with the instance. * - * Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require - * graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances. + * Amazon Elastic Graphics reached end of life on January 8, 2024. */ public fun elasticGpuSpecifications(elasticGpuSpecifications: List) /** - * @param elasticGpuSpecifications Deprecated. + * @param elasticGpuSpecifications An elastic GPU to associate with the instance. * - * Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require - * graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances. + * Amazon Elastic Graphics reached end of life on January 8, 2024. */ public fun elasticGpuSpecifications(vararg elasticGpuSpecifications: Any) /** * @param elasticInferenceAccelerators An elastic inference accelerator to associate with the * instance. - * Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to - * accelerate your Deep Learning (DL) inference workloads. - * - * You cannot specify accelerators from different generations in the same request. - * * - * Starting April 15, 2023, AWS will not onboard new customers to Amazon Elastic Inference (EI), - * and will help current customers migrate their workloads to options that offer better price and - * performance. After April 15, 2023, new customers will not be able to launch instances with - * Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who - * have used Amazon EI at least once during the past 30-day period are considered current customers - * and will be able to continue using the service. + * Amazon Elastic Inference (EI) is no longer available to new customers. For more information, + * see [Amazon Elastic Inference + * FAQs](https://docs.aws.amazon.com/machine-learning/elastic-inference/faqs/) . */ public fun elasticInferenceAccelerators(elasticInferenceAccelerators: IResolvable) /** * @param elasticInferenceAccelerators An elastic inference accelerator to associate with the * instance. - * Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to - * accelerate your Deep Learning (DL) inference workloads. * - * You cannot specify accelerators from different generations in the same request. - * - * - * Starting April 15, 2023, AWS will not onboard new customers to Amazon Elastic Inference (EI), - * and will help current customers migrate their workloads to options that offer better price and - * performance. After April 15, 2023, new customers will not be able to launch instances with - * Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who - * have used Amazon EI at least once during the past 30-day period are considered current customers - * and will be able to continue using the service. + * Amazon Elastic Inference (EI) is no longer available to new customers. For more information, + * see [Amazon Elastic Inference + * FAQs](https://docs.aws.amazon.com/machine-learning/elastic-inference/faqs/) . */ public fun elasticInferenceAccelerators(elasticInferenceAccelerators: List) /** * @param elasticInferenceAccelerators An elastic inference accelerator to associate with the * instance. - * Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to - * accelerate your Deep Learning (DL) inference workloads. - * - * You cannot specify accelerators from different generations in the same request. * - * - * Starting April 15, 2023, AWS will not onboard new customers to Amazon Elastic Inference (EI), - * and will help current customers migrate their workloads to options that offer better price and - * performance. After April 15, 2023, new customers will not be able to launch instances with - * Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who - * have used Amazon EI at least once during the past 30-day period are considered current customers - * and will be able to continue using the service. + * Amazon Elastic Inference (EI) is no longer available to new customers. For more information, + * see [Amazon Elastic Inference + * FAQs](https://docs.aws.amazon.com/machine-learning/elastic-inference/faqs/) . */ public fun elasticInferenceAccelerators(vararg elasticInferenceAccelerators: Any) @@ -1382,7 +1346,7 @@ public interface CfnInstanceProps { /** * @param subnetId The ID of the subnet to launch the instance into. * If you specify a network interface, you must specify any subnets as part of the network - * interface. + * interface instead of using this parameter. */ public fun subnetId(subnetId: String) @@ -1667,30 +1631,27 @@ public interface CfnInstanceProps { } /** - * @param elasticGpuSpecifications Deprecated. + * @param elasticGpuSpecifications An elastic GPU to associate with the instance. * - * Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require - * graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances. + * Amazon Elastic Graphics reached end of life on January 8, 2024. */ override fun elasticGpuSpecifications(elasticGpuSpecifications: IResolvable) { cdkBuilder.elasticGpuSpecifications(elasticGpuSpecifications.let(IResolvable::unwrap)) } /** - * @param elasticGpuSpecifications Deprecated. + * @param elasticGpuSpecifications An elastic GPU to associate with the instance. * - * Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require - * graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances. + * Amazon Elastic Graphics reached end of life on January 8, 2024. */ override fun elasticGpuSpecifications(elasticGpuSpecifications: List) { cdkBuilder.elasticGpuSpecifications(elasticGpuSpecifications.map{CdkObjectWrappers.unwrap(it)}) } /** - * @param elasticGpuSpecifications Deprecated. + * @param elasticGpuSpecifications An elastic GPU to associate with the instance. * - * Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require - * graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances. + * Amazon Elastic Graphics reached end of life on January 8, 2024. */ override fun elasticGpuSpecifications(vararg elasticGpuSpecifications: Any): Unit = elasticGpuSpecifications(elasticGpuSpecifications.toList()) @@ -1698,18 +1659,10 @@ public interface CfnInstanceProps { /** * @param elasticInferenceAccelerators An elastic inference accelerator to associate with the * instance. - * Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to - * accelerate your Deep Learning (DL) inference workloads. * - * You cannot specify accelerators from different generations in the same request. - * - * - * Starting April 15, 2023, AWS will not onboard new customers to Amazon Elastic Inference (EI), - * and will help current customers migrate their workloads to options that offer better price and - * performance. After April 15, 2023, new customers will not be able to launch instances with - * Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who - * have used Amazon EI at least once during the past 30-day period are considered current customers - * and will be able to continue using the service. + * Amazon Elastic Inference (EI) is no longer available to new customers. For more information, + * see [Amazon Elastic Inference + * FAQs](https://docs.aws.amazon.com/machine-learning/elastic-inference/faqs/) . */ override fun elasticInferenceAccelerators(elasticInferenceAccelerators: IResolvable) { cdkBuilder.elasticInferenceAccelerators(elasticInferenceAccelerators.let(IResolvable::unwrap)) @@ -1718,18 +1671,10 @@ public interface CfnInstanceProps { /** * @param elasticInferenceAccelerators An elastic inference accelerator to associate with the * instance. - * Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to - * accelerate your Deep Learning (DL) inference workloads. - * - * You cannot specify accelerators from different generations in the same request. * - * - * Starting April 15, 2023, AWS will not onboard new customers to Amazon Elastic Inference (EI), - * and will help current customers migrate their workloads to options that offer better price and - * performance. After April 15, 2023, new customers will not be able to launch instances with - * Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who - * have used Amazon EI at least once during the past 30-day period are considered current customers - * and will be able to continue using the service. + * Amazon Elastic Inference (EI) is no longer available to new customers. For more information, + * see [Amazon Elastic Inference + * FAQs](https://docs.aws.amazon.com/machine-learning/elastic-inference/faqs/) . */ override fun elasticInferenceAccelerators(elasticInferenceAccelerators: List) { cdkBuilder.elasticInferenceAccelerators(elasticInferenceAccelerators.map{CdkObjectWrappers.unwrap(it)}) @@ -1738,18 +1683,10 @@ public interface CfnInstanceProps { /** * @param elasticInferenceAccelerators An elastic inference accelerator to associate with the * instance. - * Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to - * accelerate your Deep Learning (DL) inference workloads. - * - * You cannot specify accelerators from different generations in the same request. * - * - * Starting April 15, 2023, AWS will not onboard new customers to Amazon Elastic Inference (EI), - * and will help current customers migrate their workloads to options that offer better price and - * performance. After April 15, 2023, new customers will not be able to launch instances with - * Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who - * have used Amazon EI at least once during the past 30-day period are considered current customers - * and will be able to continue using the service. + * Amazon Elastic Inference (EI) is no longer available to new customers. For more information, + * see [Amazon Elastic Inference + * FAQs](https://docs.aws.amazon.com/machine-learning/elastic-inference/faqs/) . */ override fun elasticInferenceAccelerators(vararg elasticInferenceAccelerators: Any): Unit = elasticInferenceAccelerators(elasticInferenceAccelerators.toList()) @@ -2285,7 +2222,7 @@ public interface CfnInstanceProps { /** * @param subnetId The ID of the subnet to launch the instance into. * If you specify a network interface, you must specify any subnets as part of the network - * interface. + * interface instead of using this parameter. */ override fun subnetId(subnetId: String) { cdkBuilder.subnetId(subnetId) @@ -2471,11 +2408,10 @@ public interface CfnInstanceProps { override fun ebsOptimized(): Any? = unwrap(this).getEbsOptimized() /** - * Deprecated. + * An elastic GPU to associate with the instance. * * - * Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require - * graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances. + * Amazon Elastic Graphics reached end of life on January 8, 2024. * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-elasticgpuspecifications) @@ -2485,18 +2421,10 @@ public interface CfnInstanceProps { /** * An elastic inference accelerator to associate with the instance. * - * Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to - * accelerate your Deep Learning (DL) inference workloads. - * - * You cannot specify accelerators from different generations in the same request. * - * - * Starting April 15, 2023, AWS will not onboard new customers to Amazon Elastic Inference (EI), - * and will help current customers migrate their workloads to options that offer better price and - * performance. After April 15, 2023, new customers will not be able to launch instances with - * Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who - * have used Amazon EI at least once during the past 30-day period are considered current customers - * and will be able to continue using the service. + * Amazon Elastic Inference (EI) is no longer available to new customers. For more information, + * see [Amazon Elastic Inference + * FAQs](https://docs.aws.amazon.com/machine-learning/elastic-inference/faqs/) . * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-elasticinferenceaccelerators) @@ -2823,7 +2751,7 @@ public interface CfnInstanceProps { * The ID of the subnet to launch the instance into. * * If you specify a network interface, you must specify any subnets as part of the network - * interface. + * interface instead of using this parameter. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-subnetid) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnLaunchTemplate.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnLaunchTemplate.kt index 8993f28b6f..cdb3a4b8a5 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnLaunchTemplate.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnLaunchTemplate.kt @@ -5709,7 +5709,6 @@ public open class CfnLaunchTemplate( * .build())) * .maintenanceOptions(MaintenanceOptionsProperty.builder() * .autoRecovery("autoRecovery") - * .rebootMigration("rebootMigration") * .build()) * .metadataOptions(MetadataOptionsProperty.builder() * .httpEndpoint("httpEndpoint") @@ -6093,10 +6092,7 @@ public open class CfnLaunchTemplate( public fun monitoring(): Any? = unwrap(this).getMonitoring() /** - * One or more network interfaces. - * - * If you specify a network interface, you must specify any security groups and subnets as part - * of the network interface. + * The network interfaces for the instance. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-networkinterfaces) */ @@ -6141,14 +6137,19 @@ public open class CfnLaunchTemplate( * You can specify the IDs of existing security groups and references to resources created by * the stack template. * + * If you specify a network interface, you must specify any security groups as part of the + * network interface instead. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-securitygroupids) */ public fun securityGroupIds(): List = unwrap(this).getSecurityGroupIds() ?: emptyList() /** - * One or more security group names. + * The names of the security groups. For a nondefault VPC, you must use security group IDs + * instead. * - * For a nondefault VPC, you must use security group IDs instead. + * If you specify a network interface, you must specify any security groups as part of the + * network interface instead of using this parameter. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-securitygroups) */ @@ -6787,23 +6788,17 @@ public open class CfnLaunchTemplate( public fun monitoring(monitoring: MonitoringProperty.Builder.() -> Unit) /** - * @param networkInterfaces One or more network interfaces. - * If you specify a network interface, you must specify any security groups and subnets as - * part of the network interface. + * @param networkInterfaces The network interfaces for the instance. */ public fun networkInterfaces(networkInterfaces: IResolvable) /** - * @param networkInterfaces One or more network interfaces. - * If you specify a network interface, you must specify any security groups and subnets as - * part of the network interface. + * @param networkInterfaces The network interfaces for the instance. */ public fun networkInterfaces(networkInterfaces: List) /** - * @param networkInterfaces One or more network interfaces. - * If you specify a network interface, you must specify any security groups and subnets as - * part of the network interface. + * @param networkInterfaces The network interfaces for the instance. */ public fun networkInterfaces(vararg networkInterfaces: Any) @@ -6868,6 +6863,9 @@ public open class CfnLaunchTemplate( * @param securityGroupIds The IDs of the security groups. * You can specify the IDs of existing security groups and references to resources created by * the stack template. + * + * If you specify a network interface, you must specify any security groups as part of the + * network interface instead. */ public fun securityGroupIds(securityGroupIds: List) @@ -6875,18 +6873,25 @@ public open class CfnLaunchTemplate( * @param securityGroupIds The IDs of the security groups. * You can specify the IDs of existing security groups and references to resources created by * the stack template. + * + * If you specify a network interface, you must specify any security groups as part of the + * network interface instead. */ public fun securityGroupIds(vararg securityGroupIds: String) /** - * @param securityGroups One or more security group names. - * For a nondefault VPC, you must use security group IDs instead. + * @param securityGroups The names of the security groups. For a nondefault VPC, you must use + * security group IDs instead. + * If you specify a network interface, you must specify any security groups as part of the + * network interface instead of using this parameter. */ public fun securityGroups(securityGroups: List) /** - * @param securityGroups One or more security group names. - * For a nondefault VPC, you must use security group IDs instead. + * @param securityGroups The names of the security groups. For a nondefault VPC, you must use + * security group IDs instead. + * If you specify a network interface, you must specify any security groups as part of the + * network interface instead of using this parameter. */ public fun securityGroups(vararg securityGroups: String) @@ -7641,27 +7646,21 @@ public open class CfnLaunchTemplate( monitoring(MonitoringProperty(monitoring)) /** - * @param networkInterfaces One or more network interfaces. - * If you specify a network interface, you must specify any security groups and subnets as - * part of the network interface. + * @param networkInterfaces The network interfaces for the instance. */ override fun networkInterfaces(networkInterfaces: IResolvable) { cdkBuilder.networkInterfaces(networkInterfaces.let(IResolvable::unwrap)) } /** - * @param networkInterfaces One or more network interfaces. - * If you specify a network interface, you must specify any security groups and subnets as - * part of the network interface. + * @param networkInterfaces The network interfaces for the instance. */ override fun networkInterfaces(networkInterfaces: List) { cdkBuilder.networkInterfaces(networkInterfaces.map{CdkObjectWrappers.unwrap(it)}) } /** - * @param networkInterfaces One or more network interfaces. - * If you specify a network interface, you must specify any security groups and subnets as - * part of the network interface. + * @param networkInterfaces The network interfaces for the instance. */ override fun networkInterfaces(vararg networkInterfaces: Any): Unit = networkInterfaces(networkInterfaces.toList()) @@ -7739,6 +7738,9 @@ public open class CfnLaunchTemplate( * @param securityGroupIds The IDs of the security groups. * You can specify the IDs of existing security groups and references to resources created by * the stack template. + * + * If you specify a network interface, you must specify any security groups as part of the + * network interface instead. */ override fun securityGroupIds(securityGroupIds: List) { cdkBuilder.securityGroupIds(securityGroupIds) @@ -7748,21 +7750,28 @@ public open class CfnLaunchTemplate( * @param securityGroupIds The IDs of the security groups. * You can specify the IDs of existing security groups and references to resources created by * the stack template. + * + * If you specify a network interface, you must specify any security groups as part of the + * network interface instead. */ override fun securityGroupIds(vararg securityGroupIds: String): Unit = securityGroupIds(securityGroupIds.toList()) /** - * @param securityGroups One or more security group names. - * For a nondefault VPC, you must use security group IDs instead. + * @param securityGroups The names of the security groups. For a nondefault VPC, you must use + * security group IDs instead. + * If you specify a network interface, you must specify any security groups as part of the + * network interface instead of using this parameter. */ override fun securityGroups(securityGroups: List) { cdkBuilder.securityGroups(securityGroups) } /** - * @param securityGroups One or more security group names. - * For a nondefault VPC, you must use security group IDs instead. + * @param securityGroups The names of the security groups. For a nondefault VPC, you must use + * security group IDs instead. + * If you specify a network interface, you must specify any security groups as part of the + * network interface instead of using this parameter. */ override fun securityGroups(vararg securityGroups: String): Unit = securityGroups(securityGroups.toList()) @@ -8136,10 +8145,7 @@ public open class CfnLaunchTemplate( override fun monitoring(): Any? = unwrap(this).getMonitoring() /** - * One or more network interfaces. - * - * If you specify a network interface, you must specify any security groups and subnets as - * part of the network interface. + * The network interfaces for the instance. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-networkinterfaces) */ @@ -8184,15 +8190,20 @@ public open class CfnLaunchTemplate( * You can specify the IDs of existing security groups and references to resources created by * the stack template. * + * If you specify a network interface, you must specify any security groups as part of the + * network interface instead. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-securitygroupids) */ override fun securityGroupIds(): List = unwrap(this).getSecurityGroupIds() ?: emptyList() /** - * One or more security group names. + * The names of the security groups. For a nondefault VPC, you must use security group IDs + * instead. * - * For a nondefault VPC, you must use security group IDs instead. + * If you specify a network interface, you must specify any security groups as part of the + * network interface instead of using this parameter. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-securitygroups) */ @@ -8612,7 +8623,6 @@ public open class CfnLaunchTemplate( * import io.cloudshiftdev.awscdk.services.ec2.*; * MaintenanceOptionsProperty maintenanceOptionsProperty = MaintenanceOptionsProperty.builder() * .autoRecovery("autoRecovery") - * .rebootMigration("rebootMigration") * .build(); * ``` * @@ -8626,11 +8636,6 @@ public open class CfnLaunchTemplate( */ public fun autoRecovery(): String? = unwrap(this).getAutoRecovery() - /** - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-maintenanceoptions.html#cfn-ec2-launchtemplate-maintenanceoptions-rebootmigration) - */ - public fun rebootMigration(): String? = unwrap(this).getRebootMigration() - /** * A builder for [MaintenanceOptionsProperty] */ @@ -8641,11 +8646,6 @@ public open class CfnLaunchTemplate( * default. */ public fun autoRecovery(autoRecovery: String) - - /** - * @param rebootMigration the value to be set. - */ - public fun rebootMigration(rebootMigration: String) } private class BuilderImpl : Builder { @@ -8661,13 +8661,6 @@ public open class CfnLaunchTemplate( cdkBuilder.autoRecovery(autoRecovery) } - /** - * @param rebootMigration the value to be set. - */ - override fun rebootMigration(rebootMigration: String) { - cdkBuilder.rebootMigration(rebootMigration) - } - public fun build(): software.amazon.awscdk.services.ec2.CfnLaunchTemplate.MaintenanceOptionsProperty = cdkBuilder.build() @@ -8682,11 +8675,6 @@ public open class CfnLaunchTemplate( * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-maintenanceoptions.html#cfn-ec2-launchtemplate-maintenanceoptions-autorecovery) */ override fun autoRecovery(): String? = unwrap(this).getAutoRecovery() - - /** - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-maintenanceoptions.html#cfn-ec2-launchtemplate-maintenanceoptions-rebootmigration) - */ - override fun rebootMigration(): String? = unwrap(this).getRebootMigration() } public companion object { diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnNetworkInterface.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnNetworkInterface.kt index 524108e350..2531ed4afd 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnNetworkInterface.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnNetworkInterface.kt @@ -98,9 +98,6 @@ public open class CfnNetworkInterface( /** * The primary IPv6 address of the network interface. - * - * When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made the - * primary IPv6 address until the instance is terminated or the network interface is detached. */ public open fun attrPrimaryIpv6Address(): String = unwrap(this).getAttrPrimaryIpv6Address() @@ -120,6 +117,11 @@ public open class CfnNetworkInterface( public open fun attrSecondaryPrivateIpAddresses(): List = unwrap(this).getAttrSecondaryPrivateIpAddresses() + /** + * The ID of the VPC. + */ + public open fun attrVpcId(): String = unwrap(this).getAttrVpcId() + /** * A connection tracking specification for the network interface. */ @@ -185,19 +187,19 @@ public open class CfnNetworkInterface( } /** - * The security group IDs associated with this network interface. + * The IDs of the security groups associated with this network interface. */ public open fun groupSet(): List = unwrap(this).getGroupSet() ?: emptyList() /** - * The security group IDs associated with this network interface. + * The IDs of the security groups associated with this network interface. */ public open fun groupSet(`value`: List) { unwrap(this).setGroupSet(`value`) } /** - * The security group IDs associated with this network interface. + * The IDs of the security groups associated with this network interface. */ public open fun groupSet(vararg `value`: String): Unit = groupSet(`value`.toList()) @@ -259,42 +261,42 @@ public open class CfnNetworkInterface( public open fun ipv4Prefixes(vararg `value`: Any): Unit = ipv4Prefixes(`value`.toList()) /** - * The number of IPv6 addresses to assign to a network interface. + * The number of IPv6 addresses to assign to the network interface. */ public open fun ipv6AddressCount(): Number? = unwrap(this).getIpv6AddressCount() /** - * The number of IPv6 addresses to assign to a network interface. + * The number of IPv6 addresses to assign to the network interface. */ public open fun ipv6AddressCount(`value`: Number) { unwrap(this).setIpv6AddressCount(`value`) } /** - * One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet to associate - * with the network interface. + * The IPv6 addresses from the IPv6 CIDR block range of your subnet to assign to the network + * interface. */ public open fun ipv6Addresses(): Any? = unwrap(this).getIpv6Addresses() /** - * One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet to associate - * with the network interface. + * The IPv6 addresses from the IPv6 CIDR block range of your subnet to assign to the network + * interface. */ public open fun ipv6Addresses(`value`: IResolvable) { unwrap(this).setIpv6Addresses(`value`.let(IResolvable::unwrap)) } /** - * One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet to associate - * with the network interface. + * The IPv6 addresses from the IPv6 CIDR block range of your subnet to assign to the network + * interface. */ public open fun ipv6Addresses(`value`: List) { unwrap(this).setIpv6Addresses(`value`.map{CdkObjectWrappers.unwrap(it)}) } /** - * One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet to associate - * with the network interface. + * The IPv6 addresses from the IPv6 CIDR block range of your subnet to assign to the network + * interface. */ public open fun ipv6Addresses(vararg `value`: Any): Unit = ipv6Addresses(`value`.toList()) @@ -335,40 +337,38 @@ public open class CfnNetworkInterface( public open fun ipv6Prefixes(vararg `value`: Any): Unit = ipv6Prefixes(`value`.toList()) /** - * Assigns a single private IP address to the network interface, which is used as the primary - * private IP address. + * The private IPv4 address to assign to the network interface as the primary private IP address. */ public open fun privateIpAddress(): String? = unwrap(this).getPrivateIpAddress() /** - * Assigns a single private IP address to the network interface, which is used as the primary - * private IP address. + * The private IPv4 address to assign to the network interface as the primary private IP address. */ public open fun privateIpAddress(`value`: String) { unwrap(this).setPrivateIpAddress(`value`) } /** - * Assigns private IP addresses to the network interface. + * The private IPv4 addresses to assign to the network interface. */ public open fun privateIpAddresses(): Any? = unwrap(this).getPrivateIpAddresses() /** - * Assigns private IP addresses to the network interface. + * The private IPv4 addresses to assign to the network interface. */ public open fun privateIpAddresses(`value`: IResolvable) { unwrap(this).setPrivateIpAddresses(`value`.let(IResolvable::unwrap)) } /** - * Assigns private IP addresses to the network interface. + * The private IPv4 addresses to assign to the network interface. */ public open fun privateIpAddresses(`value`: List) { unwrap(this).setPrivateIpAddresses(`value`.map{CdkObjectWrappers.unwrap(it)}) } /** - * Assigns private IP addresses to the network interface. + * The private IPv4 addresses to assign to the network interface. */ public open fun privateIpAddresses(vararg `value`: Any): Unit = privateIpAddresses(`value`.toList()) @@ -426,20 +426,20 @@ public open class CfnNetworkInterface( public override fun tags(): TagManager = unwrap(this).getTags().let(TagManager::wrap) /** - * An arbitrary set of tags (key-value pairs) for this network interface. + * The tags to apply to the network interface. */ public open fun tagsRaw(): List = unwrap(this).getTagsRaw()?.map(CfnTag::wrap) ?: emptyList() /** - * An arbitrary set of tags (key-value pairs) for this network interface. + * The tags to apply to the network interface. */ public open fun tagsRaw(`value`: List) { unwrap(this).setTagsRaw(`value`.map(CfnTag::unwrap)) } /** - * An arbitrary set of tags (key-value pairs) for this network interface. + * The tags to apply to the network interface. */ public open fun tagsRaw(vararg `value`: CfnTag): Unit = tagsRaw(`value`.toList()) @@ -528,18 +528,18 @@ public open class CfnNetworkInterface( public fun enablePrimaryIpv6(enablePrimaryIpv6: IResolvable) /** - * The security group IDs associated with this network interface. + * The IDs of the security groups associated with this network interface. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-groupset) - * @param groupSet The security group IDs associated with this network interface. + * @param groupSet The IDs of the security groups associated with this network interface. */ public fun groupSet(groupSet: List) /** - * The security group IDs associated with this network interface. + * The IDs of the security groups associated with this network interface. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-groupset) - * @param groupSet The security group IDs associated with this network interface. + * @param groupSet The IDs of the security groups associated with this network interface. */ public fun groupSet(vararg groupSet: String) @@ -603,7 +603,7 @@ public open class CfnNetworkInterface( public fun ipv4Prefixes(vararg ipv4Prefixes: Any) /** - * The number of IPv6 addresses to assign to a network interface. + * The number of IPv6 addresses to assign to the network interface. * * Amazon EC2 automatically selects the IPv6 addresses from the subnet range. To specify * specific IPv6 addresses, use the `Ipv6Addresses` property and don't specify this property. @@ -613,13 +613,13 @@ public open class CfnNetworkInterface( * IPv6 prefixes. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-ipv6addresscount) - * @param ipv6AddressCount The number of IPv6 addresses to assign to a network interface. + * @param ipv6AddressCount The number of IPv6 addresses to assign to the network interface. */ public fun ipv6AddressCount(ipv6AddressCount: Number) /** - * One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet to - * associate with the network interface. + * The IPv6 addresses from the IPv6 CIDR block range of your subnet to assign to the network + * interface. * * If you're specifying a number of IPv6 addresses, use the `Ipv6AddressCount` property and * don't specify this property. @@ -629,14 +629,14 @@ public open class CfnNetworkInterface( * prefixes. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-ipv6addresses) - * @param ipv6Addresses One or more specific IPv6 addresses from the IPv6 CIDR block range of - * your subnet to associate with the network interface. + * @param ipv6Addresses The IPv6 addresses from the IPv6 CIDR block range of your subnet to + * assign to the network interface. */ public fun ipv6Addresses(ipv6Addresses: IResolvable) /** - * One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet to - * associate with the network interface. + * The IPv6 addresses from the IPv6 CIDR block range of your subnet to assign to the network + * interface. * * If you're specifying a number of IPv6 addresses, use the `Ipv6AddressCount` property and * don't specify this property. @@ -646,14 +646,14 @@ public open class CfnNetworkInterface( * prefixes. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-ipv6addresses) - * @param ipv6Addresses One or more specific IPv6 addresses from the IPv6 CIDR block range of - * your subnet to associate with the network interface. + * @param ipv6Addresses The IPv6 addresses from the IPv6 CIDR block range of your subnet to + * assign to the network interface. */ public fun ipv6Addresses(ipv6Addresses: List) /** - * One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet to - * associate with the network interface. + * The IPv6 addresses from the IPv6 CIDR block range of your subnet to assign to the network + * interface. * * If you're specifying a number of IPv6 addresses, use the `Ipv6AddressCount` property and * don't specify this property. @@ -663,8 +663,8 @@ public open class CfnNetworkInterface( * prefixes. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-ipv6addresses) - * @param ipv6Addresses One or more specific IPv6 addresses from the IPv6 CIDR block range of - * your subnet to associate with the network interface. + * @param ipv6Addresses The IPv6 addresses from the IPv6 CIDR block range of your subnet to + * assign to the network interface. */ public fun ipv6Addresses(vararg ipv6Addresses: Any) @@ -715,19 +715,19 @@ public open class CfnNetworkInterface( public fun ipv6Prefixes(vararg ipv6Prefixes: Any) /** - * Assigns a single private IP address to the network interface, which is used as the primary - * private IP address. + * The private IPv4 address to assign to the network interface as the primary private IP + * address. * - * If you want to specify multiple private IP address, use the `PrivateIpAddresses` property. + * If you want to specify multiple private IP addresses, use the `PrivateIpAddresses` property. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-privateipaddress) - * @param privateIpAddress Assigns a single private IP address to the network interface, which - * is used as the primary private IP address. + * @param privateIpAddress The private IPv4 address to assign to the network interface as the + * primary private IP address. */ public fun privateIpAddress(privateIpAddress: String) /** - * Assigns private IP addresses to the network interface. + * The private IPv4 addresses to assign to the network interface. * * You can specify a primary private IP address by setting the value of the `Primary` property * to `true` in the `PrivateIpAddressSpecification` property. If you want EC2 to automatically @@ -739,12 +739,12 @@ public open class CfnNetworkInterface( * count of IPv4 prefixes. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-privateipaddresses) - * @param privateIpAddresses Assigns private IP addresses to the network interface. + * @param privateIpAddresses The private IPv4 addresses to assign to the network interface. */ public fun privateIpAddresses(privateIpAddresses: IResolvable) /** - * Assigns private IP addresses to the network interface. + * The private IPv4 addresses to assign to the network interface. * * You can specify a primary private IP address by setting the value of the `Primary` property * to `true` in the `PrivateIpAddressSpecification` property. If you want EC2 to automatically @@ -756,12 +756,12 @@ public open class CfnNetworkInterface( * count of IPv4 prefixes. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-privateipaddresses) - * @param privateIpAddresses Assigns private IP addresses to the network interface. + * @param privateIpAddresses The private IPv4 addresses to assign to the network interface. */ public fun privateIpAddresses(privateIpAddresses: List) /** - * Assigns private IP addresses to the network interface. + * The private IPv4 addresses to assign to the network interface. * * You can specify a primary private IP address by setting the value of the `Primary` property * to `true` in the `PrivateIpAddressSpecification` property. If you want EC2 to automatically @@ -773,7 +773,7 @@ public open class CfnNetworkInterface( * count of IPv4 prefixes. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-privateipaddresses) - * @param privateIpAddresses Assigns private IP addresses to the network interface. + * @param privateIpAddresses The private IPv4 addresses to assign to the network interface. */ public fun privateIpAddresses(vararg privateIpAddresses: Any) @@ -831,18 +831,18 @@ public open class CfnNetworkInterface( public fun subnetId(subnetId: String) /** - * An arbitrary set of tags (key-value pairs) for this network interface. + * The tags to apply to the network interface. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-tags) - * @param tags An arbitrary set of tags (key-value pairs) for this network interface. + * @param tags The tags to apply to the network interface. */ public fun tags(tags: List) /** - * An arbitrary set of tags (key-value pairs) for this network interface. + * The tags to apply to the network interface. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-tags) - * @param tags An arbitrary set of tags (key-value pairs) for this network interface. + * @param tags The tags to apply to the network interface. */ public fun tags(vararg tags: CfnTag) } @@ -946,20 +946,20 @@ public open class CfnNetworkInterface( } /** - * The security group IDs associated with this network interface. + * The IDs of the security groups associated with this network interface. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-groupset) - * @param groupSet The security group IDs associated with this network interface. + * @param groupSet The IDs of the security groups associated with this network interface. */ override fun groupSet(groupSet: List) { cdkBuilder.groupSet(groupSet) } /** - * The security group IDs associated with this network interface. + * The IDs of the security groups associated with this network interface. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-groupset) - * @param groupSet The security group IDs associated with this network interface. + * @param groupSet The IDs of the security groups associated with this network interface. */ override fun groupSet(vararg groupSet: String): Unit = groupSet(groupSet.toList()) @@ -1031,7 +1031,7 @@ public open class CfnNetworkInterface( override fun ipv4Prefixes(vararg ipv4Prefixes: Any): Unit = ipv4Prefixes(ipv4Prefixes.toList()) /** - * The number of IPv6 addresses to assign to a network interface. + * The number of IPv6 addresses to assign to the network interface. * * Amazon EC2 automatically selects the IPv6 addresses from the subnet range. To specify * specific IPv6 addresses, use the `Ipv6Addresses` property and don't specify this property. @@ -1041,15 +1041,15 @@ public open class CfnNetworkInterface( * IPv6 prefixes. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-ipv6addresscount) - * @param ipv6AddressCount The number of IPv6 addresses to assign to a network interface. + * @param ipv6AddressCount The number of IPv6 addresses to assign to the network interface. */ override fun ipv6AddressCount(ipv6AddressCount: Number) { cdkBuilder.ipv6AddressCount(ipv6AddressCount) } /** - * One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet to - * associate with the network interface. + * The IPv6 addresses from the IPv6 CIDR block range of your subnet to assign to the network + * interface. * * If you're specifying a number of IPv6 addresses, use the `Ipv6AddressCount` property and * don't specify this property. @@ -1059,16 +1059,16 @@ public open class CfnNetworkInterface( * prefixes. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-ipv6addresses) - * @param ipv6Addresses One or more specific IPv6 addresses from the IPv6 CIDR block range of - * your subnet to associate with the network interface. + * @param ipv6Addresses The IPv6 addresses from the IPv6 CIDR block range of your subnet to + * assign to the network interface. */ override fun ipv6Addresses(ipv6Addresses: IResolvable) { cdkBuilder.ipv6Addresses(ipv6Addresses.let(IResolvable::unwrap)) } /** - * One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet to - * associate with the network interface. + * The IPv6 addresses from the IPv6 CIDR block range of your subnet to assign to the network + * interface. * * If you're specifying a number of IPv6 addresses, use the `Ipv6AddressCount` property and * don't specify this property. @@ -1078,16 +1078,16 @@ public open class CfnNetworkInterface( * prefixes. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-ipv6addresses) - * @param ipv6Addresses One or more specific IPv6 addresses from the IPv6 CIDR block range of - * your subnet to associate with the network interface. + * @param ipv6Addresses The IPv6 addresses from the IPv6 CIDR block range of your subnet to + * assign to the network interface. */ override fun ipv6Addresses(ipv6Addresses: List) { cdkBuilder.ipv6Addresses(ipv6Addresses.map{CdkObjectWrappers.unwrap(it)}) } /** - * One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet to - * associate with the network interface. + * The IPv6 addresses from the IPv6 CIDR block range of your subnet to assign to the network + * interface. * * If you're specifying a number of IPv6 addresses, use the `Ipv6AddressCount` property and * don't specify this property. @@ -1097,8 +1097,8 @@ public open class CfnNetworkInterface( * prefixes. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-ipv6addresses) - * @param ipv6Addresses One or more specific IPv6 addresses from the IPv6 CIDR block range of - * your subnet to associate with the network interface. + * @param ipv6Addresses The IPv6 addresses from the IPv6 CIDR block range of your subnet to + * assign to the network interface. */ override fun ipv6Addresses(vararg ipv6Addresses: Any): Unit = ipv6Addresses(ipv6Addresses.toList()) @@ -1156,21 +1156,21 @@ public open class CfnNetworkInterface( override fun ipv6Prefixes(vararg ipv6Prefixes: Any): Unit = ipv6Prefixes(ipv6Prefixes.toList()) /** - * Assigns a single private IP address to the network interface, which is used as the primary - * private IP address. + * The private IPv4 address to assign to the network interface as the primary private IP + * address. * - * If you want to specify multiple private IP address, use the `PrivateIpAddresses` property. + * If you want to specify multiple private IP addresses, use the `PrivateIpAddresses` property. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-privateipaddress) - * @param privateIpAddress Assigns a single private IP address to the network interface, which - * is used as the primary private IP address. + * @param privateIpAddress The private IPv4 address to assign to the network interface as the + * primary private IP address. */ override fun privateIpAddress(privateIpAddress: String) { cdkBuilder.privateIpAddress(privateIpAddress) } /** - * Assigns private IP addresses to the network interface. + * The private IPv4 addresses to assign to the network interface. * * You can specify a primary private IP address by setting the value of the `Primary` property * to `true` in the `PrivateIpAddressSpecification` property. If you want EC2 to automatically @@ -1182,14 +1182,14 @@ public open class CfnNetworkInterface( * count of IPv4 prefixes. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-privateipaddresses) - * @param privateIpAddresses Assigns private IP addresses to the network interface. + * @param privateIpAddresses The private IPv4 addresses to assign to the network interface. */ override fun privateIpAddresses(privateIpAddresses: IResolvable) { cdkBuilder.privateIpAddresses(privateIpAddresses.let(IResolvable::unwrap)) } /** - * Assigns private IP addresses to the network interface. + * The private IPv4 addresses to assign to the network interface. * * You can specify a primary private IP address by setting the value of the `Primary` property * to `true` in the `PrivateIpAddressSpecification` property. If you want EC2 to automatically @@ -1201,14 +1201,14 @@ public open class CfnNetworkInterface( * count of IPv4 prefixes. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-privateipaddresses) - * @param privateIpAddresses Assigns private IP addresses to the network interface. + * @param privateIpAddresses The private IPv4 addresses to assign to the network interface. */ override fun privateIpAddresses(privateIpAddresses: List) { cdkBuilder.privateIpAddresses(privateIpAddresses.map{CdkObjectWrappers.unwrap(it)}) } /** - * Assigns private IP addresses to the network interface. + * The private IPv4 addresses to assign to the network interface. * * You can specify a primary private IP address by setting the value of the `Primary` property * to `true` in the `PrivateIpAddressSpecification` property. If you want EC2 to automatically @@ -1220,7 +1220,7 @@ public open class CfnNetworkInterface( * count of IPv4 prefixes. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-privateipaddresses) - * @param privateIpAddresses Assigns private IP addresses to the network interface. + * @param privateIpAddresses The private IPv4 addresses to assign to the network interface. */ override fun privateIpAddresses(vararg privateIpAddresses: Any): Unit = privateIpAddresses(privateIpAddresses.toList()) @@ -1287,20 +1287,20 @@ public open class CfnNetworkInterface( } /** - * An arbitrary set of tags (key-value pairs) for this network interface. + * The tags to apply to the network interface. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-tags) - * @param tags An arbitrary set of tags (key-value pairs) for this network interface. + * @param tags The tags to apply to the network interface. */ override fun tags(tags: List) { cdkBuilder.tags(tags.map(CfnTag::unwrap)) } /** - * An arbitrary set of tags (key-value pairs) for this network interface. + * The tags to apply to the network interface. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-tags) - * @param tags An arbitrary set of tags (key-value pairs) for this network interface. + * @param tags The tags to apply to the network interface. */ override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnNetworkInterfaceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnNetworkInterfaceProps.kt index 19b23a95d8..b685c6c71f 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnNetworkInterfaceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnNetworkInterfaceProps.kt @@ -99,7 +99,7 @@ public interface CfnNetworkInterfaceProps { public fun enablePrimaryIpv6(): Any? = unwrap(this).getEnablePrimaryIpv6() /** - * The security group IDs associated with this network interface. + * The IDs of the security groups associated with this network interface. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-groupset) */ @@ -137,7 +137,7 @@ public interface CfnNetworkInterfaceProps { public fun ipv4Prefixes(): Any? = unwrap(this).getIpv4Prefixes() /** - * The number of IPv6 addresses to assign to a network interface. + * The number of IPv6 addresses to assign to the network interface. * * Amazon EC2 automatically selects the IPv6 addresses from the subnet range. To specify specific * IPv6 addresses, use the `Ipv6Addresses` property and don't specify this property. @@ -151,8 +151,8 @@ public interface CfnNetworkInterfaceProps { public fun ipv6AddressCount(): Number? = unwrap(this).getIpv6AddressCount() /** - * One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet to associate - * with the network interface. + * The IPv6 addresses from the IPv6 CIDR block range of your subnet to assign to the network + * interface. * * If you're specifying a number of IPv6 addresses, use the `Ipv6AddressCount` property and don't * specify this property. @@ -186,17 +186,16 @@ public interface CfnNetworkInterfaceProps { public fun ipv6Prefixes(): Any? = unwrap(this).getIpv6Prefixes() /** - * Assigns a single private IP address to the network interface, which is used as the primary - * private IP address. + * The private IPv4 address to assign to the network interface as the primary private IP address. * - * If you want to specify multiple private IP address, use the `PrivateIpAddresses` property. + * If you want to specify multiple private IP addresses, use the `PrivateIpAddresses` property. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-privateipaddress) */ public fun privateIpAddress(): String? = unwrap(this).getPrivateIpAddress() /** - * Assigns private IP addresses to the network interface. + * The private IPv4 addresses to assign to the network interface. * * You can specify a primary private IP address by setting the value of the `Primary` property to * `true` in the `PrivateIpAddressSpecification` property. If you want EC2 to automatically assign @@ -247,7 +246,7 @@ public interface CfnNetworkInterfaceProps { public fun subnetId(): String /** - * An arbitrary set of tags (key-value pairs) for this network interface. + * The tags to apply to the network interface. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-tags) */ @@ -316,12 +315,12 @@ public interface CfnNetworkInterfaceProps { public fun enablePrimaryIpv6(enablePrimaryIpv6: IResolvable) /** - * @param groupSet The security group IDs associated with this network interface. + * @param groupSet The IDs of the security groups associated with this network interface. */ public fun groupSet(groupSet: List) /** - * @param groupSet The security group IDs associated with this network interface. + * @param groupSet The IDs of the security groups associated with this network interface. */ public fun groupSet(vararg groupSet: String) @@ -365,7 +364,7 @@ public interface CfnNetworkInterfaceProps { public fun ipv4Prefixes(vararg ipv4Prefixes: Any) /** - * @param ipv6AddressCount The number of IPv6 addresses to assign to a network interface. + * @param ipv6AddressCount The number of IPv6 addresses to assign to the network interface. * Amazon EC2 automatically selects the IPv6 addresses from the subnet range. To specify * specific IPv6 addresses, use the `Ipv6Addresses` property and don't specify this property. * @@ -376,8 +375,8 @@ public interface CfnNetworkInterfaceProps { public fun ipv6AddressCount(ipv6AddressCount: Number) /** - * @param ipv6Addresses One or more specific IPv6 addresses from the IPv6 CIDR block range of - * your subnet to associate with the network interface. + * @param ipv6Addresses The IPv6 addresses from the IPv6 CIDR block range of your subnet to + * assign to the network interface. * If you're specifying a number of IPv6 addresses, use the `Ipv6AddressCount` property and * don't specify this property. * @@ -388,8 +387,8 @@ public interface CfnNetworkInterfaceProps { public fun ipv6Addresses(ipv6Addresses: IResolvable) /** - * @param ipv6Addresses One or more specific IPv6 addresses from the IPv6 CIDR block range of - * your subnet to associate with the network interface. + * @param ipv6Addresses The IPv6 addresses from the IPv6 CIDR block range of your subnet to + * assign to the network interface. * If you're specifying a number of IPv6 addresses, use the `Ipv6AddressCount` property and * don't specify this property. * @@ -400,8 +399,8 @@ public interface CfnNetworkInterfaceProps { public fun ipv6Addresses(ipv6Addresses: List) /** - * @param ipv6Addresses One or more specific IPv6 addresses from the IPv6 CIDR block range of - * your subnet to associate with the network interface. + * @param ipv6Addresses The IPv6 addresses from the IPv6 CIDR block range of your subnet to + * assign to the network interface. * If you're specifying a number of IPv6 addresses, use the `Ipv6AddressCount` property and * don't specify this property. * @@ -442,14 +441,14 @@ public interface CfnNetworkInterfaceProps { public fun ipv6Prefixes(vararg ipv6Prefixes: Any) /** - * @param privateIpAddress Assigns a single private IP address to the network interface, which - * is used as the primary private IP address. - * If you want to specify multiple private IP address, use the `PrivateIpAddresses` property. + * @param privateIpAddress The private IPv4 address to assign to the network interface as the + * primary private IP address. + * If you want to specify multiple private IP addresses, use the `PrivateIpAddresses` property. */ public fun privateIpAddress(privateIpAddress: String) /** - * @param privateIpAddresses Assigns private IP addresses to the network interface. + * @param privateIpAddresses The private IPv4 addresses to assign to the network interface. * You can specify a primary private IP address by setting the value of the `Primary` property * to `true` in the `PrivateIpAddressSpecification` property. If you want EC2 to automatically * assign private IP addresses, use the `SecondaryPrivateIpAddressCount` property and do not @@ -462,7 +461,7 @@ public interface CfnNetworkInterfaceProps { public fun privateIpAddresses(privateIpAddresses: IResolvable) /** - * @param privateIpAddresses Assigns private IP addresses to the network interface. + * @param privateIpAddresses The private IPv4 addresses to assign to the network interface. * You can specify a primary private IP address by setting the value of the `Primary` property * to `true` in the `PrivateIpAddressSpecification` property. If you want EC2 to automatically * assign private IP addresses, use the `SecondaryPrivateIpAddressCount` property and do not @@ -475,7 +474,7 @@ public interface CfnNetworkInterfaceProps { public fun privateIpAddresses(privateIpAddresses: List) /** - * @param privateIpAddresses Assigns private IP addresses to the network interface. + * @param privateIpAddresses The private IPv4 addresses to assign to the network interface. * You can specify a primary private IP address by setting the value of the `Primary` property * to `true` in the `PrivateIpAddressSpecification` property. If you want EC2 to automatically * assign private IP addresses, use the `SecondaryPrivateIpAddressCount` property and do not @@ -524,12 +523,12 @@ public interface CfnNetworkInterfaceProps { public fun subnetId(subnetId: String) /** - * @param tags An arbitrary set of tags (key-value pairs) for this network interface. + * @param tags The tags to apply to the network interface. */ public fun tags(tags: List) /** - * @param tags An arbitrary set of tags (key-value pairs) for this network interface. + * @param tags The tags to apply to the network interface. */ public fun tags(vararg tags: CfnTag) } @@ -608,14 +607,14 @@ public interface CfnNetworkInterfaceProps { } /** - * @param groupSet The security group IDs associated with this network interface. + * @param groupSet The IDs of the security groups associated with this network interface. */ override fun groupSet(groupSet: List) { cdkBuilder.groupSet(groupSet) } /** - * @param groupSet The security group IDs associated with this network interface. + * @param groupSet The IDs of the security groups associated with this network interface. */ override fun groupSet(vararg groupSet: String): Unit = groupSet(groupSet.toList()) @@ -667,7 +666,7 @@ public interface CfnNetworkInterfaceProps { override fun ipv4Prefixes(vararg ipv4Prefixes: Any): Unit = ipv4Prefixes(ipv4Prefixes.toList()) /** - * @param ipv6AddressCount The number of IPv6 addresses to assign to a network interface. + * @param ipv6AddressCount The number of IPv6 addresses to assign to the network interface. * Amazon EC2 automatically selects the IPv6 addresses from the subnet range. To specify * specific IPv6 addresses, use the `Ipv6Addresses` property and don't specify this property. * @@ -680,8 +679,8 @@ public interface CfnNetworkInterfaceProps { } /** - * @param ipv6Addresses One or more specific IPv6 addresses from the IPv6 CIDR block range of - * your subnet to associate with the network interface. + * @param ipv6Addresses The IPv6 addresses from the IPv6 CIDR block range of your subnet to + * assign to the network interface. * If you're specifying a number of IPv6 addresses, use the `Ipv6AddressCount` property and * don't specify this property. * @@ -694,8 +693,8 @@ public interface CfnNetworkInterfaceProps { } /** - * @param ipv6Addresses One or more specific IPv6 addresses from the IPv6 CIDR block range of - * your subnet to associate with the network interface. + * @param ipv6Addresses The IPv6 addresses from the IPv6 CIDR block range of your subnet to + * assign to the network interface. * If you're specifying a number of IPv6 addresses, use the `Ipv6AddressCount` property and * don't specify this property. * @@ -708,8 +707,8 @@ public interface CfnNetworkInterfaceProps { } /** - * @param ipv6Addresses One or more specific IPv6 addresses from the IPv6 CIDR block range of - * your subnet to associate with the network interface. + * @param ipv6Addresses The IPv6 addresses from the IPv6 CIDR block range of your subnet to + * assign to the network interface. * If you're specifying a number of IPv6 addresses, use the `Ipv6AddressCount` property and * don't specify this property. * @@ -757,16 +756,16 @@ public interface CfnNetworkInterfaceProps { override fun ipv6Prefixes(vararg ipv6Prefixes: Any): Unit = ipv6Prefixes(ipv6Prefixes.toList()) /** - * @param privateIpAddress Assigns a single private IP address to the network interface, which - * is used as the primary private IP address. - * If you want to specify multiple private IP address, use the `PrivateIpAddresses` property. + * @param privateIpAddress The private IPv4 address to assign to the network interface as the + * primary private IP address. + * If you want to specify multiple private IP addresses, use the `PrivateIpAddresses` property. */ override fun privateIpAddress(privateIpAddress: String) { cdkBuilder.privateIpAddress(privateIpAddress) } /** - * @param privateIpAddresses Assigns private IP addresses to the network interface. + * @param privateIpAddresses The private IPv4 addresses to assign to the network interface. * You can specify a primary private IP address by setting the value of the `Primary` property * to `true` in the `PrivateIpAddressSpecification` property. If you want EC2 to automatically * assign private IP addresses, use the `SecondaryPrivateIpAddressCount` property and do not @@ -781,7 +780,7 @@ public interface CfnNetworkInterfaceProps { } /** - * @param privateIpAddresses Assigns private IP addresses to the network interface. + * @param privateIpAddresses The private IPv4 addresses to assign to the network interface. * You can specify a primary private IP address by setting the value of the `Primary` property * to `true` in the `PrivateIpAddressSpecification` property. If you want EC2 to automatically * assign private IP addresses, use the `SecondaryPrivateIpAddressCount` property and do not @@ -796,7 +795,7 @@ public interface CfnNetworkInterfaceProps { } /** - * @param privateIpAddresses Assigns private IP addresses to the network interface. + * @param privateIpAddresses The private IPv4 addresses to assign to the network interface. * You can specify a primary private IP address by setting the value of the `Primary` property * to `true` in the `PrivateIpAddressSpecification` property. If you want EC2 to automatically * assign private IP addresses, use the `SecondaryPrivateIpAddressCount` property and do not @@ -854,14 +853,14 @@ public interface CfnNetworkInterfaceProps { } /** - * @param tags An arbitrary set of tags (key-value pairs) for this network interface. + * @param tags The tags to apply to the network interface. */ override fun tags(tags: List) { cdkBuilder.tags(tags.map(CfnTag::unwrap)) } /** - * @param tags An arbitrary set of tags (key-value pairs) for this network interface. + * @param tags The tags to apply to the network interface. */ override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) @@ -906,7 +905,7 @@ public interface CfnNetworkInterfaceProps { override fun enablePrimaryIpv6(): Any? = unwrap(this).getEnablePrimaryIpv6() /** - * The security group IDs associated with this network interface. + * The IDs of the security groups associated with this network interface. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-groupset) */ @@ -944,7 +943,7 @@ public interface CfnNetworkInterfaceProps { override fun ipv4Prefixes(): Any? = unwrap(this).getIpv4Prefixes() /** - * The number of IPv6 addresses to assign to a network interface. + * The number of IPv6 addresses to assign to the network interface. * * Amazon EC2 automatically selects the IPv6 addresses from the subnet range. To specify * specific IPv6 addresses, use the `Ipv6Addresses` property and don't specify this property. @@ -958,8 +957,8 @@ public interface CfnNetworkInterfaceProps { override fun ipv6AddressCount(): Number? = unwrap(this).getIpv6AddressCount() /** - * One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet to - * associate with the network interface. + * The IPv6 addresses from the IPv6 CIDR block range of your subnet to assign to the network + * interface. * * If you're specifying a number of IPv6 addresses, use the `Ipv6AddressCount` property and * don't specify this property. @@ -994,17 +993,17 @@ public interface CfnNetworkInterfaceProps { override fun ipv6Prefixes(): Any? = unwrap(this).getIpv6Prefixes() /** - * Assigns a single private IP address to the network interface, which is used as the primary - * private IP address. + * The private IPv4 address to assign to the network interface as the primary private IP + * address. * - * If you want to specify multiple private IP address, use the `PrivateIpAddresses` property. + * If you want to specify multiple private IP addresses, use the `PrivateIpAddresses` property. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-privateipaddress) */ override fun privateIpAddress(): String? = unwrap(this).getPrivateIpAddress() /** - * Assigns private IP addresses to the network interface. + * The private IPv4 addresses to assign to the network interface. * * You can specify a primary private IP address by setting the value of the `Primary` property * to `true` in the `PrivateIpAddressSpecification` property. If you want EC2 to automatically @@ -1055,7 +1054,7 @@ public interface CfnNetworkInterfaceProps { override fun subnetId(): String = unwrap(this).getSubnetId() /** - * An arbitrary set of tags (key-value pairs) for this network interface. + * The tags to apply to the network interface. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-tags) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSecurityGroup.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSecurityGroup.kt index 57f6b45dfd..44f8dd132d 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSecurityGroup.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSecurityGroup.kt @@ -29,7 +29,7 @@ import software.constructs.Construct as SoftwareConstructsConstruct * * If you do not specify an egress rule, we add egress rules that allow IPv4 and IPv6 traffic on all * ports and protocols to any destination. We do not add these rules if you specify your own egress - * rules. If you later remove your egress rules, we restore the default egress rules. + * rules. * * This type supports updates. For more information about updating stacks, see [AWS CloudFormation * Stacks @@ -66,7 +66,6 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .destinationPrefixListId("destinationPrefixListId") * .destinationSecurityGroupId("destinationSecurityGroupId") * .fromPort(123) - * .sourceSecurityGroupId("sourceSecurityGroupId") * .toPort(123) * .build())) * .securityGroupIngress(List.of(IngressProperty.builder() @@ -533,9 +532,8 @@ public open class CfnSecurityGroup( * with a destination security group. For more information, see [Security group * rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html) . * - * You must specify exactly one of the following destinations: an IPv4 or IPv6 address range, a - * prefix list, or a security group. Otherwise, the stack launches successfully but the rule is not - * added to the security group. + * You must specify exactly one of the following destinations: an IPv4 address range, an IPv6 + * address range, a prefix list, or a security group. * * You must specify a protocol for each rule (for example, TCP). If the protocol is TCP or UDP, * you must also specify a port or port range. If the protocol is ICMP or ICMPv6, you must also @@ -559,7 +557,6 @@ public open class CfnSecurityGroup( * .destinationPrefixListId("destinationPrefixListId") * .destinationSecurityGroupId("destinationSecurityGroupId") * .fromPort(123) - * .sourceSecurityGroupId("sourceSecurityGroupId") * .toPort(123) * .build(); * ``` @@ -570,8 +567,8 @@ public open class CfnSecurityGroup( /** * The IPv4 address range, in CIDR format. * - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, see * [Security group rules for different use @@ -585,8 +582,8 @@ public open class CfnSecurityGroup( /** * The IPv6 address range, in CIDR format. * - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, see * [Security group rules for different use @@ -613,8 +610,8 @@ public open class CfnSecurityGroup( * This is the AWS service that you want to access through a VPC endpoint from instances * associated with the security group. * - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-securitygroup-egress.html#cfn-ec2-securitygroup-egress-destinationprefixlistid) */ @@ -623,8 +620,8 @@ public open class CfnSecurityGroup( /** * The ID of the destination VPC security group. * - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-securitygroup-egress.html#cfn-ec2-securitygroup-egress-destinationsecuritygroupid) */ @@ -654,11 +651,6 @@ public open class CfnSecurityGroup( */ public fun ipProtocol(): String - /** - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-securitygroup-egress.html#cfn-ec2-securitygroup-egress-sourcesecuritygroupid) - */ - public fun sourceSecurityGroupId(): String? = unwrap(this).getSourceSecurityGroupId() - /** * If the protocol is TCP or UDP, this is the end of the port range. * @@ -676,8 +668,8 @@ public open class CfnSecurityGroup( public interface Builder { /** * @param cidrIp The IPv4 address range, in CIDR format. - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, * see [Security group rules for different use @@ -688,8 +680,8 @@ public open class CfnSecurityGroup( /** * @param cidrIpv6 The IPv6 address range, in CIDR format. - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, * see [Security group rules for different use @@ -710,15 +702,15 @@ public open class CfnSecurityGroup( * This is the AWS service that you want to access through a VPC endpoint from instances * associated with the security group. * - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . */ public fun destinationPrefixListId(destinationPrefixListId: String) /** * @param destinationSecurityGroupId The ID of the destination VPC security group. - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . */ public fun destinationSecurityGroupId(destinationSecurityGroupId: String) @@ -741,11 +733,6 @@ public open class CfnSecurityGroup( */ public fun ipProtocol(ipProtocol: String) - /** - * @param sourceSecurityGroupId the value to be set. - */ - public fun sourceSecurityGroupId(sourceSecurityGroupId: String) - /** * @param toPort If the protocol is TCP or UDP, this is the end of the port range. * If the protocol is ICMP or ICMPv6, this is the ICMP code or -1 (all ICMP codes). If the @@ -761,8 +748,8 @@ public open class CfnSecurityGroup( /** * @param cidrIp The IPv4 address range, in CIDR format. - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, * see [Security group rules for different use @@ -775,8 +762,8 @@ public open class CfnSecurityGroup( /** * @param cidrIpv6 The IPv6 address range, in CIDR format. - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, * see [Security group rules for different use @@ -801,8 +788,8 @@ public open class CfnSecurityGroup( * This is the AWS service that you want to access through a VPC endpoint from instances * associated with the security group. * - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . */ override fun destinationPrefixListId(destinationPrefixListId: String) { cdkBuilder.destinationPrefixListId(destinationPrefixListId) @@ -810,8 +797,8 @@ public open class CfnSecurityGroup( /** * @param destinationSecurityGroupId The ID of the destination VPC security group. - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . */ override fun destinationSecurityGroupId(destinationSecurityGroupId: String) { cdkBuilder.destinationSecurityGroupId(destinationSecurityGroupId) @@ -840,13 +827,6 @@ public open class CfnSecurityGroup( cdkBuilder.ipProtocol(ipProtocol) } - /** - * @param sourceSecurityGroupId the value to be set. - */ - override fun sourceSecurityGroupId(sourceSecurityGroupId: String) { - cdkBuilder.sourceSecurityGroupId(sourceSecurityGroupId) - } - /** * @param toPort If the protocol is TCP or UDP, this is the end of the port range. * If the protocol is ICMP or ICMPv6, this is the ICMP code or -1 (all ICMP codes). If the @@ -866,8 +846,8 @@ public open class CfnSecurityGroup( /** * The IPv4 address range, in CIDR format. * - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, * see [Security group rules for different use @@ -881,8 +861,8 @@ public open class CfnSecurityGroup( /** * The IPv6 address range, in CIDR format. * - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, * see [Security group rules for different use @@ -909,8 +889,8 @@ public open class CfnSecurityGroup( * This is the AWS service that you want to access through a VPC endpoint from instances * associated with the security group. * - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-securitygroup-egress.html#cfn-ec2-securitygroup-egress-destinationprefixlistid) */ @@ -919,8 +899,8 @@ public open class CfnSecurityGroup( /** * The ID of the destination VPC security group. * - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-securitygroup-egress.html#cfn-ec2-securitygroup-egress-destinationsecuritygroupid) */ @@ -951,11 +931,6 @@ public open class CfnSecurityGroup( */ override fun ipProtocol(): String = unwrap(this).getIpProtocol() - /** - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-securitygroup-egress.html#cfn-ec2-securitygroup-egress-sourcesecuritygroupid) - */ - override fun sourceSecurityGroupId(): String? = unwrap(this).getSourceSecurityGroupId() - /** * If the protocol is TCP or UDP, this is the end of the port range. * @@ -993,9 +968,8 @@ public open class CfnSecurityGroup( * associated with a source security group. For more information, see [Security group * rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html) . * - * You must specify exactly one of the following sources: an IPv4 or IPv6 address range, a prefix - * list, or a security group. Otherwise, the stack launches successfully, but the rule is not added - * to the security group. + * You must specify exactly one of the following sources: an IPv4 address range, an IPv6 address + * range, a prefix list, or a security group. * * You must specify a protocol for each rule (for example, TCP). If the protocol is TCP or UDP, * you must also specify a port or port range. If the protocol is ICMP or ICMPv6, you must also @@ -1031,8 +1005,8 @@ public open class CfnSecurityGroup( /** * The IPv4 address range, in CIDR format. * - * You must specify a source security group ( `SourcePrefixListId` or `SourceSecurityGroupId` ) - * or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , `SourcePrefixListId` , + * or `SourceSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, see * [Security group rules for different use @@ -1046,8 +1020,8 @@ public open class CfnSecurityGroup( /** * The IPv6 address range, in CIDR format. * - * You must specify a source security group ( `SourcePrefixListId` or `SourceSecurityGroupId` ) - * or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , `SourcePrefixListId` , + * or `SourceSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, see * [Security group rules for different use @@ -1154,8 +1128,8 @@ public open class CfnSecurityGroup( public interface Builder { /** * @param cidrIp The IPv4 address range, in CIDR format. - * You must specify a source security group ( `SourcePrefixListId` or `SourceSecurityGroupId` - * ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , `SourcePrefixListId` + * , or `SourceSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, * see [Security group rules for different use @@ -1166,8 +1140,8 @@ public open class CfnSecurityGroup( /** * @param cidrIpv6 The IPv6 address range, in CIDR format. - * You must specify a source security group ( `SourcePrefixListId` or `SourceSecurityGroupId` - * ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , `SourcePrefixListId` + * , or `SourceSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, * see [Security group rules for different use @@ -1252,8 +1226,8 @@ public open class CfnSecurityGroup( /** * @param cidrIp The IPv4 address range, in CIDR format. - * You must specify a source security group ( `SourcePrefixListId` or `SourceSecurityGroupId` - * ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , `SourcePrefixListId` + * , or `SourceSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, * see [Security group rules for different use @@ -1266,8 +1240,8 @@ public open class CfnSecurityGroup( /** * @param cidrIpv6 The IPv6 address range, in CIDR format. - * You must specify a source security group ( `SourcePrefixListId` or `SourceSecurityGroupId` - * ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , `SourcePrefixListId` + * , or `SourceSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, * see [Security group rules for different use @@ -1372,8 +1346,8 @@ public open class CfnSecurityGroup( /** * The IPv4 address range, in CIDR format. * - * You must specify a source security group ( `SourcePrefixListId` or `SourceSecurityGroupId` - * ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , `SourcePrefixListId` + * , or `SourceSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, * see [Security group rules for different use @@ -1387,8 +1361,8 @@ public open class CfnSecurityGroup( /** * The IPv6 address range, in CIDR format. * - * You must specify a source security group ( `SourcePrefixListId` or `SourceSecurityGroupId` - * ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , `SourcePrefixListId` + * , or `SourceSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, * see [Security group rules for different use diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSecurityGroupEgress.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSecurityGroupEgress.kt index 439a54b719..ff0cf8f052 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSecurityGroupEgress.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSecurityGroupEgress.kt @@ -20,9 +20,8 @@ import software.constructs.Construct as SoftwareConstructsConstruct * destination security group. For more information, see [Security group * rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html) . * - * You must specify exactly one of the following destinations: an IPv4 or IPv6 address range, a - * prefix list, or a security group. Otherwise, the stack launches successfully but the rule is not - * added to the security group. + * You must specify exactly one of the following destinations: an IPv4 address range, an IPv6 + * address range, a prefix list, or a security group. * * You must specify a protocol for each rule (for example, TCP). If the protocol is TCP or UDP, you * must also specify a port or port range. If the protocol is ICMP or ICMPv6, you must also specify the @@ -208,8 +207,8 @@ public open class CfnSecurityGroupEgress( /** * The IPv4 address range, in CIDR format. * - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, see * [Security group rules for different use @@ -224,8 +223,8 @@ public open class CfnSecurityGroupEgress( /** * The IPv6 address range, in CIDR format. * - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, see * [Security group rules for different use @@ -251,11 +250,11 @@ public open class CfnSecurityGroupEgress( /** * The prefix list IDs for an AWS service. * - * This is the AWS service that you want to access through a VPC endpoint from instances - * associated with the security group. + * This is the AWS service to access through a VPC endpoint from instances associated with the + * security group. * - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroupegress.html#cfn-ec2-securitygroupegress-destinationprefixlistid) * @param destinationPrefixListId The prefix list IDs for an AWS service. @@ -265,8 +264,8 @@ public open class CfnSecurityGroupEgress( /** * The ID of the security group. * - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroupegress.html#cfn-ec2-securitygroupegress-destinationsecuritygroupid) * @param destinationSecurityGroupId The ID of the security group. @@ -335,8 +334,8 @@ public open class CfnSecurityGroupEgress( /** * The IPv4 address range, in CIDR format. * - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, see * [Security group rules for different use @@ -353,8 +352,8 @@ public open class CfnSecurityGroupEgress( /** * The IPv6 address range, in CIDR format. * - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, see * [Security group rules for different use @@ -384,11 +383,11 @@ public open class CfnSecurityGroupEgress( /** * The prefix list IDs for an AWS service. * - * This is the AWS service that you want to access through a VPC endpoint from instances - * associated with the security group. + * This is the AWS service to access through a VPC endpoint from instances associated with the + * security group. * - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroupegress.html#cfn-ec2-securitygroupegress-destinationprefixlistid) * @param destinationPrefixListId The prefix list IDs for an AWS service. @@ -400,8 +399,8 @@ public open class CfnSecurityGroupEgress( /** * The ID of the security group. * - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroupegress.html#cfn-ec2-securitygroupegress-destinationsecuritygroupid) * @param destinationSecurityGroupId The ID of the security group. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSecurityGroupEgressProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSecurityGroupEgressProps.kt index d925f070e4..1c25187c37 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSecurityGroupEgressProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSecurityGroupEgressProps.kt @@ -38,8 +38,8 @@ public interface CfnSecurityGroupEgressProps { /** * The IPv4 address range, in CIDR format. * - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, see * [Security group rules for different use @@ -53,8 +53,8 @@ public interface CfnSecurityGroupEgressProps { /** * The IPv6 address range, in CIDR format. * - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, see * [Security group rules for different use @@ -78,11 +78,11 @@ public interface CfnSecurityGroupEgressProps { /** * The prefix list IDs for an AWS service. * - * This is the AWS service that you want to access through a VPC endpoint from instances - * associated with the security group. + * This is the AWS service to access through a VPC endpoint from instances associated with the + * security group. * - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroupegress.html#cfn-ec2-securitygroupegress-destinationprefixlistid) */ @@ -91,8 +91,8 @@ public interface CfnSecurityGroupEgressProps { /** * The ID of the security group. * - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroupegress.html#cfn-ec2-securitygroupegress-destinationsecuritygroupid) */ @@ -149,8 +149,8 @@ public interface CfnSecurityGroupEgressProps { public interface Builder { /** * @param cidrIp The IPv4 address range, in CIDR format. - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, see * [Security group rules for different use @@ -161,8 +161,8 @@ public interface CfnSecurityGroupEgressProps { /** * @param cidrIpv6 The IPv6 address range, in CIDR format. - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, see * [Security group rules for different use @@ -180,18 +180,18 @@ public interface CfnSecurityGroupEgressProps { /** * @param destinationPrefixListId The prefix list IDs for an AWS service. - * This is the AWS service that you want to access through a VPC endpoint from instances - * associated with the security group. + * This is the AWS service to access through a VPC endpoint from instances associated with the + * security group. * - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . */ public fun destinationPrefixListId(destinationPrefixListId: String) /** * @param destinationSecurityGroupId The ID of the security group. - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . */ public fun destinationSecurityGroupId(destinationSecurityGroupId: String) @@ -235,8 +235,8 @@ public interface CfnSecurityGroupEgressProps { /** * @param cidrIp The IPv4 address range, in CIDR format. - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, see * [Security group rules for different use @@ -249,8 +249,8 @@ public interface CfnSecurityGroupEgressProps { /** * @param cidrIpv6 The IPv6 address range, in CIDR format. - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, see * [Security group rules for different use @@ -272,11 +272,11 @@ public interface CfnSecurityGroupEgressProps { /** * @param destinationPrefixListId The prefix list IDs for an AWS service. - * This is the AWS service that you want to access through a VPC endpoint from instances - * associated with the security group. + * This is the AWS service to access through a VPC endpoint from instances associated with the + * security group. * - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . */ override fun destinationPrefixListId(destinationPrefixListId: String) { cdkBuilder.destinationPrefixListId(destinationPrefixListId) @@ -284,8 +284,8 @@ public interface CfnSecurityGroupEgressProps { /** * @param destinationSecurityGroupId The ID of the security group. - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . */ override fun destinationSecurityGroupId(destinationSecurityGroupId: String) { cdkBuilder.destinationSecurityGroupId(destinationSecurityGroupId) @@ -342,8 +342,8 @@ public interface CfnSecurityGroupEgressProps { /** * The IPv4 address range, in CIDR format. * - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, see * [Security group rules for different use @@ -357,8 +357,8 @@ public interface CfnSecurityGroupEgressProps { /** * The IPv6 address range, in CIDR format. * - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, see * [Security group rules for different use @@ -382,11 +382,11 @@ public interface CfnSecurityGroupEgressProps { /** * The prefix list IDs for an AWS service. * - * This is the AWS service that you want to access through a VPC endpoint from instances - * associated with the security group. + * This is the AWS service to access through a VPC endpoint from instances associated with the + * security group. * - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroupegress.html#cfn-ec2-securitygroupegress-destinationprefixlistid) */ @@ -395,8 +395,8 @@ public interface CfnSecurityGroupEgressProps { /** * The ID of the security group. * - * You must specify a destination security group ( `DestinationPrefixListId` or - * `DestinationSecurityGroupId` ) or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , + * `DestinationPrefixListId` , or `DestinationSecurityGroupId` . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroupegress.html#cfn-ec2-securitygroupegress-destinationsecuritygroupid) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSecurityGroupIngress.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSecurityGroupIngress.kt index f3b2303b67..4e396fa527 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSecurityGroupIngress.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSecurityGroupIngress.kt @@ -20,9 +20,8 @@ import software.constructs.Construct as SoftwareConstructsConstruct * with a source security group. For more information, see [Security group * rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html) . * - * You must specify only one of the following sources: an IPv4 or IPv6 address range, a prefix list, - * or a security group. Otherwise, the stack launches successfully, but the rule is not added to the - * security group. + * You must specify exactly one of the following sources: an IPv4 address range, an IPv6 address + * range, a prefix list, or a security group. * * You must specify a protocol for each rule (for example, TCP). If the protocol is TCP or UDP, you * must also specify a port or port range. If the protocol is ICMP or ICMPv6, you must also specify the @@ -249,8 +248,8 @@ public open class CfnSecurityGroupIngress( /** * The IPv4 address range, in CIDR format. * - * You must specify a source security group ( `SourcePrefixListId` or `SourceSecurityGroupId` ) - * or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , `SourcePrefixListId` , + * or `SourceSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, see * [Security group rules for different use @@ -265,8 +264,8 @@ public open class CfnSecurityGroupIngress( /** * The IPv6 address range, in CIDR format. * - * You must specify a source security group ( `SourcePrefixListId` or `SourceSecurityGroupId` ) - * or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , `SourcePrefixListId` , + * or `SourceSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, see * [Security group rules for different use @@ -419,8 +418,8 @@ public open class CfnSecurityGroupIngress( /** * The IPv4 address range, in CIDR format. * - * You must specify a source security group ( `SourcePrefixListId` or `SourceSecurityGroupId` ) - * or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , `SourcePrefixListId` , + * or `SourceSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, see * [Security group rules for different use @@ -437,8 +436,8 @@ public open class CfnSecurityGroupIngress( /** * The IPv6 address range, in CIDR format. * - * You must specify a source security group ( `SourcePrefixListId` or `SourceSecurityGroupId` ) - * or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , `SourcePrefixListId` , + * or `SourceSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, see * [Security group rules for different use diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSecurityGroupIngressProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSecurityGroupIngressProps.kt index 15a1636d00..1c5ece58de 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSecurityGroupIngressProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSecurityGroupIngressProps.kt @@ -42,8 +42,8 @@ public interface CfnSecurityGroupIngressProps { /** * The IPv4 address range, in CIDR format. * - * You must specify a source security group ( `SourcePrefixListId` or `SourceSecurityGroupId` ) or - * a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , `SourcePrefixListId` , + * or `SourceSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, see * [Security group rules for different use @@ -57,8 +57,8 @@ public interface CfnSecurityGroupIngressProps { /** * The IPv6 address range, in CIDR format. * - * You must specify a source security group ( `SourcePrefixListId` or `SourceSecurityGroupId` ) or - * a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , `SourcePrefixListId` , + * or `SourceSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, see * [Security group rules for different use @@ -191,8 +191,8 @@ public interface CfnSecurityGroupIngressProps { public interface Builder { /** * @param cidrIp The IPv4 address range, in CIDR format. - * You must specify a source security group ( `SourcePrefixListId` or `SourceSecurityGroupId` ) - * or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , `SourcePrefixListId` , + * or `SourceSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, see * [Security group rules for different use @@ -203,8 +203,8 @@ public interface CfnSecurityGroupIngressProps { /** * @param cidrIpv6 The IPv6 address range, in CIDR format. - * You must specify a source security group ( `SourcePrefixListId` or `SourceSecurityGroupId` ) - * or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , `SourcePrefixListId` , + * or `SourceSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, see * [Security group rules for different use @@ -309,8 +309,8 @@ public interface CfnSecurityGroupIngressProps { /** * @param cidrIp The IPv4 address range, in CIDR format. - * You must specify a source security group ( `SourcePrefixListId` or `SourceSecurityGroupId` ) - * or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , `SourcePrefixListId` , + * or `SourceSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, see * [Security group rules for different use @@ -323,8 +323,8 @@ public interface CfnSecurityGroupIngressProps { /** * @param cidrIpv6 The IPv6 address range, in CIDR format. - * You must specify a source security group ( `SourcePrefixListId` or `SourceSecurityGroupId` ) - * or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , `SourcePrefixListId` , + * or `SourceSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, see * [Security group rules for different use @@ -454,8 +454,8 @@ public interface CfnSecurityGroupIngressProps { /** * The IPv4 address range, in CIDR format. * - * You must specify a source security group ( `SourcePrefixListId` or `SourceSecurityGroupId` ) - * or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , `SourcePrefixListId` , + * or `SourceSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, see * [Security group rules for different use @@ -469,8 +469,8 @@ public interface CfnSecurityGroupIngressProps { /** * The IPv6 address range, in CIDR format. * - * You must specify a source security group ( `SourcePrefixListId` or `SourceSecurityGroupId` ) - * or a CIDR range ( `CidrIp` or `CidrIpv6` ). + * You must specify exactly one of the following: `CidrIp` , `CidrIpv6` , `SourcePrefixListId` , + * or `SourceSecurityGroupId` . * * For examples of rules that you can add to security groups for specific access scenarios, see * [Security group rules for different use diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSecurityGroupProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSecurityGroupProps.kt index 7e7245ab01..819e7ccfe4 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSecurityGroupProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSecurityGroupProps.kt @@ -34,7 +34,6 @@ import kotlin.collections.List * .destinationPrefixListId("destinationPrefixListId") * .destinationSecurityGroupId("destinationSecurityGroupId") * .fromPort(123) - * .sourceSecurityGroupId("sourceSecurityGroupId") * .toPort(123) * .build())) * .securityGroupIngress(List.of(IngressProperty.builder() diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSpotFleet.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSpotFleet.kt index 9baaee326e..4abc72666d 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSpotFleet.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSpotFleet.kt @@ -44,14 +44,7 @@ import software.constructs.Construct as SoftwareConstructsConstruct * * For more information, see [Spot * Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet.html) in the *Amazon EC2 User - * Guide for Linux Instances* . - * - * - * We strongly discourage using the RequestSpotFleet API because it is a legacy API with no planned - * investment. For options for requesting Spot Instances, see [Which is the best Spot request method to - * use?](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-best-practices.html#which-spot-request-method-to-use) - * in the *Amazon EC2 User Guide for Linux Instances* . - * + * Guide* . * * Example: * @@ -2369,8 +2362,6 @@ public open class CfnSpotFleet( /** * The ID of the subnet associated with the network interface. * - * Applies only if creating a network interface when launching an instance. - * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancenetworkinterfacespecification.html#cfn-ec2-spotfleet-instancenetworkinterfacespecification-subnetid) */ public fun subnetId(): String? = unwrap(this).getSubnetId() @@ -2525,7 +2516,6 @@ public open class CfnSpotFleet( /** * @param subnetId The ID of the subnet associated with the network interface. - * Applies only if creating a network interface when launching an instance. */ public fun subnetId(subnetId: String) } @@ -2711,7 +2701,6 @@ public open class CfnSpotFleet( /** * @param subnetId The ID of the subnet associated with the network interface. - * Applies only if creating a network interface when launching an instance. */ override fun subnetId(subnetId: String) { cdkBuilder.subnetId(subnetId) @@ -2839,8 +2828,6 @@ public open class CfnSpotFleet( /** * The ID of the subnet associated with the network interface. * - * Applies only if creating a network interface when launching an instance. - * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancenetworkinterfacespecification.html#cfn-ec2-spotfleet-instancenetworkinterfacespecification-subnetid) */ override fun subnetId(): String? = unwrap(this).getSubnetId() @@ -7102,17 +7089,7 @@ public open class CfnSpotFleet( public fun monitoring(): Any? = unwrap(this).getMonitoring() /** - * One or more network interfaces. - * - * If you specify a network interface, you must specify subnet IDs and security group IDs using - * the network interface. - * - * - * `SpotFleetLaunchSpecification` currently does not support Elastic Fabric Adapter (EFA). To - * specify an EFA, you must use - * [LaunchTemplateConfig](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_LaunchTemplateConfig.html) - * . - * + * The network interfaces. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-networkinterfaces) */ @@ -7139,6 +7116,9 @@ public open class CfnSpotFleet( /** * The security groups. * + * If you specify a network interface, you must specify any security groups as part of the + * network interface instead of using this parameter. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-securitygroups) */ public fun securityGroups(): Any? = unwrap(this).getSecurityGroups() @@ -7164,6 +7144,9 @@ public open class CfnSpotFleet( * To specify multiple subnets, separate them using commas; for example, * "subnet-1234abcdeexample1, subnet-0987cdef6example2". * + * If you specify a network interface, you must specify any subnets as part of the network + * interface instead of using this parameter. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-subnetid) */ public fun subnetId(): String? = unwrap(this).getSubnetId() @@ -7335,41 +7318,17 @@ public open class CfnSpotFleet( public fun monitoring(monitoring: SpotFleetMonitoringProperty.Builder.() -> Unit) /** - * @param networkInterfaces One or more network interfaces. - * If you specify a network interface, you must specify subnet IDs and security group IDs - * using the network interface. - * - * - * `SpotFleetLaunchSpecification` currently does not support Elastic Fabric Adapter (EFA). To - * specify an EFA, you must use - * [LaunchTemplateConfig](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_LaunchTemplateConfig.html) - * . + * @param networkInterfaces The network interfaces. */ public fun networkInterfaces(networkInterfaces: IResolvable) /** - * @param networkInterfaces One or more network interfaces. - * If you specify a network interface, you must specify subnet IDs and security group IDs - * using the network interface. - * - * - * `SpotFleetLaunchSpecification` currently does not support Elastic Fabric Adapter (EFA). To - * specify an EFA, you must use - * [LaunchTemplateConfig](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_LaunchTemplateConfig.html) - * . + * @param networkInterfaces The network interfaces. */ public fun networkInterfaces(networkInterfaces: List) /** - * @param networkInterfaces One or more network interfaces. - * If you specify a network interface, you must specify subnet IDs and security group IDs - * using the network interface. - * - * - * `SpotFleetLaunchSpecification` currently does not support Elastic Fabric Adapter (EFA). To - * specify an EFA, you must use - * [LaunchTemplateConfig](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_LaunchTemplateConfig.html) - * . + * @param networkInterfaces The network interfaces. */ public fun networkInterfaces(vararg networkInterfaces: Any) @@ -7400,16 +7359,22 @@ public open class CfnSpotFleet( /** * @param securityGroups The security groups. + * If you specify a network interface, you must specify any security groups as part of the + * network interface instead of using this parameter. */ public fun securityGroups(securityGroups: IResolvable) /** * @param securityGroups The security groups. + * If you specify a network interface, you must specify any security groups as part of the + * network interface instead of using this parameter. */ public fun securityGroups(securityGroups: List) /** * @param securityGroups The security groups. + * If you specify a network interface, you must specify any security groups as part of the + * network interface instead of using this parameter. */ public fun securityGroups(vararg securityGroups: Any) @@ -7429,6 +7394,9 @@ public open class CfnSpotFleet( * @param subnetId The IDs of the subnets in which to launch the instances. * To specify multiple subnets, separate them using commas; for example, * "subnet-1234abcdeexample1, subnet-0987cdef6example2". + * + * If you specify a network interface, you must specify any subnets as part of the network + * interface instead of using this parameter. */ public fun subnetId(subnetId: String) @@ -7636,45 +7604,21 @@ public open class CfnSpotFleet( monitoring(SpotFleetMonitoringProperty(monitoring)) /** - * @param networkInterfaces One or more network interfaces. - * If you specify a network interface, you must specify subnet IDs and security group IDs - * using the network interface. - * - * - * `SpotFleetLaunchSpecification` currently does not support Elastic Fabric Adapter (EFA). To - * specify an EFA, you must use - * [LaunchTemplateConfig](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_LaunchTemplateConfig.html) - * . + * @param networkInterfaces The network interfaces. */ override fun networkInterfaces(networkInterfaces: IResolvable) { cdkBuilder.networkInterfaces(networkInterfaces.let(IResolvable::unwrap)) } /** - * @param networkInterfaces One or more network interfaces. - * If you specify a network interface, you must specify subnet IDs and security group IDs - * using the network interface. - * - * - * `SpotFleetLaunchSpecification` currently does not support Elastic Fabric Adapter (EFA). To - * specify an EFA, you must use - * [LaunchTemplateConfig](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_LaunchTemplateConfig.html) - * . + * @param networkInterfaces The network interfaces. */ override fun networkInterfaces(networkInterfaces: List) { cdkBuilder.networkInterfaces(networkInterfaces.map{CdkObjectWrappers.unwrap(it)}) } /** - * @param networkInterfaces One or more network interfaces. - * If you specify a network interface, you must specify subnet IDs and security group IDs - * using the network interface. - * - * - * `SpotFleetLaunchSpecification` currently does not support Elastic Fabric Adapter (EFA). To - * specify an EFA, you must use - * [LaunchTemplateConfig](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_LaunchTemplateConfig.html) - * . + * @param networkInterfaces The network interfaces. */ override fun networkInterfaces(vararg networkInterfaces: Any): Unit = networkInterfaces(networkInterfaces.toList()) @@ -7713,6 +7657,8 @@ public open class CfnSpotFleet( /** * @param securityGroups The security groups. + * If you specify a network interface, you must specify any security groups as part of the + * network interface instead of using this parameter. */ override fun securityGroups(securityGroups: IResolvable) { cdkBuilder.securityGroups(securityGroups.let(IResolvable::unwrap)) @@ -7720,6 +7666,8 @@ public open class CfnSpotFleet( /** * @param securityGroups The security groups. + * If you specify a network interface, you must specify any security groups as part of the + * network interface instead of using this parameter. */ override fun securityGroups(securityGroups: List) { cdkBuilder.securityGroups(securityGroups.map{CdkObjectWrappers.unwrap(it)}) @@ -7727,6 +7675,8 @@ public open class CfnSpotFleet( /** * @param securityGroups The security groups. + * If you specify a network interface, you must specify any security groups as part of the + * network interface instead of using this parameter. */ override fun securityGroups(vararg securityGroups: Any): Unit = securityGroups(securityGroups.toList()) @@ -7749,6 +7699,9 @@ public open class CfnSpotFleet( * @param subnetId The IDs of the subnets in which to launch the instances. * To specify multiple subnets, separate them using commas; for example, * "subnet-1234abcdeexample1, subnet-0987cdef6example2". + * + * If you specify a network interface, you must specify any subnets as part of the network + * interface instead of using this parameter. */ override fun subnetId(subnetId: String) { cdkBuilder.subnetId(subnetId) @@ -7886,17 +7839,7 @@ public open class CfnSpotFleet( override fun monitoring(): Any? = unwrap(this).getMonitoring() /** - * One or more network interfaces. - * - * If you specify a network interface, you must specify subnet IDs and security group IDs - * using the network interface. - * - * - * `SpotFleetLaunchSpecification` currently does not support Elastic Fabric Adapter (EFA). To - * specify an EFA, you must use - * [LaunchTemplateConfig](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_LaunchTemplateConfig.html) - * . - * + * The network interfaces. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-networkinterfaces) */ @@ -7923,6 +7866,9 @@ public open class CfnSpotFleet( /** * The security groups. * + * If you specify a network interface, you must specify any security groups as part of the + * network interface instead of using this parameter. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-securitygroups) */ override fun securityGroups(): Any? = unwrap(this).getSecurityGroups() @@ -7948,6 +7894,9 @@ public open class CfnSpotFleet( * To specify multiple subnets, separate them using commas; for example, * "subnet-1234abcdeexample1, subnet-0987cdef6example2". * + * If you specify a network interface, you must specify any subnets as part of the network + * interface instead of using this parameter. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-subnetid) */ override fun subnetId(): String? = unwrap(this).getSubnetId() diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSubnet.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSubnet.kt index f95984cea3..744a0ee73c 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSubnet.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSubnet.kt @@ -214,6 +214,18 @@ public open class CfnSubnet( unwrap(this).setEnableDns64(`value`.let(IResolvable::unwrap)) } + /** + * Indicates the device position for local network interfaces in this subnet. + */ + public open fun enableLniAtDeviceIndex(): Number? = unwrap(this).getEnableLniAtDeviceIndex() + + /** + * Indicates the device position for local network interfaces in this subnet. + */ + public open fun enableLniAtDeviceIndex(`value`: Number) { + unwrap(this).setEnableLniAtDeviceIndex(`value`) + } + /** * Examines the CloudFormation resource and discloses attributes. * @@ -491,6 +503,18 @@ public open class CfnSubnet( */ public fun enableDns64(enableDns64: IResolvable) + /** + * Indicates the device position for local network interfaces in this subnet. + * + * For example, `1` indicates local network interfaces in this subnet are the secondary network + * interface (eth1). + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-enablelniatdeviceindex) + * @param enableLniAtDeviceIndex Indicates the device position for local network interfaces in + * this subnet. + */ + public fun enableLniAtDeviceIndex(enableLniAtDeviceIndex: Number) + /** * An IPv4 IPAM pool ID for the subnet. * @@ -757,6 +781,20 @@ public open class CfnSubnet( cdkBuilder.enableDns64(enableDns64.let(IResolvable::unwrap)) } + /** + * Indicates the device position for local network interfaces in this subnet. + * + * For example, `1` indicates local network interfaces in this subnet are the secondary network + * interface (eth1). + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-enablelniatdeviceindex) + * @param enableLniAtDeviceIndex Indicates the device position for local network interfaces in + * this subnet. + */ + override fun enableLniAtDeviceIndex(enableLniAtDeviceIndex: Number) { + cdkBuilder.enableLniAtDeviceIndex(enableLniAtDeviceIndex) + } + /** * An IPv4 IPAM pool ID for the subnet. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSubnetProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSubnetProps.kt index abc91dc2eb..579dd5a546 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSubnetProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnSubnetProps.kt @@ -32,6 +32,7 @@ import kotlin.collections.List * .availabilityZoneId("availabilityZoneId") * .cidrBlock("cidrBlock") * .enableDns64(false) + * .enableLniAtDeviceIndex(123) * .ipv4IpamPoolId("ipv4IpamPoolId") * .ipv4NetmaskLength(123) * .ipv6CidrBlock("ipv6CidrBlock") @@ -99,6 +100,16 @@ public interface CfnSubnetProps { */ public fun enableDns64(): Any? = unwrap(this).getEnableDns64() + /** + * Indicates the device position for local network interfaces in this subnet. + * + * For example, `1` indicates local network interfaces in this subnet are the secondary network + * interface (eth1). + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-enablelniatdeviceindex) + */ + public fun enableLniAtDeviceIndex(): Number? = unwrap(this).getEnableLniAtDeviceIndex() + /** * An IPv4 IPAM pool ID for the subnet. * @@ -261,6 +272,14 @@ public interface CfnSubnetProps { */ public fun enableDns64(enableDns64: IResolvable) + /** + * @param enableLniAtDeviceIndex Indicates the device position for local network interfaces in + * this subnet. + * For example, `1` indicates local network interfaces in this subnet are the secondary network + * interface (eth1). + */ + public fun enableLniAtDeviceIndex(enableLniAtDeviceIndex: Number) + /** * @param ipv4IpamPoolId An IPv4 IPAM pool ID for the subnet. */ @@ -435,6 +454,16 @@ public interface CfnSubnetProps { cdkBuilder.enableDns64(enableDns64.let(IResolvable::unwrap)) } + /** + * @param enableLniAtDeviceIndex Indicates the device position for local network interfaces in + * this subnet. + * For example, `1` indicates local network interfaces in this subnet are the secondary network + * interface (eth1). + */ + override fun enableLniAtDeviceIndex(enableLniAtDeviceIndex: Number) { + cdkBuilder.enableLniAtDeviceIndex(enableLniAtDeviceIndex) + } + /** * @param ipv4IpamPoolId An IPv4 IPAM pool ID for the subnet. */ @@ -623,6 +652,16 @@ public interface CfnSubnetProps { */ override fun enableDns64(): Any? = unwrap(this).getEnableDns64() + /** + * Indicates the device position for local network interfaces in this subnet. + * + * For example, `1` indicates local network interfaces in this subnet are the secondary network + * interface (eth1). + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-enablelniatdeviceindex) + */ + override fun enableLniAtDeviceIndex(): Number? = unwrap(this).getEnableLniAtDeviceIndex() + /** * An IPv4 IPAM pool ID for the subnet. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnTransitGatewayRoute.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnTransitGatewayRoute.kt index e1ad0033fe..30d897bafd 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnTransitGatewayRoute.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnTransitGatewayRoute.kt @@ -25,10 +25,10 @@ import software.constructs.Construct as SoftwareConstructsConstruct * import io.cloudshiftdev.awscdk.services.ec2.*; * CfnTransitGatewayRoute cfnTransitGatewayRoute = CfnTransitGatewayRoute.Builder.create(this, * "MyCfnTransitGatewayRoute") + * .destinationCidrBlock("destinationCidrBlock") * .transitGatewayRouteTableId("transitGatewayRouteTableId") * // the properties below are optional * .blackhole(false) - * .destinationCidrBlock("destinationCidrBlock") * .transitGatewayAttachmentId("transitGatewayAttachmentId") * .build(); * ``` @@ -81,7 +81,7 @@ public open class CfnTransitGatewayRoute( /** * The CIDR block used for destination matches. */ - public open fun destinationCidrBlock(): String? = unwrap(this).getDestinationCidrBlock() + public open fun destinationCidrBlock(): String = unwrap(this).getDestinationCidrBlock() /** * The CIDR block used for destination matches. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnTransitGatewayRouteProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnTransitGatewayRouteProps.kt index 8cce33595f..adf5aae6c2 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnTransitGatewayRouteProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnTransitGatewayRouteProps.kt @@ -21,10 +21,10 @@ import kotlin.Unit * // The values are placeholders you should change. * import io.cloudshiftdev.awscdk.services.ec2.*; * CfnTransitGatewayRouteProps cfnTransitGatewayRouteProps = CfnTransitGatewayRouteProps.builder() + * .destinationCidrBlock("destinationCidrBlock") * .transitGatewayRouteTableId("transitGatewayRouteTableId") * // the properties below are optional * .blackhole(false) - * .destinationCidrBlock("destinationCidrBlock") * .transitGatewayAttachmentId("transitGatewayAttachmentId") * .build(); * ``` @@ -44,7 +44,7 @@ public interface CfnTransitGatewayRouteProps { * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroute.html#cfn-ec2-transitgatewayroute-destinationcidrblock) */ - public fun destinationCidrBlock(): String? = unwrap(this).getDestinationCidrBlock() + public fun destinationCidrBlock(): String /** * The ID of the attachment. @@ -76,7 +76,7 @@ public interface CfnTransitGatewayRouteProps { public fun blackhole(blackhole: IResolvable) /** - * @param destinationCidrBlock The CIDR block used for destination matches. + * @param destinationCidrBlock The CIDR block used for destination matches. */ public fun destinationCidrBlock(destinationCidrBlock: String) @@ -110,7 +110,7 @@ public interface CfnTransitGatewayRouteProps { } /** - * @param destinationCidrBlock The CIDR block used for destination matches. + * @param destinationCidrBlock The CIDR block used for destination matches. */ override fun destinationCidrBlock(destinationCidrBlock: String) { cdkBuilder.destinationCidrBlock(destinationCidrBlock) @@ -149,7 +149,7 @@ public interface CfnTransitGatewayRouteProps { * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroute.html#cfn-ec2-transitgatewayroute-destinationcidrblock) */ - override fun destinationCidrBlock(): String? = unwrap(this).getDestinationCidrBlock() + override fun destinationCidrBlock(): String = unwrap(this).getDestinationCidrBlock() /** * The ID of the attachment. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnTransitGatewayRouteTableAssociation.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnTransitGatewayRouteTableAssociation.kt index ac54cbfc51..2e62d8ab84 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnTransitGatewayRouteTableAssociation.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/CfnTransitGatewayRouteTableAssociation.kt @@ -56,11 +56,6 @@ public open class CfnTransitGatewayRouteTableAssociation( ) : this(scope, id, CfnTransitGatewayRouteTableAssociationProps(props) ) - /** - * - */ - public open fun attrId(): String = unwrap(this).getAttrId() - /** * Examines the CloudFormation resource and discloses attributes. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/GatewayVpcEndpointAwsService.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/GatewayVpcEndpointAwsService.kt index d09df2bcf0..2b2060bd8a 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/GatewayVpcEndpointAwsService.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/GatewayVpcEndpointAwsService.kt @@ -58,6 +58,9 @@ public open class GatewayVpcEndpointAwsService( public val S3: GatewayVpcEndpointAwsService = GatewayVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.GatewayVpcEndpointAwsService.S3) + public val S3_EXPRESS: GatewayVpcEndpointAwsService = + GatewayVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.GatewayVpcEndpointAwsService.S3_EXPRESS) + internal fun wrap(cdkObject: software.amazon.awscdk.services.ec2.GatewayVpcEndpointAwsService): GatewayVpcEndpointAwsService = GatewayVpcEndpointAwsService(cdkObject) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/InstanceClass.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/InstanceClass.kt index 0f833f25b5..f599d7d061 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/InstanceClass.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/InstanceClass.kt @@ -48,6 +48,7 @@ public enum class InstanceClass( MEMORY5_AMD(software.amazon.awscdk.services.ec2.InstanceClass.MEMORY5_AMD), R5A(software.amazon.awscdk.services.ec2.InstanceClass.R5A), MEMORY5_AMD_NVME_DRIVE(software.amazon.awscdk.services.ec2.InstanceClass.MEMORY5_AMD_NVME_DRIVE), + R5AD(software.amazon.awscdk.services.ec2.InstanceClass.R5AD), HIGH_MEMORY_3TB_1(software.amazon.awscdk.services.ec2.InstanceClass.HIGH_MEMORY_3TB_1), U_3TB1(software.amazon.awscdk.services.ec2.InstanceClass.U_3TB1), HIGH_MEMORY_6TB_1(software.amazon.awscdk.services.ec2.InstanceClass.HIGH_MEMORY_6TB_1), @@ -60,7 +61,6 @@ public enum class InstanceClass( U_18TB1(software.amazon.awscdk.services.ec2.InstanceClass.U_18TB1), HIGH_MEMORY_24TB_1(software.amazon.awscdk.services.ec2.InstanceClass.HIGH_MEMORY_24TB_1), U_24TB1(software.amazon.awscdk.services.ec2.InstanceClass.U_24TB1), - R5AD(software.amazon.awscdk.services.ec2.InstanceClass.R5AD), MEMORY5_EBS_OPTIMIZED(software.amazon.awscdk.services.ec2.InstanceClass.MEMORY5_EBS_OPTIMIZED), R5B(software.amazon.awscdk.services.ec2.InstanceClass.R5B), MEMORY6_GRAVITON(software.amazon.awscdk.services.ec2.InstanceClass.MEMORY6_GRAVITON), @@ -122,9 +122,11 @@ public enum class InstanceClass( STORAGE3_ENHANCED_NETWORK(software.amazon.awscdk.services.ec2.InstanceClass.STORAGE3_ENHANCED_NETWORK), D3EN(software.amazon.awscdk.services.ec2.InstanceClass.D3EN), STORAGE_COMPUTE_1(software.amazon.awscdk.services.ec2.InstanceClass.STORAGE_COMPUTE_1), + H1(software.amazon.awscdk.services.ec2.InstanceClass.H1), + TRAINING_ACCELERATOR1(software.amazon.awscdk.services.ec2.InstanceClass.TRAINING_ACCELERATOR1), TRN1(software.amazon.awscdk.services.ec2.InstanceClass.TRN1), + TRAINING_ACCELERATOR1_ENHANCED_NETWORK(software.amazon.awscdk.services.ec2.InstanceClass.TRAINING_ACCELERATOR1_ENHANCED_NETWORK), TRN1N(software.amazon.awscdk.services.ec2.InstanceClass.TRN1N), - H1(software.amazon.awscdk.services.ec2.InstanceClass.H1), IO3(software.amazon.awscdk.services.ec2.InstanceClass.IO3), I3(software.amazon.awscdk.services.ec2.InstanceClass.I3), IO3_DENSE_NVME_DRIVE(software.amazon.awscdk.services.ec2.InstanceClass.IO3_DENSE_NVME_DRIVE), @@ -237,6 +239,8 @@ public enum class InstanceClass( HPC7G(software.amazon.awscdk.services.ec2.InstanceClass.HPC7G), DEEP_LEARNING1(software.amazon.awscdk.services.ec2.InstanceClass.DEEP_LEARNING1), DL1(software.amazon.awscdk.services.ec2.InstanceClass.DL1), + DEEP_LEARNING2_QUALCOMM(software.amazon.awscdk.services.ec2.InstanceClass.DEEP_LEARNING2_QUALCOMM), + DL2Q(software.amazon.awscdk.services.ec2.InstanceClass.DL2Q), ; public companion object { @@ -297,6 +301,7 @@ public enum class InstanceClass( software.amazon.awscdk.services.ec2.InstanceClass.R5A -> InstanceClass.R5A software.amazon.awscdk.services.ec2.InstanceClass.MEMORY5_AMD_NVME_DRIVE -> InstanceClass.MEMORY5_AMD_NVME_DRIVE + software.amazon.awscdk.services.ec2.InstanceClass.R5AD -> InstanceClass.R5AD software.amazon.awscdk.services.ec2.InstanceClass.HIGH_MEMORY_3TB_1 -> InstanceClass.HIGH_MEMORY_3TB_1 software.amazon.awscdk.services.ec2.InstanceClass.U_3TB1 -> InstanceClass.U_3TB1 @@ -315,7 +320,6 @@ public enum class InstanceClass( software.amazon.awscdk.services.ec2.InstanceClass.HIGH_MEMORY_24TB_1 -> InstanceClass.HIGH_MEMORY_24TB_1 software.amazon.awscdk.services.ec2.InstanceClass.U_24TB1 -> InstanceClass.U_24TB1 - software.amazon.awscdk.services.ec2.InstanceClass.R5AD -> InstanceClass.R5AD software.amazon.awscdk.services.ec2.InstanceClass.MEMORY5_EBS_OPTIMIZED -> InstanceClass.MEMORY5_EBS_OPTIMIZED software.amazon.awscdk.services.ec2.InstanceClass.R5B -> InstanceClass.R5B @@ -398,9 +402,13 @@ public enum class InstanceClass( software.amazon.awscdk.services.ec2.InstanceClass.D3EN -> InstanceClass.D3EN software.amazon.awscdk.services.ec2.InstanceClass.STORAGE_COMPUTE_1 -> InstanceClass.STORAGE_COMPUTE_1 + software.amazon.awscdk.services.ec2.InstanceClass.H1 -> InstanceClass.H1 + software.amazon.awscdk.services.ec2.InstanceClass.TRAINING_ACCELERATOR1 -> + InstanceClass.TRAINING_ACCELERATOR1 software.amazon.awscdk.services.ec2.InstanceClass.TRN1 -> InstanceClass.TRN1 + software.amazon.awscdk.services.ec2.InstanceClass.TRAINING_ACCELERATOR1_ENHANCED_NETWORK -> + InstanceClass.TRAINING_ACCELERATOR1_ENHANCED_NETWORK software.amazon.awscdk.services.ec2.InstanceClass.TRN1N -> InstanceClass.TRN1N - software.amazon.awscdk.services.ec2.InstanceClass.H1 -> InstanceClass.H1 software.amazon.awscdk.services.ec2.InstanceClass.IO3 -> InstanceClass.IO3 software.amazon.awscdk.services.ec2.InstanceClass.I3 -> InstanceClass.I3 software.amazon.awscdk.services.ec2.InstanceClass.IO3_DENSE_NVME_DRIVE -> @@ -551,6 +559,9 @@ public enum class InstanceClass( software.amazon.awscdk.services.ec2.InstanceClass.DEEP_LEARNING1 -> InstanceClass.DEEP_LEARNING1 software.amazon.awscdk.services.ec2.InstanceClass.DL1 -> InstanceClass.DL1 + software.amazon.awscdk.services.ec2.InstanceClass.DEEP_LEARNING2_QUALCOMM -> + InstanceClass.DEEP_LEARNING2_QUALCOMM + software.amazon.awscdk.services.ec2.InstanceClass.DL2Q -> InstanceClass.DL2Q } internal fun unwrap(wrapped: InstanceClass): software.amazon.awscdk.services.ec2.InstanceClass = diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/InterfaceVpcEndpointAwsService.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/InterfaceVpcEndpointAwsService.kt index afd66d2315..ba42a10f42 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/InterfaceVpcEndpointAwsService.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/InterfaceVpcEndpointAwsService.kt @@ -2,10 +2,12 @@ package io.cloudshiftdev.awscdk.services.ec2 +import io.cloudshiftdev.awscdk.common.CdkDslMarker import io.cloudshiftdev.awscdk.common.CdkObject import kotlin.Boolean import kotlin.Number import kotlin.String +import kotlin.Unit /** * An AWS service for an interface VPC endpoint. @@ -55,6 +57,23 @@ public open class InterfaceVpcEndpointAwsService( ) : this(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService(name, prefix, port) ) + public constructor( + name: String, + prefix: String, + port: Number, + props: InterfaceVpcEndpointAwsServiceProps, + ) : this(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService(name, prefix, port, + props.let(InterfaceVpcEndpointAwsServiceProps::unwrap)) + ) + + public constructor( + name: String, + prefix: String, + port: Number, + props: InterfaceVpcEndpointAwsServiceProps.Builder.() -> Unit, + ) : this(name, prefix, port, InterfaceVpcEndpointAwsServiceProps(props) + ) + /** * The name of the service. * @@ -79,6 +98,50 @@ public open class InterfaceVpcEndpointAwsService( */ public open fun shortName(): String = unwrap(this).getShortName() + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.ec2.InterfaceVpcEndpointAwsService]. + */ + @CdkDslMarker + public interface Builder { + /** + * If true, the service is a global endpoint and its name will not be prefixed with the stack's + * region. + * + * Default: false + * + * @param global If true, the service is a global endpoint and its name will not be prefixed + * with the stack's region. + */ + public fun global(global: Boolean) + } + + private class BuilderImpl( + name: String, + prefix: String, + port: Number, + ) : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.Builder = + software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.Builder.create(name, + prefix, port) + + /** + * If true, the service is a global endpoint and its name will not be prefixed with the stack's + * region. + * + * Default: false + * + * @param global If true, the service is a global endpoint and its name will not be prefixed + * with the stack's region. + */ + override fun global(global: Boolean) { + cdkBuilder.global(global) + } + + public fun build(): software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService = + cdkBuilder.build() + } + public companion object { public val ACCESS_ANALYZER: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.ACCESS_ANALYZER) @@ -101,6 +164,12 @@ public open class InterfaceVpcEndpointAwsService( public val APP_MESH: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.APP_MESH) + public val APP_MESH_ENVOY_MANAGEMENT: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.APP_MESH_ENVOY_MANAGEMENT) + + public val APP_MESH_OPS: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.APP_MESH_OPS) + public val APP_RUNNER: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.APP_RUNNER) @@ -140,6 +209,9 @@ public open class InterfaceVpcEndpointAwsService( public val AUTOSCALING_PLANS: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.AUTOSCALING_PLANS) + public val B2_B_DATA_INTERCHANGE: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.B2_B_DATA_INTERCHANGE) + public val BACKUP: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.BACKUP) @@ -149,12 +221,27 @@ public open class InterfaceVpcEndpointAwsService( public val BATCH: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.BATCH) + public val BEDROCK: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.BEDROCK) + + public val BEDROCK_AGENT: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.BEDROCK_AGENT) + + public val BEDROCK_AGENT_RUNTIME: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.BEDROCK_AGENT_RUNTIME) + + public val BEDROCK_RUNTIME: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.BEDROCK_RUNTIME) + public val BILLING_CONDUCTOR: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.BILLING_CONDUCTOR) public val BRAKET: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.BRAKET) + public val CLEAN_ROOMS: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.CLEAN_ROOMS) + public val CLOUD_CONTROL_API: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.CLOUD_CONTROL_API) @@ -164,6 +251,18 @@ public open class InterfaceVpcEndpointAwsService( public val CLOUD_DIRECTORY: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.CLOUD_DIRECTORY) + public val CLOUD_MAP_DATA_SERVICE_DISCOVERY: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.CLOUD_MAP_DATA_SERVICE_DISCOVERY) + + public val CLOUD_MAP_DATA_SERVICE_DISCOVERY_FIPS: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.CLOUD_MAP_DATA_SERVICE_DISCOVERY_FIPS) + + public val CLOUD_MAP_SERVICE_DISCOVERY: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.CLOUD_MAP_SERVICE_DISCOVERY) + + public val CLOUD_MAP_SERVICE_DISCOVERY_FIPS: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.CLOUD_MAP_SERVICE_DISCOVERY_FIPS) + public val CLOUDFORMATION: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.CLOUDFORMATION) @@ -191,6 +290,9 @@ public open class InterfaceVpcEndpointAwsService( public val CLOUDWATCH_MONITORING: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.CLOUDWATCH_MONITORING) + public val CLOUDWATCH_NETWORK_MONITOR: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.CLOUDWATCH_NETWORK_MONITOR) + public val CLOUDWATCH_RUM: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.CLOUDWATCH_RUM) @@ -212,6 +314,15 @@ public open class InterfaceVpcEndpointAwsService( public val CODEBUILD_FIPS: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.CODEBUILD_FIPS) + public val CODECATALYST: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.CODECATALYST) + + public val CODECATALYST_GIT: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.CODECATALYST_GIT) + + public val CODECATALYST_PACKAGES: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.CODECATALYST_PACKAGES) + public val CODECOMMIT: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.CODECOMMIT) @@ -242,6 +353,9 @@ public open class InterfaceVpcEndpointAwsService( public val CODESTAR_CONNECTIONS: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.CODESTAR_CONNECTIONS) + public val CODEWHISPERER: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.CODEWHISPERER) + public val COMPREHEND: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.COMPREHEND) @@ -281,9 +395,15 @@ public open class InterfaceVpcEndpointAwsService( public val DATASYNC: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.DATASYNC) + public val DATAZONE: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.DATAZONE) + public val DEVOPS_GURU: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.DEVOPS_GURU) + public val DIRECTORY_SERVICE: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.DIRECTORY_SERVICE) + public val EBS_DIRECT: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.EBS_DIRECT) @@ -311,6 +431,9 @@ public open class InterfaceVpcEndpointAwsService( public val EKS: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.EKS) + public val EKS_AUTH: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.EKS_AUTH) + public val ELASTIC_BEANSTALK: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.ELASTIC_BEANSTALK) @@ -338,6 +461,9 @@ public open class InterfaceVpcEndpointAwsService( public val ELASTICACHE_FIPS: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.ELASTICACHE_FIPS) + public val ELEMENTAL_MEDIACONNECT: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.ELEMENTAL_MEDIACONNECT) + public val EMAIL_SMTP: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.EMAIL_SMTP) @@ -350,6 +476,12 @@ public open class InterfaceVpcEndpointAwsService( public val EMR_SERVERLESS: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.EMR_SERVERLESS) + public val EMR_WAL: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.EMR_WAL) + + public val ENTITY_RESOLUTION: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.ENTITY_RESOLUTION) + public val EVENTBRIDGE: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.EVENTBRIDGE) @@ -398,6 +530,18 @@ public open class InterfaceVpcEndpointAwsService( public val GROUNDSTATION: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.GROUNDSTATION) + public val GUARDDUTY_DATA: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.GUARDDUTY_DATA) + + public val GUARDDUTY_DATA_FIPS: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.GUARDDUTY_DATA_FIPS) + + public val HEALTH_IMAGING: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.HEALTH_IMAGING) + + public val HEALTH_IMAGING_RUNTIME: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.HEALTH_IMAGING_RUNTIME) + public val HEALTHLAKE: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.HEALTHLAKE) @@ -413,15 +557,27 @@ public open class InterfaceVpcEndpointAwsService( public val INSPECTOR: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.INSPECTOR) + public val INSPECTOR_SCAN: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.INSPECTOR_SCAN) + public val IOT_CORE: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.IOT_CORE) + public val IOT_CORE_CREDENTIALS: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.IOT_CORE_CREDENTIALS) + public val IOT_CORE_DEVICE_ADVISOR: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.IOT_CORE_DEVICE_ADVISOR) + public val IOT_CORE_FLEETHUB_API: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.IOT_CORE_FLEETHUB_API) + public val IOT_CORE_FOR_LORAWAN: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.IOT_CORE_FOR_LORAWAN) + public val IOT_FLEETWISE: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.IOT_FLEETWISE) + public val IOT_GREENGRASS: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.IOT_GREENGRASS) @@ -488,6 +644,9 @@ public open class InterfaceVpcEndpointAwsService( public val LICENSE_MANAGER_FIPS: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.LICENSE_MANAGER_FIPS) + public val LICENSE_MANAGER_USER_SUBSCRIPTIONS: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.LICENSE_MANAGER_USER_SUBSCRIPTIONS) + public val LOOKOUT_EQUIPMENT: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.LOOKOUT_EQUIPMENT) @@ -503,6 +662,21 @@ public open class InterfaceVpcEndpointAwsService( public val MAINFRAME_MODERNIZATION: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.MAINFRAME_MODERNIZATION) + public val MANAGED_BLOCKCHAIN_BITCOIN_MAINNET: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.MANAGED_BLOCKCHAIN_BITCOIN_MAINNET) + + public val MANAGED_BLOCKCHAIN_BITCOIN_TESTNET: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.MANAGED_BLOCKCHAIN_BITCOIN_TESTNET) + + public val MANAGED_BLOCKCHAIN_QUERY: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.MANAGED_BLOCKCHAIN_QUERY) + + public val MANAGEMENT_CONSOLE: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.MANAGEMENT_CONSOLE) + + public val MANAGEMENT_CONSOLE_SIGNIN: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.MANAGEMENT_CONSOLE_SIGNIN) + public val MEMORY_DB: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.MEMORY_DB) @@ -518,6 +692,9 @@ public open class InterfaceVpcEndpointAwsService( public val MIGRATIONHUB_STRATEGY: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.MIGRATIONHUB_STRATEGY) + public val NEPTUNE_ANALYTICS: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.NEPTUNE_ANALYTICS) + public val NIMBLE_STUDIO: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.NIMBLE_STUDIO) @@ -536,12 +713,39 @@ public open class InterfaceVpcEndpointAwsService( public val OMICS_WORKFLOWS: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.OMICS_WORKFLOWS) + public val ORGANIZATIONS: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.ORGANIZATIONS) + + public val ORGANIZATIONS_FIPS: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.ORGANIZATIONS_FIPS) + public val PANORAMA: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.PANORAMA) + public val PAYMENT_CRYPTOGRAPHY_CONTROLPLANE: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.PAYMENT_CRYPTOGRAPHY_CONTROLPLANE) + + public val PAYMENT_CRYTOGRAPHY_DATAPLANE: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.PAYMENT_CRYTOGRAPHY_DATAPLANE) + + public val PERSONALIZE: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.PERSONALIZE) + + public val PERSONALIZE_EVENTS: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.PERSONALIZE_EVENTS) + + public val PERSONALIZE_RUNTIME: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.PERSONALIZE_RUNTIME) + public val PINPOINT: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.PINPOINT) + public val PINPOINT_SMS_VOICE_V2: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.PINPOINT_SMS_VOICE_V2) + + public val PINPOINT_V1: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.PINPOINT_V1) + public val POLLY: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.POLLY) @@ -551,6 +755,9 @@ public open class InterfaceVpcEndpointAwsService( public val PRIVATE_CERTIFICATE_AUTHORITY: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.PRIVATE_CERTIFICATE_AUTHORITY) + public val PRIVATE_CERTIFICATE_AUTHORITY_CONNECTOR_AD: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.PRIVATE_CERTIFICATE_AUTHORITY_CONNECTOR_AD) + public val PROMETHEUS: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.PROMETHEUS) @@ -584,6 +791,15 @@ public open class InterfaceVpcEndpointAwsService( public val REKOGNITION_FIPS: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.REKOGNITION_FIPS) + public val REKOGNITION_STREAMING: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.REKOGNITION_STREAMING) + + public val REKOGNITION_STREAMING_FIPS: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.REKOGNITION_STREAMING_FIPS) + + public val REPOST_SPACE: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.REPOST_SPACE) + public val ROBOMAKER: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.ROBOMAKER) @@ -602,6 +818,9 @@ public open class InterfaceVpcEndpointAwsService( public val SAGEMAKER_FEATURESTORE_RUNTIME: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.SAGEMAKER_FEATURESTORE_RUNTIME) + public val SAGEMAKER_GEOSPATIAL: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.SAGEMAKER_GEOSPATIAL) + public val SAGEMAKER_METRICS: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.SAGEMAKER_METRICS) @@ -641,6 +860,9 @@ public open class InterfaceVpcEndpointAwsService( public val SES: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.SES) + public val SIMSPACE_WEAVER: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.SIMSPACE_WEAVER) + public val SNOW_DEVICE_MANAGEMENT: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.SNOW_DEVICE_MANAGEMENT) @@ -674,12 +896,27 @@ public open class InterfaceVpcEndpointAwsService( public val STS: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.STS) + public val SUPPLY_CHAIN: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.SUPPLY_CHAIN) + + public val SWF: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.SWF) + + public val SWF_FIPS: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.SWF_FIPS) + + public val TELCO_NETWORK_BUILDER: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.TELCO_NETWORK_BUILDER) + public val TEXTRACT: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.TEXTRACT) public val TEXTRACT_FIPS: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.TEXTRACT_FIPS) + public val TIMESTREAM_INFLUXDB: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.TIMESTREAM_INFLUXDB) + public val TRANSCRIBE: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.TRANSCRIBE) @@ -695,15 +932,34 @@ public open class InterfaceVpcEndpointAwsService( public val TRANSLATE: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.TRANSLATE) + public val TRUSTED_ADVISOR: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.TRUSTED_ADVISOR) + public val VERIFIED_PERMISSIONS: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.VERIFIED_PERMISSIONS) + public val VPC_LATTICE: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.VPC_LATTICE) + public val WORKSPACES: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.WORKSPACES) + public val WORKSPACES_THIN_CLIENT: InterfaceVpcEndpointAwsService = + InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.WORKSPACES_THIN_CLIENT) + public val XRAY: InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService.wrap(software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService.XRAY) + public operator fun invoke( + name: String, + prefix: String, + port: Number, + block: Builder.() -> Unit = {}, + ): InterfaceVpcEndpointAwsService { + val builderImpl = BuilderImpl(name, prefix, port) + return InterfaceVpcEndpointAwsService(builderImpl.apply(block).build()) + } + internal fun wrap(cdkObject: software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsService): InterfaceVpcEndpointAwsService = InterfaceVpcEndpointAwsService(cdkObject) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/InterfaceVpcEndpointAwsServiceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/InterfaceVpcEndpointAwsServiceProps.kt new file mode 100644 index 0000000000..2bb6f71331 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/InterfaceVpcEndpointAwsServiceProps.kt @@ -0,0 +1,93 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.ec2 + +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Boolean +import kotlin.Unit + +/** + * Optional properties for the InterfaceVpcEndpointAwsService class. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.ec2.*; + * InterfaceVpcEndpointAwsServiceProps interfaceVpcEndpointAwsServiceProps = + * InterfaceVpcEndpointAwsServiceProps.builder() + * .global(false) + * .build(); + * ``` + */ +public interface InterfaceVpcEndpointAwsServiceProps { + /** + * If true, the service is a global endpoint and its name will not be prefixed with the stack's + * region. + * + * Default: false + */ + public fun global(): Boolean? = unwrap(this).getGlobal() + + /** + * A builder for [InterfaceVpcEndpointAwsServiceProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param global If true, the service is a global endpoint and its name will not be prefixed + * with the stack's region. + */ + public fun global(global: Boolean) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsServiceProps.Builder = + software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsServiceProps.builder() + + /** + * @param global If true, the service is a global endpoint and its name will not be prefixed + * with the stack's region. + */ + override fun global(global: Boolean) { + cdkBuilder.global(global) + } + + public fun build(): software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsServiceProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsServiceProps, + ) : CdkObject(cdkObject), InterfaceVpcEndpointAwsServiceProps { + /** + * If true, the service is a global endpoint and its name will not be prefixed with the stack's + * region. + * + * Default: false + */ + override fun global(): Boolean? = unwrap(this).getGlobal() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): + InterfaceVpcEndpointAwsServiceProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsServiceProps): + InterfaceVpcEndpointAwsServiceProps = CdkObjectWrappers.wrap(cdkObject) as? + InterfaceVpcEndpointAwsServiceProps ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: InterfaceVpcEndpointAwsServiceProps): + software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsServiceProps = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.ec2.InterfaceVpcEndpointAwsServiceProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/NatInstanceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/NatInstanceProps.kt index 45ee8348d1..981a7fb4c6 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/NatInstanceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/NatInstanceProps.kt @@ -15,14 +15,15 @@ import kotlin.Unit * Example: * * ``` - * NatInstanceProvider natInstanceProvider = NatProvider.instance(NatInstanceProps.builder() - * .instanceType(InstanceType.of(InstanceClass.T4G, InstanceSize.LARGE)) - * .machineImage(new AmazonLinuxImage()) - * .creditSpecification(CpuCredits.UNLIMITED) + * InstanceType instanceType; + * NatInstanceProviderV2 provider = NatProvider.instanceV2(NatInstanceProps.builder() + * .instanceType(instanceType) + * .defaultAllowedTraffic(NatTrafficDirection.OUTBOUND_ONLY) * .build()); - * Vpc.Builder.create(this, "VPC") - * .natGatewayProvider(natInstanceProvider) + * Vpc.Builder.create(this, "TheVPC") + * .natGatewayProvider(provider) * .build(); + * provider.connections.allowFrom(Peer.ipv4("1.2.3.4/8"), Port.HTTP); * ``` */ public interface NatInstanceProps { @@ -97,13 +98,49 @@ public interface NatInstanceProps { unwrap(this).getMachineImage()?.let(IMachineImage::wrap) /** - * Security Group for NAT instances. + * (deprecated) Security Group for NAT instances. * * Default: - A new security group will be created + * + * Example: + * + * ``` + * NatInstanceProviderV2 natGatewayProvider = NatProvider.instanceV2(NatInstanceProps.builder() + * .instanceType(new InstanceType("t3.small")) + * .defaultAllowedTraffic(NatTrafficDirection.NONE) + * .build()); + * Vpc vpc = Vpc.Builder.create(this, "Vpc").natGatewayProvider(natGatewayProvider).build(); + * SecurityGroup securityGroup = SecurityGroup.Builder.create(this, "SecurityGroup") + * .vpc(vpc) + * .allowAllOutbound(false) + * .build(); + * securityGroup.addEgressRule(Peer.anyIpv4(), Port.tcp(443)); + * for (Object gatewayInstance : natGatewayProvider.getGatewayInstances()) { + * gatewayInstance.addSecurityGroup(securityGroup); + * } + * ``` + * + * @deprecated - Cannot create a new security group before the VPC is created, + * and cannot create the VPC without the NAT provider. + * Set [defaultAllowedTraffic ] to [NatTrafficDirection.NONE ] + * and use [NatInstanceProviderV2.gatewayInstances ] to retrieve + * the instances on the fly and add security groups */ + @Deprecated(message = "deprecated in CDK") public fun securityGroup(): ISecurityGroup? = unwrap(this).getSecurityGroup()?.let(ISecurityGroup::wrap) + /** + * Custom user data to run on the NAT instances. + * + * Default: + * UserData.forLinux().addCommands(...NatInstanceProviderV2.DEFAULT_USER_DATA_COMMANDS); - + * Appropriate user data commands to initialize and configure the NAT instances + * + * [Documentation](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_NAT_Instance.html#create-nat-ami) + */ + public fun userData(): UserData? = unwrap(this).getUserData()?.let(UserData::wrap) + /** * A builder for [NatInstanceProps] */ @@ -166,8 +203,19 @@ public interface NatInstanceProps { /** * @param securityGroup Security Group for NAT instances. + * @deprecated - Cannot create a new security group before the VPC is created, + * and cannot create the VPC without the NAT provider. + * Set [defaultAllowedTraffic ] to [NatTrafficDirection.NONE ] + * and use [NatInstanceProviderV2.gatewayInstances ] to retrieve + * the instances on the fly and add security groups */ + @Deprecated(message = "deprecated in CDK") public fun securityGroup(securityGroup: ISecurityGroup) + + /** + * @param userData Custom user data to run on the NAT instances. + */ + public fun userData(userData: UserData) } private class BuilderImpl : Builder { @@ -243,11 +291,24 @@ public interface NatInstanceProps { /** * @param securityGroup Security Group for NAT instances. + * @deprecated - Cannot create a new security group before the VPC is created, + * and cannot create the VPC without the NAT provider. + * Set [defaultAllowedTraffic ] to [NatTrafficDirection.NONE ] + * and use [NatInstanceProviderV2.gatewayInstances ] to retrieve + * the instances on the fly and add security groups */ + @Deprecated(message = "deprecated in CDK") override fun securityGroup(securityGroup: ISecurityGroup) { cdkBuilder.securityGroup(securityGroup.let(ISecurityGroup::unwrap)) } + /** + * @param userData Custom user data to run on the NAT instances. + */ + override fun userData(userData: UserData) { + cdkBuilder.userData(userData.let(UserData::unwrap)) + } + public fun build(): software.amazon.awscdk.services.ec2.NatInstanceProps = cdkBuilder.build() } @@ -326,12 +387,48 @@ public interface NatInstanceProps { unwrap(this).getMachineImage()?.let(IMachineImage::wrap) /** - * Security Group for NAT instances. + * (deprecated) Security Group for NAT instances. * * Default: - A new security group will be created + * + * Example: + * + * ``` + * NatInstanceProviderV2 natGatewayProvider = NatProvider.instanceV2(NatInstanceProps.builder() + * .instanceType(new InstanceType("t3.small")) + * .defaultAllowedTraffic(NatTrafficDirection.NONE) + * .build()); + * Vpc vpc = Vpc.Builder.create(this, "Vpc").natGatewayProvider(natGatewayProvider).build(); + * SecurityGroup securityGroup = SecurityGroup.Builder.create(this, "SecurityGroup") + * .vpc(vpc) + * .allowAllOutbound(false) + * .build(); + * securityGroup.addEgressRule(Peer.anyIpv4(), Port.tcp(443)); + * for (Object gatewayInstance : natGatewayProvider.getGatewayInstances()) { + * gatewayInstance.addSecurityGroup(securityGroup); + * } + * ``` + * + * @deprecated - Cannot create a new security group before the VPC is created, + * and cannot create the VPC without the NAT provider. + * Set [defaultAllowedTraffic ] to [NatTrafficDirection.NONE ] + * and use [NatInstanceProviderV2.gatewayInstances ] to retrieve + * the instances on the fly and add security groups */ + @Deprecated(message = "deprecated in CDK") override fun securityGroup(): ISecurityGroup? = unwrap(this).getSecurityGroup()?.let(ISecurityGroup::wrap) + + /** + * Custom user data to run on the NAT instances. + * + * Default: + * UserData.forLinux().addCommands(...NatInstanceProviderV2.DEFAULT_USER_DATA_COMMANDS); - + * Appropriate user data commands to initialize and configure the NAT instances + * + * [Documentation](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_NAT_Instance.html#create-nat-ami) + */ + override fun userData(): UserData? = unwrap(this).getUserData()?.let(UserData::wrap) } public companion object { diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/NatInstanceProvider.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/NatInstanceProvider.kt index 1986d38294..e28928cecd 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/NatInstanceProvider.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/NatInstanceProvider.kt @@ -185,13 +185,49 @@ public open class NatInstanceProvider( public fun machineImage(machineImage: IMachineImage) /** - * Security Group for NAT instances. + * (deprecated) Security Group for NAT instances. * * Default: - A new security group will be created * + * Example: + * + * ``` + * NatInstanceProviderV2 natGatewayProvider = NatProvider.instanceV2(NatInstanceProps.builder() + * .instanceType(new InstanceType("t3.small")) + * .defaultAllowedTraffic(NatTrafficDirection.NONE) + * .build()); + * Vpc vpc = Vpc.Builder.create(this, "Vpc").natGatewayProvider(natGatewayProvider).build(); + * SecurityGroup securityGroup = SecurityGroup.Builder.create(this, "SecurityGroup") + * .vpc(vpc) + * .allowAllOutbound(false) + * .build(); + * securityGroup.addEgressRule(Peer.anyIpv4(), Port.tcp(443)); + * for (Object gatewayInstance : natGatewayProvider.getGatewayInstances()) { + * gatewayInstance.addSecurityGroup(securityGroup); + * } + * ``` + * + * @deprecated - Cannot create a new security group before the VPC is created, + * and cannot create the VPC without the NAT provider. + * Set [defaultAllowedTraffic ] to [NatTrafficDirection.NONE ] + * and use [NatInstanceProviderV2.gatewayInstances ] to retrieve + * the instances on the fly and add security groups * @param securityGroup Security Group for NAT instances. */ + @Deprecated(message = "deprecated in CDK") public fun securityGroup(securityGroup: ISecurityGroup) + + /** + * Custom user data to run on the NAT instances. + * + * Default: + * UserData.forLinux().addCommands(...NatInstanceProviderV2.DEFAULT_USER_DATA_COMMANDS); - + * Appropriate user data commands to initialize and configure the NAT instances + * + * [Documentation](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_NAT_Instance.html#create-nat-ami) + * @param userData Custom user data to run on the NAT instances. + */ + public fun userData(userData: UserData) } private class BuilderImpl : Builder { @@ -291,16 +327,54 @@ public open class NatInstanceProvider( } /** - * Security Group for NAT instances. + * (deprecated) Security Group for NAT instances. * * Default: - A new security group will be created * + * Example: + * + * ``` + * NatInstanceProviderV2 natGatewayProvider = NatProvider.instanceV2(NatInstanceProps.builder() + * .instanceType(new InstanceType("t3.small")) + * .defaultAllowedTraffic(NatTrafficDirection.NONE) + * .build()); + * Vpc vpc = Vpc.Builder.create(this, "Vpc").natGatewayProvider(natGatewayProvider).build(); + * SecurityGroup securityGroup = SecurityGroup.Builder.create(this, "SecurityGroup") + * .vpc(vpc) + * .allowAllOutbound(false) + * .build(); + * securityGroup.addEgressRule(Peer.anyIpv4(), Port.tcp(443)); + * for (Object gatewayInstance : natGatewayProvider.getGatewayInstances()) { + * gatewayInstance.addSecurityGroup(securityGroup); + * } + * ``` + * + * @deprecated - Cannot create a new security group before the VPC is created, + * and cannot create the VPC without the NAT provider. + * Set [defaultAllowedTraffic ] to [NatTrafficDirection.NONE ] + * and use [NatInstanceProviderV2.gatewayInstances ] to retrieve + * the instances on the fly and add security groups * @param securityGroup Security Group for NAT instances. */ + @Deprecated(message = "deprecated in CDK") override fun securityGroup(securityGroup: ISecurityGroup) { cdkBuilder.securityGroup(securityGroup.let(ISecurityGroup::unwrap)) } + /** + * Custom user data to run on the NAT instances. + * + * Default: + * UserData.forLinux().addCommands(...NatInstanceProviderV2.DEFAULT_USER_DATA_COMMANDS); - + * Appropriate user data commands to initialize and configure the NAT instances + * + * [Documentation](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_NAT_Instance.html#create-nat-ami) + * @param userData Custom user data to run on the NAT instances. + */ + override fun userData(userData: UserData) { + cdkBuilder.userData(userData.let(UserData::unwrap)) + } + public fun build(): software.amazon.awscdk.services.ec2.NatInstanceProvider = cdkBuilder.build() } diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/NatInstanceProviderV2.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/NatInstanceProviderV2.kt index a2ce1782a0..5fc060aed3 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/NatInstanceProviderV2.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/NatInstanceProviderV2.kt @@ -17,15 +17,19 @@ import kotlin.jvm.JvmName * Example: * * ``` - * InstanceType instanceType; - * NatInstanceProviderV2 provider = NatProvider.instanceV2(NatInstanceProps.builder() - * .instanceType(instanceType) - * .defaultAllowedTraffic(NatTrafficDirection.OUTBOUND_ONLY) + * NatInstanceProviderV2 natGatewayProvider = NatProvider.instanceV2(NatInstanceProps.builder() + * .instanceType(new InstanceType("t3.small")) + * .defaultAllowedTraffic(NatTrafficDirection.NONE) * .build()); - * Vpc.Builder.create(this, "TheVPC") - * .natGatewayProvider(provider) + * Vpc vpc = Vpc.Builder.create(this, "Vpc").natGatewayProvider(natGatewayProvider).build(); + * SecurityGroup securityGroup = SecurityGroup.Builder.create(this, "SecurityGroup") + * .vpc(vpc) + * .allowAllOutbound(false) * .build(); - * provider.connections.allowFrom(Peer.ipv4("1.2.3.4/8"), Port.tcp(80)); + * securityGroup.addEgressRule(Peer.anyIpv4(), Port.tcp(443)); + * for (Object gatewayInstance : natGatewayProvider.getGatewayInstances()) { + * gatewayInstance.addSecurityGroup(securityGroup); + * } * ``` */ public open class NatInstanceProviderV2( @@ -84,6 +88,12 @@ public open class NatInstanceProviderV2( public override fun connections(): Connections = unwrap(this).getConnections().let(Connections::wrap) + /** + * Array of gateway instances spawned by the provider after internal configuration. + */ + public open fun gatewayInstances(): List = + unwrap(this).getGatewayInstances().map(Instance::wrap) + /** * The Security Group associated with the NAT instances. */ @@ -176,13 +186,49 @@ public open class NatInstanceProviderV2( public fun machineImage(machineImage: IMachineImage) /** - * Security Group for NAT instances. + * (deprecated) Security Group for NAT instances. * * Default: - A new security group will be created * + * Example: + * + * ``` + * NatInstanceProviderV2 natGatewayProvider = NatProvider.instanceV2(NatInstanceProps.builder() + * .instanceType(new InstanceType("t3.small")) + * .defaultAllowedTraffic(NatTrafficDirection.NONE) + * .build()); + * Vpc vpc = Vpc.Builder.create(this, "Vpc").natGatewayProvider(natGatewayProvider).build(); + * SecurityGroup securityGroup = SecurityGroup.Builder.create(this, "SecurityGroup") + * .vpc(vpc) + * .allowAllOutbound(false) + * .build(); + * securityGroup.addEgressRule(Peer.anyIpv4(), Port.tcp(443)); + * for (Object gatewayInstance : natGatewayProvider.getGatewayInstances()) { + * gatewayInstance.addSecurityGroup(securityGroup); + * } + * ``` + * + * @deprecated - Cannot create a new security group before the VPC is created, + * and cannot create the VPC without the NAT provider. + * Set [defaultAllowedTraffic ] to [NatTrafficDirection.NONE ] + * and use [NatInstanceProviderV2.gatewayInstances ] to retrieve + * the instances on the fly and add security groups * @param securityGroup Security Group for NAT instances. */ + @Deprecated(message = "deprecated in CDK") public fun securityGroup(securityGroup: ISecurityGroup) + + /** + * Custom user data to run on the NAT instances. + * + * Default: + * UserData.forLinux().addCommands(...NatInstanceProviderV2.DEFAULT_USER_DATA_COMMANDS); - + * Appropriate user data commands to initialize and configure the NAT instances + * + * [Documentation](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_NAT_Instance.html#create-nat-ami) + * @param userData Custom user data to run on the NAT instances. + */ + public fun userData(userData: UserData) } private class BuilderImpl : Builder { @@ -282,21 +328,62 @@ public open class NatInstanceProviderV2( } /** - * Security Group for NAT instances. + * (deprecated) Security Group for NAT instances. * * Default: - A new security group will be created * + * Example: + * + * ``` + * NatInstanceProviderV2 natGatewayProvider = NatProvider.instanceV2(NatInstanceProps.builder() + * .instanceType(new InstanceType("t3.small")) + * .defaultAllowedTraffic(NatTrafficDirection.NONE) + * .build()); + * Vpc vpc = Vpc.Builder.create(this, "Vpc").natGatewayProvider(natGatewayProvider).build(); + * SecurityGroup securityGroup = SecurityGroup.Builder.create(this, "SecurityGroup") + * .vpc(vpc) + * .allowAllOutbound(false) + * .build(); + * securityGroup.addEgressRule(Peer.anyIpv4(), Port.tcp(443)); + * for (Object gatewayInstance : natGatewayProvider.getGatewayInstances()) { + * gatewayInstance.addSecurityGroup(securityGroup); + * } + * ``` + * + * @deprecated - Cannot create a new security group before the VPC is created, + * and cannot create the VPC without the NAT provider. + * Set [defaultAllowedTraffic ] to [NatTrafficDirection.NONE ] + * and use [NatInstanceProviderV2.gatewayInstances ] to retrieve + * the instances on the fly and add security groups * @param securityGroup Security Group for NAT instances. */ + @Deprecated(message = "deprecated in CDK") override fun securityGroup(securityGroup: ISecurityGroup) { cdkBuilder.securityGroup(securityGroup.let(ISecurityGroup::unwrap)) } + /** + * Custom user data to run on the NAT instances. + * + * Default: + * UserData.forLinux().addCommands(...NatInstanceProviderV2.DEFAULT_USER_DATA_COMMANDS); - + * Appropriate user data commands to initialize and configure the NAT instances + * + * [Documentation](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_NAT_Instance.html#create-nat-ami) + * @param userData Custom user data to run on the NAT instances. + */ + override fun userData(userData: UserData) { + cdkBuilder.userData(userData.let(UserData::unwrap)) + } + public fun build(): software.amazon.awscdk.services.ec2.NatInstanceProviderV2 = cdkBuilder.build() } public companion object { + public val DEFAULT_USER_DATA_COMMANDS: List = + software.amazon.awscdk.services.ec2.NatInstanceProviderV2.DEFAULT_USER_DATA_COMMANDS + public operator fun invoke(block: Builder.() -> Unit = {}): NatInstanceProviderV2 { val builderImpl = BuilderImpl() return NatInstanceProviderV2(builderImpl.apply(block).build()) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/NatProvider.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/NatProvider.kt index 719c734487..d3374c6743 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/NatProvider.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/NatProvider.kt @@ -26,7 +26,7 @@ import kotlin.jvm.JvmName * Vpc.Builder.create(this, "TheVPC") * .natGatewayProvider(provider) * .build(); - * provider.connections.allowFrom(Peer.ipv4("1.2.3.4/8"), Port.tcp(80)); + * provider.connections.allowFrom(Peer.ipv4("1.2.3.4/8"), Port.HTTP); * ``` */ public abstract class NatProvider( diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/Peer.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/Peer.kt index ce356b68c0..77946822e0 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/Peer.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/Peer.kt @@ -21,15 +21,14 @@ import kotlin.String * Example: * * ``` - * InstanceType instanceType; - * NatInstanceProviderV2 provider = NatProvider.instanceV2(NatInstanceProps.builder() - * .instanceType(instanceType) - * .defaultAllowedTraffic(NatTrafficDirection.OUTBOUND_ONLY) - * .build()); - * Vpc.Builder.create(this, "TheVPC") - * .natGatewayProvider(provider) + * Vpc vpc; + * Cluster cluster = Cluster.Builder.create(this, "Cluster") + * .clusterName("myCluster") + * .kafkaVersion(KafkaVersion.V2_8_1) + * .vpc(vpc) * .build(); - * provider.connections.allowFrom(Peer.ipv4("1.2.3.4/8"), Port.tcp(80)); + * cluster.connections.allowFrom(Peer.ipv4("1.2.3.4/8"), Port.tcp(2181)); + * cluster.connections.allowFrom(Peer.ipv4("1.2.3.4/8"), Port.tcp(9094)); * ``` */ public open class Peer( diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/Port.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/Port.kt index c9136a352c..376bf96ab4 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/Port.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/Port.kt @@ -24,7 +24,7 @@ import kotlin.Unit * Vpc.Builder.create(this, "TheVPC") * .natGatewayProvider(provider) * .build(); - * provider.connections.allowFrom(Peer.ipv4("1.2.3.4/8"), Port.tcp(80)); + * provider.connections.allowFrom(Peer.ipv4("1.2.3.4/8"), Port.HTTP); * ``` */ public open class Port( @@ -133,6 +133,40 @@ public open class Port( } public companion object { + public val DNS_TCP: Port = Port.wrap(software.amazon.awscdk.services.ec2.Port.DNS_TCP) + + public val DNS_UDP: Port = Port.wrap(software.amazon.awscdk.services.ec2.Port.DNS_UDP) + + public val HTTP: Port = Port.wrap(software.amazon.awscdk.services.ec2.Port.HTTP) + + public val HTTPS: Port = Port.wrap(software.amazon.awscdk.services.ec2.Port.HTTPS) + + public val IMAP: Port = Port.wrap(software.amazon.awscdk.services.ec2.Port.IMAP) + + public val IMAPS: Port = Port.wrap(software.amazon.awscdk.services.ec2.Port.IMAPS) + + public val LDAP: Port = Port.wrap(software.amazon.awscdk.services.ec2.Port.LDAP) + + public val MSSQL: Port = Port.wrap(software.amazon.awscdk.services.ec2.Port.MSSQL) + + public val MYSQL_AURORA: Port = Port.wrap(software.amazon.awscdk.services.ec2.Port.MYSQL_AURORA) + + public val NFS: Port = Port.wrap(software.amazon.awscdk.services.ec2.Port.NFS) + + public val POP3: Port = Port.wrap(software.amazon.awscdk.services.ec2.Port.POP3) + + public val POP3_S: Port = Port.wrap(software.amazon.awscdk.services.ec2.Port.POP3_S) + + public val POSTGRES: Port = Port.wrap(software.amazon.awscdk.services.ec2.Port.POSTGRES) + + public val RDP: Port = Port.wrap(software.amazon.awscdk.services.ec2.Port.RDP) + + public val SMB: Port = Port.wrap(software.amazon.awscdk.services.ec2.Port.SMB) + + public val SMTP: Port = Port.wrap(software.amazon.awscdk.services.ec2.Port.SMTP) + + public val SSH: Port = Port.wrap(software.amazon.awscdk.services.ec2.Port.SSH) + public fun ah(): Port = software.amazon.awscdk.services.ec2.Port.ah().let(Port::wrap) public fun allIcmp(): Port = software.amazon.awscdk.services.ec2.Port.allIcmp().let(Port::wrap) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/SecurityGroup.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/SecurityGroup.kt index c20fc06f2e..7790a1cd9d 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/SecurityGroup.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/SecurityGroup.kt @@ -53,16 +53,15 @@ import software.constructs.Construct as SoftwareConstructsConstruct * Example: * * ``` - * SecurityGroup mySecurityGroupWithoutInlineRules = SecurityGroup.Builder.create(this, - * "SecurityGroup") + * Vpc vpc; + * SecurityGroup mySecurityGroup = SecurityGroup.Builder.create(this, + * "SecurityGroup").vpc(vpc).build(); + * AutoScalingGroup.Builder.create(this, "ASG") * .vpc(vpc) - * .description("Allow ssh access to ec2 instances") - * .allowAllOutbound(true) - * .disableInlineRules(true) + * .instanceType(InstanceType.of(InstanceClass.BURSTABLE2, InstanceSize.MICRO)) + * .machineImage(MachineImage.latestAmazonLinux2()) + * .securityGroup(mySecurityGroup) * .build(); - * //This will add the rule as an external cloud formation construct - * mySecurityGroupWithoutInlineRules.addIngressRule(Peer.anyIpv4(), Port.tcp(22), "allow ssh access - * from the world"); * ``` */ public open class SecurityGroup( diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/SecurityGroupProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/SecurityGroupProps.kt index e9056ddc06..474f505a94 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/SecurityGroupProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/SecurityGroupProps.kt @@ -14,16 +14,14 @@ import kotlin.Unit * * ``` * Vpc vpc; - * SecurityGroup securityGroup1 = SecurityGroup.Builder.create(this, - * "SecurityGroup1").vpc(vpc).build(); - * ApplicationLoadBalancer lb = ApplicationLoadBalancer.Builder.create(this, "LB") + * SecurityGroup mySecurityGroup = SecurityGroup.Builder.create(this, + * "SecurityGroup").vpc(vpc).build(); + * AutoScalingGroup.Builder.create(this, "ASG") * .vpc(vpc) - * .internetFacing(true) - * .securityGroup(securityGroup1) + * .instanceType(InstanceType.of(InstanceClass.BURSTABLE2, InstanceSize.MICRO)) + * .machineImage(MachineImage.latestAmazonLinux2()) + * .securityGroup(mySecurityGroup) * .build(); - * SecurityGroup securityGroup2 = SecurityGroup.Builder.create(this, - * "SecurityGroup2").vpc(vpc).build(); - * lb.addSecurityGroup(securityGroup2); * ``` */ public interface SecurityGroupProps { diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/UserData.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/UserData.kt index 62a3c91dce..81661185cf 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/UserData.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/UserData.kt @@ -15,12 +15,23 @@ import kotlin.jvm.JvmName * Example: * * ``` - * MultipartUserData multipartUserData = new MultipartUserData(); - * UserData commandsUserData = UserData.forLinux(); - * multipartUserData.addUserDataPart(commandsUserData, MultipartBody.SHELL_SCRIPT, true); - * // Adding commands to the multipartUserData adds them to commandsUserData, and vice-versa. - * multipartUserData.addCommands("touch /root/multi.txt"); - * commandsUserData.addCommands("touch /root/userdata.txt"); + * Cluster cluster; + * UserData userData = UserData.forLinux(); + * userData.addCommands("set -o xtrace", String.format("/etc/eks/bootstrap.sh %s", + * cluster.getClusterName())); + * CfnLaunchTemplate lt = CfnLaunchTemplate.Builder.create(this, "LaunchTemplate") + * .launchTemplateData(LaunchTemplateDataProperty.builder() + * .imageId("some-ami-id") // custom AMI + * .instanceType("t3.small") + * .userData(Fn.base64(userData.render())) + * .build()) + * .build(); + * cluster.addNodegroupCapacity("extra-ng", NodegroupOptions.builder() + * .launchTemplateSpec(LaunchTemplateSpec.builder() + * .id(lt.getRef()) + * .version(lt.getAttrLatestVersionNumber()) + * .build()) + * .build()); * ``` */ public abstract class UserData( diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/VpcLookupOptions.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/VpcLookupOptions.kt index ba4f90269e..ac76a5276b 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/VpcLookupOptions.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ec2/VpcLookupOptions.kt @@ -19,29 +19,24 @@ import kotlin.collections.Map * Example: * * ``` - * // create a cloud9 ec2 environment in a new VPC - * Vpc vpc = Vpc.Builder.create(this, "VPC").maxAzs(3).build(); - * Ec2Environment.Builder.create(this, - * "Cloud9Env").vpc(vpc).imageId(ImageId.AMAZON_LINUX_2).build(); - * // or create the cloud9 environment in the default VPC with specific instanceType - * IVpc defaultVpc = Vpc.fromLookup(this, "DefaultVPC", - * VpcLookupOptions.builder().isDefault(true).build()); - * Ec2Environment.Builder.create(this, "Cloud9Env2") - * .vpc(defaultVpc) - * .instanceType(new InstanceType("t3.large")) - * .imageId(ImageId.AMAZON_LINUX_2) + * IVpc vpc = Vpc.fromLookup(this, "Vpc", VpcLookupOptions.builder() + * .isDefault(true) + * .build()); + * Cluster cluster = Cluster.Builder.create(this, "ECSCluster").vpc(vpc).build(); + * TaskDefinition taskDefinition = TaskDefinition.Builder.create(this, "TD") + * .compatibility(Compatibility.EC2) * .build(); - * // or specify in a different subnetSelection - * Ec2Environment c9env = Ec2Environment.Builder.create(this, "Cloud9Env3") - * .vpc(vpc) - * .subnetSelection(SubnetSelection.builder() - * .subnetType(SubnetType.PRIVATE_WITH_EGRESS) - * .build()) - * .imageId(ImageId.AMAZON_LINUX_2) + * taskDefinition.addContainer("TheContainer", ContainerDefinitionOptions.builder() + * .image(ContainerImage.fromRegistry("foo/bar")) + * .memoryLimitMiB(256) + * .build()); + * EcsRunTask runTask = EcsRunTask.Builder.create(this, "Run") + * .integrationPattern(IntegrationPattern.RUN_JOB) + * .cluster(cluster) + * .taskDefinition(taskDefinition) + * .launchTarget(new EcsEc2LaunchTarget()) + * .enableExecuteCommand(true) * .build(); - * // print the Cloud9 IDE URL in the output - * // print the Cloud9 IDE URL in the output - * CfnOutput.Builder.create(this, "URL").value(c9env.getIdeUrl()).build(); * ``` */ public interface VpcLookupOptions { diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecr/CfnRepositoryCreationTemplate.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecr/CfnRepositoryCreationTemplate.kt new file mode 100644 index 0000000000..73582bce08 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecr/CfnRepositoryCreationTemplate.kt @@ -0,0 +1,801 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.ecr + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.jvm.JvmName +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * AWS::ECR::RepositoryCreationTemplate is used to create repository with configuration from a + * pre-defined template. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.ecr.*; + * CfnRepositoryCreationTemplate cfnRepositoryCreationTemplate = + * CfnRepositoryCreationTemplate.Builder.create(this, "MyCfnRepositoryCreationTemplate") + * .appliedFor(List.of("appliedFor")) + * .prefix("prefix") + * // the properties below are optional + * .description("description") + * .encryptionConfiguration(EncryptionConfigurationProperty.builder() + * .encryptionType("encryptionType") + * // the properties below are optional + * .kmsKey("kmsKey") + * .build()) + * .imageTagMutability("imageTagMutability") + * .lifecyclePolicy("lifecyclePolicy") + * .repositoryPolicy("repositoryPolicy") + * .resourceTags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html) + */ +public open class CfnRepositoryCreationTemplate( + cdkObject: software.amazon.awscdk.services.ecr.CfnRepositoryCreationTemplate, +) : CfnResource(cdkObject), IInspectable { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnRepositoryCreationTemplateProps, + ) : + this(software.amazon.awscdk.services.ecr.CfnRepositoryCreationTemplate(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnRepositoryCreationTemplateProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnRepositoryCreationTemplateProps.Builder.() -> Unit, + ) : this(scope, id, CfnRepositoryCreationTemplateProps(props) + ) + + /** + * A list of enumerable Strings representing the repository creation scenarios that the template + * will apply towards. + */ + public open fun appliedFor(): List = unwrap(this).getAppliedFor() + + /** + * A list of enumerable Strings representing the repository creation scenarios that the template + * will apply towards. + */ + public open fun appliedFor(`value`: List) { + unwrap(this).setAppliedFor(`value`) + } + + /** + * A list of enumerable Strings representing the repository creation scenarios that the template + * will apply towards. + */ + public open fun appliedFor(vararg `value`: String): Unit = appliedFor(`value`.toList()) + + /** + * Create timestamp of the template. + */ + public open fun attrCreatedAt(): String = unwrap(this).getAttrCreatedAt() + + /** + * Update timestamp of the template. + */ + public open fun attrUpdatedAt(): String = unwrap(this).getAttrUpdatedAt() + + /** + * The description of the template. + */ + public open fun description(): String? = unwrap(this).getDescription() + + /** + * The description of the template. + */ + public open fun description(`value`: String) { + unwrap(this).setDescription(`value`) + } + + /** + * The encryption configuration for the repository. + * + * This determines how the contents of your repository are encrypted at rest. + */ + public open fun encryptionConfiguration(): Any? = unwrap(this).getEncryptionConfiguration() + + /** + * The encryption configuration for the repository. + * + * This determines how the contents of your repository are encrypted at rest. + */ + public open fun encryptionConfiguration(`value`: IResolvable) { + unwrap(this).setEncryptionConfiguration(`value`.let(IResolvable::unwrap)) + } + + /** + * The encryption configuration for the repository. + * + * This determines how the contents of your repository are encrypted at rest. + */ + public open fun encryptionConfiguration(`value`: EncryptionConfigurationProperty) { + unwrap(this).setEncryptionConfiguration(`value`.let(EncryptionConfigurationProperty::unwrap)) + } + + /** + * The encryption configuration for the repository. + * + * This determines how the contents of your repository are encrypted at rest. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("0615e622a0ea6b7667d6f0352968d9c0b77e1f2d4905736dec3072d9ba5ce92e") + public open + fun encryptionConfiguration(`value`: EncryptionConfigurationProperty.Builder.() -> Unit): Unit + = encryptionConfiguration(EncryptionConfigurationProperty(`value`)) + + /** + * The image tag mutability setting for the repository. + */ + public open fun imageTagMutability(): String? = unwrap(this).getImageTagMutability() + + /** + * The image tag mutability setting for the repository. + */ + public open fun imageTagMutability(`value`: String) { + unwrap(this).setImageTagMutability(`value`) + } + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * The JSON lifecycle policy text to apply to the repository. + */ + public open fun lifecyclePolicy(): String? = unwrap(this).getLifecyclePolicy() + + /** + * The JSON lifecycle policy text to apply to the repository. + */ + public open fun lifecyclePolicy(`value`: String) { + unwrap(this).setLifecyclePolicy(`value`) + } + + /** + * The prefix use to match the repository name and apply the template. + */ + public open fun prefix(): String = unwrap(this).getPrefix() + + /** + * The prefix use to match the repository name and apply the template. + */ + public open fun prefix(`value`: String) { + unwrap(this).setPrefix(`value`) + } + + /** + * The JSON repository policy text to apply to the repository. + */ + public open fun repositoryPolicy(): String? = unwrap(this).getRepositoryPolicy() + + /** + * The JSON repository policy text to apply to the repository. + */ + public open fun repositoryPolicy(`value`: String) { + unwrap(this).setRepositoryPolicy(`value`) + } + + /** + * The tags attached to the resource. + */ + public open fun resourceTags(): Any? = unwrap(this).getResourceTags() + + /** + * The tags attached to the resource. + */ + public open fun resourceTags(`value`: IResolvable) { + unwrap(this).setResourceTags(`value`.let(IResolvable::unwrap)) + } + + /** + * The tags attached to the resource. + */ + public open fun resourceTags(`value`: List) { + unwrap(this).setResourceTags(`value`.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * The tags attached to the resource. + */ + public open fun resourceTags(vararg `value`: Any): Unit = resourceTags(`value`.toList()) + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.ecr.CfnRepositoryCreationTemplate]. + */ + @CdkDslMarker + public interface Builder { + /** + * A list of enumerable Strings representing the repository creation scenarios that the template + * will apply towards. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-appliedfor) + * @param appliedFor A list of enumerable Strings representing the repository creation scenarios + * that the template will apply towards. + */ + public fun appliedFor(appliedFor: List) + + /** + * A list of enumerable Strings representing the repository creation scenarios that the template + * will apply towards. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-appliedfor) + * @param appliedFor A list of enumerable Strings representing the repository creation scenarios + * that the template will apply towards. + */ + public fun appliedFor(vararg appliedFor: String) + + /** + * The description of the template. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-description) + * @param description The description of the template. + */ + public fun description(description: String) + + /** + * The encryption configuration for the repository. This determines how the contents of your + * repository are encrypted at rest. + * + * By default, when no encryption configuration is set or the `AES256` encryption type is used, + * Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts + * your data at rest using an AES-256 encryption algorithm. This does not require any action on + * your part. + * + * For more control over the encryption of the contents of your repository, you can use + * server-side encryption with AWS Key Management Service key stored in AWS Key Management Service + * ( AWS KMS ) to encrypt your images. For more information, see [Amazon ECR encryption at + * rest](https://docs.aws.amazon.com/AmazonECR/latest/userguide/encryption-at-rest.html) in the + * *Amazon Elastic Container Registry User Guide* . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-encryptionconfiguration) + * @param encryptionConfiguration The encryption configuration for the repository. This + * determines how the contents of your repository are encrypted at rest. + */ + public fun encryptionConfiguration(encryptionConfiguration: IResolvable) + + /** + * The encryption configuration for the repository. This determines how the contents of your + * repository are encrypted at rest. + * + * By default, when no encryption configuration is set or the `AES256` encryption type is used, + * Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts + * your data at rest using an AES-256 encryption algorithm. This does not require any action on + * your part. + * + * For more control over the encryption of the contents of your repository, you can use + * server-side encryption with AWS Key Management Service key stored in AWS Key Management Service + * ( AWS KMS ) to encrypt your images. For more information, see [Amazon ECR encryption at + * rest](https://docs.aws.amazon.com/AmazonECR/latest/userguide/encryption-at-rest.html) in the + * *Amazon Elastic Container Registry User Guide* . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-encryptionconfiguration) + * @param encryptionConfiguration The encryption configuration for the repository. This + * determines how the contents of your repository are encrypted at rest. + */ + public fun encryptionConfiguration(encryptionConfiguration: EncryptionConfigurationProperty) + + /** + * The encryption configuration for the repository. This determines how the contents of your + * repository are encrypted at rest. + * + * By default, when no encryption configuration is set or the `AES256` encryption type is used, + * Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts + * your data at rest using an AES-256 encryption algorithm. This does not require any action on + * your part. + * + * For more control over the encryption of the contents of your repository, you can use + * server-side encryption with AWS Key Management Service key stored in AWS Key Management Service + * ( AWS KMS ) to encrypt your images. For more information, see [Amazon ECR encryption at + * rest](https://docs.aws.amazon.com/AmazonECR/latest/userguide/encryption-at-rest.html) in the + * *Amazon Elastic Container Registry User Guide* . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-encryptionconfiguration) + * @param encryptionConfiguration The encryption configuration for the repository. This + * determines how the contents of your repository are encrypted at rest. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("11bfe268586d293bebc28c5576956fc7f90e2692aa08fc8ec8cde003fcd52e83") + public + fun encryptionConfiguration(encryptionConfiguration: EncryptionConfigurationProperty.Builder.() -> Unit) + + /** + * The image tag mutability setting for the repository. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-imagetagmutability) + * @param imageTagMutability The image tag mutability setting for the repository. + */ + public fun imageTagMutability(imageTagMutability: String) + + /** + * The JSON lifecycle policy text to apply to the repository. + * + * For information about lifecycle policy syntax, see + * https://docs.aws.amazon.com/AmazonECR/latest/userguide/LifecyclePolicies.html + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-lifecyclepolicy) + * @param lifecyclePolicy The JSON lifecycle policy text to apply to the repository. + */ + public fun lifecyclePolicy(lifecyclePolicy: String) + + /** + * The prefix use to match the repository name and apply the template. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-prefix) + * @param prefix The prefix use to match the repository name and apply the template. + */ + public fun prefix(prefix: String) + + /** + * The JSON repository policy text to apply to the repository. + * + * For more information, see + * https://docs.aws.amazon.com/AmazonECR/latest/userguide/RepositoryPolicyExamples.html + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-repositorypolicy) + * @param repositoryPolicy The JSON repository policy text to apply to the repository. + */ + public fun repositoryPolicy(repositoryPolicy: String) + + /** + * The tags attached to the resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-resourcetags) + * @param resourceTags The tags attached to the resource. + */ + public fun resourceTags(resourceTags: IResolvable) + + /** + * The tags attached to the resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-resourcetags) + * @param resourceTags The tags attached to the resource. + */ + public fun resourceTags(resourceTags: List) + + /** + * The tags attached to the resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-resourcetags) + * @param resourceTags The tags attached to the resource. + */ + public fun resourceTags(vararg resourceTags: Any) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.ecr.CfnRepositoryCreationTemplate.Builder = + software.amazon.awscdk.services.ecr.CfnRepositoryCreationTemplate.Builder.create(scope, id) + + /** + * A list of enumerable Strings representing the repository creation scenarios that the template + * will apply towards. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-appliedfor) + * @param appliedFor A list of enumerable Strings representing the repository creation scenarios + * that the template will apply towards. + */ + override fun appliedFor(appliedFor: List) { + cdkBuilder.appliedFor(appliedFor) + } + + /** + * A list of enumerable Strings representing the repository creation scenarios that the template + * will apply towards. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-appliedfor) + * @param appliedFor A list of enumerable Strings representing the repository creation scenarios + * that the template will apply towards. + */ + override fun appliedFor(vararg appliedFor: String): Unit = appliedFor(appliedFor.toList()) + + /** + * The description of the template. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-description) + * @param description The description of the template. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * The encryption configuration for the repository. This determines how the contents of your + * repository are encrypted at rest. + * + * By default, when no encryption configuration is set or the `AES256` encryption type is used, + * Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts + * your data at rest using an AES-256 encryption algorithm. This does not require any action on + * your part. + * + * For more control over the encryption of the contents of your repository, you can use + * server-side encryption with AWS Key Management Service key stored in AWS Key Management Service + * ( AWS KMS ) to encrypt your images. For more information, see [Amazon ECR encryption at + * rest](https://docs.aws.amazon.com/AmazonECR/latest/userguide/encryption-at-rest.html) in the + * *Amazon Elastic Container Registry User Guide* . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-encryptionconfiguration) + * @param encryptionConfiguration The encryption configuration for the repository. This + * determines how the contents of your repository are encrypted at rest. + */ + override fun encryptionConfiguration(encryptionConfiguration: IResolvable) { + cdkBuilder.encryptionConfiguration(encryptionConfiguration.let(IResolvable::unwrap)) + } + + /** + * The encryption configuration for the repository. This determines how the contents of your + * repository are encrypted at rest. + * + * By default, when no encryption configuration is set or the `AES256` encryption type is used, + * Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts + * your data at rest using an AES-256 encryption algorithm. This does not require any action on + * your part. + * + * For more control over the encryption of the contents of your repository, you can use + * server-side encryption with AWS Key Management Service key stored in AWS Key Management Service + * ( AWS KMS ) to encrypt your images. For more information, see [Amazon ECR encryption at + * rest](https://docs.aws.amazon.com/AmazonECR/latest/userguide/encryption-at-rest.html) in the + * *Amazon Elastic Container Registry User Guide* . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-encryptionconfiguration) + * @param encryptionConfiguration The encryption configuration for the repository. This + * determines how the contents of your repository are encrypted at rest. + */ + override fun encryptionConfiguration(encryptionConfiguration: EncryptionConfigurationProperty) { + cdkBuilder.encryptionConfiguration(encryptionConfiguration.let(EncryptionConfigurationProperty::unwrap)) + } + + /** + * The encryption configuration for the repository. This determines how the contents of your + * repository are encrypted at rest. + * + * By default, when no encryption configuration is set or the `AES256` encryption type is used, + * Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts + * your data at rest using an AES-256 encryption algorithm. This does not require any action on + * your part. + * + * For more control over the encryption of the contents of your repository, you can use + * server-side encryption with AWS Key Management Service key stored in AWS Key Management Service + * ( AWS KMS ) to encrypt your images. For more information, see [Amazon ECR encryption at + * rest](https://docs.aws.amazon.com/AmazonECR/latest/userguide/encryption-at-rest.html) in the + * *Amazon Elastic Container Registry User Guide* . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-encryptionconfiguration) + * @param encryptionConfiguration The encryption configuration for the repository. This + * determines how the contents of your repository are encrypted at rest. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("11bfe268586d293bebc28c5576956fc7f90e2692aa08fc8ec8cde003fcd52e83") + override + fun encryptionConfiguration(encryptionConfiguration: EncryptionConfigurationProperty.Builder.() -> Unit): + Unit = encryptionConfiguration(EncryptionConfigurationProperty(encryptionConfiguration)) + + /** + * The image tag mutability setting for the repository. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-imagetagmutability) + * @param imageTagMutability The image tag mutability setting for the repository. + */ + override fun imageTagMutability(imageTagMutability: String) { + cdkBuilder.imageTagMutability(imageTagMutability) + } + + /** + * The JSON lifecycle policy text to apply to the repository. + * + * For information about lifecycle policy syntax, see + * https://docs.aws.amazon.com/AmazonECR/latest/userguide/LifecyclePolicies.html + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-lifecyclepolicy) + * @param lifecyclePolicy The JSON lifecycle policy text to apply to the repository. + */ + override fun lifecyclePolicy(lifecyclePolicy: String) { + cdkBuilder.lifecyclePolicy(lifecyclePolicy) + } + + /** + * The prefix use to match the repository name and apply the template. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-prefix) + * @param prefix The prefix use to match the repository name and apply the template. + */ + override fun prefix(prefix: String) { + cdkBuilder.prefix(prefix) + } + + /** + * The JSON repository policy text to apply to the repository. + * + * For more information, see + * https://docs.aws.amazon.com/AmazonECR/latest/userguide/RepositoryPolicyExamples.html + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-repositorypolicy) + * @param repositoryPolicy The JSON repository policy text to apply to the repository. + */ + override fun repositoryPolicy(repositoryPolicy: String) { + cdkBuilder.repositoryPolicy(repositoryPolicy) + } + + /** + * The tags attached to the resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-resourcetags) + * @param resourceTags The tags attached to the resource. + */ + override fun resourceTags(resourceTags: IResolvable) { + cdkBuilder.resourceTags(resourceTags.let(IResolvable::unwrap)) + } + + /** + * The tags attached to the resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-resourcetags) + * @param resourceTags The tags attached to the resource. + */ + override fun resourceTags(resourceTags: List) { + cdkBuilder.resourceTags(resourceTags.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * The tags attached to the resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-resourcetags) + * @param resourceTags The tags attached to the resource. + */ + override fun resourceTags(vararg resourceTags: Any): Unit = resourceTags(resourceTags.toList()) + + public fun build(): software.amazon.awscdk.services.ecr.CfnRepositoryCreationTemplate = + cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.ecr.CfnRepositoryCreationTemplate.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnRepositoryCreationTemplate { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnRepositoryCreationTemplate(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.ecr.CfnRepositoryCreationTemplate): + CfnRepositoryCreationTemplate = CfnRepositoryCreationTemplate(cdkObject) + + internal fun unwrap(wrapped: CfnRepositoryCreationTemplate): + software.amazon.awscdk.services.ecr.CfnRepositoryCreationTemplate = wrapped.cdkObject as + software.amazon.awscdk.services.ecr.CfnRepositoryCreationTemplate + } + + /** + * The encryption configuration for the repository. This determines how the contents of your + * repository are encrypted at rest. + * + * By default, when no encryption configuration is set or the `AES256` encryption type is used, + * Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts your + * data at rest using an AES-256 encryption algorithm. This does not require any action on your part. + * + * For more control over the encryption of the contents of your repository, you can use + * server-side encryption with AWS Key Management Service key stored in AWS Key Management Service ( + * AWS KMS ) to encrypt your images. For more information, see [Amazon ECR encryption at + * rest](https://docs.aws.amazon.com/AmazonECR/latest/userguide/encryption-at-rest.html) in the + * *Amazon Elastic Container Registry User Guide* . + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.ecr.*; + * EncryptionConfigurationProperty encryptionConfigurationProperty = + * EncryptionConfigurationProperty.builder() + * .encryptionType("encryptionType") + * // the properties below are optional + * .kmsKey("kmsKey") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repositorycreationtemplate-encryptionconfiguration.html) + */ + public interface EncryptionConfigurationProperty { + /** + * The encryption type to use. + * + * If you use the `KMS` encryption type, the contents of the repository will be encrypted using + * server-side encryption with AWS Key Management Service key stored in AWS KMS . When you use AWS + * KMS to encrypt your data, you can either use the default AWS managed AWS KMS key for Amazon ECR, + * or specify your own AWS KMS key, which you already created. For more information, see + * [Protecting data using server-side encryption with an AWS KMS key stored in AWS Key Management + * Service (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) in + * the *Amazon Simple Storage Service Console Developer Guide* . + * + * If you use the `AES256` encryption type, Amazon ECR uses server-side encryption with Amazon + * S3-managed encryption keys which encrypts the images in the repository using an AES-256 + * encryption algorithm. For more information, see [Protecting data using server-side encryption + * with Amazon S3-managed encryption keys + * (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) in the + * *Amazon Simple Storage Service Console Developer Guide* . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repositorycreationtemplate-encryptionconfiguration.html#cfn-ecr-repositorycreationtemplate-encryptionconfiguration-encryptiontype) + */ + public fun encryptionType(): String + + /** + * If you use the `KMS` encryption type, specify the AWS KMS key to use for encryption. + * + * The alias, key ID, or full ARN of the AWS KMS key can be specified. The key must exist in the + * same Region as the repository. If no key is specified, the default AWS managed AWS KMS key for + * Amazon ECR will be used. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repositorycreationtemplate-encryptionconfiguration.html#cfn-ecr-repositorycreationtemplate-encryptionconfiguration-kmskey) + */ + public fun kmsKey(): String? = unwrap(this).getKmsKey() + + /** + * A builder for [EncryptionConfigurationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param encryptionType The encryption type to use. + * If you use the `KMS` encryption type, the contents of the repository will be encrypted + * using server-side encryption with AWS Key Management Service key stored in AWS KMS . When you + * use AWS KMS to encrypt your data, you can either use the default AWS managed AWS KMS key for + * Amazon ECR, or specify your own AWS KMS key, which you already created. For more information, + * see [Protecting data using server-side encryption with an AWS KMS key stored in AWS Key + * Management Service + * (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) in the + * *Amazon Simple Storage Service Console Developer Guide* . + * + * If you use the `AES256` encryption type, Amazon ECR uses server-side encryption with Amazon + * S3-managed encryption keys which encrypts the images in the repository using an AES-256 + * encryption algorithm. For more information, see [Protecting data using server-side encryption + * with Amazon S3-managed encryption keys + * (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) in + * the *Amazon Simple Storage Service Console Developer Guide* . + */ + public fun encryptionType(encryptionType: String) + + /** + * @param kmsKey If you use the `KMS` encryption type, specify the AWS KMS key to use for + * encryption. + * The alias, key ID, or full ARN of the AWS KMS key can be specified. The key must exist in + * the same Region as the repository. If no key is specified, the default AWS managed AWS KMS key + * for Amazon ECR will be used. + */ + public fun kmsKey(kmsKey: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.ecr.CfnRepositoryCreationTemplate.EncryptionConfigurationProperty.Builder + = + software.amazon.awscdk.services.ecr.CfnRepositoryCreationTemplate.EncryptionConfigurationProperty.builder() + + /** + * @param encryptionType The encryption type to use. + * If you use the `KMS` encryption type, the contents of the repository will be encrypted + * using server-side encryption with AWS Key Management Service key stored in AWS KMS . When you + * use AWS KMS to encrypt your data, you can either use the default AWS managed AWS KMS key for + * Amazon ECR, or specify your own AWS KMS key, which you already created. For more information, + * see [Protecting data using server-side encryption with an AWS KMS key stored in AWS Key + * Management Service + * (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) in the + * *Amazon Simple Storage Service Console Developer Guide* . + * + * If you use the `AES256` encryption type, Amazon ECR uses server-side encryption with Amazon + * S3-managed encryption keys which encrypts the images in the repository using an AES-256 + * encryption algorithm. For more information, see [Protecting data using server-side encryption + * with Amazon S3-managed encryption keys + * (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) in + * the *Amazon Simple Storage Service Console Developer Guide* . + */ + override fun encryptionType(encryptionType: String) { + cdkBuilder.encryptionType(encryptionType) + } + + /** + * @param kmsKey If you use the `KMS` encryption type, specify the AWS KMS key to use for + * encryption. + * The alias, key ID, or full ARN of the AWS KMS key can be specified. The key must exist in + * the same Region as the repository. If no key is specified, the default AWS managed AWS KMS key + * for Amazon ECR will be used. + */ + override fun kmsKey(kmsKey: String) { + cdkBuilder.kmsKey(kmsKey) + } + + public fun build(): + software.amazon.awscdk.services.ecr.CfnRepositoryCreationTemplate.EncryptionConfigurationProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.ecr.CfnRepositoryCreationTemplate.EncryptionConfigurationProperty, + ) : CdkObject(cdkObject), EncryptionConfigurationProperty { + /** + * The encryption type to use. + * + * If you use the `KMS` encryption type, the contents of the repository will be encrypted + * using server-side encryption with AWS Key Management Service key stored in AWS KMS . When you + * use AWS KMS to encrypt your data, you can either use the default AWS managed AWS KMS key for + * Amazon ECR, or specify your own AWS KMS key, which you already created. For more information, + * see [Protecting data using server-side encryption with an AWS KMS key stored in AWS Key + * Management Service + * (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) in the + * *Amazon Simple Storage Service Console Developer Guide* . + * + * If you use the `AES256` encryption type, Amazon ECR uses server-side encryption with Amazon + * S3-managed encryption keys which encrypts the images in the repository using an AES-256 + * encryption algorithm. For more information, see [Protecting data using server-side encryption + * with Amazon S3-managed encryption keys + * (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) in + * the *Amazon Simple Storage Service Console Developer Guide* . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repositorycreationtemplate-encryptionconfiguration.html#cfn-ecr-repositorycreationtemplate-encryptionconfiguration-encryptiontype) + */ + override fun encryptionType(): String = unwrap(this).getEncryptionType() + + /** + * If you use the `KMS` encryption type, specify the AWS KMS key to use for encryption. + * + * The alias, key ID, or full ARN of the AWS KMS key can be specified. The key must exist in + * the same Region as the repository. If no key is specified, the default AWS managed AWS KMS key + * for Amazon ECR will be used. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repositorycreationtemplate-encryptionconfiguration.html#cfn-ecr-repositorycreationtemplate-encryptionconfiguration-kmskey) + */ + override fun kmsKey(): String? = unwrap(this).getKmsKey() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): EncryptionConfigurationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.ecr.CfnRepositoryCreationTemplate.EncryptionConfigurationProperty): + EncryptionConfigurationProperty = CdkObjectWrappers.wrap(cdkObject) as? + EncryptionConfigurationProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: EncryptionConfigurationProperty): + software.amazon.awscdk.services.ecr.CfnRepositoryCreationTemplate.EncryptionConfigurationProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.ecr.CfnRepositoryCreationTemplate.EncryptionConfigurationProperty + } + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecr/CfnRepositoryCreationTemplateProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecr/CfnRepositoryCreationTemplateProps.kt new file mode 100644 index 0000000000..e468c155f1 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecr/CfnRepositoryCreationTemplateProps.kt @@ -0,0 +1,470 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.ecr + +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.jvm.JvmName + +/** + * Properties for defining a `CfnRepositoryCreationTemplate`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.ecr.*; + * CfnRepositoryCreationTemplateProps cfnRepositoryCreationTemplateProps = + * CfnRepositoryCreationTemplateProps.builder() + * .appliedFor(List.of("appliedFor")) + * .prefix("prefix") + * // the properties below are optional + * .description("description") + * .encryptionConfiguration(EncryptionConfigurationProperty.builder() + * .encryptionType("encryptionType") + * // the properties below are optional + * .kmsKey("kmsKey") + * .build()) + * .imageTagMutability("imageTagMutability") + * .lifecyclePolicy("lifecyclePolicy") + * .repositoryPolicy("repositoryPolicy") + * .resourceTags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html) + */ +public interface CfnRepositoryCreationTemplateProps { + /** + * A list of enumerable Strings representing the repository creation scenarios that the template + * will apply towards. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-appliedfor) + */ + public fun appliedFor(): List + + /** + * The description of the template. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-description) + */ + public fun description(): String? = unwrap(this).getDescription() + + /** + * The encryption configuration for the repository. This determines how the contents of your + * repository are encrypted at rest. + * + * By default, when no encryption configuration is set or the `AES256` encryption type is used, + * Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts your + * data at rest using an AES-256 encryption algorithm. This does not require any action on your part. + * + * For more control over the encryption of the contents of your repository, you can use + * server-side encryption with AWS Key Management Service key stored in AWS Key Management Service ( + * AWS KMS ) to encrypt your images. For more information, see [Amazon ECR encryption at + * rest](https://docs.aws.amazon.com/AmazonECR/latest/userguide/encryption-at-rest.html) in the + * *Amazon Elastic Container Registry User Guide* . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-encryptionconfiguration) + */ + public fun encryptionConfiguration(): Any? = unwrap(this).getEncryptionConfiguration() + + /** + * The image tag mutability setting for the repository. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-imagetagmutability) + */ + public fun imageTagMutability(): String? = unwrap(this).getImageTagMutability() + + /** + * The JSON lifecycle policy text to apply to the repository. + * + * For information about lifecycle policy syntax, see + * https://docs.aws.amazon.com/AmazonECR/latest/userguide/LifecyclePolicies.html + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-lifecyclepolicy) + */ + public fun lifecyclePolicy(): String? = unwrap(this).getLifecyclePolicy() + + /** + * The prefix use to match the repository name and apply the template. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-prefix) + */ + public fun prefix(): String + + /** + * The JSON repository policy text to apply to the repository. + * + * For more information, see + * https://docs.aws.amazon.com/AmazonECR/latest/userguide/RepositoryPolicyExamples.html + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-repositorypolicy) + */ + public fun repositoryPolicy(): String? = unwrap(this).getRepositoryPolicy() + + /** + * The tags attached to the resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-resourcetags) + */ + public fun resourceTags(): Any? = unwrap(this).getResourceTags() + + /** + * A builder for [CfnRepositoryCreationTemplateProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param appliedFor A list of enumerable Strings representing the repository creation scenarios + * that the template will apply towards. + */ + public fun appliedFor(appliedFor: List) + + /** + * @param appliedFor A list of enumerable Strings representing the repository creation scenarios + * that the template will apply towards. + */ + public fun appliedFor(vararg appliedFor: String) + + /** + * @param description The description of the template. + */ + public fun description(description: String) + + /** + * @param encryptionConfiguration The encryption configuration for the repository. This + * determines how the contents of your repository are encrypted at rest. + * By default, when no encryption configuration is set or the `AES256` encryption type is used, + * Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts + * your data at rest using an AES-256 encryption algorithm. This does not require any action on + * your part. + * + * For more control over the encryption of the contents of your repository, you can use + * server-side encryption with AWS Key Management Service key stored in AWS Key Management Service + * ( AWS KMS ) to encrypt your images. For more information, see [Amazon ECR encryption at + * rest](https://docs.aws.amazon.com/AmazonECR/latest/userguide/encryption-at-rest.html) in the + * *Amazon Elastic Container Registry User Guide* . + */ + public fun encryptionConfiguration(encryptionConfiguration: IResolvable) + + /** + * @param encryptionConfiguration The encryption configuration for the repository. This + * determines how the contents of your repository are encrypted at rest. + * By default, when no encryption configuration is set or the `AES256` encryption type is used, + * Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts + * your data at rest using an AES-256 encryption algorithm. This does not require any action on + * your part. + * + * For more control over the encryption of the contents of your repository, you can use + * server-side encryption with AWS Key Management Service key stored in AWS Key Management Service + * ( AWS KMS ) to encrypt your images. For more information, see [Amazon ECR encryption at + * rest](https://docs.aws.amazon.com/AmazonECR/latest/userguide/encryption-at-rest.html) in the + * *Amazon Elastic Container Registry User Guide* . + */ + public + fun encryptionConfiguration(encryptionConfiguration: CfnRepositoryCreationTemplate.EncryptionConfigurationProperty) + + /** + * @param encryptionConfiguration The encryption configuration for the repository. This + * determines how the contents of your repository are encrypted at rest. + * By default, when no encryption configuration is set or the `AES256` encryption type is used, + * Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts + * your data at rest using an AES-256 encryption algorithm. This does not require any action on + * your part. + * + * For more control over the encryption of the contents of your repository, you can use + * server-side encryption with AWS Key Management Service key stored in AWS Key Management Service + * ( AWS KMS ) to encrypt your images. For more information, see [Amazon ECR encryption at + * rest](https://docs.aws.amazon.com/AmazonECR/latest/userguide/encryption-at-rest.html) in the + * *Amazon Elastic Container Registry User Guide* . + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("cd019c1895592a4d64cf2c324d1c534de99fb7971c879d08793a0cc2a51e8c13") + public + fun encryptionConfiguration(encryptionConfiguration: CfnRepositoryCreationTemplate.EncryptionConfigurationProperty.Builder.() -> Unit) + + /** + * @param imageTagMutability The image tag mutability setting for the repository. + */ + public fun imageTagMutability(imageTagMutability: String) + + /** + * @param lifecyclePolicy The JSON lifecycle policy text to apply to the repository. + * For information about lifecycle policy syntax, see + * https://docs.aws.amazon.com/AmazonECR/latest/userguide/LifecyclePolicies.html + */ + public fun lifecyclePolicy(lifecyclePolicy: String) + + /** + * @param prefix The prefix use to match the repository name and apply the template. + */ + public fun prefix(prefix: String) + + /** + * @param repositoryPolicy The JSON repository policy text to apply to the repository. + * For more information, see + * https://docs.aws.amazon.com/AmazonECR/latest/userguide/RepositoryPolicyExamples.html + */ + public fun repositoryPolicy(repositoryPolicy: String) + + /** + * @param resourceTags The tags attached to the resource. + */ + public fun resourceTags(resourceTags: IResolvable) + + /** + * @param resourceTags The tags attached to the resource. + */ + public fun resourceTags(resourceTags: List) + + /** + * @param resourceTags The tags attached to the resource. + */ + public fun resourceTags(vararg resourceTags: Any) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.ecr.CfnRepositoryCreationTemplateProps.Builder = + software.amazon.awscdk.services.ecr.CfnRepositoryCreationTemplateProps.builder() + + /** + * @param appliedFor A list of enumerable Strings representing the repository creation scenarios + * that the template will apply towards. + */ + override fun appliedFor(appliedFor: List) { + cdkBuilder.appliedFor(appliedFor) + } + + /** + * @param appliedFor A list of enumerable Strings representing the repository creation scenarios + * that the template will apply towards. + */ + override fun appliedFor(vararg appliedFor: String): Unit = appliedFor(appliedFor.toList()) + + /** + * @param description The description of the template. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * @param encryptionConfiguration The encryption configuration for the repository. This + * determines how the contents of your repository are encrypted at rest. + * By default, when no encryption configuration is set or the `AES256` encryption type is used, + * Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts + * your data at rest using an AES-256 encryption algorithm. This does not require any action on + * your part. + * + * For more control over the encryption of the contents of your repository, you can use + * server-side encryption with AWS Key Management Service key stored in AWS Key Management Service + * ( AWS KMS ) to encrypt your images. For more information, see [Amazon ECR encryption at + * rest](https://docs.aws.amazon.com/AmazonECR/latest/userguide/encryption-at-rest.html) in the + * *Amazon Elastic Container Registry User Guide* . + */ + override fun encryptionConfiguration(encryptionConfiguration: IResolvable) { + cdkBuilder.encryptionConfiguration(encryptionConfiguration.let(IResolvable::unwrap)) + } + + /** + * @param encryptionConfiguration The encryption configuration for the repository. This + * determines how the contents of your repository are encrypted at rest. + * By default, when no encryption configuration is set or the `AES256` encryption type is used, + * Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts + * your data at rest using an AES-256 encryption algorithm. This does not require any action on + * your part. + * + * For more control over the encryption of the contents of your repository, you can use + * server-side encryption with AWS Key Management Service key stored in AWS Key Management Service + * ( AWS KMS ) to encrypt your images. For more information, see [Amazon ECR encryption at + * rest](https://docs.aws.amazon.com/AmazonECR/latest/userguide/encryption-at-rest.html) in the + * *Amazon Elastic Container Registry User Guide* . + */ + override + fun encryptionConfiguration(encryptionConfiguration: CfnRepositoryCreationTemplate.EncryptionConfigurationProperty) { + cdkBuilder.encryptionConfiguration(encryptionConfiguration.let(CfnRepositoryCreationTemplate.EncryptionConfigurationProperty::unwrap)) + } + + /** + * @param encryptionConfiguration The encryption configuration for the repository. This + * determines how the contents of your repository are encrypted at rest. + * By default, when no encryption configuration is set or the `AES256` encryption type is used, + * Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts + * your data at rest using an AES-256 encryption algorithm. This does not require any action on + * your part. + * + * For more control over the encryption of the contents of your repository, you can use + * server-side encryption with AWS Key Management Service key stored in AWS Key Management Service + * ( AWS KMS ) to encrypt your images. For more information, see [Amazon ECR encryption at + * rest](https://docs.aws.amazon.com/AmazonECR/latest/userguide/encryption-at-rest.html) in the + * *Amazon Elastic Container Registry User Guide* . + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("cd019c1895592a4d64cf2c324d1c534de99fb7971c879d08793a0cc2a51e8c13") + override + fun encryptionConfiguration(encryptionConfiguration: CfnRepositoryCreationTemplate.EncryptionConfigurationProperty.Builder.() -> Unit): + Unit = + encryptionConfiguration(CfnRepositoryCreationTemplate.EncryptionConfigurationProperty(encryptionConfiguration)) + + /** + * @param imageTagMutability The image tag mutability setting for the repository. + */ + override fun imageTagMutability(imageTagMutability: String) { + cdkBuilder.imageTagMutability(imageTagMutability) + } + + /** + * @param lifecyclePolicy The JSON lifecycle policy text to apply to the repository. + * For information about lifecycle policy syntax, see + * https://docs.aws.amazon.com/AmazonECR/latest/userguide/LifecyclePolicies.html + */ + override fun lifecyclePolicy(lifecyclePolicy: String) { + cdkBuilder.lifecyclePolicy(lifecyclePolicy) + } + + /** + * @param prefix The prefix use to match the repository name and apply the template. + */ + override fun prefix(prefix: String) { + cdkBuilder.prefix(prefix) + } + + /** + * @param repositoryPolicy The JSON repository policy text to apply to the repository. + * For more information, see + * https://docs.aws.amazon.com/AmazonECR/latest/userguide/RepositoryPolicyExamples.html + */ + override fun repositoryPolicy(repositoryPolicy: String) { + cdkBuilder.repositoryPolicy(repositoryPolicy) + } + + /** + * @param resourceTags The tags attached to the resource. + */ + override fun resourceTags(resourceTags: IResolvable) { + cdkBuilder.resourceTags(resourceTags.let(IResolvable::unwrap)) + } + + /** + * @param resourceTags The tags attached to the resource. + */ + override fun resourceTags(resourceTags: List) { + cdkBuilder.resourceTags(resourceTags.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param resourceTags The tags attached to the resource. + */ + override fun resourceTags(vararg resourceTags: Any): Unit = resourceTags(resourceTags.toList()) + + public fun build(): software.amazon.awscdk.services.ecr.CfnRepositoryCreationTemplateProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.ecr.CfnRepositoryCreationTemplateProps, + ) : CdkObject(cdkObject), CfnRepositoryCreationTemplateProps { + /** + * A list of enumerable Strings representing the repository creation scenarios that the template + * will apply towards. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-appliedfor) + */ + override fun appliedFor(): List = unwrap(this).getAppliedFor() + + /** + * The description of the template. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-description) + */ + override fun description(): String? = unwrap(this).getDescription() + + /** + * The encryption configuration for the repository. This determines how the contents of your + * repository are encrypted at rest. + * + * By default, when no encryption configuration is set or the `AES256` encryption type is used, + * Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts + * your data at rest using an AES-256 encryption algorithm. This does not require any action on + * your part. + * + * For more control over the encryption of the contents of your repository, you can use + * server-side encryption with AWS Key Management Service key stored in AWS Key Management Service + * ( AWS KMS ) to encrypt your images. For more information, see [Amazon ECR encryption at + * rest](https://docs.aws.amazon.com/AmazonECR/latest/userguide/encryption-at-rest.html) in the + * *Amazon Elastic Container Registry User Guide* . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-encryptionconfiguration) + */ + override fun encryptionConfiguration(): Any? = unwrap(this).getEncryptionConfiguration() + + /** + * The image tag mutability setting for the repository. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-imagetagmutability) + */ + override fun imageTagMutability(): String? = unwrap(this).getImageTagMutability() + + /** + * The JSON lifecycle policy text to apply to the repository. + * + * For information about lifecycle policy syntax, see + * https://docs.aws.amazon.com/AmazonECR/latest/userguide/LifecyclePolicies.html + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-lifecyclepolicy) + */ + override fun lifecyclePolicy(): String? = unwrap(this).getLifecyclePolicy() + + /** + * The prefix use to match the repository name and apply the template. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-prefix) + */ + override fun prefix(): String = unwrap(this).getPrefix() + + /** + * The JSON repository policy text to apply to the repository. + * + * For more information, see + * https://docs.aws.amazon.com/AmazonECR/latest/userguide/RepositoryPolicyExamples.html + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-repositorypolicy) + */ + override fun repositoryPolicy(): String? = unwrap(this).getRepositoryPolicy() + + /** + * The tags attached to the resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repositorycreationtemplate.html#cfn-ecr-repositorycreationtemplate-resourcetags) + */ + override fun resourceTags(): Any? = unwrap(this).getResourceTags() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnRepositoryCreationTemplateProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.ecr.CfnRepositoryCreationTemplateProps): + CfnRepositoryCreationTemplateProps = CdkObjectWrappers.wrap(cdkObject) as? + CfnRepositoryCreationTemplateProps ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnRepositoryCreationTemplateProps): + software.amazon.awscdk.services.ecr.CfnRepositoryCreationTemplateProps = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.ecr.CfnRepositoryCreationTemplateProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/AppMeshProxyConfigurationProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/AppMeshProxyConfigurationProps.kt index f045c8bc6e..fcd269afc8 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/AppMeshProxyConfigurationProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/AppMeshProxyConfigurationProps.kt @@ -64,7 +64,7 @@ public interface AppMeshProxyConfigurationProps { * This is used to ensure the proxy ignores its own traffic. If IgnoredUID is specified, this * field can be empty. */ - public fun ignoredGid(): Number? = unwrap(this).getIgnoredGID() + public fun ignoredGID(): Number? = unwrap(this).getIgnoredGID() /** * The user ID (UID) of the proxy container as defined by the user parameter in a container @@ -73,7 +73,7 @@ public interface AppMeshProxyConfigurationProps { * This is used to ensure the proxy ignores its own traffic. If IgnoredGID is specified, this * field can be empty. */ - public fun ignoredUid(): Number? = unwrap(this).getIgnoredUID() + public fun ignoredUID(): Number? = unwrap(this).getIgnoredUID() /** * Specifies the port that outgoing traffic from the AppPorts is directed to. @@ -287,7 +287,7 @@ public interface AppMeshProxyConfigurationProps { * This is used to ensure the proxy ignores its own traffic. If IgnoredUID is specified, this * field can be empty. */ - override fun ignoredGid(): Number? = unwrap(this).getIgnoredGID() + override fun ignoredGID(): Number? = unwrap(this).getIgnoredGID() /** * The user ID (UID) of the proxy container as defined by the user parameter in a container @@ -296,7 +296,7 @@ public interface AppMeshProxyConfigurationProps { * This is used to ensure the proxy ignores its own traffic. If IgnoredGID is specified, this * field can be empty. */ - override fun ignoredUid(): Number? = unwrap(this).getIgnoredUID() + override fun ignoredUID(): Number? = unwrap(this).getIgnoredUID() /** * Specifies the port that outgoing traffic from the AppPorts is directed to. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/BaseService.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/BaseService.kt index c69c61ca6e..499b5c34b2 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/BaseService.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/BaseService.kt @@ -99,7 +99,7 @@ public abstract class BaseService( * * @param loadBalancer */ - public override fun attachToClassicLb(loadBalancer: LoadBalancer) { + public override fun attachToClassicLB(loadBalancer: LoadBalancer) { unwrap(this).attachToClassicLB(loadBalancer.let(LoadBalancer::unwrap)) } diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/BaseServiceOptions.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/BaseServiceOptions.kt index 83b1476e36..cda08505d0 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/BaseServiceOptions.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/BaseServiceOptions.kt @@ -159,7 +159,7 @@ public interface BaseServiceOptions { * * Default: false */ - public fun enableEcsManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() + public fun enableECSManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() /** * Whether to enable the ability to execute into a container. @@ -704,7 +704,7 @@ public interface BaseServiceOptions { * * Default: false */ - override fun enableEcsManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() + override fun enableECSManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() /** * Whether to enable the ability to execute into a container. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/BaseServiceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/BaseServiceProps.kt index 1458f29b72..e81a185ed4 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/BaseServiceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/BaseServiceProps.kt @@ -580,7 +580,7 @@ public interface BaseServiceProps : BaseServiceOptions { * * Default: false */ - override fun enableEcsManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() + override fun enableECSManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() /** * Whether to enable the ability to execute into a container. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/CfnService.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/CfnService.kt index 54c496d578..888c79916f 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/CfnService.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/CfnService.kt @@ -1109,6 +1109,11 @@ public open class CfnService( * [TagResource](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TagResource.html) * API action. * + * You must set this to a value other than `NONE` when you use Cost Explorer. For more + * information, see [Amazon ECS usage + * reports](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/usage-reports.html) in the + * *Amazon Elastic Container Service Developer Guide* . + * * The default is `NONE` . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-propagatetags) @@ -1871,6 +1876,11 @@ public open class CfnService( * [TagResource](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TagResource.html) * API action. * + * You must set this to a value other than `NONE` when you use Cost Explorer. For more + * information, see [Amazon ECS usage + * reports](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/usage-reports.html) in the + * *Amazon Elastic Container Service Developer Guide* . + * * The default is `NONE` . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-propagatetags) @@ -3170,6 +3180,13 @@ public open class CfnService( * check to return a healthy status before counting the task towards the minimum healthy percent * total. * + * The default value for a replica service for `minimumHealthyPercent` is 100%. The default + * `minimumHealthyPercent` value for a service using the `DAEMON` service schedule is 0% for the + * AWS CLI , the AWS SDKs, and the APIs and 50% for the AWS Management Console. + * + * The minimum number of healthy tasks during a deployment is the `desiredCount` multiplied by + * the `minimumHealthyPercent` /100, rounded up to the nearest integer value. + * * If a service is using either the blue/green ( `CODE_DEPLOY` ) or `EXTERNAL` deployment types * and is running tasks that use the EC2 launch type, the *minimum healthy percent* value is set to * the default value and is used to define the lower limit on the number of the tasks in the @@ -3300,6 +3317,13 @@ public open class CfnService( * health check to return a healthy status before counting the task towards the minimum healthy * percent total. * + * The default value for a replica service for `minimumHealthyPercent` is 100%. The default + * `minimumHealthyPercent` value for a service using the `DAEMON` service schedule is 0% for the + * AWS CLI , the AWS SDKs, and the APIs and 50% for the AWS Management Console. + * + * The minimum number of healthy tasks during a deployment is the `desiredCount` multiplied by + * the `minimumHealthyPercent` /100, rounded up to the nearest integer value. + * * If a service is using either the blue/green ( `CODE_DEPLOY` ) or `EXTERNAL` deployment * types and is running tasks that use the EC2 launch type, the *minimum healthy percent* value * is set to the default value and is used to define the lower limit on the number of the tasks @@ -3442,6 +3466,13 @@ public open class CfnService( * health check to return a healthy status before counting the task towards the minimum healthy * percent total. * + * The default value for a replica service for `minimumHealthyPercent` is 100%. The default + * `minimumHealthyPercent` value for a service using the `DAEMON` service schedule is 0% for the + * AWS CLI , the AWS SDKs, and the APIs and 50% for the AWS Management Console. + * + * The minimum number of healthy tasks during a deployment is the `desiredCount` multiplied by + * the `minimumHealthyPercent` /100, rounded up to the nearest integer value. + * * If a service is using either the blue/green ( `CODE_DEPLOY` ) or `EXTERNAL` deployment * types and is running tasks that use the EC2 launch type, the *minimum healthy percent* value * is set to the default value and is used to define the lower limit on the number of the tasks @@ -3542,6 +3573,13 @@ public open class CfnService( * health check to return a healthy status before counting the task towards the minimum healthy * percent total. * + * The default value for a replica service for `minimumHealthyPercent` is 100%. The default + * `minimumHealthyPercent` value for a service using the `DAEMON` service schedule is 0% for the + * AWS CLI , the AWS SDKs, and the APIs and 50% for the AWS Management Console. + * + * The minimum number of healthy tasks during a deployment is the `desiredCount` multiplied by + * the `minimumHealthyPercent` /100, rounded up to the nearest integer value. + * * If a service is using either the blue/green ( `CODE_DEPLOY` ) or `EXTERNAL` deployment * types and is running tasks that use the EC2 launch type, the *minimum healthy percent* value * is set to the default value and is used to define the lower limit on the number of the tasks diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/CfnServiceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/CfnServiceProps.kt index 59107b19d0..166a205c29 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/CfnServiceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/CfnServiceProps.kt @@ -334,6 +334,11 @@ public interface CfnServiceProps { * [TagResource](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TagResource.html) API * action. * + * You must set this to a value other than `NONE` when you use Cost Explorer. For more + * information, see [Amazon ECS usage + * reports](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/usage-reports.html) in the + * *Amazon Elastic Container Service Developer Guide* . + * * The default is `NONE` . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-propagatetags) @@ -774,6 +779,11 @@ public interface CfnServiceProps { * [TagResource](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TagResource.html) * API action. * + * You must set this to a value other than `NONE` when you use Cost Explorer. For more + * information, see [Amazon ECS usage + * reports](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/usage-reports.html) in the + * *Amazon Elastic Container Service Developer Guide* . + * * The default is `NONE` . */ public fun propagateTags(propagateTags: String) @@ -1325,6 +1335,11 @@ public interface CfnServiceProps { * [TagResource](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TagResource.html) * API action. * + * You must set this to a value other than `NONE` when you use Cost Explorer. For more + * information, see [Amazon ECS usage + * reports](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/usage-reports.html) in the + * *Amazon Elastic Container Service Developer Guide* . + * * The default is `NONE` . */ override fun propagateTags(propagateTags: String) { @@ -1748,6 +1763,11 @@ public interface CfnServiceProps { * [TagResource](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TagResource.html) * API action. * + * You must set this to a value other than `NONE` when you use Cost Explorer. For more + * information, see [Amazon ECS usage + * reports](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/usage-reports.html) in the + * *Amazon Elastic Container Service Developer Guide* . + * * The default is `NONE` . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-propagatetags) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/CfnTaskDefinition.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/CfnTaskDefinition.kt index 099f3fb4e1..c6bb34f9fa 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/CfnTaskDefinition.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/CfnTaskDefinition.kt @@ -239,6 +239,15 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .transitEncryption("transitEncryption") * .transitEncryptionPort(123) * .build()) + * .fSxWindowsFileServerVolumeConfiguration(FSxWindowsFileServerVolumeConfigurationProperty.builder() + * .fileSystemId("fileSystemId") + * .rootDirectory("rootDirectory") + * // the properties below are optional + * .authorizationConfig(FSxAuthorizationConfigProperty.builder() + * .credentialsParameter("credentialsParameter") + * .domain("domain") + * .build()) + * .build()) * .host(HostVolumePropertiesProperty.builder() * .sourcePath("sourcePath") * .build()) @@ -8819,7 +8828,7 @@ public open class CfnTaskDefinition( /** * The total amount, in GiB, of ephemeral storage to set for the task. * - * The minimum supported value is `21` GiB and the maximum supported value is `200` GiB. + * The minimum supported value is `20` GiB and the maximum supported value is `200` GiB. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-ephemeralstorage.html#cfn-ecs-taskdefinition-ephemeralstorage-sizeingib) */ @@ -8832,7 +8841,7 @@ public open class CfnTaskDefinition( public interface Builder { /** * @param sizeInGiB The total amount, in GiB, of ephemeral storage to set for the task. - * The minimum supported value is `21` GiB and the maximum supported value is `200` GiB. + * The minimum supported value is `20` GiB and the maximum supported value is `200` GiB. */ public fun sizeInGiB(sizeInGiB: Number) } @@ -8844,7 +8853,7 @@ public open class CfnTaskDefinition( /** * @param sizeInGiB The total amount, in GiB, of ephemeral storage to set for the task. - * The minimum supported value is `21` GiB and the maximum supported value is `200` GiB. + * The minimum supported value is `20` GiB and the maximum supported value is `200` GiB. */ override fun sizeInGiB(sizeInGiB: Number) { cdkBuilder.sizeInGiB(sizeInGiB) @@ -8861,7 +8870,7 @@ public open class CfnTaskDefinition( /** * The total amount, in GiB, of ephemeral storage to set for the task. * - * The minimum supported value is `21` GiB and the maximum supported value is `200` GiB. + * The minimum supported value is `20` GiB and the maximum supported value is `200` GiB. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-ephemeralstorage.html#cfn-ecs-taskdefinition-ephemeralstorage-sizeingib) */ @@ -8886,6 +8895,295 @@ public open class CfnTaskDefinition( } } + /** + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.ecs.*; + * FSxAuthorizationConfigProperty fSxAuthorizationConfigProperty = + * FSxAuthorizationConfigProperty.builder() + * .credentialsParameter("credentialsParameter") + * .domain("domain") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-fsxauthorizationconfig.html) + */ + public interface FSxAuthorizationConfigProperty { + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-fsxauthorizationconfig.html#cfn-ecs-taskdefinition-fsxauthorizationconfig-credentialsparameter) + */ + public fun credentialsParameter(): String + + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-fsxauthorizationconfig.html#cfn-ecs-taskdefinition-fsxauthorizationconfig-domain) + */ + public fun domain(): String + + /** + * A builder for [FSxAuthorizationConfigProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param credentialsParameter the value to be set. + */ + public fun credentialsParameter(credentialsParameter: String) + + /** + * @param domain the value to be set. + */ + public fun domain(domain: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.ecs.CfnTaskDefinition.FSxAuthorizationConfigProperty.Builder + = + software.amazon.awscdk.services.ecs.CfnTaskDefinition.FSxAuthorizationConfigProperty.builder() + + /** + * @param credentialsParameter the value to be set. + */ + override fun credentialsParameter(credentialsParameter: String) { + cdkBuilder.credentialsParameter(credentialsParameter) + } + + /** + * @param domain the value to be set. + */ + override fun domain(domain: String) { + cdkBuilder.domain(domain) + } + + public fun build(): + software.amazon.awscdk.services.ecs.CfnTaskDefinition.FSxAuthorizationConfigProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.ecs.CfnTaskDefinition.FSxAuthorizationConfigProperty, + ) : CdkObject(cdkObject), FSxAuthorizationConfigProperty { + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-fsxauthorizationconfig.html#cfn-ecs-taskdefinition-fsxauthorizationconfig-credentialsparameter) + */ + override fun credentialsParameter(): String = unwrap(this).getCredentialsParameter() + + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-fsxauthorizationconfig.html#cfn-ecs-taskdefinition-fsxauthorizationconfig-domain) + */ + override fun domain(): String = unwrap(this).getDomain() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): FSxAuthorizationConfigProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.ecs.CfnTaskDefinition.FSxAuthorizationConfigProperty): + FSxAuthorizationConfigProperty = CdkObjectWrappers.wrap(cdkObject) as? + FSxAuthorizationConfigProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: FSxAuthorizationConfigProperty): + software.amazon.awscdk.services.ecs.CfnTaskDefinition.FSxAuthorizationConfigProperty = + (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.ecs.CfnTaskDefinition.FSxAuthorizationConfigProperty + } + } + + /** + * This parameter is specified when you're using [Amazon FSx for Windows File + * Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/what-is.html) file system for task + * storage. + * + * For more information and the input format, see [Amazon FSx for Windows File Server + * volumes](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/wfsx-volumes.html) in the + * *Amazon Elastic Container Service Developer Guide* . + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.ecs.*; + * FSxWindowsFileServerVolumeConfigurationProperty fSxWindowsFileServerVolumeConfigurationProperty + * = FSxWindowsFileServerVolumeConfigurationProperty.builder() + * .fileSystemId("fileSystemId") + * .rootDirectory("rootDirectory") + * // the properties below are optional + * .authorizationConfig(FSxAuthorizationConfigProperty.builder() + * .credentialsParameter("credentialsParameter") + * .domain("domain") + * .build()) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-fsxwindowsfileservervolumeconfiguration.html) + */ + public interface FSxWindowsFileServerVolumeConfigurationProperty { + /** + * The authorization configuration details for the Amazon FSx for Windows File Server file + * system. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-fsxwindowsfileservervolumeconfiguration.html#cfn-ecs-taskdefinition-fsxwindowsfileservervolumeconfiguration-authorizationconfig) + */ + public fun authorizationConfig(): Any? = unwrap(this).getAuthorizationConfig() + + /** + * The Amazon FSx for Windows File Server file system ID to use. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-fsxwindowsfileservervolumeconfiguration.html#cfn-ecs-taskdefinition-fsxwindowsfileservervolumeconfiguration-filesystemid) + */ + public fun fileSystemId(): String + + /** + * The directory within the Amazon FSx for Windows File Server file system to mount as the root + * directory inside the host. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-fsxwindowsfileservervolumeconfiguration.html#cfn-ecs-taskdefinition-fsxwindowsfileservervolumeconfiguration-rootdirectory) + */ + public fun rootDirectory(): String + + /** + * A builder for [FSxWindowsFileServerVolumeConfigurationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param authorizationConfig The authorization configuration details for the Amazon FSx for + * Windows File Server file system. + */ + public fun authorizationConfig(authorizationConfig: IResolvable) + + /** + * @param authorizationConfig The authorization configuration details for the Amazon FSx for + * Windows File Server file system. + */ + public fun authorizationConfig(authorizationConfig: FSxAuthorizationConfigProperty) + + /** + * @param authorizationConfig The authorization configuration details for the Amazon FSx for + * Windows File Server file system. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("7c2cf3e3c81c756e43249ded400581fc3d5675fef46a1e59cc5431f4399e40ba") + public + fun authorizationConfig(authorizationConfig: FSxAuthorizationConfigProperty.Builder.() -> Unit) + + /** + * @param fileSystemId The Amazon FSx for Windows File Server file system ID to use. + */ + public fun fileSystemId(fileSystemId: String) + + /** + * @param rootDirectory The directory within the Amazon FSx for Windows File Server file + * system to mount as the root directory inside the host. + */ + public fun rootDirectory(rootDirectory: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.ecs.CfnTaskDefinition.FSxWindowsFileServerVolumeConfigurationProperty.Builder + = + software.amazon.awscdk.services.ecs.CfnTaskDefinition.FSxWindowsFileServerVolumeConfigurationProperty.builder() + + /** + * @param authorizationConfig The authorization configuration details for the Amazon FSx for + * Windows File Server file system. + */ + override fun authorizationConfig(authorizationConfig: IResolvable) { + cdkBuilder.authorizationConfig(authorizationConfig.let(IResolvable::unwrap)) + } + + /** + * @param authorizationConfig The authorization configuration details for the Amazon FSx for + * Windows File Server file system. + */ + override fun authorizationConfig(authorizationConfig: FSxAuthorizationConfigProperty) { + cdkBuilder.authorizationConfig(authorizationConfig.let(FSxAuthorizationConfigProperty::unwrap)) + } + + /** + * @param authorizationConfig The authorization configuration details for the Amazon FSx for + * Windows File Server file system. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("7c2cf3e3c81c756e43249ded400581fc3d5675fef46a1e59cc5431f4399e40ba") + override + fun authorizationConfig(authorizationConfig: FSxAuthorizationConfigProperty.Builder.() -> Unit): + Unit = authorizationConfig(FSxAuthorizationConfigProperty(authorizationConfig)) + + /** + * @param fileSystemId The Amazon FSx for Windows File Server file system ID to use. + */ + override fun fileSystemId(fileSystemId: String) { + cdkBuilder.fileSystemId(fileSystemId) + } + + /** + * @param rootDirectory The directory within the Amazon FSx for Windows File Server file + * system to mount as the root directory inside the host. + */ + override fun rootDirectory(rootDirectory: String) { + cdkBuilder.rootDirectory(rootDirectory) + } + + public fun build(): + software.amazon.awscdk.services.ecs.CfnTaskDefinition.FSxWindowsFileServerVolumeConfigurationProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.ecs.CfnTaskDefinition.FSxWindowsFileServerVolumeConfigurationProperty, + ) : CdkObject(cdkObject), FSxWindowsFileServerVolumeConfigurationProperty { + /** + * The authorization configuration details for the Amazon FSx for Windows File Server file + * system. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-fsxwindowsfileservervolumeconfiguration.html#cfn-ecs-taskdefinition-fsxwindowsfileservervolumeconfiguration-authorizationconfig) + */ + override fun authorizationConfig(): Any? = unwrap(this).getAuthorizationConfig() + + /** + * The Amazon FSx for Windows File Server file system ID to use. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-fsxwindowsfileservervolumeconfiguration.html#cfn-ecs-taskdefinition-fsxwindowsfileservervolumeconfiguration-filesystemid) + */ + override fun fileSystemId(): String = unwrap(this).getFileSystemId() + + /** + * The directory within the Amazon FSx for Windows File Server file system to mount as the + * root directory inside the host. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-fsxwindowsfileservervolumeconfiguration.html#cfn-ecs-taskdefinition-fsxwindowsfileservervolumeconfiguration-rootdirectory) + */ + override fun rootDirectory(): String = unwrap(this).getRootDirectory() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): + FSxWindowsFileServerVolumeConfigurationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.ecs.CfnTaskDefinition.FSxWindowsFileServerVolumeConfigurationProperty): + FSxWindowsFileServerVolumeConfigurationProperty = CdkObjectWrappers.wrap(cdkObject) as? + FSxWindowsFileServerVolumeConfigurationProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: FSxWindowsFileServerVolumeConfigurationProperty): + software.amazon.awscdk.services.ecs.CfnTaskDefinition.FSxWindowsFileServerVolumeConfigurationProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.ecs.CfnTaskDefinition.FSxWindowsFileServerVolumeConfigurationProperty + } + } + /** * The FireLens configuration for the container. * @@ -13838,6 +14136,15 @@ public open class CfnTaskDefinition( * .transitEncryption("transitEncryption") * .transitEncryptionPort(123) * .build()) + * .fSxWindowsFileServerVolumeConfiguration(FSxWindowsFileServerVolumeConfigurationProperty.builder() + * .fileSystemId("fileSystemId") + * .rootDirectory("rootDirectory") + * // the properties below are optional + * .authorizationConfig(FSxAuthorizationConfigProperty.builder() + * .credentialsParameter("credentialsParameter") + * .domain("domain") + * .build()) + * .build()) * .host(HostVolumePropertiesProperty.builder() * .sourcePath("sourcePath") * .build()) @@ -13885,6 +14192,15 @@ public open class CfnTaskDefinition( */ public fun efsVolumeConfiguration(): Any? = unwrap(this).getEfsVolumeConfiguration() + /** + * This parameter is specified when you use Amazon FSx for Windows File Server file system for + * task storage. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volume.html#cfn-ecs-taskdefinition-volume-fsxwindowsfileservervolumeconfiguration) + */ + public fun fSxWindowsFileServerVolumeConfiguration(): Any? = + unwrap(this).getFSxWindowsFileServerVolumeConfiguration() + /** * This parameter is specified when you use bind mount host volumes. * @@ -14003,6 +14319,29 @@ public open class CfnTaskDefinition( public fun efsVolumeConfiguration(efsVolumeConfiguration: EFSVolumeConfigurationProperty.Builder.() -> Unit) + /** + * @param fSxWindowsFileServerVolumeConfiguration This parameter is specified when you use + * Amazon FSx for Windows File Server file system for task storage. + */ + public + fun fSxWindowsFileServerVolumeConfiguration(fSxWindowsFileServerVolumeConfiguration: IResolvable) + + /** + * @param fSxWindowsFileServerVolumeConfiguration This parameter is specified when you use + * Amazon FSx for Windows File Server file system for task storage. + */ + public + fun fSxWindowsFileServerVolumeConfiguration(fSxWindowsFileServerVolumeConfiguration: FSxWindowsFileServerVolumeConfigurationProperty) + + /** + * @param fSxWindowsFileServerVolumeConfiguration This parameter is specified when you use + * Amazon FSx for Windows File Server file system for task storage. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("914b2adb2ef13f4d8bb0fa7bbbbb1898eac695c1c2fbe474d77213f4e535bf42") + public + fun fSxWindowsFileServerVolumeConfiguration(fSxWindowsFileServerVolumeConfiguration: FSxWindowsFileServerVolumeConfigurationProperty.Builder.() -> Unit) + /** * @param host This parameter is specified when you use bind mount host volumes. * The contents of the `host` parameter determine whether your bind mount host volume persists @@ -14161,6 +14500,35 @@ public open class CfnTaskDefinition( fun efsVolumeConfiguration(efsVolumeConfiguration: EFSVolumeConfigurationProperty.Builder.() -> Unit): Unit = efsVolumeConfiguration(EFSVolumeConfigurationProperty(efsVolumeConfiguration)) + /** + * @param fSxWindowsFileServerVolumeConfiguration This parameter is specified when you use + * Amazon FSx for Windows File Server file system for task storage. + */ + override + fun fSxWindowsFileServerVolumeConfiguration(fSxWindowsFileServerVolumeConfiguration: IResolvable) { + cdkBuilder.fSxWindowsFileServerVolumeConfiguration(fSxWindowsFileServerVolumeConfiguration.let(IResolvable::unwrap)) + } + + /** + * @param fSxWindowsFileServerVolumeConfiguration This parameter is specified when you use + * Amazon FSx for Windows File Server file system for task storage. + */ + override + fun fSxWindowsFileServerVolumeConfiguration(fSxWindowsFileServerVolumeConfiguration: FSxWindowsFileServerVolumeConfigurationProperty) { + cdkBuilder.fSxWindowsFileServerVolumeConfiguration(fSxWindowsFileServerVolumeConfiguration.let(FSxWindowsFileServerVolumeConfigurationProperty::unwrap)) + } + + /** + * @param fSxWindowsFileServerVolumeConfiguration This parameter is specified when you use + * Amazon FSx for Windows File Server file system for task storage. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("914b2adb2ef13f4d8bb0fa7bbbbb1898eac695c1c2fbe474d77213f4e535bf42") + override + fun fSxWindowsFileServerVolumeConfiguration(fSxWindowsFileServerVolumeConfiguration: FSxWindowsFileServerVolumeConfigurationProperty.Builder.() -> Unit): + Unit = + fSxWindowsFileServerVolumeConfiguration(FSxWindowsFileServerVolumeConfigurationProperty(fSxWindowsFileServerVolumeConfiguration)) + /** * @param host This parameter is specified when you use bind mount host volumes. * The contents of the `host` parameter determine whether your bind mount host volume persists @@ -14270,6 +14638,15 @@ public open class CfnTaskDefinition( */ override fun efsVolumeConfiguration(): Any? = unwrap(this).getEfsVolumeConfiguration() + /** + * This parameter is specified when you use Amazon FSx for Windows File Server file system for + * task storage. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volume.html#cfn-ecs-taskdefinition-volume-fsxwindowsfileservervolumeconfiguration) + */ + override fun fSxWindowsFileServerVolumeConfiguration(): Any? = + unwrap(this).getFSxWindowsFileServerVolumeConfiguration() + /** * This parameter is specified when you use bind mount host volumes. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/CfnTaskDefinitionProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/CfnTaskDefinitionProps.kt index b29936184f..1b3f2bc967 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/CfnTaskDefinitionProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/CfnTaskDefinitionProps.kt @@ -207,6 +207,15 @@ import kotlin.jvm.JvmName * .transitEncryption("transitEncryption") * .transitEncryptionPort(123) * .build()) + * .fSxWindowsFileServerVolumeConfiguration(FSxWindowsFileServerVolumeConfigurationProperty.builder() + * .fileSystemId("fileSystemId") + * .rootDirectory("rootDirectory") + * // the properties below are optional + * .authorizationConfig(FSxAuthorizationConfigProperty.builder() + * .credentialsParameter("credentialsParameter") + * .domain("domain") + * .build()) + * .build()) * .host(HostVolumePropertiesProperty.builder() * .sourcePath("sourcePath") * .build()) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/CfnTaskSet.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/CfnTaskSet.kt index 792707ce95..ae492e8366 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/CfnTaskSet.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/CfnTaskSet.kt @@ -29,6 +29,12 @@ import software.constructs.Construct as SoftwareConstructsConstruct * types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html) in the * *Amazon Elastic Container Service Developer Guide* . * + * + * On March 21, 2024, a change was made to resolve the task definition revision before + * authorization. When a task definition revision is not specified, authorization will occur using the + * latest revision of a task definition. + * + * * For information about the maximum number of task sets and otther quotas, see [Amazon ECS service * quotas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-quotas.html) in the * *Amazon Elastic Container Service Developer Guide* . diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/ContainerDefinition.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/ContainerDefinition.kt index 1f40378002..b2c7d21fcf 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/ContainerDefinition.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/ContainerDefinition.kt @@ -89,6 +89,16 @@ public open class ContainerDefinition( fun addContainerDependencies(containerDependencies: ContainerDependency.Builder.() -> Unit): Unit = addContainerDependencies(ContainerDependency(containerDependencies)) + /** + * This method adds a Docker label to the container. + * + * @param name + * @param value + */ + public open fun addDockerLabel(name: String, `value`: String) { + unwrap(this).addDockerLabel(name, `value`) + } + /** * This method adds an environment variable to the container. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/Ec2ServiceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/Ec2ServiceProps.kt index 6190b125c6..3c981fb39a 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/Ec2ServiceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/Ec2ServiceProps.kt @@ -792,7 +792,7 @@ public interface Ec2ServiceProps : BaseServiceOptions { * * Default: false */ - override fun enableEcsManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() + override fun enableECSManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() /** * Whether to enable the ability to execute into a container. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/Ec2TaskDefinition.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/Ec2TaskDefinition.kt index 8c2218359c..06123f0e1e 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/Ec2TaskDefinition.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/Ec2TaskDefinition.kt @@ -161,7 +161,7 @@ public open class Ec2TaskDefinition( /** * The process namespace to use for the containers in the task. * - * Not supported in Fargate and Windows containers. + * Not supported in Windows containers. * * Default: - PidMode used by the task is not specified * @@ -334,7 +334,7 @@ public open class Ec2TaskDefinition( /** * The process namespace to use for the containers in the task. * - * Not supported in Fargate and Windows containers. + * Not supported in Windows containers. * * Default: - PidMode used by the task is not specified * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/Ec2TaskDefinitionProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/Ec2TaskDefinitionProps.kt index 5b8efc7cab..33f14f4dce 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/Ec2TaskDefinitionProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/Ec2TaskDefinitionProps.kt @@ -59,7 +59,7 @@ public interface Ec2TaskDefinitionProps : CommonTaskDefinitionProps { /** * The process namespace to use for the containers in the task. * - * Not supported in Fargate and Windows containers. + * Not supported in Windows containers. * * Default: - PidMode used by the task is not specified */ @@ -123,7 +123,7 @@ public interface Ec2TaskDefinitionProps : CommonTaskDefinitionProps { /** * @param pidMode The process namespace to use for the containers in the task. - * Not supported in Fargate and Windows containers. + * Not supported in Windows containers. */ public fun pidMode(pidMode: PidMode) @@ -227,7 +227,7 @@ public interface Ec2TaskDefinitionProps : CommonTaskDefinitionProps { /** * @param pidMode The process namespace to use for the containers in the task. - * Not supported in Fargate and Windows containers. + * Not supported in Windows containers. */ override fun pidMode(pidMode: PidMode) { cdkBuilder.pidMode(pidMode.let(PidMode::unwrap)) @@ -343,7 +343,7 @@ public interface Ec2TaskDefinitionProps : CommonTaskDefinitionProps { /** * The process namespace to use for the containers in the task. * - * Not supported in Fargate and Windows containers. + * Not supported in Windows containers. * * Default: - PidMode used by the task is not specified */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/ExternalServiceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/ExternalServiceProps.kt index 10efa0205a..3be69d697a 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/ExternalServiceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/ExternalServiceProps.kt @@ -552,7 +552,7 @@ public interface ExternalServiceProps : BaseServiceOptions { * * Default: false */ - override fun enableEcsManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() + override fun enableECSManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() /** * Whether to enable the ability to execute into a container. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/FargateServiceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/FargateServiceProps.kt index f8397743df..d3fee11a2f 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/FargateServiceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/FargateServiceProps.kt @@ -674,7 +674,7 @@ public interface FargateServiceProps : BaseServiceOptions { * * Default: false */ - override fun enableEcsManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() + override fun enableECSManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() /** * Whether to enable the ability to execute into a container. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/FargateTaskDefinition.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/FargateTaskDefinition.kt index fcb9dad9d0..eccd9f261e 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/FargateTaskDefinition.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/FargateTaskDefinition.kt @@ -186,6 +186,19 @@ public open class FargateTaskDefinition( */ public fun memoryLimitMiB(memoryLimitMiB: Number) + /** + * The process namespace to use for the containers in the task. + * + * Only supported for tasks that are hosted on AWS Fargate if the tasks + * are using platform version 1.4.0 or later (Linux). + * Not supported in Windows containers. + * + * Default: - PidMode used by the task is not specified + * + * @param pidMode The process namespace to use for the containers in the task. + */ + public fun pidMode(pidMode: PidMode) + /** * The configuration details for the App Mesh proxy. * @@ -378,6 +391,21 @@ public open class FargateTaskDefinition( cdkBuilder.memoryLimitMiB(memoryLimitMiB) } + /** + * The process namespace to use for the containers in the task. + * + * Only supported for tasks that are hosted on AWS Fargate if the tasks + * are using platform version 1.4.0 or later (Linux). + * Not supported in Windows containers. + * + * Default: - PidMode used by the task is not specified + * + * @param pidMode The process namespace to use for the containers in the task. + */ + override fun pidMode(pidMode: PidMode) { + cdkBuilder.pidMode(pidMode.let(PidMode::unwrap)) + } + /** * The configuration details for the App Mesh proxy. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/FargateTaskDefinitionProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/FargateTaskDefinitionProps.kt index 4bf37ab708..8a849c07df 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/FargateTaskDefinitionProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/FargateTaskDefinitionProps.kt @@ -18,20 +18,16 @@ import kotlin.jvm.JvmName * Example: * * ``` - * // Create a Task Definition for the Windows container to start - * FargateTaskDefinition taskDefinition = FargateTaskDefinition.Builder.create(this, "TaskDef") + * FargateTaskDefinition fargateTaskDefinition = FargateTaskDefinition.Builder.create(this, + * "TaskDef") * .runtimePlatform(RuntimePlatform.builder() - * .operatingSystemFamily(OperatingSystemFamily.WINDOWS_SERVER_2019_CORE) - * .cpuArchitecture(CpuArchitecture.X86_64) + * .operatingSystemFamily(OperatingSystemFamily.LINUX) + * .cpuArchitecture(CpuArchitecture.ARM64) * .build()) - * .cpu(1024) - * .memoryLimitMiB(2048) + * .memoryLimitMiB(512) + * .cpu(256) + * .pidMode(PidMode.HOST) * .build(); - * taskDefinition.addContainer("windowsservercore", ContainerDefinitionOptions.builder() - * .logging(LogDriver.awsLogs(AwsLogDriverProps.builder().streamPrefix("win-iis-on-fargate").build())) - * .portMappings(List.of(PortMapping.builder().containerPort(80).build())) - * .image(ContainerImage.fromRegistry("mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019")) - * .build()); * ``` */ public interface FargateTaskDefinitionProps : CommonTaskDefinitionProps { @@ -107,6 +103,17 @@ public interface FargateTaskDefinitionProps : CommonTaskDefinitionProps { */ public fun memoryLimitMiB(): Number? = unwrap(this).getMemoryLimitMiB() + /** + * The process namespace to use for the containers in the task. + * + * Only supported for tasks that are hosted on AWS Fargate if the tasks + * are using platform version 1.4.0 or later (Linux). + * Not supported in Windows containers. + * + * Default: - PidMode used by the task is not specified + */ + public fun pidMode(): PidMode? = unwrap(this).getPidMode()?.let(PidMode::wrap) + /** * The operating system that your task definitions are running on. * @@ -199,6 +206,14 @@ public interface FargateTaskDefinitionProps : CommonTaskDefinitionProps { */ public fun memoryLimitMiB(memoryLimitMiB: Number) + /** + * @param pidMode The process namespace to use for the containers in the task. + * Only supported for tasks that are hosted on AWS Fargate if the tasks + * are using platform version 1.4.0 or later (Linux). + * Not supported in Windows containers. + */ + public fun pidMode(pidMode: PidMode) + /** * @param proxyConfiguration The configuration details for the App Mesh proxy. */ @@ -332,6 +347,16 @@ public interface FargateTaskDefinitionProps : CommonTaskDefinitionProps { cdkBuilder.memoryLimitMiB(memoryLimitMiB) } + /** + * @param pidMode The process namespace to use for the containers in the task. + * Only supported for tasks that are hosted on AWS Fargate if the tasks + * are using platform version 1.4.0 or later (Linux). + * Not supported in Windows containers. + */ + override fun pidMode(pidMode: PidMode) { + cdkBuilder.pidMode(pidMode.let(PidMode::unwrap)) + } + /** * @param proxyConfiguration The configuration details for the App Mesh proxy. */ @@ -481,6 +506,17 @@ public interface FargateTaskDefinitionProps : CommonTaskDefinitionProps { */ override fun memoryLimitMiB(): Number? = unwrap(this).getMemoryLimitMiB() + /** + * The process namespace to use for the containers in the task. + * + * Only supported for tasks that are hosted on AWS Fargate if the tasks + * are using platform version 1.4.0 or later (Linux). + * Not supported in Windows containers. + * + * Default: - PidMode used by the task is not specified + */ + override fun pidMode(): PidMode? = unwrap(this).getPidMode()?.let(PidMode::wrap) + /** * The configuration details for the App Mesh proxy. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/FirelensOptions.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/FirelensOptions.kt index 8e9adf5de1..e638026e41 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/FirelensOptions.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/FirelensOptions.kt @@ -54,7 +54,7 @@ public interface FirelensOptions { * * Default: - true */ - public fun enableEcsLogMetadata(): Boolean? = unwrap(this).getEnableECSLogMetadata() + public fun enableECSLogMetadata(): Boolean? = unwrap(this).getEnableECSLogMetadata() /** * A builder for [FirelensOptions] @@ -145,7 +145,7 @@ public interface FirelensOptions { * * Default: - true */ - override fun enableEcsLogMetadata(): Boolean? = unwrap(this).getEnableECSLogMetadata() + override fun enableECSLogMetadata(): Boolean? = unwrap(this).getEnableECSLogMetadata() } public companion object { diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/IEcsLoadBalancerTarget.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/IEcsLoadBalancerTarget.kt index 6ff41dbf1b..bfde938eb0 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/IEcsLoadBalancerTarget.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/IEcsLoadBalancerTarget.kt @@ -39,7 +39,7 @@ public interface IEcsLoadBalancerTarget : IApplicationLoadBalancerTarget, * @param loadBalancer [disable-awslint:ref-via-interface] The load balancer to attach the * target to. */ - override fun attachToClassicLb(loadBalancer: LoadBalancer) { + override fun attachToClassicLB(loadBalancer: LoadBalancer) { unwrap(this).attachToClassicLB(loadBalancer.let(LoadBalancer::unwrap)) } diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/ServiceManagedVolumeProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/ServiceManagedVolumeProps.kt index 04c8a7a2ca..241b4acc82 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/ServiceManagedVolumeProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/ServiceManagedVolumeProps.kt @@ -56,7 +56,7 @@ public interface ServiceManagedVolumeProps { * * Default: - undefined */ - public fun managedEbsVolume(): ServiceManagedEBSVolumeConfiguration? = + public fun managedEBSVolume(): ServiceManagedEBSVolumeConfiguration? = unwrap(this).getManagedEBSVolume()?.let(ServiceManagedEBSVolumeConfiguration::wrap) /** @@ -135,7 +135,7 @@ public interface ServiceManagedVolumeProps { * * Default: - undefined */ - override fun managedEbsVolume(): ServiceManagedEBSVolumeConfiguration? = + override fun managedEBSVolume(): ServiceManagedEBSVolumeConfiguration? = unwrap(this).getManagedEBSVolume()?.let(ServiceManagedEBSVolumeConfiguration::wrap) /** diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/TaskDefinition.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/TaskDefinition.kt index 28d0349fcb..22ecc7ee11 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/TaskDefinition.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/TaskDefinition.kt @@ -309,6 +309,15 @@ public open class TaskDefinition( */ public open fun obtainExecutionRole(): IRole = unwrap(this).obtainExecutionRole().let(IRole::wrap) + /** + * The process namespace to use for the containers in the task. + * + * Only supported for tasks that are hosted on AWS Fargate if the tasks + * are using platform version 1.4.0 or later (Linux). + * Not supported in Windows containers. + */ + public open fun pidMode(): PidMode? = unwrap(this).getPidMode()?.let(PidMode::wrap) + /** * Whether this task definition has at least a container that references a specific JSON field of * a secret stored in Secrets Manager. @@ -491,7 +500,9 @@ public open class TaskDefinition( /** * The process namespace to use for the containers in the task. * - * Not supported in Fargate and Windows containers. + * Only supported for tasks that are hosted on AWS Fargate if the tasks + * are using platform version 1.4.0 or later (Linux). + * Not supported in Windows containers. * * Default: - PidMode used by the task is not specified * @@ -783,7 +794,9 @@ public open class TaskDefinition( /** * The process namespace to use for the containers in the task. * - * Not supported in Fargate and Windows containers. + * Only supported for tasks that are hosted on AWS Fargate if the tasks + * are using platform version 1.4.0 or later (Linux). + * Not supported in Windows containers. * * Default: - PidMode used by the task is not specified * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/TaskDefinitionProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/TaskDefinitionProps.kt index 8659e8520f..356c6469e2 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/TaskDefinitionProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/TaskDefinitionProps.kt @@ -21,27 +21,27 @@ import kotlin.jvm.JvmName * IVpc vpc = Vpc.fromLookup(this, "Vpc", VpcLookupOptions.builder() * .isDefault(true) * .build()); - * Cluster cluster = Cluster.Builder.create(this, "Ec2Cluster").vpc(vpc).build(); - * cluster.addCapacity("DefaultAutoScalingGroup", AddCapacityOptions.builder() - * .instanceType(new InstanceType("t2.micro")) - * .vpcSubnets(SubnetSelection.builder().subnetType(SubnetType.PUBLIC).build()) - * .build()); + * Cluster cluster = Cluster.Builder.create(this, "FargateCluster").vpc(vpc).build(); * TaskDefinition taskDefinition = TaskDefinition.Builder.create(this, "TD") - * .compatibility(Compatibility.EC2) + * .memoryMiB("512") + * .cpu("256") + * .compatibility(Compatibility.FARGATE) * .build(); - * taskDefinition.addContainer("TheContainer", ContainerDefinitionOptions.builder() + * ContainerDefinition containerDefinition = taskDefinition.addContainer("TheContainer", + * ContainerDefinitionOptions.builder() * .image(ContainerImage.fromRegistry("foo/bar")) * .memoryLimitMiB(256) * .build()); - * EcsRunTask runTask = EcsRunTask.Builder.create(this, "Run") + * EcsRunTask runTask = EcsRunTask.Builder.create(this, "RunFargate") * .integrationPattern(IntegrationPattern.RUN_JOB) * .cluster(cluster) * .taskDefinition(taskDefinition) - * .launchTarget(EcsEc2LaunchTarget.Builder.create() - * .placementStrategies(List.of(PlacementStrategy.spreadAcrossInstances(), - * PlacementStrategy.packedByCpu(), PlacementStrategy.randomly())) - * .placementConstraints(List.of(PlacementConstraint.memberOf("blieptuut"))) - * .build()) + * .assignPublicIp(true) + * .containerOverrides(List.of(ContainerOverride.builder() + * .containerDefinition(containerDefinition) + * .environment(List.of(TaskEnvironmentVariable.builder().name("SOME_KEY").value(JsonPath.stringAt("$.SomeKey")).build())) + * .build())) + * .launchTarget(new EcsFargateLaunchTarget()) * .propagatedTagSource(PropagatedTagSource.TASK_DEFINITION) * .build(); * ``` @@ -154,7 +154,9 @@ public interface TaskDefinitionProps : CommonTaskDefinitionProps { /** * The process namespace to use for the containers in the task. * - * Not supported in Fargate and Windows containers. + * Only supported for tasks that are hosted on AWS Fargate if the tasks + * are using platform version 1.4.0 or later (Linux). + * Not supported in Windows containers. * * Default: - PidMode used by the task is not specified */ @@ -297,7 +299,9 @@ public interface TaskDefinitionProps : CommonTaskDefinitionProps { /** * @param pidMode The process namespace to use for the containers in the task. - * Not supported in Fargate and Windows containers. + * Only supported for tasks that are hosted on AWS Fargate if the tasks + * are using platform version 1.4.0 or later (Linux). + * Not supported in Windows containers. */ public fun pidMode(pidMode: PidMode) @@ -493,7 +497,9 @@ public interface TaskDefinitionProps : CommonTaskDefinitionProps { /** * @param pidMode The process namespace to use for the containers in the task. - * Not supported in Fargate and Windows containers. + * Only supported for tasks that are hosted on AWS Fargate if the tasks + * are using platform version 1.4.0 or later (Linux). + * Not supported in Windows containers. */ override fun pidMode(pidMode: PidMode) { cdkBuilder.pidMode(pidMode.let(PidMode::unwrap)) @@ -704,7 +710,9 @@ public interface TaskDefinitionProps : CommonTaskDefinitionProps { /** * The process namespace to use for the containers in the task. * - * Not supported in Fargate and Windows containers. + * Only supported for tasks that are hosted on AWS Fargate if the tasks + * are using platform version 1.4.0 or later (Linux). + * Not supported in Windows containers. * * Default: - PidMode used by the task is not specified */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/ApplicationLoadBalancedEc2ServiceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/ApplicationLoadBalancedEc2ServiceProps.kt index 36624df8d1..1fcf464d43 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/ApplicationLoadBalancedEc2ServiceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/ApplicationLoadBalancedEc2ServiceProps.kt @@ -984,7 +984,7 @@ public interface ApplicationLoadBalancedEc2ServiceProps : ApplicationLoadBalance * * Default: false */ - override fun enableEcsManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() + override fun enableECSManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() /** * Whether ECS Exec should be enabled. @@ -1170,7 +1170,7 @@ public interface ApplicationLoadBalancedEc2ServiceProps : ApplicationLoadBalance * * Default: false */ - override fun redirectHttp(): Boolean? = unwrap(this).getRedirectHTTP() + override fun redirectHTTP(): Boolean? = unwrap(this).getRedirectHTTP() /** * The name of the service. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/ApplicationLoadBalancedFargateServiceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/ApplicationLoadBalancedFargateServiceProps.kt index fe38331646..2f279bd8de 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/ApplicationLoadBalancedFargateServiceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/ApplicationLoadBalancedFargateServiceProps.kt @@ -1070,7 +1070,7 @@ public interface ApplicationLoadBalancedFargateServiceProps : * * Default: false */ - override fun enableEcsManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() + override fun enableECSManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() /** * Whether ECS Exec should be enabled. @@ -1270,7 +1270,7 @@ public interface ApplicationLoadBalancedFargateServiceProps : * * Default: false */ - override fun redirectHttp(): Boolean? = unwrap(this).getRedirectHTTP() + override fun redirectHTTP(): Boolean? = unwrap(this).getRedirectHTTP() /** * The runtime platform of the task definition. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/ApplicationLoadBalancedServiceBaseProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/ApplicationLoadBalancedServiceBaseProps.kt index a796d6da42..608dbd4e02 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/ApplicationLoadBalancedServiceBaseProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/ApplicationLoadBalancedServiceBaseProps.kt @@ -223,7 +223,7 @@ public interface ApplicationLoadBalancedServiceBaseProps { * * Default: false */ - public fun enableEcsManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() + public fun enableECSManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() /** * Whether ECS Exec should be enabled. @@ -359,7 +359,7 @@ public interface ApplicationLoadBalancedServiceBaseProps { * * Default: false */ - public fun redirectHttp(): Boolean? = unwrap(this).getRedirectHTTP() + public fun redirectHTTP(): Boolean? = unwrap(this).getRedirectHTTP() /** * The name of the service. @@ -1067,7 +1067,7 @@ public interface ApplicationLoadBalancedServiceBaseProps { * * Default: false */ - override fun enableEcsManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() + override fun enableECSManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() /** * Whether ECS Exec should be enabled. @@ -1203,7 +1203,7 @@ public interface ApplicationLoadBalancedServiceBaseProps { * * Default: false */ - override fun redirectHttp(): Boolean? = unwrap(this).getRedirectHTTP() + override fun redirectHTTP(): Boolean? = unwrap(this).getRedirectHTTP() /** * The name of the service. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/ApplicationMultipleTargetGroupsEc2ServiceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/ApplicationMultipleTargetGroupsEc2ServiceProps.kt index 7d254e4239..5a67d94770 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/ApplicationMultipleTargetGroupsEc2ServiceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/ApplicationMultipleTargetGroupsEc2ServiceProps.kt @@ -570,7 +570,7 @@ public interface ApplicationMultipleTargetGroupsEc2ServiceProps : * * Default: false */ - override fun enableEcsManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() + override fun enableECSManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() /** * Whether ECS Exec should be enabled. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/ApplicationMultipleTargetGroupsFargateServiceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/ApplicationMultipleTargetGroupsFargateServiceProps.kt index 1252f46610..0e99c2313f 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/ApplicationMultipleTargetGroupsFargateServiceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/ApplicationMultipleTargetGroupsFargateServiceProps.kt @@ -620,7 +620,7 @@ public interface ApplicationMultipleTargetGroupsFargateServiceProps : * * Default: false */ - override fun enableEcsManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() + override fun enableECSManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() /** * Whether ECS Exec should be enabled. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/ApplicationMultipleTargetGroupsServiceBaseProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/ApplicationMultipleTargetGroupsServiceBaseProps.kt index 4ccb7c4e3b..399005f1b7 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/ApplicationMultipleTargetGroupsServiceBaseProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/ApplicationMultipleTargetGroupsServiceBaseProps.kt @@ -146,7 +146,7 @@ public interface ApplicationMultipleTargetGroupsServiceBaseProps { * * Default: false */ - public fun enableEcsManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() + public fun enableECSManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() /** * Whether ECS Exec should be enabled. @@ -512,7 +512,7 @@ public interface ApplicationMultipleTargetGroupsServiceBaseProps { * * Default: false */ - override fun enableEcsManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() + override fun enableECSManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() /** * Whether ECS Exec should be enabled. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/NetworkLoadBalancedEc2ServiceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/NetworkLoadBalancedEc2ServiceProps.kt index a52b6ccb66..46318f2349 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/NetworkLoadBalancedEc2ServiceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/NetworkLoadBalancedEc2ServiceProps.kt @@ -834,7 +834,7 @@ public interface NetworkLoadBalancedEc2ServiceProps : NetworkLoadBalancedService * * Default: false */ - override fun enableEcsManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() + override fun enableECSManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() /** * Whether ECS Exec should be enabled. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/NetworkLoadBalancedFargateServiceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/NetworkLoadBalancedFargateServiceProps.kt index 211de843a5..d511cf81cb 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/NetworkLoadBalancedFargateServiceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/NetworkLoadBalancedFargateServiceProps.kt @@ -880,7 +880,7 @@ public interface NetworkLoadBalancedFargateServiceProps : NetworkLoadBalancedSer * * Default: false */ - override fun enableEcsManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() + override fun enableECSManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() /** * Whether ECS Exec should be enabled. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/NetworkLoadBalancedServiceBaseProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/NetworkLoadBalancedServiceBaseProps.kt index 7ea7d96d48..7cdea5dbb1 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/NetworkLoadBalancedServiceBaseProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/NetworkLoadBalancedServiceBaseProps.kt @@ -194,7 +194,7 @@ public interface NetworkLoadBalancedServiceBaseProps { * * Default: false */ - public fun enableEcsManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() + public fun enableECSManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() /** * Whether ECS Exec should be enabled. @@ -822,7 +822,7 @@ public interface NetworkLoadBalancedServiceBaseProps { * * Default: false */ - override fun enableEcsManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() + override fun enableECSManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() /** * Whether ECS Exec should be enabled. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/NetworkMultipleTargetGroupsEc2ServiceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/NetworkMultipleTargetGroupsEc2ServiceProps.kt index 830bd0e66d..efcf3367b8 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/NetworkMultipleTargetGroupsEc2ServiceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/NetworkMultipleTargetGroupsEc2ServiceProps.kt @@ -585,7 +585,7 @@ public interface NetworkMultipleTargetGroupsEc2ServiceProps : * * Default: false */ - override fun enableEcsManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() + override fun enableECSManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() /** * Whether ECS Exec should be enabled. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/NetworkMultipleTargetGroupsFargateServiceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/NetworkMultipleTargetGroupsFargateServiceProps.kt index 8c24b845c0..13227e3efc 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/NetworkMultipleTargetGroupsFargateServiceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/NetworkMultipleTargetGroupsFargateServiceProps.kt @@ -595,7 +595,7 @@ public interface NetworkMultipleTargetGroupsFargateServiceProps : * * Default: false */ - override fun enableEcsManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() + override fun enableECSManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() /** * Whether ECS Exec should be enabled. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/NetworkMultipleTargetGroupsServiceBaseProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/NetworkMultipleTargetGroupsServiceBaseProps.kt index 41765154db..98e91783e9 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/NetworkMultipleTargetGroupsServiceBaseProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/NetworkMultipleTargetGroupsServiceBaseProps.kt @@ -137,7 +137,7 @@ public interface NetworkMultipleTargetGroupsServiceBaseProps { * * Default: false */ - public fun enableEcsManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() + public fun enableECSManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() /** * Whether ECS Exec should be enabled. @@ -507,7 +507,7 @@ public interface NetworkMultipleTargetGroupsServiceBaseProps { * * Default: false */ - override fun enableEcsManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() + override fun enableECSManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() /** * Whether ECS Exec should be enabled. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/QueueProcessingEc2ServiceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/QueueProcessingEc2ServiceProps.kt index 88648af5d5..8cacabab5f 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/QueueProcessingEc2ServiceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/QueueProcessingEc2ServiceProps.kt @@ -977,7 +977,7 @@ public interface QueueProcessingEc2ServiceProps : QueueProcessingServiceBaseProp * * Default: false */ - override fun enableEcsManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() + override fun enableECSManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() /** * Whether ECS Exec should be enabled. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/QueueProcessingFargateServiceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/QueueProcessingFargateServiceProps.kt index 0864673cfe..4b553c22c9 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/QueueProcessingFargateServiceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/QueueProcessingFargateServiceProps.kt @@ -1083,7 +1083,7 @@ public interface QueueProcessingFargateServiceProps : QueueProcessingServiceBase * * Default: false */ - override fun enableEcsManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() + override fun enableECSManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() /** * Whether ECS Exec should be enabled. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/QueueProcessingServiceBaseProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/QueueProcessingServiceBaseProps.kt index 5931ca602e..6f6aa12e17 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/QueueProcessingServiceBaseProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ecs/patterns/QueueProcessingServiceBaseProps.kt @@ -184,7 +184,7 @@ public interface QueueProcessingServiceBaseProps { * * Default: false */ - public fun enableEcsManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() + public fun enableECSManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() /** * Whether ECS Exec should be enabled. @@ -995,7 +995,7 @@ public interface QueueProcessingServiceBaseProps { * * Default: false */ - override fun enableEcsManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() + override fun enableECSManagedTags(): Boolean? = unwrap(this).getEnableECSManagedTags() /** * Whether ECS Exec should be enabled. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/efs/CfnFileSystem.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/efs/CfnFileSystem.kt index 4ef13b48ad..579f40943e 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/efs/CfnFileSystem.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/efs/CfnFileSystem.kt @@ -1834,8 +1834,8 @@ public open class CfnFileSystem( */ public interface ReplicationDestinationProperty { /** - * The AWS For One Zone file systems, the replication configuration must specify the - * Availability Zone in which the destination file system is located. + * For One Zone file systems, the replication configuration must specify the Availability Zone + * in which the destination file system is located. * * Use the format `us-east-1a` to specify the Availability Zone. For more information about One * Zone file systems, see [EFS file system @@ -1883,9 +1883,8 @@ public open class CfnFileSystem( @CdkDslMarker public interface Builder { /** - * @param availabilityZoneName The AWS For One Zone file systems, the replication - * configuration must specify the Availability Zone in which the destination file system is - * located. + * @param availabilityZoneName For One Zone file systems, the replication configuration must + * specify the Availability Zone in which the destination file system is located. * Use the format `us-east-1a` to specify the Availability Zone. For more information about * One Zone file systems, see [EFS file system * types](https://docs.aws.amazon.com/efs/latest/ug/storage-classes.html) in the *Amazon EFS User @@ -1922,9 +1921,8 @@ public open class CfnFileSystem( software.amazon.awscdk.services.efs.CfnFileSystem.ReplicationDestinationProperty.builder() /** - * @param availabilityZoneName The AWS For One Zone file systems, the replication - * configuration must specify the Availability Zone in which the destination file system is - * located. + * @param availabilityZoneName For One Zone file systems, the replication configuration must + * specify the Availability Zone in which the destination file system is located. * Use the format `us-east-1a` to specify the Availability Zone. For more information about * One Zone file systems, see [EFS file system * types](https://docs.aws.amazon.com/efs/latest/ug/storage-classes.html) in the *Amazon EFS User @@ -1971,8 +1969,8 @@ public open class CfnFileSystem( cdkObject: software.amazon.awscdk.services.efs.CfnFileSystem.ReplicationDestinationProperty, ) : CdkObject(cdkObject), ReplicationDestinationProperty { /** - * The AWS For One Zone file systems, the replication configuration must specify the - * Availability Zone in which the destination file system is located. + * For One Zone file systems, the replication configuration must specify the Availability Zone + * in which the destination file system is located. * * Use the format `us-east-1a` to specify the Availability Zone. For more information about * One Zone file systems, see [EFS file system diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/efs/ExistingFileSystemProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/efs/ExistingFileSystemProps.kt new file mode 100644 index 0000000000..99f0c68851 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/efs/ExistingFileSystemProps.kt @@ -0,0 +1,81 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.efs + +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Unit + +/** + * Properties for configuring ReplicationConfiguration to replicate to an existing file system. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.efs.*; + * FileSystem fileSystem; + * ExistingFileSystemProps existingFileSystemProps = ExistingFileSystemProps.builder() + * .destinationFileSystem(fileSystem) + * .build(); + * ``` + */ +public interface ExistingFileSystemProps { + /** + * The existing destination file system for the replication. + */ + public fun destinationFileSystem(): IFileSystem + + /** + * A builder for [ExistingFileSystemProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param destinationFileSystem The existing destination file system for the replication. + */ + public fun destinationFileSystem(destinationFileSystem: IFileSystem) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.services.efs.ExistingFileSystemProps.Builder = + software.amazon.awscdk.services.efs.ExistingFileSystemProps.builder() + + /** + * @param destinationFileSystem The existing destination file system for the replication. + */ + override fun destinationFileSystem(destinationFileSystem: IFileSystem) { + cdkBuilder.destinationFileSystem(destinationFileSystem.let(IFileSystem::unwrap)) + } + + public fun build(): software.amazon.awscdk.services.efs.ExistingFileSystemProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.efs.ExistingFileSystemProps, + ) : CdkObject(cdkObject), ExistingFileSystemProps { + /** + * The existing destination file system for the replication. + */ + override fun destinationFileSystem(): IFileSystem = + unwrap(this).getDestinationFileSystem().let(IFileSystem::wrap) + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): ExistingFileSystemProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.efs.ExistingFileSystemProps): + ExistingFileSystemProps = CdkObjectWrappers.wrap(cdkObject) as? ExistingFileSystemProps ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: ExistingFileSystemProps): + software.amazon.awscdk.services.efs.ExistingFileSystemProps = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.efs.ExistingFileSystemProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/efs/FileSystem.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/efs/FileSystem.kt index f8ff97feb6..6fd4c18e88 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/efs/FileSystem.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/efs/FileSystem.kt @@ -328,6 +328,15 @@ public open class FileSystem( */ public fun removalPolicy(removalPolicy: RemovalPolicy) + /** + * Replication configuration for the file system. + * + * Default: - no replication + * + * @param replicationConfiguration Replication configuration for the file system. + */ + public fun replicationConfiguration(replicationConfiguration: ReplicationConfiguration) + /** * Whether to enable the filesystem's replication overwrite protection or not. * @@ -577,6 +586,17 @@ public open class FileSystem( cdkBuilder.removalPolicy(removalPolicy.let(RemovalPolicy::unwrap)) } + /** + * Replication configuration for the file system. + * + * Default: - no replication + * + * @param replicationConfiguration Replication configuration for the file system. + */ + override fun replicationConfiguration(replicationConfiguration: ReplicationConfiguration) { + cdkBuilder.replicationConfiguration(replicationConfiguration.let(ReplicationConfiguration::unwrap)) + } + /** * Whether to enable the filesystem's replication overwrite protection or not. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/efs/FileSystemProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/efs/FileSystemProps.kt index 8e6dbd6fea..3fcc7337d4 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/efs/FileSystemProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/efs/FileSystemProps.kt @@ -140,6 +140,14 @@ public interface FileSystemProps { public fun removalPolicy(): RemovalPolicy? = unwrap(this).getRemovalPolicy()?.let(RemovalPolicy::wrap) + /** + * Replication configuration for the file system. + * + * Default: - no replication + */ + public fun replicationConfiguration(): ReplicationConfiguration? = + unwrap(this).getReplicationConfiguration()?.let(ReplicationConfiguration::wrap) + /** * Whether to enable the filesystem's replication overwrite protection or not. * @@ -278,6 +286,11 @@ public interface FileSystemProps { */ public fun removalPolicy(removalPolicy: RemovalPolicy) + /** + * @param replicationConfiguration Replication configuration for the file system. + */ + public fun replicationConfiguration(replicationConfiguration: ReplicationConfiguration) + /** * @param replicationOverwriteProtection Whether to enable the filesystem's replication * overwrite protection or not. @@ -432,6 +445,13 @@ public interface FileSystemProps { cdkBuilder.removalPolicy(removalPolicy.let(RemovalPolicy::unwrap)) } + /** + * @param replicationConfiguration Replication configuration for the file system. + */ + override fun replicationConfiguration(replicationConfiguration: ReplicationConfiguration) { + cdkBuilder.replicationConfiguration(replicationConfiguration.let(ReplicationConfiguration::unwrap)) + } + /** * @param replicationOverwriteProtection Whether to enable the filesystem's replication * overwrite protection or not. @@ -601,6 +621,14 @@ public interface FileSystemProps { override fun removalPolicy(): RemovalPolicy? = unwrap(this).getRemovalPolicy()?.let(RemovalPolicy::wrap) + /** + * Replication configuration for the file system. + * + * Default: - no replication + */ + override fun replicationConfiguration(): ReplicationConfiguration? = + unwrap(this).getReplicationConfiguration()?.let(ReplicationConfiguration::wrap) + /** * Whether to enable the filesystem's replication overwrite protection or not. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/efs/OneZoneFileSystemProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/efs/OneZoneFileSystemProps.kt new file mode 100644 index 0000000000..c5cf7dde0a --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/efs/OneZoneFileSystemProps.kt @@ -0,0 +1,140 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.efs + +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import io.cloudshiftdev.awscdk.services.kms.IKey +import kotlin.String +import kotlin.Unit + +/** + * Properties for configuring ReplicationConfiguration to replicate to a new One Zone file system. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.efs.*; + * import io.cloudshiftdev.awscdk.services.kms.*; + * Key key; + * OneZoneFileSystemProps oneZoneFileSystemProps = OneZoneFileSystemProps.builder() + * .availabilityZone("availabilityZone") + * .region("region") + * // the properties below are optional + * .kmsKey(key) + * .build(); + * ``` + */ +public interface OneZoneFileSystemProps { + /** + * The availability zone name of the destination file system. + * + * One zone file system is used as the destination file system when this property is set. + */ + public fun availabilityZone(): String + + /** + * AWS KMS key used to protect the encrypted file system. + * + * Default: - use service-managed KMS key for Amazon EFS + */ + public fun kmsKey(): IKey? = unwrap(this).getKmsKey()?.let(IKey::wrap) + + /** + * The AWS Region in which the destination file system is located. + */ + public fun region(): String + + /** + * A builder for [OneZoneFileSystemProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param availabilityZone The availability zone name of the destination file system. + * One zone file system is used as the destination file system when this property is set. + */ + public fun availabilityZone(availabilityZone: String) + + /** + * @param kmsKey AWS KMS key used to protect the encrypted file system. + */ + public fun kmsKey(kmsKey: IKey) + + /** + * @param region The AWS Region in which the destination file system is located. + */ + public fun region(region: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.services.efs.OneZoneFileSystemProps.Builder = + software.amazon.awscdk.services.efs.OneZoneFileSystemProps.builder() + + /** + * @param availabilityZone The availability zone name of the destination file system. + * One zone file system is used as the destination file system when this property is set. + */ + override fun availabilityZone(availabilityZone: String) { + cdkBuilder.availabilityZone(availabilityZone) + } + + /** + * @param kmsKey AWS KMS key used to protect the encrypted file system. + */ + override fun kmsKey(kmsKey: IKey) { + cdkBuilder.kmsKey(kmsKey.let(IKey::unwrap)) + } + + /** + * @param region The AWS Region in which the destination file system is located. + */ + override fun region(region: String) { + cdkBuilder.region(region) + } + + public fun build(): software.amazon.awscdk.services.efs.OneZoneFileSystemProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.efs.OneZoneFileSystemProps, + ) : CdkObject(cdkObject), OneZoneFileSystemProps { + /** + * The availability zone name of the destination file system. + * + * One zone file system is used as the destination file system when this property is set. + */ + override fun availabilityZone(): String = unwrap(this).getAvailabilityZone() + + /** + * AWS KMS key used to protect the encrypted file system. + * + * Default: - use service-managed KMS key for Amazon EFS + */ + override fun kmsKey(): IKey? = unwrap(this).getKmsKey()?.let(IKey::wrap) + + /** + * The AWS Region in which the destination file system is located. + */ + override fun region(): String = unwrap(this).getRegion() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): OneZoneFileSystemProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.efs.OneZoneFileSystemProps): + OneZoneFileSystemProps = CdkObjectWrappers.wrap(cdkObject) as? OneZoneFileSystemProps ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: OneZoneFileSystemProps): + software.amazon.awscdk.services.efs.OneZoneFileSystemProps = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.efs.OneZoneFileSystemProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/efs/RegionalFileSystemProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/efs/RegionalFileSystemProps.kt new file mode 100644 index 0000000000..a21e472f40 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/efs/RegionalFileSystemProps.kt @@ -0,0 +1,114 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.efs + +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import io.cloudshiftdev.awscdk.services.kms.IKey +import kotlin.String +import kotlin.Unit + +/** + * Properties for configuring ReplicationConfiguration to replicate to a new Regional file system. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.efs.*; + * import io.cloudshiftdev.awscdk.services.kms.*; + * Key key; + * RegionalFileSystemProps regionalFileSystemProps = RegionalFileSystemProps.builder() + * .kmsKey(key) + * .region("region") + * .build(); + * ``` + */ +public interface RegionalFileSystemProps { + /** + * AWS KMS key used to protect the encrypted file system. + * + * Default: - use service-managed KMS key for Amazon EFS + */ + public fun kmsKey(): IKey? = unwrap(this).getKmsKey()?.let(IKey::wrap) + + /** + * The AWS Region in which the destination file system is located. + * + * Default: - the region of the stack + */ + public fun region(): String? = unwrap(this).getRegion() + + /** + * A builder for [RegionalFileSystemProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param kmsKey AWS KMS key used to protect the encrypted file system. + */ + public fun kmsKey(kmsKey: IKey) + + /** + * @param region The AWS Region in which the destination file system is located. + */ + public fun region(region: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.services.efs.RegionalFileSystemProps.Builder = + software.amazon.awscdk.services.efs.RegionalFileSystemProps.builder() + + /** + * @param kmsKey AWS KMS key used to protect the encrypted file system. + */ + override fun kmsKey(kmsKey: IKey) { + cdkBuilder.kmsKey(kmsKey.let(IKey::unwrap)) + } + + /** + * @param region The AWS Region in which the destination file system is located. + */ + override fun region(region: String) { + cdkBuilder.region(region) + } + + public fun build(): software.amazon.awscdk.services.efs.RegionalFileSystemProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.efs.RegionalFileSystemProps, + ) : CdkObject(cdkObject), RegionalFileSystemProps { + /** + * AWS KMS key used to protect the encrypted file system. + * + * Default: - use service-managed KMS key for Amazon EFS + */ + override fun kmsKey(): IKey? = unwrap(this).getKmsKey()?.let(IKey::wrap) + + /** + * The AWS Region in which the destination file system is located. + * + * Default: - the region of the stack + */ + override fun region(): String? = unwrap(this).getRegion() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): RegionalFileSystemProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.efs.RegionalFileSystemProps): + RegionalFileSystemProps = CdkObjectWrappers.wrap(cdkObject) as? RegionalFileSystemProps ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: RegionalFileSystemProps): + software.amazon.awscdk.services.efs.RegionalFileSystemProps = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.efs.RegionalFileSystemProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/efs/ReplicationConfiguration.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/efs/ReplicationConfiguration.kt new file mode 100644 index 0000000000..86242b0ba3 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/efs/ReplicationConfiguration.kt @@ -0,0 +1,106 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.efs + +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import io.cloudshiftdev.awscdk.services.kms.IKey +import kotlin.String + +/** + * EFS Replication Configuration. + * + * Example: + * + * ``` + * Vpc vpc; + * // auto generate a regional replication destination file system + * // auto generate a regional replication destination file system + * FileSystem.Builder.create(this, "RegionalReplicationFileSystem") + * .vpc(vpc) + * .replicationConfiguration(ReplicationConfiguration.regionalFileSystem("us-west-2")) + * .build(); + * // auto generate a one zone replication destination file system + * // auto generate a one zone replication destination file system + * FileSystem.Builder.create(this, "OneZoneReplicationFileSystem") + * .vpc(vpc) + * .replicationConfiguration(ReplicationConfiguration.oneZoneFileSystem("us-east-1", "us-east-1a")) + * .build(); + * FileSystem destinationFileSystem = FileSystem.Builder.create(this, "DestinationFileSystem") + * .vpc(vpc) + * // set as the read-only file system for use as a replication destination + * .replicationOverwriteProtection(ReplicationOverwriteProtection.DISABLED) + * .build(); + * // specify the replication destination file system + * // specify the replication destination file system + * FileSystem.Builder.create(this, "ReplicationFileSystem") + * .vpc(vpc) + * .replicationConfiguration(ReplicationConfiguration.existingFileSystem(destinationFileSystem)) + * .build(); + * ``` + */ +public abstract class ReplicationConfiguration( + cdkObject: software.amazon.awscdk.services.efs.ReplicationConfiguration, +) : CdkObject(cdkObject) { + /** + * The availability zone name of the destination file system. + * + * One zone file system is used as the destination file system when this property is set. + */ + public open fun availabilityZone(): String? = unwrap(this).getAvailabilityZone() + + /** + * The existing destination file system for the replication. + */ + public open fun destinationFileSystem(): IFileSystem? = + unwrap(this).getDestinationFileSystem()?.let(IFileSystem::wrap) + + /** + * AWS KMS key used to protect the encrypted file system. + */ + public open fun kmsKey(): IKey? = unwrap(this).getKmsKey()?.let(IKey::wrap) + + /** + * The AWS Region in which the destination file system is located. + */ + public open fun region(): String? = unwrap(this).getRegion() + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.efs.ReplicationConfiguration, + ) : ReplicationConfiguration(cdkObject) + + public companion object { + public fun existingFileSystem(destinationFileSystem: IFileSystem): ReplicationConfiguration = + software.amazon.awscdk.services.efs.ReplicationConfiguration.existingFileSystem(destinationFileSystem.let(IFileSystem::unwrap)).let(ReplicationConfiguration::wrap) + + public fun oneZoneFileSystem(region: String, availabilityZone: String): ReplicationConfiguration + = software.amazon.awscdk.services.efs.ReplicationConfiguration.oneZoneFileSystem(region, + availabilityZone).let(ReplicationConfiguration::wrap) + + public fun oneZoneFileSystem( + region: String, + availabilityZone: String, + kmsKey: IKey, + ): ReplicationConfiguration = + software.amazon.awscdk.services.efs.ReplicationConfiguration.oneZoneFileSystem(region, + availabilityZone, kmsKey.let(IKey::unwrap)).let(ReplicationConfiguration::wrap) + + public fun regionalFileSystem(): ReplicationConfiguration = + software.amazon.awscdk.services.efs.ReplicationConfiguration.regionalFileSystem().let(ReplicationConfiguration::wrap) + + public fun regionalFileSystem(region: String): ReplicationConfiguration = + software.amazon.awscdk.services.efs.ReplicationConfiguration.regionalFileSystem(region).let(ReplicationConfiguration::wrap) + + public fun regionalFileSystem(region: String, kmsKey: IKey): ReplicationConfiguration = + software.amazon.awscdk.services.efs.ReplicationConfiguration.regionalFileSystem(region, + kmsKey.let(IKey::unwrap)).let(ReplicationConfiguration::wrap) + + internal fun wrap(cdkObject: software.amazon.awscdk.services.efs.ReplicationConfiguration): + ReplicationConfiguration = CdkObjectWrappers.wrap(cdkObject) as? ReplicationConfiguration ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: ReplicationConfiguration): + software.amazon.awscdk.services.efs.ReplicationConfiguration = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.efs.ReplicationConfiguration + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/efs/ReplicationConfigurationProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/efs/ReplicationConfigurationProps.kt new file mode 100644 index 0000000000..07e0cffa77 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/efs/ReplicationConfigurationProps.kt @@ -0,0 +1,179 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.efs + +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import io.cloudshiftdev.awscdk.services.kms.IKey +import kotlin.String +import kotlin.Unit + +/** + * Properties for the ReplicationConfiguration. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.efs.*; + * import io.cloudshiftdev.awscdk.services.kms.*; + * FileSystem fileSystem; + * Key key; + * ReplicationConfigurationProps replicationConfigurationProps = + * ReplicationConfigurationProps.builder() + * .availabilityZone("availabilityZone") + * .destinationFileSystem(fileSystem) + * .kmsKey(key) + * .region("region") + * .build(); + * ``` + */ +public interface ReplicationConfigurationProps { + /** + * The availability zone name of the destination file system. + * + * One zone file system is used as the destination file system when this property is set. + * + * Default: - no availability zone is set + */ + public fun availabilityZone(): String? = unwrap(this).getAvailabilityZone() + + /** + * The existing destination file system for the replication. + * + * Default: - None + */ + public fun destinationFileSystem(): IFileSystem? = + unwrap(this).getDestinationFileSystem()?.let(IFileSystem::wrap) + + /** + * AWS KMS key used to protect the encrypted file system. + * + * Default: - use service-managed KMS key for Amazon EFS + */ + public fun kmsKey(): IKey? = unwrap(this).getKmsKey()?.let(IKey::wrap) + + /** + * The AWS Region in which the destination file system is located. + * + * Default: - the region of the stack + */ + public fun region(): String? = unwrap(this).getRegion() + + /** + * A builder for [ReplicationConfigurationProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param availabilityZone The availability zone name of the destination file system. + * One zone file system is used as the destination file system when this property is set. + */ + public fun availabilityZone(availabilityZone: String) + + /** + * @param destinationFileSystem The existing destination file system for the replication. + */ + public fun destinationFileSystem(destinationFileSystem: IFileSystem) + + /** + * @param kmsKey AWS KMS key used to protect the encrypted file system. + */ + public fun kmsKey(kmsKey: IKey) + + /** + * @param region The AWS Region in which the destination file system is located. + */ + public fun region(region: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.efs.ReplicationConfigurationProps.Builder = + software.amazon.awscdk.services.efs.ReplicationConfigurationProps.builder() + + /** + * @param availabilityZone The availability zone name of the destination file system. + * One zone file system is used as the destination file system when this property is set. + */ + override fun availabilityZone(availabilityZone: String) { + cdkBuilder.availabilityZone(availabilityZone) + } + + /** + * @param destinationFileSystem The existing destination file system for the replication. + */ + override fun destinationFileSystem(destinationFileSystem: IFileSystem) { + cdkBuilder.destinationFileSystem(destinationFileSystem.let(IFileSystem::unwrap)) + } + + /** + * @param kmsKey AWS KMS key used to protect the encrypted file system. + */ + override fun kmsKey(kmsKey: IKey) { + cdkBuilder.kmsKey(kmsKey.let(IKey::unwrap)) + } + + /** + * @param region The AWS Region in which the destination file system is located. + */ + override fun region(region: String) { + cdkBuilder.region(region) + } + + public fun build(): software.amazon.awscdk.services.efs.ReplicationConfigurationProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.efs.ReplicationConfigurationProps, + ) : CdkObject(cdkObject), ReplicationConfigurationProps { + /** + * The availability zone name of the destination file system. + * + * One zone file system is used as the destination file system when this property is set. + * + * Default: - no availability zone is set + */ + override fun availabilityZone(): String? = unwrap(this).getAvailabilityZone() + + /** + * The existing destination file system for the replication. + * + * Default: - None + */ + override fun destinationFileSystem(): IFileSystem? = + unwrap(this).getDestinationFileSystem()?.let(IFileSystem::wrap) + + /** + * AWS KMS key used to protect the encrypted file system. + * + * Default: - use service-managed KMS key for Amazon EFS + */ + override fun kmsKey(): IKey? = unwrap(this).getKmsKey()?.let(IKey::wrap) + + /** + * The AWS Region in which the destination file system is located. + * + * Default: - the region of the stack + */ + override fun region(): String? = unwrap(this).getRegion() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): ReplicationConfigurationProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.efs.ReplicationConfigurationProps): + ReplicationConfigurationProps = CdkObjectWrappers.wrap(cdkObject) as? + ReplicationConfigurationProps ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: ReplicationConfigurationProps): + software.amazon.awscdk.services.efs.ReplicationConfigurationProps = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.efs.ReplicationConfigurationProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/eks/CfnNodegroup.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/eks/CfnNodegroup.kt index 4f0d75cf74..8cd61d4d84 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/eks/CfnNodegroup.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/eks/CfnNodegroup.kt @@ -28,8 +28,8 @@ import software.constructs.Construct as SoftwareConstructsConstruct * You can only create a node group for your cluster that is equal to the current Kubernetes version * for the cluster. All node groups are created with the latest AMI release version for the respective * minor Kubernetes version of the cluster, unless you deploy a custom AMI using a launch template. For - * more information about using launch templates, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) . + * more information about using launch templates, see [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) . * * An Amazon EKS managed node group is an Amazon EC2 Auto Scaling group and associated Amazon EC2 * instances that are managed by AWS for an Amazon EKS cluster. For more information, see [Managed node @@ -485,9 +485,9 @@ public open class CfnNodegroup( * specify `amiType` , or the node group deployment will fail. If your launch template uses a * Windows custom AMI, then add `eks:kube-proxy-windows` to your Windows nodes `rolearn` in the * `aws-auth` `ConfigMap` . For more information about using launch templates with Amazon EKS, see - * [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-amitype) * @param amiType The AMI type for your node group. @@ -516,9 +516,9 @@ public open class CfnNodegroup( * The default disk size is 20 GiB for Linux and Bottlerocket. The default disk size is 50 GiB * for Windows. If you specify `launchTemplate` , then don't specify `diskSize` , or the node group * deployment will fail. For more information about using launch templates with Amazon EKS, see - * [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-disksize) * @param diskSize The root device disk size (in GiB) for your node group instances. @@ -567,9 +567,9 @@ public open class CfnNodegroup( * specify `Spot` for `capacityType` , then we recommend specifying multiple values for * `instanceTypes` . For more information, see [Managed node group capacity * types](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html#managed-node-group-capacity-types) - * and [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * and [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-instancetypes) * @param instanceTypes Specify the instance types for a node group. @@ -588,9 +588,9 @@ public open class CfnNodegroup( * specify `Spot` for `capacityType` , then we recommend specifying multiple values for * `instanceTypes` . For more information, see [Managed node group capacity * types](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html#managed-node-group-capacity-types) - * and [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * and [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-instancetypes) * @param instanceTypes Specify the instance types for a node group. @@ -626,8 +626,11 @@ public open class CfnNodegroup( /** * An object representing a node group's launch template specification. * - * If specified, then do not specify `instanceTypes` , `diskSize` , or `remoteAccess` and make - * sure that the launch template meets the requirements in `launchTemplateSpecification` . + * When using this object, don't directly specify `instanceTypes` , `diskSize` , or + * `remoteAccess` . Make sure that the launch template meets the requirements in + * `launchTemplateSpecification` . Also refer to [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-launchtemplate) * @param launchTemplate An object representing a node group's launch template specification. @@ -637,8 +640,11 @@ public open class CfnNodegroup( /** * An object representing a node group's launch template specification. * - * If specified, then do not specify `instanceTypes` , `diskSize` , or `remoteAccess` and make - * sure that the launch template meets the requirements in `launchTemplateSpecification` . + * When using this object, don't directly specify `instanceTypes` , `diskSize` , or + * `remoteAccess` . Make sure that the launch template meets the requirements in + * `launchTemplateSpecification` . Also refer to [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-launchtemplate) * @param launchTemplate An object representing a node group's launch template specification. @@ -648,8 +654,11 @@ public open class CfnNodegroup( /** * An object representing a node group's launch template specification. * - * If specified, then do not specify `instanceTypes` , `diskSize` , or `remoteAccess` and make - * sure that the launch template meets the requirements in `launchTemplateSpecification` . + * When using this object, don't directly specify `instanceTypes` , `diskSize` , or + * `remoteAccess` . Make sure that the launch template meets the requirements in + * `launchTemplateSpecification` . Also refer to [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-launchtemplate) * @param launchTemplate An object representing a node group's launch template specification. @@ -670,9 +679,9 @@ public open class CfnNodegroup( * EKS User Guide** . If you specify `launchTemplate` , then don't specify * `[IamInstanceProfile](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IamInstanceProfile.html)` * in your launch template, or the node group deployment will fail. For more information about - * using launch templates with Amazon EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * using launch templates with Amazon EKS, see [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-noderole) * @param nodeRole The Amazon Resource Name (ARN) of the IAM role to associate with your node @@ -715,9 +724,10 @@ public open class CfnNodegroup( * * For Linux, the protocol is SSH. For Windows, the protocol is RDP. If you specify * `launchTemplate` , then don't specify `remoteAccess` , or the node group deployment will fail. - * For more information about using launch templates with Amazon EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * For more information about using launch templates with Amazon EKS, see [Customizing managed + * nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-remoteaccess) * @param remoteAccess The remote access configuration to use with your node group. @@ -729,9 +739,10 @@ public open class CfnNodegroup( * * For Linux, the protocol is SSH. For Windows, the protocol is RDP. If you specify * `launchTemplate` , then don't specify `remoteAccess` , or the node group deployment will fail. - * For more information about using launch templates with Amazon EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * For more information about using launch templates with Amazon EKS, see [Customizing managed + * nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-remoteaccess) * @param remoteAccess The remote access configuration to use with your node group. @@ -743,9 +754,10 @@ public open class CfnNodegroup( * * For Linux, the protocol is SSH. For Windows, the protocol is RDP. If you specify * `launchTemplate` , then don't specify `remoteAccess` , or the node group deployment will fail. - * For more information about using launch templates with Amazon EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * For more information about using launch templates with Amazon EKS, see [Customizing managed + * nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-remoteaccess) * @param remoteAccess The remote access configuration to use with your node group. @@ -792,9 +804,9 @@ public open class CfnNodegroup( * If you specify `launchTemplate` , then don't specify * `[SubnetId](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html)` * in your launch template, or the node group deployment will fail. For more information about - * using launch templates with Amazon EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * using launch templates with Amazon EKS, see [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-subnets) * @param subnets The subnets to use for the Auto Scaling group that is created for your node @@ -808,9 +820,9 @@ public open class CfnNodegroup( * If you specify `launchTemplate` , then don't specify * `[SubnetId](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html)` * in your launch template, or the node group deployment will fail. For more information about - * using launch templates with Amazon EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * using launch templates with Amazon EKS, see [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-subnets) * @param subnets The subnets to use for the Auto Scaling group that is created for your node @@ -931,9 +943,9 @@ public open class CfnNodegroup( * specify `amiType` , or the node group deployment will fail. If your launch template uses a * Windows custom AMI, then add `eks:kube-proxy-windows` to your Windows nodes `rolearn` in the * `aws-auth` `ConfigMap` . For more information about using launch templates with Amazon EKS, see - * [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-amitype) * @param amiType The AMI type for your node group. @@ -968,9 +980,9 @@ public open class CfnNodegroup( * The default disk size is 20 GiB for Linux and Bottlerocket. The default disk size is 50 GiB * for Windows. If you specify `launchTemplate` , then don't specify `diskSize` , or the node group * deployment will fail. For more information about using launch templates with Amazon EKS, see - * [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-disksize) * @param diskSize The root device disk size (in GiB) for your node group instances. @@ -1025,9 +1037,9 @@ public open class CfnNodegroup( * specify `Spot` for `capacityType` , then we recommend specifying multiple values for * `instanceTypes` . For more information, see [Managed node group capacity * types](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html#managed-node-group-capacity-types) - * and [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * and [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-instancetypes) * @param instanceTypes Specify the instance types for a node group. @@ -1048,9 +1060,9 @@ public open class CfnNodegroup( * specify `Spot` for `capacityType` , then we recommend specifying multiple values for * `instanceTypes` . For more information, see [Managed node group capacity * types](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html#managed-node-group-capacity-types) - * and [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * and [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-instancetypes) * @param instanceTypes Specify the instance types for a node group. @@ -1091,8 +1103,11 @@ public open class CfnNodegroup( /** * An object representing a node group's launch template specification. * - * If specified, then do not specify `instanceTypes` , `diskSize` , or `remoteAccess` and make - * sure that the launch template meets the requirements in `launchTemplateSpecification` . + * When using this object, don't directly specify `instanceTypes` , `diskSize` , or + * `remoteAccess` . Make sure that the launch template meets the requirements in + * `launchTemplateSpecification` . Also refer to [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-launchtemplate) * @param launchTemplate An object representing a node group's launch template specification. @@ -1104,8 +1119,11 @@ public open class CfnNodegroup( /** * An object representing a node group's launch template specification. * - * If specified, then do not specify `instanceTypes` , `diskSize` , or `remoteAccess` and make - * sure that the launch template meets the requirements in `launchTemplateSpecification` . + * When using this object, don't directly specify `instanceTypes` , `diskSize` , or + * `remoteAccess` . Make sure that the launch template meets the requirements in + * `launchTemplateSpecification` . Also refer to [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-launchtemplate) * @param launchTemplate An object representing a node group's launch template specification. @@ -1117,8 +1135,11 @@ public open class CfnNodegroup( /** * An object representing a node group's launch template specification. * - * If specified, then do not specify `instanceTypes` , `diskSize` , or `remoteAccess` and make - * sure that the launch template meets the requirements in `launchTemplateSpecification` . + * When using this object, don't directly specify `instanceTypes` , `diskSize` , or + * `remoteAccess` . Make sure that the launch template meets the requirements in + * `launchTemplateSpecification` . Also refer to [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-launchtemplate) * @param launchTemplate An object representing a node group's launch template specification. @@ -1140,9 +1161,9 @@ public open class CfnNodegroup( * EKS User Guide** . If you specify `launchTemplate` , then don't specify * `[IamInstanceProfile](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IamInstanceProfile.html)` * in your launch template, or the node group deployment will fail. For more information about - * using launch templates with Amazon EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * using launch templates with Amazon EKS, see [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-noderole) * @param nodeRole The Amazon Resource Name (ARN) of the IAM role to associate with your node @@ -1191,9 +1212,10 @@ public open class CfnNodegroup( * * For Linux, the protocol is SSH. For Windows, the protocol is RDP. If you specify * `launchTemplate` , then don't specify `remoteAccess` , or the node group deployment will fail. - * For more information about using launch templates with Amazon EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * For more information about using launch templates with Amazon EKS, see [Customizing managed + * nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-remoteaccess) * @param remoteAccess The remote access configuration to use with your node group. @@ -1207,9 +1229,10 @@ public open class CfnNodegroup( * * For Linux, the protocol is SSH. For Windows, the protocol is RDP. If you specify * `launchTemplate` , then don't specify `remoteAccess` , or the node group deployment will fail. - * For more information about using launch templates with Amazon EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * For more information about using launch templates with Amazon EKS, see [Customizing managed + * nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-remoteaccess) * @param remoteAccess The remote access configuration to use with your node group. @@ -1223,9 +1246,10 @@ public open class CfnNodegroup( * * For Linux, the protocol is SSH. For Windows, the protocol is RDP. If you specify * `launchTemplate` , then don't specify `remoteAccess` , or the node group deployment will fail. - * For more information about using launch templates with Amazon EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * For more information about using launch templates with Amazon EKS, see [Customizing managed + * nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-remoteaccess) * @param remoteAccess The remote access configuration to use with your node group. @@ -1278,9 +1302,9 @@ public open class CfnNodegroup( * If you specify `launchTemplate` , then don't specify * `[SubnetId](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html)` * in your launch template, or the node group deployment will fail. For more information about - * using launch templates with Amazon EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * using launch templates with Amazon EKS, see [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-subnets) * @param subnets The subnets to use for the Auto Scaling group that is created for your node @@ -1296,9 +1320,9 @@ public open class CfnNodegroup( * If you specify `launchTemplate` , then don't specify * `[SubnetId](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html)` * in your launch template, or the node group deployment will fail. For more information about - * using launch templates with Amazon EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * using launch templates with Amazon EKS, see [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-subnets) * @param subnets The subnets to use for the Auto Scaling group that is created for your node @@ -1457,8 +1481,8 @@ public open class CfnNodegroup( * see * [`CreateLaunchTemplate`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateLaunchTemplate.html) * in the Amazon EC2 API Reference. For more information about using launch templates with Amazon - * EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon + * EKS, see [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon * EKS User Guide* . * * You must specify either the launch template ID or the launch template name in the request, but diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/eks/CfnNodegroupProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/eks/CfnNodegroupProps.kt index 19ca22d9fa..23c3381935 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/eks/CfnNodegroupProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/eks/CfnNodegroupProps.kt @@ -77,9 +77,10 @@ public interface CfnNodegroupProps { * If you specify `launchTemplate` , and your launch template uses a custom AMI, then don't * specify `amiType` , or the node group deployment will fail. If your launch template uses a Windows * custom AMI, then add `eks:kube-proxy-windows` to your Windows nodes `rolearn` in the `aws-auth` - * `ConfigMap` . For more information about using launch templates with Amazon EKS, see [Launch - * template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the - * *Amazon EKS User Guide* . + * `ConfigMap` . For more information about using launch templates with Amazon EKS, see [Customizing + * managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon + * EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-amitype) */ @@ -105,8 +106,9 @@ public interface CfnNodegroupProps { * The default disk size is 20 GiB for Linux and Bottlerocket. The default disk size is 50 GiB for * Windows. If you specify `launchTemplate` , then don't specify `diskSize` , or the node group * deployment will fail. For more information about using launch templates with Amazon EKS, see - * [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) - * in the *Amazon EKS User Guide* . + * [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon + * EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-disksize) */ @@ -137,8 +139,8 @@ public interface CfnNodegroupProps { * `Spot` for `capacityType` , then we recommend specifying multiple values for `instanceTypes` . For * more information, see [Managed node group capacity * types](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html#managed-node-group-capacity-types) - * and [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon + * and [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon * EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-instancetypes) @@ -160,8 +162,11 @@ public interface CfnNodegroupProps { /** * An object representing a node group's launch template specification. * - * If specified, then do not specify `instanceTypes` , `diskSize` , or `remoteAccess` and make - * sure that the launch template meets the requirements in `launchTemplateSpecification` . + * When using this object, don't directly specify `instanceTypes` , `diskSize` , or `remoteAccess` + * . Make sure that the launch template meets the requirements in `launchTemplateSpecification` . + * Also refer to [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon + * EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-launchtemplate) */ @@ -178,8 +183,8 @@ public interface CfnNodegroupProps { * User Guide** . If you specify `launchTemplate` , then don't specify * `[IamInstanceProfile](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IamInstanceProfile.html)` * in your launch template, or the node group deployment will fail. For more information about using - * launch templates with Amazon EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon + * launch templates with Amazon EKS, see [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon * EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-noderole) @@ -214,9 +219,9 @@ public interface CfnNodegroupProps { * * For Linux, the protocol is SSH. For Windows, the protocol is RDP. If you specify * `launchTemplate` , then don't specify `remoteAccess` , or the node group deployment will fail. For - * more information about using launch templates with Amazon EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * more information about using launch templates with Amazon EKS, see [Customizing managed nodes with + * launch templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-remoteaccess) */ @@ -236,8 +241,8 @@ public interface CfnNodegroupProps { * If you specify `launchTemplate` , then don't specify * `[SubnetId](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html)` * in your launch template, or the node group deployment will fail. For more information about using - * launch templates with Amazon EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon + * launch templates with Amazon EKS, see [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon * EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-subnets) @@ -302,9 +307,9 @@ public interface CfnNodegroupProps { * specify `amiType` , or the node group deployment will fail. If your launch template uses a * Windows custom AMI, then add `eks:kube-proxy-windows` to your Windows nodes `rolearn` in the * `aws-auth` `ConfigMap` . For more information about using launch templates with Amazon EKS, see - * [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . */ public fun amiType(amiType: String) @@ -323,9 +328,9 @@ public interface CfnNodegroupProps { * The default disk size is 20 GiB for Linux and Bottlerocket. The default disk size is 50 GiB * for Windows. If you specify `launchTemplate` , then don't specify `diskSize` , or the node group * deployment will fail. For more information about using launch templates with Amazon EKS, see - * [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . */ public fun diskSize(diskSize: Number) @@ -356,9 +361,9 @@ public interface CfnNodegroupProps { * specify `Spot` for `capacityType` , then we recommend specifying multiple values for * `instanceTypes` . For more information, see [Managed node group capacity * types](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html#managed-node-group-capacity-types) - * and [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * and [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . */ public fun instanceTypes(instanceTypes: List) @@ -373,9 +378,9 @@ public interface CfnNodegroupProps { * specify `Spot` for `capacityType` , then we recommend specifying multiple values for * `instanceTypes` . For more information, see [Managed node group capacity * types](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html#managed-node-group-capacity-types) - * and [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * and [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . */ public fun instanceTypes(vararg instanceTypes: String) @@ -397,22 +402,31 @@ public interface CfnNodegroupProps { /** * @param launchTemplate An object representing a node group's launch template specification. - * If specified, then do not specify `instanceTypes` , `diskSize` , or `remoteAccess` and make - * sure that the launch template meets the requirements in `launchTemplateSpecification` . + * When using this object, don't directly specify `instanceTypes` , `diskSize` , or + * `remoteAccess` . Make sure that the launch template meets the requirements in + * `launchTemplateSpecification` . Also refer to [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . */ public fun launchTemplate(launchTemplate: IResolvable) /** * @param launchTemplate An object representing a node group's launch template specification. - * If specified, then do not specify `instanceTypes` , `diskSize` , or `remoteAccess` and make - * sure that the launch template meets the requirements in `launchTemplateSpecification` . + * When using this object, don't directly specify `instanceTypes` , `diskSize` , or + * `remoteAccess` . Make sure that the launch template meets the requirements in + * `launchTemplateSpecification` . Also refer to [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . */ public fun launchTemplate(launchTemplate: CfnNodegroup.LaunchTemplateSpecificationProperty) /** * @param launchTemplate An object representing a node group's launch template specification. - * If specified, then do not specify `instanceTypes` , `diskSize` , or `remoteAccess` and make - * sure that the launch template meets the requirements in `launchTemplateSpecification` . + * When using this object, don't directly specify `instanceTypes` , `diskSize` , or + * `remoteAccess` . Make sure that the launch template meets the requirements in + * `launchTemplateSpecification` . Also refer to [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("18969c3bfdf19d3641486ae46a5013a3e6802b5482a7ebd85b52450aa667aa99") @@ -430,9 +444,9 @@ public interface CfnNodegroupProps { * EKS User Guide** . If you specify `launchTemplate` , then don't specify * `[IamInstanceProfile](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IamInstanceProfile.html)` * in your launch template, or the node group deployment will fail. For more information about - * using launch templates with Amazon EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * using launch templates with Amazon EKS, see [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . */ public fun nodeRole(nodeRole: String) @@ -458,9 +472,10 @@ public interface CfnNodegroupProps { * @param remoteAccess The remote access configuration to use with your node group. * For Linux, the protocol is SSH. For Windows, the protocol is RDP. If you specify * `launchTemplate` , then don't specify `remoteAccess` , or the node group deployment will fail. - * For more information about using launch templates with Amazon EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * For more information about using launch templates with Amazon EKS, see [Customizing managed + * nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . */ public fun remoteAccess(remoteAccess: IResolvable) @@ -468,9 +483,10 @@ public interface CfnNodegroupProps { * @param remoteAccess The remote access configuration to use with your node group. * For Linux, the protocol is SSH. For Windows, the protocol is RDP. If you specify * `launchTemplate` , then don't specify `remoteAccess` , or the node group deployment will fail. - * For more information about using launch templates with Amazon EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * For more information about using launch templates with Amazon EKS, see [Customizing managed + * nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . */ public fun remoteAccess(remoteAccess: CfnNodegroup.RemoteAccessProperty) @@ -478,9 +494,10 @@ public interface CfnNodegroupProps { * @param remoteAccess The remote access configuration to use with your node group. * For Linux, the protocol is SSH. For Windows, the protocol is RDP. If you specify * `launchTemplate` , then don't specify `remoteAccess` , or the node group deployment will fail. - * For more information about using launch templates with Amazon EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * For more information about using launch templates with Amazon EKS, see [Customizing managed + * nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("1f39ff54f381c2a00ad3b9e744a041218336b0931c5b42b819859c985d10a3a5") @@ -512,9 +529,9 @@ public interface CfnNodegroupProps { * If you specify `launchTemplate` , then don't specify * `[SubnetId](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html)` * in your launch template, or the node group deployment will fail. For more information about - * using launch templates with Amazon EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * using launch templates with Amazon EKS, see [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . */ public fun subnets(subnets: List) @@ -524,9 +541,9 @@ public interface CfnNodegroupProps { * If you specify `launchTemplate` , then don't specify * `[SubnetId](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html)` * in your launch template, or the node group deployment will fail. For more information about - * using launch templates with Amazon EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * using launch templates with Amazon EKS, see [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . */ public fun subnets(vararg subnets: String) @@ -609,9 +626,9 @@ public interface CfnNodegroupProps { * specify `amiType` , or the node group deployment will fail. If your launch template uses a * Windows custom AMI, then add `eks:kube-proxy-windows` to your Windows nodes `rolearn` in the * `aws-auth` `ConfigMap` . For more information about using launch templates with Amazon EKS, see - * [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . */ override fun amiType(amiType: String) { cdkBuilder.amiType(amiType) @@ -636,9 +653,9 @@ public interface CfnNodegroupProps { * The default disk size is 20 GiB for Linux and Bottlerocket. The default disk size is 50 GiB * for Windows. If you specify `launchTemplate` , then don't specify `diskSize` , or the node group * deployment will fail. For more information about using launch templates with Amazon EKS, see - * [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . */ override fun diskSize(diskSize: Number) { cdkBuilder.diskSize(diskSize) @@ -675,9 +692,9 @@ public interface CfnNodegroupProps { * specify `Spot` for `capacityType` , then we recommend specifying multiple values for * `instanceTypes` . For more information, see [Managed node group capacity * types](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html#managed-node-group-capacity-types) - * and [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * and [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . */ override fun instanceTypes(instanceTypes: List) { cdkBuilder.instanceTypes(instanceTypes) @@ -694,9 +711,9 @@ public interface CfnNodegroupProps { * specify `Spot` for `capacityType` , then we recommend specifying multiple values for * `instanceTypes` . For more information, see [Managed node group capacity * types](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html#managed-node-group-capacity-types) - * and [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * and [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . */ override fun instanceTypes(vararg instanceTypes: String): Unit = instanceTypes(instanceTypes.toList()) @@ -723,8 +740,11 @@ public interface CfnNodegroupProps { /** * @param launchTemplate An object representing a node group's launch template specification. - * If specified, then do not specify `instanceTypes` , `diskSize` , or `remoteAccess` and make - * sure that the launch template meets the requirements in `launchTemplateSpecification` . + * When using this object, don't directly specify `instanceTypes` , `diskSize` , or + * `remoteAccess` . Make sure that the launch template meets the requirements in + * `launchTemplateSpecification` . Also refer to [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . */ override fun launchTemplate(launchTemplate: IResolvable) { cdkBuilder.launchTemplate(launchTemplate.let(IResolvable::unwrap)) @@ -732,8 +752,11 @@ public interface CfnNodegroupProps { /** * @param launchTemplate An object representing a node group's launch template specification. - * If specified, then do not specify `instanceTypes` , `diskSize` , or `remoteAccess` and make - * sure that the launch template meets the requirements in `launchTemplateSpecification` . + * When using this object, don't directly specify `instanceTypes` , `diskSize` , or + * `remoteAccess` . Make sure that the launch template meets the requirements in + * `launchTemplateSpecification` . Also refer to [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . */ override fun launchTemplate(launchTemplate: CfnNodegroup.LaunchTemplateSpecificationProperty) { cdkBuilder.launchTemplate(launchTemplate.let(CfnNodegroup.LaunchTemplateSpecificationProperty::unwrap)) @@ -741,8 +764,11 @@ public interface CfnNodegroupProps { /** * @param launchTemplate An object representing a node group's launch template specification. - * If specified, then do not specify `instanceTypes` , `diskSize` , or `remoteAccess` and make - * sure that the launch template meets the requirements in `launchTemplateSpecification` . + * When using this object, don't directly specify `instanceTypes` , `diskSize` , or + * `remoteAccess` . Make sure that the launch template meets the requirements in + * `launchTemplateSpecification` . Also refer to [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("18969c3bfdf19d3641486ae46a5013a3e6802b5482a7ebd85b52450aa667aa99") @@ -761,9 +787,9 @@ public interface CfnNodegroupProps { * EKS User Guide** . If you specify `launchTemplate` , then don't specify * `[IamInstanceProfile](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IamInstanceProfile.html)` * in your launch template, or the node group deployment will fail. For more information about - * using launch templates with Amazon EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * using launch templates with Amazon EKS, see [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . */ override fun nodeRole(nodeRole: String) { cdkBuilder.nodeRole(nodeRole) @@ -795,9 +821,10 @@ public interface CfnNodegroupProps { * @param remoteAccess The remote access configuration to use with your node group. * For Linux, the protocol is SSH. For Windows, the protocol is RDP. If you specify * `launchTemplate` , then don't specify `remoteAccess` , or the node group deployment will fail. - * For more information about using launch templates with Amazon EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * For more information about using launch templates with Amazon EKS, see [Customizing managed + * nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . */ override fun remoteAccess(remoteAccess: IResolvable) { cdkBuilder.remoteAccess(remoteAccess.let(IResolvable::unwrap)) @@ -807,9 +834,10 @@ public interface CfnNodegroupProps { * @param remoteAccess The remote access configuration to use with your node group. * For Linux, the protocol is SSH. For Windows, the protocol is RDP. If you specify * `launchTemplate` , then don't specify `remoteAccess` , or the node group deployment will fail. - * For more information about using launch templates with Amazon EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * For more information about using launch templates with Amazon EKS, see [Customizing managed + * nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . */ override fun remoteAccess(remoteAccess: CfnNodegroup.RemoteAccessProperty) { cdkBuilder.remoteAccess(remoteAccess.let(CfnNodegroup.RemoteAccessProperty::unwrap)) @@ -819,9 +847,10 @@ public interface CfnNodegroupProps { * @param remoteAccess The remote access configuration to use with your node group. * For Linux, the protocol is SSH. For Windows, the protocol is RDP. If you specify * `launchTemplate` , then don't specify `remoteAccess` , or the node group deployment will fail. - * For more information about using launch templates with Amazon EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * For more information about using launch templates with Amazon EKS, see [Customizing managed + * nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("1f39ff54f381c2a00ad3b9e744a041218336b0931c5b42b819859c985d10a3a5") @@ -860,9 +889,9 @@ public interface CfnNodegroupProps { * If you specify `launchTemplate` , then don't specify * `[SubnetId](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html)` * in your launch template, or the node group deployment will fail. For more information about - * using launch templates with Amazon EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * using launch templates with Amazon EKS, see [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . */ override fun subnets(subnets: List) { cdkBuilder.subnets(subnets) @@ -874,9 +903,9 @@ public interface CfnNodegroupProps { * If you specify `launchTemplate` , then don't specify * `[SubnetId](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html)` * in your launch template, or the node group deployment will fail. For more information about - * using launch templates with Amazon EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * using launch templates with Amazon EKS, see [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . */ override fun subnets(vararg subnets: String): Unit = subnets(subnets.toList()) @@ -974,9 +1003,9 @@ public interface CfnNodegroupProps { * specify `amiType` , or the node group deployment will fail. If your launch template uses a * Windows custom AMI, then add `eks:kube-proxy-windows` to your Windows nodes `rolearn` in the * `aws-auth` `ConfigMap` . For more information about using launch templates with Amazon EKS, see - * [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-amitype) */ @@ -1002,9 +1031,9 @@ public interface CfnNodegroupProps { * The default disk size is 20 GiB for Linux and Bottlerocket. The default disk size is 50 GiB * for Windows. If you specify `launchTemplate` , then don't specify `diskSize` , or the node group * deployment will fail. For more information about using launch templates with Amazon EKS, see - * [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-disksize) */ @@ -1035,9 +1064,9 @@ public interface CfnNodegroupProps { * specify `Spot` for `capacityType` , then we recommend specifying multiple values for * `instanceTypes` . For more information, see [Managed node group capacity * types](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html#managed-node-group-capacity-types) - * and [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * and [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-instancetypes) */ @@ -1058,8 +1087,11 @@ public interface CfnNodegroupProps { /** * An object representing a node group's launch template specification. * - * If specified, then do not specify `instanceTypes` , `diskSize` , or `remoteAccess` and make - * sure that the launch template meets the requirements in `launchTemplateSpecification` . + * When using this object, don't directly specify `instanceTypes` , `diskSize` , or + * `remoteAccess` . Make sure that the launch template meets the requirements in + * `launchTemplateSpecification` . Also refer to [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-launchtemplate) */ @@ -1076,9 +1108,9 @@ public interface CfnNodegroupProps { * EKS User Guide** . If you specify `launchTemplate` , then don't specify * `[IamInstanceProfile](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IamInstanceProfile.html)` * in your launch template, or the node group deployment will fail. For more information about - * using launch templates with Amazon EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * using launch templates with Amazon EKS, see [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-noderole) */ @@ -1112,9 +1144,10 @@ public interface CfnNodegroupProps { * * For Linux, the protocol is SSH. For Windows, the protocol is RDP. If you specify * `launchTemplate` , then don't specify `remoteAccess` , or the node group deployment will fail. - * For more information about using launch templates with Amazon EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * For more information about using launch templates with Amazon EKS, see [Customizing managed + * nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-remoteaccess) */ @@ -1134,9 +1167,9 @@ public interface CfnNodegroupProps { * If you specify `launchTemplate` , then don't specify * `[SubnetId](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html)` * in your launch template, or the node group deployment will fail. For more information about - * using launch templates with Amazon EKS, see [Launch template - * support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon - * EKS User Guide* . + * using launch templates with Amazon EKS, see [Customizing managed nodes with launch + * templates](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the + * *Amazon EKS User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-subnets) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/eks/Cluster.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/eks/Cluster.kt index bb1f23488b..1e6d620017 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/eks/Cluster.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/eks/Cluster.kt @@ -38,15 +38,16 @@ import software.constructs.Construct as SoftwareConstructsConstruct * Example: * * ``` - * Cluster cluster = Cluster.Builder.create(this, "HelloEKS") + * // or + * Vpc vpc; + * Cluster.Builder.create(this, "MyCluster") + * .kubectlMemory(Size.gibibytes(4)) * .version(KubernetesVersion.V1_29) - * .defaultCapacity(0) * .build(); - * cluster.addNodegroupCapacity("custom-node-group", NodegroupOptions.builder() - * .instanceTypes(List.of(new InstanceType("m5.large"))) - * .minSize(4) - * .diskSize(100) - * .amiType(NodegroupAmiType.AL2_X86_64_GPU) + * Cluster.fromClusterAttributes(this, "MyCluster", ClusterAttributes.builder() + * .kubectlMemory(Size.gibibytes(4)) + * .vpc(vpc) + * .clusterName("cluster-name") * .build()); * ``` */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/eks/ClusterProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/eks/ClusterProps.kt index 8790dba99e..762cf5b763 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/eks/ClusterProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/eks/ClusterProps.kt @@ -27,15 +27,16 @@ import kotlin.jvm.JvmName * Example: * * ``` - * Cluster cluster = Cluster.Builder.create(this, "HelloEKS") + * // or + * Vpc vpc; + * Cluster.Builder.create(this, "MyCluster") + * .kubectlMemory(Size.gibibytes(4)) * .version(KubernetesVersion.V1_29) - * .defaultCapacity(0) * .build(); - * cluster.addNodegroupCapacity("custom-node-group", NodegroupOptions.builder() - * .instanceTypes(List.of(new InstanceType("m5.large"))) - * .minSize(4) - * .diskSize(100) - * .amiType(NodegroupAmiType.AL2_X86_64_GPU) + * Cluster.fromClusterAttributes(this, "MyCluster", ClusterAttributes.builder() + * .kubectlMemory(Size.gibibytes(4)) + * .vpc(vpc) + * .clusterName("cluster-name") * .build()); * ``` */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/eks/KubernetesVersion.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/eks/KubernetesVersion.kt index 00f9049788..d059bd48e7 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/eks/KubernetesVersion.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/eks/KubernetesVersion.kt @@ -19,7 +19,6 @@ import kotlin.String * .instanceTypes(List.of(new InstanceType("m5.large"))) * .minSize(4) * .diskSize(100) - * .amiType(NodegroupAmiType.AL2_X86_64_GPU) * .build()); * ``` * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/eks/NodeType.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/eks/NodeType.kt index 440b47e12f..081026197b 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/eks/NodeType.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/eks/NodeType.kt @@ -8,6 +8,7 @@ public enum class NodeType( STANDARD(software.amazon.awscdk.services.eks.NodeType.STANDARD), GPU(software.amazon.awscdk.services.eks.NodeType.GPU), INFERENTIA(software.amazon.awscdk.services.eks.NodeType.INFERENTIA), + TRAINIUM(software.amazon.awscdk.services.eks.NodeType.TRAINIUM), ; public companion object { @@ -16,6 +17,7 @@ public enum class NodeType( software.amazon.awscdk.services.eks.NodeType.STANDARD -> NodeType.STANDARD software.amazon.awscdk.services.eks.NodeType.GPU -> NodeType.GPU software.amazon.awscdk.services.eks.NodeType.INFERENTIA -> NodeType.INFERENTIA + software.amazon.awscdk.services.eks.NodeType.TRAINIUM -> NodeType.TRAINIUM } internal fun unwrap(wrapped: NodeType): software.amazon.awscdk.services.eks.NodeType = diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticache/CfnServerlessCache.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticache/CfnServerlessCache.kt index 68ff7eb591..ca2903e2c7 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticache/CfnServerlessCache.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticache/CfnServerlessCache.kt @@ -37,11 +37,14 @@ import software.constructs.Construct as SoftwareConstructsConstruct * // the properties below are optional * .cacheUsageLimits(CacheUsageLimitsProperty.builder() * .dataStorage(DataStorageProperty.builder() - * .maximum(123) * .unit("unit") + * // the properties below are optional + * .maximum(123) + * .minimum(123) * .build()) * .ecpuPerSecond(ECPUPerSecondProperty.builder() * .maximum(123) + * .minimum(123) * .build()) * .build()) * .dailySnapshotTime("dailySnapshotTime") @@ -1021,11 +1024,14 @@ public open class CfnServerlessCache( * import io.cloudshiftdev.awscdk.services.elasticache.*; * CacheUsageLimitsProperty cacheUsageLimitsProperty = CacheUsageLimitsProperty.builder() * .dataStorage(DataStorageProperty.builder() - * .maximum(123) * .unit("unit") + * // the properties below are optional + * .maximum(123) + * .minimum(123) * .build()) * .ecpuPerSecond(ECPUPerSecondProperty.builder() * .maximum(123) + * .minimum(123) * .build()) * .build(); * ``` @@ -1194,8 +1200,10 @@ public open class CfnServerlessCache( * // The values are placeholders you should change. * import io.cloudshiftdev.awscdk.services.elasticache.*; * DataStorageProperty dataStorageProperty = DataStorageProperty.builder() - * .maximum(123) * .unit("unit") + * // the properties below are optional + * .maximum(123) + * .minimum(123) * .build(); * ``` * @@ -1207,7 +1215,14 @@ public open class CfnServerlessCache( * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-serverlesscache-datastorage.html#cfn-elasticache-serverlesscache-datastorage-maximum) */ - public fun maximum(): Number + public fun maximum(): Number? = unwrap(this).getMaximum() + + /** + * The lower limit for data storage the cache is set to use. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-serverlesscache-datastorage.html#cfn-elasticache-serverlesscache-datastorage-minimum) + */ + public fun minimum(): Number? = unwrap(this).getMinimum() /** * The unit that the storage is measured in, in GB. @@ -1222,10 +1237,15 @@ public open class CfnServerlessCache( @CdkDslMarker public interface Builder { /** - * @param maximum The upper limit for data storage the cache is set to use. + * @param maximum The upper limit for data storage the cache is set to use. */ public fun maximum(maximum: Number) + /** + * @param minimum The lower limit for data storage the cache is set to use. + */ + public fun minimum(minimum: Number) + /** * @param unit The unit that the storage is measured in, in GB. */ @@ -1239,12 +1259,19 @@ public open class CfnServerlessCache( software.amazon.awscdk.services.elasticache.CfnServerlessCache.DataStorageProperty.builder() /** - * @param maximum The upper limit for data storage the cache is set to use. + * @param maximum The upper limit for data storage the cache is set to use. */ override fun maximum(maximum: Number) { cdkBuilder.maximum(maximum) } + /** + * @param minimum The lower limit for data storage the cache is set to use. + */ + override fun minimum(minimum: Number) { + cdkBuilder.minimum(minimum) + } + /** * @param unit The unit that the storage is measured in, in GB. */ @@ -1265,7 +1292,14 @@ public open class CfnServerlessCache( * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-serverlesscache-datastorage.html#cfn-elasticache-serverlesscache-datastorage-maximum) */ - override fun maximum(): Number = unwrap(this).getMaximum() + override fun maximum(): Number? = unwrap(this).getMaximum() + + /** + * The lower limit for data storage the cache is set to use. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-serverlesscache-datastorage.html#cfn-elasticache-serverlesscache-datastorage-minimum) + */ + override fun minimum(): Number? = unwrap(this).getMinimum() /** * The unit that the storage is measured in, in GB. @@ -1305,6 +1339,7 @@ public open class CfnServerlessCache( * import io.cloudshiftdev.awscdk.services.elasticache.*; * ECPUPerSecondProperty eCPUPerSecondProperty = ECPUPerSecondProperty.builder() * .maximum(123) + * .minimum(123) * .build(); * ``` * @@ -1316,7 +1351,15 @@ public open class CfnServerlessCache( * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-serverlesscache-ecpupersecond.html#cfn-elasticache-serverlesscache-ecpupersecond-maximum) */ - public fun maximum(): Number + public fun maximum(): Number? = unwrap(this).getMaximum() + + /** + * The configuration for the minimum number of ECPUs the cache should be able consume per + * second. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-serverlesscache-ecpupersecond.html#cfn-elasticache-serverlesscache-ecpupersecond-minimum) + */ + public fun minimum(): Number? = unwrap(this).getMinimum() /** * A builder for [ECPUPerSecondProperty] @@ -1325,9 +1368,15 @@ public open class CfnServerlessCache( public interface Builder { /** * @param maximum The configuration for the maximum number of ECPUs the cache can consume per - * second. + * second. */ public fun maximum(maximum: Number) + + /** + * @param minimum The configuration for the minimum number of ECPUs the cache should be able + * consume per second. + */ + public fun minimum(minimum: Number) } private class BuilderImpl : Builder { @@ -1338,12 +1387,20 @@ public open class CfnServerlessCache( /** * @param maximum The configuration for the maximum number of ECPUs the cache can consume per - * second. + * second. */ override fun maximum(maximum: Number) { cdkBuilder.maximum(maximum) } + /** + * @param minimum The configuration for the minimum number of ECPUs the cache should be able + * consume per second. + */ + override fun minimum(minimum: Number) { + cdkBuilder.minimum(minimum) + } + public fun build(): software.amazon.awscdk.services.elasticache.CfnServerlessCache.ECPUPerSecondProperty = cdkBuilder.build() @@ -1357,7 +1414,15 @@ public open class CfnServerlessCache( * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-serverlesscache-ecpupersecond.html#cfn-elasticache-serverlesscache-ecpupersecond-maximum) */ - override fun maximum(): Number = unwrap(this).getMaximum() + override fun maximum(): Number? = unwrap(this).getMaximum() + + /** + * The configuration for the minimum number of ECPUs the cache should be able consume per + * second. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-serverlesscache-ecpupersecond.html#cfn-elasticache-serverlesscache-ecpupersecond-minimum) + */ + override fun minimum(): Number? = unwrap(this).getMinimum() } public companion object { diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticache/CfnServerlessCacheProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticache/CfnServerlessCacheProps.kt index ecd10828ca..a1830cd79a 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticache/CfnServerlessCacheProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticache/CfnServerlessCacheProps.kt @@ -29,11 +29,14 @@ import kotlin.jvm.JvmName * // the properties below are optional * .cacheUsageLimits(CacheUsageLimitsProperty.builder() * .dataStorage(DataStorageProperty.builder() - * .maximum(123) * .unit("unit") + * // the properties below are optional + * .maximum(123) + * .minimum(123) * .build()) * .ecpuPerSecond(ECPUPerSecondProperty.builder() * .maximum(123) + * .minimum(123) * .build()) * .build()) * .dailySnapshotTime("dailySnapshotTime") diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancing/ILoadBalancerTarget.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancing/ILoadBalancerTarget.kt index 898223a3cd..e453973389 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancing/ILoadBalancerTarget.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancing/ILoadBalancerTarget.kt @@ -17,7 +17,7 @@ public interface ILoadBalancerTarget : IConnectable { * @param loadBalancer [disable-awslint:ref-via-interface] The load balancer to attach the target * to. */ - public fun attachToClassicLb(loadBalancer: LoadBalancer) + public fun attachToClassicLB(loadBalancer: LoadBalancer) private class Wrapper( cdkObject: software.amazon.awscdk.services.elasticloadbalancing.ILoadBalancerTarget, @@ -28,7 +28,7 @@ public interface ILoadBalancerTarget : IConnectable { * @param loadBalancer [disable-awslint:ref-via-interface] The load balancer to attach the * target to. */ - override fun attachToClassicLb(loadBalancer: LoadBalancer) { + override fun attachToClassicLB(loadBalancer: LoadBalancer) { unwrap(this).attachToClassicLB(loadBalancer.let(LoadBalancer::unwrap)) } diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancing/InstanceTarget.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancing/InstanceTarget.kt index 5a210996cc..f58b55431a 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancing/InstanceTarget.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancing/InstanceTarget.kt @@ -38,7 +38,7 @@ public open class InstanceTarget( * * @param loadBalancer */ - public override fun attachToClassicLb(loadBalancer: LoadBalancer) { + public override fun attachToClassicLB(loadBalancer: LoadBalancer) { unwrap(this).attachToClassicLB(loadBalancer.let(LoadBalancer::unwrap)) } diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/AddApplicationActionProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/AddApplicationActionProps.kt index af7ded42a7..7b036cfe96 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/AddApplicationActionProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/AddApplicationActionProps.kt @@ -5,6 +5,7 @@ package io.cloudshiftdev.awscdk.services.elasticloadbalancingv2 import io.cloudshiftdev.awscdk.common.CdkDslMarker import io.cloudshiftdev.awscdk.common.CdkObject import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Boolean import kotlin.Number import kotlin.Unit import kotlin.collections.List @@ -32,6 +33,23 @@ public interface AddApplicationActionProps : AddRuleProps { */ public fun action(): ListenerAction + /** + * `ListenerRule`s have a `Rule` suffix on their logicalId by default. This allows you to remove + * that suffix. + * + * Legacy behavior of the `addTargetGroups()` convenience method did not include the `Rule` suffix + * on the logicalId of the generated `ListenerRule`. + * At some point, increasing complexity of requirements can require users to switch from the + * `addTargetGroups()` method + * to the `addAction()` method. + * When migrating `ListenerRule`s deployed by a legacy version of `addTargetGroups()`, + * you will need to enable this flag to avoid changing the logicalId of your resource. + * Otherwise Cfn will attempt to replace the `ListenerRule` and fail. + * + * Default: - use standard logicalId with the `Rule` suffix + */ + public fun removeSuffix(): Boolean? = unwrap(this).getRemoveSuffix() + /** * A builder for [AddApplicationActionProps] */ @@ -61,6 +79,20 @@ public interface AddApplicationActionProps : AddRuleProps { * Priorities must be unique. */ public fun priority(priority: Number) + + /** + * @param removeSuffix `ListenerRule`s have a `Rule` suffix on their logicalId by default. This + * allows you to remove that suffix. + * Legacy behavior of the `addTargetGroups()` convenience method did not include the `Rule` + * suffix on the logicalId of the generated `ListenerRule`. + * At some point, increasing complexity of requirements can require users to switch from the + * `addTargetGroups()` method + * to the `addAction()` method. + * When migrating `ListenerRule`s deployed by a legacy version of `addTargetGroups()`, + * you will need to enable this flag to avoid changing the logicalId of your resource. + * Otherwise Cfn will attempt to replace the `ListenerRule` and fail. + */ + public fun removeSuffix(removeSuffix: Boolean) } private class BuilderImpl : Builder { @@ -100,6 +132,22 @@ public interface AddApplicationActionProps : AddRuleProps { cdkBuilder.priority(priority) } + /** + * @param removeSuffix `ListenerRule`s have a `Rule` suffix on their logicalId by default. This + * allows you to remove that suffix. + * Legacy behavior of the `addTargetGroups()` convenience method did not include the `Rule` + * suffix on the logicalId of the generated `ListenerRule`. + * At some point, increasing complexity of requirements can require users to switch from the + * `addTargetGroups()` method + * to the `addAction()` method. + * When migrating `ListenerRule`s deployed by a legacy version of `addTargetGroups()`, + * you will need to enable this flag to avoid changing the logicalId of your resource. + * Otherwise Cfn will attempt to replace the `ListenerRule` and fail. + */ + override fun removeSuffix(removeSuffix: Boolean) { + cdkBuilder.removeSuffix(removeSuffix) + } + public fun build(): software.amazon.awscdk.services.elasticloadbalancingv2.AddApplicationActionProps = cdkBuilder.build() @@ -135,6 +183,23 @@ public interface AddApplicationActionProps : AddRuleProps { * Default: Target groups are used as defaults */ override fun priority(): Number? = unwrap(this).getPriority() + + /** + * `ListenerRule`s have a `Rule` suffix on their logicalId by default. This allows you to remove + * that suffix. + * + * Legacy behavior of the `addTargetGroups()` convenience method did not include the `Rule` + * suffix on the logicalId of the generated `ListenerRule`. + * At some point, increasing complexity of requirements can require users to switch from the + * `addTargetGroups()` method + * to the `addAction()` method. + * When migrating `ListenerRule`s deployed by a legacy version of `addTargetGroups()`, + * you will need to enable this flag to avoid changing the logicalId of your resource. + * Otherwise Cfn will attempt to replace the `ListenerRule` and fail. + * + * Default: - use standard logicalId with the `Rule` suffix + */ + override fun removeSuffix(): Boolean? = unwrap(this).getRemoveSuffix() } public companion object { diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/ApplicationLoadBalancer.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/ApplicationLoadBalancer.kt index 5cee82a854..3ca2439ce4 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/ApplicationLoadBalancer.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/ApplicationLoadBalancer.kt @@ -10,6 +10,7 @@ import io.cloudshiftdev.awscdk.services.ec2.Connections import io.cloudshiftdev.awscdk.services.ec2.ISecurityGroup import io.cloudshiftdev.awscdk.services.ec2.IVpc import io.cloudshiftdev.awscdk.services.ec2.SubnetSelection +import io.cloudshiftdev.awscdk.services.s3.IBucket import kotlin.Boolean import kotlin.Deprecated import kotlin.String @@ -147,6 +148,34 @@ public open class ApplicationLoadBalancer( public override fun listeners(): List = unwrap(this).getListeners().map(ApplicationListener::wrap) + /** + * Enable access logging for this load balancer. + * + * A region must be specified on the stack containing the load balancer; you cannot enable logging + * on + * environment-agnostic stacks. See https://docs.aws.amazon.com/cdk/latest/guide/environments.html + * + * @param bucket + * @param prefix + */ + public override fun logAccessLogs(bucket: IBucket) { + unwrap(this).logAccessLogs(bucket.let(IBucket::unwrap)) + } + + /** + * Enable access logging for this load balancer. + * + * A region must be specified on the stack containing the load balancer; you cannot enable logging + * on + * environment-agnostic stacks. See https://docs.aws.amazon.com/cdk/latest/guide/environments.html + * + * @param bucket + * @param prefix + */ + public override fun logAccessLogs(bucket: IBucket, prefix: String) { + unwrap(this).logAccessLogs(bucket.let(IBucket::unwrap), prefix) + } + /** * (deprecated) Return the given named metric for this Application Load Balancer. * @@ -288,7 +317,7 @@ public open class ApplicationLoadBalancer( * @param props */ @Deprecated(message = "deprecated in CDK") - public open fun metricConsumedLcUs(): Metric = unwrap(this).metricConsumedLCUs().let(Metric::wrap) + public open fun metricConsumedLCUs(): Metric = unwrap(this).metricConsumedLCUs().let(Metric::wrap) /** * (deprecated) The number of load balancer capacity units (LCU) used by your load balancer. @@ -299,7 +328,7 @@ public open class ApplicationLoadBalancer( * @param props */ @Deprecated(message = "deprecated in CDK") - public open fun metricConsumedLcUs(props: MetricOptions): Metric = + public open fun metricConsumedLCUs(props: MetricOptions): Metric = unwrap(this).metricConsumedLCUs(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -312,9 +341,9 @@ public open class ApplicationLoadBalancer( */ @Deprecated(message = "deprecated in CDK") @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("0ad78129a917eee56b57e367cb552e5520e44cc8850a30b6843c7637bddf5442") - public open fun metricConsumedLcUs(props: MetricOptions.Builder.() -> Unit): Metric = - metricConsumedLcUs(MetricOptions(props)) + @JvmName("e3e6de8e93f42ba897d92007009735fcc06aede8f8d1f7a9b5b0846ad0b5c213") + public open fun metricConsumedLCUs(props: MetricOptions.Builder.() -> Unit): Metric = + metricConsumedLCUs(MetricOptions(props)) /** * (deprecated) The number of user authentications that could not be completed. @@ -1094,7 +1123,7 @@ public open class ApplicationLoadBalancer( * @param props */ @Deprecated(message = "deprecated in CDK") - public open fun metricTargetTlsNegotiationErrorCount(): Metric = + public open fun metricTargetTLSNegotiationErrorCount(): Metric = unwrap(this).metricTargetTLSNegotiationErrorCount().let(Metric::wrap) /** @@ -1109,7 +1138,7 @@ public open class ApplicationLoadBalancer( * @param props */ @Deprecated(message = "deprecated in CDK") - public open fun metricTargetTlsNegotiationErrorCount(props: MetricOptions): Metric = + public open fun metricTargetTLSNegotiationErrorCount(props: MetricOptions): Metric = unwrap(this).metricTargetTLSNegotiationErrorCount(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -1125,9 +1154,9 @@ public open class ApplicationLoadBalancer( */ @Deprecated(message = "deprecated in CDK") @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("6fb589e77244f79e7b207d6efccaa92a565bce39740975d0c083f19f8a1853d0") - public open fun metricTargetTlsNegotiationErrorCount(props: MetricOptions.Builder.() -> Unit): - Metric = metricTargetTlsNegotiationErrorCount(MetricOptions(props)) + @JvmName("70bf713a49db7cc1ea5cbee18d1539d5f4fc72d053cab9032f0270e4cb252ce2") + public open fun metricTargetTLSNegotiationErrorCount(props: MetricOptions.Builder.() -> Unit): + Metric = metricTargetTLSNegotiationErrorCount(MetricOptions(props)) /** * All metrics available for this load balancer. @@ -1143,6 +1172,29 @@ public open class ApplicationLoadBalancer( */ @CdkDslMarker public interface Builder { + /** + * The client keep alive duration. + * + * The valid range is 60 to 604800 seconds (1 minute to 7 days). + * + * Default: - Duration.seconds(3600) + * + * @param clientKeepAlive The client keep alive duration. + */ + public fun clientKeepAlive(clientKeepAlive: Duration) + + /** + * Indicates whether cross-zone load balancing is enabled. + * + * Default: - false for Network Load Balancers and true for Application Load Balancers. + * This can not be `false` for Application Load Balancers. + * + * [Documentation]( - + * https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-loadbalancerattribute.html) + * @param crossZoneEnabled Indicates whether cross-zone load balancing is enabled. + */ + public fun crossZoneEnabled(crossZoneEnabled: Boolean) + /** * Indicates whether deletion protection is enabled. * @@ -1152,6 +1204,16 @@ public open class ApplicationLoadBalancer( */ public fun deletionProtection(deletionProtection: Boolean) + /** + * Indicates whether the load balancer blocks traffic through the Internet Gateway (IGW). + * + * Default: - false for internet-facing load balancers and true for internal load balancers + * + * @param denyAllIgwTraffic Indicates whether the load balancer blocks traffic through the + * Internet Gateway (IGW). + */ + public fun denyAllIgwTraffic(denyAllIgwTraffic: Boolean) + /** * Determines how the load balancer handles requests that might pose a security risk to your * application. @@ -1219,6 +1281,28 @@ public open class ApplicationLoadBalancer( */ public fun loadBalancerName(loadBalancerName: String) + /** + * Indicates whether the Application Load Balancer should preserve the host header in the HTTP + * request and send it to the target without any change. + * + * Default: false + * + * @param preserveHostHeader Indicates whether the Application Load Balancer should preserve the + * host header in the HTTP request and send it to the target without any change. + */ + public fun preserveHostHeader(preserveHostHeader: Boolean) + + /** + * Indicates whether the X-Forwarded-For header should preserve the source port that the client + * used to connect to the load balancer. + * + * Default: false + * + * @param preserveXffClientPort Indicates whether the X-Forwarded-For header should preserve the + * source port that the client used to connect to the load balancer. + */ + public fun preserveXffClientPort(preserveXffClientPort: Boolean) + /** * Security group to associate with this load balancer. * @@ -1254,6 +1338,49 @@ public open class ApplicationLoadBalancer( @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("37ab8b88b872e71ae62e225b437c3fd8223e8c24ae05dc0ea4ccb865fb06a8c6") public fun vpcSubnets(vpcSubnets: SubnetSelection.Builder.() -> Unit) + + /** + * Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is + * unable to forward the request to AWS WAF. + * + * Default: false + * + * @param wafFailOpen Indicates whether to allow a WAF-enabled load balancer to route requests + * to targets if it is unable to forward the request to AWS WAF. + */ + public fun wafFailOpen(wafFailOpen: Boolean) + + /** + * Indicates whether the two headers (x-amzn-tls-version and x-amzn-tls-cipher-suite), which + * contain information about the negotiated TLS version and cipher suite, are added to the client + * request before sending it to the target. + * + * The x-amzn-tls-version header has information about the TLS protocol version negotiated with + * the client, + * and the x-amzn-tls-cipher-suite header has information about the cipher suite negotiated with + * the client. + * + * Both headers are in OpenSSL format. + * + * Default: false + * + * @param xAmznTlsVersionAndCipherSuiteHeaders Indicates whether the two headers + * (x-amzn-tls-version and x-amzn-tls-cipher-suite), which contain information about the negotiated + * TLS version and cipher suite, are added to the client request before sending it to the target. + */ + public fun xAmznTlsVersionAndCipherSuiteHeaders(xAmznTlsVersionAndCipherSuiteHeaders: Boolean) + + /** + * Enables you to modify, preserve, or remove the X-Forwarded-For header in the HTTP request + * before the Application Load Balancer sends the request to the target. + * + * Default: XffHeaderProcessingMode.APPEND + * + * @param xffHeaderProcessingMode Enables you to modify, preserve, or remove the X-Forwarded-For + * header in the HTTP request before the Application Load Balancer sends the request to the target. + * + */ + public fun xffHeaderProcessingMode(xffHeaderProcessingMode: XffHeaderProcessingMode) } private class BuilderImpl( @@ -1265,6 +1392,33 @@ public open class ApplicationLoadBalancer( software.amazon.awscdk.services.elasticloadbalancingv2.ApplicationLoadBalancer.Builder.create(scope, id) + /** + * The client keep alive duration. + * + * The valid range is 60 to 604800 seconds (1 minute to 7 days). + * + * Default: - Duration.seconds(3600) + * + * @param clientKeepAlive The client keep alive duration. + */ + override fun clientKeepAlive(clientKeepAlive: Duration) { + cdkBuilder.clientKeepAlive(clientKeepAlive.let(Duration::unwrap)) + } + + /** + * Indicates whether cross-zone load balancing is enabled. + * + * Default: - false for Network Load Balancers and true for Application Load Balancers. + * This can not be `false` for Application Load Balancers. + * + * [Documentation]( - + * https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-loadbalancerattribute.html) + * @param crossZoneEnabled Indicates whether cross-zone load balancing is enabled. + */ + override fun crossZoneEnabled(crossZoneEnabled: Boolean) { + cdkBuilder.crossZoneEnabled(crossZoneEnabled) + } + /** * Indicates whether deletion protection is enabled. * @@ -1276,6 +1430,18 @@ public open class ApplicationLoadBalancer( cdkBuilder.deletionProtection(deletionProtection) } + /** + * Indicates whether the load balancer blocks traffic through the Internet Gateway (IGW). + * + * Default: - false for internet-facing load balancers and true for internal load balancers + * + * @param denyAllIgwTraffic Indicates whether the load balancer blocks traffic through the + * Internet Gateway (IGW). + */ + override fun denyAllIgwTraffic(denyAllIgwTraffic: Boolean) { + cdkBuilder.denyAllIgwTraffic(denyAllIgwTraffic) + } + /** * Determines how the load balancer handles requests that might pose a security risk to your * application. @@ -1357,6 +1523,32 @@ public open class ApplicationLoadBalancer( cdkBuilder.loadBalancerName(loadBalancerName) } + /** + * Indicates whether the Application Load Balancer should preserve the host header in the HTTP + * request and send it to the target without any change. + * + * Default: false + * + * @param preserveHostHeader Indicates whether the Application Load Balancer should preserve the + * host header in the HTTP request and send it to the target without any change. + */ + override fun preserveHostHeader(preserveHostHeader: Boolean) { + cdkBuilder.preserveHostHeader(preserveHostHeader) + } + + /** + * Indicates whether the X-Forwarded-For header should preserve the source port that the client + * used to connect to the load balancer. + * + * Default: false + * + * @param preserveXffClientPort Indicates whether the X-Forwarded-For header should preserve the + * source port that the client used to connect to the load balancer. + */ + override fun preserveXffClientPort(preserveXffClientPort: Boolean) { + cdkBuilder.preserveXffClientPort(preserveXffClientPort) + } + /** * Security group to associate with this load balancer. * @@ -1400,6 +1592,56 @@ public open class ApplicationLoadBalancer( override fun vpcSubnets(vpcSubnets: SubnetSelection.Builder.() -> Unit): Unit = vpcSubnets(SubnetSelection(vpcSubnets)) + /** + * Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is + * unable to forward the request to AWS WAF. + * + * Default: false + * + * @param wafFailOpen Indicates whether to allow a WAF-enabled load balancer to route requests + * to targets if it is unable to forward the request to AWS WAF. + */ + override fun wafFailOpen(wafFailOpen: Boolean) { + cdkBuilder.wafFailOpen(wafFailOpen) + } + + /** + * Indicates whether the two headers (x-amzn-tls-version and x-amzn-tls-cipher-suite), which + * contain information about the negotiated TLS version and cipher suite, are added to the client + * request before sending it to the target. + * + * The x-amzn-tls-version header has information about the TLS protocol version negotiated with + * the client, + * and the x-amzn-tls-cipher-suite header has information about the cipher suite negotiated with + * the client. + * + * Both headers are in OpenSSL format. + * + * Default: false + * + * @param xAmznTlsVersionAndCipherSuiteHeaders Indicates whether the two headers + * (x-amzn-tls-version and x-amzn-tls-cipher-suite), which contain information about the negotiated + * TLS version and cipher suite, are added to the client request before sending it to the target. + */ + override + fun xAmznTlsVersionAndCipherSuiteHeaders(xAmznTlsVersionAndCipherSuiteHeaders: Boolean) { + cdkBuilder.xAmznTlsVersionAndCipherSuiteHeaders(xAmznTlsVersionAndCipherSuiteHeaders) + } + + /** + * Enables you to modify, preserve, or remove the X-Forwarded-For header in the HTTP request + * before the Application Load Balancer sends the request to the target. + * + * Default: XffHeaderProcessingMode.APPEND + * + * @param xffHeaderProcessingMode Enables you to modify, preserve, or remove the X-Forwarded-For + * header in the HTTP request before the Application Load Balancer sends the request to the target. + * + */ + override fun xffHeaderProcessingMode(xffHeaderProcessingMode: XffHeaderProcessingMode) { + cdkBuilder.xffHeaderProcessingMode(xffHeaderProcessingMode.let(XffHeaderProcessingMode::unwrap)) + } + public fun build(): software.amazon.awscdk.services.elasticloadbalancingv2.ApplicationLoadBalancer = cdkBuilder.build() diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/ApplicationLoadBalancerProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/ApplicationLoadBalancerProps.kt index 921b040478..1471bdb664 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/ApplicationLoadBalancerProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/ApplicationLoadBalancerProps.kt @@ -20,26 +20,44 @@ import kotlin.jvm.JvmName * Example: * * ``` - * Cluster cluster; - * TaskDefinition taskDefinition; + * import io.cloudshiftdev.awscdk.services.autoscaling.AutoScalingGroup; + * AutoScalingGroup asg; * Vpc vpc; - * FargateService service = FargateService.Builder.create(this, - * "Service").cluster(cluster).taskDefinition(taskDefinition).build(); - * ApplicationLoadBalancer lb = ApplicationLoadBalancer.Builder.create(this, - * "LB").vpc(vpc).internetFacing(true).build(); - * ApplicationListener listener = lb.addListener("Listener", - * BaseApplicationListenerProps.builder().port(80).build()); - * service.registerLoadBalancerTargets(EcsTarget.builder() - * .containerName("web") - * .containerPort(80) - * .newTargetGroupId("ECS") - * .listener(ListenerConfig.applicationListener(listener, AddApplicationTargetsProps.builder() - * .protocol(ApplicationProtocol.HTTPS) - * .build())) + * // Create the load balancer in a VPC. 'internetFacing' is 'false' + * // by default, which creates an internal load balancer. + * ApplicationLoadBalancer lb = ApplicationLoadBalancer.Builder.create(this, "LB") + * .vpc(vpc) + * .internetFacing(true) + * .build(); + * // Add a listener and open up the load balancer's security group + * // to the world. + * ApplicationListener listener = lb.addListener("Listener", BaseApplicationListenerProps.builder() + * .port(80) + * // 'open: true' is the default, you can leave it out if you want. Set it + * // to 'false' and use `listener.connections` if you want to be selective + * // about who can access the load balancer. + * .open(true) + * .build()); + * // Create an AutoScaling group and add it as a load balancing + * // target to the listener. + * listener.addTargets("ApplicationFleet", AddApplicationTargetsProps.builder() + * .port(8080) + * .targets(List.of(asg)) * .build()); * ``` + * + * [Documentation](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html#load-balancer-attributes) */ public interface ApplicationLoadBalancerProps : BaseLoadBalancerProps { + /** + * The client keep alive duration. + * + * The valid range is 60 to 604800 seconds (1 minute to 7 days). + * + * Default: - Duration.seconds(3600) + */ + public fun clientKeepAlive(): Duration? = unwrap(this).getClientKeepAlive()?.let(Duration::wrap) + /** * Determines how the load balancer handles requests that might pose a security risk to your * application. @@ -79,6 +97,22 @@ public interface ApplicationLoadBalancerProps : BaseLoadBalancerProps { public fun ipAddressType(): IpAddressType? = unwrap(this).getIpAddressType()?.let(IpAddressType::wrap) + /** + * Indicates whether the Application Load Balancer should preserve the host header in the HTTP + * request and send it to the target without any change. + * + * Default: false + */ + public fun preserveHostHeader(): Boolean? = unwrap(this).getPreserveHostHeader() + + /** + * Indicates whether the X-Forwarded-For header should preserve the source port that the client + * used to connect to the load balancer. + * + * Default: false + */ + public fun preserveXffClientPort(): Boolean? = unwrap(this).getPreserveXffClientPort() + /** * Security group to associate with this load balancer. * @@ -87,16 +121,67 @@ public interface ApplicationLoadBalancerProps : BaseLoadBalancerProps { public fun securityGroup(): ISecurityGroup? = unwrap(this).getSecurityGroup()?.let(ISecurityGroup::wrap) + /** + * Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is + * unable to forward the request to AWS WAF. + * + * Default: false + */ + public fun wafFailOpen(): Boolean? = unwrap(this).getWafFailOpen() + + /** + * Indicates whether the two headers (x-amzn-tls-version and x-amzn-tls-cipher-suite), which + * contain information about the negotiated TLS version and cipher suite, are added to the client + * request before sending it to the target. + * + * The x-amzn-tls-version header has information about the TLS protocol version negotiated with + * the client, + * and the x-amzn-tls-cipher-suite header has information about the cipher suite negotiated with + * the client. + * + * Both headers are in OpenSSL format. + * + * Default: false + */ + public fun xAmznTlsVersionAndCipherSuiteHeaders(): Boolean? = + unwrap(this).getXAmznTlsVersionAndCipherSuiteHeaders() + + /** + * Enables you to modify, preserve, or remove the X-Forwarded-For header in the HTTP request + * before the Application Load Balancer sends the request to the target. + * + * Default: XffHeaderProcessingMode.APPEND + */ + public fun xffHeaderProcessingMode(): XffHeaderProcessingMode? = + unwrap(this).getXffHeaderProcessingMode()?.let(XffHeaderProcessingMode::wrap) + /** * A builder for [ApplicationLoadBalancerProps] */ @CdkDslMarker public interface Builder { + /** + * @param clientKeepAlive The client keep alive duration. + * The valid range is 60 to 604800 seconds (1 minute to 7 days). + */ + public fun clientKeepAlive(clientKeepAlive: Duration) + + /** + * @param crossZoneEnabled Indicates whether cross-zone load balancing is enabled. + */ + public fun crossZoneEnabled(crossZoneEnabled: Boolean) + /** * @param deletionProtection Indicates whether deletion protection is enabled. */ public fun deletionProtection(deletionProtection: Boolean) + /** + * @param denyAllIgwTraffic Indicates whether the load balancer blocks traffic through the + * Internet Gateway (IGW). + */ + public fun denyAllIgwTraffic(denyAllIgwTraffic: Boolean) + /** * @param desyncMitigationMode Determines how the load balancer handles requests that might pose * a security risk to your application. @@ -134,6 +219,18 @@ public interface ApplicationLoadBalancerProps : BaseLoadBalancerProps { */ public fun loadBalancerName(loadBalancerName: String) + /** + * @param preserveHostHeader Indicates whether the Application Load Balancer should preserve the + * host header in the HTTP request and send it to the target without any change. + */ + public fun preserveHostHeader(preserveHostHeader: Boolean) + + /** + * @param preserveXffClientPort Indicates whether the X-Forwarded-For header should preserve the + * source port that the client used to connect to the load balancer. + */ + public fun preserveXffClientPort(preserveXffClientPort: Boolean) + /** * @param securityGroup Security group to associate with this load balancer. */ @@ -155,6 +252,31 @@ public interface ApplicationLoadBalancerProps : BaseLoadBalancerProps { @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("f697656458aa2de18c67293ca49b91fb052853eaaa6860bf0c9997bcf6a3b0e9") public fun vpcSubnets(vpcSubnets: SubnetSelection.Builder.() -> Unit) + + /** + * @param wafFailOpen Indicates whether to allow a WAF-enabled load balancer to route requests + * to targets if it is unable to forward the request to AWS WAF. + */ + public fun wafFailOpen(wafFailOpen: Boolean) + + /** + * @param xAmznTlsVersionAndCipherSuiteHeaders Indicates whether the two headers + * (x-amzn-tls-version and x-amzn-tls-cipher-suite), which contain information about the negotiated + * TLS version and cipher suite, are added to the client request before sending it to the target. + * The x-amzn-tls-version header has information about the TLS protocol version negotiated with + * the client, + * and the x-amzn-tls-cipher-suite header has information about the cipher suite negotiated with + * the client. + * + * Both headers are in OpenSSL format. + */ + public fun xAmznTlsVersionAndCipherSuiteHeaders(xAmznTlsVersionAndCipherSuiteHeaders: Boolean) + + /** + * @param xffHeaderProcessingMode Enables you to modify, preserve, or remove the X-Forwarded-For + * header in the HTTP request before the Application Load Balancer sends the request to the target. + */ + public fun xffHeaderProcessingMode(xffHeaderProcessingMode: XffHeaderProcessingMode) } private class BuilderImpl : Builder { @@ -163,6 +285,21 @@ public interface ApplicationLoadBalancerProps : BaseLoadBalancerProps { = software.amazon.awscdk.services.elasticloadbalancingv2.ApplicationLoadBalancerProps.builder() + /** + * @param clientKeepAlive The client keep alive duration. + * The valid range is 60 to 604800 seconds (1 minute to 7 days). + */ + override fun clientKeepAlive(clientKeepAlive: Duration) { + cdkBuilder.clientKeepAlive(clientKeepAlive.let(Duration::unwrap)) + } + + /** + * @param crossZoneEnabled Indicates whether cross-zone load balancing is enabled. + */ + override fun crossZoneEnabled(crossZoneEnabled: Boolean) { + cdkBuilder.crossZoneEnabled(crossZoneEnabled) + } + /** * @param deletionProtection Indicates whether deletion protection is enabled. */ @@ -170,6 +307,14 @@ public interface ApplicationLoadBalancerProps : BaseLoadBalancerProps { cdkBuilder.deletionProtection(deletionProtection) } + /** + * @param denyAllIgwTraffic Indicates whether the load balancer blocks traffic through the + * Internet Gateway (IGW). + */ + override fun denyAllIgwTraffic(denyAllIgwTraffic: Boolean) { + cdkBuilder.denyAllIgwTraffic(denyAllIgwTraffic) + } + /** * @param desyncMitigationMode Determines how the load balancer handles requests that might pose * a security risk to your application. @@ -221,6 +366,22 @@ public interface ApplicationLoadBalancerProps : BaseLoadBalancerProps { cdkBuilder.loadBalancerName(loadBalancerName) } + /** + * @param preserveHostHeader Indicates whether the Application Load Balancer should preserve the + * host header in the HTTP request and send it to the target without any change. + */ + override fun preserveHostHeader(preserveHostHeader: Boolean) { + cdkBuilder.preserveHostHeader(preserveHostHeader) + } + + /** + * @param preserveXffClientPort Indicates whether the X-Forwarded-For header should preserve the + * source port that the client used to connect to the load balancer. + */ + override fun preserveXffClientPort(preserveXffClientPort: Boolean) { + cdkBuilder.preserveXffClientPort(preserveXffClientPort) + } + /** * @param securityGroup Security group to associate with this load balancer. */ @@ -250,6 +411,38 @@ public interface ApplicationLoadBalancerProps : BaseLoadBalancerProps { override fun vpcSubnets(vpcSubnets: SubnetSelection.Builder.() -> Unit): Unit = vpcSubnets(SubnetSelection(vpcSubnets)) + /** + * @param wafFailOpen Indicates whether to allow a WAF-enabled load balancer to route requests + * to targets if it is unable to forward the request to AWS WAF. + */ + override fun wafFailOpen(wafFailOpen: Boolean) { + cdkBuilder.wafFailOpen(wafFailOpen) + } + + /** + * @param xAmznTlsVersionAndCipherSuiteHeaders Indicates whether the two headers + * (x-amzn-tls-version and x-amzn-tls-cipher-suite), which contain information about the negotiated + * TLS version and cipher suite, are added to the client request before sending it to the target. + * The x-amzn-tls-version header has information about the TLS protocol version negotiated with + * the client, + * and the x-amzn-tls-cipher-suite header has information about the cipher suite negotiated with + * the client. + * + * Both headers are in OpenSSL format. + */ + override + fun xAmznTlsVersionAndCipherSuiteHeaders(xAmznTlsVersionAndCipherSuiteHeaders: Boolean) { + cdkBuilder.xAmznTlsVersionAndCipherSuiteHeaders(xAmznTlsVersionAndCipherSuiteHeaders) + } + + /** + * @param xffHeaderProcessingMode Enables you to modify, preserve, or remove the X-Forwarded-For + * header in the HTTP request before the Application Load Balancer sends the request to the target. + */ + override fun xffHeaderProcessingMode(xffHeaderProcessingMode: XffHeaderProcessingMode) { + cdkBuilder.xffHeaderProcessingMode(xffHeaderProcessingMode.let(XffHeaderProcessingMode::unwrap)) + } + public fun build(): software.amazon.awscdk.services.elasticloadbalancingv2.ApplicationLoadBalancerProps = cdkBuilder.build() @@ -258,6 +451,27 @@ public interface ApplicationLoadBalancerProps : BaseLoadBalancerProps { private class Wrapper( cdkObject: software.amazon.awscdk.services.elasticloadbalancingv2.ApplicationLoadBalancerProps, ) : CdkObject(cdkObject), ApplicationLoadBalancerProps { + /** + * The client keep alive duration. + * + * The valid range is 60 to 604800 seconds (1 minute to 7 days). + * + * Default: - Duration.seconds(3600) + */ + override fun clientKeepAlive(): Duration? = + unwrap(this).getClientKeepAlive()?.let(Duration::wrap) + + /** + * Indicates whether cross-zone load balancing is enabled. + * + * Default: - false for Network Load Balancers and true for Application Load Balancers. + * This can not be `false` for Application Load Balancers. + * + * [Documentation]( - + * https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-loadbalancerattribute.html) + */ + override fun crossZoneEnabled(): Boolean? = unwrap(this).getCrossZoneEnabled() + /** * Indicates whether deletion protection is enabled. * @@ -265,6 +479,13 @@ public interface ApplicationLoadBalancerProps : BaseLoadBalancerProps { */ override fun deletionProtection(): Boolean? = unwrap(this).getDeletionProtection() + /** + * Indicates whether the load balancer blocks traffic through the Internet Gateway (IGW). + * + * Default: - false for internet-facing load balancers and true for internal load balancers + */ + override fun denyAllIgwTraffic(): Boolean? = unwrap(this).getDenyAllIgwTraffic() + /** * Determines how the load balancer handles requests that might pose a security risk to your * application. @@ -318,6 +539,22 @@ public interface ApplicationLoadBalancerProps : BaseLoadBalancerProps { */ override fun loadBalancerName(): String? = unwrap(this).getLoadBalancerName() + /** + * Indicates whether the Application Load Balancer should preserve the host header in the HTTP + * request and send it to the target without any change. + * + * Default: false + */ + override fun preserveHostHeader(): Boolean? = unwrap(this).getPreserveHostHeader() + + /** + * Indicates whether the X-Forwarded-For header should preserve the source port that the client + * used to connect to the load balancer. + * + * Default: false + */ + override fun preserveXffClientPort(): Boolean? = unwrap(this).getPreserveXffClientPort() + /** * Security group to associate with this load balancer. * @@ -338,6 +575,40 @@ public interface ApplicationLoadBalancerProps : BaseLoadBalancerProps { */ override fun vpcSubnets(): SubnetSelection? = unwrap(this).getVpcSubnets()?.let(SubnetSelection::wrap) + + /** + * Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is + * unable to forward the request to AWS WAF. + * + * Default: false + */ + override fun wafFailOpen(): Boolean? = unwrap(this).getWafFailOpen() + + /** + * Indicates whether the two headers (x-amzn-tls-version and x-amzn-tls-cipher-suite), which + * contain information about the negotiated TLS version and cipher suite, are added to the client + * request before sending it to the target. + * + * The x-amzn-tls-version header has information about the TLS protocol version negotiated with + * the client, + * and the x-amzn-tls-cipher-suite header has information about the cipher suite negotiated with + * the client. + * + * Both headers are in OpenSSL format. + * + * Default: false + */ + override fun xAmznTlsVersionAndCipherSuiteHeaders(): Boolean? = + unwrap(this).getXAmznTlsVersionAndCipherSuiteHeaders() + + /** + * Enables you to modify, preserve, or remove the X-Forwarded-For header in the HTTP request + * before the Application Load Balancer sends the request to the target. + * + * Default: XffHeaderProcessingMode.APPEND + */ + override fun xffHeaderProcessingMode(): XffHeaderProcessingMode? = + unwrap(this).getXffHeaderProcessingMode()?.let(XffHeaderProcessingMode::wrap) } public companion object { diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/ApplicationTargetGroup.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/ApplicationTargetGroup.kt index d7f6da3594..e435ada079 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/ApplicationTargetGroup.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/ApplicationTargetGroup.kt @@ -467,7 +467,7 @@ public open class ApplicationTargetGroup( * @param props */ @Deprecated(message = "deprecated in CDK") - public open fun metricTargetTlsNegotiationErrorCount(): Metric = + public open fun metricTargetTLSNegotiationErrorCount(): Metric = unwrap(this).metricTargetTLSNegotiationErrorCount().let(Metric::wrap) /** @@ -482,7 +482,7 @@ public open class ApplicationTargetGroup( * @param props */ @Deprecated(message = "deprecated in CDK") - public open fun metricTargetTlsNegotiationErrorCount(props: MetricOptions): Metric = + public open fun metricTargetTLSNegotiationErrorCount(props: MetricOptions): Metric = unwrap(this).metricTargetTLSNegotiationErrorCount(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -498,9 +498,9 @@ public open class ApplicationTargetGroup( */ @Deprecated(message = "deprecated in CDK") @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("6fb589e77244f79e7b207d6efccaa92a565bce39740975d0c083f19f8a1853d0") - public open fun metricTargetTlsNegotiationErrorCount(props: MetricOptions.Builder.() -> Unit): - Metric = metricTargetTlsNegotiationErrorCount(MetricOptions(props)) + @JvmName("70bf713a49db7cc1ea5cbee18d1539d5f4fc72d053cab9032f0270e4cb252ce2") + public open fun metricTargetTLSNegotiationErrorCount(props: MetricOptions.Builder.() -> Unit): + Metric = metricTargetTLSNegotiationErrorCount(MetricOptions(props)) /** * (deprecated) The number of unhealthy hosts in the target group. @@ -715,7 +715,7 @@ public open class ApplicationTargetGroup( * After this period, the cookie is considered stale. The minimum value is * 1 second and the maximum value is 7 days (604800 seconds). * - * Default: Duration.days(1) + * Default: - Stickiness is disabled * * @param stickinessCookieDuration The stickiness cookie expiration period. */ @@ -926,7 +926,7 @@ public open class ApplicationTargetGroup( * After this period, the cookie is considered stale. The minimum value is * 1 second and the maximum value is 7 days (604800 seconds). * - * Default: Duration.days(1) + * Default: - Stickiness is disabled * * @param stickinessCookieDuration The stickiness cookie expiration period. */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/ApplicationTargetGroupProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/ApplicationTargetGroupProps.kt index 73d59d0163..466e0460be 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/ApplicationTargetGroupProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/ApplicationTargetGroupProps.kt @@ -20,19 +20,15 @@ import kotlin.jvm.JvmName * * ``` * Vpc vpc; - * // Target group with duration-based stickiness with load-balancer generated cookie - * ApplicationTargetGroup tg1 = ApplicationTargetGroup.Builder.create(this, "TG1") - * .targetType(TargetType.INSTANCE) - * .port(80) - * .stickinessCookieDuration(Duration.minutes(5)) - * .vpc(vpc) - * .build(); - * // Target group with application-based stickiness - * ApplicationTargetGroup tg2 = ApplicationTargetGroup.Builder.create(this, "TG2") - * .targetType(TargetType.INSTANCE) - * .port(80) - * .stickinessCookieDuration(Duration.minutes(5)) - * .stickinessCookieName("MyDeliciousCookie") + * ApplicationTargetGroup tg = ApplicationTargetGroup.Builder.create(this, "TG") + * .targetType(TargetType.IP) + * .port(50051) + * .protocol(ApplicationProtocol.HTTP) + * .protocolVersion(ApplicationProtocolVersion.GRPC) + * .healthCheck(HealthCheck.builder() + * .enabled(true) + * .healthyGrpcCodes("0-99") + * .build()) * .vpc(vpc) * .build(); * ``` @@ -91,7 +87,7 @@ public interface ApplicationTargetGroupProps : BaseTargetGroupProps { * After this period, the cookie is considered stale. The minimum value is * 1 second and the maximum value is 7 days (604800 seconds). * - * Default: Duration.days(1) + * Default: - Stickiness is disabled */ public fun stickinessCookieDuration(): Duration? = unwrap(this).getStickinessCookieDuration()?.let(Duration::wrap) @@ -461,7 +457,7 @@ public interface ApplicationTargetGroupProps : BaseTargetGroupProps { * After this period, the cookie is considered stale. The minimum value is * 1 second and the maximum value is 7 days (604800 seconds). * - * Default: Duration.days(1) + * Default: - Stickiness is disabled */ override fun stickinessCookieDuration(): Duration? = unwrap(this).getStickinessCookieDuration()?.let(Duration::wrap) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/BaseLoadBalancerProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/BaseLoadBalancerProps.kt index 4f3359389f..01939946d3 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/BaseLoadBalancerProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/BaseLoadBalancerProps.kt @@ -28,7 +28,9 @@ import kotlin.jvm.JvmName * BaseLoadBalancerProps baseLoadBalancerProps = BaseLoadBalancerProps.builder() * .vpc(vpc) * // the properties below are optional + * .crossZoneEnabled(false) * .deletionProtection(false) + * .denyAllIgwTraffic(false) * .internetFacing(false) * .loadBalancerName("loadBalancerName") * .vpcSubnets(SubnetSelection.builder() @@ -43,6 +45,17 @@ import kotlin.jvm.JvmName * ``` */ public interface BaseLoadBalancerProps { + /** + * Indicates whether cross-zone load balancing is enabled. + * + * Default: - false for Network Load Balancers and true for Application Load Balancers. + * This can not be `false` for Application Load Balancers. + * + * [Documentation]( - + * https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-loadbalancerattribute.html) + */ + public fun crossZoneEnabled(): Boolean? = unwrap(this).getCrossZoneEnabled() + /** * Indicates whether deletion protection is enabled. * @@ -50,6 +63,13 @@ public interface BaseLoadBalancerProps { */ public fun deletionProtection(): Boolean? = unwrap(this).getDeletionProtection() + /** + * Indicates whether the load balancer blocks traffic through the Internet Gateway (IGW). + * + * Default: - false for internet-facing load balancers and true for internal load balancers + */ + public fun denyAllIgwTraffic(): Boolean? = unwrap(this).getDenyAllIgwTraffic() + /** * Whether the load balancer has an internet-routable address. * @@ -82,11 +102,22 @@ public interface BaseLoadBalancerProps { */ @CdkDslMarker public interface Builder { + /** + * @param crossZoneEnabled Indicates whether cross-zone load balancing is enabled. + */ + public fun crossZoneEnabled(crossZoneEnabled: Boolean) + /** * @param deletionProtection Indicates whether deletion protection is enabled. */ public fun deletionProtection(deletionProtection: Boolean) + /** + * @param denyAllIgwTraffic Indicates whether the load balancer blocks traffic through the + * Internet Gateway (IGW). + */ + public fun denyAllIgwTraffic(denyAllIgwTraffic: Boolean) + /** * @param internetFacing Whether the load balancer has an internet-routable address. */ @@ -120,6 +151,13 @@ public interface BaseLoadBalancerProps { software.amazon.awscdk.services.elasticloadbalancingv2.BaseLoadBalancerProps.Builder = software.amazon.awscdk.services.elasticloadbalancingv2.BaseLoadBalancerProps.builder() + /** + * @param crossZoneEnabled Indicates whether cross-zone load balancing is enabled. + */ + override fun crossZoneEnabled(crossZoneEnabled: Boolean) { + cdkBuilder.crossZoneEnabled(crossZoneEnabled) + } + /** * @param deletionProtection Indicates whether deletion protection is enabled. */ @@ -127,6 +165,14 @@ public interface BaseLoadBalancerProps { cdkBuilder.deletionProtection(deletionProtection) } + /** + * @param denyAllIgwTraffic Indicates whether the load balancer blocks traffic through the + * Internet Gateway (IGW). + */ + override fun denyAllIgwTraffic(denyAllIgwTraffic: Boolean) { + cdkBuilder.denyAllIgwTraffic(denyAllIgwTraffic) + } + /** * @param internetFacing Whether the load balancer has an internet-routable address. */ @@ -170,6 +216,17 @@ public interface BaseLoadBalancerProps { private class Wrapper( cdkObject: software.amazon.awscdk.services.elasticloadbalancingv2.BaseLoadBalancerProps, ) : CdkObject(cdkObject), BaseLoadBalancerProps { + /** + * Indicates whether cross-zone load balancing is enabled. + * + * Default: - false for Network Load Balancers and true for Application Load Balancers. + * This can not be `false` for Application Load Balancers. + * + * [Documentation]( - + * https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-loadbalancerattribute.html) + */ + override fun crossZoneEnabled(): Boolean? = unwrap(this).getCrossZoneEnabled() + /** * Indicates whether deletion protection is enabled. * @@ -177,6 +234,13 @@ public interface BaseLoadBalancerProps { */ override fun deletionProtection(): Boolean? = unwrap(this).getDeletionProtection() + /** + * Indicates whether the load balancer blocks traffic through the Internet Gateway (IGW). + * + * Default: - false for internet-facing load balancers and true for internal load balancers + */ + override fun denyAllIgwTraffic(): Boolean? = unwrap(this).getDenyAllIgwTraffic() + /** * Whether the load balancer has an internet-routable address. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/CfnLoadBalancer.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/CfnLoadBalancer.kt index 3056087f9e..743066f2e5 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/CfnLoadBalancer.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/CfnLoadBalancer.kt @@ -937,6 +937,8 @@ public open class CfnLoadBalancer( * * * `idle_timeout.timeout_seconds` - The idle timeout value, in seconds. The valid range is * 1-4000 seconds. The default is 60 seconds. + * * `client_keep_alive.seconds` - The client keep alive value, in seconds. The valid range is + * 60-604800 seconds. The default is 3600 seconds. * * `connection_logs.s3.enabled` - Indicates whether connection logs are enabled. The value is * `true` or `false` . The default is `false` . * * `connection_logs.s3.bucket` - The name of the S3 bucket for the connection logs. This @@ -1035,6 +1037,8 @@ public open class CfnLoadBalancer( * * * `idle_timeout.timeout_seconds` - The idle timeout value, in seconds. The valid range is * 1-4000 seconds. The default is 60 seconds. + * * `client_keep_alive.seconds` - The client keep alive value, in seconds. The valid range is + * 60-604800 seconds. The default is 3600 seconds. * * `connection_logs.s3.enabled` - Indicates whether connection logs are enabled. The value * is `true` or `false` . The default is `false` . * * `connection_logs.s3.bucket` - The name of the S3 bucket for the connection logs. This @@ -1133,6 +1137,8 @@ public open class CfnLoadBalancer( * * * `idle_timeout.timeout_seconds` - The idle timeout value, in seconds. The valid range is * 1-4000 seconds. The default is 60 seconds. + * * `client_keep_alive.seconds` - The client keep alive value, in seconds. The valid range is + * 60-604800 seconds. The default is 3600 seconds. * * `connection_logs.s3.enabled` - Indicates whether connection logs are enabled. The value * is `true` or `false` . The default is `false` . * * `connection_logs.s3.bucket` - The name of the S3 bucket for the connection logs. This @@ -1237,6 +1243,8 @@ public open class CfnLoadBalancer( * * * `idle_timeout.timeout_seconds` - The idle timeout value, in seconds. The valid range is * 1-4000 seconds. The default is 60 seconds. + * * `client_keep_alive.seconds` - The client keep alive value, in seconds. The valid range is + * 60-604800 seconds. The default is 3600 seconds. * * `connection_logs.s3.enabled` - Indicates whether connection logs are enabled. The value * is `true` or `false` . The default is `false` . * * `connection_logs.s3.bucket` - The name of the S3 bucket for the connection logs. This diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/ClientRoutingPolicy.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/ClientRoutingPolicy.kt new file mode 100644 index 0000000000..87b5fa3683 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/ClientRoutingPolicy.kt @@ -0,0 +1,29 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.elasticloadbalancingv2 + +public enum class ClientRoutingPolicy( + private val cdkObject: software.amazon.awscdk.services.elasticloadbalancingv2.ClientRoutingPolicy, +) { + AVAILABILITY_ZONE_AFFINITY(software.amazon.awscdk.services.elasticloadbalancingv2.ClientRoutingPolicy.AVAILABILITY_ZONE_AFFINITY), + PARTIAL_AVAILABILITY_ZONE_AFFINITY(software.amazon.awscdk.services.elasticloadbalancingv2.ClientRoutingPolicy.PARTIAL_AVAILABILITY_ZONE_AFFINITY), + ANY_AVAILABILITY_ZONE(software.amazon.awscdk.services.elasticloadbalancingv2.ClientRoutingPolicy.ANY_AVAILABILITY_ZONE), + ; + + public companion object { + internal + fun wrap(cdkObject: software.amazon.awscdk.services.elasticloadbalancingv2.ClientRoutingPolicy): + ClientRoutingPolicy = when (cdkObject) { + software.amazon.awscdk.services.elasticloadbalancingv2.ClientRoutingPolicy.AVAILABILITY_ZONE_AFFINITY -> + ClientRoutingPolicy.AVAILABILITY_ZONE_AFFINITY + software.amazon.awscdk.services.elasticloadbalancingv2.ClientRoutingPolicy.PARTIAL_AVAILABILITY_ZONE_AFFINITY -> + ClientRoutingPolicy.PARTIAL_AVAILABILITY_ZONE_AFFINITY + software.amazon.awscdk.services.elasticloadbalancingv2.ClientRoutingPolicy.ANY_AVAILABILITY_ZONE -> + ClientRoutingPolicy.ANY_AVAILABILITY_ZONE + } + + internal fun unwrap(wrapped: ClientRoutingPolicy): + software.amazon.awscdk.services.elasticloadbalancingv2.ClientRoutingPolicy = + wrapped.cdkObject + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/IApplicationLoadBalancerMetrics.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/IApplicationLoadBalancerMetrics.kt index d128e44b73..964e874f4f 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/IApplicationLoadBalancerMetrics.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/IApplicationLoadBalancerMetrics.kt @@ -94,7 +94,7 @@ public interface IApplicationLoadBalancerMetrics { * * @param props */ - public fun consumedLcUs(): Metric + public fun consumedLCUs(): Metric /** * The number of load balancer capacity units (LCU) used by your load balancer. @@ -103,7 +103,7 @@ public interface IApplicationLoadBalancerMetrics { * * @param props */ - public fun consumedLcUs(props: MetricOptions): Metric + public fun consumedLCUs(props: MetricOptions): Metric /** * The number of load balancer capacity units (LCU) used by your load balancer. @@ -113,8 +113,8 @@ public interface IApplicationLoadBalancerMetrics { * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("18e8e39bc441acca7c83d0b93ee82feb5719d75ccb2df798d695dbe35e061cf0") - public fun consumedLcUs(props: MetricOptions.Builder.() -> Unit): Metric + @JvmName("0a8818b706c379823814d623a4c84e8808252fc6cfff988c82b9c21805c7cc02") + public fun consumedLCUs(props: MetricOptions.Builder.() -> Unit): Metric /** * Return the given named metric for this Application Load Balancer. @@ -755,7 +755,7 @@ public interface IApplicationLoadBalancerMetrics { * * @param props */ - public fun targetTlsNegotiationErrorCount(): Metric + public fun targetTLSNegotiationErrorCount(): Metric /** * The number of TLS connections initiated by the load balancer that did not establish a session @@ -767,7 +767,7 @@ public interface IApplicationLoadBalancerMetrics { * * @param props */ - public fun targetTlsNegotiationErrorCount(props: MetricOptions): Metric + public fun targetTLSNegotiationErrorCount(props: MetricOptions): Metric /** * The number of TLS connections initiated by the load balancer that did not establish a session @@ -780,8 +780,8 @@ public interface IApplicationLoadBalancerMetrics { * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("6bff36edbbe3c8f26db05b3096329ed86c89c5421a92a5ecf6d869f655103f54") - public fun targetTlsNegotiationErrorCount(props: MetricOptions.Builder.() -> Unit): Metric + @JvmName("680e36d5f42c32084e2104a1182ce24b50a180324bfe0c58c1bcd6523da0a161") + public fun targetTLSNegotiationErrorCount(props: MetricOptions.Builder.() -> Unit): Metric private class Wrapper( cdkObject: software.amazon.awscdk.services.elasticloadbalancingv2.IApplicationLoadBalancerMetrics, @@ -872,7 +872,7 @@ public interface IApplicationLoadBalancerMetrics { * * @param props */ - override fun consumedLcUs(): Metric = unwrap(this).consumedLCUs().let(Metric::wrap) + override fun consumedLCUs(): Metric = unwrap(this).consumedLCUs().let(Metric::wrap) /** * The number of load balancer capacity units (LCU) used by your load balancer. @@ -881,7 +881,7 @@ public interface IApplicationLoadBalancerMetrics { * * @param props */ - override fun consumedLcUs(props: MetricOptions): Metric = + override fun consumedLCUs(props: MetricOptions): Metric = unwrap(this).consumedLCUs(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -892,9 +892,9 @@ public interface IApplicationLoadBalancerMetrics { * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("18e8e39bc441acca7c83d0b93ee82feb5719d75ccb2df798d695dbe35e061cf0") - override fun consumedLcUs(props: MetricOptions.Builder.() -> Unit): Metric = - consumedLcUs(MetricOptions(props)) + @JvmName("0a8818b706c379823814d623a4c84e8808252fc6cfff988c82b9c21805c7cc02") + override fun consumedLCUs(props: MetricOptions.Builder.() -> Unit): Metric = + consumedLCUs(MetricOptions(props)) /** * Return the given named metric for this Application Load Balancer. @@ -1585,7 +1585,7 @@ public interface IApplicationLoadBalancerMetrics { * * @param props */ - override fun targetTlsNegotiationErrorCount(): Metric = + override fun targetTLSNegotiationErrorCount(): Metric = unwrap(this).targetTLSNegotiationErrorCount().let(Metric::wrap) /** @@ -1598,7 +1598,7 @@ public interface IApplicationLoadBalancerMetrics { * * @param props */ - override fun targetTlsNegotiationErrorCount(props: MetricOptions): Metric = + override fun targetTLSNegotiationErrorCount(props: MetricOptions): Metric = unwrap(this).targetTLSNegotiationErrorCount(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -1612,9 +1612,9 @@ public interface IApplicationLoadBalancerMetrics { * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("6bff36edbbe3c8f26db05b3096329ed86c89c5421a92a5ecf6d869f655103f54") - override fun targetTlsNegotiationErrorCount(props: MetricOptions.Builder.() -> Unit): Metric = - targetTlsNegotiationErrorCount(MetricOptions(props)) + @JvmName("680e36d5f42c32084e2104a1182ce24b50a180324bfe0c58c1bcd6523da0a161") + override fun targetTLSNegotiationErrorCount(props: MetricOptions.Builder.() -> Unit): Metric = + targetTLSNegotiationErrorCount(MetricOptions(props)) } public companion object { diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/IApplicationTargetGroupMetrics.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/IApplicationTargetGroupMetrics.kt index 94b6799fc1..6b2b14358d 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/IApplicationTargetGroupMetrics.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/IApplicationTargetGroupMetrics.kt @@ -292,7 +292,7 @@ public interface IApplicationTargetGroupMetrics { * * @param props */ - public fun targetTlsNegotiationErrorCount(): Metric + public fun targetTLSNegotiationErrorCount(): Metric /** * The number of TLS connections initiated by the load balancer that did not establish a session @@ -304,7 +304,7 @@ public interface IApplicationTargetGroupMetrics { * * @param props */ - public fun targetTlsNegotiationErrorCount(props: MetricOptions): Metric + public fun targetTLSNegotiationErrorCount(props: MetricOptions): Metric /** * The number of TLS connections initiated by the load balancer that did not establish a session @@ -317,8 +317,8 @@ public interface IApplicationTargetGroupMetrics { * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("6bff36edbbe3c8f26db05b3096329ed86c89c5421a92a5ecf6d869f655103f54") - public fun targetTlsNegotiationErrorCount(props: MetricOptions.Builder.() -> Unit): Metric + @JvmName("680e36d5f42c32084e2104a1182ce24b50a180324bfe0c58c1bcd6523da0a161") + public fun targetTLSNegotiationErrorCount(props: MetricOptions.Builder.() -> Unit): Metric /** * The number of unhealthy hosts in the target group. @@ -651,7 +651,7 @@ public interface IApplicationTargetGroupMetrics { * * @param props */ - override fun targetTlsNegotiationErrorCount(): Metric = + override fun targetTLSNegotiationErrorCount(): Metric = unwrap(this).targetTLSNegotiationErrorCount().let(Metric::wrap) /** @@ -664,7 +664,7 @@ public interface IApplicationTargetGroupMetrics { * * @param props */ - override fun targetTlsNegotiationErrorCount(props: MetricOptions): Metric = + override fun targetTLSNegotiationErrorCount(props: MetricOptions): Metric = unwrap(this).targetTLSNegotiationErrorCount(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -678,9 +678,9 @@ public interface IApplicationTargetGroupMetrics { * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("6bff36edbbe3c8f26db05b3096329ed86c89c5421a92a5ecf6d869f655103f54") - override fun targetTlsNegotiationErrorCount(props: MetricOptions.Builder.() -> Unit): Metric = - targetTlsNegotiationErrorCount(MetricOptions(props)) + @JvmName("680e36d5f42c32084e2104a1182ce24b50a180324bfe0c58c1bcd6523da0a161") + override fun targetTLSNegotiationErrorCount(props: MetricOptions.Builder.() -> Unit): Metric = + targetTLSNegotiationErrorCount(MetricOptions(props)) /** * The number of unhealthy hosts in the target group. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/INetworkLoadBalancer.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/INetworkLoadBalancer.kt index a556f030bb..bfc40d95b6 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/INetworkLoadBalancer.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/INetworkLoadBalancer.kt @@ -43,6 +43,15 @@ public interface INetworkLoadBalancer : ILoadBalancerV2, IVpcEndpointServiceLoad public fun addListener(id: String, props: BaseNetworkListenerProps.Builder.() -> Unit): NetworkListener + /** + * Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load + * Balancer through AWS PrivateLink. + * + * Default: on + */ + public fun enforceSecurityGroupInboundRulesOnPrivateLinkTraffic(): String? = + unwrap(this).getEnforceSecurityGroupInboundRulesOnPrivateLinkTraffic() + /** * The type of IP addresses to use. * @@ -114,6 +123,15 @@ public interface INetworkLoadBalancer : ILoadBalancerV2, IVpcEndpointServiceLoad */ override fun connections(): Connections = unwrap(this).getConnections().let(Connections::wrap) + /** + * Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load + * Balancer through AWS PrivateLink. + * + * Default: on + */ + override fun enforceSecurityGroupInboundRulesOnPrivateLinkTraffic(): String? = + unwrap(this).getEnforceSecurityGroupInboundRulesOnPrivateLinkTraffic() + /** * The environment this resource belongs to. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/INetworkLoadBalancerMetrics.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/INetworkLoadBalancerMetrics.kt index a928fa1808..d0e543362d 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/INetworkLoadBalancerMetrics.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/INetworkLoadBalancerMetrics.kt @@ -62,7 +62,7 @@ public interface INetworkLoadBalancerMetrics { * * @param props */ - public fun consumedLcUs(): Metric + public fun consumedLCUs(): Metric /** * The number of load balancer capacity units (LCU) used by your load balancer. @@ -71,7 +71,7 @@ public interface INetworkLoadBalancerMetrics { * * @param props */ - public fun consumedLcUs(props: MetricOptions): Metric + public fun consumedLCUs(props: MetricOptions): Metric /** * The number of load balancer capacity units (LCU) used by your load balancer. @@ -81,8 +81,8 @@ public interface INetworkLoadBalancerMetrics { * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("18e8e39bc441acca7c83d0b93ee82feb5719d75ccb2df798d695dbe35e061cf0") - public fun consumedLcUs(props: MetricOptions.Builder.() -> Unit): Metric + @JvmName("0a8818b706c379823814d623a4c84e8808252fc6cfff988c82b9c21805c7cc02") + public fun consumedLCUs(props: MetricOptions.Builder.() -> Unit): Metric /** * Return the given named metric for this Network Load Balancer. @@ -329,7 +329,7 @@ public interface INetworkLoadBalancerMetrics { * * @param props */ - override fun consumedLcUs(): Metric = unwrap(this).consumedLCUs().let(Metric::wrap) + override fun consumedLCUs(): Metric = unwrap(this).consumedLCUs().let(Metric::wrap) /** * The number of load balancer capacity units (LCU) used by your load balancer. @@ -338,7 +338,7 @@ public interface INetworkLoadBalancerMetrics { * * @param props */ - override fun consumedLcUs(props: MetricOptions): Metric = + override fun consumedLCUs(props: MetricOptions): Metric = unwrap(this).consumedLCUs(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -349,9 +349,9 @@ public interface INetworkLoadBalancerMetrics { * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("18e8e39bc441acca7c83d0b93ee82feb5719d75ccb2df798d695dbe35e061cf0") - override fun consumedLcUs(props: MetricOptions.Builder.() -> Unit): Metric = - consumedLcUs(MetricOptions(props)) + @JvmName("0a8818b706c379823814d623a4c84e8808252fc6cfff988c82b9c21805c7cc02") + override fun consumedLCUs(props: MetricOptions.Builder.() -> Unit): Metric = + consumedLCUs(MetricOptions(props)) /** * Return the given named metric for this Network Load Balancer. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/NetworkLoadBalancer.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/NetworkLoadBalancer.kt index 5843920550..a07ebf1647 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/NetworkLoadBalancer.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/NetworkLoadBalancer.kt @@ -24,21 +24,16 @@ import software.constructs.Construct as SoftwareConstructsConstruct * Example: * * ``` - * import io.cloudshiftdev.awscdk.services.elasticloadbalancingv2.*; + * import io.cloudshiftdev.awscdk.aws_apigatewayv2_integrations.HttpNlbIntegration; * Vpc vpc = new Vpc(this, "VPC"); - * NetworkLoadBalancer nlb = NetworkLoadBalancer.Builder.create(this, "NLB") - * .vpc(vpc) - * .build(); - * VpcLink link = VpcLink.Builder.create(this, "link") - * .targets(List.of(nlb)) - * .build(); - * Integration integration = Integration.Builder.create() - * .type(IntegrationType.HTTP_PROXY) - * .integrationHttpMethod("ANY") - * .options(IntegrationOptions.builder() - * .connectionType(ConnectionType.VPC_LINK) - * .vpcLink(link) - * .build()) + * NetworkLoadBalancer lb = NetworkLoadBalancer.Builder.create(this, "lb").vpc(vpc).build(); + * NetworkListener listener = lb.addListener("listener", + * BaseNetworkListenerProps.builder().port(80).build()); + * listener.addTargets("target", AddNetworkTargetsProps.builder() + * .port(80) + * .build()); + * HttpApi httpEndpoint = HttpApi.Builder.create(this, "HttpProxyPrivateApi") + * .defaultIntegration(new HttpNlbIntegration("DefaultIntegration", listener)) * .build(); * ``` */ @@ -99,6 +94,13 @@ public open class NetworkLoadBalancer( public override fun connections(): Connections = unwrap(this).getConnections().let(Connections::wrap) + /** + * Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load + * Balancer through AWS PrivateLink. + */ + public override fun enforceSecurityGroupInboundRulesOnPrivateLinkTraffic(): String? = + unwrap(this).getEnforceSecurityGroupInboundRulesOnPrivateLinkTraffic() + /** * The type of IP addresses to use. */ @@ -205,7 +207,7 @@ public open class NetworkLoadBalancer( * @param props */ @Deprecated(message = "deprecated in CDK") - public open fun metricConsumedLcUs(): Metric = unwrap(this).metricConsumedLCUs().let(Metric::wrap) + public open fun metricConsumedLCUs(): Metric = unwrap(this).metricConsumedLCUs().let(Metric::wrap) /** * (deprecated) The number of load balancer capacity units (LCU) used by your load balancer. @@ -216,7 +218,7 @@ public open class NetworkLoadBalancer( * @param props */ @Deprecated(message = "deprecated in CDK") - public open fun metricConsumedLcUs(props: MetricOptions): Metric = + public open fun metricConsumedLCUs(props: MetricOptions): Metric = unwrap(this).metricConsumedLCUs(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -229,9 +231,9 @@ public open class NetworkLoadBalancer( */ @Deprecated(message = "deprecated in CDK") @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("0ad78129a917eee56b57e367cb552e5520e44cc8850a30b6843c7637bddf5442") - public open fun metricConsumedLcUs(props: MetricOptions.Builder.() -> Unit): Metric = - metricConsumedLcUs(MetricOptions(props)) + @JvmName("e3e6de8e93f42ba897d92007009735fcc06aede8f8d1f7a9b5b0846ad0b5c213") + public open fun metricConsumedLCUs(props: MetricOptions.Builder.() -> Unit): Metric = + metricConsumedLCUs(MetricOptions(props)) /** * (deprecated) The total number of new TCP flows (or connections) established from clients to @@ -463,11 +465,24 @@ public open class NetworkLoadBalancer( */ @CdkDslMarker public interface Builder { + /** + * The AZ affinity routing policy. + * + * Default: - AZ affinity is disabled. + * + * [Documentation](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) + * @param clientRoutingPolicy The AZ affinity routing policy. + */ + public fun clientRoutingPolicy(clientRoutingPolicy: ClientRoutingPolicy) + /** * Indicates whether cross-zone load balancing is enabled. * - * Default: false + * Default: - false for Network Load Balancers and true for Application Load Balancers. + * This can not be `false` for Application Load Balancers. * + * [Documentation]( - + * https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-loadbalancerattribute.html) * @param crossZoneEnabled Indicates whether cross-zone load balancing is enabled. */ public fun crossZoneEnabled(crossZoneEnabled: Boolean) @@ -481,6 +496,29 @@ public open class NetworkLoadBalancer( */ public fun deletionProtection(deletionProtection: Boolean) + /** + * Indicates whether the load balancer blocks traffic through the Internet Gateway (IGW). + * + * Default: - false for internet-facing load balancers and true for internal load balancers + * + * @param denyAllIgwTraffic Indicates whether the load balancer blocks traffic through the + * Internet Gateway (IGW). + */ + public fun denyAllIgwTraffic(denyAllIgwTraffic: Boolean) + + /** + * Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load + * Balancer through AWS PrivateLink. + * + * Default: true + * + * @param enforceSecurityGroupInboundRulesOnPrivateLinkTraffic Indicates whether to evaluate + * inbound security group rules for traffic sent to a Network Load Balancer through AWS + * PrivateLink. + */ + public + fun enforceSecurityGroupInboundRulesOnPrivateLinkTraffic(enforceSecurityGroupInboundRulesOnPrivateLinkTraffic: Boolean) + /** * Whether the load balancer has an internet-routable address. * @@ -566,11 +604,26 @@ public open class NetworkLoadBalancer( software.amazon.awscdk.services.elasticloadbalancingv2.NetworkLoadBalancer.Builder.create(scope, id) + /** + * The AZ affinity routing policy. + * + * Default: - AZ affinity is disabled. + * + * [Documentation](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) + * @param clientRoutingPolicy The AZ affinity routing policy. + */ + override fun clientRoutingPolicy(clientRoutingPolicy: ClientRoutingPolicy) { + cdkBuilder.clientRoutingPolicy(clientRoutingPolicy.let(ClientRoutingPolicy::unwrap)) + } + /** * Indicates whether cross-zone load balancing is enabled. * - * Default: false + * Default: - false for Network Load Balancers and true for Application Load Balancers. + * This can not be `false` for Application Load Balancers. * + * [Documentation]( - + * https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-loadbalancerattribute.html) * @param crossZoneEnabled Indicates whether cross-zone load balancing is enabled. */ override fun crossZoneEnabled(crossZoneEnabled: Boolean) { @@ -588,6 +641,33 @@ public open class NetworkLoadBalancer( cdkBuilder.deletionProtection(deletionProtection) } + /** + * Indicates whether the load balancer blocks traffic through the Internet Gateway (IGW). + * + * Default: - false for internet-facing load balancers and true for internal load balancers + * + * @param denyAllIgwTraffic Indicates whether the load balancer blocks traffic through the + * Internet Gateway (IGW). + */ + override fun denyAllIgwTraffic(denyAllIgwTraffic: Boolean) { + cdkBuilder.denyAllIgwTraffic(denyAllIgwTraffic) + } + + /** + * Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load + * Balancer through AWS PrivateLink. + * + * Default: true + * + * @param enforceSecurityGroupInboundRulesOnPrivateLinkTraffic Indicates whether to evaluate + * inbound security group rules for traffic sent to a Network Load Balancer through AWS + * PrivateLink. + */ + override + fun enforceSecurityGroupInboundRulesOnPrivateLinkTraffic(enforceSecurityGroupInboundRulesOnPrivateLinkTraffic: Boolean) { + cdkBuilder.enforceSecurityGroupInboundRulesOnPrivateLinkTraffic(enforceSecurityGroupInboundRulesOnPrivateLinkTraffic) + } + /** * Whether the load balancer has an internet-routable address. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/NetworkLoadBalancerProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/NetworkLoadBalancerProps.kt index 850f601bd4..6e5521946e 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/NetworkLoadBalancerProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/NetworkLoadBalancerProps.kt @@ -20,31 +20,38 @@ import kotlin.jvm.JvmName * Example: * * ``` - * import io.cloudshiftdev.awscdk.services.elasticloadbalancingv2.*; + * import io.cloudshiftdev.awscdk.aws_apigatewayv2_integrations.HttpNlbIntegration; * Vpc vpc = new Vpc(this, "VPC"); - * NetworkLoadBalancer nlb = NetworkLoadBalancer.Builder.create(this, "NLB") - * .vpc(vpc) - * .build(); - * VpcLink link = VpcLink.Builder.create(this, "link") - * .targets(List.of(nlb)) - * .build(); - * Integration integration = Integration.Builder.create() - * .type(IntegrationType.HTTP_PROXY) - * .integrationHttpMethod("ANY") - * .options(IntegrationOptions.builder() - * .connectionType(ConnectionType.VPC_LINK) - * .vpcLink(link) - * .build()) + * NetworkLoadBalancer lb = NetworkLoadBalancer.Builder.create(this, "lb").vpc(vpc).build(); + * NetworkListener listener = lb.addListener("listener", + * BaseNetworkListenerProps.builder().port(80).build()); + * listener.addTargets("target", AddNetworkTargetsProps.builder() + * .port(80) + * .build()); + * HttpApi httpEndpoint = HttpApi.Builder.create(this, "HttpProxyPrivateApi") + * .defaultIntegration(new HttpNlbIntegration("DefaultIntegration", listener)) * .build(); * ``` */ public interface NetworkLoadBalancerProps : BaseLoadBalancerProps { /** - * Indicates whether cross-zone load balancing is enabled. + * The AZ affinity routing policy. + * + * Default: - AZ affinity is disabled. * - * Default: false + * [Documentation](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) */ - public fun crossZoneEnabled(): Boolean? = unwrap(this).getCrossZoneEnabled() + public fun clientRoutingPolicy(): ClientRoutingPolicy? = + unwrap(this).getClientRoutingPolicy()?.let(ClientRoutingPolicy::wrap) + + /** + * Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load + * Balancer through AWS PrivateLink. + * + * Default: true + */ + public fun enforceSecurityGroupInboundRulesOnPrivateLinkTraffic(): Boolean? = + unwrap(this).getEnforceSecurityGroupInboundRulesOnPrivateLinkTraffic() /** * The type of IP addresses to use. @@ -70,6 +77,11 @@ public interface NetworkLoadBalancerProps : BaseLoadBalancerProps { */ @CdkDslMarker public interface Builder { + /** + * @param clientRoutingPolicy The AZ affinity routing policy. + */ + public fun clientRoutingPolicy(clientRoutingPolicy: ClientRoutingPolicy) + /** * @param crossZoneEnabled Indicates whether cross-zone load balancing is enabled. */ @@ -80,6 +92,20 @@ public interface NetworkLoadBalancerProps : BaseLoadBalancerProps { */ public fun deletionProtection(deletionProtection: Boolean) + /** + * @param denyAllIgwTraffic Indicates whether the load balancer blocks traffic through the + * Internet Gateway (IGW). + */ + public fun denyAllIgwTraffic(denyAllIgwTraffic: Boolean) + + /** + * @param enforceSecurityGroupInboundRulesOnPrivateLinkTraffic Indicates whether to evaluate + * inbound security group rules for traffic sent to a Network Load Balancer through AWS + * PrivateLink. + */ + public + fun enforceSecurityGroupInboundRulesOnPrivateLinkTraffic(enforceSecurityGroupInboundRulesOnPrivateLinkTraffic: Boolean) + /** * @param internetFacing Whether the load balancer has an internet-routable address. */ @@ -130,6 +156,13 @@ public interface NetworkLoadBalancerProps : BaseLoadBalancerProps { software.amazon.awscdk.services.elasticloadbalancingv2.NetworkLoadBalancerProps.Builder = software.amazon.awscdk.services.elasticloadbalancingv2.NetworkLoadBalancerProps.builder() + /** + * @param clientRoutingPolicy The AZ affinity routing policy. + */ + override fun clientRoutingPolicy(clientRoutingPolicy: ClientRoutingPolicy) { + cdkBuilder.clientRoutingPolicy(clientRoutingPolicy.let(ClientRoutingPolicy::unwrap)) + } + /** * @param crossZoneEnabled Indicates whether cross-zone load balancing is enabled. */ @@ -144,6 +177,24 @@ public interface NetworkLoadBalancerProps : BaseLoadBalancerProps { cdkBuilder.deletionProtection(deletionProtection) } + /** + * @param denyAllIgwTraffic Indicates whether the load balancer blocks traffic through the + * Internet Gateway (IGW). + */ + override fun denyAllIgwTraffic(denyAllIgwTraffic: Boolean) { + cdkBuilder.denyAllIgwTraffic(denyAllIgwTraffic) + } + + /** + * @param enforceSecurityGroupInboundRulesOnPrivateLinkTraffic Indicates whether to evaluate + * inbound security group rules for traffic sent to a Network Load Balancer through AWS + * PrivateLink. + */ + override + fun enforceSecurityGroupInboundRulesOnPrivateLinkTraffic(enforceSecurityGroupInboundRulesOnPrivateLinkTraffic: Boolean) { + cdkBuilder.enforceSecurityGroupInboundRulesOnPrivateLinkTraffic(enforceSecurityGroupInboundRulesOnPrivateLinkTraffic) + } + /** * @param internetFacing Whether the load balancer has an internet-routable address. */ @@ -210,10 +261,24 @@ public interface NetworkLoadBalancerProps : BaseLoadBalancerProps { private class Wrapper( cdkObject: software.amazon.awscdk.services.elasticloadbalancingv2.NetworkLoadBalancerProps, ) : CdkObject(cdkObject), NetworkLoadBalancerProps { + /** + * The AZ affinity routing policy. + * + * Default: - AZ affinity is disabled. + * + * [Documentation](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) + */ + override fun clientRoutingPolicy(): ClientRoutingPolicy? = + unwrap(this).getClientRoutingPolicy()?.let(ClientRoutingPolicy::wrap) + /** * Indicates whether cross-zone load balancing is enabled. * - * Default: false + * Default: - false for Network Load Balancers and true for Application Load Balancers. + * This can not be `false` for Application Load Balancers. + * + * [Documentation]( - + * https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-loadbalancerattribute.html) */ override fun crossZoneEnabled(): Boolean? = unwrap(this).getCrossZoneEnabled() @@ -224,6 +289,22 @@ public interface NetworkLoadBalancerProps : BaseLoadBalancerProps { */ override fun deletionProtection(): Boolean? = unwrap(this).getDeletionProtection() + /** + * Indicates whether the load balancer blocks traffic through the Internet Gateway (IGW). + * + * Default: - false for internet-facing load balancers and true for internal load balancers + */ + override fun denyAllIgwTraffic(): Boolean? = unwrap(this).getDenyAllIgwTraffic() + + /** + * Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load + * Balancer through AWS PrivateLink. + * + * Default: true + */ + override fun enforceSecurityGroupInboundRulesOnPrivateLinkTraffic(): Boolean? = + unwrap(this).getEnforceSecurityGroupInboundRulesOnPrivateLinkTraffic() + /** * Whether the load balancer has an internet-routable address. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/XffHeaderProcessingMode.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/XffHeaderProcessingMode.kt new file mode 100644 index 0000000000..7ac5ec726f --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticloadbalancingv2/XffHeaderProcessingMode.kt @@ -0,0 +1,30 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.elasticloadbalancingv2 + +public enum class XffHeaderProcessingMode( + private val cdkObject: + software.amazon.awscdk.services.elasticloadbalancingv2.XffHeaderProcessingMode, +) { + APPEND(software.amazon.awscdk.services.elasticloadbalancingv2.XffHeaderProcessingMode.APPEND), + PRESERVE(software.amazon.awscdk.services.elasticloadbalancingv2.XffHeaderProcessingMode.PRESERVE), + REMOVE(software.amazon.awscdk.services.elasticloadbalancingv2.XffHeaderProcessingMode.REMOVE), + ; + + public companion object { + internal + fun wrap(cdkObject: software.amazon.awscdk.services.elasticloadbalancingv2.XffHeaderProcessingMode): + XffHeaderProcessingMode = when (cdkObject) { + software.amazon.awscdk.services.elasticloadbalancingv2.XffHeaderProcessingMode.APPEND -> + XffHeaderProcessingMode.APPEND + software.amazon.awscdk.services.elasticloadbalancingv2.XffHeaderProcessingMode.PRESERVE -> + XffHeaderProcessingMode.PRESERVE + software.amazon.awscdk.services.elasticloadbalancingv2.XffHeaderProcessingMode.REMOVE -> + XffHeaderProcessingMode.REMOVE + } + + internal fun unwrap(wrapped: XffHeaderProcessingMode): + software.amazon.awscdk.services.elasticloadbalancingv2.XffHeaderProcessingMode = + wrapped.cdkObject + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticsearch/Domain.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticsearch/Domain.kt index 84b3f13e01..f87ed173c2 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticsearch/Domain.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticsearch/Domain.kt @@ -339,6 +339,44 @@ public open class Domain( public override fun metricAutomatedSnapshotFailure(props: MetricOptions.Builder.() -> Unit): Metric = metricAutomatedSnapshotFailure(MetricOptions(props)) + /** + * (deprecated) Metric for CPU utilization. + * + * Default: maximum over 5 minutes + * + * @deprecated use opensearchservice module instead + * @param props + */ + @Deprecated(message = "deprecated in CDK") + public override fun metricCPUUtilization(): Metric = + unwrap(this).metricCPUUtilization().let(Metric::wrap) + + /** + * (deprecated) Metric for CPU utilization. + * + * Default: maximum over 5 minutes + * + * @deprecated use opensearchservice module instead + * @param props + */ + @Deprecated(message = "deprecated in CDK") + public override fun metricCPUUtilization(props: MetricOptions): Metric = + unwrap(this).metricCPUUtilization(props.let(MetricOptions::unwrap)).let(Metric::wrap) + + /** + * (deprecated) Metric for CPU utilization. + * + * Default: maximum over 5 minutes + * + * @deprecated use opensearchservice module instead + * @param props + */ + @Deprecated(message = "deprecated in CDK") + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("66a273587ca08857c76d1952aa0bb360d86bfe06cc24788a922415fa0fa097ef") + public override fun metricCPUUtilization(props: MetricOptions.Builder.() -> Unit): Metric = + metricCPUUtilization(MetricOptions(props)) + /** * (deprecated) Metric for the cluster blocking index writes. * @@ -453,44 +491,6 @@ public open class Domain( public override fun metricClusterStatusYellow(props: MetricOptions.Builder.() -> Unit): Metric = metricClusterStatusYellow(MetricOptions(props)) - /** - * (deprecated) Metric for CPU utilization. - * - * Default: maximum over 5 minutes - * - * @deprecated use opensearchservice module instead - * @param props - */ - @Deprecated(message = "deprecated in CDK") - public override fun metricCpuUtilization(): Metric = - unwrap(this).metricCPUUtilization().let(Metric::wrap) - - /** - * (deprecated) Metric for CPU utilization. - * - * Default: maximum over 5 minutes - * - * @deprecated use opensearchservice module instead - * @param props - */ - @Deprecated(message = "deprecated in CDK") - public override fun metricCpuUtilization(props: MetricOptions): Metric = - unwrap(this).metricCPUUtilization(props.let(MetricOptions::unwrap)).let(Metric::wrap) - - /** - * (deprecated) Metric for CPU utilization. - * - * Default: maximum over 5 minutes - * - * @deprecated use opensearchservice module instead - * @param props - */ - @Deprecated(message = "deprecated in CDK") - @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("06a38048efcdd43000e7f66d74001004b818625d95136f460bf350a2397a31d0") - public override fun metricCpuUtilization(props: MetricOptions.Builder.() -> Unit): Metric = - metricCpuUtilization(MetricOptions(props)) - /** * (deprecated) Metric for the storage space of nodes in the cluster. * @@ -576,7 +576,7 @@ public open class Domain( * @param props */ @Deprecated(message = "deprecated in CDK") - public override fun metricJvmMemoryPressure(): Metric = + public override fun metricJVMMemoryPressure(): Metric = unwrap(this).metricJVMMemoryPressure().let(Metric::wrap) /** @@ -588,7 +588,7 @@ public open class Domain( * @param props */ @Deprecated(message = "deprecated in CDK") - public override fun metricJvmMemoryPressure(props: MetricOptions): Metric = + public override fun metricJVMMemoryPressure(props: MetricOptions): Metric = unwrap(this).metricJVMMemoryPressure(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -601,9 +601,9 @@ public open class Domain( */ @Deprecated(message = "deprecated in CDK") @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("283ffec8edbd9b28227078700405c8b7b7fe0f6bf433f6323ba9205b4c8a528f") - public override fun metricJvmMemoryPressure(props: MetricOptions.Builder.() -> Unit): Metric = - metricJvmMemoryPressure(MetricOptions(props)) + @JvmName("bbc5860f20525c5c3cf2850d91d7efa180c7058337e1de65c8420bc7be81cc9b") + public override fun metricJVMMemoryPressure(props: MetricOptions.Builder.() -> Unit): Metric = + metricJVMMemoryPressure(MetricOptions(props)) /** * (deprecated) Metric for KMS key errors. @@ -614,7 +614,7 @@ public open class Domain( * @param props */ @Deprecated(message = "deprecated in CDK") - public override fun metricKmsKeyError(): Metric = + public override fun metricKMSKeyError(): Metric = unwrap(this).metricKMSKeyError().let(Metric::wrap) /** @@ -626,7 +626,7 @@ public open class Domain( * @param props */ @Deprecated(message = "deprecated in CDK") - public override fun metricKmsKeyError(props: MetricOptions): Metric = + public override fun metricKMSKeyError(props: MetricOptions): Metric = unwrap(this).metricKMSKeyError(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -639,9 +639,9 @@ public open class Domain( */ @Deprecated(message = "deprecated in CDK") @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("309d28dee34b268d496bc1e8ba269d5bff9ec10e9e17132d9a884e208a805741") - public override fun metricKmsKeyError(props: MetricOptions.Builder.() -> Unit): Metric = - metricKmsKeyError(MetricOptions(props)) + @JvmName("e6d547afff79fd0803e3b15eb00be8f5c5c65020938e7e8c527fefe04c3ec7de") + public override fun metricKMSKeyError(props: MetricOptions.Builder.() -> Unit): Metric = + metricKMSKeyError(MetricOptions(props)) /** * (deprecated) Metric for KMS key being inaccessible. @@ -652,7 +652,7 @@ public open class Domain( * @param props */ @Deprecated(message = "deprecated in CDK") - public override fun metricKmsKeyInaccessible(): Metric = + public override fun metricKMSKeyInaccessible(): Metric = unwrap(this).metricKMSKeyInaccessible().let(Metric::wrap) /** @@ -664,7 +664,7 @@ public open class Domain( * @param props */ @Deprecated(message = "deprecated in CDK") - public override fun metricKmsKeyInaccessible(props: MetricOptions): Metric = + public override fun metricKMSKeyInaccessible(props: MetricOptions): Metric = unwrap(this).metricKMSKeyInaccessible(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -677,9 +677,9 @@ public open class Domain( */ @Deprecated(message = "deprecated in CDK") @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("bfca9e4cdc1ad37f6d57f9fdeb4258e1c6235ab92ed8224c8ee4cda359baaad6") - public override fun metricKmsKeyInaccessible(props: MetricOptions.Builder.() -> Unit): Metric = - metricKmsKeyInaccessible(MetricOptions(props)) + @JvmName("5c4bf93f4e622d4a76178b4868be7efe604fd3d16316e4a05742bea79f81ef77") + public override fun metricKMSKeyInaccessible(props: MetricOptions.Builder.() -> Unit): Metric = + metricKMSKeyInaccessible(MetricOptions(props)) /** * (deprecated) Metric for master CPU utilization. @@ -690,7 +690,7 @@ public open class Domain( * @param props */ @Deprecated(message = "deprecated in CDK") - public override fun metricMasterCpuUtilization(): Metric = + public override fun metricMasterCPUUtilization(): Metric = unwrap(this).metricMasterCPUUtilization().let(Metric::wrap) /** @@ -702,7 +702,7 @@ public open class Domain( * @param props */ @Deprecated(message = "deprecated in CDK") - public override fun metricMasterCpuUtilization(props: MetricOptions): Metric = + public override fun metricMasterCPUUtilization(props: MetricOptions): Metric = unwrap(this).metricMasterCPUUtilization(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -715,9 +715,9 @@ public open class Domain( */ @Deprecated(message = "deprecated in CDK") @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("8a46b211229de3f431630b8ea4f99843647a1cab494f599c79138732a397c709") - public override fun metricMasterCpuUtilization(props: MetricOptions.Builder.() -> Unit): Metric = - metricMasterCpuUtilization(MetricOptions(props)) + @JvmName("9bfbec0deb2fa2aad0f19ca7ed1e5d7e6bd722bd278b8f9e86e0086d51527219") + public override fun metricMasterCPUUtilization(props: MetricOptions.Builder.() -> Unit): Metric = + metricMasterCPUUtilization(MetricOptions(props)) /** * (deprecated) Metric for master JVM memory pressure. @@ -728,7 +728,7 @@ public open class Domain( * @param props */ @Deprecated(message = "deprecated in CDK") - public override fun metricMasterJvmMemoryPressure(): Metric = + public override fun metricMasterJVMMemoryPressure(): Metric = unwrap(this).metricMasterJVMMemoryPressure().let(Metric::wrap) /** @@ -740,7 +740,7 @@ public open class Domain( * @param props */ @Deprecated(message = "deprecated in CDK") - public override fun metricMasterJvmMemoryPressure(props: MetricOptions): Metric = + public override fun metricMasterJVMMemoryPressure(props: MetricOptions): Metric = unwrap(this).metricMasterJVMMemoryPressure(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -753,9 +753,9 @@ public open class Domain( */ @Deprecated(message = "deprecated in CDK") @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("fbcf8e4882306bcb2bed673a80ed7a54a16cc27adfc1a7fe173fbb566b335350") - public override fun metricMasterJvmMemoryPressure(props: MetricOptions.Builder.() -> Unit): Metric - = metricMasterJvmMemoryPressure(MetricOptions(props)) + @JvmName("8abbe6fe8c9df31c7c02cf8f2ff374dd99996363ad1f3de815273cee61f4b816") + public override fun metricMasterJVMMemoryPressure(props: MetricOptions.Builder.() -> Unit): Metric + = metricMasterJVMMemoryPressure(MetricOptions(props)) /** * (deprecated) Metric for the number of nodes. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticsearch/IDomain.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticsearch/IDomain.kt index fb4f83c41c..67dbb6a56c 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticsearch/IDomain.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/elasticsearch/IDomain.kt @@ -213,77 +213,77 @@ public interface IDomain : IResource { public fun metricAutomatedSnapshotFailure(props: MetricOptions.Builder.() -> Unit): Metric /** - * (deprecated) Metric for the cluster blocking index writes. + * (deprecated) Metric for CPU utilization. * - * Default: maximum over 1 minute + * Default: maximum over 5 minutes * * @deprecated use opensearchservice module instead * @param props */ @Deprecated(message = "deprecated in CDK") - public fun metricClusterIndexWritesBlocked(): Metric + public fun metricCPUUtilization(): Metric /** - * (deprecated) Metric for the cluster blocking index writes. + * (deprecated) Metric for CPU utilization. * - * Default: maximum over 1 minute + * Default: maximum over 5 minutes * * @deprecated use opensearchservice module instead * @param props */ @Deprecated(message = "deprecated in CDK") - public fun metricClusterIndexWritesBlocked(props: MetricOptions): Metric + public fun metricCPUUtilization(props: MetricOptions): Metric /** - * (deprecated) Metric for the cluster blocking index writes. + * (deprecated) Metric for CPU utilization. * - * Default: maximum over 1 minute + * Default: maximum over 5 minutes * * @deprecated use opensearchservice module instead * @param props */ @Deprecated(message = "deprecated in CDK") @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("016b489514978517ae80814c783dc254d3f821a64ba427a0725fa9ed3e854018") - public fun metricClusterIndexWritesBlocked(props: MetricOptions.Builder.() -> Unit): Metric + @JvmName("66a273587ca08857c76d1952aa0bb360d86bfe06cc24788a922415fa0fa097ef") + public fun metricCPUUtilization(props: MetricOptions.Builder.() -> Unit): Metric /** - * (deprecated) Metric for the time the cluster status is red. + * (deprecated) Metric for the cluster blocking index writes. * - * Default: maximum over 5 minutes + * Default: maximum over 1 minute * * @deprecated use opensearchservice module instead * @param props */ @Deprecated(message = "deprecated in CDK") - public fun metricClusterStatusRed(): Metric + public fun metricClusterIndexWritesBlocked(): Metric /** - * (deprecated) Metric for the time the cluster status is red. + * (deprecated) Metric for the cluster blocking index writes. * - * Default: maximum over 5 minutes + * Default: maximum over 1 minute * * @deprecated use opensearchservice module instead * @param props */ @Deprecated(message = "deprecated in CDK") - public fun metricClusterStatusRed(props: MetricOptions): Metric + public fun metricClusterIndexWritesBlocked(props: MetricOptions): Metric /** - * (deprecated) Metric for the time the cluster status is red. + * (deprecated) Metric for the cluster blocking index writes. * - * Default: maximum over 5 minutes + * Default: maximum over 1 minute * * @deprecated use opensearchservice module instead * @param props */ @Deprecated(message = "deprecated in CDK") @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("5e0926b5a2e18fffe32b1ec2076e81bbcc7d98107a425301c58fbc9d2905a860") - public fun metricClusterStatusRed(props: MetricOptions.Builder.() -> Unit): Metric + @JvmName("016b489514978517ae80814c783dc254d3f821a64ba427a0725fa9ed3e854018") + public fun metricClusterIndexWritesBlocked(props: MetricOptions.Builder.() -> Unit): Metric /** - * (deprecated) Metric for the time the cluster status is yellow. + * (deprecated) Metric for the time the cluster status is red. * * Default: maximum over 5 minutes * @@ -291,10 +291,10 @@ public interface IDomain : IResource { * @param props */ @Deprecated(message = "deprecated in CDK") - public fun metricClusterStatusYellow(): Metric + public fun metricClusterStatusRed(): Metric /** - * (deprecated) Metric for the time the cluster status is yellow. + * (deprecated) Metric for the time the cluster status is red. * * Default: maximum over 5 minutes * @@ -302,10 +302,10 @@ public interface IDomain : IResource { * @param props */ @Deprecated(message = "deprecated in CDK") - public fun metricClusterStatusYellow(props: MetricOptions): Metric + public fun metricClusterStatusRed(props: MetricOptions): Metric /** - * (deprecated) Metric for the time the cluster status is yellow. + * (deprecated) Metric for the time the cluster status is red. * * Default: maximum over 5 minutes * @@ -314,11 +314,11 @@ public interface IDomain : IResource { */ @Deprecated(message = "deprecated in CDK") @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("1ef39420c98f9d4cfefd45b8c2db0c21ea1a1e68a7c9b723df1412af465bda2f") - public fun metricClusterStatusYellow(props: MetricOptions.Builder.() -> Unit): Metric + @JvmName("5e0926b5a2e18fffe32b1ec2076e81bbcc7d98107a425301c58fbc9d2905a860") + public fun metricClusterStatusRed(props: MetricOptions.Builder.() -> Unit): Metric /** - * (deprecated) Metric for CPU utilization. + * (deprecated) Metric for the time the cluster status is yellow. * * Default: maximum over 5 minutes * @@ -326,10 +326,10 @@ public interface IDomain : IResource { * @param props */ @Deprecated(message = "deprecated in CDK") - public fun metricCpuUtilization(): Metric + public fun metricClusterStatusYellow(): Metric /** - * (deprecated) Metric for CPU utilization. + * (deprecated) Metric for the time the cluster status is yellow. * * Default: maximum over 5 minutes * @@ -337,10 +337,10 @@ public interface IDomain : IResource { * @param props */ @Deprecated(message = "deprecated in CDK") - public fun metricCpuUtilization(props: MetricOptions): Metric + public fun metricClusterStatusYellow(props: MetricOptions): Metric /** - * (deprecated) Metric for CPU utilization. + * (deprecated) Metric for the time the cluster status is yellow. * * Default: maximum over 5 minutes * @@ -349,8 +349,8 @@ public interface IDomain : IResource { */ @Deprecated(message = "deprecated in CDK") @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("06a38048efcdd43000e7f66d74001004b818625d95136f460bf350a2397a31d0") - public fun metricCpuUtilization(props: MetricOptions.Builder.() -> Unit): Metric + @JvmName("1ef39420c98f9d4cfefd45b8c2db0c21ea1a1e68a7c9b723df1412af465bda2f") + public fun metricClusterStatusYellow(props: MetricOptions.Builder.() -> Unit): Metric /** * (deprecated) Metric for the storage space of nodes in the cluster. @@ -431,7 +431,7 @@ public interface IDomain : IResource { * @param props */ @Deprecated(message = "deprecated in CDK") - public fun metricJvmMemoryPressure(): Metric + public fun metricJVMMemoryPressure(): Metric /** * (deprecated) Metric for JVM memory pressure. @@ -442,7 +442,7 @@ public interface IDomain : IResource { * @param props */ @Deprecated(message = "deprecated in CDK") - public fun metricJvmMemoryPressure(props: MetricOptions): Metric + public fun metricJVMMemoryPressure(props: MetricOptions): Metric /** * (deprecated) Metric for JVM memory pressure. @@ -454,8 +454,8 @@ public interface IDomain : IResource { */ @Deprecated(message = "deprecated in CDK") @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("283ffec8edbd9b28227078700405c8b7b7fe0f6bf433f6323ba9205b4c8a528f") - public fun metricJvmMemoryPressure(props: MetricOptions.Builder.() -> Unit): Metric + @JvmName("bbc5860f20525c5c3cf2850d91d7efa180c7058337e1de65c8420bc7be81cc9b") + public fun metricJVMMemoryPressure(props: MetricOptions.Builder.() -> Unit): Metric /** * (deprecated) Metric for KMS key errors. @@ -466,7 +466,7 @@ public interface IDomain : IResource { * @param props */ @Deprecated(message = "deprecated in CDK") - public fun metricKmsKeyError(): Metric + public fun metricKMSKeyError(): Metric /** * (deprecated) Metric for KMS key errors. @@ -477,7 +477,7 @@ public interface IDomain : IResource { * @param props */ @Deprecated(message = "deprecated in CDK") - public fun metricKmsKeyError(props: MetricOptions): Metric + public fun metricKMSKeyError(props: MetricOptions): Metric /** * (deprecated) Metric for KMS key errors. @@ -489,8 +489,8 @@ public interface IDomain : IResource { */ @Deprecated(message = "deprecated in CDK") @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("309d28dee34b268d496bc1e8ba269d5bff9ec10e9e17132d9a884e208a805741") - public fun metricKmsKeyError(props: MetricOptions.Builder.() -> Unit): Metric + @JvmName("e6d547afff79fd0803e3b15eb00be8f5c5c65020938e7e8c527fefe04c3ec7de") + public fun metricKMSKeyError(props: MetricOptions.Builder.() -> Unit): Metric /** * (deprecated) Metric for KMS key being inaccessible. @@ -501,7 +501,7 @@ public interface IDomain : IResource { * @param props */ @Deprecated(message = "deprecated in CDK") - public fun metricKmsKeyInaccessible(): Metric + public fun metricKMSKeyInaccessible(): Metric /** * (deprecated) Metric for KMS key being inaccessible. @@ -512,7 +512,7 @@ public interface IDomain : IResource { * @param props */ @Deprecated(message = "deprecated in CDK") - public fun metricKmsKeyInaccessible(props: MetricOptions): Metric + public fun metricKMSKeyInaccessible(props: MetricOptions): Metric /** * (deprecated) Metric for KMS key being inaccessible. @@ -524,8 +524,8 @@ public interface IDomain : IResource { */ @Deprecated(message = "deprecated in CDK") @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("bfca9e4cdc1ad37f6d57f9fdeb4258e1c6235ab92ed8224c8ee4cda359baaad6") - public fun metricKmsKeyInaccessible(props: MetricOptions.Builder.() -> Unit): Metric + @JvmName("5c4bf93f4e622d4a76178b4868be7efe604fd3d16316e4a05742bea79f81ef77") + public fun metricKMSKeyInaccessible(props: MetricOptions.Builder.() -> Unit): Metric /** * (deprecated) Metric for master CPU utilization. @@ -536,7 +536,7 @@ public interface IDomain : IResource { * @param props */ @Deprecated(message = "deprecated in CDK") - public fun metricMasterCpuUtilization(): Metric + public fun metricMasterCPUUtilization(): Metric /** * (deprecated) Metric for master CPU utilization. @@ -547,7 +547,7 @@ public interface IDomain : IResource { * @param props */ @Deprecated(message = "deprecated in CDK") - public fun metricMasterCpuUtilization(props: MetricOptions): Metric + public fun metricMasterCPUUtilization(props: MetricOptions): Metric /** * (deprecated) Metric for master CPU utilization. @@ -559,8 +559,8 @@ public interface IDomain : IResource { */ @Deprecated(message = "deprecated in CDK") @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("8a46b211229de3f431630b8ea4f99843647a1cab494f599c79138732a397c709") - public fun metricMasterCpuUtilization(props: MetricOptions.Builder.() -> Unit): Metric + @JvmName("9bfbec0deb2fa2aad0f19ca7ed1e5d7e6bd722bd278b8f9e86e0086d51527219") + public fun metricMasterCPUUtilization(props: MetricOptions.Builder.() -> Unit): Metric /** * (deprecated) Metric for master JVM memory pressure. @@ -571,7 +571,7 @@ public interface IDomain : IResource { * @param props */ @Deprecated(message = "deprecated in CDK") - public fun metricMasterJvmMemoryPressure(): Metric + public fun metricMasterJVMMemoryPressure(): Metric /** * (deprecated) Metric for master JVM memory pressure. @@ -582,7 +582,7 @@ public interface IDomain : IResource { * @param props */ @Deprecated(message = "deprecated in CDK") - public fun metricMasterJvmMemoryPressure(props: MetricOptions): Metric + public fun metricMasterJVMMemoryPressure(props: MetricOptions): Metric /** * (deprecated) Metric for master JVM memory pressure. @@ -594,8 +594,8 @@ public interface IDomain : IResource { */ @Deprecated(message = "deprecated in CDK") @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("fbcf8e4882306bcb2bed673a80ed7a54a16cc27adfc1a7fe173fbb566b335350") - public fun metricMasterJvmMemoryPressure(props: MetricOptions.Builder.() -> Unit): Metric + @JvmName("8abbe6fe8c9df31c7c02cf8f2ff374dd99996363ad1f3de815273cee61f4b816") + public fun metricMasterJVMMemoryPressure(props: MetricOptions.Builder.() -> Unit): Metric /** * (deprecated) Metric for the number of nodes. @@ -936,6 +936,44 @@ public interface IDomain : IResource { override fun metricAutomatedSnapshotFailure(props: MetricOptions.Builder.() -> Unit): Metric = metricAutomatedSnapshotFailure(MetricOptions(props)) + /** + * (deprecated) Metric for CPU utilization. + * + * Default: maximum over 5 minutes + * + * @deprecated use opensearchservice module instead + * @param props + */ + @Deprecated(message = "deprecated in CDK") + override fun metricCPUUtilization(): Metric = + unwrap(this).metricCPUUtilization().let(Metric::wrap) + + /** + * (deprecated) Metric for CPU utilization. + * + * Default: maximum over 5 minutes + * + * @deprecated use opensearchservice module instead + * @param props + */ + @Deprecated(message = "deprecated in CDK") + override fun metricCPUUtilization(props: MetricOptions): Metric = + unwrap(this).metricCPUUtilization(props.let(MetricOptions::unwrap)).let(Metric::wrap) + + /** + * (deprecated) Metric for CPU utilization. + * + * Default: maximum over 5 minutes + * + * @deprecated use opensearchservice module instead + * @param props + */ + @Deprecated(message = "deprecated in CDK") + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("66a273587ca08857c76d1952aa0bb360d86bfe06cc24788a922415fa0fa097ef") + override fun metricCPUUtilization(props: MetricOptions.Builder.() -> Unit): Metric = + metricCPUUtilization(MetricOptions(props)) + /** * (deprecated) Metric for the cluster blocking index writes. * @@ -1050,44 +1088,6 @@ public interface IDomain : IResource { override fun metricClusterStatusYellow(props: MetricOptions.Builder.() -> Unit): Metric = metricClusterStatusYellow(MetricOptions(props)) - /** - * (deprecated) Metric for CPU utilization. - * - * Default: maximum over 5 minutes - * - * @deprecated use opensearchservice module instead - * @param props - */ - @Deprecated(message = "deprecated in CDK") - override fun metricCpuUtilization(): Metric = - unwrap(this).metricCPUUtilization().let(Metric::wrap) - - /** - * (deprecated) Metric for CPU utilization. - * - * Default: maximum over 5 minutes - * - * @deprecated use opensearchservice module instead - * @param props - */ - @Deprecated(message = "deprecated in CDK") - override fun metricCpuUtilization(props: MetricOptions): Metric = - unwrap(this).metricCPUUtilization(props.let(MetricOptions::unwrap)).let(Metric::wrap) - - /** - * (deprecated) Metric for CPU utilization. - * - * Default: maximum over 5 minutes - * - * @deprecated use opensearchservice module instead - * @param props - */ - @Deprecated(message = "deprecated in CDK") - @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("06a38048efcdd43000e7f66d74001004b818625d95136f460bf350a2397a31d0") - override fun metricCpuUtilization(props: MetricOptions.Builder.() -> Unit): Metric = - metricCpuUtilization(MetricOptions(props)) - /** * (deprecated) Metric for the storage space of nodes in the cluster. * @@ -1173,7 +1173,7 @@ public interface IDomain : IResource { * @param props */ @Deprecated(message = "deprecated in CDK") - override fun metricJvmMemoryPressure(): Metric = + override fun metricJVMMemoryPressure(): Metric = unwrap(this).metricJVMMemoryPressure().let(Metric::wrap) /** @@ -1185,7 +1185,7 @@ public interface IDomain : IResource { * @param props */ @Deprecated(message = "deprecated in CDK") - override fun metricJvmMemoryPressure(props: MetricOptions): Metric = + override fun metricJVMMemoryPressure(props: MetricOptions): Metric = unwrap(this).metricJVMMemoryPressure(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -1198,9 +1198,9 @@ public interface IDomain : IResource { */ @Deprecated(message = "deprecated in CDK") @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("283ffec8edbd9b28227078700405c8b7b7fe0f6bf433f6323ba9205b4c8a528f") - override fun metricJvmMemoryPressure(props: MetricOptions.Builder.() -> Unit): Metric = - metricJvmMemoryPressure(MetricOptions(props)) + @JvmName("bbc5860f20525c5c3cf2850d91d7efa180c7058337e1de65c8420bc7be81cc9b") + override fun metricJVMMemoryPressure(props: MetricOptions.Builder.() -> Unit): Metric = + metricJVMMemoryPressure(MetricOptions(props)) /** * (deprecated) Metric for KMS key errors. @@ -1211,7 +1211,7 @@ public interface IDomain : IResource { * @param props */ @Deprecated(message = "deprecated in CDK") - override fun metricKmsKeyError(): Metric = unwrap(this).metricKMSKeyError().let(Metric::wrap) + override fun metricKMSKeyError(): Metric = unwrap(this).metricKMSKeyError().let(Metric::wrap) /** * (deprecated) Metric for KMS key errors. @@ -1222,7 +1222,7 @@ public interface IDomain : IResource { * @param props */ @Deprecated(message = "deprecated in CDK") - override fun metricKmsKeyError(props: MetricOptions): Metric = + override fun metricKMSKeyError(props: MetricOptions): Metric = unwrap(this).metricKMSKeyError(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -1235,9 +1235,9 @@ public interface IDomain : IResource { */ @Deprecated(message = "deprecated in CDK") @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("309d28dee34b268d496bc1e8ba269d5bff9ec10e9e17132d9a884e208a805741") - override fun metricKmsKeyError(props: MetricOptions.Builder.() -> Unit): Metric = - metricKmsKeyError(MetricOptions(props)) + @JvmName("e6d547afff79fd0803e3b15eb00be8f5c5c65020938e7e8c527fefe04c3ec7de") + override fun metricKMSKeyError(props: MetricOptions.Builder.() -> Unit): Metric = + metricKMSKeyError(MetricOptions(props)) /** * (deprecated) Metric for KMS key being inaccessible. @@ -1248,7 +1248,7 @@ public interface IDomain : IResource { * @param props */ @Deprecated(message = "deprecated in CDK") - override fun metricKmsKeyInaccessible(): Metric = + override fun metricKMSKeyInaccessible(): Metric = unwrap(this).metricKMSKeyInaccessible().let(Metric::wrap) /** @@ -1260,7 +1260,7 @@ public interface IDomain : IResource { * @param props */ @Deprecated(message = "deprecated in CDK") - override fun metricKmsKeyInaccessible(props: MetricOptions): Metric = + override fun metricKMSKeyInaccessible(props: MetricOptions): Metric = unwrap(this).metricKMSKeyInaccessible(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -1273,9 +1273,9 @@ public interface IDomain : IResource { */ @Deprecated(message = "deprecated in CDK") @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("bfca9e4cdc1ad37f6d57f9fdeb4258e1c6235ab92ed8224c8ee4cda359baaad6") - override fun metricKmsKeyInaccessible(props: MetricOptions.Builder.() -> Unit): Metric = - metricKmsKeyInaccessible(MetricOptions(props)) + @JvmName("5c4bf93f4e622d4a76178b4868be7efe604fd3d16316e4a05742bea79f81ef77") + override fun metricKMSKeyInaccessible(props: MetricOptions.Builder.() -> Unit): Metric = + metricKMSKeyInaccessible(MetricOptions(props)) /** * (deprecated) Metric for master CPU utilization. @@ -1286,7 +1286,7 @@ public interface IDomain : IResource { * @param props */ @Deprecated(message = "deprecated in CDK") - override fun metricMasterCpuUtilization(): Metric = + override fun metricMasterCPUUtilization(): Metric = unwrap(this).metricMasterCPUUtilization().let(Metric::wrap) /** @@ -1298,7 +1298,7 @@ public interface IDomain : IResource { * @param props */ @Deprecated(message = "deprecated in CDK") - override fun metricMasterCpuUtilization(props: MetricOptions): Metric = + override fun metricMasterCPUUtilization(props: MetricOptions): Metric = unwrap(this).metricMasterCPUUtilization(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -1311,9 +1311,9 @@ public interface IDomain : IResource { */ @Deprecated(message = "deprecated in CDK") @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("8a46b211229de3f431630b8ea4f99843647a1cab494f599c79138732a397c709") - override fun metricMasterCpuUtilization(props: MetricOptions.Builder.() -> Unit): Metric = - metricMasterCpuUtilization(MetricOptions(props)) + @JvmName("9bfbec0deb2fa2aad0f19ca7ed1e5d7e6bd722bd278b8f9e86e0086d51527219") + override fun metricMasterCPUUtilization(props: MetricOptions.Builder.() -> Unit): Metric = + metricMasterCPUUtilization(MetricOptions(props)) /** * (deprecated) Metric for master JVM memory pressure. @@ -1324,7 +1324,7 @@ public interface IDomain : IResource { * @param props */ @Deprecated(message = "deprecated in CDK") - override fun metricMasterJvmMemoryPressure(): Metric = + override fun metricMasterJVMMemoryPressure(): Metric = unwrap(this).metricMasterJVMMemoryPressure().let(Metric::wrap) /** @@ -1336,7 +1336,7 @@ public interface IDomain : IResource { * @param props */ @Deprecated(message = "deprecated in CDK") - override fun metricMasterJvmMemoryPressure(props: MetricOptions): Metric = + override fun metricMasterJVMMemoryPressure(props: MetricOptions): Metric = unwrap(this).metricMasterJVMMemoryPressure(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -1349,9 +1349,9 @@ public interface IDomain : IResource { */ @Deprecated(message = "deprecated in CDK") @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("fbcf8e4882306bcb2bed673a80ed7a54a16cc27adfc1a7fe173fbb566b335350") - override fun metricMasterJvmMemoryPressure(props: MetricOptions.Builder.() -> Unit): Metric = - metricMasterJvmMemoryPressure(MetricOptions(props)) + @JvmName("8abbe6fe8c9df31c7c02cf8f2ff374dd99996363ad1f3de815273cee61f4b816") + override fun metricMasterJVMMemoryPressure(props: MetricOptions.Builder.() -> Unit): Metric = + metricMasterJVMMemoryPressure(MetricOptions(props)) /** * (deprecated) Metric for the number of nodes. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/emr/CfnCluster.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/emr/CfnCluster.kt index adf406fb5a..f56505341c 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/emr/CfnCluster.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/emr/CfnCluster.kt @@ -6292,8 +6292,8 @@ public open class CfnCluster( /** * Specifies whether the cluster should remain available after completing all steps. * - * Defaults to `true` . For more information about configuring cluster termination, see [Control - * Cluster + * Defaults to `false` . For more information about configuring cluster termination, see + * [Control Cluster * Termination](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html) * in the *EMR Management Guide* . * @@ -6523,7 +6523,7 @@ public open class CfnCluster( /** * @param keepJobFlowAliveWhenNoSteps Specifies whether the cluster should remain available * after completing all steps. - * Defaults to `true` . For more information about configuring cluster termination, see + * Defaults to `false` . For more information about configuring cluster termination, see * [Control Cluster * Termination](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html) * in the *EMR Management Guide* . @@ -6533,7 +6533,7 @@ public open class CfnCluster( /** * @param keepJobFlowAliveWhenNoSteps Specifies whether the cluster should remain available * after completing all steps. - * Defaults to `true` . For more information about configuring cluster termination, see + * Defaults to `false` . For more information about configuring cluster termination, see * [Control Cluster * Termination](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html) * in the *EMR Management Guide* . @@ -6892,7 +6892,7 @@ public open class CfnCluster( /** * @param keepJobFlowAliveWhenNoSteps Specifies whether the cluster should remain available * after completing all steps. - * Defaults to `true` . For more information about configuring cluster termination, see + * Defaults to `false` . For more information about configuring cluster termination, see * [Control Cluster * Termination](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html) * in the *EMR Management Guide* . @@ -6904,7 +6904,7 @@ public open class CfnCluster( /** * @param keepJobFlowAliveWhenNoSteps Specifies whether the cluster should remain available * after completing all steps. - * Defaults to `true` . For more information about configuring cluster termination, see + * Defaults to `false` . For more information about configuring cluster termination, see * [Control Cluster * Termination](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html) * in the *EMR Management Guide* . @@ -7245,7 +7245,7 @@ public open class CfnCluster( /** * Specifies whether the cluster should remain available after completing all steps. * - * Defaults to `true` . For more information about configuring cluster termination, see + * Defaults to `false` . For more information about configuring cluster termination, see * [Control Cluster * Termination](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html) * in the *EMR Management Guide* . diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/entityresolution/CfnIdMappingWorkflow.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/entityresolution/CfnIdMappingWorkflow.kt index de6a972077..de1be3c283 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/entityresolution/CfnIdMappingWorkflow.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/entityresolution/CfnIdMappingWorkflow.kt @@ -50,17 +50,19 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .build()) * .inputSourceConfig(List.of(IdMappingWorkflowInputSourceProperty.builder() * .inputSourceArn("inputSourceArn") + * // the properties below are optional * .schemaArn("schemaArn") + * .type("type") * .build())) + * .roleArn("roleArn") + * .workflowName("workflowName") + * // the properties below are optional + * .description("description") * .outputSourceConfig(List.of(IdMappingWorkflowOutputSourceProperty.builder() * .outputS3Path("outputS3Path") * // the properties below are optional * .kmsArn("kmsArn") * .build())) - * .roleArn("roleArn") - * .workflowName("workflowName") - * // the properties below are optional - * .description("description") * .tags(List.of(CfnTag.builder() * .key("key") * .value("value") @@ -186,7 +188,7 @@ public open class CfnIdMappingWorkflow( * A list of `IdMappingWorkflowOutputSource` objects, each of which contains fields `OutputS3Path` * and `Output` . */ - public open fun outputSourceConfig(): Any = unwrap(this).getOutputSourceConfig() + public open fun outputSourceConfig(): Any? = unwrap(this).getOutputSourceConfig() /** * A list of `IdMappingWorkflowOutputSource` objects, each of which contains fields `OutputS3Path` @@ -733,7 +735,7 @@ public open class CfnIdMappingWorkflow( } /** - * An object containing `InputSourceARN` and `SchemaName` . + * An object containing `InputSourceARN` , `SchemaName` , and `Type` . * * Example: * @@ -744,7 +746,9 @@ public open class CfnIdMappingWorkflow( * IdMappingWorkflowInputSourceProperty idMappingWorkflowInputSourceProperty = * IdMappingWorkflowInputSourceProperty.builder() * .inputSourceArn("inputSourceArn") + * // the properties below are optional * .schemaArn("schemaArn") + * .type("type") * .build(); * ``` * @@ -763,7 +767,19 @@ public open class CfnIdMappingWorkflow( * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-idmappingworkflow-idmappingworkflowinputsource.html#cfn-entityresolution-idmappingworkflow-idmappingworkflowinputsource-schemaarn) */ - public fun schemaArn(): String + public fun schemaArn(): String? = unwrap(this).getSchemaArn() + + /** + * The type of ID namespace. There are two types: `SOURCE` and `TARGET` . + * + * The `SOURCE` contains configurations for `sourceId` data that will be processed in an ID + * mapping workflow. + * + * The `TARGET` contains a configuration of `targetId` to which all `sourceIds` will resolve to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-idmappingworkflow-idmappingworkflowinputsource.html#cfn-entityresolution-idmappingworkflow-idmappingworkflowinputsource-type) + */ + public fun type(): String? = unwrap(this).getType() /** * A builder for [IdMappingWorkflowInputSourceProperty] @@ -777,9 +793,19 @@ public open class CfnIdMappingWorkflow( /** * @param schemaArn The ARN (Amazon Resource Name) that AWS Entity Resolution generated for - * the `SchemaMapping` . + * the `SchemaMapping` . */ public fun schemaArn(schemaArn: String) + + /** + * @param type The type of ID namespace. There are two types: `SOURCE` and `TARGET` . + * The `SOURCE` contains configurations for `sourceId` data that will be processed in an ID + * mapping workflow. + * + * The `TARGET` contains a configuration of `targetId` to which all `sourceIds` will resolve + * to. + */ + public fun type(type: String) } private class BuilderImpl : Builder { @@ -797,12 +823,24 @@ public open class CfnIdMappingWorkflow( /** * @param schemaArn The ARN (Amazon Resource Name) that AWS Entity Resolution generated for - * the `SchemaMapping` . + * the `SchemaMapping` . */ override fun schemaArn(schemaArn: String) { cdkBuilder.schemaArn(schemaArn) } + /** + * @param type The type of ID namespace. There are two types: `SOURCE` and `TARGET` . + * The `SOURCE` contains configurations for `sourceId` data that will be processed in an ID + * mapping workflow. + * + * The `TARGET` contains a configuration of `targetId` to which all `sourceIds` will resolve + * to. + */ + override fun type(type: String) { + cdkBuilder.type(type) + } + public fun build(): software.amazon.awscdk.services.entityresolution.CfnIdMappingWorkflow.IdMappingWorkflowInputSourceProperty = cdkBuilder.build() @@ -824,7 +862,20 @@ public open class CfnIdMappingWorkflow( * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-idmappingworkflow-idmappingworkflowinputsource.html#cfn-entityresolution-idmappingworkflow-idmappingworkflowinputsource-schemaarn) */ - override fun schemaArn(): String = unwrap(this).getSchemaArn() + override fun schemaArn(): String? = unwrap(this).getSchemaArn() + + /** + * The type of ID namespace. There are two types: `SOURCE` and `TARGET` . + * + * The `SOURCE` contains configurations for `sourceId` data that will be processed in an ID + * mapping workflow. + * + * The `TARGET` contains a configuration of `targetId` to which all `sourceIds` will resolve + * to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-idmappingworkflow-idmappingworkflowinputsource.html#cfn-entityresolution-idmappingworkflow-idmappingworkflowinputsource-type) + */ + override fun type(): String? = unwrap(this).getType() } public companion object { diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/entityresolution/CfnIdMappingWorkflowProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/entityresolution/CfnIdMappingWorkflowProps.kt index 698116b43e..911b10d3f6 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/entityresolution/CfnIdMappingWorkflowProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/entityresolution/CfnIdMappingWorkflowProps.kt @@ -37,17 +37,19 @@ import kotlin.jvm.JvmName * .build()) * .inputSourceConfig(List.of(IdMappingWorkflowInputSourceProperty.builder() * .inputSourceArn("inputSourceArn") + * // the properties below are optional * .schemaArn("schemaArn") + * .type("type") * .build())) + * .roleArn("roleArn") + * .workflowName("workflowName") + * // the properties below are optional + * .description("description") * .outputSourceConfig(List.of(IdMappingWorkflowOutputSourceProperty.builder() * .outputS3Path("outputS3Path") * // the properties below are optional * .kmsArn("kmsArn") * .build())) - * .roleArn("roleArn") - * .workflowName("workflowName") - * // the properties below are optional - * .description("description") * .tags(List.of(CfnTag.builder() * .key("key") * .value("value") @@ -85,7 +87,7 @@ public interface CfnIdMappingWorkflowProps { * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idmappingworkflow.html#cfn-entityresolution-idmappingworkflow-outputsourceconfig) */ - public fun outputSourceConfig(): Any + public fun outputSourceConfig(): Any? = unwrap(this).getOutputSourceConfig() /** * The Amazon Resource Name (ARN) of the IAM role. @@ -165,19 +167,19 @@ public interface CfnIdMappingWorkflowProps { /** * @param outputSourceConfig A list of `IdMappingWorkflowOutputSource` objects, each of which - * contains fields `OutputS3Path` and `Output` . + * contains fields `OutputS3Path` and `Output` . */ public fun outputSourceConfig(outputSourceConfig: IResolvable) /** * @param outputSourceConfig A list of `IdMappingWorkflowOutputSource` objects, each of which - * contains fields `OutputS3Path` and `Output` . + * contains fields `OutputS3Path` and `Output` . */ public fun outputSourceConfig(outputSourceConfig: List) /** * @param outputSourceConfig A list of `IdMappingWorkflowOutputSource` objects, each of which - * contains fields `OutputS3Path` and `Output` . + * contains fields `OutputS3Path` and `Output` . */ public fun outputSourceConfig(vararg outputSourceConfig: Any) @@ -270,7 +272,7 @@ public interface CfnIdMappingWorkflowProps { /** * @param outputSourceConfig A list of `IdMappingWorkflowOutputSource` objects, each of which - * contains fields `OutputS3Path` and `Output` . + * contains fields `OutputS3Path` and `Output` . */ override fun outputSourceConfig(outputSourceConfig: IResolvable) { cdkBuilder.outputSourceConfig(outputSourceConfig.let(IResolvable::unwrap)) @@ -278,7 +280,7 @@ public interface CfnIdMappingWorkflowProps { /** * @param outputSourceConfig A list of `IdMappingWorkflowOutputSource` objects, each of which - * contains fields `OutputS3Path` and `Output` . + * contains fields `OutputS3Path` and `Output` . */ override fun outputSourceConfig(outputSourceConfig: List) { cdkBuilder.outputSourceConfig(outputSourceConfig.map{CdkObjectWrappers.unwrap(it)}) @@ -286,7 +288,7 @@ public interface CfnIdMappingWorkflowProps { /** * @param outputSourceConfig A list of `IdMappingWorkflowOutputSource` objects, each of which - * contains fields `OutputS3Path` and `Output` . + * contains fields `OutputS3Path` and `Output` . */ override fun outputSourceConfig(vararg outputSourceConfig: Any): Unit = outputSourceConfig(outputSourceConfig.toList()) @@ -354,7 +356,7 @@ public interface CfnIdMappingWorkflowProps { * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idmappingworkflow.html#cfn-entityresolution-idmappingworkflow-outputsourceconfig) */ - override fun outputSourceConfig(): Any = unwrap(this).getOutputSourceConfig() + override fun outputSourceConfig(): Any? = unwrap(this).getOutputSourceConfig() /** * The Amazon Resource Name (ARN) of the IAM role. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/entityresolution/CfnIdNamespace.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/entityresolution/CfnIdNamespace.kt new file mode 100644 index 0000000000..507ae2d384 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/entityresolution/CfnIdNamespace.kt @@ -0,0 +1,914 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.entityresolution + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.ITaggableV2 +import io.cloudshiftdev.awscdk.TagManager +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.collections.Map +import kotlin.jvm.JvmName +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * Creates an ID namespace object which will help customers provide metadata explaining their + * dataset and how to use it. + * + * Each ID namespace must have a unique name. To modify an existing ID namespace, use the + * `UpdateIdNamespace` API. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.entityresolution.*; + * CfnIdNamespace cfnIdNamespace = CfnIdNamespace.Builder.create(this, "MyCfnIdNamespace") + * .idNamespaceName("idNamespaceName") + * .type("type") + * // the properties below are optional + * .description("description") + * .idMappingWorkflowProperties(List.of(IdNamespaceIdMappingWorkflowPropertiesProperty.builder() + * .idMappingType("idMappingType") + * // the properties below are optional + * .providerProperties(NamespaceProviderPropertiesProperty.builder() + * .providerServiceArn("providerServiceArn") + * // the properties below are optional + * .providerConfiguration(Map.of( + * "providerConfigurationKey", "providerConfiguration")) + * .build()) + * .build())) + * .inputSourceConfig(List.of(IdNamespaceInputSourceProperty.builder() + * .inputSourceArn("inputSourceArn") + * // the properties below are optional + * .schemaName("schemaName") + * .build())) + * .roleArn("roleArn") + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html) + */ +public open class CfnIdNamespace( + cdkObject: software.amazon.awscdk.services.entityresolution.CfnIdNamespace, +) : CfnResource(cdkObject), IInspectable, ITaggableV2 { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnIdNamespaceProps, + ) : + this(software.amazon.awscdk.services.entityresolution.CfnIdNamespace(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnIdNamespaceProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnIdNamespaceProps.Builder.() -> Unit, + ) : this(scope, id, CfnIdNamespaceProps(props) + ) + + /** + * The date and time when the IdNamespace was created. + */ + public open fun attrCreatedAt(): String = unwrap(this).getAttrCreatedAt() + + /** + * The arn associated with the IdNamespace. + */ + public open fun attrIdNamespaceArn(): String = unwrap(this).getAttrIdNamespaceArn() + + /** + * The date and time when the IdNamespace was updated. + */ + public open fun attrUpdatedAt(): String = unwrap(this).getAttrUpdatedAt() + + /** + * Tag Manager which manages the tags for this resource. + */ + public override fun cdkTagManager(): TagManager = + unwrap(this).getCdkTagManager().let(TagManager::wrap) + + /** + * The description of the ID namespace. + */ + public open fun description(): String? = unwrap(this).getDescription() + + /** + * The description of the ID namespace. + */ + public open fun description(`value`: String) { + unwrap(this).setDescription(`value`) + } + + /** + * Determines the properties of `IdMappingWorflow` where this `IdNamespace` can be used as a + * `Source` or a `Target` . + */ + public open fun idMappingWorkflowProperties(): Any? = + unwrap(this).getIdMappingWorkflowProperties() + + /** + * Determines the properties of `IdMappingWorflow` where this `IdNamespace` can be used as a + * `Source` or a `Target` . + */ + public open fun idMappingWorkflowProperties(`value`: IResolvable) { + unwrap(this).setIdMappingWorkflowProperties(`value`.let(IResolvable::unwrap)) + } + + /** + * Determines the properties of `IdMappingWorflow` where this `IdNamespace` can be used as a + * `Source` or a `Target` . + */ + public open fun idMappingWorkflowProperties(`value`: List) { + unwrap(this).setIdMappingWorkflowProperties(`value`.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * Determines the properties of `IdMappingWorflow` where this `IdNamespace` can be used as a + * `Source` or a `Target` . + */ + public open fun idMappingWorkflowProperties(vararg `value`: Any): Unit = + idMappingWorkflowProperties(`value`.toList()) + + /** + * The name of the ID namespace. + */ + public open fun idNamespaceName(): String = unwrap(this).getIdNamespaceName() + + /** + * The name of the ID namespace. + */ + public open fun idNamespaceName(`value`: String) { + unwrap(this).setIdNamespaceName(`value`) + } + + /** + * A list of `InputSource` objects, which have the fields `InputSourceARN` and `SchemaName` . + */ + public open fun inputSourceConfig(): Any? = unwrap(this).getInputSourceConfig() + + /** + * A list of `InputSource` objects, which have the fields `InputSourceARN` and `SchemaName` . + */ + public open fun inputSourceConfig(`value`: IResolvable) { + unwrap(this).setInputSourceConfig(`value`.let(IResolvable::unwrap)) + } + + /** + * A list of `InputSource` objects, which have the fields `InputSourceARN` and `SchemaName` . + */ + public open fun inputSourceConfig(`value`: List) { + unwrap(this).setInputSourceConfig(`value`.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * A list of `InputSource` objects, which have the fields `InputSourceARN` and `SchemaName` . + */ + public open fun inputSourceConfig(vararg `value`: Any): Unit = inputSourceConfig(`value`.toList()) + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * The Amazon Resource Name (ARN) of the IAM role. + */ + public open fun roleArn(): String? = unwrap(this).getRoleArn() + + /** + * The Amazon Resource Name (ARN) of the IAM role. + */ + public open fun roleArn(`value`: String) { + unwrap(this).setRoleArn(`value`) + } + + /** + * The tags used to organize, track, or control access for this resource. + */ + public open fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * The tags used to organize, track, or control access for this resource. + */ + public open fun tags(`value`: List) { + unwrap(this).setTags(`value`.map(CfnTag::unwrap)) + } + + /** + * The tags used to organize, track, or control access for this resource. + */ + public open fun tags(vararg `value`: CfnTag): Unit = tags(`value`.toList()) + + /** + * The type of ID namespace. + * + * There are two types: `SOURCE` and `TARGET` . + */ + public open fun type(): String = unwrap(this).getType() + + /** + * The type of ID namespace. + * + * There are two types: `SOURCE` and `TARGET` . + */ + public open fun type(`value`: String) { + unwrap(this).setType(`value`) + } + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.entityresolution.CfnIdNamespace]. + */ + @CdkDslMarker + public interface Builder { + /** + * The description of the ID namespace. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-description) + * @param description The description of the ID namespace. + */ + public fun description(description: String) + + /** + * Determines the properties of `IdMappingWorflow` where this `IdNamespace` can be used as a + * `Source` or a `Target` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-idmappingworkflowproperties) + * @param idMappingWorkflowProperties Determines the properties of `IdMappingWorflow` where this + * `IdNamespace` can be used as a `Source` or a `Target` . + */ + public fun idMappingWorkflowProperties(idMappingWorkflowProperties: IResolvable) + + /** + * Determines the properties of `IdMappingWorflow` where this `IdNamespace` can be used as a + * `Source` or a `Target` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-idmappingworkflowproperties) + * @param idMappingWorkflowProperties Determines the properties of `IdMappingWorflow` where this + * `IdNamespace` can be used as a `Source` or a `Target` . + */ + public fun idMappingWorkflowProperties(idMappingWorkflowProperties: List) + + /** + * Determines the properties of `IdMappingWorflow` where this `IdNamespace` can be used as a + * `Source` or a `Target` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-idmappingworkflowproperties) + * @param idMappingWorkflowProperties Determines the properties of `IdMappingWorflow` where this + * `IdNamespace` can be used as a `Source` or a `Target` . + */ + public fun idMappingWorkflowProperties(vararg idMappingWorkflowProperties: Any) + + /** + * The name of the ID namespace. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-idnamespacename) + * @param idNamespaceName The name of the ID namespace. + */ + public fun idNamespaceName(idNamespaceName: String) + + /** + * A list of `InputSource` objects, which have the fields `InputSourceARN` and `SchemaName` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-inputsourceconfig) + * @param inputSourceConfig A list of `InputSource` objects, which have the fields + * `InputSourceARN` and `SchemaName` . + */ + public fun inputSourceConfig(inputSourceConfig: IResolvable) + + /** + * A list of `InputSource` objects, which have the fields `InputSourceARN` and `SchemaName` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-inputsourceconfig) + * @param inputSourceConfig A list of `InputSource` objects, which have the fields + * `InputSourceARN` and `SchemaName` . + */ + public fun inputSourceConfig(inputSourceConfig: List) + + /** + * A list of `InputSource` objects, which have the fields `InputSourceARN` and `SchemaName` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-inputsourceconfig) + * @param inputSourceConfig A list of `InputSource` objects, which have the fields + * `InputSourceARN` and `SchemaName` . + */ + public fun inputSourceConfig(vararg inputSourceConfig: Any) + + /** + * The Amazon Resource Name (ARN) of the IAM role. + * + * AWS Entity Resolution assumes this role to access the resources defined in this `IdNamespace` + * on your behalf as part of the workflow run. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-rolearn) + * @param roleArn The Amazon Resource Name (ARN) of the IAM role. + */ + public fun roleArn(roleArn: String) + + /** + * The tags used to organize, track, or control access for this resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-tags) + * @param tags The tags used to organize, track, or control access for this resource. + */ + public fun tags(tags: List) + + /** + * The tags used to organize, track, or control access for this resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-tags) + * @param tags The tags used to organize, track, or control access for this resource. + */ + public fun tags(vararg tags: CfnTag) + + /** + * The type of ID namespace. There are two types: `SOURCE` and `TARGET` . + * + * The `SOURCE` contains configurations for `sourceId` data that will be processed in an ID + * mapping workflow. + * + * The `TARGET` contains a configuration of `targetId` to which all `sourceIds` will resolve to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-type) + * @param type The type of ID namespace. There are two types: `SOURCE` and `TARGET` . + */ + public fun type(type: String) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.services.entityresolution.CfnIdNamespace.Builder + = software.amazon.awscdk.services.entityresolution.CfnIdNamespace.Builder.create(scope, id) + + /** + * The description of the ID namespace. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-description) + * @param description The description of the ID namespace. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * Determines the properties of `IdMappingWorflow` where this `IdNamespace` can be used as a + * `Source` or a `Target` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-idmappingworkflowproperties) + * @param idMappingWorkflowProperties Determines the properties of `IdMappingWorflow` where this + * `IdNamespace` can be used as a `Source` or a `Target` . + */ + override fun idMappingWorkflowProperties(idMappingWorkflowProperties: IResolvable) { + cdkBuilder.idMappingWorkflowProperties(idMappingWorkflowProperties.let(IResolvable::unwrap)) + } + + /** + * Determines the properties of `IdMappingWorflow` where this `IdNamespace` can be used as a + * `Source` or a `Target` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-idmappingworkflowproperties) + * @param idMappingWorkflowProperties Determines the properties of `IdMappingWorflow` where this + * `IdNamespace` can be used as a `Source` or a `Target` . + */ + override fun idMappingWorkflowProperties(idMappingWorkflowProperties: List) { + cdkBuilder.idMappingWorkflowProperties(idMappingWorkflowProperties.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * Determines the properties of `IdMappingWorflow` where this `IdNamespace` can be used as a + * `Source` or a `Target` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-idmappingworkflowproperties) + * @param idMappingWorkflowProperties Determines the properties of `IdMappingWorflow` where this + * `IdNamespace` can be used as a `Source` or a `Target` . + */ + override fun idMappingWorkflowProperties(vararg idMappingWorkflowProperties: Any): Unit = + idMappingWorkflowProperties(idMappingWorkflowProperties.toList()) + + /** + * The name of the ID namespace. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-idnamespacename) + * @param idNamespaceName The name of the ID namespace. + */ + override fun idNamespaceName(idNamespaceName: String) { + cdkBuilder.idNamespaceName(idNamespaceName) + } + + /** + * A list of `InputSource` objects, which have the fields `InputSourceARN` and `SchemaName` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-inputsourceconfig) + * @param inputSourceConfig A list of `InputSource` objects, which have the fields + * `InputSourceARN` and `SchemaName` . + */ + override fun inputSourceConfig(inputSourceConfig: IResolvable) { + cdkBuilder.inputSourceConfig(inputSourceConfig.let(IResolvable::unwrap)) + } + + /** + * A list of `InputSource` objects, which have the fields `InputSourceARN` and `SchemaName` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-inputsourceconfig) + * @param inputSourceConfig A list of `InputSource` objects, which have the fields + * `InputSourceARN` and `SchemaName` . + */ + override fun inputSourceConfig(inputSourceConfig: List) { + cdkBuilder.inputSourceConfig(inputSourceConfig.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * A list of `InputSource` objects, which have the fields `InputSourceARN` and `SchemaName` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-inputsourceconfig) + * @param inputSourceConfig A list of `InputSource` objects, which have the fields + * `InputSourceARN` and `SchemaName` . + */ + override fun inputSourceConfig(vararg inputSourceConfig: Any): Unit = + inputSourceConfig(inputSourceConfig.toList()) + + /** + * The Amazon Resource Name (ARN) of the IAM role. + * + * AWS Entity Resolution assumes this role to access the resources defined in this `IdNamespace` + * on your behalf as part of the workflow run. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-rolearn) + * @param roleArn The Amazon Resource Name (ARN) of the IAM role. + */ + override fun roleArn(roleArn: String) { + cdkBuilder.roleArn(roleArn) + } + + /** + * The tags used to organize, track, or control access for this resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-tags) + * @param tags The tags used to organize, track, or control access for this resource. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * The tags used to organize, track, or control access for this resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-tags) + * @param tags The tags used to organize, track, or control access for this resource. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + /** + * The type of ID namespace. There are two types: `SOURCE` and `TARGET` . + * + * The `SOURCE` contains configurations for `sourceId` data that will be processed in an ID + * mapping workflow. + * + * The `TARGET` contains a configuration of `targetId` to which all `sourceIds` will resolve to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-type) + * @param type The type of ID namespace. There are two types: `SOURCE` and `TARGET` . + */ + override fun type(type: String) { + cdkBuilder.type(type) + } + + public fun build(): software.amazon.awscdk.services.entityresolution.CfnIdNamespace = + cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.entityresolution.CfnIdNamespace.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnIdNamespace { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnIdNamespace(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.entityresolution.CfnIdNamespace): + CfnIdNamespace = CfnIdNamespace(cdkObject) + + internal fun unwrap(wrapped: CfnIdNamespace): + software.amazon.awscdk.services.entityresolution.CfnIdNamespace = wrapped.cdkObject as + software.amazon.awscdk.services.entityresolution.CfnIdNamespace + } + + /** + * An object containing `IdMappingType` and `ProviderProperties` . + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.entityresolution.*; + * IdNamespaceIdMappingWorkflowPropertiesProperty idNamespaceIdMappingWorkflowPropertiesProperty = + * IdNamespaceIdMappingWorkflowPropertiesProperty.builder() + * .idMappingType("idMappingType") + * // the properties below are optional + * .providerProperties(NamespaceProviderPropertiesProperty.builder() + * .providerServiceArn("providerServiceArn") + * // the properties below are optional + * .providerConfiguration(Map.of( + * "providerConfigurationKey", "providerConfiguration")) + * .build()) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-idnamespace-idnamespaceidmappingworkflowproperties.html) + */ + public interface IdNamespaceIdMappingWorkflowPropertiesProperty { + /** + * The type of ID mapping. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-idnamespace-idnamespaceidmappingworkflowproperties.html#cfn-entityresolution-idnamespace-idnamespaceidmappingworkflowproperties-idmappingtype) + */ + public fun idMappingType(): String + + /** + * An object which defines any additional configurations required by the provider service. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-idnamespace-idnamespaceidmappingworkflowproperties.html#cfn-entityresolution-idnamespace-idnamespaceidmappingworkflowproperties-providerproperties) + */ + public fun providerProperties(): Any? = unwrap(this).getProviderProperties() + + /** + * A builder for [IdNamespaceIdMappingWorkflowPropertiesProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param idMappingType The type of ID mapping. + */ + public fun idMappingType(idMappingType: String) + + /** + * @param providerProperties An object which defines any additional configurations required by + * the provider service. + */ + public fun providerProperties(providerProperties: IResolvable) + + /** + * @param providerProperties An object which defines any additional configurations required by + * the provider service. + */ + public fun providerProperties(providerProperties: NamespaceProviderPropertiesProperty) + + /** + * @param providerProperties An object which defines any additional configurations required by + * the provider service. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("78ad4e8085bdee3d62dad29fd5bb09ed9a22f0461305c03a444452386fd185e0") + public + fun providerProperties(providerProperties: NamespaceProviderPropertiesProperty.Builder.() -> Unit) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.entityresolution.CfnIdNamespace.IdNamespaceIdMappingWorkflowPropertiesProperty.Builder + = + software.amazon.awscdk.services.entityresolution.CfnIdNamespace.IdNamespaceIdMappingWorkflowPropertiesProperty.builder() + + /** + * @param idMappingType The type of ID mapping. + */ + override fun idMappingType(idMappingType: String) { + cdkBuilder.idMappingType(idMappingType) + } + + /** + * @param providerProperties An object which defines any additional configurations required by + * the provider service. + */ + override fun providerProperties(providerProperties: IResolvable) { + cdkBuilder.providerProperties(providerProperties.let(IResolvable::unwrap)) + } + + /** + * @param providerProperties An object which defines any additional configurations required by + * the provider service. + */ + override fun providerProperties(providerProperties: NamespaceProviderPropertiesProperty) { + cdkBuilder.providerProperties(providerProperties.let(NamespaceProviderPropertiesProperty::unwrap)) + } + + /** + * @param providerProperties An object which defines any additional configurations required by + * the provider service. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("78ad4e8085bdee3d62dad29fd5bb09ed9a22f0461305c03a444452386fd185e0") + override + fun providerProperties(providerProperties: NamespaceProviderPropertiesProperty.Builder.() -> Unit): + Unit = providerProperties(NamespaceProviderPropertiesProperty(providerProperties)) + + public fun build(): + software.amazon.awscdk.services.entityresolution.CfnIdNamespace.IdNamespaceIdMappingWorkflowPropertiesProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.entityresolution.CfnIdNamespace.IdNamespaceIdMappingWorkflowPropertiesProperty, + ) : CdkObject(cdkObject), IdNamespaceIdMappingWorkflowPropertiesProperty { + /** + * The type of ID mapping. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-idnamespace-idnamespaceidmappingworkflowproperties.html#cfn-entityresolution-idnamespace-idnamespaceidmappingworkflowproperties-idmappingtype) + */ + override fun idMappingType(): String = unwrap(this).getIdMappingType() + + /** + * An object which defines any additional configurations required by the provider service. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-idnamespace-idnamespaceidmappingworkflowproperties.html#cfn-entityresolution-idnamespace-idnamespaceidmappingworkflowproperties-providerproperties) + */ + override fun providerProperties(): Any? = unwrap(this).getProviderProperties() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): + IdNamespaceIdMappingWorkflowPropertiesProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.entityresolution.CfnIdNamespace.IdNamespaceIdMappingWorkflowPropertiesProperty): + IdNamespaceIdMappingWorkflowPropertiesProperty = CdkObjectWrappers.wrap(cdkObject) as? + IdNamespaceIdMappingWorkflowPropertiesProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: IdNamespaceIdMappingWorkflowPropertiesProperty): + software.amazon.awscdk.services.entityresolution.CfnIdNamespace.IdNamespaceIdMappingWorkflowPropertiesProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.entityresolution.CfnIdNamespace.IdNamespaceIdMappingWorkflowPropertiesProperty + } + } + + /** + * An object containing `InputSourceARN` and `SchemaName` . + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.entityresolution.*; + * IdNamespaceInputSourceProperty idNamespaceInputSourceProperty = + * IdNamespaceInputSourceProperty.builder() + * .inputSourceArn("inputSourceArn") + * // the properties below are optional + * .schemaName("schemaName") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-idnamespace-idnamespaceinputsource.html) + */ + public interface IdNamespaceInputSourceProperty { + /** + * An AWS Glue table ARN for the input source table. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-idnamespace-idnamespaceinputsource.html#cfn-entityresolution-idnamespace-idnamespaceinputsource-inputsourcearn) + */ + public fun inputSourceArn(): String + + /** + * The name of the schema. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-idnamespace-idnamespaceinputsource.html#cfn-entityresolution-idnamespace-idnamespaceinputsource-schemaname) + */ + public fun schemaName(): String? = unwrap(this).getSchemaName() + + /** + * A builder for [IdNamespaceInputSourceProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param inputSourceArn An AWS Glue table ARN for the input source table. + */ + public fun inputSourceArn(inputSourceArn: String) + + /** + * @param schemaName The name of the schema. + */ + public fun schemaName(schemaName: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.entityresolution.CfnIdNamespace.IdNamespaceInputSourceProperty.Builder + = + software.amazon.awscdk.services.entityresolution.CfnIdNamespace.IdNamespaceInputSourceProperty.builder() + + /** + * @param inputSourceArn An AWS Glue table ARN for the input source table. + */ + override fun inputSourceArn(inputSourceArn: String) { + cdkBuilder.inputSourceArn(inputSourceArn) + } + + /** + * @param schemaName The name of the schema. + */ + override fun schemaName(schemaName: String) { + cdkBuilder.schemaName(schemaName) + } + + public fun build(): + software.amazon.awscdk.services.entityresolution.CfnIdNamespace.IdNamespaceInputSourceProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.entityresolution.CfnIdNamespace.IdNamespaceInputSourceProperty, + ) : CdkObject(cdkObject), IdNamespaceInputSourceProperty { + /** + * An AWS Glue table ARN for the input source table. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-idnamespace-idnamespaceinputsource.html#cfn-entityresolution-idnamespace-idnamespaceinputsource-inputsourcearn) + */ + override fun inputSourceArn(): String = unwrap(this).getInputSourceArn() + + /** + * The name of the schema. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-idnamespace-idnamespaceinputsource.html#cfn-entityresolution-idnamespace-idnamespaceinputsource-schemaname) + */ + override fun schemaName(): String? = unwrap(this).getSchemaName() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): IdNamespaceInputSourceProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.entityresolution.CfnIdNamespace.IdNamespaceInputSourceProperty): + IdNamespaceInputSourceProperty = CdkObjectWrappers.wrap(cdkObject) as? + IdNamespaceInputSourceProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: IdNamespaceInputSourceProperty): + software.amazon.awscdk.services.entityresolution.CfnIdNamespace.IdNamespaceInputSourceProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.entityresolution.CfnIdNamespace.IdNamespaceInputSourceProperty + } + } + + /** + * An object containing `ProviderConfiguration` and `ProviderServiceArn` . + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.entityresolution.*; + * NamespaceProviderPropertiesProperty namespaceProviderPropertiesProperty = + * NamespaceProviderPropertiesProperty.builder() + * .providerServiceArn("providerServiceArn") + * // the properties below are optional + * .providerConfiguration(Map.of( + * "providerConfigurationKey", "providerConfiguration")) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-idnamespace-namespaceproviderproperties.html) + */ + public interface NamespaceProviderPropertiesProperty { + /** + * An object which defines any additional configurations required by the provider service. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-idnamespace-namespaceproviderproperties.html#cfn-entityresolution-idnamespace-namespaceproviderproperties-providerconfiguration) + */ + public fun providerConfiguration(): Any? = unwrap(this).getProviderConfiguration() + + /** + * The Amazon Resource Name (ARN) of the provider service. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-idnamespace-namespaceproviderproperties.html#cfn-entityresolution-idnamespace-namespaceproviderproperties-providerservicearn) + */ + public fun providerServiceArn(): String + + /** + * A builder for [NamespaceProviderPropertiesProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param providerConfiguration An object which defines any additional configurations required + * by the provider service. + */ + public fun providerConfiguration(providerConfiguration: IResolvable) + + /** + * @param providerConfiguration An object which defines any additional configurations required + * by the provider service. + */ + public fun providerConfiguration(providerConfiguration: Map) + + /** + * @param providerServiceArn The Amazon Resource Name (ARN) of the provider service. + */ + public fun providerServiceArn(providerServiceArn: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.entityresolution.CfnIdNamespace.NamespaceProviderPropertiesProperty.Builder + = + software.amazon.awscdk.services.entityresolution.CfnIdNamespace.NamespaceProviderPropertiesProperty.builder() + + /** + * @param providerConfiguration An object which defines any additional configurations required + * by the provider service. + */ + override fun providerConfiguration(providerConfiguration: IResolvable) { + cdkBuilder.providerConfiguration(providerConfiguration.let(IResolvable::unwrap)) + } + + /** + * @param providerConfiguration An object which defines any additional configurations required + * by the provider service. + */ + override fun providerConfiguration(providerConfiguration: Map) { + cdkBuilder.providerConfiguration(providerConfiguration) + } + + /** + * @param providerServiceArn The Amazon Resource Name (ARN) of the provider service. + */ + override fun providerServiceArn(providerServiceArn: String) { + cdkBuilder.providerServiceArn(providerServiceArn) + } + + public fun build(): + software.amazon.awscdk.services.entityresolution.CfnIdNamespace.NamespaceProviderPropertiesProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.entityresolution.CfnIdNamespace.NamespaceProviderPropertiesProperty, + ) : CdkObject(cdkObject), NamespaceProviderPropertiesProperty { + /** + * An object which defines any additional configurations required by the provider service. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-idnamespace-namespaceproviderproperties.html#cfn-entityresolution-idnamespace-namespaceproviderproperties-providerconfiguration) + */ + override fun providerConfiguration(): Any? = unwrap(this).getProviderConfiguration() + + /** + * The Amazon Resource Name (ARN) of the provider service. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-idnamespace-namespaceproviderproperties.html#cfn-entityresolution-idnamespace-namespaceproviderproperties-providerservicearn) + */ + override fun providerServiceArn(): String = unwrap(this).getProviderServiceArn() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): + NamespaceProviderPropertiesProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.entityresolution.CfnIdNamespace.NamespaceProviderPropertiesProperty): + NamespaceProviderPropertiesProperty = CdkObjectWrappers.wrap(cdkObject) as? + NamespaceProviderPropertiesProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: NamespaceProviderPropertiesProperty): + software.amazon.awscdk.services.entityresolution.CfnIdNamespace.NamespaceProviderPropertiesProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.entityresolution.CfnIdNamespace.NamespaceProviderPropertiesProperty + } + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/entityresolution/CfnIdNamespaceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/entityresolution/CfnIdNamespaceProps.kt new file mode 100644 index 0000000000..8d2641b866 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/entityresolution/CfnIdNamespaceProps.kt @@ -0,0 +1,369 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.entityresolution + +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.List + +/** + * Properties for defining a `CfnIdNamespace`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.entityresolution.*; + * CfnIdNamespaceProps cfnIdNamespaceProps = CfnIdNamespaceProps.builder() + * .idNamespaceName("idNamespaceName") + * .type("type") + * // the properties below are optional + * .description("description") + * .idMappingWorkflowProperties(List.of(IdNamespaceIdMappingWorkflowPropertiesProperty.builder() + * .idMappingType("idMappingType") + * // the properties below are optional + * .providerProperties(NamespaceProviderPropertiesProperty.builder() + * .providerServiceArn("providerServiceArn") + * // the properties below are optional + * .providerConfiguration(Map.of( + * "providerConfigurationKey", "providerConfiguration")) + * .build()) + * .build())) + * .inputSourceConfig(List.of(IdNamespaceInputSourceProperty.builder() + * .inputSourceArn("inputSourceArn") + * // the properties below are optional + * .schemaName("schemaName") + * .build())) + * .roleArn("roleArn") + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html) + */ +public interface CfnIdNamespaceProps { + /** + * The description of the ID namespace. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-description) + */ + public fun description(): String? = unwrap(this).getDescription() + + /** + * Determines the properties of `IdMappingWorflow` where this `IdNamespace` can be used as a + * `Source` or a `Target` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-idmappingworkflowproperties) + */ + public fun idMappingWorkflowProperties(): Any? = unwrap(this).getIdMappingWorkflowProperties() + + /** + * The name of the ID namespace. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-idnamespacename) + */ + public fun idNamespaceName(): String + + /** + * A list of `InputSource` objects, which have the fields `InputSourceARN` and `SchemaName` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-inputsourceconfig) + */ + public fun inputSourceConfig(): Any? = unwrap(this).getInputSourceConfig() + + /** + * The Amazon Resource Name (ARN) of the IAM role. + * + * AWS Entity Resolution assumes this role to access the resources defined in this `IdNamespace` + * on your behalf as part of the workflow run. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-rolearn) + */ + public fun roleArn(): String? = unwrap(this).getRoleArn() + + /** + * The tags used to organize, track, or control access for this resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-tags) + */ + public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * The type of ID namespace. There are two types: `SOURCE` and `TARGET` . + * + * The `SOURCE` contains configurations for `sourceId` data that will be processed in an ID + * mapping workflow. + * + * The `TARGET` contains a configuration of `targetId` to which all `sourceIds` will resolve to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-type) + */ + public fun type(): String + + /** + * A builder for [CfnIdNamespaceProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param description The description of the ID namespace. + */ + public fun description(description: String) + + /** + * @param idMappingWorkflowProperties Determines the properties of `IdMappingWorflow` where this + * `IdNamespace` can be used as a `Source` or a `Target` . + */ + public fun idMappingWorkflowProperties(idMappingWorkflowProperties: IResolvable) + + /** + * @param idMappingWorkflowProperties Determines the properties of `IdMappingWorflow` where this + * `IdNamespace` can be used as a `Source` or a `Target` . + */ + public fun idMappingWorkflowProperties(idMappingWorkflowProperties: List) + + /** + * @param idMappingWorkflowProperties Determines the properties of `IdMappingWorflow` where this + * `IdNamespace` can be used as a `Source` or a `Target` . + */ + public fun idMappingWorkflowProperties(vararg idMappingWorkflowProperties: Any) + + /** + * @param idNamespaceName The name of the ID namespace. + */ + public fun idNamespaceName(idNamespaceName: String) + + /** + * @param inputSourceConfig A list of `InputSource` objects, which have the fields + * `InputSourceARN` and `SchemaName` . + */ + public fun inputSourceConfig(inputSourceConfig: IResolvable) + + /** + * @param inputSourceConfig A list of `InputSource` objects, which have the fields + * `InputSourceARN` and `SchemaName` . + */ + public fun inputSourceConfig(inputSourceConfig: List) + + /** + * @param inputSourceConfig A list of `InputSource` objects, which have the fields + * `InputSourceARN` and `SchemaName` . + */ + public fun inputSourceConfig(vararg inputSourceConfig: Any) + + /** + * @param roleArn The Amazon Resource Name (ARN) of the IAM role. + * AWS Entity Resolution assumes this role to access the resources defined in this `IdNamespace` + * on your behalf as part of the workflow run. + */ + public fun roleArn(roleArn: String) + + /** + * @param tags The tags used to organize, track, or control access for this resource. + */ + public fun tags(tags: List) + + /** + * @param tags The tags used to organize, track, or control access for this resource. + */ + public fun tags(vararg tags: CfnTag) + + /** + * @param type The type of ID namespace. There are two types: `SOURCE` and `TARGET` . + * The `SOURCE` contains configurations for `sourceId` data that will be processed in an ID + * mapping workflow. + * + * The `TARGET` contains a configuration of `targetId` to which all `sourceIds` will resolve to. + */ + public fun type(type: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.entityresolution.CfnIdNamespaceProps.Builder = + software.amazon.awscdk.services.entityresolution.CfnIdNamespaceProps.builder() + + /** + * @param description The description of the ID namespace. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * @param idMappingWorkflowProperties Determines the properties of `IdMappingWorflow` where this + * `IdNamespace` can be used as a `Source` or a `Target` . + */ + override fun idMappingWorkflowProperties(idMappingWorkflowProperties: IResolvable) { + cdkBuilder.idMappingWorkflowProperties(idMappingWorkflowProperties.let(IResolvable::unwrap)) + } + + /** + * @param idMappingWorkflowProperties Determines the properties of `IdMappingWorflow` where this + * `IdNamespace` can be used as a `Source` or a `Target` . + */ + override fun idMappingWorkflowProperties(idMappingWorkflowProperties: List) { + cdkBuilder.idMappingWorkflowProperties(idMappingWorkflowProperties.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param idMappingWorkflowProperties Determines the properties of `IdMappingWorflow` where this + * `IdNamespace` can be used as a `Source` or a `Target` . + */ + override fun idMappingWorkflowProperties(vararg idMappingWorkflowProperties: Any): Unit = + idMappingWorkflowProperties(idMappingWorkflowProperties.toList()) + + /** + * @param idNamespaceName The name of the ID namespace. + */ + override fun idNamespaceName(idNamespaceName: String) { + cdkBuilder.idNamespaceName(idNamespaceName) + } + + /** + * @param inputSourceConfig A list of `InputSource` objects, which have the fields + * `InputSourceARN` and `SchemaName` . + */ + override fun inputSourceConfig(inputSourceConfig: IResolvable) { + cdkBuilder.inputSourceConfig(inputSourceConfig.let(IResolvable::unwrap)) + } + + /** + * @param inputSourceConfig A list of `InputSource` objects, which have the fields + * `InputSourceARN` and `SchemaName` . + */ + override fun inputSourceConfig(inputSourceConfig: List) { + cdkBuilder.inputSourceConfig(inputSourceConfig.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param inputSourceConfig A list of `InputSource` objects, which have the fields + * `InputSourceARN` and `SchemaName` . + */ + override fun inputSourceConfig(vararg inputSourceConfig: Any): Unit = + inputSourceConfig(inputSourceConfig.toList()) + + /** + * @param roleArn The Amazon Resource Name (ARN) of the IAM role. + * AWS Entity Resolution assumes this role to access the resources defined in this `IdNamespace` + * on your behalf as part of the workflow run. + */ + override fun roleArn(roleArn: String) { + cdkBuilder.roleArn(roleArn) + } + + /** + * @param tags The tags used to organize, track, or control access for this resource. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * @param tags The tags used to organize, track, or control access for this resource. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + /** + * @param type The type of ID namespace. There are two types: `SOURCE` and `TARGET` . + * The `SOURCE` contains configurations for `sourceId` data that will be processed in an ID + * mapping workflow. + * + * The `TARGET` contains a configuration of `targetId` to which all `sourceIds` will resolve to. + */ + override fun type(type: String) { + cdkBuilder.type(type) + } + + public fun build(): software.amazon.awscdk.services.entityresolution.CfnIdNamespaceProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.entityresolution.CfnIdNamespaceProps, + ) : CdkObject(cdkObject), CfnIdNamespaceProps { + /** + * The description of the ID namespace. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-description) + */ + override fun description(): String? = unwrap(this).getDescription() + + /** + * Determines the properties of `IdMappingWorflow` where this `IdNamespace` can be used as a + * `Source` or a `Target` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-idmappingworkflowproperties) + */ + override fun idMappingWorkflowProperties(): Any? = unwrap(this).getIdMappingWorkflowProperties() + + /** + * The name of the ID namespace. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-idnamespacename) + */ + override fun idNamespaceName(): String = unwrap(this).getIdNamespaceName() + + /** + * A list of `InputSource` objects, which have the fields `InputSourceARN` and `SchemaName` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-inputsourceconfig) + */ + override fun inputSourceConfig(): Any? = unwrap(this).getInputSourceConfig() + + /** + * The Amazon Resource Name (ARN) of the IAM role. + * + * AWS Entity Resolution assumes this role to access the resources defined in this `IdNamespace` + * on your behalf as part of the workflow run. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-rolearn) + */ + override fun roleArn(): String? = unwrap(this).getRoleArn() + + /** + * The tags used to organize, track, or control access for this resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-tags) + */ + override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * The type of ID namespace. There are two types: `SOURCE` and `TARGET` . + * + * The `SOURCE` contains configurations for `sourceId` data that will be processed in an ID + * mapping workflow. + * + * The `TARGET` contains a configuration of `targetId` to which all `sourceIds` will resolve to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-idnamespace.html#cfn-entityresolution-idnamespace-type) + */ + override fun type(): String = unwrap(this).getType() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnIdNamespaceProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.entityresolution.CfnIdNamespaceProps): + CfnIdNamespaceProps = CdkObjectWrappers.wrap(cdkObject) as? CfnIdNamespaceProps ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnIdNamespaceProps): + software.amazon.awscdk.services.entityresolution.CfnIdNamespaceProps = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.entityresolution.CfnIdNamespaceProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/entityresolution/CfnMatchingWorkflow.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/entityresolution/CfnMatchingWorkflow.kt index 78896292ca..c8b0a84cf4 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/entityresolution/CfnMatchingWorkflow.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/entityresolution/CfnMatchingWorkflow.kt @@ -1506,7 +1506,7 @@ public open class CfnMatchingWorkflow( /** * The type of matching. * - * There are two types of matching: `RULE_MATCHING` and `ML_MATCHING` . + * There are three types of matching: `RULE_MATCHING` , `ML_MATCHING` , and `PROVIDER` . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-matchingworkflow-resolutiontechniques.html#cfn-entityresolution-matchingworkflow-resolutiontechniques-resolutiontype) */ @@ -1545,7 +1545,7 @@ public open class CfnMatchingWorkflow( /** * @param resolutionType The type of matching. - * There are two types of matching: `RULE_MATCHING` and `ML_MATCHING` . + * There are three types of matching: `RULE_MATCHING` , `ML_MATCHING` , and `PROVIDER` . */ public fun resolutionType(resolutionType: String) @@ -1602,7 +1602,7 @@ public open class CfnMatchingWorkflow( /** * @param resolutionType The type of matching. - * There are two types of matching: `RULE_MATCHING` and `ML_MATCHING` . + * There are three types of matching: `RULE_MATCHING` , `ML_MATCHING` , and `PROVIDER` . */ override fun resolutionType(resolutionType: String) { cdkBuilder.resolutionType(resolutionType) @@ -1652,7 +1652,7 @@ public open class CfnMatchingWorkflow( /** * The type of matching. * - * There are two types of matching: `RULE_MATCHING` and `ML_MATCHING` . + * There are three types of matching: `RULE_MATCHING` , `ML_MATCHING` , and `PROVIDER` . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-matchingworkflow-resolutiontechniques.html#cfn-entityresolution-matchingworkflow-resolutiontechniques-resolutiontype) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/entityresolution/CfnPolicyStatement.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/entityresolution/CfnPolicyStatement.kt new file mode 100644 index 0000000000..46bef60651 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/entityresolution/CfnPolicyStatement.kt @@ -0,0 +1,348 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.entityresolution + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * Adds a policy statement object. + * + * To retrieve a list of existing policy statements, use the `GetPolicy` API. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.entityresolution.*; + * CfnPolicyStatement cfnPolicyStatement = CfnPolicyStatement.Builder.create(this, + * "MyCfnPolicyStatement") + * .arn("arn") + * .statementId("statementId") + * // the properties below are optional + * .action(List.of("action")) + * .condition("condition") + * .effect("effect") + * .principal(List.of("principal")) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-policystatement.html) + */ +public open class CfnPolicyStatement( + cdkObject: software.amazon.awscdk.services.entityresolution.CfnPolicyStatement, +) : CfnResource(cdkObject), IInspectable { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnPolicyStatementProps, + ) : + this(software.amazon.awscdk.services.entityresolution.CfnPolicyStatement(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnPolicyStatementProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnPolicyStatementProps.Builder.() -> Unit, + ) : this(scope, id, CfnPolicyStatementProps(props) + ) + + /** + * The action that the principal can use on the resource. + */ + public open fun action(): List = unwrap(this).getAction() ?: emptyList() + + /** + * The action that the principal can use on the resource. + */ + public open fun action(`value`: List) { + unwrap(this).setAction(`value`) + } + + /** + * The action that the principal can use on the resource. + */ + public open fun action(vararg `value`: String): Unit = action(`value`.toList()) + + /** + * The Amazon Resource Name (ARN) of the resource that will be accessed by the principal. + */ + public open fun arn(): String = unwrap(this).getArn() + + /** + * The Amazon Resource Name (ARN) of the resource that will be accessed by the principal. + */ + public open fun arn(`value`: String) { + unwrap(this).setArn(`value`) + } + + /** + * A set of condition keys that you can use in key policies. + */ + public open fun condition(): String? = unwrap(this).getCondition() + + /** + * A set of condition keys that you can use in key policies. + */ + public open fun condition(`value`: String) { + unwrap(this).setCondition(`value`) + } + + /** + * Determines whether the permissions specified in the policy are to be allowed ( `Allow` ) or + * denied ( `Deny` ). + */ + public open fun effect(): String? = unwrap(this).getEffect() + + /** + * Determines whether the permissions specified in the policy are to be allowed ( `Allow` ) or + * denied ( `Deny` ). + */ + public open fun effect(`value`: String) { + unwrap(this).setEffect(`value`) + } + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * The AWS service or AWS account that can access the resource defined as ARN. + */ + public open fun principal(): List = unwrap(this).getPrincipal() ?: emptyList() + + /** + * The AWS service or AWS account that can access the resource defined as ARN. + */ + public open fun principal(`value`: List) { + unwrap(this).setPrincipal(`value`) + } + + /** + * The AWS service or AWS account that can access the resource defined as ARN. + */ + public open fun principal(vararg `value`: String): Unit = principal(`value`.toList()) + + /** + * A statement identifier that differentiates the statement from others in the same policy. + */ + public open fun statementId(): String = unwrap(this).getStatementId() + + /** + * A statement identifier that differentiates the statement from others in the same policy. + */ + public open fun statementId(`value`: String) { + unwrap(this).setStatementId(`value`) + } + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.entityresolution.CfnPolicyStatement]. + */ + @CdkDslMarker + public interface Builder { + /** + * The action that the principal can use on the resource. + * + * For example, `entityresolution:GetIdMappingJob` , `entityresolution:GetMatchingJob` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-policystatement.html#cfn-entityresolution-policystatement-action) + * @param action The action that the principal can use on the resource. + */ + public fun action(action: List) + + /** + * The action that the principal can use on the resource. + * + * For example, `entityresolution:GetIdMappingJob` , `entityresolution:GetMatchingJob` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-policystatement.html#cfn-entityresolution-policystatement-action) + * @param action The action that the principal can use on the resource. + */ + public fun action(vararg action: String) + + /** + * The Amazon Resource Name (ARN) of the resource that will be accessed by the principal. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-policystatement.html#cfn-entityresolution-policystatement-arn) + * @param arn The Amazon Resource Name (ARN) of the resource that will be accessed by the + * principal. + */ + public fun arn(arn: String) + + /** + * A set of condition keys that you can use in key policies. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-policystatement.html#cfn-entityresolution-policystatement-condition) + * @param condition A set of condition keys that you can use in key policies. + */ + public fun condition(condition: String) + + /** + * Determines whether the permissions specified in the policy are to be allowed ( `Allow` ) or + * denied ( `Deny` ). + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-policystatement.html#cfn-entityresolution-policystatement-effect) + * @param effect Determines whether the permissions specified in the policy are to be allowed ( + * `Allow` ) or denied ( `Deny` ). + */ + public fun effect(effect: String) + + /** + * The AWS service or AWS account that can access the resource defined as ARN. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-policystatement.html#cfn-entityresolution-policystatement-principal) + * @param principal The AWS service or AWS account that can access the resource defined as ARN. + */ + public fun principal(principal: List) + + /** + * The AWS service or AWS account that can access the resource defined as ARN. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-policystatement.html#cfn-entityresolution-policystatement-principal) + * @param principal The AWS service or AWS account that can access the resource defined as ARN. + */ + public fun principal(vararg principal: String) + + /** + * A statement identifier that differentiates the statement from others in the same policy. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-policystatement.html#cfn-entityresolution-policystatement-statementid) + * @param statementId A statement identifier that differentiates the statement from others in + * the same policy. + */ + public fun statementId(statementId: String) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.entityresolution.CfnPolicyStatement.Builder = + software.amazon.awscdk.services.entityresolution.CfnPolicyStatement.Builder.create(scope, + id) + + /** + * The action that the principal can use on the resource. + * + * For example, `entityresolution:GetIdMappingJob` , `entityresolution:GetMatchingJob` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-policystatement.html#cfn-entityresolution-policystatement-action) + * @param action The action that the principal can use on the resource. + */ + override fun action(action: List) { + cdkBuilder.action(action) + } + + /** + * The action that the principal can use on the resource. + * + * For example, `entityresolution:GetIdMappingJob` , `entityresolution:GetMatchingJob` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-policystatement.html#cfn-entityresolution-policystatement-action) + * @param action The action that the principal can use on the resource. + */ + override fun action(vararg action: String): Unit = action(action.toList()) + + /** + * The Amazon Resource Name (ARN) of the resource that will be accessed by the principal. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-policystatement.html#cfn-entityresolution-policystatement-arn) + * @param arn The Amazon Resource Name (ARN) of the resource that will be accessed by the + * principal. + */ + override fun arn(arn: String) { + cdkBuilder.arn(arn) + } + + /** + * A set of condition keys that you can use in key policies. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-policystatement.html#cfn-entityresolution-policystatement-condition) + * @param condition A set of condition keys that you can use in key policies. + */ + override fun condition(condition: String) { + cdkBuilder.condition(condition) + } + + /** + * Determines whether the permissions specified in the policy are to be allowed ( `Allow` ) or + * denied ( `Deny` ). + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-policystatement.html#cfn-entityresolution-policystatement-effect) + * @param effect Determines whether the permissions specified in the policy are to be allowed ( + * `Allow` ) or denied ( `Deny` ). + */ + override fun effect(effect: String) { + cdkBuilder.effect(effect) + } + + /** + * The AWS service or AWS account that can access the resource defined as ARN. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-policystatement.html#cfn-entityresolution-policystatement-principal) + * @param principal The AWS service or AWS account that can access the resource defined as ARN. + */ + override fun principal(principal: List) { + cdkBuilder.principal(principal) + } + + /** + * The AWS service or AWS account that can access the resource defined as ARN. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-policystatement.html#cfn-entityresolution-policystatement-principal) + * @param principal The AWS service or AWS account that can access the resource defined as ARN. + */ + override fun principal(vararg principal: String): Unit = principal(principal.toList()) + + /** + * A statement identifier that differentiates the statement from others in the same policy. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-policystatement.html#cfn-entityresolution-policystatement-statementid) + * @param statementId A statement identifier that differentiates the statement from others in + * the same policy. + */ + override fun statementId(statementId: String) { + cdkBuilder.statementId(statementId) + } + + public fun build(): software.amazon.awscdk.services.entityresolution.CfnPolicyStatement = + cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.entityresolution.CfnPolicyStatement.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnPolicyStatement { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnPolicyStatement(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.entityresolution.CfnPolicyStatement): + CfnPolicyStatement = CfnPolicyStatement(cdkObject) + + internal fun unwrap(wrapped: CfnPolicyStatement): + software.amazon.awscdk.services.entityresolution.CfnPolicyStatement = wrapped.cdkObject as + software.amazon.awscdk.services.entityresolution.CfnPolicyStatement + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/entityresolution/CfnPolicyStatementProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/entityresolution/CfnPolicyStatementProps.kt new file mode 100644 index 0000000000..ab1018596f --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/entityresolution/CfnPolicyStatementProps.kt @@ -0,0 +1,262 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.entityresolution + +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.String +import kotlin.Unit +import kotlin.collections.List + +/** + * Properties for defining a `CfnPolicyStatement`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.entityresolution.*; + * CfnPolicyStatementProps cfnPolicyStatementProps = CfnPolicyStatementProps.builder() + * .arn("arn") + * .statementId("statementId") + * // the properties below are optional + * .action(List.of("action")) + * .condition("condition") + * .effect("effect") + * .principal(List.of("principal")) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-policystatement.html) + */ +public interface CfnPolicyStatementProps { + /** + * The action that the principal can use on the resource. + * + * For example, `entityresolution:GetIdMappingJob` , `entityresolution:GetMatchingJob` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-policystatement.html#cfn-entityresolution-policystatement-action) + */ + public fun action(): List = unwrap(this).getAction() ?: emptyList() + + /** + * The Amazon Resource Name (ARN) of the resource that will be accessed by the principal. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-policystatement.html#cfn-entityresolution-policystatement-arn) + */ + public fun arn(): String + + /** + * A set of condition keys that you can use in key policies. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-policystatement.html#cfn-entityresolution-policystatement-condition) + */ + public fun condition(): String? = unwrap(this).getCondition() + + /** + * Determines whether the permissions specified in the policy are to be allowed ( `Allow` ) or + * denied ( `Deny` ). + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-policystatement.html#cfn-entityresolution-policystatement-effect) + */ + public fun effect(): String? = unwrap(this).getEffect() + + /** + * The AWS service or AWS account that can access the resource defined as ARN. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-policystatement.html#cfn-entityresolution-policystatement-principal) + */ + public fun principal(): List = unwrap(this).getPrincipal() ?: emptyList() + + /** + * A statement identifier that differentiates the statement from others in the same policy. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-policystatement.html#cfn-entityresolution-policystatement-statementid) + */ + public fun statementId(): String + + /** + * A builder for [CfnPolicyStatementProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param action The action that the principal can use on the resource. + * For example, `entityresolution:GetIdMappingJob` , `entityresolution:GetMatchingJob` . + */ + public fun action(action: List) + + /** + * @param action The action that the principal can use on the resource. + * For example, `entityresolution:GetIdMappingJob` , `entityresolution:GetMatchingJob` . + */ + public fun action(vararg action: String) + + /** + * @param arn The Amazon Resource Name (ARN) of the resource that will be accessed by the + * principal. + */ + public fun arn(arn: String) + + /** + * @param condition A set of condition keys that you can use in key policies. + */ + public fun condition(condition: String) + + /** + * @param effect Determines whether the permissions specified in the policy are to be allowed ( + * `Allow` ) or denied ( `Deny` ). + */ + public fun effect(effect: String) + + /** + * @param principal The AWS service or AWS account that can access the resource defined as ARN. + */ + public fun principal(principal: List) + + /** + * @param principal The AWS service or AWS account that can access the resource defined as ARN. + */ + public fun principal(vararg principal: String) + + /** + * @param statementId A statement identifier that differentiates the statement from others in + * the same policy. + */ + public fun statementId(statementId: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.entityresolution.CfnPolicyStatementProps.Builder = + software.amazon.awscdk.services.entityresolution.CfnPolicyStatementProps.builder() + + /** + * @param action The action that the principal can use on the resource. + * For example, `entityresolution:GetIdMappingJob` , `entityresolution:GetMatchingJob` . + */ + override fun action(action: List) { + cdkBuilder.action(action) + } + + /** + * @param action The action that the principal can use on the resource. + * For example, `entityresolution:GetIdMappingJob` , `entityresolution:GetMatchingJob` . + */ + override fun action(vararg action: String): Unit = action(action.toList()) + + /** + * @param arn The Amazon Resource Name (ARN) of the resource that will be accessed by the + * principal. + */ + override fun arn(arn: String) { + cdkBuilder.arn(arn) + } + + /** + * @param condition A set of condition keys that you can use in key policies. + */ + override fun condition(condition: String) { + cdkBuilder.condition(condition) + } + + /** + * @param effect Determines whether the permissions specified in the policy are to be allowed ( + * `Allow` ) or denied ( `Deny` ). + */ + override fun effect(effect: String) { + cdkBuilder.effect(effect) + } + + /** + * @param principal The AWS service or AWS account that can access the resource defined as ARN. + */ + override fun principal(principal: List) { + cdkBuilder.principal(principal) + } + + /** + * @param principal The AWS service or AWS account that can access the resource defined as ARN. + */ + override fun principal(vararg principal: String): Unit = principal(principal.toList()) + + /** + * @param statementId A statement identifier that differentiates the statement from others in + * the same policy. + */ + override fun statementId(statementId: String) { + cdkBuilder.statementId(statementId) + } + + public fun build(): software.amazon.awscdk.services.entityresolution.CfnPolicyStatementProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.entityresolution.CfnPolicyStatementProps, + ) : CdkObject(cdkObject), CfnPolicyStatementProps { + /** + * The action that the principal can use on the resource. + * + * For example, `entityresolution:GetIdMappingJob` , `entityresolution:GetMatchingJob` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-policystatement.html#cfn-entityresolution-policystatement-action) + */ + override fun action(): List = unwrap(this).getAction() ?: emptyList() + + /** + * The Amazon Resource Name (ARN) of the resource that will be accessed by the principal. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-policystatement.html#cfn-entityresolution-policystatement-arn) + */ + override fun arn(): String = unwrap(this).getArn() + + /** + * A set of condition keys that you can use in key policies. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-policystatement.html#cfn-entityresolution-policystatement-condition) + */ + override fun condition(): String? = unwrap(this).getCondition() + + /** + * Determines whether the permissions specified in the policy are to be allowed ( `Allow` ) or + * denied ( `Deny` ). + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-policystatement.html#cfn-entityresolution-policystatement-effect) + */ + override fun effect(): String? = unwrap(this).getEffect() + + /** + * The AWS service or AWS account that can access the resource defined as ARN. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-policystatement.html#cfn-entityresolution-policystatement-principal) + */ + override fun principal(): List = unwrap(this).getPrincipal() ?: emptyList() + + /** + * A statement identifier that differentiates the statement from others in the same policy. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-entityresolution-policystatement.html#cfn-entityresolution-policystatement-statementid) + */ + override fun statementId(): String = unwrap(this).getStatementId() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnPolicyStatementProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.entityresolution.CfnPolicyStatementProps): + CfnPolicyStatementProps = CdkObjectWrappers.wrap(cdkObject) as? CfnPolicyStatementProps ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnPolicyStatementProps): + software.amazon.awscdk.services.entityresolution.CfnPolicyStatementProps = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.entityresolution.CfnPolicyStatementProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/entityresolution/CfnSchemaMapping.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/entityresolution/CfnSchemaMapping.kt index f6810c49f3..465725e11f 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/entityresolution/CfnSchemaMapping.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/entityresolution/CfnSchemaMapping.kt @@ -358,7 +358,7 @@ public open class CfnSchemaMapping( } /** - * An object containing `FieldName` , `Type` , `GroupName` , and `MatchKey` . + * An object containing `FieldName` , `Type` , `GroupName` , `MatchKey` , and `SubType` . * * Example: * @@ -388,12 +388,12 @@ public open class CfnSchemaMapping( public fun fieldName(): String /** - * Instruct AWS Entity Resolution to combine several columns into a unified column with the - * identical attribute type. + * A string that instructs AWS Entity Resolution to combine several columns into a unified + * column with the identical attribute type. * - * For example, when working with columns such as first_name, middle_name, and last_name, - * assigning them a common `GroupName` will prompt AWS Entity Resolution to concatenate them into a - * single value. + * For example, when working with columns such as `first_name` , `middle_name` , and `last_name` + * , assigning them a common `groupName` will prompt AWS Entity Resolution to concatenate them into + * a single value. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-schemamapping-schemainputattribute.html#cfn-entityresolution-schemamapping-schemainputattribute-groupname) */ @@ -402,10 +402,10 @@ public open class CfnSchemaMapping( /** * A key that allows grouping of multiple input attributes into a unified matching group. * - * For example, let's consider a scenario where the source table contains various addresses, - * such as `business_address` and `shipping_address` . By assigning the `MatchKey` *Address* to - * both attributes, AWS Entity Resolution will match records across these fields to create a - * consolidated matching group. If no `MatchKey` is specified for a column, it won't be utilized + * For example, consider a scenario where the source table contains various addresses, such as + * `business_address` and `shipping_address` . By assigning a `matchKey` called `address` to both + * attributes, AWS Entity Resolution will match records across these fields to create a + * consolidated matching group. If no `matchKey` is specified for a column, it won't be utilized * for matching purposes but will still be included in the output table. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-schemamapping-schemainputattribute.html#cfn-entityresolution-schemamapping-schemainputattribute-matchkey) @@ -437,21 +437,21 @@ public open class CfnSchemaMapping( public fun fieldName(fieldName: String) /** - * @param groupName Instruct AWS Entity Resolution to combine several columns into a unified - * column with the identical attribute type. - * For example, when working with columns such as first_name, middle_name, and last_name, - * assigning them a common `GroupName` will prompt AWS Entity Resolution to concatenate them into - * a single value. + * @param groupName A string that instructs AWS Entity Resolution to combine several columns + * into a unified column with the identical attribute type. + * For example, when working with columns such as `first_name` , `middle_name` , and + * `last_name` , assigning them a common `groupName` will prompt AWS Entity Resolution to + * concatenate them into a single value. */ public fun groupName(groupName: String) /** * @param matchKey A key that allows grouping of multiple input attributes into a unified * matching group. - * For example, let's consider a scenario where the source table contains various addresses, - * such as `business_address` and `shipping_address` . By assigning the `MatchKey` *Address* to - * both attributes, AWS Entity Resolution will match records across these fields to create a - * consolidated matching group. If no `MatchKey` is specified for a column, it won't be utilized + * For example, consider a scenario where the source table contains various addresses, such as + * `business_address` and `shipping_address` . By assigning a `matchKey` called `address` to both + * attributes, AWS Entity Resolution will match records across these fields to create a + * consolidated matching group. If no `matchKey` is specified for a column, it won't be utilized * for matching purposes but will still be included in the output table. */ public fun matchKey(matchKey: String) @@ -481,11 +481,11 @@ public open class CfnSchemaMapping( } /** - * @param groupName Instruct AWS Entity Resolution to combine several columns into a unified - * column with the identical attribute type. - * For example, when working with columns such as first_name, middle_name, and last_name, - * assigning them a common `GroupName` will prompt AWS Entity Resolution to concatenate them into - * a single value. + * @param groupName A string that instructs AWS Entity Resolution to combine several columns + * into a unified column with the identical attribute type. + * For example, when working with columns such as `first_name` , `middle_name` , and + * `last_name` , assigning them a common `groupName` will prompt AWS Entity Resolution to + * concatenate them into a single value. */ override fun groupName(groupName: String) { cdkBuilder.groupName(groupName) @@ -494,10 +494,10 @@ public open class CfnSchemaMapping( /** * @param matchKey A key that allows grouping of multiple input attributes into a unified * matching group. - * For example, let's consider a scenario where the source table contains various addresses, - * such as `business_address` and `shipping_address` . By assigning the `MatchKey` *Address* to - * both attributes, AWS Entity Resolution will match records across these fields to create a - * consolidated matching group. If no `MatchKey` is specified for a column, it won't be utilized + * For example, consider a scenario where the source table contains various addresses, such as + * `business_address` and `shipping_address` . By assigning a `matchKey` called `address` to both + * attributes, AWS Entity Resolution will match records across these fields to create a + * consolidated matching group. If no `matchKey` is specified for a column, it won't be utilized * for matching purposes but will still be included in the output table. */ override fun matchKey(matchKey: String) { @@ -534,12 +534,12 @@ public open class CfnSchemaMapping( override fun fieldName(): String = unwrap(this).getFieldName() /** - * Instruct AWS Entity Resolution to combine several columns into a unified column with the - * identical attribute type. + * A string that instructs AWS Entity Resolution to combine several columns into a unified + * column with the identical attribute type. * - * For example, when working with columns such as first_name, middle_name, and last_name, - * assigning them a common `GroupName` will prompt AWS Entity Resolution to concatenate them into - * a single value. + * For example, when working with columns such as `first_name` , `middle_name` , and + * `last_name` , assigning them a common `groupName` will prompt AWS Entity Resolution to + * concatenate them into a single value. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-schemamapping-schemainputattribute.html#cfn-entityresolution-schemamapping-schemainputattribute-groupname) */ @@ -548,10 +548,10 @@ public open class CfnSchemaMapping( /** * A key that allows grouping of multiple input attributes into a unified matching group. * - * For example, let's consider a scenario where the source table contains various addresses, - * such as `business_address` and `shipping_address` . By assigning the `MatchKey` *Address* to - * both attributes, AWS Entity Resolution will match records across these fields to create a - * consolidated matching group. If no `MatchKey` is specified for a column, it won't be utilized + * For example, consider a scenario where the source table contains various addresses, such as + * `business_address` and `shipping_address` . By assigning a `matchKey` called `address` to both + * attributes, AWS Entity Resolution will match records across these fields to create a + * consolidated matching group. If no `matchKey` is specified for a column, it won't be utilized * for matching purposes but will still be included in the output table. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-entityresolution-schemamapping-schemainputattribute.html#cfn-entityresolution-schemamapping-schemainputattribute-matchkey) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/events/EventField.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/events/EventField.kt index cd91492311..52d9588258 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/events/EventField.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/events/EventField.kt @@ -59,7 +59,7 @@ public open class EventField( /** * Convert the path to the field in the event pattern to JSON. */ - public open fun toJson(): String = unwrap(this).toJSON() + public open fun toJSON(): String = unwrap(this).toJSON() public companion object { public fun account(): String = software.amazon.awscdk.services.events.EventField.getAccount() diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/events/targets/ApiGateway.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/events/targets/ApiGateway.kt index 5406e60243..c8286315e4 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/events/targets/ApiGateway.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/events/targets/ApiGateway.kt @@ -5,19 +5,21 @@ package io.cloudshiftdev.awscdk.services.events.targets import io.cloudshiftdev.awscdk.Duration import io.cloudshiftdev.awscdk.common.CdkDslMarker import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.services.apigateway.RestApi import io.cloudshiftdev.awscdk.services.events.IRule import io.cloudshiftdev.awscdk.services.events.IRuleTarget import io.cloudshiftdev.awscdk.services.events.RuleTargetConfig import io.cloudshiftdev.awscdk.services.events.RuleTargetInput import io.cloudshiftdev.awscdk.services.iam.IRole import io.cloudshiftdev.awscdk.services.sqs.IQueue +import kotlin.Deprecated import kotlin.Number import kotlin.String import kotlin.Unit import kotlin.collections.List import kotlin.collections.Map -import io.cloudshiftdev.awscdk.services.apigateway.RestApi as CloudshiftdevAwscdkServicesApigatewayRestApi -import software.amazon.awscdk.services.apigateway.RestApi as AmazonAwscdkServicesApigatewayRestApi +import io.cloudshiftdev.awscdk.services.apigateway.IRestApi as CloudshiftdevAwscdkServicesApigatewayIRestApi +import software.amazon.awscdk.services.apigateway.IRestApi as AmazonAwscdkServicesApigatewayIRestApi /** * Use an API Gateway REST APIs as a target for Amazon EventBridge rules. @@ -54,17 +56,17 @@ import software.amazon.awscdk.services.apigateway.RestApi as AmazonAwscdkService public open class ApiGateway( cdkObject: software.amazon.awscdk.services.events.targets.ApiGateway, ) : CdkObject(cdkObject), IRuleTarget { - public constructor(restApi: CloudshiftdevAwscdkServicesApigatewayRestApi) : - this(software.amazon.awscdk.services.events.targets.ApiGateway(restApi.let(CloudshiftdevAwscdkServicesApigatewayRestApi::unwrap)) + public constructor(restApi: CloudshiftdevAwscdkServicesApigatewayIRestApi) : + this(software.amazon.awscdk.services.events.targets.ApiGateway(restApi.let(CloudshiftdevAwscdkServicesApigatewayIRestApi::unwrap)) ) - public constructor(restApi: CloudshiftdevAwscdkServicesApigatewayRestApi, props: ApiGatewayProps) + public constructor(restApi: CloudshiftdevAwscdkServicesApigatewayIRestApi, props: ApiGatewayProps) : - this(software.amazon.awscdk.services.events.targets.ApiGateway(restApi.let(CloudshiftdevAwscdkServicesApigatewayRestApi::unwrap), + this(software.amazon.awscdk.services.events.targets.ApiGateway(restApi.let(CloudshiftdevAwscdkServicesApigatewayIRestApi::unwrap), props.let(ApiGatewayProps::unwrap)) ) - public constructor(restApi: CloudshiftdevAwscdkServicesApigatewayRestApi, + public constructor(restApi: CloudshiftdevAwscdkServicesApigatewayIRestApi, props: ApiGatewayProps.Builder.() -> Unit) : this(restApi, ApiGatewayProps(props) ) @@ -91,10 +93,16 @@ public open class ApiGateway( unwrap(this).bind(rule.let(IRule::unwrap), id).let(RuleTargetConfig::wrap) /** - * + * Returns the target IRestApi. + */ + public open fun iRestApi(): CloudshiftdevAwscdkServicesApigatewayIRestApi = + unwrap(this).getIRestApi().let(CloudshiftdevAwscdkServicesApigatewayIRestApi::wrap) + + /** + * @deprecated Use the `iRestApi` getter instead */ - public open fun restApi(): CloudshiftdevAwscdkServicesApigatewayRestApi = - unwrap(this).getRestApi().let(CloudshiftdevAwscdkServicesApigatewayRestApi::wrap) + @Deprecated(message = "deprecated in CDK") + public open fun restApi(): RestApi = unwrap(this).getRestApi().let(RestApi::wrap) /** * A fluent builder for [io.cloudshiftdev.awscdk.services.events.targets.ApiGateway]. @@ -237,7 +245,7 @@ public open class ApiGateway( } private class BuilderImpl( - restApi: AmazonAwscdkServicesApigatewayRestApi, + restApi: AmazonAwscdkServicesApigatewayIRestApi, ) : Builder { private val cdkBuilder: software.amazon.awscdk.services.events.targets.ApiGateway.Builder = software.amazon.awscdk.services.events.targets.ApiGateway.Builder.create(restApi) @@ -404,9 +412,9 @@ public open class ApiGateway( } public companion object { - public operator fun invoke(restApi: CloudshiftdevAwscdkServicesApigatewayRestApi, + public operator fun invoke(restApi: CloudshiftdevAwscdkServicesApigatewayIRestApi, block: Builder.() -> Unit = {}): ApiGateway { - val builderImpl = BuilderImpl(CloudshiftdevAwscdkServicesApigatewayRestApi.unwrap(restApi)) + val builderImpl = BuilderImpl(CloudshiftdevAwscdkServicesApigatewayIRestApi.unwrap(restApi)) return ApiGateway(builderImpl.apply(block).build()) } diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/globalaccelerator/CfnCrossAccountAttachment.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/globalaccelerator/CfnCrossAccountAttachment.kt new file mode 100644 index 0000000000..1cab3984e8 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/globalaccelerator/CfnCrossAccountAttachment.kt @@ -0,0 +1,474 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.globalaccelerator + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.ITaggableV2 +import io.cloudshiftdev.awscdk.TagManager +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * Create a cross-account attachment in AWS Global Accelerator . + * + * You create a cross-account attachment to specify the *principals* who have permission to work + * with *resources* in accelerators in their own account. You specify, in the same attachment, the + * resources that are shared. + * + * A principal can be an AWS account number or the Amazon Resource Name (ARN) for an accelerator. + * For account numbers that are listed as principals, to work with a resource listed in the attachment, + * you must sign in to an account specified as a principal. Then, you can work with resources that are + * listed, with any of your accelerators. If an accelerator ARN is listed in the cross-account + * attachment as a principal, anyone with permission to make updates to the accelerator can work with + * resources that are listed in the attachment. + * + * Specify each principal and resource separately. To specify two CIDR address pools, list them + * individually under `Resources` , and so on. For a command line operation, for example, you might use + * a statement like the following: + * + * `"Resources": [{"Cidr": "169.254.60.0/24"},{"Cidr": "169.254.59.0/24"}]` + * + * For more information, see [Working with cross-account attachments and resources in AWS Global + * Accelerator](https://docs.aws.amazon.com/global-accelerator/latest/dg/cross-account-resources.html) + * in the *AWS Global Accelerator Developer Guide* . + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.globalaccelerator.*; + * CfnCrossAccountAttachment cfnCrossAccountAttachment = + * CfnCrossAccountAttachment.Builder.create(this, "MyCfnCrossAccountAttachment") + * .name("name") + * // the properties below are optional + * .principals(List.of("principals")) + * .resources(List.of(ResourceProperty.builder() + * .endpointId("endpointId") + * // the properties below are optional + * .region("region") + * .build())) + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html) + */ +public open class CfnCrossAccountAttachment( + cdkObject: software.amazon.awscdk.services.globalaccelerator.CfnCrossAccountAttachment, +) : CfnResource(cdkObject), IInspectable, ITaggableV2 { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnCrossAccountAttachmentProps, + ) : + this(software.amazon.awscdk.services.globalaccelerator.CfnCrossAccountAttachment(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnCrossAccountAttachmentProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnCrossAccountAttachmentProps.Builder.() -> Unit, + ) : this(scope, id, CfnCrossAccountAttachmentProps(props) + ) + + /** + * The Amazon Resource Name (ARN) of the attachment. + */ + public open fun attrAttachmentArn(): String = unwrap(this).getAttrAttachmentArn() + + /** + * Tag Manager which manages the tags for this resource. + */ + public override fun cdkTagManager(): TagManager = + unwrap(this).getCdkTagManager().let(TagManager::wrap) + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * The Friendly identifier of the attachment. + */ + public open fun name(): String = unwrap(this).getName() + + /** + * The Friendly identifier of the attachment. + */ + public open fun name(`value`: String) { + unwrap(this).setName(`value`) + } + + /** + * Principals to share the resources with. + */ + public open fun principals(): List = unwrap(this).getPrincipals() ?: emptyList() + + /** + * Principals to share the resources with. + */ + public open fun principals(`value`: List) { + unwrap(this).setPrincipals(`value`) + } + + /** + * Principals to share the resources with. + */ + public open fun principals(vararg `value`: String): Unit = principals(`value`.toList()) + + /** + * Resources shared using the attachment. + */ + public open fun resources(): Any? = unwrap(this).getResources() + + /** + * Resources shared using the attachment. + */ + public open fun resources(`value`: IResolvable) { + unwrap(this).setResources(`value`.let(IResolvable::unwrap)) + } + + /** + * Resources shared using the attachment. + */ + public open fun resources(`value`: List) { + unwrap(this).setResources(`value`.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * Resources shared using the attachment. + */ + public open fun resources(vararg `value`: Any): Unit = resources(`value`.toList()) + + /** + * + */ + public open fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * + */ + public open fun tags(`value`: List) { + unwrap(this).setTags(`value`.map(CfnTag::unwrap)) + } + + /** + * + */ + public open fun tags(vararg `value`: CfnTag): Unit = tags(`value`.toList()) + + /** + * A fluent builder for + * [io.cloudshiftdev.awscdk.services.globalaccelerator.CfnCrossAccountAttachment]. + */ + @CdkDslMarker + public interface Builder { + /** + * The Friendly identifier of the attachment. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html#cfn-globalaccelerator-crossaccountattachment-name) + * @param name The Friendly identifier of the attachment. + */ + public fun name(name: String) + + /** + * Principals to share the resources with. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html#cfn-globalaccelerator-crossaccountattachment-principals) + * @param principals Principals to share the resources with. + */ + public fun principals(principals: List) + + /** + * Principals to share the resources with. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html#cfn-globalaccelerator-crossaccountattachment-principals) + * @param principals Principals to share the resources with. + */ + public fun principals(vararg principals: String) + + /** + * Resources shared using the attachment. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html#cfn-globalaccelerator-crossaccountattachment-resources) + * @param resources Resources shared using the attachment. + */ + public fun resources(resources: IResolvable) + + /** + * Resources shared using the attachment. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html#cfn-globalaccelerator-crossaccountattachment-resources) + * @param resources Resources shared using the attachment. + */ + public fun resources(resources: List) + + /** + * Resources shared using the attachment. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html#cfn-globalaccelerator-crossaccountattachment-resources) + * @param resources Resources shared using the attachment. + */ + public fun resources(vararg resources: Any) + + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html#cfn-globalaccelerator-crossaccountattachment-tags) + * @param tags + */ + public fun tags(tags: List) + + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html#cfn-globalaccelerator-crossaccountattachment-tags) + * @param tags + */ + public fun tags(vararg tags: CfnTag) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.globalaccelerator.CfnCrossAccountAttachment.Builder = + software.amazon.awscdk.services.globalaccelerator.CfnCrossAccountAttachment.Builder.create(scope, + id) + + /** + * The Friendly identifier of the attachment. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html#cfn-globalaccelerator-crossaccountattachment-name) + * @param name The Friendly identifier of the attachment. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + /** + * Principals to share the resources with. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html#cfn-globalaccelerator-crossaccountattachment-principals) + * @param principals Principals to share the resources with. + */ + override fun principals(principals: List) { + cdkBuilder.principals(principals) + } + + /** + * Principals to share the resources with. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html#cfn-globalaccelerator-crossaccountattachment-principals) + * @param principals Principals to share the resources with. + */ + override fun principals(vararg principals: String): Unit = principals(principals.toList()) + + /** + * Resources shared using the attachment. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html#cfn-globalaccelerator-crossaccountattachment-resources) + * @param resources Resources shared using the attachment. + */ + override fun resources(resources: IResolvable) { + cdkBuilder.resources(resources.let(IResolvable::unwrap)) + } + + /** + * Resources shared using the attachment. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html#cfn-globalaccelerator-crossaccountattachment-resources) + * @param resources Resources shared using the attachment. + */ + override fun resources(resources: List) { + cdkBuilder.resources(resources.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * Resources shared using the attachment. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html#cfn-globalaccelerator-crossaccountattachment-resources) + * @param resources Resources shared using the attachment. + */ + override fun resources(vararg resources: Any): Unit = resources(resources.toList()) + + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html#cfn-globalaccelerator-crossaccountattachment-tags) + * @param tags + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html#cfn-globalaccelerator-crossaccountattachment-tags) + * @param tags + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + public fun build(): software.amazon.awscdk.services.globalaccelerator.CfnCrossAccountAttachment + = cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.globalaccelerator.CfnCrossAccountAttachment.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnCrossAccountAttachment { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnCrossAccountAttachment(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.globalaccelerator.CfnCrossAccountAttachment): + CfnCrossAccountAttachment = CfnCrossAccountAttachment(cdkObject) + + internal fun unwrap(wrapped: CfnCrossAccountAttachment): + software.amazon.awscdk.services.globalaccelerator.CfnCrossAccountAttachment = + wrapped.cdkObject as + software.amazon.awscdk.services.globalaccelerator.CfnCrossAccountAttachment + } + + /** + * A resource is one of the following: the ARN for an AWS resource that is supported by AWS Global + * Accelerator to be added as an endpoint, or a CIDR range that specifies a bring your own IP (BYOIP) + * address pool. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.globalaccelerator.*; + * ResourceProperty resourceProperty = ResourceProperty.builder() + * .endpointId("endpointId") + * // the properties below are optional + * .region("region") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-crossaccountattachment-resource.html) + */ + public interface ResourceProperty { + /** + * The endpoint ID for the endpoint that is specified as a AWS resource. + * + * An endpoint ID for the cross-account feature is the ARN of an AWS resource, such as a Network + * Load Balancer, that Global Accelerator supports as an endpoint for an accelerator. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-crossaccountattachment-resource.html#cfn-globalaccelerator-crossaccountattachment-resource-endpointid) + */ + public fun endpointId(): String + + /** + * The AWS Region where a shared endpoint resource is located. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-crossaccountattachment-resource.html#cfn-globalaccelerator-crossaccountattachment-resource-region) + */ + public fun region(): String? = unwrap(this).getRegion() + + /** + * A builder for [ResourceProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param endpointId The endpoint ID for the endpoint that is specified as a AWS resource. + * An endpoint ID for the cross-account feature is the ARN of an AWS resource, such as a + * Network Load Balancer, that Global Accelerator supports as an endpoint for an accelerator. + */ + public fun endpointId(endpointId: String) + + /** + * @param region The AWS Region where a shared endpoint resource is located. + */ + public fun region(region: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.globalaccelerator.CfnCrossAccountAttachment.ResourceProperty.Builder + = + software.amazon.awscdk.services.globalaccelerator.CfnCrossAccountAttachment.ResourceProperty.builder() + + /** + * @param endpointId The endpoint ID for the endpoint that is specified as a AWS resource. + * An endpoint ID for the cross-account feature is the ARN of an AWS resource, such as a + * Network Load Balancer, that Global Accelerator supports as an endpoint for an accelerator. + */ + override fun endpointId(endpointId: String) { + cdkBuilder.endpointId(endpointId) + } + + /** + * @param region The AWS Region where a shared endpoint resource is located. + */ + override fun region(region: String) { + cdkBuilder.region(region) + } + + public fun build(): + software.amazon.awscdk.services.globalaccelerator.CfnCrossAccountAttachment.ResourceProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.globalaccelerator.CfnCrossAccountAttachment.ResourceProperty, + ) : CdkObject(cdkObject), ResourceProperty { + /** + * The endpoint ID for the endpoint that is specified as a AWS resource. + * + * An endpoint ID for the cross-account feature is the ARN of an AWS resource, such as a + * Network Load Balancer, that Global Accelerator supports as an endpoint for an accelerator. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-crossaccountattachment-resource.html#cfn-globalaccelerator-crossaccountattachment-resource-endpointid) + */ + override fun endpointId(): String = unwrap(this).getEndpointId() + + /** + * The AWS Region where a shared endpoint resource is located. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-crossaccountattachment-resource.html#cfn-globalaccelerator-crossaccountattachment-resource-region) + */ + override fun region(): String? = unwrap(this).getRegion() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): ResourceProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.globalaccelerator.CfnCrossAccountAttachment.ResourceProperty): + ResourceProperty = CdkObjectWrappers.wrap(cdkObject) as? ResourceProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: ResourceProperty): + software.amazon.awscdk.services.globalaccelerator.CfnCrossAccountAttachment.ResourceProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.globalaccelerator.CfnCrossAccountAttachment.ResourceProperty + } + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/globalaccelerator/CfnCrossAccountAttachmentProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/globalaccelerator/CfnCrossAccountAttachmentProps.kt new file mode 100644 index 0000000000..00db3aa09d --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/globalaccelerator/CfnCrossAccountAttachmentProps.kt @@ -0,0 +1,222 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.globalaccelerator + +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.List + +/** + * Properties for defining a `CfnCrossAccountAttachment`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.globalaccelerator.*; + * CfnCrossAccountAttachmentProps cfnCrossAccountAttachmentProps = + * CfnCrossAccountAttachmentProps.builder() + * .name("name") + * // the properties below are optional + * .principals(List.of("principals")) + * .resources(List.of(ResourceProperty.builder() + * .endpointId("endpointId") + * // the properties below are optional + * .region("region") + * .build())) + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html) + */ +public interface CfnCrossAccountAttachmentProps { + /** + * The Friendly identifier of the attachment. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html#cfn-globalaccelerator-crossaccountattachment-name) + */ + public fun name(): String + + /** + * Principals to share the resources with. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html#cfn-globalaccelerator-crossaccountattachment-principals) + */ + public fun principals(): List = unwrap(this).getPrincipals() ?: emptyList() + + /** + * Resources shared using the attachment. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html#cfn-globalaccelerator-crossaccountattachment-resources) + */ + public fun resources(): Any? = unwrap(this).getResources() + + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html#cfn-globalaccelerator-crossaccountattachment-tags) + */ + public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * A builder for [CfnCrossAccountAttachmentProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param name The Friendly identifier of the attachment. + */ + public fun name(name: String) + + /** + * @param principals Principals to share the resources with. + */ + public fun principals(principals: List) + + /** + * @param principals Principals to share the resources with. + */ + public fun principals(vararg principals: String) + + /** + * @param resources Resources shared using the attachment. + */ + public fun resources(resources: IResolvable) + + /** + * @param resources Resources shared using the attachment. + */ + public fun resources(resources: List) + + /** + * @param resources Resources shared using the attachment. + */ + public fun resources(vararg resources: Any) + + /** + * @param tags the value to be set. + */ + public fun tags(tags: List) + + /** + * @param tags the value to be set. + */ + public fun tags(vararg tags: CfnTag) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.globalaccelerator.CfnCrossAccountAttachmentProps.Builder = + software.amazon.awscdk.services.globalaccelerator.CfnCrossAccountAttachmentProps.builder() + + /** + * @param name The Friendly identifier of the attachment. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + /** + * @param principals Principals to share the resources with. + */ + override fun principals(principals: List) { + cdkBuilder.principals(principals) + } + + /** + * @param principals Principals to share the resources with. + */ + override fun principals(vararg principals: String): Unit = principals(principals.toList()) + + /** + * @param resources Resources shared using the attachment. + */ + override fun resources(resources: IResolvable) { + cdkBuilder.resources(resources.let(IResolvable::unwrap)) + } + + /** + * @param resources Resources shared using the attachment. + */ + override fun resources(resources: List) { + cdkBuilder.resources(resources.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param resources Resources shared using the attachment. + */ + override fun resources(vararg resources: Any): Unit = resources(resources.toList()) + + /** + * @param tags the value to be set. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * @param tags the value to be set. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + public fun build(): + software.amazon.awscdk.services.globalaccelerator.CfnCrossAccountAttachmentProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.globalaccelerator.CfnCrossAccountAttachmentProps, + ) : CdkObject(cdkObject), CfnCrossAccountAttachmentProps { + /** + * The Friendly identifier of the attachment. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html#cfn-globalaccelerator-crossaccountattachment-name) + */ + override fun name(): String = unwrap(this).getName() + + /** + * Principals to share the resources with. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html#cfn-globalaccelerator-crossaccountattachment-principals) + */ + override fun principals(): List = unwrap(this).getPrincipals() ?: emptyList() + + /** + * Resources shared using the attachment. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html#cfn-globalaccelerator-crossaccountattachment-resources) + */ + override fun resources(): Any? = unwrap(this).getResources() + + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html#cfn-globalaccelerator-crossaccountattachment-tags) + */ + override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnCrossAccountAttachmentProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.globalaccelerator.CfnCrossAccountAttachmentProps): + CfnCrossAccountAttachmentProps = CdkObjectWrappers.wrap(cdkObject) as? + CfnCrossAccountAttachmentProps ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnCrossAccountAttachmentProps): + software.amazon.awscdk.services.globalaccelerator.CfnCrossAccountAttachmentProps = (wrapped + as CdkObject).cdkObject as + software.amazon.awscdk.services.globalaccelerator.CfnCrossAccountAttachmentProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/globalaccelerator/CfnEndpointGroup.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/globalaccelerator/CfnEndpointGroup.kt index 4eb68c3ec3..5b73869c32 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/globalaccelerator/CfnEndpointGroup.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/globalaccelerator/CfnEndpointGroup.kt @@ -674,7 +674,7 @@ public open class CfnEndpointGroup( /** * The Amazon Resource Name (ARN) of the cross-account attachment that specifies the endpoints * (resources) that can be added to accelerators and principals that have permission to add the - * endpoints to accelerators. + * endpoints. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-endpointgroup-endpointconfiguration.html#cfn-globalaccelerator-endpointgroup-endpointconfiguration-attachmentarn) */ @@ -739,7 +739,7 @@ public open class CfnEndpointGroup( /** * @param attachmentArn The Amazon Resource Name (ARN) of the cross-account attachment that * specifies the endpoints (resources) that can be added to accelerators and principals that have - * permission to add the endpoints to accelerators. + * permission to add the endpoints. */ public fun attachmentArn(attachmentArn: String) @@ -806,7 +806,7 @@ public open class CfnEndpointGroup( /** * @param attachmentArn The Amazon Resource Name (ARN) of the cross-account attachment that * specifies the endpoints (resources) that can be added to accelerators and principals that have - * permission to add the endpoints to accelerators. + * permission to add the endpoints. */ override fun attachmentArn(attachmentArn: String) { cdkBuilder.attachmentArn(attachmentArn) @@ -884,7 +884,7 @@ public open class CfnEndpointGroup( /** * The Amazon Resource Name (ARN) of the cross-account attachment that specifies the endpoints * (resources) that can be added to accelerators and principals that have permission to add the - * endpoints to accelerators. + * endpoints. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-endpointgroup-endpointconfiguration.html#cfn-globalaccelerator-endpointgroup-endpointconfiguration-attachmentarn) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/glue/CfnCrawler.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/glue/CfnCrawler.kt index 06330de410..d107405235 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/glue/CfnCrawler.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/glue/CfnCrawler.kt @@ -85,6 +85,10 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .crawlerSecurityConfiguration("crawlerSecurityConfiguration") * .databaseName("databaseName") * .description("description") + * .lakeFormationConfiguration(LakeFormationConfigurationProperty.builder() + * .accountId("accountId") + * .useLakeFormationCredentials(false) + * .build()) * .name("name") * .recrawlPolicy(RecrawlPolicyProperty.builder() * .recrawlBehavior("recrawlBehavior") @@ -205,6 +209,38 @@ public open class CfnCrawler( unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) } + /** + * Specifies whether the crawler should use AWS Lake Formation credentials for the crawler instead + * of the IAM role credentials. + */ + public open fun lakeFormationConfiguration(): Any? = unwrap(this).getLakeFormationConfiguration() + + /** + * Specifies whether the crawler should use AWS Lake Formation credentials for the crawler instead + * of the IAM role credentials. + */ + public open fun lakeFormationConfiguration(`value`: IResolvable) { + unwrap(this).setLakeFormationConfiguration(`value`.let(IResolvable::unwrap)) + } + + /** + * Specifies whether the crawler should use AWS Lake Formation credentials for the crawler instead + * of the IAM role credentials. + */ + public open fun lakeFormationConfiguration(`value`: LakeFormationConfigurationProperty) { + unwrap(this).setLakeFormationConfiguration(`value`.let(LakeFormationConfigurationProperty::unwrap)) + } + + /** + * Specifies whether the crawler should use AWS Lake Formation credentials for the crawler instead + * of the IAM role credentials. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("2935444c2bc7453aa9a924e2c2efb1d90768a961ba225252610821139b19cde3") + public open + fun lakeFormationConfiguration(`value`: LakeFormationConfigurationProperty.Builder.() -> Unit): + Unit = lakeFormationConfiguration(LakeFormationConfigurationProperty(`value`)) + /** * The name of the crawler. */ @@ -434,6 +470,40 @@ public open class CfnCrawler( */ public fun description(description: String) + /** + * Specifies whether the crawler should use AWS Lake Formation credentials for the crawler + * instead of the IAM role credentials. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-lakeformationconfiguration) + * @param lakeFormationConfiguration Specifies whether the crawler should use AWS Lake Formation + * credentials for the crawler instead of the IAM role credentials. + */ + public fun lakeFormationConfiguration(lakeFormationConfiguration: IResolvable) + + /** + * Specifies whether the crawler should use AWS Lake Formation credentials for the crawler + * instead of the IAM role credentials. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-lakeformationconfiguration) + * @param lakeFormationConfiguration Specifies whether the crawler should use AWS Lake Formation + * credentials for the crawler instead of the IAM role credentials. + */ + public + fun lakeFormationConfiguration(lakeFormationConfiguration: LakeFormationConfigurationProperty) + + /** + * Specifies whether the crawler should use AWS Lake Formation credentials for the crawler + * instead of the IAM role credentials. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-lakeformationconfiguration) + * @param lakeFormationConfiguration Specifies whether the crawler should use AWS Lake Formation + * credentials for the crawler instead of the IAM role credentials. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("ce4f68f22a6828a413282324e52178507c8d1f903afaeeb51ae32a169ee840ae") + public + fun lakeFormationConfiguration(lakeFormationConfiguration: LakeFormationConfigurationProperty.Builder.() -> Unit) + /** * The name of the crawler. * @@ -677,6 +747,46 @@ public open class CfnCrawler( cdkBuilder.description(description) } + /** + * Specifies whether the crawler should use AWS Lake Formation credentials for the crawler + * instead of the IAM role credentials. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-lakeformationconfiguration) + * @param lakeFormationConfiguration Specifies whether the crawler should use AWS Lake Formation + * credentials for the crawler instead of the IAM role credentials. + */ + override fun lakeFormationConfiguration(lakeFormationConfiguration: IResolvable) { + cdkBuilder.lakeFormationConfiguration(lakeFormationConfiguration.let(IResolvable::unwrap)) + } + + /** + * Specifies whether the crawler should use AWS Lake Formation credentials for the crawler + * instead of the IAM role credentials. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-lakeformationconfiguration) + * @param lakeFormationConfiguration Specifies whether the crawler should use AWS Lake Formation + * credentials for the crawler instead of the IAM role credentials. + */ + override + fun lakeFormationConfiguration(lakeFormationConfiguration: LakeFormationConfigurationProperty) { + cdkBuilder.lakeFormationConfiguration(lakeFormationConfiguration.let(LakeFormationConfigurationProperty::unwrap)) + } + + /** + * Specifies whether the crawler should use AWS Lake Formation credentials for the crawler + * instead of the IAM role credentials. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-lakeformationconfiguration) + * @param lakeFormationConfiguration Specifies whether the crawler should use AWS Lake Formation + * credentials for the crawler instead of the IAM role credentials. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("ce4f68f22a6828a413282324e52178507c8d1f903afaeeb51ae32a169ee840ae") + override + fun lakeFormationConfiguration(lakeFormationConfiguration: LakeFormationConfigurationProperty.Builder.() -> Unit): + Unit = + lakeFormationConfiguration(LakeFormationConfigurationProperty(lakeFormationConfiguration)) + /** * The name of the crawler. * @@ -1752,6 +1862,142 @@ public open class CfnCrawler( } } + /** + * Specifies AWS Lake Formation configuration settings for the crawler. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.glue.*; + * LakeFormationConfigurationProperty lakeFormationConfigurationProperty = + * LakeFormationConfigurationProperty.builder() + * .accountId("accountId") + * .useLakeFormationCredentials(false) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-lakeformationconfiguration.html) + */ + public interface LakeFormationConfigurationProperty { + /** + * Required for cross account crawls. + * + * For same account crawls as the target data, this can be left as null. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-lakeformationconfiguration.html#cfn-glue-crawler-lakeformationconfiguration-accountid) + */ + public fun accountId(): String? = unwrap(this).getAccountId() + + /** + * Specifies whether to use AWS Lake Formation credentials for the crawler instead of the IAM + * role credentials. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-lakeformationconfiguration.html#cfn-glue-crawler-lakeformationconfiguration-uselakeformationcredentials) + */ + public fun useLakeFormationCredentials(): Any? = unwrap(this).getUseLakeFormationCredentials() + + /** + * A builder for [LakeFormationConfigurationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param accountId Required for cross account crawls. + * For same account crawls as the target data, this can be left as null. + */ + public fun accountId(accountId: String) + + /** + * @param useLakeFormationCredentials Specifies whether to use AWS Lake Formation credentials + * for the crawler instead of the IAM role credentials. + */ + public fun useLakeFormationCredentials(useLakeFormationCredentials: Boolean) + + /** + * @param useLakeFormationCredentials Specifies whether to use AWS Lake Formation credentials + * for the crawler instead of the IAM role credentials. + */ + public fun useLakeFormationCredentials(useLakeFormationCredentials: IResolvable) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.glue.CfnCrawler.LakeFormationConfigurationProperty.Builder + = + software.amazon.awscdk.services.glue.CfnCrawler.LakeFormationConfigurationProperty.builder() + + /** + * @param accountId Required for cross account crawls. + * For same account crawls as the target data, this can be left as null. + */ + override fun accountId(accountId: String) { + cdkBuilder.accountId(accountId) + } + + /** + * @param useLakeFormationCredentials Specifies whether to use AWS Lake Formation credentials + * for the crawler instead of the IAM role credentials. + */ + override fun useLakeFormationCredentials(useLakeFormationCredentials: Boolean) { + cdkBuilder.useLakeFormationCredentials(useLakeFormationCredentials) + } + + /** + * @param useLakeFormationCredentials Specifies whether to use AWS Lake Formation credentials + * for the crawler instead of the IAM role credentials. + */ + override fun useLakeFormationCredentials(useLakeFormationCredentials: IResolvable) { + cdkBuilder.useLakeFormationCredentials(useLakeFormationCredentials.let(IResolvable::unwrap)) + } + + public fun build(): + software.amazon.awscdk.services.glue.CfnCrawler.LakeFormationConfigurationProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.glue.CfnCrawler.LakeFormationConfigurationProperty, + ) : CdkObject(cdkObject), LakeFormationConfigurationProperty { + /** + * Required for cross account crawls. + * + * For same account crawls as the target data, this can be left as null. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-lakeformationconfiguration.html#cfn-glue-crawler-lakeformationconfiguration-accountid) + */ + override fun accountId(): String? = unwrap(this).getAccountId() + + /** + * Specifies whether to use AWS Lake Formation credentials for the crawler instead of the IAM + * role credentials. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-lakeformationconfiguration.html#cfn-glue-crawler-lakeformationconfiguration-uselakeformationcredentials) + */ + override fun useLakeFormationCredentials(): Any? = + unwrap(this).getUseLakeFormationCredentials() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): + LakeFormationConfigurationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.glue.CfnCrawler.LakeFormationConfigurationProperty): + LakeFormationConfigurationProperty = CdkObjectWrappers.wrap(cdkObject) as? + LakeFormationConfigurationProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: LakeFormationConfigurationProperty): + software.amazon.awscdk.services.glue.CfnCrawler.LakeFormationConfigurationProperty = + (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.glue.CfnCrawler.LakeFormationConfigurationProperty + } + } + /** * Specifies an Amazon DocumentDB or MongoDB data store to crawl. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/glue/CfnCrawlerProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/glue/CfnCrawlerProps.kt index 405c078f25..b44919c9d8 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/glue/CfnCrawlerProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/glue/CfnCrawlerProps.kt @@ -71,6 +71,10 @@ import kotlin.jvm.JvmName * .crawlerSecurityConfiguration("crawlerSecurityConfiguration") * .databaseName("databaseName") * .description("description") + * .lakeFormationConfiguration(LakeFormationConfigurationProperty.builder() + * .accountId("accountId") + * .useLakeFormationCredentials(false) + * .build()) * .name("name") * .recrawlPolicy(RecrawlPolicyProperty.builder() * .recrawlBehavior("recrawlBehavior") @@ -131,6 +135,14 @@ public interface CfnCrawlerProps { */ public fun description(): String? = unwrap(this).getDescription() + /** + * Specifies whether the crawler should use AWS Lake Formation credentials for the crawler instead + * of the IAM role credentials. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-lakeformationconfiguration) + */ + public fun lakeFormationConfiguration(): Any? = unwrap(this).getLakeFormationConfiguration() + /** * The name of the crawler. * @@ -237,6 +249,28 @@ public interface CfnCrawlerProps { */ public fun description(description: String) + /** + * @param lakeFormationConfiguration Specifies whether the crawler should use AWS Lake Formation + * credentials for the crawler instead of the IAM role credentials. + */ + public fun lakeFormationConfiguration(lakeFormationConfiguration: IResolvable) + + /** + * @param lakeFormationConfiguration Specifies whether the crawler should use AWS Lake Formation + * credentials for the crawler instead of the IAM role credentials. + */ + public + fun lakeFormationConfiguration(lakeFormationConfiguration: CfnCrawler.LakeFormationConfigurationProperty) + + /** + * @param lakeFormationConfiguration Specifies whether the crawler should use AWS Lake Formation + * credentials for the crawler instead of the IAM role credentials. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("102943f454454af883cb61e89b4a878fbff3320c44de22aa4aa046c82b4bb37e") + public + fun lakeFormationConfiguration(lakeFormationConfiguration: CfnCrawler.LakeFormationConfigurationProperty.Builder.() -> Unit) + /** * @param name The name of the crawler. */ @@ -402,6 +436,34 @@ public interface CfnCrawlerProps { cdkBuilder.description(description) } + /** + * @param lakeFormationConfiguration Specifies whether the crawler should use AWS Lake Formation + * credentials for the crawler instead of the IAM role credentials. + */ + override fun lakeFormationConfiguration(lakeFormationConfiguration: IResolvable) { + cdkBuilder.lakeFormationConfiguration(lakeFormationConfiguration.let(IResolvable::unwrap)) + } + + /** + * @param lakeFormationConfiguration Specifies whether the crawler should use AWS Lake Formation + * credentials for the crawler instead of the IAM role credentials. + */ + override + fun lakeFormationConfiguration(lakeFormationConfiguration: CfnCrawler.LakeFormationConfigurationProperty) { + cdkBuilder.lakeFormationConfiguration(lakeFormationConfiguration.let(CfnCrawler.LakeFormationConfigurationProperty::unwrap)) + } + + /** + * @param lakeFormationConfiguration Specifies whether the crawler should use AWS Lake Formation + * credentials for the crawler instead of the IAM role credentials. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("102943f454454af883cb61e89b4a878fbff3320c44de22aa4aa046c82b4bb37e") + override + fun lakeFormationConfiguration(lakeFormationConfiguration: CfnCrawler.LakeFormationConfigurationProperty.Builder.() -> Unit): + Unit = + lakeFormationConfiguration(CfnCrawler.LakeFormationConfigurationProperty(lakeFormationConfiguration)) + /** * @param name The name of the crawler. */ @@ -591,6 +653,14 @@ public interface CfnCrawlerProps { */ override fun description(): String? = unwrap(this).getDescription() + /** + * Specifies whether the crawler should use AWS Lake Formation credentials for the crawler + * instead of the IAM role credentials. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-lakeformationconfiguration) + */ + override fun lakeFormationConfiguration(): Any? = unwrap(this).getLakeFormationConfiguration() + /** * The name of the crawler. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/glue/CfnTableOptimizer.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/glue/CfnTableOptimizer.kt index f57e5567b8..1323f1fe1f 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/glue/CfnTableOptimizer.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/glue/CfnTableOptimizer.kt @@ -112,26 +112,26 @@ public open class CfnTableOptimizer( } /** - * + * Specifies configuration details of a table optimizer. */ public open fun tableOptimizerConfiguration(): Any = unwrap(this).getTableOptimizerConfiguration() /** - * + * Specifies configuration details of a table optimizer. */ public open fun tableOptimizerConfiguration(`value`: IResolvable) { unwrap(this).setTableOptimizerConfiguration(`value`.let(IResolvable::unwrap)) } /** - * + * Specifies configuration details of a table optimizer. */ public open fun tableOptimizerConfiguration(`value`: TableOptimizerConfigurationProperty) { unwrap(this).setTableOptimizerConfiguration(`value`.let(TableOptimizerConfigurationProperty::unwrap)) } /** - * + * Specifies configuration details of a table optimizer. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("6acec22b313a6085ba5e377067e32e85711a941ea7f2359e7304e530517931cc") @@ -185,21 +185,27 @@ public open class CfnTableOptimizer( public fun tableName(tableName: String) /** + * Specifies configuration details of a table optimizer. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-tableoptimizer.html#cfn-glue-tableoptimizer-tableoptimizerconfiguration) - * @param tableOptimizerConfiguration + * @param tableOptimizerConfiguration Specifies configuration details of a table optimizer. */ public fun tableOptimizerConfiguration(tableOptimizerConfiguration: IResolvable) /** + * Specifies configuration details of a table optimizer. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-tableoptimizer.html#cfn-glue-tableoptimizer-tableoptimizerconfiguration) - * @param tableOptimizerConfiguration + * @param tableOptimizerConfiguration Specifies configuration details of a table optimizer. */ public fun tableOptimizerConfiguration(tableOptimizerConfiguration: TableOptimizerConfigurationProperty) /** + * Specifies configuration details of a table optimizer. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-tableoptimizer.html#cfn-glue-tableoptimizer-tableoptimizerconfiguration) - * @param tableOptimizerConfiguration + * @param tableOptimizerConfiguration Specifies configuration details of a table optimizer. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("3a2c8297cdf6212a0fbaf3da179bd2b62e493c16bf68663d123d3d098e086c04") @@ -259,16 +265,20 @@ public open class CfnTableOptimizer( } /** + * Specifies configuration details of a table optimizer. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-tableoptimizer.html#cfn-glue-tableoptimizer-tableoptimizerconfiguration) - * @param tableOptimizerConfiguration + * @param tableOptimizerConfiguration Specifies configuration details of a table optimizer. */ override fun tableOptimizerConfiguration(tableOptimizerConfiguration: IResolvable) { cdkBuilder.tableOptimizerConfiguration(tableOptimizerConfiguration.let(IResolvable::unwrap)) } /** + * Specifies configuration details of a table optimizer. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-tableoptimizer.html#cfn-glue-tableoptimizer-tableoptimizerconfiguration) - * @param tableOptimizerConfiguration + * @param tableOptimizerConfiguration Specifies configuration details of a table optimizer. */ override fun tableOptimizerConfiguration(tableOptimizerConfiguration: TableOptimizerConfigurationProperty) { @@ -276,8 +286,10 @@ public open class CfnTableOptimizer( } /** + * Specifies configuration details of a table optimizer. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-tableoptimizer.html#cfn-glue-tableoptimizer-tableoptimizerconfiguration) - * @param tableOptimizerConfiguration + * @param tableOptimizerConfiguration Specifies configuration details of a table optimizer. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("3a2c8297cdf6212a0fbaf3da179bd2b62e493c16bf68663d123d3d098e086c04") diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/glue/CfnTableOptimizerProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/glue/CfnTableOptimizerProps.kt index 1d8fb0712b..4f2fc14f86 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/glue/CfnTableOptimizerProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/glue/CfnTableOptimizerProps.kt @@ -61,6 +61,8 @@ public interface CfnTableOptimizerProps { public fun tableName(): String /** + * Specifies configuration details of a table optimizer. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-tableoptimizer.html#cfn-glue-tableoptimizer-tableoptimizerconfiguration) */ public fun tableOptimizerConfiguration(): Any @@ -97,18 +99,18 @@ public interface CfnTableOptimizerProps { public fun tableName(tableName: String) /** - * @param tableOptimizerConfiguration the value to be set. + * @param tableOptimizerConfiguration Specifies configuration details of a table optimizer. */ public fun tableOptimizerConfiguration(tableOptimizerConfiguration: IResolvable) /** - * @param tableOptimizerConfiguration the value to be set. + * @param tableOptimizerConfiguration Specifies configuration details of a table optimizer. */ public fun tableOptimizerConfiguration(tableOptimizerConfiguration: CfnTableOptimizer.TableOptimizerConfigurationProperty) /** - * @param tableOptimizerConfiguration the value to be set. + * @param tableOptimizerConfiguration Specifies configuration details of a table optimizer. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("95d457aada3848bb90e499321d16bd07efffbb6dd76133703d496e810e99cbb1") @@ -150,14 +152,14 @@ public interface CfnTableOptimizerProps { } /** - * @param tableOptimizerConfiguration the value to be set. + * @param tableOptimizerConfiguration Specifies configuration details of a table optimizer. */ override fun tableOptimizerConfiguration(tableOptimizerConfiguration: IResolvable) { cdkBuilder.tableOptimizerConfiguration(tableOptimizerConfiguration.let(IResolvable::unwrap)) } /** - * @param tableOptimizerConfiguration the value to be set. + * @param tableOptimizerConfiguration Specifies configuration details of a table optimizer. */ override fun tableOptimizerConfiguration(tableOptimizerConfiguration: CfnTableOptimizer.TableOptimizerConfigurationProperty) { @@ -165,7 +167,7 @@ public interface CfnTableOptimizerProps { } /** - * @param tableOptimizerConfiguration the value to be set. + * @param tableOptimizerConfiguration Specifies configuration details of a table optimizer. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("95d457aada3848bb90e499321d16bd07efffbb6dd76133703d496e810e99cbb1") @@ -215,6 +217,8 @@ public interface CfnTableOptimizerProps { override fun tableName(): String = unwrap(this).getTableName() /** + * Specifies configuration details of a table optimizer. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-tableoptimizer.html#cfn-glue-tableoptimizer-tableoptimizerconfiguration) */ override fun tableOptimizerConfiguration(): Any = unwrap(this).getTableOptimizerConfiguration() diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/CfnManagedPolicy.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/CfnManagedPolicy.kt index 20cfad7873..e3d1eb8809 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/CfnManagedPolicy.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/CfnManagedPolicy.kt @@ -109,7 +109,7 @@ public open class CfnManagedPolicy( unwrap(this).getAttrPermissionsBoundaryUsageCount() /** - * Amazon Resource Name (ARN) of the managed policy. + * */ public open fun attrPolicyArn(): String = unwrap(this).getAttrPolicyArn() @@ -332,6 +332,8 @@ public open class CfnManagedPolicy( * You cannot use an asterisk (*) in the path name. * * + * Default: - "/" + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-iam-managedpolicy-path) * @param path The path for the policy. */ @@ -542,6 +544,8 @@ public open class CfnManagedPolicy( * You cannot use an asterisk (*) in the path name. * * + * Default: - "/" + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-iam-managedpolicy-path) * @param path The path for the policy. */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/CfnManagedPolicyProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/CfnManagedPolicyProps.kt index 61a02488d0..14325f5c95 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/CfnManagedPolicyProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/CfnManagedPolicyProps.kt @@ -105,6 +105,8 @@ public interface CfnManagedPolicyProps { * You cannot use an asterisk (*) in the path name. * * + * Default: - "/" + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-iam-managedpolicy-path) */ public fun path(): String? = unwrap(this).getPath() @@ -579,6 +581,8 @@ public interface CfnManagedPolicyProps { * You cannot use an asterisk (*) in the path name. * * + * Default: - "/" + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-iam-managedpolicy-path) */ override fun path(): String? = unwrap(this).getPath() diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/Policy.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/Policy.kt index 591f28938a..efca2b2392 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/Policy.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/Policy.kt @@ -14,12 +14,11 @@ import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct import software.constructs.Construct as SoftwareConstructsConstruct /** - * The AWS::IAM::Policy resource associates an IAM policy with IAM users, roles, or groups. - * - * For more information about IAM policies, see Overview of IAM - * Policies - * in the IAM User Guide guide. + * The AWS::IAM::Policy resource associates an + * [inline](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#inline) IAM policy + * with IAM users, roles, or groups. For more information about IAM policies, see [Overview of IAM + * Policies](http://docs.aws.amazon.com/IAM/latest/UserGuide/policies_overview.html) in the IAM User + * Guide guide. * * Example: * @@ -169,7 +168,8 @@ public open class Policy( * creating invalid--and hence undeployable--CloudFormation templates. * * In cases where you know the policy must be created and it is actually - * an error if no statements have been added to it, you can set this to `true`. + * an error if no statements have been added to it or it remains unattached to + * an IAM identity, you can set this to `true`. * * Default: false * @@ -328,7 +328,8 @@ public open class Policy( * creating invalid--and hence undeployable--CloudFormation templates. * * In cases where you know the policy must be created and it is actually - * an error if no statements have been added to it, you can set this to `true`. + * an error if no statements have been added to it or it remains unattached to + * an IAM identity, you can set this to `true`. * * Default: false * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/PolicyDocument.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/PolicyDocument.kt index a7dbca7697..4854aff134 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/PolicyDocument.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/PolicyDocument.kt @@ -106,7 +106,7 @@ public open class PolicyDocument( * * Used when JSON.stringify() is called */ - public open fun toJson(): Any = unwrap(this).toJSON() + public open fun toJSON(): Any = unwrap(this).toJSON() /** * Validate that all policy statements in the policy document satisfies the requirements for any diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/PolicyProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/PolicyProps.kt index b61f504a48..74af1d5173 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/PolicyProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/PolicyProps.kt @@ -55,7 +55,8 @@ public interface PolicyProps { * creating invalid--and hence undeployable--CloudFormation templates. * * In cases where you know the policy must be created and it is actually - * an error if no statements have been added to it, you can set this to `true`. + * an error if no statements have been added to it or it remains unattached to + * an IAM identity, you can set this to `true`. * * Default: false */ @@ -142,7 +143,8 @@ public interface PolicyProps { * creating invalid--and hence undeployable--CloudFormation templates. * * In cases where you know the policy must be created and it is actually - * an error if no statements have been added to it, you can set this to `true`. + * an error if no statements have been added to it or it remains unattached to + * an IAM identity, you can set this to `true`. */ public fun force(force: Boolean) @@ -237,7 +239,8 @@ public interface PolicyProps { * creating invalid--and hence undeployable--CloudFormation templates. * * In cases where you know the policy must be created and it is actually - * an error if no statements have been added to it, you can set this to `true`. + * an error if no statements have been added to it or it remains unattached to + * an IAM identity, you can set this to `true`. */ override fun force(force: Boolean) { cdkBuilder.force(force) @@ -337,7 +340,8 @@ public interface PolicyProps { * creating invalid--and hence undeployable--CloudFormation templates. * * In cases where you know the policy must be created and it is actually - * an error if no statements have been added to it, you can set this to `true`. + * an error if no statements have been added to it or it remains unattached to + * an IAM identity, you can set this to `true`. * * Default: false */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/PolicyStatement.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/PolicyStatement.kt index 952f319bcd..70c2411e0c 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/PolicyStatement.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/PolicyStatement.kt @@ -19,23 +19,17 @@ import kotlin.jvm.JvmName * Example: * * ``` - * String crossAccountRoleArn = "arn:aws:iam::OTHERACCOUNT:role/CrossAccountRoleName"; // arn of - * role deployed in separate account - * String callRegion = "us-west-1"; // sdk call to be made in specified region (optional) - * // sdk call to be made in specified region (optional) - * AwsCustomResource.Builder.create(this, "CrossAccount") - * .onCreate(AwsSdkCall.builder() - * .assumedRoleArn(crossAccountRoleArn) - * .region(callRegion) // optional - * .service("sts") - * .action("GetCallerIdentity") - * .physicalResourceId(PhysicalResourceId.of("id")) - * .build()) - * .policy(AwsCustomResourcePolicy.fromStatements(List.of(PolicyStatement.fromJson(Map.of( - * "Effect", "Allow", - * "Action", "sts:AssumeRole", - * "Resource", crossAccountRoleArn))))) + * Bucket destinationBucket; + * BucketDeployment deployment = BucketDeployment.Builder.create(this, "DeployFiles") + * .sources(List.of(Source.asset(join(__dirname, "source-files")))) + * .destinationBucket(destinationBucket) * .build(); + * deployment.handlerRole.addToPolicy( + * PolicyStatement.Builder.create() + * .actions(List.of("kms:Decrypt", "kms:DescribeKey")) + * .effect(Effect.ALLOW) + * .resources(List.of("<encryption key ARN>")) + * .build()); * ``` */ public open class PolicyStatement( @@ -422,7 +416,7 @@ public open class PolicyStatement( * * Used when JSON.stringify() is called */ - public open fun toJson(): Any = unwrap(this).toJSON() + public open fun toJSON(): Any = unwrap(this).toJSON() /** * JSON-ify the policy statement. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/PolicyStatementProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/PolicyStatementProps.kt index 5854886875..e13d9c1f89 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/PolicyStatementProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/PolicyStatementProps.kt @@ -17,27 +17,16 @@ import kotlin.collections.Map * Example: * * ``` - * // Add gateway endpoints when creating the VPC - * Vpc vpc = Vpc.Builder.create(this, "MyVpc") - * .gatewayEndpoints(Map.of( - * "S3", GatewayVpcEndpointOptions.builder() - * .service(GatewayVpcEndpointAwsService.S3) - * .build())) + * Bucket destinationBucket; + * BucketDeployment deployment = BucketDeployment.Builder.create(this, "DeployFiles") + * .sources(List.of(Source.asset(join(__dirname, "source-files")))) + * .destinationBucket(destinationBucket) * .build(); - * // Alternatively gateway endpoints can be added on the VPC - * GatewayVpcEndpoint dynamoDbEndpoint = vpc.addGatewayEndpoint("DynamoDbEndpoint", - * GatewayVpcEndpointOptions.builder() - * .service(GatewayVpcEndpointAwsService.DYNAMODB) - * .build()); - * // This allows to customize the endpoint policy - * dynamoDbEndpoint.addToPolicy( - * PolicyStatement.Builder.create() // Restrict to listing and describing tables - * .principals(List.of(new AnyPrincipal())) - * .actions(List.of("dynamodb:DescribeTable", "dynamodb:ListTables")) - * .resources(List.of("*")).build()); - * // Add an interface endpoint - * vpc.addInterfaceEndpoint("EcrDockerEndpoint", InterfaceVpcEndpointOptions.builder() - * .service(InterfaceVpcEndpointAwsService.ECR_DOCKER) + * deployment.handlerRole.addToPolicy( + * PolicyStatement.Builder.create() + * .actions(List.of("kms:Decrypt", "kms:DescribeKey")) + * .effect(Effect.ALLOW) + * .resources(List.of("<encryption key ARN>")) * .build()); * ``` */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/PrincipalBase.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/PrincipalBase.kt index f0c7a127a9..69a827a6f9 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/PrincipalBase.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/PrincipalBase.kt @@ -129,7 +129,7 @@ public abstract class PrincipalBase( * * Used when JSON.stringify() is called */ - public open fun toJson(): Map> = unwrap(this).toJSON() ?: emptyMap() + public open fun toJSON(): Map> = unwrap(this).toJSON() ?: emptyMap() /** * Returns a new PrincipalWithConditions using this principal as the base, with the passed diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/PrincipalWithConditions.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/PrincipalWithConditions.kt index e48be21478..bda5e25f49 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/PrincipalWithConditions.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/PrincipalWithConditions.kt @@ -159,7 +159,7 @@ public open class PrincipalWithConditions( * * Used when JSON.stringify() is called */ - public override fun toJson(): Map> = unwrap(this).toJSON() ?: emptyMap() + public override fun toJSON(): Map> = unwrap(this).toJSON() ?: emptyMap() public companion object { internal fun wrap(cdkObject: software.amazon.awscdk.services.iam.PrincipalWithConditions): diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/RoleProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/RoleProps.kt index 623d4f8fcd..0aeb169503 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/RoleProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iam/RoleProps.kt @@ -17,18 +17,15 @@ import kotlin.collections.Map * Example: * * ``` - * // Option 3: Create a new role that allows the account root principal to assume. Add this role in - * the `system:masters` and witch to this role from the AWS console. - * Cluster cluster; - * Role consoleReadOnlyRole = Role.Builder.create(this, "ConsoleReadOnlyRole") - * .assumedBy(new ArnPrincipal("arn_for_trusted_principal")) + * IChainable definition; + * Role role = Role.Builder.create(this, "Role") + * .assumedBy(new ServicePrincipal("lambda.amazonaws.com")) * .build(); - * consoleReadOnlyRole.addToPolicy(PolicyStatement.Builder.create() - * .actions(List.of("eks:AccessKubernetesApi", "eks:Describe*", "eks:List*")) - * .resources(List.of(cluster.getClusterArn())) - * .build()); - * // Add this role to system:masters RBAC group - * cluster.awsAuth.addMastersRole(consoleReadOnlyRole); + * StateMachine stateMachine = StateMachine.Builder.create(this, "StateMachine") + * .definitionBody(DefinitionBody.fromChainable(definition)) + * .build(); + * // Give role permission to get execution history of ALL executions for the state machine + * stateMachine.grantExecution(role, "states:GetExecutionHistory"); * ``` */ public interface RoleProps { diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/internetmonitor/CfnMonitor.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/internetmonitor/CfnMonitor.kt index e39cfdb04f..bdede57e4c 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/internetmonitor/CfnMonitor.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/internetmonitor/CfnMonitor.kt @@ -13,6 +13,7 @@ import io.cloudshiftdev.awscdk.common.CdkDslMarker import io.cloudshiftdev.awscdk.common.CdkObject import io.cloudshiftdev.awscdk.common.CdkObjectWrappers import kotlin.Any +import kotlin.Boolean import kotlin.Number import kotlin.String import kotlin.Unit @@ -61,6 +62,7 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .build()) * .performanceScoreThreshold(123) * .build()) + * .includeLinkedAccounts(false) * .internetMeasurementsLogDelivery(InternetMeasurementsLogDeliveryProperty.builder() * .s3Config(S3ConfigProperty.builder() * .bucketName("bucketName") @@ -68,6 +70,7 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .logDeliveryStatus("logDeliveryStatus") * .build()) * .build()) + * .linkedAccountId("linkedAccountId") * .maxCityNetworksToMonitor(123) * .resources(List.of("resources")) * .resourcesToAdd(List.of("resourcesToAdd")) @@ -166,6 +169,28 @@ public open class CfnMonitor( public open fun healthEventsConfig(`value`: HealthEventsConfigProperty.Builder.() -> Unit): Unit = healthEventsConfig(HealthEventsConfigProperty(`value`)) + /** + * A boolean option that you can set to `TRUE` to include monitors for linked accounts in a list + * of monitors, when you've set up cross-account sharing in Internet Monitor. + */ + public open fun includeLinkedAccounts(): Any? = unwrap(this).getIncludeLinkedAccounts() + + /** + * A boolean option that you can set to `TRUE` to include monitors for linked accounts in a list + * of monitors, when you've set up cross-account sharing in Internet Monitor. + */ + public open fun includeLinkedAccounts(`value`: Boolean) { + unwrap(this).setIncludeLinkedAccounts(`value`) + } + + /** + * A boolean option that you can set to `TRUE` to include monitors for linked accounts in a list + * of monitors, when you've set up cross-account sharing in Internet Monitor. + */ + public open fun includeLinkedAccounts(`value`: IResolvable) { + unwrap(this).setIncludeLinkedAccounts(`value`.let(IResolvable::unwrap)) + } + /** * Examines the CloudFormation resource and discloses attributes. * @@ -209,6 +234,18 @@ public open class CfnMonitor( fun internetMeasurementsLogDelivery(`value`: InternetMeasurementsLogDeliveryProperty.Builder.() -> Unit): Unit = internetMeasurementsLogDelivery(InternetMeasurementsLogDeliveryProperty(`value`)) + /** + * The account ID for an account that you've set up cross-account sharing for in Internet Monitor. + */ + public open fun linkedAccountId(): String? = unwrap(this).getLinkedAccountId() + + /** + * The account ID for an account that you've set up cross-account sharing for in Internet Monitor. + */ + public open fun linkedAccountId(`value`: String) { + unwrap(this).setLinkedAccountId(`value`) + } + /** * The maximum number of city-networks to monitor for your resources. */ @@ -443,6 +480,38 @@ public open class CfnMonitor( @JvmName("b05a560a3c40f38371339032cfd1a3ffdeb5ffb50a6de313facf159c12d1e230") public fun healthEventsConfig(healthEventsConfig: HealthEventsConfigProperty.Builder.() -> Unit) + /** + * A boolean option that you can set to `TRUE` to include monitors for linked accounts in a list + * of monitors, when you've set up cross-account sharing in Internet Monitor. + * + * You configure cross-account sharing by using Amazon CloudWatch Observability Access Manager. + * For more information, see [Internet Monitor cross-account + * observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cwim-cross-account.html) + * in the Amazon CloudWatch User Guide. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-internetmonitor-monitor.html#cfn-internetmonitor-monitor-includelinkedaccounts) + * @param includeLinkedAccounts A boolean option that you can set to `TRUE` to include monitors + * for linked accounts in a list of monitors, when you've set up cross-account sharing in Internet + * Monitor. + */ + public fun includeLinkedAccounts(includeLinkedAccounts: Boolean) + + /** + * A boolean option that you can set to `TRUE` to include monitors for linked accounts in a list + * of monitors, when you've set up cross-account sharing in Internet Monitor. + * + * You configure cross-account sharing by using Amazon CloudWatch Observability Access Manager. + * For more information, see [Internet Monitor cross-account + * observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cwim-cross-account.html) + * in the Amazon CloudWatch User Guide. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-internetmonitor-monitor.html#cfn-internetmonitor-monitor-includelinkedaccounts) + * @param includeLinkedAccounts A boolean option that you can set to `TRUE` to include monitors + * for linked accounts in a list of monitors, when you've set up cross-account sharing in Internet + * Monitor. + */ + public fun includeLinkedAccounts(includeLinkedAccounts: IResolvable) + /** * Publish internet measurements for a monitor for all city-networks (up to the 500,000 service * limit) to another location, such as an Amazon S3 bucket. @@ -489,6 +558,21 @@ public open class CfnMonitor( public fun internetMeasurementsLogDelivery(internetMeasurementsLogDelivery: InternetMeasurementsLogDeliveryProperty.Builder.() -> Unit) + /** + * The account ID for an account that you've set up cross-account sharing for in Internet + * Monitor. + * + * You configure cross-account sharing by using Amazon CloudWatch Observability Access Manager. + * For more information, see [Internet Monitor cross-account + * observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cwim-cross-account.html) + * in the Amazon CloudWatch User Guide. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-internetmonitor-monitor.html#cfn-internetmonitor-monitor-linkedaccountid) + * @param linkedAccountId The account ID for an account that you've set up cross-account sharing + * for in Internet Monitor. + */ + public fun linkedAccountId(linkedAccountId: String) + /** * The maximum number of city-networks to monitor for your resources. * @@ -776,6 +860,42 @@ public open class CfnMonitor( fun healthEventsConfig(healthEventsConfig: HealthEventsConfigProperty.Builder.() -> Unit): Unit = healthEventsConfig(HealthEventsConfigProperty(healthEventsConfig)) + /** + * A boolean option that you can set to `TRUE` to include monitors for linked accounts in a list + * of monitors, when you've set up cross-account sharing in Internet Monitor. + * + * You configure cross-account sharing by using Amazon CloudWatch Observability Access Manager. + * For more information, see [Internet Monitor cross-account + * observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cwim-cross-account.html) + * in the Amazon CloudWatch User Guide. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-internetmonitor-monitor.html#cfn-internetmonitor-monitor-includelinkedaccounts) + * @param includeLinkedAccounts A boolean option that you can set to `TRUE` to include monitors + * for linked accounts in a list of monitors, when you've set up cross-account sharing in Internet + * Monitor. + */ + override fun includeLinkedAccounts(includeLinkedAccounts: Boolean) { + cdkBuilder.includeLinkedAccounts(includeLinkedAccounts) + } + + /** + * A boolean option that you can set to `TRUE` to include monitors for linked accounts in a list + * of monitors, when you've set up cross-account sharing in Internet Monitor. + * + * You configure cross-account sharing by using Amazon CloudWatch Observability Access Manager. + * For more information, see [Internet Monitor cross-account + * observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cwim-cross-account.html) + * in the Amazon CloudWatch User Guide. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-internetmonitor-monitor.html#cfn-internetmonitor-monitor-includelinkedaccounts) + * @param includeLinkedAccounts A boolean option that you can set to `TRUE` to include monitors + * for linked accounts in a list of monitors, when you've set up cross-account sharing in Internet + * Monitor. + */ + override fun includeLinkedAccounts(includeLinkedAccounts: IResolvable) { + cdkBuilder.includeLinkedAccounts(includeLinkedAccounts.let(IResolvable::unwrap)) + } + /** * Publish internet measurements for a monitor for all city-networks (up to the 500,000 service * limit) to another location, such as an Amazon S3 bucket. @@ -828,6 +948,23 @@ public open class CfnMonitor( Unit = internetMeasurementsLogDelivery(InternetMeasurementsLogDeliveryProperty(internetMeasurementsLogDelivery)) + /** + * The account ID for an account that you've set up cross-account sharing for in Internet + * Monitor. + * + * You configure cross-account sharing by using Amazon CloudWatch Observability Access Manager. + * For more information, see [Internet Monitor cross-account + * observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cwim-cross-account.html) + * in the Amazon CloudWatch User Guide. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-internetmonitor-monitor.html#cfn-internetmonitor-monitor-linkedaccountid) + * @param linkedAccountId The account ID for an account that you've set up cross-account sharing + * for in Internet Monitor. + */ + override fun linkedAccountId(linkedAccountId: String) { + cdkBuilder.linkedAccountId(linkedAccountId) + } + /** * The maximum number of city-networks to monitor for your resources. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/internetmonitor/CfnMonitorProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/internetmonitor/CfnMonitorProps.kt index e55fa92fe2..4b72fa7708 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/internetmonitor/CfnMonitorProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/internetmonitor/CfnMonitorProps.kt @@ -8,6 +8,7 @@ import io.cloudshiftdev.awscdk.common.CdkDslMarker import io.cloudshiftdev.awscdk.common.CdkObject import io.cloudshiftdev.awscdk.common.CdkObjectWrappers import kotlin.Any +import kotlin.Boolean import kotlin.Number import kotlin.String import kotlin.Unit @@ -40,6 +41,7 @@ import kotlin.jvm.JvmName * .build()) * .performanceScoreThreshold(123) * .build()) + * .includeLinkedAccounts(false) * .internetMeasurementsLogDelivery(InternetMeasurementsLogDeliveryProperty.builder() * .s3Config(S3ConfigProperty.builder() * .bucketName("bucketName") @@ -47,6 +49,7 @@ import kotlin.jvm.JvmName * .logDeliveryStatus("logDeliveryStatus") * .build()) * .build()) + * .linkedAccountId("linkedAccountId") * .maxCityNetworksToMonitor(123) * .resources(List.of("resources")) * .resourcesToAdd(List.of("resourcesToAdd")) @@ -91,6 +94,19 @@ public interface CfnMonitorProps { */ public fun healthEventsConfig(): Any? = unwrap(this).getHealthEventsConfig() + /** + * A boolean option that you can set to `TRUE` to include monitors for linked accounts in a list + * of monitors, when you've set up cross-account sharing in Internet Monitor. + * + * You configure cross-account sharing by using Amazon CloudWatch Observability Access Manager. + * For more information, see [Internet Monitor cross-account + * observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cwim-cross-account.html) + * in the Amazon CloudWatch User Guide. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-internetmonitor-monitor.html#cfn-internetmonitor-monitor-includelinkedaccounts) + */ + public fun includeLinkedAccounts(): Any? = unwrap(this).getIncludeLinkedAccounts() + /** * Publish internet measurements for a monitor for all city-networks (up to the 500,000 service * limit) to another location, such as an Amazon S3 bucket. @@ -103,6 +119,18 @@ public interface CfnMonitorProps { public fun internetMeasurementsLogDelivery(): Any? = unwrap(this).getInternetMeasurementsLogDelivery() + /** + * The account ID for an account that you've set up cross-account sharing for in Internet Monitor. + * + * You configure cross-account sharing by using Amazon CloudWatch Observability Access Manager. + * For more information, see [Internet Monitor cross-account + * observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cwim-cross-account.html) + * in the Amazon CloudWatch User Guide. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-internetmonitor-monitor.html#cfn-internetmonitor-monitor-linkedaccountid) + */ + public fun linkedAccountId(): String? = unwrap(this).getLinkedAccountId() + /** * The maximum number of city-networks to monitor for your resources. * @@ -287,6 +315,28 @@ public interface CfnMonitorProps { public fun healthEventsConfig(healthEventsConfig: CfnMonitor.HealthEventsConfigProperty.Builder.() -> Unit) + /** + * @param includeLinkedAccounts A boolean option that you can set to `TRUE` to include monitors + * for linked accounts in a list of monitors, when you've set up cross-account sharing in Internet + * Monitor. + * You configure cross-account sharing by using Amazon CloudWatch Observability Access Manager. + * For more information, see [Internet Monitor cross-account + * observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cwim-cross-account.html) + * in the Amazon CloudWatch User Guide. + */ + public fun includeLinkedAccounts(includeLinkedAccounts: Boolean) + + /** + * @param includeLinkedAccounts A boolean option that you can set to `TRUE` to include monitors + * for linked accounts in a list of monitors, when you've set up cross-account sharing in Internet + * Monitor. + * You configure cross-account sharing by using Amazon CloudWatch Observability Access Manager. + * For more information, see [Internet Monitor cross-account + * observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cwim-cross-account.html) + * in the Amazon CloudWatch User Guide. + */ + public fun includeLinkedAccounts(includeLinkedAccounts: IResolvable) + /** * @param internetMeasurementsLogDelivery Publish internet measurements for a monitor for all * city-networks (up to the 500,000 service limit) to another location, such as an Amazon S3 @@ -318,6 +368,16 @@ public interface CfnMonitorProps { public fun internetMeasurementsLogDelivery(internetMeasurementsLogDelivery: CfnMonitor.InternetMeasurementsLogDeliveryProperty.Builder.() -> Unit) + /** + * @param linkedAccountId The account ID for an account that you've set up cross-account sharing + * for in Internet Monitor. + * You configure cross-account sharing by using Amazon CloudWatch Observability Access Manager. + * For more information, see [Internet Monitor cross-account + * observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cwim-cross-account.html) + * in the Amazon CloudWatch User Guide. + */ + public fun linkedAccountId(linkedAccountId: String) + /** * @param maxCityNetworksToMonitor The maximum number of city-networks to monitor for your * resources. @@ -526,6 +586,32 @@ public interface CfnMonitorProps { fun healthEventsConfig(healthEventsConfig: CfnMonitor.HealthEventsConfigProperty.Builder.() -> Unit): Unit = healthEventsConfig(CfnMonitor.HealthEventsConfigProperty(healthEventsConfig)) + /** + * @param includeLinkedAccounts A boolean option that you can set to `TRUE` to include monitors + * for linked accounts in a list of monitors, when you've set up cross-account sharing in Internet + * Monitor. + * You configure cross-account sharing by using Amazon CloudWatch Observability Access Manager. + * For more information, see [Internet Monitor cross-account + * observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cwim-cross-account.html) + * in the Amazon CloudWatch User Guide. + */ + override fun includeLinkedAccounts(includeLinkedAccounts: Boolean) { + cdkBuilder.includeLinkedAccounts(includeLinkedAccounts) + } + + /** + * @param includeLinkedAccounts A boolean option that you can set to `TRUE` to include monitors + * for linked accounts in a list of monitors, when you've set up cross-account sharing in Internet + * Monitor. + * You configure cross-account sharing by using Amazon CloudWatch Observability Access Manager. + * For more information, see [Internet Monitor cross-account + * observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cwim-cross-account.html) + * in the Amazon CloudWatch User Guide. + */ + override fun includeLinkedAccounts(includeLinkedAccounts: IResolvable) { + cdkBuilder.includeLinkedAccounts(includeLinkedAccounts.let(IResolvable::unwrap)) + } + /** * @param internetMeasurementsLogDelivery Publish internet measurements for a monitor for all * city-networks (up to the 500,000 service limit) to another location, such as an Amazon S3 @@ -563,6 +649,18 @@ public interface CfnMonitorProps { Unit = internetMeasurementsLogDelivery(CfnMonitor.InternetMeasurementsLogDeliveryProperty(internetMeasurementsLogDelivery)) + /** + * @param linkedAccountId The account ID for an account that you've set up cross-account sharing + * for in Internet Monitor. + * You configure cross-account sharing by using Amazon CloudWatch Observability Access Manager. + * For more information, see [Internet Monitor cross-account + * observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cwim-cross-account.html) + * in the Amazon CloudWatch User Guide. + */ + override fun linkedAccountId(linkedAccountId: String) { + cdkBuilder.linkedAccountId(linkedAccountId) + } + /** * @param maxCityNetworksToMonitor The maximum number of city-networks to monitor for your * resources. @@ -736,6 +834,19 @@ public interface CfnMonitorProps { */ override fun healthEventsConfig(): Any? = unwrap(this).getHealthEventsConfig() + /** + * A boolean option that you can set to `TRUE` to include monitors for linked accounts in a list + * of monitors, when you've set up cross-account sharing in Internet Monitor. + * + * You configure cross-account sharing by using Amazon CloudWatch Observability Access Manager. + * For more information, see [Internet Monitor cross-account + * observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cwim-cross-account.html) + * in the Amazon CloudWatch User Guide. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-internetmonitor-monitor.html#cfn-internetmonitor-monitor-includelinkedaccounts) + */ + override fun includeLinkedAccounts(): Any? = unwrap(this).getIncludeLinkedAccounts() + /** * Publish internet measurements for a monitor for all city-networks (up to the 500,000 service * limit) to another location, such as an Amazon S3 bucket. @@ -748,6 +859,19 @@ public interface CfnMonitorProps { override fun internetMeasurementsLogDelivery(): Any? = unwrap(this).getInternetMeasurementsLogDelivery() + /** + * The account ID for an account that you've set up cross-account sharing for in Internet + * Monitor. + * + * You configure cross-account sharing by using Amazon CloudWatch Observability Access Manager. + * For more information, see [Internet Monitor cross-account + * observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cwim-cross-account.html) + * in the Amazon CloudWatch User Guide. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-internetmonitor-monitor.html#cfn-internetmonitor-monitor-linkedaccountid) + */ + override fun linkedAccountId(): String? = unwrap(this).getLinkedAccountId() + /** * The maximum number of city-networks to monitor for your resources. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iotsitewise/CfnAsset.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iotsitewise/CfnAsset.kt index 0a83c7fa79..02bcc5f61c 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iotsitewise/CfnAsset.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iotsitewise/CfnAsset.kt @@ -94,12 +94,12 @@ public open class CfnAsset( } /** - * The External ID of the asset. + * The external ID of the asset model composite model. */ public open fun assetExternalId(): String? = unwrap(this).getAssetExternalId() /** - * The External ID of the asset. + * The external ID of the asset model composite model. */ public open fun assetExternalId(`value`: String) { unwrap(this).setAssetExternalId(`value`) @@ -233,10 +233,14 @@ public open class CfnAsset( public fun assetDescription(assetDescription: String) /** - * The External ID of the asset. + * The external ID of the asset model composite model. + * + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) in + * the *AWS IoT SiteWise User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-asset.html#cfn-iotsitewise-asset-assetexternalid) - * @param assetExternalId The External ID of the asset. + * @param assetExternalId The external ID of the asset model composite model. */ public fun assetExternalId(assetExternalId: String) @@ -367,10 +371,14 @@ public open class CfnAsset( } /** - * The External ID of the asset. + * The external ID of the asset model composite model. + * + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) in + * the *AWS IoT SiteWise User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-asset.html#cfn-iotsitewise-asset-assetexternalid) - * @param assetExternalId The External ID of the asset. + * @param assetExternalId The external ID of the asset model composite model. */ override fun assetExternalId(assetExternalId: String) { cdkBuilder.assetExternalId(assetExternalId) @@ -552,14 +560,24 @@ public open class CfnAsset( public fun childAssetId(): String /** - * String-friendly customer provided external ID. + * The external ID of the hierarchy, if it has one. + * + * When you update an asset hierarchy, you may assign an external ID if it doesn't already have + * one. You can't change the external ID of an asset hierarchy that already has one. For more + * information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) in + * the *AWS IoT SiteWise User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assethierarchy.html#cfn-iotsitewise-asset-assethierarchy-externalid) */ public fun externalId(): String? = unwrap(this).getExternalId() /** - * Customer provided actual UUID for property. + * The ID of the hierarchy. This ID is a `hierarchyId` . + * + * + * This is a return value and can't be set. + * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assethierarchy.html#cfn-iotsitewise-asset-assethierarchy-id) */ @@ -585,12 +603,19 @@ public open class CfnAsset( public fun childAssetId(childAssetId: String) /** - * @param externalId String-friendly customer provided external ID. + * @param externalId The external ID of the hierarchy, if it has one. + * When you update an asset hierarchy, you may assign an external ID if it doesn't already + * have one. You can't change the external ID of an asset hierarchy that already has one. For + * more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) + * in the *AWS IoT SiteWise User Guide* . */ public fun externalId(externalId: String) /** - * @param id Customer provided actual UUID for property. + * @param id The ID of the hierarchy. This ID is a `hierarchyId` . + * + * This is a return value and can't be set. */ public fun id(id: String) @@ -614,14 +639,21 @@ public open class CfnAsset( } /** - * @param externalId String-friendly customer provided external ID. + * @param externalId The external ID of the hierarchy, if it has one. + * When you update an asset hierarchy, you may assign an external ID if it doesn't already + * have one. You can't change the external ID of an asset hierarchy that already has one. For + * more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) + * in the *AWS IoT SiteWise User Guide* . */ override fun externalId(externalId: String) { cdkBuilder.externalId(externalId) } /** - * @param id Customer provided actual UUID for property. + * @param id The ID of the hierarchy. This ID is a `hierarchyId` . + * + * This is a return value and can't be set. */ override fun id(id: String) { cdkBuilder.id(id) @@ -651,14 +683,24 @@ public open class CfnAsset( override fun childAssetId(): String = unwrap(this).getChildAssetId() /** - * String-friendly customer provided external ID. + * The external ID of the hierarchy, if it has one. + * + * When you update an asset hierarchy, you may assign an external ID if it doesn't already + * have one. You can't change the external ID of an asset hierarchy that already has one. For + * more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) + * in the *AWS IoT SiteWise User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assethierarchy.html#cfn-iotsitewise-asset-assethierarchy-externalid) */ override fun externalId(): String? = unwrap(this).getExternalId() /** - * Customer provided actual UUID for property. + * The ID of the hierarchy. This ID is a `hierarchyId` . + * + * + * This is a return value and can't be set. + * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assethierarchy.html#cfn-iotsitewise-asset-assethierarchy-id) */ @@ -727,14 +769,22 @@ public open class CfnAsset( public fun alias(): String? = unwrap(this).getAlias() /** - * String-friendly customer provided external ID. + * The external ID of the property. + * + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) in + * the *AWS IoT SiteWise User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assetproperty.html#cfn-iotsitewise-asset-assetproperty-externalid) */ public fun externalId(): String? = unwrap(this).getExternalId() /** - * Customer provided actual UUID for property. + * The ID of the asset property. + * + * + * This is a return value and can't be set. + * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assetproperty.html#cfn-iotsitewise-asset-assetproperty-id) */ @@ -783,12 +833,17 @@ public open class CfnAsset( public fun alias(alias: String) /** - * @param externalId String-friendly customer provided external ID. + * @param externalId The external ID of the property. + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) + * in the *AWS IoT SiteWise User Guide* . */ public fun externalId(externalId: String) /** - * @param id Customer provided actual UUID for property. + * @param id The ID of the asset property. + * + * This is a return value and can't be set. */ public fun id(id: String) @@ -832,14 +887,19 @@ public open class CfnAsset( } /** - * @param externalId String-friendly customer provided external ID. + * @param externalId The external ID of the property. + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) + * in the *AWS IoT SiteWise User Guide* . */ override fun externalId(externalId: String) { cdkBuilder.externalId(externalId) } /** - * @param id Customer provided actual UUID for property. + * @param id The ID of the asset property. + * + * This is a return value and can't be set. */ override fun id(id: String) { cdkBuilder.id(id) @@ -893,14 +953,22 @@ public open class CfnAsset( override fun alias(): String? = unwrap(this).getAlias() /** - * String-friendly customer provided external ID. + * The external ID of the property. + * + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) + * in the *AWS IoT SiteWise User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assetproperty.html#cfn-iotsitewise-asset-assetproperty-externalid) */ override fun externalId(): String? = unwrap(this).getExternalId() /** - * Customer provided actual UUID for property. + * The ID of the asset property. + * + * + * This is a return value and can't be set. + * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assetproperty.html#cfn-iotsitewise-asset-assetproperty-id) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iotsitewise/CfnAssetModel.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iotsitewise/CfnAssetModel.kt index 564290b30c..88346c6d13 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iotsitewise/CfnAssetModel.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iotsitewise/CfnAssetModel.kt @@ -323,12 +323,12 @@ public open class CfnAssetModel( assetModelProperties(`value`.toList()) /** - * The type of the asset model (ASSET_MODEL OR COMPONENT_MODEL). + * The type of asset model. */ public open fun assetModelType(): String? = unwrap(this).getAssetModelType() /** - * The type of the asset model (ASSET_MODEL OR COMPONENT_MODEL). + * The type of asset model. */ public open fun assetModelType(`value`: String) { unwrap(this).setAssetModelType(`value`) @@ -455,6 +455,10 @@ public open class CfnAssetModel( /** * The external ID of the asset model. * + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) in + * the *AWS IoT SiteWise User Guide* . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html#cfn-iotsitewise-assetmodel-assetmodelexternalid) * @param assetModelExternalId The external ID of the asset model. */ @@ -568,10 +572,15 @@ public open class CfnAssetModel( public fun assetModelProperties(vararg assetModelProperties: Any) /** - * The type of the asset model (ASSET_MODEL OR COMPONENT_MODEL). + * The type of asset model. + * + * * *ASSET_MODEL* – (default) An asset model that you can use to create assets. Can't be + * included as a component in another asset model. + * * *COMPONENT_MODEL* – A reusable component that you can include in the composite models of + * other asset models. You can't create assets directly from this type of asset model. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html#cfn-iotsitewise-assetmodel-assetmodeltype) - * @param assetModelType The type of the asset model (ASSET_MODEL OR COMPONENT_MODEL). + * @param assetModelType The type of asset model. */ public fun assetModelType(assetModelType: String) @@ -688,6 +697,10 @@ public open class CfnAssetModel( /** * The external ID of the asset model. * + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) in + * the *AWS IoT SiteWise User Guide* . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html#cfn-iotsitewise-assetmodel-assetmodelexternalid) * @param assetModelExternalId The external ID of the asset model. */ @@ -815,10 +828,15 @@ public open class CfnAssetModel( assetModelProperties(assetModelProperties.toList()) /** - * The type of the asset model (ASSET_MODEL OR COMPONENT_MODEL). + * The type of asset model. + * + * * *ASSET_MODEL* – (default) An asset model that you can use to create assets. Can't be + * included as a component in another asset model. + * * *COMPONENT_MODEL* – A reusable component that you can include in the composite models of + * other asset models. You can't create assets directly from this type of asset model. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html#cfn-iotsitewise-assetmodel-assetmodeltype) - * @param assetModelType The type of the asset model (ASSET_MODEL OR COMPONENT_MODEL). + * @param assetModelType The type of asset model. */ override fun assetModelType(assetModelType: String) { cdkBuilder.assetModelType(assetModelType) @@ -962,7 +980,7 @@ public open class CfnAssetModel( */ public interface AssetModelCompositeModelProperty { /** - * The component model ID for which the composite model is composed of. + * The ID of a component model which is reused to create this composite model. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelcompositemodel.html#cfn-iotsitewise-assetmodel-assetmodelcompositemodel-composedassetmodelid) */ @@ -978,19 +996,36 @@ public open class CfnAssetModel( /** * The description of the composite model. * + * + * If the composite model is a `component-model-based` composite model, the description is + * inherited from the `COMPONENT_MODEL` asset model and cannot be changed. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelcompositemodel.html#cfn-iotsitewise-assetmodel-assetmodelcompositemodel-description) */ public fun description(): String? = unwrap(this).getDescription() /** - * The External ID of the composite model. + * The external ID of a composite model on this asset model. + * + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) in + * the *AWS IoT SiteWise User Guide* . + * + * + * One of `ExternalId` or `Path` must be specified. + * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelcompositemodel.html#cfn-iotsitewise-assetmodel-assetmodelcompositemodel-externalid) */ public fun externalId(): String? = unwrap(this).getExternalId() /** - * The Actual ID of the composite model. + * The ID of the asset model composite model. + * + * + * This is a return value and can't be set. + * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelcompositemodel.html#cfn-iotsitewise-assetmodel-assetmodelcompositemodel-id) */ @@ -1004,7 +1039,11 @@ public open class CfnAssetModel( public fun name(): String /** - * The parent composite model External ID. + * The external ID of the parent composite model. + * + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) in + * the *AWS IoT SiteWise User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelcompositemodel.html#cfn-iotsitewise-assetmodel-assetmodelcompositemodel-parentassetmodelcompositemodelexternalid) */ @@ -1012,9 +1051,13 @@ public open class CfnAssetModel( unwrap(this).getParentAssetModelCompositeModelExternalId() /** - * The path of the composite model. + * The structured path to the property from the root of the asset using property names. + * + * Path is used as the ID if the asset model is a derived composite model. + * + * + * One of `ExternalId` or `Path` must be specified. * - * This is only for derived composite models * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelcompositemodel.html#cfn-iotsitewise-assetmodel-assetmodelcompositemodel-path) */ @@ -1035,8 +1078,8 @@ public open class CfnAssetModel( @CdkDslMarker public interface Builder { /** - * @param composedAssetModelId The component model ID for which the composite model is - * composed of. + * @param composedAssetModelId The ID of a component model which is reused to create this + * composite model. */ public fun composedAssetModelId(composedAssetModelId: String) @@ -1057,16 +1100,27 @@ public open class CfnAssetModel( /** * @param description The description of the composite model. + * + * If the composite model is a `component-model-based` composite model, the description is + * inherited from the `COMPONENT_MODEL` asset model and cannot be changed. */ public fun description(description: String) /** - * @param externalId The External ID of the composite model. + * @param externalId The external ID of a composite model on this asset model. + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) + * in the *AWS IoT SiteWise User Guide* . + * + * + * One of `ExternalId` or `Path` must be specified. */ public fun externalId(externalId: String) /** - * @param id The Actual ID of the composite model. + * @param id The ID of the asset model composite model. + * + * This is a return value and can't be set. */ public fun id(id: String) @@ -1076,20 +1130,32 @@ public open class CfnAssetModel( public fun name(name: String) /** - * @param parentAssetModelCompositeModelExternalId The parent composite model External ID. + * @param parentAssetModelCompositeModelExternalId The external ID of the parent composite + * model. + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) + * in the *AWS IoT SiteWise User Guide* . */ public fun parentAssetModelCompositeModelExternalId(parentAssetModelCompositeModelExternalId: String) /** - * @param path The path of the composite model. - * This is only for derived composite models + * @param path The structured path to the property from the root of the asset using property + * names. + * Path is used as the ID if the asset model is a derived composite model. + * + * + * One of `ExternalId` or `Path` must be specified. */ public fun path(path: List) /** - * @param path The path of the composite model. - * This is only for derived composite models + * @param path The structured path to the property from the root of the asset using property + * names. + * Path is used as the ID if the asset model is a derived composite model. + * + * + * One of `ExternalId` or `Path` must be specified. */ public fun path(vararg path: String) @@ -1107,8 +1173,8 @@ public open class CfnAssetModel( software.amazon.awscdk.services.iotsitewise.CfnAssetModel.AssetModelCompositeModelProperty.builder() /** - * @param composedAssetModelId The component model ID for which the composite model is - * composed of. + * @param composedAssetModelId The ID of a component model which is reused to create this + * composite model. */ override fun composedAssetModelId(composedAssetModelId: String) { cdkBuilder.composedAssetModelId(composedAssetModelId) @@ -1136,20 +1202,31 @@ public open class CfnAssetModel( /** * @param description The description of the composite model. + * + * If the composite model is a `component-model-based` composite model, the description is + * inherited from the `COMPONENT_MODEL` asset model and cannot be changed. */ override fun description(description: String) { cdkBuilder.description(description) } /** - * @param externalId The External ID of the composite model. + * @param externalId The external ID of a composite model on this asset model. + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) + * in the *AWS IoT SiteWise User Guide* . + * + * + * One of `ExternalId` or `Path` must be specified. */ override fun externalId(externalId: String) { cdkBuilder.externalId(externalId) } /** - * @param id The Actual ID of the composite model. + * @param id The ID of the asset model composite model. + * + * This is a return value and can't be set. */ override fun id(id: String) { cdkBuilder.id(id) @@ -1163,7 +1240,11 @@ public open class CfnAssetModel( } /** - * @param parentAssetModelCompositeModelExternalId The parent composite model External ID. + * @param parentAssetModelCompositeModelExternalId The external ID of the parent composite + * model. + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) + * in the *AWS IoT SiteWise User Guide* . */ override fun parentAssetModelCompositeModelExternalId(parentAssetModelCompositeModelExternalId: String) { @@ -1171,16 +1252,24 @@ public open class CfnAssetModel( } /** - * @param path The path of the composite model. - * This is only for derived composite models + * @param path The structured path to the property from the root of the asset using property + * names. + * Path is used as the ID if the asset model is a derived composite model. + * + * + * One of `ExternalId` or `Path` must be specified. */ override fun path(path: List) { cdkBuilder.path(path) } /** - * @param path The path of the composite model. - * This is only for derived composite models + * @param path The structured path to the property from the root of the asset using property + * names. + * Path is used as the ID if the asset model is a derived composite model. + * + * + * One of `ExternalId` or `Path` must be specified. */ override fun path(vararg path: String): Unit = path(path.toList()) @@ -1201,7 +1290,7 @@ public open class CfnAssetModel( cdkObject: software.amazon.awscdk.services.iotsitewise.CfnAssetModel.AssetModelCompositeModelProperty, ) : CdkObject(cdkObject), AssetModelCompositeModelProperty { /** - * The component model ID for which the composite model is composed of. + * The ID of a component model which is reused to create this composite model. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelcompositemodel.html#cfn-iotsitewise-assetmodel-assetmodelcompositemodel-composedassetmodelid) */ @@ -1217,19 +1306,36 @@ public open class CfnAssetModel( /** * The description of the composite model. * + * + * If the composite model is a `component-model-based` composite model, the description is + * inherited from the `COMPONENT_MODEL` asset model and cannot be changed. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelcompositemodel.html#cfn-iotsitewise-assetmodel-assetmodelcompositemodel-description) */ override fun description(): String? = unwrap(this).getDescription() /** - * The External ID of the composite model. + * The external ID of a composite model on this asset model. + * + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) + * in the *AWS IoT SiteWise User Guide* . + * + * + * One of `ExternalId` or `Path` must be specified. + * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelcompositemodel.html#cfn-iotsitewise-assetmodel-assetmodelcompositemodel-externalid) */ override fun externalId(): String? = unwrap(this).getExternalId() /** - * The Actual ID of the composite model. + * The ID of the asset model composite model. + * + * + * This is a return value and can't be set. + * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelcompositemodel.html#cfn-iotsitewise-assetmodel-assetmodelcompositemodel-id) */ @@ -1243,7 +1349,11 @@ public open class CfnAssetModel( override fun name(): String = unwrap(this).getName() /** - * The parent composite model External ID. + * The external ID of the parent composite model. + * + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) + * in the *AWS IoT SiteWise User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelcompositemodel.html#cfn-iotsitewise-assetmodel-assetmodelcompositemodel-parentassetmodelcompositemodelexternalid) */ @@ -1251,9 +1361,13 @@ public open class CfnAssetModel( unwrap(this).getParentAssetModelCompositeModelExternalId() /** - * The path of the composite model. + * The structured path to the property from the root of the asset using property names. + * + * Path is used as the ID if the asset model is a derived composite model. + * + * + * One of `ExternalId` or `Path` must be specified. * - * This is only for derived composite models * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelcompositemodel.html#cfn-iotsitewise-assetmodel-assetmodelcompositemodel-path) */ @@ -1327,23 +1441,54 @@ public open class CfnAssetModel( public fun childAssetModelId(): String /** - * Customer provided external ID for hierarchy. + * The external ID (if any) provided in the + * [CreateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html) + * or + * [UpdateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html) + * operation. You can assign an external ID by specifying this value as part of a call to + * [UpdateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html) + * . However, you can't change the external ID if one is already assigned. For more information, + * see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) in + * the *AWS IoT SiteWise User Guide* . + * + * + * One of `ExternalId` or `LogicalId` must be specified. + * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelhierarchy.html#cfn-iotsitewise-assetmodel-assetmodelhierarchy-externalid) */ public fun externalId(): String? = unwrap(this).getExternalId() /** - * Customer provided actual ID for hierarchy. + * The ID of the asset model hierarchy. This ID is a `hierarchyId` . + * + * + * This is a return value and can't be set. + * + * + * * If you are callling + * [UpdateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html) + * to create a *new* hierarchy: You can specify its ID here, if desired. AWS IoT SiteWise + * automatically generates a unique ID for you, so this parameter is never required. However, if + * you prefer to supply your own ID instead, you can specify it here in UUID format. If you specify + * your own ID, it must be globally unique. + * * If you are calling UpdateAssetModel to modify an *existing* hierarchy: This can be either + * the actual ID in UUID format, or else `externalId:` followed by the external ID, if it has one. + * For more information, see [Referencing objects with external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-id-references) + * in the *AWS IoT SiteWise User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelhierarchy.html#cfn-iotsitewise-assetmodel-assetmodelhierarchy-id) */ public fun id(): String? = unwrap(this).getId() /** - * The `LogicalID` of the asset model hierarchy. + * The `LogicalID` of the asset model hierarchy. This ID is a `hierarchyLogicalId` . + * + * + * One of `ExternalId` or `LogicalId` must be specified. * - * This ID is a `hierarchyLogicalId` . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelhierarchy.html#cfn-iotsitewise-assetmodel-assetmodelhierarchy-logicalid) */ @@ -1379,18 +1524,46 @@ public open class CfnAssetModel( public fun childAssetModelId(childAssetModelId: String) /** - * @param externalId Customer provided external ID for hierarchy. + * @param externalId The external ID (if any) provided in the + * [CreateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html) + * or + * [UpdateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html) + * operation. You can assign an external ID by specifying this value as part of a call to + * [UpdateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html) + * . However, you can't change the external ID if one is already assigned. For more information, + * see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) + * in the *AWS IoT SiteWise User Guide* . + * + * One of `ExternalId` or `LogicalId` must be specified. */ public fun externalId(externalId: String) /** - * @param id Customer provided actual ID for hierarchy. + * @param id The ID of the asset model hierarchy. This ID is a `hierarchyId` . + * + * This is a return value and can't be set. + * + * + * * If you are callling + * [UpdateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html) + * to create a *new* hierarchy: You can specify its ID here, if desired. AWS IoT SiteWise + * automatically generates a unique ID for you, so this parameter is never required. However, if + * you prefer to supply your own ID instead, you can specify it here in UUID format. If you + * specify your own ID, it must be globally unique. + * * If you are calling UpdateAssetModel to modify an *existing* hierarchy: This can be either + * the actual ID in UUID format, or else `externalId:` followed by the external ID, if it has + * one. For more information, see [Referencing objects with external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-id-references) + * in the *AWS IoT SiteWise User Guide* . */ public fun id(id: String) /** - * @param logicalId The `LogicalID` of the asset model hierarchy. - * This ID is a `hierarchyLogicalId` . + * @param logicalId The `LogicalID` of the asset model hierarchy. This ID is a + * `hierarchyLogicalId` . + * + * One of `ExternalId` or `LogicalId` must be specified. */ public fun logicalId(logicalId: String) @@ -1426,22 +1599,50 @@ public open class CfnAssetModel( } /** - * @param externalId Customer provided external ID for hierarchy. + * @param externalId The external ID (if any) provided in the + * [CreateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html) + * or + * [UpdateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html) + * operation. You can assign an external ID by specifying this value as part of a call to + * [UpdateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html) + * . However, you can't change the external ID if one is already assigned. For more information, + * see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) + * in the *AWS IoT SiteWise User Guide* . + * + * One of `ExternalId` or `LogicalId` must be specified. */ override fun externalId(externalId: String) { cdkBuilder.externalId(externalId) } /** - * @param id Customer provided actual ID for hierarchy. + * @param id The ID of the asset model hierarchy. This ID is a `hierarchyId` . + * + * This is a return value and can't be set. + * + * + * * If you are callling + * [UpdateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html) + * to create a *new* hierarchy: You can specify its ID here, if desired. AWS IoT SiteWise + * automatically generates a unique ID for you, so this parameter is never required. However, if + * you prefer to supply your own ID instead, you can specify it here in UUID format. If you + * specify your own ID, it must be globally unique. + * * If you are calling UpdateAssetModel to modify an *existing* hierarchy: This can be either + * the actual ID in UUID format, or else `externalId:` followed by the external ID, if it has + * one. For more information, see [Referencing objects with external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-id-references) + * in the *AWS IoT SiteWise User Guide* . */ override fun id(id: String) { cdkBuilder.id(id) } /** - * @param logicalId The `LogicalID` of the asset model hierarchy. - * This ID is a `hierarchyLogicalId` . + * @param logicalId The `LogicalID` of the asset model hierarchy. This ID is a + * `hierarchyLogicalId` . + * + * One of `ExternalId` or `LogicalId` must be specified. */ override fun logicalId(logicalId: String) { cdkBuilder.logicalId(logicalId) @@ -1483,23 +1684,54 @@ public open class CfnAssetModel( override fun childAssetModelId(): String = unwrap(this).getChildAssetModelId() /** - * Customer provided external ID for hierarchy. + * The external ID (if any) provided in the + * [CreateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html) + * or + * [UpdateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html) + * operation. You can assign an external ID by specifying this value as part of a call to + * [UpdateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html) + * . However, you can't change the external ID if one is already assigned. For more information, + * see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) + * in the *AWS IoT SiteWise User Guide* . + * + * + * One of `ExternalId` or `LogicalId` must be specified. + * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelhierarchy.html#cfn-iotsitewise-assetmodel-assetmodelhierarchy-externalid) */ override fun externalId(): String? = unwrap(this).getExternalId() /** - * Customer provided actual ID for hierarchy. + * The ID of the asset model hierarchy. This ID is a `hierarchyId` . + * + * + * This is a return value and can't be set. + * + * + * * If you are callling + * [UpdateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html) + * to create a *new* hierarchy: You can specify its ID here, if desired. AWS IoT SiteWise + * automatically generates a unique ID for you, so this parameter is never required. However, if + * you prefer to supply your own ID instead, you can specify it here in UUID format. If you + * specify your own ID, it must be globally unique. + * * If you are calling UpdateAssetModel to modify an *existing* hierarchy: This can be either + * the actual ID in UUID format, or else `externalId:` followed by the external ID, if it has + * one. For more information, see [Referencing objects with external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-id-references) + * in the *AWS IoT SiteWise User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelhierarchy.html#cfn-iotsitewise-assetmodel-assetmodelhierarchy-id) */ override fun id(): String? = unwrap(this).getId() /** - * The `LogicalID` of the asset model hierarchy. + * The `LogicalID` of the asset model hierarchy. This ID is a `hierarchyLogicalId` . + * + * + * One of `ExternalId` or `LogicalId` must be specified. * - * This ID is a `hierarchyLogicalId` . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelhierarchy.html#cfn-iotsitewise-assetmodel-assetmodelhierarchy-logicalid) */ @@ -1624,14 +1856,26 @@ public open class CfnAssetModel( public fun dataTypeSpec(): String? = unwrap(this).getDataTypeSpec() /** - * The External ID of the Asset Model Property. + * The external ID of the asset property. + * + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) in + * the *AWS IoT SiteWise User Guide* . + * + * + * One of `ExternalId` or `LogicalId` must be specified. + * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html#cfn-iotsitewise-assetmodel-assetmodelproperty-externalid) */ public fun externalId(): String? = unwrap(this).getExternalId() /** - * The ID of the Asset Model Property. + * The ID of the property. + * + * + * This is a return value and can't be set. + * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html#cfn-iotsitewise-assetmodel-assetmodelproperty-id) */ @@ -1640,6 +1884,10 @@ public open class CfnAssetModel( /** * The `LogicalID` of the asset model property. * + * + * One of `ExternalId` or `LogicalId` must be specified. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html#cfn-iotsitewise-assetmodel-assetmodelproperty-logicalid) */ public fun logicalId(): String? = unwrap(this).getLogicalId() @@ -1683,17 +1931,27 @@ public open class CfnAssetModel( public fun dataTypeSpec(dataTypeSpec: String) /** - * @param externalId The External ID of the Asset Model Property. + * @param externalId The external ID of the asset property. + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) + * in the *AWS IoT SiteWise User Guide* . + * + * + * One of `ExternalId` or `LogicalId` must be specified. */ public fun externalId(externalId: String) /** - * @param id The ID of the Asset Model Property. + * @param id The ID of the property. + * + * This is a return value and can't be set. */ public fun id(id: String) /** * @param logicalId The `LogicalID` of the asset model property. + * + * One of `ExternalId` or `LogicalId` must be specified. */ public fun logicalId(logicalId: String) @@ -1750,14 +2008,22 @@ public open class CfnAssetModel( } /** - * @param externalId The External ID of the Asset Model Property. + * @param externalId The external ID of the asset property. + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) + * in the *AWS IoT SiteWise User Guide* . + * + * + * One of `ExternalId` or `LogicalId` must be specified. */ override fun externalId(externalId: String) { cdkBuilder.externalId(externalId) } /** - * @param id The ID of the Asset Model Property. + * @param id The ID of the property. + * + * This is a return value and can't be set. */ override fun id(id: String) { cdkBuilder.id(id) @@ -1765,6 +2031,8 @@ public open class CfnAssetModel( /** * @param logicalId The `LogicalID` of the asset model property. + * + * One of `ExternalId` or `LogicalId` must be specified. */ override fun logicalId(logicalId: String) { cdkBuilder.logicalId(logicalId) @@ -1834,14 +2102,26 @@ public open class CfnAssetModel( override fun dataTypeSpec(): String? = unwrap(this).getDataTypeSpec() /** - * The External ID of the Asset Model Property. + * The external ID of the asset property. + * + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) + * in the *AWS IoT SiteWise User Guide* . + * + * + * One of `ExternalId` or `LogicalId` must be specified. + * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html#cfn-iotsitewise-assetmodel-assetmodelproperty-externalid) */ override fun externalId(): String? = unwrap(this).getExternalId() /** - * The ID of the Asset Model Property. + * The ID of the property. + * + * + * This is a return value and can't be set. + * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html#cfn-iotsitewise-assetmodel-assetmodelproperty-id) */ @@ -1850,6 +2130,10 @@ public open class CfnAssetModel( /** * The `LogicalID` of the asset model property. * + * + * One of `ExternalId` or `LogicalId` must be specified. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html#cfn-iotsitewise-assetmodel-assetmodelproperty-logicalid) */ override fun logicalId(): String? = unwrap(this).getLogicalId() @@ -2522,7 +2806,7 @@ public open class CfnAssetModel( } /** - * The definition for property path which is used to reference properties in transforms/metrics. + * Represents one level between a composite model and the root of the asset model. * * Example: * @@ -2540,7 +2824,7 @@ public open class CfnAssetModel( */ public interface PropertyPathDefinitionProperty { /** - * The name of the property. + * The name of the path segment. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-propertypathdefinition.html#cfn-iotsitewise-assetmodel-propertypathdefinition-name) */ @@ -2552,7 +2836,7 @@ public open class CfnAssetModel( @CdkDslMarker public interface Builder { /** - * @param name The name of the property. + * @param name The name of the path segment. */ public fun name(name: String) } @@ -2564,7 +2848,7 @@ public open class CfnAssetModel( software.amazon.awscdk.services.iotsitewise.CfnAssetModel.PropertyPathDefinitionProperty.builder() /** - * @param name The name of the property. + * @param name The name of the path segment. */ override fun name(name: String) { cdkBuilder.name(name) @@ -2579,7 +2863,7 @@ public open class CfnAssetModel( cdkObject: software.amazon.awscdk.services.iotsitewise.CfnAssetModel.PropertyPathDefinitionProperty, ) : CdkObject(cdkObject), PropertyPathDefinitionProperty { /** - * The name of the property. + * The name of the path segment. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-propertypathdefinition.html#cfn-iotsitewise-assetmodel-propertypathdefinition-name) */ @@ -3458,14 +3742,30 @@ public open class CfnAssetModel( */ public interface VariableValueProperty { /** - * The External ID of the hierarchy that is trying to be referenced. + * The external ID of the hierarchy being referenced. + * + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) in + * the *AWS IoT SiteWise User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-variablevalue.html#cfn-iotsitewise-assetmodel-variablevalue-hierarchyexternalid) */ public fun hierarchyExternalId(): String? = unwrap(this).getHierarchyExternalId() /** - * The ID of the hierarchy that is trying to be referenced. + * The ID of the hierarchy to query for the property ID. + * + * You can use the hierarchy's name instead of the hierarchy's ID. If the hierarchy has an + * external ID, you can specify `externalId:` followed by the external ID. For more information, + * see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) in + * the *AWS IoT SiteWise User Guide* . + * + * You use a hierarchy ID instead of a model ID because you can have several hierarchies using + * the same model and therefore the same `propertyId` . For example, you might have separately + * grouped assets that come from the same asset model. For more information, see [Asset + * hierarchies](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html) + * in the *AWS IoT SiteWise User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-variablevalue.html#cfn-iotsitewise-assetmodel-variablevalue-hierarchyid) */ @@ -3486,14 +3786,28 @@ public open class CfnAssetModel( public fun hierarchyLogicalId(): String? = unwrap(this).getHierarchyLogicalId() /** - * The External ID of the property that is trying to be referenced. + * The external ID of the property being referenced. + * + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) in + * the *AWS IoT SiteWise User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-variablevalue.html#cfn-iotsitewise-assetmodel-variablevalue-propertyexternalid) */ public fun propertyExternalId(): String? = unwrap(this).getPropertyExternalId() /** - * The ID of the property that is trying to be referenced. + * The ID of the property to use as the variable. + * + * You can use the property `name` if it's from the same asset model. If the property has an + * external ID, you can specify `externalId:` followed by the external ID. For more information, + * see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) in + * the *AWS IoT SiteWise User Guide* . + * + * + * This is a return value and can't be set. + * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-variablevalue.html#cfn-iotsitewise-assetmodel-variablevalue-propertyid) */ @@ -3507,7 +3821,11 @@ public open class CfnAssetModel( public fun propertyLogicalId(): String? = unwrap(this).getPropertyLogicalId() /** - * The path of the property that is trying to be referenced. + * The path of the property. + * + * Each step of the path is the name of the step. See the following example: + * + * `PropertyPath: Name: AssetModelName Name: Composite1 Name: NestedComposite` * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-variablevalue.html#cfn-iotsitewise-assetmodel-variablevalue-propertypath) */ @@ -3519,13 +3837,26 @@ public open class CfnAssetModel( @CdkDslMarker public interface Builder { /** - * @param hierarchyExternalId The External ID of the hierarchy that is trying to be - * referenced. + * @param hierarchyExternalId The external ID of the hierarchy being referenced. + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) + * in the *AWS IoT SiteWise User Guide* . */ public fun hierarchyExternalId(hierarchyExternalId: String) /** - * @param hierarchyId The ID of the hierarchy that is trying to be referenced. + * @param hierarchyId The ID of the hierarchy to query for the property ID. + * You can use the hierarchy's name instead of the hierarchy's ID. If the hierarchy has an + * external ID, you can specify `externalId:` followed by the external ID. For more information, + * see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) + * in the *AWS IoT SiteWise User Guide* . + * + * You use a hierarchy ID instead of a model ID because you can have several hierarchies using + * the same model and therefore the same `propertyId` . For example, you might have separately + * grouped assets that come from the same asset model. For more information, see [Asset + * hierarchies](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html) + * in the *AWS IoT SiteWise User Guide* . */ public fun hierarchyId(hierarchyId: String) @@ -3542,12 +3873,23 @@ public open class CfnAssetModel( public fun hierarchyLogicalId(hierarchyLogicalId: String) /** - * @param propertyExternalId The External ID of the property that is trying to be referenced. + * @param propertyExternalId The external ID of the property being referenced. + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) + * in the *AWS IoT SiteWise User Guide* . */ public fun propertyExternalId(propertyExternalId: String) /** - * @param propertyId The ID of the property that is trying to be referenced. + * @param propertyId The ID of the property to use as the variable. + * You can use the property `name` if it's from the same asset model. If the property has an + * external ID, you can specify `externalId:` followed by the external ID. For more information, + * see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) + * in the *AWS IoT SiteWise User Guide* . + * + * + * This is a return value and can't be set. */ public fun propertyId(propertyId: String) @@ -3557,17 +3899,26 @@ public open class CfnAssetModel( public fun propertyLogicalId(propertyLogicalId: String) /** - * @param propertyPath The path of the property that is trying to be referenced. + * @param propertyPath The path of the property. + * Each step of the path is the name of the step. See the following example: + * + * `PropertyPath: Name: AssetModelName Name: Composite1 Name: NestedComposite` */ public fun propertyPath(propertyPath: IResolvable) /** - * @param propertyPath The path of the property that is trying to be referenced. + * @param propertyPath The path of the property. + * Each step of the path is the name of the step. See the following example: + * + * `PropertyPath: Name: AssetModelName Name: Composite1 Name: NestedComposite` */ public fun propertyPath(propertyPath: List) /** - * @param propertyPath The path of the property that is trying to be referenced. + * @param propertyPath The path of the property. + * Each step of the path is the name of the step. See the following example: + * + * `PropertyPath: Name: AssetModelName Name: Composite1 Name: NestedComposite` */ public fun propertyPath(vararg propertyPath: Any) } @@ -3578,15 +3929,28 @@ public open class CfnAssetModel( software.amazon.awscdk.services.iotsitewise.CfnAssetModel.VariableValueProperty.builder() /** - * @param hierarchyExternalId The External ID of the hierarchy that is trying to be - * referenced. + * @param hierarchyExternalId The external ID of the hierarchy being referenced. + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) + * in the *AWS IoT SiteWise User Guide* . */ override fun hierarchyExternalId(hierarchyExternalId: String) { cdkBuilder.hierarchyExternalId(hierarchyExternalId) } /** - * @param hierarchyId The ID of the hierarchy that is trying to be referenced. + * @param hierarchyId The ID of the hierarchy to query for the property ID. + * You can use the hierarchy's name instead of the hierarchy's ID. If the hierarchy has an + * external ID, you can specify `externalId:` followed by the external ID. For more information, + * see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) + * in the *AWS IoT SiteWise User Guide* . + * + * You use a hierarchy ID instead of a model ID because you can have several hierarchies using + * the same model and therefore the same `propertyId` . For example, you might have separately + * grouped assets that come from the same asset model. For more information, see [Asset + * hierarchies](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html) + * in the *AWS IoT SiteWise User Guide* . */ override fun hierarchyId(hierarchyId: String) { cdkBuilder.hierarchyId(hierarchyId) @@ -3607,14 +3971,25 @@ public open class CfnAssetModel( } /** - * @param propertyExternalId The External ID of the property that is trying to be referenced. + * @param propertyExternalId The external ID of the property being referenced. + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) + * in the *AWS IoT SiteWise User Guide* . */ override fun propertyExternalId(propertyExternalId: String) { cdkBuilder.propertyExternalId(propertyExternalId) } /** - * @param propertyId The ID of the property that is trying to be referenced. + * @param propertyId The ID of the property to use as the variable. + * You can use the property `name` if it's from the same asset model. If the property has an + * external ID, you can specify `externalId:` followed by the external ID. For more information, + * see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) + * in the *AWS IoT SiteWise User Guide* . + * + * + * This is a return value and can't be set. */ override fun propertyId(propertyId: String) { cdkBuilder.propertyId(propertyId) @@ -3628,21 +4003,30 @@ public open class CfnAssetModel( } /** - * @param propertyPath The path of the property that is trying to be referenced. + * @param propertyPath The path of the property. + * Each step of the path is the name of the step. See the following example: + * + * `PropertyPath: Name: AssetModelName Name: Composite1 Name: NestedComposite` */ override fun propertyPath(propertyPath: IResolvable) { cdkBuilder.propertyPath(propertyPath.let(IResolvable::unwrap)) } /** - * @param propertyPath The path of the property that is trying to be referenced. + * @param propertyPath The path of the property. + * Each step of the path is the name of the step. See the following example: + * + * `PropertyPath: Name: AssetModelName Name: Composite1 Name: NestedComposite` */ override fun propertyPath(propertyPath: List) { cdkBuilder.propertyPath(propertyPath.map{CdkObjectWrappers.unwrap(it)}) } /** - * @param propertyPath The path of the property that is trying to be referenced. + * @param propertyPath The path of the property. + * Each step of the path is the name of the step. See the following example: + * + * `PropertyPath: Name: AssetModelName Name: Composite1 Name: NestedComposite` */ override fun propertyPath(vararg propertyPath: Any): Unit = propertyPath(propertyPath.toList()) @@ -3656,14 +4040,30 @@ public open class CfnAssetModel( cdkObject: software.amazon.awscdk.services.iotsitewise.CfnAssetModel.VariableValueProperty, ) : CdkObject(cdkObject), VariableValueProperty { /** - * The External ID of the hierarchy that is trying to be referenced. + * The external ID of the hierarchy being referenced. + * + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) + * in the *AWS IoT SiteWise User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-variablevalue.html#cfn-iotsitewise-assetmodel-variablevalue-hierarchyexternalid) */ override fun hierarchyExternalId(): String? = unwrap(this).getHierarchyExternalId() /** - * The ID of the hierarchy that is trying to be referenced. + * The ID of the hierarchy to query for the property ID. + * + * You can use the hierarchy's name instead of the hierarchy's ID. If the hierarchy has an + * external ID, you can specify `externalId:` followed by the external ID. For more information, + * see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) + * in the *AWS IoT SiteWise User Guide* . + * + * You use a hierarchy ID instead of a model ID because you can have several hierarchies using + * the same model and therefore the same `propertyId` . For example, you might have separately + * grouped assets that come from the same asset model. For more information, see [Asset + * hierarchies](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html) + * in the *AWS IoT SiteWise User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-variablevalue.html#cfn-iotsitewise-assetmodel-variablevalue-hierarchyid) */ @@ -3684,14 +4084,28 @@ public open class CfnAssetModel( override fun hierarchyLogicalId(): String? = unwrap(this).getHierarchyLogicalId() /** - * The External ID of the property that is trying to be referenced. + * The external ID of the property being referenced. + * + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) + * in the *AWS IoT SiteWise User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-variablevalue.html#cfn-iotsitewise-assetmodel-variablevalue-propertyexternalid) */ override fun propertyExternalId(): String? = unwrap(this).getPropertyExternalId() /** - * The ID of the property that is trying to be referenced. + * The ID of the property to use as the variable. + * + * You can use the property `name` if it's from the same asset model. If the property has an + * external ID, you can specify `externalId:` followed by the external ID. For more information, + * see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) + * in the *AWS IoT SiteWise User Guide* . + * + * + * This is a return value and can't be set. + * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-variablevalue.html#cfn-iotsitewise-assetmodel-variablevalue-propertyid) */ @@ -3705,7 +4119,11 @@ public open class CfnAssetModel( override fun propertyLogicalId(): String? = unwrap(this).getPropertyLogicalId() /** - * The path of the property that is trying to be referenced. + * The path of the property. + * + * Each step of the path is the name of the step. See the following example: + * + * `PropertyPath: Name: AssetModelName Name: Composite1 Name: NestedComposite` * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-variablevalue.html#cfn-iotsitewise-assetmodel-variablevalue-propertypath) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iotsitewise/CfnAssetModelProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iotsitewise/CfnAssetModelProps.kt index 9f292b4da5..34aee81604 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iotsitewise/CfnAssetModelProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iotsitewise/CfnAssetModelProps.kt @@ -202,6 +202,10 @@ public interface CfnAssetModelProps { /** * The external ID of the asset model. * + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) in + * the *AWS IoT SiteWise User Guide* . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html#cfn-iotsitewise-assetmodel-assetmodelexternalid) */ public fun assetModelExternalId(): String? = unwrap(this).getAssetModelExternalId() @@ -245,7 +249,12 @@ public interface CfnAssetModelProps { public fun assetModelProperties(): Any? = unwrap(this).getAssetModelProperties() /** - * The type of the asset model (ASSET_MODEL OR COMPONENT_MODEL). + * The type of asset model. + * + * * *ASSET_MODEL* – (default) An asset model that you can use to create assets. Can't be included + * as a component in another asset model. + * * *COMPONENT_MODEL* – A reusable component that you can include in the composite models of + * other asset models. You can't create assets directly from this type of asset model. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html#cfn-iotsitewise-assetmodel-assetmodeltype) */ @@ -322,6 +331,9 @@ public interface CfnAssetModelProps { /** * @param assetModelExternalId The external ID of the asset model. + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) in + * the *AWS IoT SiteWise User Guide* . */ public fun assetModelExternalId(assetModelExternalId: String) @@ -406,7 +418,11 @@ public interface CfnAssetModelProps { public fun assetModelProperties(vararg assetModelProperties: Any) /** - * @param assetModelType The type of the asset model (ASSET_MODEL OR COMPONENT_MODEL). + * @param assetModelType The type of asset model. + * * *ASSET_MODEL* – (default) An asset model that you can use to create assets. Can't be + * included as a component in another asset model. + * * *COMPONENT_MODEL* – A reusable component that you can include in the composite models of + * other asset models. You can't create assets directly from this type of asset model. */ public fun assetModelType(assetModelType: String) @@ -493,6 +509,9 @@ public interface CfnAssetModelProps { /** * @param assetModelExternalId The external ID of the asset model. + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) in + * the *AWS IoT SiteWise User Guide* . */ override fun assetModelExternalId(assetModelExternalId: String) { cdkBuilder.assetModelExternalId(assetModelExternalId) @@ -591,7 +610,11 @@ public interface CfnAssetModelProps { assetModelProperties(assetModelProperties.toList()) /** - * @param assetModelType The type of the asset model (ASSET_MODEL OR COMPONENT_MODEL). + * @param assetModelType The type of asset model. + * * *ASSET_MODEL* – (default) An asset model that you can use to create assets. Can't be + * included as a component in another asset model. + * * *COMPONENT_MODEL* – A reusable component that you can include in the composite models of + * other asset models. You can't create assets directly from this type of asset model. */ override fun assetModelType(assetModelType: String) { cdkBuilder.assetModelType(assetModelType) @@ -652,6 +675,10 @@ public interface CfnAssetModelProps { /** * The external ID of the asset model. * + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) in + * the *AWS IoT SiteWise User Guide* . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html#cfn-iotsitewise-assetmodel-assetmodelexternalid) */ override fun assetModelExternalId(): String? = unwrap(this).getAssetModelExternalId() @@ -695,7 +722,12 @@ public interface CfnAssetModelProps { override fun assetModelProperties(): Any? = unwrap(this).getAssetModelProperties() /** - * The type of the asset model (ASSET_MODEL OR COMPONENT_MODEL). + * The type of asset model. + * + * * *ASSET_MODEL* – (default) An asset model that you can use to create assets. Can't be + * included as a component in another asset model. + * * *COMPONENT_MODEL* – A reusable component that you can include in the composite models of + * other asset models. You can't create assets directly from this type of asset model. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html#cfn-iotsitewise-assetmodel-assetmodeltype) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iotsitewise/CfnAssetProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iotsitewise/CfnAssetProps.kt index 24f3968dfc..dd6fba6b27 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iotsitewise/CfnAssetProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iotsitewise/CfnAssetProps.kt @@ -60,7 +60,11 @@ public interface CfnAssetProps { public fun assetDescription(): String? = unwrap(this).getAssetDescription() /** - * The External ID of the asset. + * The external ID of the asset model composite model. + * + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) in + * the *AWS IoT SiteWise User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-asset.html#cfn-iotsitewise-asset-assetexternalid) */ @@ -126,7 +130,10 @@ public interface CfnAssetProps { public fun assetDescription(assetDescription: String) /** - * @param assetExternalId The External ID of the asset. + * @param assetExternalId The external ID of the asset model composite model. + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) in + * the *AWS IoT SiteWise User Guide* . */ public fun assetExternalId(assetExternalId: String) @@ -212,7 +219,10 @@ public interface CfnAssetProps { } /** - * @param assetExternalId The External ID of the asset. + * @param assetExternalId The external ID of the asset model composite model. + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) in + * the *AWS IoT SiteWise User Guide* . */ override fun assetExternalId(assetExternalId: String) { cdkBuilder.assetExternalId(assetExternalId) @@ -318,7 +328,11 @@ public interface CfnAssetProps { override fun assetDescription(): String? = unwrap(this).getAssetDescription() /** - * The External ID of the asset. + * The external ID of the asset model composite model. + * + * For more information, see [Using external + * IDs](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/object-ids.html#external-ids) in + * the *AWS IoT SiteWise User Guide* . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-asset.html#cfn-iotsitewise-asset-assetexternalid) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iotwireless/CfnWirelessDevice.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iotwireless/CfnWirelessDevice.kt index 5a9eef8dc9..975611b909 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iotwireless/CfnWirelessDevice.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/iotwireless/CfnWirelessDevice.kt @@ -871,7 +871,7 @@ public open class CfnWirelessDevice( * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-lorawandevice.html#cfn-iotwireless-wirelessdevice-lorawandevice-abpv10x) */ - public fun abpV10x(): Any? = unwrap(this).getAbpV10X() + public fun abpV10X(): Any? = unwrap(this).getAbpV10X() /** * ABP device object for create APIs for v1.1. @@ -899,7 +899,7 @@ public open class CfnWirelessDevice( * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-lorawandevice.html#cfn-iotwireless-wirelessdevice-lorawandevice-otaav10x) */ - public fun otaaV10x(): Any? = unwrap(this).getOtaaV10X() + public fun otaaV10X(): Any? = unwrap(this).getOtaaV10X() /** * OTAA device object for v1.1 for create APIs. @@ -923,19 +923,19 @@ public open class CfnWirelessDevice( /** * @param abpV10X ABP device object for LoRaWAN specification v1.0.x. */ - public fun abpV10x(abpV10X: IResolvable) + public fun abpV10X(abpV10X: IResolvable) /** * @param abpV10X ABP device object for LoRaWAN specification v1.0.x. */ - public fun abpV10x(abpV10X: AbpV10xProperty) + public fun abpV10X(abpV10X: AbpV10xProperty) /** * @param abpV10X ABP device object for LoRaWAN specification v1.0.x. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("5178e3a9b15e101d25e20d372730d352b8850925bb7d52c981ab283bfd41e05e") - public fun abpV10x(abpV10X: AbpV10xProperty.Builder.() -> Unit) + @JvmName("31d1329837a555378d17b475b6f0606f5d664a3ef01d19be5802e27f31e13397") + public fun abpV10X(abpV10X: AbpV10xProperty.Builder.() -> Unit) /** * @param abpV11 ABP device object for create APIs for v1.1. @@ -967,19 +967,19 @@ public open class CfnWirelessDevice( /** * @param otaaV10X OTAA device object for create APIs for v1.0.x. */ - public fun otaaV10x(otaaV10X: IResolvable) + public fun otaaV10X(otaaV10X: IResolvable) /** * @param otaaV10X OTAA device object for create APIs for v1.0.x. */ - public fun otaaV10x(otaaV10X: OtaaV10xProperty) + public fun otaaV10X(otaaV10X: OtaaV10xProperty) /** * @param otaaV10X OTAA device object for create APIs for v1.0.x. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("42f54ce128eedb8686fb22d1877fea1d6a762394c25c672f14833e1d980f3285") - public fun otaaV10x(otaaV10X: OtaaV10xProperty.Builder.() -> Unit) + @JvmName("9d835de486fdf1d3d0d58e6b6132d02e3068d8b032a7d23364924d046784030d") + public fun otaaV10X(otaaV10X: OtaaV10xProperty.Builder.() -> Unit) /** * @param otaaV11 OTAA device object for v1.1 for create APIs. @@ -1013,14 +1013,14 @@ public open class CfnWirelessDevice( /** * @param abpV10X ABP device object for LoRaWAN specification v1.0.x. */ - override fun abpV10x(abpV10X: IResolvable) { + override fun abpV10X(abpV10X: IResolvable) { cdkBuilder.abpV10X(abpV10X.let(IResolvable::unwrap)) } /** * @param abpV10X ABP device object for LoRaWAN specification v1.0.x. */ - override fun abpV10x(abpV10X: AbpV10xProperty) { + override fun abpV10X(abpV10X: AbpV10xProperty) { cdkBuilder.abpV10X(abpV10X.let(AbpV10xProperty::unwrap)) } @@ -1028,9 +1028,9 @@ public open class CfnWirelessDevice( * @param abpV10X ABP device object for LoRaWAN specification v1.0.x. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("5178e3a9b15e101d25e20d372730d352b8850925bb7d52c981ab283bfd41e05e") - override fun abpV10x(abpV10X: AbpV10xProperty.Builder.() -> Unit): Unit = - abpV10x(AbpV10xProperty(abpV10X)) + @JvmName("31d1329837a555378d17b475b6f0606f5d664a3ef01d19be5802e27f31e13397") + override fun abpV10X(abpV10X: AbpV10xProperty.Builder.() -> Unit): Unit = + abpV10X(AbpV10xProperty(abpV10X)) /** * @param abpV11 ABP device object for create APIs for v1.1. @@ -1071,14 +1071,14 @@ public open class CfnWirelessDevice( /** * @param otaaV10X OTAA device object for create APIs for v1.0.x. */ - override fun otaaV10x(otaaV10X: IResolvable) { + override fun otaaV10X(otaaV10X: IResolvable) { cdkBuilder.otaaV10X(otaaV10X.let(IResolvable::unwrap)) } /** * @param otaaV10X OTAA device object for create APIs for v1.0.x. */ - override fun otaaV10x(otaaV10X: OtaaV10xProperty) { + override fun otaaV10X(otaaV10X: OtaaV10xProperty) { cdkBuilder.otaaV10X(otaaV10X.let(OtaaV10xProperty::unwrap)) } @@ -1086,9 +1086,9 @@ public open class CfnWirelessDevice( * @param otaaV10X OTAA device object for create APIs for v1.0.x. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("42f54ce128eedb8686fb22d1877fea1d6a762394c25c672f14833e1d980f3285") - override fun otaaV10x(otaaV10X: OtaaV10xProperty.Builder.() -> Unit): Unit = - otaaV10x(OtaaV10xProperty(otaaV10X)) + @JvmName("9d835de486fdf1d3d0d58e6b6132d02e3068d8b032a7d23364924d046784030d") + override fun otaaV10X(otaaV10X: OtaaV10xProperty.Builder.() -> Unit): Unit = + otaaV10X(OtaaV10xProperty(otaaV10X)) /** * @param otaaV11 OTAA device object for v1.1 for create APIs. @@ -1132,7 +1132,7 @@ public open class CfnWirelessDevice( * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-lorawandevice.html#cfn-iotwireless-wirelessdevice-lorawandevice-abpv10x) */ - override fun abpV10x(): Any? = unwrap(this).getAbpV10X() + override fun abpV10X(): Any? = unwrap(this).getAbpV10X() /** * ABP device object for create APIs for v1.1. @@ -1160,7 +1160,7 @@ public open class CfnWirelessDevice( * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-lorawandevice.html#cfn-iotwireless-wirelessdevice-lorawandevice-otaav10x) */ - override fun otaaV10x(): Any? = unwrap(this).getOtaaV10X() + override fun otaaV10X(): Any? = unwrap(this).getOtaaV10X() /** * OTAA device object for v1.1 for create APIs. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ivs/CfnEncoderConfiguration.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ivs/CfnEncoderConfiguration.kt new file mode 100644 index 0000000000..98b22eb3b6 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ivs/CfnEncoderConfiguration.kt @@ -0,0 +1,551 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.ivs + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.ITaggableV2 +import io.cloudshiftdev.awscdk.TagManager +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.Number +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.jvm.JvmName +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * The `AWS::IVS::EncoderConfiguration` resource specifies an encoder configuration. + * + * An encoder configuration describes a stream’s video configuration. For more information, see + * [Streaming + * Configuration](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/streaming-config.html) in + * the *Amazon IVS Low-Latency Streaming User Guide* . + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.ivs.*; + * CfnEncoderConfiguration cfnEncoderConfiguration = CfnEncoderConfiguration.Builder.create(this, + * "MyCfnEncoderConfiguration") + * .name("name") + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .video(VideoProperty.builder() + * .bitrate(123) + * .framerate(123) + * .height(123) + * .width(123) + * .build()) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-encoderconfiguration.html) + */ +public open class CfnEncoderConfiguration( + cdkObject: software.amazon.awscdk.services.ivs.CfnEncoderConfiguration, +) : CfnResource(cdkObject), IInspectable, ITaggableV2 { + public constructor(scope: CloudshiftdevConstructsConstruct, id: String) : + this(software.amazon.awscdk.services.ivs.CfnEncoderConfiguration(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnEncoderConfigurationProps, + ) : + this(software.amazon.awscdk.services.ivs.CfnEncoderConfiguration(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnEncoderConfigurationProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnEncoderConfigurationProps.Builder.() -> Unit, + ) : this(scope, id, CfnEncoderConfigurationProps(props) + ) + + /** + * The encoder-configuration ARN. + * + * For example: `arn:aws:ivs:us-west-2:123456789012:encoder-configuration/abcdABCDefgh` + */ + public open fun attrArn(): String = unwrap(this).getAttrArn() + + /** + * Tag Manager which manages the tags for this resource. + */ + public override fun cdkTagManager(): TagManager = + unwrap(this).getCdkTagManager().let(TagManager::wrap) + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * Encoder cnfiguration name. + */ + public open fun name(): String? = unwrap(this).getName() + + /** + * Encoder cnfiguration name. + */ + public open fun name(`value`: String) { + unwrap(this).setName(`value`) + } + + /** + * An array of key-value pairs to apply to this resource. + */ + public open fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * An array of key-value pairs to apply to this resource. + */ + public open fun tags(`value`: List) { + unwrap(this).setTags(`value`.map(CfnTag::unwrap)) + } + + /** + * An array of key-value pairs to apply to this resource. + */ + public open fun tags(vararg `value`: CfnTag): Unit = tags(`value`.toList()) + + /** + * Video configuration. + */ + public open fun video(): Any? = unwrap(this).getVideo() + + /** + * Video configuration. + */ + public open fun video(`value`: IResolvable) { + unwrap(this).setVideo(`value`.let(IResolvable::unwrap)) + } + + /** + * Video configuration. + */ + public open fun video(`value`: VideoProperty) { + unwrap(this).setVideo(`value`.let(VideoProperty::unwrap)) + } + + /** + * Video configuration. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("fb700c58dc8e1dbd583b91299e23788be36e9b0264cf655622d21d6785dfa188") + public open fun video(`value`: VideoProperty.Builder.() -> Unit): Unit = + video(VideoProperty(`value`)) + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.ivs.CfnEncoderConfiguration]. + */ + @CdkDslMarker + public interface Builder { + /** + * Encoder cnfiguration name. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-encoderconfiguration.html#cfn-ivs-encoderconfiguration-name) + * @param name Encoder cnfiguration name. + */ + public fun name(name: String) + + /** + * An array of key-value pairs to apply to this resource. + * + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-tag.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-encoderconfiguration.html#cfn-ivs-encoderconfiguration-tags) + * @param tags An array of key-value pairs to apply to this resource. + */ + public fun tags(tags: List) + + /** + * An array of key-value pairs to apply to this resource. + * + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-tag.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-encoderconfiguration.html#cfn-ivs-encoderconfiguration-tags) + * @param tags An array of key-value pairs to apply to this resource. + */ + public fun tags(vararg tags: CfnTag) + + /** + * Video configuration. + * + * Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps. See the + * [Video](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-video.html) + * property type for more information. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-encoderconfiguration.html#cfn-ivs-encoderconfiguration-video) + * @param video Video configuration. + */ + public fun video(video: IResolvable) + + /** + * Video configuration. + * + * Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps. See the + * [Video](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-video.html) + * property type for more information. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-encoderconfiguration.html#cfn-ivs-encoderconfiguration-video) + * @param video Video configuration. + */ + public fun video(video: VideoProperty) + + /** + * Video configuration. + * + * Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps. See the + * [Video](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-video.html) + * property type for more information. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-encoderconfiguration.html#cfn-ivs-encoderconfiguration-video) + * @param video Video configuration. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("c05f7797faa42a030690b7207fb246a6f98c20d306aba01737584eb8ed7795ae") + public fun video(video: VideoProperty.Builder.() -> Unit) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.services.ivs.CfnEncoderConfiguration.Builder = + software.amazon.awscdk.services.ivs.CfnEncoderConfiguration.Builder.create(scope, id) + + /** + * Encoder cnfiguration name. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-encoderconfiguration.html#cfn-ivs-encoderconfiguration-name) + * @param name Encoder cnfiguration name. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + /** + * An array of key-value pairs to apply to this resource. + * + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-tag.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-encoderconfiguration.html#cfn-ivs-encoderconfiguration-tags) + * @param tags An array of key-value pairs to apply to this resource. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * An array of key-value pairs to apply to this resource. + * + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-tag.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-encoderconfiguration.html#cfn-ivs-encoderconfiguration-tags) + * @param tags An array of key-value pairs to apply to this resource. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + /** + * Video configuration. + * + * Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps. See the + * [Video](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-video.html) + * property type for more information. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-encoderconfiguration.html#cfn-ivs-encoderconfiguration-video) + * @param video Video configuration. + */ + override fun video(video: IResolvable) { + cdkBuilder.video(video.let(IResolvable::unwrap)) + } + + /** + * Video configuration. + * + * Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps. See the + * [Video](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-video.html) + * property type for more information. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-encoderconfiguration.html#cfn-ivs-encoderconfiguration-video) + * @param video Video configuration. + */ + override fun video(video: VideoProperty) { + cdkBuilder.video(video.let(VideoProperty::unwrap)) + } + + /** + * Video configuration. + * + * Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps. See the + * [Video](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-video.html) + * property type for more information. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-encoderconfiguration.html#cfn-ivs-encoderconfiguration-video) + * @param video Video configuration. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("c05f7797faa42a030690b7207fb246a6f98c20d306aba01737584eb8ed7795ae") + override fun video(video: VideoProperty.Builder.() -> Unit): Unit = video(VideoProperty(video)) + + public fun build(): software.amazon.awscdk.services.ivs.CfnEncoderConfiguration = + cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.ivs.CfnEncoderConfiguration.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnEncoderConfiguration { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnEncoderConfiguration(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.ivs.CfnEncoderConfiguration): + CfnEncoderConfiguration = CfnEncoderConfiguration(cdkObject) + + internal fun unwrap(wrapped: CfnEncoderConfiguration): + software.amazon.awscdk.services.ivs.CfnEncoderConfiguration = wrapped.cdkObject as + software.amazon.awscdk.services.ivs.CfnEncoderConfiguration + } + + /** + * The Video property type describes a stream's video configuration. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.ivs.*; + * VideoProperty videoProperty = VideoProperty.builder() + * .bitrate(123) + * .framerate(123) + * .height(123) + * .width(123) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-video.html) + */ + public interface VideoProperty { + /** + * Bitrate for generated output, in bps. + * + * Default: 2500000. + * + * Default: - 2500000 + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-video.html#cfn-ivs-encoderconfiguration-video-bitrate) + */ + public fun bitrate(): Number? = unwrap(this).getBitrate() + + /** + * Video frame rate, in fps. + * + * Default: 30. + * + * Default: - 30 + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-video.html#cfn-ivs-encoderconfiguration-video-framerate) + */ + public fun framerate(): Number? = unwrap(this).getFramerate() + + /** + * Video-resolution height. + * + * Note that the maximum value is determined by width times height, such that the maximum total + * pixels is 2073600 (1920x1080 or 1080x1920). Default: 720. + * + * Default: - 720 + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-video.html#cfn-ivs-encoderconfiguration-video-height) + */ + public fun height(): Number? = unwrap(this).getHeight() + + /** + * Video-resolution width. + * + * Note that the maximum value is determined by width times height, such that the maximum total + * pixels is 2073600 (1920x1080 or 1080x1920). Default: 1280. + * + * Default: - 1280 + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-video.html#cfn-ivs-encoderconfiguration-video-width) + */ + public fun width(): Number? = unwrap(this).getWidth() + + /** + * A builder for [VideoProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param bitrate Bitrate for generated output, in bps. + * Default: 2500000. + */ + public fun bitrate(bitrate: Number) + + /** + * @param framerate Video frame rate, in fps. + * Default: 30. + */ + public fun framerate(framerate: Number) + + /** + * @param height Video-resolution height. + * Note that the maximum value is determined by width times height, such that the maximum + * total pixels is 2073600 (1920x1080 or 1080x1920). Default: 720. + */ + public fun height(height: Number) + + /** + * @param width Video-resolution width. + * Note that the maximum value is determined by width times height, such that the maximum + * total pixels is 2073600 (1920x1080 or 1080x1920). Default: 1280. + */ + public fun width(width: Number) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.ivs.CfnEncoderConfiguration.VideoProperty.Builder = + software.amazon.awscdk.services.ivs.CfnEncoderConfiguration.VideoProperty.builder() + + /** + * @param bitrate Bitrate for generated output, in bps. + * Default: 2500000. + */ + override fun bitrate(bitrate: Number) { + cdkBuilder.bitrate(bitrate) + } + + /** + * @param framerate Video frame rate, in fps. + * Default: 30. + */ + override fun framerate(framerate: Number) { + cdkBuilder.framerate(framerate) + } + + /** + * @param height Video-resolution height. + * Note that the maximum value is determined by width times height, such that the maximum + * total pixels is 2073600 (1920x1080 or 1080x1920). Default: 720. + */ + override fun height(height: Number) { + cdkBuilder.height(height) + } + + /** + * @param width Video-resolution width. + * Note that the maximum value is determined by width times height, such that the maximum + * total pixels is 2073600 (1920x1080 or 1080x1920). Default: 1280. + */ + override fun width(width: Number) { + cdkBuilder.width(width) + } + + public fun build(): software.amazon.awscdk.services.ivs.CfnEncoderConfiguration.VideoProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.ivs.CfnEncoderConfiguration.VideoProperty, + ) : CdkObject(cdkObject), VideoProperty { + /** + * Bitrate for generated output, in bps. + * + * Default: 2500000. + * + * Default: - 2500000 + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-video.html#cfn-ivs-encoderconfiguration-video-bitrate) + */ + override fun bitrate(): Number? = unwrap(this).getBitrate() + + /** + * Video frame rate, in fps. + * + * Default: 30. + * + * Default: - 30 + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-video.html#cfn-ivs-encoderconfiguration-video-framerate) + */ + override fun framerate(): Number? = unwrap(this).getFramerate() + + /** + * Video-resolution height. + * + * Note that the maximum value is determined by width times height, such that the maximum + * total pixels is 2073600 (1920x1080 or 1080x1920). Default: 720. + * + * Default: - 720 + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-video.html#cfn-ivs-encoderconfiguration-video-height) + */ + override fun height(): Number? = unwrap(this).getHeight() + + /** + * Video-resolution width. + * + * Note that the maximum value is determined by width times height, such that the maximum + * total pixels is 2073600 (1920x1080 or 1080x1920). Default: 1280. + * + * Default: - 1280 + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-video.html#cfn-ivs-encoderconfiguration-video-width) + */ + override fun width(): Number? = unwrap(this).getWidth() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): VideoProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.ivs.CfnEncoderConfiguration.VideoProperty): + VideoProperty = CdkObjectWrappers.wrap(cdkObject) as? VideoProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: VideoProperty): + software.amazon.awscdk.services.ivs.CfnEncoderConfiguration.VideoProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.ivs.CfnEncoderConfiguration.VideoProperty + } + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ivs/CfnEncoderConfigurationProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ivs/CfnEncoderConfigurationProps.kt new file mode 100644 index 0000000000..976231d658 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ivs/CfnEncoderConfigurationProps.kt @@ -0,0 +1,237 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.ivs + +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.jvm.JvmName + +/** + * Properties for defining a `CfnEncoderConfiguration`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.ivs.*; + * CfnEncoderConfigurationProps cfnEncoderConfigurationProps = + * CfnEncoderConfigurationProps.builder() + * .name("name") + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .video(VideoProperty.builder() + * .bitrate(123) + * .framerate(123) + * .height(123) + * .width(123) + * .build()) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-encoderconfiguration.html) + */ +public interface CfnEncoderConfigurationProps { + /** + * Encoder cnfiguration name. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-encoderconfiguration.html#cfn-ivs-encoderconfiguration-name) + */ + public fun name(): String? = unwrap(this).getName() + + /** + * An array of key-value pairs to apply to this resource. + * + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-tag.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-encoderconfiguration.html#cfn-ivs-encoderconfiguration-tags) + */ + public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * Video configuration. + * + * Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps. See the + * [Video](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-video.html) + * property type for more information. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-encoderconfiguration.html#cfn-ivs-encoderconfiguration-video) + */ + public fun video(): Any? = unwrap(this).getVideo() + + /** + * A builder for [CfnEncoderConfigurationProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param name Encoder cnfiguration name. + */ + public fun name(name: String) + + /** + * @param tags An array of key-value pairs to apply to this resource. + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-tag.html) + * . + */ + public fun tags(tags: List) + + /** + * @param tags An array of key-value pairs to apply to this resource. + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-tag.html) + * . + */ + public fun tags(vararg tags: CfnTag) + + /** + * @param video Video configuration. + * Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps. See the + * [Video](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-video.html) + * property type for more information. + */ + public fun video(video: IResolvable) + + /** + * @param video Video configuration. + * Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps. See the + * [Video](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-video.html) + * property type for more information. + */ + public fun video(video: CfnEncoderConfiguration.VideoProperty) + + /** + * @param video Video configuration. + * Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps. See the + * [Video](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-video.html) + * property type for more information. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("f7f6db334e82212675c7e60af6cb8b08ccb0f4a5e632ca4def55d864d7c75cda") + public fun video(video: CfnEncoderConfiguration.VideoProperty.Builder.() -> Unit) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.services.ivs.CfnEncoderConfigurationProps.Builder + = software.amazon.awscdk.services.ivs.CfnEncoderConfigurationProps.builder() + + /** + * @param name Encoder cnfiguration name. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + /** + * @param tags An array of key-value pairs to apply to this resource. + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-tag.html) + * . + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * @param tags An array of key-value pairs to apply to this resource. + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-tag.html) + * . + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + /** + * @param video Video configuration. + * Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps. See the + * [Video](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-video.html) + * property type for more information. + */ + override fun video(video: IResolvable) { + cdkBuilder.video(video.let(IResolvable::unwrap)) + } + + /** + * @param video Video configuration. + * Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps. See the + * [Video](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-video.html) + * property type for more information. + */ + override fun video(video: CfnEncoderConfiguration.VideoProperty) { + cdkBuilder.video(video.let(CfnEncoderConfiguration.VideoProperty::unwrap)) + } + + /** + * @param video Video configuration. + * Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps. See the + * [Video](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-video.html) + * property type for more information. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("f7f6db334e82212675c7e60af6cb8b08ccb0f4a5e632ca4def55d864d7c75cda") + override fun video(video: CfnEncoderConfiguration.VideoProperty.Builder.() -> Unit): Unit = + video(CfnEncoderConfiguration.VideoProperty(video)) + + public fun build(): software.amazon.awscdk.services.ivs.CfnEncoderConfigurationProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.ivs.CfnEncoderConfigurationProps, + ) : CdkObject(cdkObject), CfnEncoderConfigurationProps { + /** + * Encoder cnfiguration name. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-encoderconfiguration.html#cfn-ivs-encoderconfiguration-name) + */ + override fun name(): String? = unwrap(this).getName() + + /** + * An array of key-value pairs to apply to this resource. + * + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-tag.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-encoderconfiguration.html#cfn-ivs-encoderconfiguration-tags) + */ + override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * Video configuration. + * + * Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps. See the + * [Video](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-encoderconfiguration-video.html) + * property type for more information. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-encoderconfiguration.html#cfn-ivs-encoderconfiguration-video) + */ + override fun video(): Any? = unwrap(this).getVideo() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnEncoderConfigurationProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.ivs.CfnEncoderConfigurationProps): + CfnEncoderConfigurationProps = CdkObjectWrappers.wrap(cdkObject) as? + CfnEncoderConfigurationProps ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnEncoderConfigurationProps): + software.amazon.awscdk.services.ivs.CfnEncoderConfigurationProps = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.ivs.CfnEncoderConfigurationProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ivs/CfnPlaybackRestrictionPolicy.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ivs/CfnPlaybackRestrictionPolicy.kt new file mode 100644 index 0000000000..a4ed1c8fdd --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ivs/CfnPlaybackRestrictionPolicy.kt @@ -0,0 +1,423 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.ivs + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.ITaggableV2 +import io.cloudshiftdev.awscdk.TagManager +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import kotlin.Any +import kotlin.Boolean +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * The `AWS::IVS::PlaybackRestrictionPolicy` resource specifies an playback restriction policy. + * + * A playback restriction policy constrains playback by country and/or origin sites. For more + * information, see [Undesired Content and + * Viewers](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/undesired-content.html) in the + * *Amazon IVS Low-Latency Streaming User Guide* . + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.ivs.*; + * CfnPlaybackRestrictionPolicy cfnPlaybackRestrictionPolicy = + * CfnPlaybackRestrictionPolicy.Builder.create(this, "MyCfnPlaybackRestrictionPolicy") + * .allowedCountries(List.of("allowedCountries")) + * .allowedOrigins(List.of("allowedOrigins")) + * // the properties below are optional + * .enableStrictOriginEnforcement(false) + * .name("name") + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html) + */ +public open class CfnPlaybackRestrictionPolicy( + cdkObject: software.amazon.awscdk.services.ivs.CfnPlaybackRestrictionPolicy, +) : CfnResource(cdkObject), IInspectable, ITaggableV2 { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnPlaybackRestrictionPolicyProps, + ) : + this(software.amazon.awscdk.services.ivs.CfnPlaybackRestrictionPolicy(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnPlaybackRestrictionPolicyProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnPlaybackRestrictionPolicyProps.Builder.() -> Unit, + ) : this(scope, id, CfnPlaybackRestrictionPolicyProps(props) + ) + + /** + * A list of country codes that control geoblocking restrictions. + */ + public open fun allowedCountries(): List = unwrap(this).getAllowedCountries() + + /** + * A list of country codes that control geoblocking restrictions. + */ + public open fun allowedCountries(`value`: List) { + unwrap(this).setAllowedCountries(`value`) + } + + /** + * A list of country codes that control geoblocking restrictions. + */ + public open fun allowedCountries(vararg `value`: String): Unit = + allowedCountries(`value`.toList()) + + /** + * A list of origin sites that control CORS restriction. + */ + public open fun allowedOrigins(): List = unwrap(this).getAllowedOrigins() + + /** + * A list of origin sites that control CORS restriction. + */ + public open fun allowedOrigins(`value`: List) { + unwrap(this).setAllowedOrigins(`value`) + } + + /** + * A list of origin sites that control CORS restriction. + */ + public open fun allowedOrigins(vararg `value`: String): Unit = allowedOrigins(`value`.toList()) + + /** + * The playback-restriction-policy ARN. + * + * For example: `arn:aws:ivs:us-west-2:123456789012:playback-restriction-policy/abcdABCDefgh` + */ + public open fun attrArn(): String = unwrap(this).getAttrArn() + + /** + * Tag Manager which manages the tags for this resource. + */ + public override fun cdkTagManager(): TagManager = + unwrap(this).getCdkTagManager().let(TagManager::wrap) + + /** + * Whether channel playback is constrained by the origin site. + */ + public open fun enableStrictOriginEnforcement(): Any? = + unwrap(this).getEnableStrictOriginEnforcement() + + /** + * Whether channel playback is constrained by the origin site. + */ + public open fun enableStrictOriginEnforcement(`value`: Boolean) { + unwrap(this).setEnableStrictOriginEnforcement(`value`) + } + + /** + * Whether channel playback is constrained by the origin site. + */ + public open fun enableStrictOriginEnforcement(`value`: IResolvable) { + unwrap(this).setEnableStrictOriginEnforcement(`value`.let(IResolvable::unwrap)) + } + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * Playback-restriction-policy name. + */ + public open fun name(): String? = unwrap(this).getName() + + /** + * Playback-restriction-policy name. + */ + public open fun name(`value`: String) { + unwrap(this).setName(`value`) + } + + /** + * An array of key-value pairs to apply to this resource. + */ + public open fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * An array of key-value pairs to apply to this resource. + */ + public open fun tags(`value`: List) { + unwrap(this).setTags(`value`.map(CfnTag::unwrap)) + } + + /** + * An array of key-value pairs to apply to this resource. + */ + public open fun tags(vararg `value`: CfnTag): Unit = tags(`value`.toList()) + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.ivs.CfnPlaybackRestrictionPolicy]. + */ + @CdkDslMarker + public interface Builder { + /** + * A list of country codes that control geoblocking restrictions. + * + * Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries + * (an empty array). + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html#cfn-ivs-playbackrestrictionpolicy-allowedcountries) + * @param allowedCountries A list of country codes that control geoblocking restrictions. + */ + public fun allowedCountries(allowedCountries: List) + + /** + * A list of country codes that control geoblocking restrictions. + * + * Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries + * (an empty array). + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html#cfn-ivs-playbackrestrictionpolicy-allowedcountries) + * @param allowedCountries A list of country codes that control geoblocking restrictions. + */ + public fun allowedCountries(vararg allowedCountries: String) + + /** + * A list of origin sites that control CORS restriction. + * + * Allowed values are the same as valid values of the Origin header defined at + * [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin"](https://docs.aws.amazon.com/https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html#cfn-ivs-playbackrestrictionpolicy-allowedorigins) + * @param allowedOrigins A list of origin sites that control CORS restriction. + */ + public fun allowedOrigins(allowedOrigins: List) + + /** + * A list of origin sites that control CORS restriction. + * + * Allowed values are the same as valid values of the Origin header defined at + * [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin"](https://docs.aws.amazon.com/https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html#cfn-ivs-playbackrestrictionpolicy-allowedorigins) + * @param allowedOrigins A list of origin sites that control CORS restriction. + */ + public fun allowedOrigins(vararg allowedOrigins: String) + + /** + * Whether channel playback is constrained by the origin site. + * + * Default: - false + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html#cfn-ivs-playbackrestrictionpolicy-enablestrictoriginenforcement) + * @param enableStrictOriginEnforcement Whether channel playback is constrained by the origin + * site. + */ + public fun enableStrictOriginEnforcement(enableStrictOriginEnforcement: Boolean) + + /** + * Whether channel playback is constrained by the origin site. + * + * Default: - false + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html#cfn-ivs-playbackrestrictionpolicy-enablestrictoriginenforcement) + * @param enableStrictOriginEnforcement Whether channel playback is constrained by the origin + * site. + */ + public fun enableStrictOriginEnforcement(enableStrictOriginEnforcement: IResolvable) + + /** + * Playback-restriction-policy name. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html#cfn-ivs-playbackrestrictionpolicy-name) + * @param name Playback-restriction-policy name. + */ + public fun name(name: String) + + /** + * An array of key-value pairs to apply to this resource. + * + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-playbackrestrictionpolicy-tag.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html#cfn-ivs-playbackrestrictionpolicy-tags) + * @param tags An array of key-value pairs to apply to this resource. + */ + public fun tags(tags: List) + + /** + * An array of key-value pairs to apply to this resource. + * + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-playbackrestrictionpolicy-tag.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html#cfn-ivs-playbackrestrictionpolicy-tags) + * @param tags An array of key-value pairs to apply to this resource. + */ + public fun tags(vararg tags: CfnTag) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.services.ivs.CfnPlaybackRestrictionPolicy.Builder + = software.amazon.awscdk.services.ivs.CfnPlaybackRestrictionPolicy.Builder.create(scope, id) + + /** + * A list of country codes that control geoblocking restrictions. + * + * Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries + * (an empty array). + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html#cfn-ivs-playbackrestrictionpolicy-allowedcountries) + * @param allowedCountries A list of country codes that control geoblocking restrictions. + */ + override fun allowedCountries(allowedCountries: List) { + cdkBuilder.allowedCountries(allowedCountries) + } + + /** + * A list of country codes that control geoblocking restrictions. + * + * Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries + * (an empty array). + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html#cfn-ivs-playbackrestrictionpolicy-allowedcountries) + * @param allowedCountries A list of country codes that control geoblocking restrictions. + */ + override fun allowedCountries(vararg allowedCountries: String): Unit = + allowedCountries(allowedCountries.toList()) + + /** + * A list of origin sites that control CORS restriction. + * + * Allowed values are the same as valid values of the Origin header defined at + * [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin"](https://docs.aws.amazon.com/https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html#cfn-ivs-playbackrestrictionpolicy-allowedorigins) + * @param allowedOrigins A list of origin sites that control CORS restriction. + */ + override fun allowedOrigins(allowedOrigins: List) { + cdkBuilder.allowedOrigins(allowedOrigins) + } + + /** + * A list of origin sites that control CORS restriction. + * + * Allowed values are the same as valid values of the Origin header defined at + * [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin"](https://docs.aws.amazon.com/https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html#cfn-ivs-playbackrestrictionpolicy-allowedorigins) + * @param allowedOrigins A list of origin sites that control CORS restriction. + */ + override fun allowedOrigins(vararg allowedOrigins: String): Unit = + allowedOrigins(allowedOrigins.toList()) + + /** + * Whether channel playback is constrained by the origin site. + * + * Default: - false + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html#cfn-ivs-playbackrestrictionpolicy-enablestrictoriginenforcement) + * @param enableStrictOriginEnforcement Whether channel playback is constrained by the origin + * site. + */ + override fun enableStrictOriginEnforcement(enableStrictOriginEnforcement: Boolean) { + cdkBuilder.enableStrictOriginEnforcement(enableStrictOriginEnforcement) + } + + /** + * Whether channel playback is constrained by the origin site. + * + * Default: - false + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html#cfn-ivs-playbackrestrictionpolicy-enablestrictoriginenforcement) + * @param enableStrictOriginEnforcement Whether channel playback is constrained by the origin + * site. + */ + override fun enableStrictOriginEnforcement(enableStrictOriginEnforcement: IResolvable) { + cdkBuilder.enableStrictOriginEnforcement(enableStrictOriginEnforcement.let(IResolvable::unwrap)) + } + + /** + * Playback-restriction-policy name. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html#cfn-ivs-playbackrestrictionpolicy-name) + * @param name Playback-restriction-policy name. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + /** + * An array of key-value pairs to apply to this resource. + * + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-playbackrestrictionpolicy-tag.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html#cfn-ivs-playbackrestrictionpolicy-tags) + * @param tags An array of key-value pairs to apply to this resource. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * An array of key-value pairs to apply to this resource. + * + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-playbackrestrictionpolicy-tag.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html#cfn-ivs-playbackrestrictionpolicy-tags) + * @param tags An array of key-value pairs to apply to this resource. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + public fun build(): software.amazon.awscdk.services.ivs.CfnPlaybackRestrictionPolicy = + cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.ivs.CfnPlaybackRestrictionPolicy.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnPlaybackRestrictionPolicy { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnPlaybackRestrictionPolicy(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.ivs.CfnPlaybackRestrictionPolicy): + CfnPlaybackRestrictionPolicy = CfnPlaybackRestrictionPolicy(cdkObject) + + internal fun unwrap(wrapped: CfnPlaybackRestrictionPolicy): + software.amazon.awscdk.services.ivs.CfnPlaybackRestrictionPolicy = wrapped.cdkObject as + software.amazon.awscdk.services.ivs.CfnPlaybackRestrictionPolicy + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ivs/CfnPlaybackRestrictionPolicyProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ivs/CfnPlaybackRestrictionPolicyProps.kt new file mode 100644 index 0000000000..a520a08fea --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ivs/CfnPlaybackRestrictionPolicyProps.kt @@ -0,0 +1,308 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.ivs + +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.Boolean +import kotlin.String +import kotlin.Unit +import kotlin.collections.List + +/** + * Properties for defining a `CfnPlaybackRestrictionPolicy`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.ivs.*; + * CfnPlaybackRestrictionPolicyProps cfnPlaybackRestrictionPolicyProps = + * CfnPlaybackRestrictionPolicyProps.builder() + * .allowedCountries(List.of("allowedCountries")) + * .allowedOrigins(List.of("allowedOrigins")) + * // the properties below are optional + * .enableStrictOriginEnforcement(false) + * .name("name") + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html) + */ +public interface CfnPlaybackRestrictionPolicyProps { + /** + * A list of country codes that control geoblocking restrictions. + * + * Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries (an + * empty array). + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html#cfn-ivs-playbackrestrictionpolicy-allowedcountries) + */ + public fun allowedCountries(): List + + /** + * A list of origin sites that control CORS restriction. + * + * Allowed values are the same as valid values of the Origin header defined at + * [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin"](https://docs.aws.amazon.com/https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html#cfn-ivs-playbackrestrictionpolicy-allowedorigins) + */ + public fun allowedOrigins(): List + + /** + * Whether channel playback is constrained by the origin site. + * + * Default: - false + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html#cfn-ivs-playbackrestrictionpolicy-enablestrictoriginenforcement) + */ + public fun enableStrictOriginEnforcement(): Any? = unwrap(this).getEnableStrictOriginEnforcement() + + /** + * Playback-restriction-policy name. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html#cfn-ivs-playbackrestrictionpolicy-name) + */ + public fun name(): String? = unwrap(this).getName() + + /** + * An array of key-value pairs to apply to this resource. + * + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-playbackrestrictionpolicy-tag.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html#cfn-ivs-playbackrestrictionpolicy-tags) + */ + public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * A builder for [CfnPlaybackRestrictionPolicyProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param allowedCountries A list of country codes that control geoblocking restrictions. + * Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries + * (an empty array). + */ + public fun allowedCountries(allowedCountries: List) + + /** + * @param allowedCountries A list of country codes that control geoblocking restrictions. + * Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries + * (an empty array). + */ + public fun allowedCountries(vararg allowedCountries: String) + + /** + * @param allowedOrigins A list of origin sites that control CORS restriction. + * Allowed values are the same as valid values of the Origin header defined at + * [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin"](https://docs.aws.amazon.com/https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin) + */ + public fun allowedOrigins(allowedOrigins: List) + + /** + * @param allowedOrigins A list of origin sites that control CORS restriction. + * Allowed values are the same as valid values of the Origin header defined at + * [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin"](https://docs.aws.amazon.com/https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin) + */ + public fun allowedOrigins(vararg allowedOrigins: String) + + /** + * @param enableStrictOriginEnforcement Whether channel playback is constrained by the origin + * site. + */ + public fun enableStrictOriginEnforcement(enableStrictOriginEnforcement: Boolean) + + /** + * @param enableStrictOriginEnforcement Whether channel playback is constrained by the origin + * site. + */ + public fun enableStrictOriginEnforcement(enableStrictOriginEnforcement: IResolvable) + + /** + * @param name Playback-restriction-policy name. + */ + public fun name(name: String) + + /** + * @param tags An array of key-value pairs to apply to this resource. + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-playbackrestrictionpolicy-tag.html) + * . + */ + public fun tags(tags: List) + + /** + * @param tags An array of key-value pairs to apply to this resource. + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-playbackrestrictionpolicy-tag.html) + * . + */ + public fun tags(vararg tags: CfnTag) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.ivs.CfnPlaybackRestrictionPolicyProps.Builder = + software.amazon.awscdk.services.ivs.CfnPlaybackRestrictionPolicyProps.builder() + + /** + * @param allowedCountries A list of country codes that control geoblocking restrictions. + * Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries + * (an empty array). + */ + override fun allowedCountries(allowedCountries: List) { + cdkBuilder.allowedCountries(allowedCountries) + } + + /** + * @param allowedCountries A list of country codes that control geoblocking restrictions. + * Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries + * (an empty array). + */ + override fun allowedCountries(vararg allowedCountries: String): Unit = + allowedCountries(allowedCountries.toList()) + + /** + * @param allowedOrigins A list of origin sites that control CORS restriction. + * Allowed values are the same as valid values of the Origin header defined at + * [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin"](https://docs.aws.amazon.com/https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin) + */ + override fun allowedOrigins(allowedOrigins: List) { + cdkBuilder.allowedOrigins(allowedOrigins) + } + + /** + * @param allowedOrigins A list of origin sites that control CORS restriction. + * Allowed values are the same as valid values of the Origin header defined at + * [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin"](https://docs.aws.amazon.com/https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin) + */ + override fun allowedOrigins(vararg allowedOrigins: String): Unit = + allowedOrigins(allowedOrigins.toList()) + + /** + * @param enableStrictOriginEnforcement Whether channel playback is constrained by the origin + * site. + */ + override fun enableStrictOriginEnforcement(enableStrictOriginEnforcement: Boolean) { + cdkBuilder.enableStrictOriginEnforcement(enableStrictOriginEnforcement) + } + + /** + * @param enableStrictOriginEnforcement Whether channel playback is constrained by the origin + * site. + */ + override fun enableStrictOriginEnforcement(enableStrictOriginEnforcement: IResolvable) { + cdkBuilder.enableStrictOriginEnforcement(enableStrictOriginEnforcement.let(IResolvable::unwrap)) + } + + /** + * @param name Playback-restriction-policy name. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + /** + * @param tags An array of key-value pairs to apply to this resource. + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-playbackrestrictionpolicy-tag.html) + * . + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * @param tags An array of key-value pairs to apply to this resource. + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-playbackrestrictionpolicy-tag.html) + * . + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + public fun build(): software.amazon.awscdk.services.ivs.CfnPlaybackRestrictionPolicyProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.ivs.CfnPlaybackRestrictionPolicyProps, + ) : CdkObject(cdkObject), CfnPlaybackRestrictionPolicyProps { + /** + * A list of country codes that control geoblocking restrictions. + * + * Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries + * (an empty array). + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html#cfn-ivs-playbackrestrictionpolicy-allowedcountries) + */ + override fun allowedCountries(): List = unwrap(this).getAllowedCountries() + + /** + * A list of origin sites that control CORS restriction. + * + * Allowed values are the same as valid values of the Origin header defined at + * [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin"](https://docs.aws.amazon.com/https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html#cfn-ivs-playbackrestrictionpolicy-allowedorigins) + */ + override fun allowedOrigins(): List = unwrap(this).getAllowedOrigins() + + /** + * Whether channel playback is constrained by the origin site. + * + * Default: - false + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html#cfn-ivs-playbackrestrictionpolicy-enablestrictoriginenforcement) + */ + override fun enableStrictOriginEnforcement(): Any? = + unwrap(this).getEnableStrictOriginEnforcement() + + /** + * Playback-restriction-policy name. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html#cfn-ivs-playbackrestrictionpolicy-name) + */ + override fun name(): String? = unwrap(this).getName() + + /** + * An array of key-value pairs to apply to this resource. + * + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-playbackrestrictionpolicy-tag.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackrestrictionpolicy.html#cfn-ivs-playbackrestrictionpolicy-tags) + */ + override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnPlaybackRestrictionPolicyProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.ivs.CfnPlaybackRestrictionPolicyProps): + CfnPlaybackRestrictionPolicyProps = CdkObjectWrappers.wrap(cdkObject) as? + CfnPlaybackRestrictionPolicyProps ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnPlaybackRestrictionPolicyProps): + software.amazon.awscdk.services.ivs.CfnPlaybackRestrictionPolicyProps = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.ivs.CfnPlaybackRestrictionPolicyProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ivs/CfnRecordingConfiguration.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ivs/CfnRecordingConfiguration.kt index 322a2adb56..269891bfbc 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ivs/CfnRecordingConfiguration.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ivs/CfnRecordingConfiguration.kt @@ -99,26 +99,26 @@ public open class CfnRecordingConfiguration( public open fun attrState(): String = unwrap(this).getAttrState() /** - * A destination configuration contains information about where recorded video will be stored. + * A destination configuration describes an S3 bucket where recorded video will be stored. */ public open fun destinationConfiguration(): Any = unwrap(this).getDestinationConfiguration() /** - * A destination configuration contains information about where recorded video will be stored. + * A destination configuration describes an S3 bucket where recorded video will be stored. */ public open fun destinationConfiguration(`value`: IResolvable) { unwrap(this).setDestinationConfiguration(`value`.let(IResolvable::unwrap)) } /** - * A destination configuration contains information about where recorded video will be stored. + * A destination configuration describes an S3 bucket where recorded video will be stored. */ public open fun destinationConfiguration(`value`: DestinationConfigurationProperty) { unwrap(this).setDestinationConfiguration(`value`.let(DestinationConfigurationProperty::unwrap)) } /** - * A destination configuration contains information about where recorded video will be stored. + * A destination configuration describes an S3 bucket where recorded video will be stored. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("1921f679292ab1ae792a66300e1e0d230f2f7cba64e28ec7975cc6fc4c92aeac") @@ -251,34 +251,34 @@ public open class CfnRecordingConfiguration( @CdkDslMarker public interface Builder { /** - * A destination configuration contains information about where recorded video will be stored. + * A destination configuration describes an S3 bucket where recorded video will be stored. * * See the DestinationConfiguration property type for more information. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-recordingconfiguration.html#cfn-ivs-recordingconfiguration-destinationconfiguration) - * @param destinationConfiguration A destination configuration contains information about where + * @param destinationConfiguration A destination configuration describes an S3 bucket where * recorded video will be stored. */ public fun destinationConfiguration(destinationConfiguration: IResolvable) /** - * A destination configuration contains information about where recorded video will be stored. + * A destination configuration describes an S3 bucket where recorded video will be stored. * * See the DestinationConfiguration property type for more information. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-recordingconfiguration.html#cfn-ivs-recordingconfiguration-destinationconfiguration) - * @param destinationConfiguration A destination configuration contains information about where + * @param destinationConfiguration A destination configuration describes an S3 bucket where * recorded video will be stored. */ public fun destinationConfiguration(destinationConfiguration: DestinationConfigurationProperty) /** - * A destination configuration contains information about where recorded video will be stored. + * A destination configuration describes an S3 bucket where recorded video will be stored. * * See the DestinationConfiguration property type for more information. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-recordingconfiguration.html#cfn-ivs-recordingconfiguration-destinationconfiguration) - * @param destinationConfiguration A destination configuration contains information about where + * @param destinationConfiguration A destination configuration describes an S3 bucket where * recorded video will be stored. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @@ -422,12 +422,12 @@ public open class CfnRecordingConfiguration( software.amazon.awscdk.services.ivs.CfnRecordingConfiguration.Builder.create(scope, id) /** - * A destination configuration contains information about where recorded video will be stored. + * A destination configuration describes an S3 bucket where recorded video will be stored. * * See the DestinationConfiguration property type for more information. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-recordingconfiguration.html#cfn-ivs-recordingconfiguration-destinationconfiguration) - * @param destinationConfiguration A destination configuration contains information about where + * @param destinationConfiguration A destination configuration describes an S3 bucket where * recorded video will be stored. */ override fun destinationConfiguration(destinationConfiguration: IResolvable) { @@ -435,12 +435,12 @@ public open class CfnRecordingConfiguration( } /** - * A destination configuration contains information about where recorded video will be stored. + * A destination configuration describes an S3 bucket where recorded video will be stored. * * See the DestinationConfiguration property type for more information. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-recordingconfiguration.html#cfn-ivs-recordingconfiguration-destinationconfiguration) - * @param destinationConfiguration A destination configuration contains information about where + * @param destinationConfiguration A destination configuration describes an S3 bucket where * recorded video will be stored. */ override @@ -449,12 +449,12 @@ public open class CfnRecordingConfiguration( } /** - * A destination configuration contains information about where recorded video will be stored. + * A destination configuration describes an S3 bucket where recorded video will be stored. * * See the DestinationConfiguration property type for more information. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-recordingconfiguration.html#cfn-ivs-recordingconfiguration-destinationconfiguration) - * @param destinationConfiguration A destination configuration contains information about where + * @param destinationConfiguration A destination configuration describes an S3 bucket where * recorded video will be stored. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ivs/CfnRecordingConfigurationProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ivs/CfnRecordingConfigurationProps.kt index edf4c6ef8c..3514a84a53 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ivs/CfnRecordingConfigurationProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ivs/CfnRecordingConfigurationProps.kt @@ -54,7 +54,7 @@ import kotlin.jvm.JvmName */ public interface CfnRecordingConfigurationProps { /** - * A destination configuration contains information about where recorded video will be stored. + * A destination configuration describes an S3 bucket where recorded video will be stored. * * See the DestinationConfiguration property type for more information. * @@ -120,14 +120,14 @@ public interface CfnRecordingConfigurationProps { @CdkDslMarker public interface Builder { /** - * @param destinationConfiguration A destination configuration contains information about where + * @param destinationConfiguration A destination configuration describes an S3 bucket where * recorded video will be stored. * See the DestinationConfiguration property type for more information. */ public fun destinationConfiguration(destinationConfiguration: IResolvable) /** - * @param destinationConfiguration A destination configuration contains information about where + * @param destinationConfiguration A destination configuration describes an S3 bucket where * recorded video will be stored. * See the DestinationConfiguration property type for more information. */ @@ -135,7 +135,7 @@ public interface CfnRecordingConfigurationProps { fun destinationConfiguration(destinationConfiguration: CfnRecordingConfiguration.DestinationConfigurationProperty) /** - * @param destinationConfiguration A destination configuration contains information about where + * @param destinationConfiguration A destination configuration describes an S3 bucket where * recorded video will be stored. * See the DestinationConfiguration property type for more information. */ @@ -234,7 +234,7 @@ public interface CfnRecordingConfigurationProps { software.amazon.awscdk.services.ivs.CfnRecordingConfigurationProps.builder() /** - * @param destinationConfiguration A destination configuration contains information about where + * @param destinationConfiguration A destination configuration describes an S3 bucket where * recorded video will be stored. * See the DestinationConfiguration property type for more information. */ @@ -243,7 +243,7 @@ public interface CfnRecordingConfigurationProps { } /** - * @param destinationConfiguration A destination configuration contains information about where + * @param destinationConfiguration A destination configuration describes an S3 bucket where * recorded video will be stored. * See the DestinationConfiguration property type for more information. */ @@ -253,7 +253,7 @@ public interface CfnRecordingConfigurationProps { } /** - * @param destinationConfiguration A destination configuration contains information about where + * @param destinationConfiguration A destination configuration describes an S3 bucket where * recorded video will be stored. * See the DestinationConfiguration property type for more information. */ @@ -373,7 +373,7 @@ public interface CfnRecordingConfigurationProps { cdkObject: software.amazon.awscdk.services.ivs.CfnRecordingConfigurationProps, ) : CdkObject(cdkObject), CfnRecordingConfigurationProps { /** - * A destination configuration contains information about where recorded video will be stored. + * A destination configuration describes an S3 bucket where recorded video will be stored. * * See the DestinationConfiguration property type for more information. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ivs/CfnStorageConfiguration.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ivs/CfnStorageConfiguration.kt new file mode 100644 index 0000000000..2a650d1080 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ivs/CfnStorageConfiguration.kt @@ -0,0 +1,426 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.ivs + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.ITaggableV2 +import io.cloudshiftdev.awscdk.TagManager +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.jvm.JvmName +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * The `AWS::IVS::StorageConfiguration` resource specifies an storage configuration. + * + * A storage configuration describes an S3 location where recorded videos will be stored. For more + * information, see [Auto-Record to Amazon S3 (Low-Latency + * Streaming)](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/record-to-s3.html) in the + * *Amazon IVS Low-Latency Streaming User Guide* . + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.ivs.*; + * CfnStorageConfiguration cfnStorageConfiguration = CfnStorageConfiguration.Builder.create(this, + * "MyCfnStorageConfiguration") + * .s3(S3StorageConfigurationProperty.builder() + * .bucketName("bucketName") + * .build()) + * // the properties below are optional + * .name("name") + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-storageconfiguration.html) + */ +public open class CfnStorageConfiguration( + cdkObject: software.amazon.awscdk.services.ivs.CfnStorageConfiguration, +) : CfnResource(cdkObject), IInspectable, ITaggableV2 { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnStorageConfigurationProps, + ) : + this(software.amazon.awscdk.services.ivs.CfnStorageConfiguration(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnStorageConfigurationProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnStorageConfigurationProps.Builder.() -> Unit, + ) : this(scope, id, CfnStorageConfigurationProps(props) + ) + + /** + * The storage-configuration ARN. + * + * For example: `arn:aws:ivs:us-west-2:123456789012:storage-configuration/abcdABCDefgh` + */ + public open fun attrArn(): String = unwrap(this).getAttrArn() + + /** + * Tag Manager which manages the tags for this resource. + */ + public override fun cdkTagManager(): TagManager = + unwrap(this).getCdkTagManager().let(TagManager::wrap) + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * Storage cnfiguration name. + */ + public open fun name(): String? = unwrap(this).getName() + + /** + * Storage cnfiguration name. + */ + public open fun name(`value`: String) { + unwrap(this).setName(`value`) + } + + /** + * An S3 storage configuration contains information about where recorded video will be stored. + */ + public open fun s3(): Any = unwrap(this).getS3() + + /** + * An S3 storage configuration contains information about where recorded video will be stored. + */ + public open fun s3(`value`: IResolvable) { + unwrap(this).setS3(`value`.let(IResolvable::unwrap)) + } + + /** + * An S3 storage configuration contains information about where recorded video will be stored. + */ + public open fun s3(`value`: S3StorageConfigurationProperty) { + unwrap(this).setS3(`value`.let(S3StorageConfigurationProperty::unwrap)) + } + + /** + * An S3 storage configuration contains information about where recorded video will be stored. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("bab9913066199087129d99ae8106565d7bb6f0f5c070d5a244e0deb027d5c91c") + public open fun s3(`value`: S3StorageConfigurationProperty.Builder.() -> Unit): Unit = + s3(S3StorageConfigurationProperty(`value`)) + + /** + * An array of key-value pairs to apply to this resource. + */ + public open fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * An array of key-value pairs to apply to this resource. + */ + public open fun tags(`value`: List) { + unwrap(this).setTags(`value`.map(CfnTag::unwrap)) + } + + /** + * An array of key-value pairs to apply to this resource. + */ + public open fun tags(vararg `value`: CfnTag): Unit = tags(`value`.toList()) + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.ivs.CfnStorageConfiguration]. + */ + @CdkDslMarker + public interface Builder { + /** + * Storage cnfiguration name. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-storageconfiguration.html#cfn-ivs-storageconfiguration-name) + * @param name Storage cnfiguration name. + */ + public fun name(name: String) + + /** + * An S3 storage configuration contains information about where recorded video will be stored. + * + * See the + * [S3StorageConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-storageconfiguration-s3storageconfiguration.html) + * property type for more information. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-storageconfiguration.html#cfn-ivs-storageconfiguration-s3) + * @param s3 An S3 storage configuration contains information about where recorded video will be + * stored. + */ + public fun s3(s3: IResolvable) + + /** + * An S3 storage configuration contains information about where recorded video will be stored. + * + * See the + * [S3StorageConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-storageconfiguration-s3storageconfiguration.html) + * property type for more information. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-storageconfiguration.html#cfn-ivs-storageconfiguration-s3) + * @param s3 An S3 storage configuration contains information about where recorded video will be + * stored. + */ + public fun s3(s3: S3StorageConfigurationProperty) + + /** + * An S3 storage configuration contains information about where recorded video will be stored. + * + * See the + * [S3StorageConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-storageconfiguration-s3storageconfiguration.html) + * property type for more information. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-storageconfiguration.html#cfn-ivs-storageconfiguration-s3) + * @param s3 An S3 storage configuration contains information about where recorded video will be + * stored. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("20f6e70776470daddfd471e551d03903a88ffd7517b02f0c5bdf1f7edb99f572") + public fun s3(s3: S3StorageConfigurationProperty.Builder.() -> Unit) + + /** + * An array of key-value pairs to apply to this resource. + * + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-storageconfiguration-tag.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-storageconfiguration.html#cfn-ivs-storageconfiguration-tags) + * @param tags An array of key-value pairs to apply to this resource. + */ + public fun tags(tags: List) + + /** + * An array of key-value pairs to apply to this resource. + * + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-storageconfiguration-tag.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-storageconfiguration.html#cfn-ivs-storageconfiguration-tags) + * @param tags An array of key-value pairs to apply to this resource. + */ + public fun tags(vararg tags: CfnTag) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.services.ivs.CfnStorageConfiguration.Builder = + software.amazon.awscdk.services.ivs.CfnStorageConfiguration.Builder.create(scope, id) + + /** + * Storage cnfiguration name. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-storageconfiguration.html#cfn-ivs-storageconfiguration-name) + * @param name Storage cnfiguration name. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + /** + * An S3 storage configuration contains information about where recorded video will be stored. + * + * See the + * [S3StorageConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-storageconfiguration-s3storageconfiguration.html) + * property type for more information. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-storageconfiguration.html#cfn-ivs-storageconfiguration-s3) + * @param s3 An S3 storage configuration contains information about where recorded video will be + * stored. + */ + override fun s3(s3: IResolvable) { + cdkBuilder.s3(s3.let(IResolvable::unwrap)) + } + + /** + * An S3 storage configuration contains information about where recorded video will be stored. + * + * See the + * [S3StorageConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-storageconfiguration-s3storageconfiguration.html) + * property type for more information. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-storageconfiguration.html#cfn-ivs-storageconfiguration-s3) + * @param s3 An S3 storage configuration contains information about where recorded video will be + * stored. + */ + override fun s3(s3: S3StorageConfigurationProperty) { + cdkBuilder.s3(s3.let(S3StorageConfigurationProperty::unwrap)) + } + + /** + * An S3 storage configuration contains information about where recorded video will be stored. + * + * See the + * [S3StorageConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-storageconfiguration-s3storageconfiguration.html) + * property type for more information. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-storageconfiguration.html#cfn-ivs-storageconfiguration-s3) + * @param s3 An S3 storage configuration contains information about where recorded video will be + * stored. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("20f6e70776470daddfd471e551d03903a88ffd7517b02f0c5bdf1f7edb99f572") + override fun s3(s3: S3StorageConfigurationProperty.Builder.() -> Unit): Unit = + s3(S3StorageConfigurationProperty(s3)) + + /** + * An array of key-value pairs to apply to this resource. + * + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-storageconfiguration-tag.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-storageconfiguration.html#cfn-ivs-storageconfiguration-tags) + * @param tags An array of key-value pairs to apply to this resource. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * An array of key-value pairs to apply to this resource. + * + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-storageconfiguration-tag.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-storageconfiguration.html#cfn-ivs-storageconfiguration-tags) + * @param tags An array of key-value pairs to apply to this resource. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + public fun build(): software.amazon.awscdk.services.ivs.CfnStorageConfiguration = + cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.ivs.CfnStorageConfiguration.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnStorageConfiguration { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnStorageConfiguration(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.ivs.CfnStorageConfiguration): + CfnStorageConfiguration = CfnStorageConfiguration(cdkObject) + + internal fun unwrap(wrapped: CfnStorageConfiguration): + software.amazon.awscdk.services.ivs.CfnStorageConfiguration = wrapped.cdkObject as + software.amazon.awscdk.services.ivs.CfnStorageConfiguration + } + + /** + * The S3StorageConfiguration property type describes an S3 location where recorded videos will be + * stored. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.ivs.*; + * S3StorageConfigurationProperty s3StorageConfigurationProperty = + * S3StorageConfigurationProperty.builder() + * .bucketName("bucketName") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-storageconfiguration-s3storageconfiguration.html) + */ + public interface S3StorageConfigurationProperty { + /** + * Name of the S3 bucket where recorded video will be stored. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-storageconfiguration-s3storageconfiguration.html#cfn-ivs-storageconfiguration-s3storageconfiguration-bucketname) + */ + public fun bucketName(): String + + /** + * A builder for [S3StorageConfigurationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param bucketName Name of the S3 bucket where recorded video will be stored. + */ + public fun bucketName(bucketName: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.ivs.CfnStorageConfiguration.S3StorageConfigurationProperty.Builder + = + software.amazon.awscdk.services.ivs.CfnStorageConfiguration.S3StorageConfigurationProperty.builder() + + /** + * @param bucketName Name of the S3 bucket where recorded video will be stored. + */ + override fun bucketName(bucketName: String) { + cdkBuilder.bucketName(bucketName) + } + + public fun build(): + software.amazon.awscdk.services.ivs.CfnStorageConfiguration.S3StorageConfigurationProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.ivs.CfnStorageConfiguration.S3StorageConfigurationProperty, + ) : CdkObject(cdkObject), S3StorageConfigurationProperty { + /** + * Name of the S3 bucket where recorded video will be stored. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-storageconfiguration-s3storageconfiguration.html#cfn-ivs-storageconfiguration-s3storageconfiguration-bucketname) + */ + override fun bucketName(): String = unwrap(this).getBucketName() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): S3StorageConfigurationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.ivs.CfnStorageConfiguration.S3StorageConfigurationProperty): + S3StorageConfigurationProperty = CdkObjectWrappers.wrap(cdkObject) as? + S3StorageConfigurationProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: S3StorageConfigurationProperty): + software.amazon.awscdk.services.ivs.CfnStorageConfiguration.S3StorageConfigurationProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.ivs.CfnStorageConfiguration.S3StorageConfigurationProperty + } + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ivs/CfnStorageConfigurationProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ivs/CfnStorageConfigurationProps.kt new file mode 100644 index 0000000000..3f9968e703 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ivs/CfnStorageConfigurationProps.kt @@ -0,0 +1,241 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.ivs + +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.jvm.JvmName + +/** + * Properties for defining a `CfnStorageConfiguration`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.ivs.*; + * CfnStorageConfigurationProps cfnStorageConfigurationProps = + * CfnStorageConfigurationProps.builder() + * .s3(S3StorageConfigurationProperty.builder() + * .bucketName("bucketName") + * .build()) + * // the properties below are optional + * .name("name") + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-storageconfiguration.html) + */ +public interface CfnStorageConfigurationProps { + /** + * Storage cnfiguration name. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-storageconfiguration.html#cfn-ivs-storageconfiguration-name) + */ + public fun name(): String? = unwrap(this).getName() + + /** + * An S3 storage configuration contains information about where recorded video will be stored. + * + * See the + * [S3StorageConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-storageconfiguration-s3storageconfiguration.html) + * property type for more information. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-storageconfiguration.html#cfn-ivs-storageconfiguration-s3) + */ + public fun s3(): Any + + /** + * An array of key-value pairs to apply to this resource. + * + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-storageconfiguration-tag.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-storageconfiguration.html#cfn-ivs-storageconfiguration-tags) + */ + public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * A builder for [CfnStorageConfigurationProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param name Storage cnfiguration name. + */ + public fun name(name: String) + + /** + * @param s3 An S3 storage configuration contains information about where recorded video will be + * stored. + * See the + * [S3StorageConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-storageconfiguration-s3storageconfiguration.html) + * property type for more information. + */ + public fun s3(s3: IResolvable) + + /** + * @param s3 An S3 storage configuration contains information about where recorded video will be + * stored. + * See the + * [S3StorageConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-storageconfiguration-s3storageconfiguration.html) + * property type for more information. + */ + public fun s3(s3: CfnStorageConfiguration.S3StorageConfigurationProperty) + + /** + * @param s3 An S3 storage configuration contains information about where recorded video will be + * stored. + * See the + * [S3StorageConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-storageconfiguration-s3storageconfiguration.html) + * property type for more information. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("a960961094a78d75ff131edf141d8771b2c5f28a09a7709817fba88cd3a3ab41") + public fun s3(s3: CfnStorageConfiguration.S3StorageConfigurationProperty.Builder.() -> Unit) + + /** + * @param tags An array of key-value pairs to apply to this resource. + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-storageconfiguration-tag.html) + * . + */ + public fun tags(tags: List) + + /** + * @param tags An array of key-value pairs to apply to this resource. + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-storageconfiguration-tag.html) + * . + */ + public fun tags(vararg tags: CfnTag) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.services.ivs.CfnStorageConfigurationProps.Builder + = software.amazon.awscdk.services.ivs.CfnStorageConfigurationProps.builder() + + /** + * @param name Storage cnfiguration name. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + /** + * @param s3 An S3 storage configuration contains information about where recorded video will be + * stored. + * See the + * [S3StorageConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-storageconfiguration-s3storageconfiguration.html) + * property type for more information. + */ + override fun s3(s3: IResolvable) { + cdkBuilder.s3(s3.let(IResolvable::unwrap)) + } + + /** + * @param s3 An S3 storage configuration contains information about where recorded video will be + * stored. + * See the + * [S3StorageConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-storageconfiguration-s3storageconfiguration.html) + * property type for more information. + */ + override fun s3(s3: CfnStorageConfiguration.S3StorageConfigurationProperty) { + cdkBuilder.s3(s3.let(CfnStorageConfiguration.S3StorageConfigurationProperty::unwrap)) + } + + /** + * @param s3 An S3 storage configuration contains information about where recorded video will be + * stored. + * See the + * [S3StorageConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-storageconfiguration-s3storageconfiguration.html) + * property type for more information. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("a960961094a78d75ff131edf141d8771b2c5f28a09a7709817fba88cd3a3ab41") + override fun s3(s3: CfnStorageConfiguration.S3StorageConfigurationProperty.Builder.() -> Unit): + Unit = s3(CfnStorageConfiguration.S3StorageConfigurationProperty(s3)) + + /** + * @param tags An array of key-value pairs to apply to this resource. + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-storageconfiguration-tag.html) + * . + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * @param tags An array of key-value pairs to apply to this resource. + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-storageconfiguration-tag.html) + * . + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + public fun build(): software.amazon.awscdk.services.ivs.CfnStorageConfigurationProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.ivs.CfnStorageConfigurationProps, + ) : CdkObject(cdkObject), CfnStorageConfigurationProps { + /** + * Storage cnfiguration name. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-storageconfiguration.html#cfn-ivs-storageconfiguration-name) + */ + override fun name(): String? = unwrap(this).getName() + + /** + * An S3 storage configuration contains information about where recorded video will be stored. + * + * See the + * [S3StorageConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-storageconfiguration-s3storageconfiguration.html) + * property type for more information. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-storageconfiguration.html#cfn-ivs-storageconfiguration-s3) + */ + override fun s3(): Any = unwrap(this).getS3() + + /** + * An array of key-value pairs to apply to this resource. + * + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-storageconfiguration-tag.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-storageconfiguration.html#cfn-ivs-storageconfiguration-tags) + */ + override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnStorageConfigurationProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.ivs.CfnStorageConfigurationProps): + CfnStorageConfigurationProps = CdkObjectWrappers.wrap(cdkObject) as? + CfnStorageConfigurationProps ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnStorageConfigurationProps): + software.amazon.awscdk.services.ivs.CfnStorageConfigurationProps = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.ivs.CfnStorageConfigurationProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kafkaconnect/CfnConnector.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kafkaconnect/CfnConnector.kt index b374e29a53..3a516b396c 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kafkaconnect/CfnConnector.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kafkaconnect/CfnConnector.kt @@ -3,8 +3,11 @@ package io.cloudshiftdev.awscdk.services.kafkaconnect import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.CfnTag import io.cloudshiftdev.awscdk.IInspectable import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.ITaggableV2 +import io.cloudshiftdev.awscdk.TagManager import io.cloudshiftdev.awscdk.TreeInspector import io.cloudshiftdev.awscdk.common.CdkDslMarker import io.cloudshiftdev.awscdk.common.CdkObject @@ -96,6 +99,10 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .build()) * .build()) * .build()) + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) * .workerConfiguration(WorkerConfigurationProperty.builder() * .revision(123) * .workerConfigurationArn("workerConfigurationArn") @@ -107,7 +114,7 @@ import software.constructs.Construct as SoftwareConstructsConstruct */ public open class CfnConnector( cdkObject: software.amazon.awscdk.services.kafkaconnect.CfnConnector, -) : CfnResource(cdkObject), IInspectable { +) : CfnResource(cdkObject), IInspectable, ITaggableV2 { public constructor( scope: CloudshiftdevConstructsConstruct, id: String, @@ -156,6 +163,12 @@ public open class CfnConnector( public open fun capacity(`value`: CapacityProperty.Builder.() -> Unit): Unit = capacity(CapacityProperty(`value`)) + /** + * Tag Manager which manages the tags for this resource. + */ + public override fun cdkTagManager(): TagManager = + unwrap(this).getCdkTagManager().let(TagManager::wrap) + /** * The configuration of the connector. */ @@ -372,6 +385,23 @@ public open class CfnConnector( unwrap(this).setServiceExecutionRoleArn(`value`) } + /** + * A collection of tags associated with a resource. + */ + public open fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * A collection of tags associated with a resource. + */ + public open fun tags(`value`: List) { + unwrap(this).setTags(`value`.map(CfnTag::unwrap)) + } + + /** + * A collection of tags associated with a resource. + */ + public open fun tags(vararg `value`: CfnTag): Unit = tags(`value`.toList()) + /** * The worker configurations that are in use with the connector. */ @@ -638,6 +668,22 @@ public open class CfnConnector( */ public fun serviceExecutionRoleArn(serviceExecutionRoleArn: String) + /** + * A collection of tags associated with a resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-connector.html#cfn-kafkaconnect-connector-tags) + * @param tags A collection of tags associated with a resource. + */ + public fun tags(tags: List) + + /** + * A collection of tags associated with a resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-connector.html#cfn-kafkaconnect-connector-tags) + * @param tags A collection of tags associated with a resource. + */ + public fun tags(vararg tags: CfnTag) + /** * The worker configurations that are in use with the connector. * @@ -950,6 +996,24 @@ public open class CfnConnector( cdkBuilder.serviceExecutionRoleArn(serviceExecutionRoleArn) } + /** + * A collection of tags associated with a resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-connector.html#cfn-kafkaconnect-connector-tags) + * @param tags A collection of tags associated with a resource. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * A collection of tags associated with a resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-connector.html#cfn-kafkaconnect-connector-tags) + * @param tags A collection of tags associated with a resource. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + /** * The worker configurations that are in use with the connector. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kafkaconnect/CfnConnectorProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kafkaconnect/CfnConnectorProps.kt index ca964c8b13..6ca084aa16 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kafkaconnect/CfnConnectorProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kafkaconnect/CfnConnectorProps.kt @@ -2,6 +2,7 @@ package io.cloudshiftdev.awscdk.services.kafkaconnect +import io.cloudshiftdev.awscdk.CfnTag import io.cloudshiftdev.awscdk.IResolvable import io.cloudshiftdev.awscdk.common.CdkDslMarker import io.cloudshiftdev.awscdk.common.CdkObject @@ -89,6 +90,10 @@ import kotlin.jvm.JvmName * .build()) * .build()) * .build()) + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) * .workerConfiguration(WorkerConfigurationProperty.builder() * .revision(123) * .workerConfigurationArn("workerConfigurationArn") @@ -184,6 +189,13 @@ public interface CfnConnectorProps { */ public fun serviceExecutionRoleArn(): String + /** + * A collection of tags associated with a resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-connector.html#cfn-kafkaconnect-connector-tags) + */ + public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + /** * The worker configurations that are in use with the connector. * @@ -350,6 +362,16 @@ public interface CfnConnectorProps { */ public fun serviceExecutionRoleArn(serviceExecutionRoleArn: String) + /** + * @param tags A collection of tags associated with a resource. + */ + public fun tags(tags: List) + + /** + * @param tags A collection of tags associated with a resource. + */ + public fun tags(vararg tags: CfnTag) + /** * @param workerConfiguration The worker configurations that are in use with the connector. */ @@ -570,6 +592,18 @@ public interface CfnConnectorProps { cdkBuilder.serviceExecutionRoleArn(serviceExecutionRoleArn) } + /** + * @param tags A collection of tags associated with a resource. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * @param tags A collection of tags associated with a resource. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + /** * @param workerConfiguration The worker configurations that are in use with the connector. */ @@ -688,6 +722,13 @@ public interface CfnConnectorProps { */ override fun serviceExecutionRoleArn(): String = unwrap(this).getServiceExecutionRoleArn() + /** + * A collection of tags associated with a resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-connector.html#cfn-kafkaconnect-connector-tags) + */ + override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + /** * The worker configurations that are in use with the connector. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kafkaconnect/CfnCustomPlugin.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kafkaconnect/CfnCustomPlugin.kt new file mode 100644 index 0000000000..cc2e7fed60 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kafkaconnect/CfnCustomPlugin.kt @@ -0,0 +1,749 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.kafkaconnect + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.ITaggableV2 +import io.cloudshiftdev.awscdk.TagManager +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.Number +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.jvm.JvmName +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * Creates a custom plugin using the specified properties. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.kafkaconnect.*; + * CfnCustomPlugin cfnCustomPlugin = CfnCustomPlugin.Builder.create(this, "MyCfnCustomPlugin") + * .contentType("contentType") + * .location(CustomPluginLocationProperty.builder() + * .s3Location(S3LocationProperty.builder() + * .bucketArn("bucketArn") + * .fileKey("fileKey") + * // the properties below are optional + * .objectVersion("objectVersion") + * .build()) + * .build()) + * .name("name") + * // the properties below are optional + * .description("description") + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html) + */ +public open class CfnCustomPlugin( + cdkObject: software.amazon.awscdk.services.kafkaconnect.CfnCustomPlugin, +) : CfnResource(cdkObject), IInspectable, ITaggableV2 { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnCustomPluginProps, + ) : + this(software.amazon.awscdk.services.kafkaconnect.CfnCustomPlugin(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnCustomPluginProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnCustomPluginProps.Builder.() -> Unit, + ) : this(scope, id, CfnCustomPluginProps(props) + ) + + /** + * The Amazon Resource Name (ARN) of the custom plugin. + */ + public open fun attrCustomPluginArn(): String = unwrap(this).getAttrCustomPluginArn() + + /** + * Details about the custom plugin file. + */ + public open fun attrFileDescription(): IResolvable = + unwrap(this).getAttrFileDescription().let(IResolvable::wrap) + + /** + * The revision of the custom plugin. + */ + public open fun attrRevision(): Number = unwrap(this).getAttrRevision() + + /** + * Tag Manager which manages the tags for this resource. + */ + public override fun cdkTagManager(): TagManager = + unwrap(this).getCdkTagManager().let(TagManager::wrap) + + /** + * The format of the plugin file. + */ + public open fun contentType(): String = unwrap(this).getContentType() + + /** + * The format of the plugin file. + */ + public open fun contentType(`value`: String) { + unwrap(this).setContentType(`value`) + } + + /** + * The description of the custom plugin. + */ + public open fun description(): String? = unwrap(this).getDescription() + + /** + * The description of the custom plugin. + */ + public open fun description(`value`: String) { + unwrap(this).setDescription(`value`) + } + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * Information about the location of the custom plugin. + */ + public open fun location(): Any = unwrap(this).getLocation() + + /** + * Information about the location of the custom plugin. + */ + public open fun location(`value`: IResolvable) { + unwrap(this).setLocation(`value`.let(IResolvable::unwrap)) + } + + /** + * Information about the location of the custom plugin. + */ + public open fun location(`value`: CustomPluginLocationProperty) { + unwrap(this).setLocation(`value`.let(CustomPluginLocationProperty::unwrap)) + } + + /** + * Information about the location of the custom plugin. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("9add07cf83bb16177e7e7e7375583a148b131c8f43d0660d4a3e082a97112415") + public open fun location(`value`: CustomPluginLocationProperty.Builder.() -> Unit): Unit = + location(CustomPluginLocationProperty(`value`)) + + /** + * The name of the custom plugin. + */ + public open fun name(): String = unwrap(this).getName() + + /** + * The name of the custom plugin. + */ + public open fun name(`value`: String) { + unwrap(this).setName(`value`) + } + + /** + * An array of key-value pairs to apply to this resource. + */ + public open fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * An array of key-value pairs to apply to this resource. + */ + public open fun tags(`value`: List) { + unwrap(this).setTags(`value`.map(CfnTag::unwrap)) + } + + /** + * An array of key-value pairs to apply to this resource. + */ + public open fun tags(vararg `value`: CfnTag): Unit = tags(`value`.toList()) + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.kafkaconnect.CfnCustomPlugin]. + */ + @CdkDslMarker + public interface Builder { + /** + * The format of the plugin file. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html#cfn-kafkaconnect-customplugin-contenttype) + * @param contentType The format of the plugin file. + */ + public fun contentType(contentType: String) + + /** + * The description of the custom plugin. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html#cfn-kafkaconnect-customplugin-description) + * @param description The description of the custom plugin. + */ + public fun description(description: String) + + /** + * Information about the location of the custom plugin. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html#cfn-kafkaconnect-customplugin-location) + * @param location Information about the location of the custom plugin. + */ + public fun location(location: IResolvable) + + /** + * Information about the location of the custom plugin. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html#cfn-kafkaconnect-customplugin-location) + * @param location Information about the location of the custom plugin. + */ + public fun location(location: CustomPluginLocationProperty) + + /** + * Information about the location of the custom plugin. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html#cfn-kafkaconnect-customplugin-location) + * @param location Information about the location of the custom plugin. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("5db55bcf24d6595d33a1637ab826ab16c091dc4c398e31428e4c2d5c676d57fd") + public fun location(location: CustomPluginLocationProperty.Builder.() -> Unit) + + /** + * The name of the custom plugin. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html#cfn-kafkaconnect-customplugin-name) + * @param name The name of the custom plugin. + */ + public fun name(name: String) + + /** + * An array of key-value pairs to apply to this resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html#cfn-kafkaconnect-customplugin-tags) + * @param tags An array of key-value pairs to apply to this resource. + */ + public fun tags(tags: List) + + /** + * An array of key-value pairs to apply to this resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html#cfn-kafkaconnect-customplugin-tags) + * @param tags An array of key-value pairs to apply to this resource. + */ + public fun tags(vararg tags: CfnTag) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.services.kafkaconnect.CfnCustomPlugin.Builder = + software.amazon.awscdk.services.kafkaconnect.CfnCustomPlugin.Builder.create(scope, id) + + /** + * The format of the plugin file. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html#cfn-kafkaconnect-customplugin-contenttype) + * @param contentType The format of the plugin file. + */ + override fun contentType(contentType: String) { + cdkBuilder.contentType(contentType) + } + + /** + * The description of the custom plugin. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html#cfn-kafkaconnect-customplugin-description) + * @param description The description of the custom plugin. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * Information about the location of the custom plugin. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html#cfn-kafkaconnect-customplugin-location) + * @param location Information about the location of the custom plugin. + */ + override fun location(location: IResolvable) { + cdkBuilder.location(location.let(IResolvable::unwrap)) + } + + /** + * Information about the location of the custom plugin. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html#cfn-kafkaconnect-customplugin-location) + * @param location Information about the location of the custom plugin. + */ + override fun location(location: CustomPluginLocationProperty) { + cdkBuilder.location(location.let(CustomPluginLocationProperty::unwrap)) + } + + /** + * Information about the location of the custom plugin. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html#cfn-kafkaconnect-customplugin-location) + * @param location Information about the location of the custom plugin. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("5db55bcf24d6595d33a1637ab826ab16c091dc4c398e31428e4c2d5c676d57fd") + override fun location(location: CustomPluginLocationProperty.Builder.() -> Unit): Unit = + location(CustomPluginLocationProperty(location)) + + /** + * The name of the custom plugin. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html#cfn-kafkaconnect-customplugin-name) + * @param name The name of the custom plugin. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + /** + * An array of key-value pairs to apply to this resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html#cfn-kafkaconnect-customplugin-tags) + * @param tags An array of key-value pairs to apply to this resource. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * An array of key-value pairs to apply to this resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html#cfn-kafkaconnect-customplugin-tags) + * @param tags An array of key-value pairs to apply to this resource. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + public fun build(): software.amazon.awscdk.services.kafkaconnect.CfnCustomPlugin = + cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.kafkaconnect.CfnCustomPlugin.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnCustomPlugin { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnCustomPlugin(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.kafkaconnect.CfnCustomPlugin): + CfnCustomPlugin = CfnCustomPlugin(cdkObject) + + internal fun unwrap(wrapped: CfnCustomPlugin): + software.amazon.awscdk.services.kafkaconnect.CfnCustomPlugin = wrapped.cdkObject as + software.amazon.awscdk.services.kafkaconnect.CfnCustomPlugin + } + + /** + * Details about a custom plugin file. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.kafkaconnect.*; + * CustomPluginFileDescriptionProperty customPluginFileDescriptionProperty = + * CustomPluginFileDescriptionProperty.builder() + * .fileMd5("fileMd5") + * .fileSize(123) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-customplugin-custompluginfiledescription.html) + */ + public interface CustomPluginFileDescriptionProperty { + /** + * The hex-encoded MD5 checksum of the custom plugin file. + * + * You can use it to validate the file. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-customplugin-custompluginfiledescription.html#cfn-kafkaconnect-customplugin-custompluginfiledescription-filemd5) + */ + public fun fileMd5(): String? = unwrap(this).getFileMd5() + + /** + * The size in bytes of the custom plugin file. + * + * You can use it to validate the file. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-customplugin-custompluginfiledescription.html#cfn-kafkaconnect-customplugin-custompluginfiledescription-filesize) + */ + public fun fileSize(): Number? = unwrap(this).getFileSize() + + /** + * A builder for [CustomPluginFileDescriptionProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param fileMd5 The hex-encoded MD5 checksum of the custom plugin file. + * You can use it to validate the file. + */ + public fun fileMd5(fileMd5: String) + + /** + * @param fileSize The size in bytes of the custom plugin file. + * You can use it to validate the file. + */ + public fun fileSize(fileSize: Number) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.kafkaconnect.CfnCustomPlugin.CustomPluginFileDescriptionProperty.Builder + = + software.amazon.awscdk.services.kafkaconnect.CfnCustomPlugin.CustomPluginFileDescriptionProperty.builder() + + /** + * @param fileMd5 The hex-encoded MD5 checksum of the custom plugin file. + * You can use it to validate the file. + */ + override fun fileMd5(fileMd5: String) { + cdkBuilder.fileMd5(fileMd5) + } + + /** + * @param fileSize The size in bytes of the custom plugin file. + * You can use it to validate the file. + */ + override fun fileSize(fileSize: Number) { + cdkBuilder.fileSize(fileSize) + } + + public fun build(): + software.amazon.awscdk.services.kafkaconnect.CfnCustomPlugin.CustomPluginFileDescriptionProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.kafkaconnect.CfnCustomPlugin.CustomPluginFileDescriptionProperty, + ) : CdkObject(cdkObject), CustomPluginFileDescriptionProperty { + /** + * The hex-encoded MD5 checksum of the custom plugin file. + * + * You can use it to validate the file. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-customplugin-custompluginfiledescription.html#cfn-kafkaconnect-customplugin-custompluginfiledescription-filemd5) + */ + override fun fileMd5(): String? = unwrap(this).getFileMd5() + + /** + * The size in bytes of the custom plugin file. + * + * You can use it to validate the file. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-customplugin-custompluginfiledescription.html#cfn-kafkaconnect-customplugin-custompluginfiledescription-filesize) + */ + override fun fileSize(): Number? = unwrap(this).getFileSize() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): + CustomPluginFileDescriptionProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.kafkaconnect.CfnCustomPlugin.CustomPluginFileDescriptionProperty): + CustomPluginFileDescriptionProperty = CdkObjectWrappers.wrap(cdkObject) as? + CustomPluginFileDescriptionProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: CustomPluginFileDescriptionProperty): + software.amazon.awscdk.services.kafkaconnect.CfnCustomPlugin.CustomPluginFileDescriptionProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.kafkaconnect.CfnCustomPlugin.CustomPluginFileDescriptionProperty + } + } + + /** + * Information about the location of a custom plugin. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.kafkaconnect.*; + * CustomPluginLocationProperty customPluginLocationProperty = + * CustomPluginLocationProperty.builder() + * .s3Location(S3LocationProperty.builder() + * .bucketArn("bucketArn") + * .fileKey("fileKey") + * // the properties below are optional + * .objectVersion("objectVersion") + * .build()) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-customplugin-custompluginlocation.html) + */ + public interface CustomPluginLocationProperty { + /** + * The S3 bucket Amazon Resource Name (ARN), file key, and object version of the plugin file + * stored in Amazon S3. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-customplugin-custompluginlocation.html#cfn-kafkaconnect-customplugin-custompluginlocation-s3location) + */ + public fun s3Location(): Any + + /** + * A builder for [CustomPluginLocationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param s3Location The S3 bucket Amazon Resource Name (ARN), file key, and object version of + * the plugin file stored in Amazon S3. + */ + public fun s3Location(s3Location: IResolvable) + + /** + * @param s3Location The S3 bucket Amazon Resource Name (ARN), file key, and object version of + * the plugin file stored in Amazon S3. + */ + public fun s3Location(s3Location: S3LocationProperty) + + /** + * @param s3Location The S3 bucket Amazon Resource Name (ARN), file key, and object version of + * the plugin file stored in Amazon S3. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("14228f548df427acdbc9e30c14e9ca69100a12e3a21c387117a73e904d3b4f00") + public fun s3Location(s3Location: S3LocationProperty.Builder.() -> Unit) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.kafkaconnect.CfnCustomPlugin.CustomPluginLocationProperty.Builder + = + software.amazon.awscdk.services.kafkaconnect.CfnCustomPlugin.CustomPluginLocationProperty.builder() + + /** + * @param s3Location The S3 bucket Amazon Resource Name (ARN), file key, and object version of + * the plugin file stored in Amazon S3. + */ + override fun s3Location(s3Location: IResolvable) { + cdkBuilder.s3Location(s3Location.let(IResolvable::unwrap)) + } + + /** + * @param s3Location The S3 bucket Amazon Resource Name (ARN), file key, and object version of + * the plugin file stored in Amazon S3. + */ + override fun s3Location(s3Location: S3LocationProperty) { + cdkBuilder.s3Location(s3Location.let(S3LocationProperty::unwrap)) + } + + /** + * @param s3Location The S3 bucket Amazon Resource Name (ARN), file key, and object version of + * the plugin file stored in Amazon S3. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("14228f548df427acdbc9e30c14e9ca69100a12e3a21c387117a73e904d3b4f00") + override fun s3Location(s3Location: S3LocationProperty.Builder.() -> Unit): Unit = + s3Location(S3LocationProperty(s3Location)) + + public fun build(): + software.amazon.awscdk.services.kafkaconnect.CfnCustomPlugin.CustomPluginLocationProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.kafkaconnect.CfnCustomPlugin.CustomPluginLocationProperty, + ) : CdkObject(cdkObject), CustomPluginLocationProperty { + /** + * The S3 bucket Amazon Resource Name (ARN), file key, and object version of the plugin file + * stored in Amazon S3. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-customplugin-custompluginlocation.html#cfn-kafkaconnect-customplugin-custompluginlocation-s3location) + */ + override fun s3Location(): Any = unwrap(this).getS3Location() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CustomPluginLocationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.kafkaconnect.CfnCustomPlugin.CustomPluginLocationProperty): + CustomPluginLocationProperty = CdkObjectWrappers.wrap(cdkObject) as? + CustomPluginLocationProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: CustomPluginLocationProperty): + software.amazon.awscdk.services.kafkaconnect.CfnCustomPlugin.CustomPluginLocationProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.kafkaconnect.CfnCustomPlugin.CustomPluginLocationProperty + } + } + + /** + * The location of an object in Amazon S3. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.kafkaconnect.*; + * S3LocationProperty s3LocationProperty = S3LocationProperty.builder() + * .bucketArn("bucketArn") + * .fileKey("fileKey") + * // the properties below are optional + * .objectVersion("objectVersion") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-customplugin-s3location.html) + */ + public interface S3LocationProperty { + /** + * The Amazon Resource Name (ARN) of an S3 bucket. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-customplugin-s3location.html#cfn-kafkaconnect-customplugin-s3location-bucketarn) + */ + public fun bucketArn(): String + + /** + * The file key for an object in an S3 bucket. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-customplugin-s3location.html#cfn-kafkaconnect-customplugin-s3location-filekey) + */ + public fun fileKey(): String + + /** + * The version of an object in an S3 bucket. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-customplugin-s3location.html#cfn-kafkaconnect-customplugin-s3location-objectversion) + */ + public fun objectVersion(): String? = unwrap(this).getObjectVersion() + + /** + * A builder for [S3LocationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param bucketArn The Amazon Resource Name (ARN) of an S3 bucket. + */ + public fun bucketArn(bucketArn: String) + + /** + * @param fileKey The file key for an object in an S3 bucket. + */ + public fun fileKey(fileKey: String) + + /** + * @param objectVersion The version of an object in an S3 bucket. + */ + public fun objectVersion(objectVersion: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.kafkaconnect.CfnCustomPlugin.S3LocationProperty.Builder = + software.amazon.awscdk.services.kafkaconnect.CfnCustomPlugin.S3LocationProperty.builder() + + /** + * @param bucketArn The Amazon Resource Name (ARN) of an S3 bucket. + */ + override fun bucketArn(bucketArn: String) { + cdkBuilder.bucketArn(bucketArn) + } + + /** + * @param fileKey The file key for an object in an S3 bucket. + */ + override fun fileKey(fileKey: String) { + cdkBuilder.fileKey(fileKey) + } + + /** + * @param objectVersion The version of an object in an S3 bucket. + */ + override fun objectVersion(objectVersion: String) { + cdkBuilder.objectVersion(objectVersion) + } + + public fun build(): + software.amazon.awscdk.services.kafkaconnect.CfnCustomPlugin.S3LocationProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.kafkaconnect.CfnCustomPlugin.S3LocationProperty, + ) : CdkObject(cdkObject), S3LocationProperty { + /** + * The Amazon Resource Name (ARN) of an S3 bucket. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-customplugin-s3location.html#cfn-kafkaconnect-customplugin-s3location-bucketarn) + */ + override fun bucketArn(): String = unwrap(this).getBucketArn() + + /** + * The file key for an object in an S3 bucket. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-customplugin-s3location.html#cfn-kafkaconnect-customplugin-s3location-filekey) + */ + override fun fileKey(): String = unwrap(this).getFileKey() + + /** + * The version of an object in an S3 bucket. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-customplugin-s3location.html#cfn-kafkaconnect-customplugin-s3location-objectversion) + */ + override fun objectVersion(): String? = unwrap(this).getObjectVersion() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): S3LocationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.kafkaconnect.CfnCustomPlugin.S3LocationProperty): + S3LocationProperty = CdkObjectWrappers.wrap(cdkObject) as? S3LocationProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: S3LocationProperty): + software.amazon.awscdk.services.kafkaconnect.CfnCustomPlugin.S3LocationProperty = (wrapped + as CdkObject).cdkObject as + software.amazon.awscdk.services.kafkaconnect.CfnCustomPlugin.S3LocationProperty + } + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kafkaconnect/CfnCustomPluginProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kafkaconnect/CfnCustomPluginProps.kt new file mode 100644 index 0000000000..c63a38e35c --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kafkaconnect/CfnCustomPluginProps.kt @@ -0,0 +1,249 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.kafkaconnect + +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.jvm.JvmName + +/** + * Properties for defining a `CfnCustomPlugin`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.kafkaconnect.*; + * CfnCustomPluginProps cfnCustomPluginProps = CfnCustomPluginProps.builder() + * .contentType("contentType") + * .location(CustomPluginLocationProperty.builder() + * .s3Location(S3LocationProperty.builder() + * .bucketArn("bucketArn") + * .fileKey("fileKey") + * // the properties below are optional + * .objectVersion("objectVersion") + * .build()) + * .build()) + * .name("name") + * // the properties below are optional + * .description("description") + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html) + */ +public interface CfnCustomPluginProps { + /** + * The format of the plugin file. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html#cfn-kafkaconnect-customplugin-contenttype) + */ + public fun contentType(): String + + /** + * The description of the custom plugin. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html#cfn-kafkaconnect-customplugin-description) + */ + public fun description(): String? = unwrap(this).getDescription() + + /** + * Information about the location of the custom plugin. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html#cfn-kafkaconnect-customplugin-location) + */ + public fun location(): Any + + /** + * The name of the custom plugin. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html#cfn-kafkaconnect-customplugin-name) + */ + public fun name(): String + + /** + * An array of key-value pairs to apply to this resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html#cfn-kafkaconnect-customplugin-tags) + */ + public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * A builder for [CfnCustomPluginProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param contentType The format of the plugin file. + */ + public fun contentType(contentType: String) + + /** + * @param description The description of the custom plugin. + */ + public fun description(description: String) + + /** + * @param location Information about the location of the custom plugin. + */ + public fun location(location: IResolvable) + + /** + * @param location Information about the location of the custom plugin. + */ + public fun location(location: CfnCustomPlugin.CustomPluginLocationProperty) + + /** + * @param location Information about the location of the custom plugin. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("6f987cbcc34e5cdbe403b944c32efdc58a60053f9e0f6b350b51e1373d99a2af") + public fun location(location: CfnCustomPlugin.CustomPluginLocationProperty.Builder.() -> Unit) + + /** + * @param name The name of the custom plugin. + */ + public fun name(name: String) + + /** + * @param tags An array of key-value pairs to apply to this resource. + */ + public fun tags(tags: List) + + /** + * @param tags An array of key-value pairs to apply to this resource. + */ + public fun tags(vararg tags: CfnTag) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.kafkaconnect.CfnCustomPluginProps.Builder = + software.amazon.awscdk.services.kafkaconnect.CfnCustomPluginProps.builder() + + /** + * @param contentType The format of the plugin file. + */ + override fun contentType(contentType: String) { + cdkBuilder.contentType(contentType) + } + + /** + * @param description The description of the custom plugin. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * @param location Information about the location of the custom plugin. + */ + override fun location(location: IResolvable) { + cdkBuilder.location(location.let(IResolvable::unwrap)) + } + + /** + * @param location Information about the location of the custom plugin. + */ + override fun location(location: CfnCustomPlugin.CustomPluginLocationProperty) { + cdkBuilder.location(location.let(CfnCustomPlugin.CustomPluginLocationProperty::unwrap)) + } + + /** + * @param location Information about the location of the custom plugin. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("6f987cbcc34e5cdbe403b944c32efdc58a60053f9e0f6b350b51e1373d99a2af") + override + fun location(location: CfnCustomPlugin.CustomPluginLocationProperty.Builder.() -> Unit): + Unit = location(CfnCustomPlugin.CustomPluginLocationProperty(location)) + + /** + * @param name The name of the custom plugin. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + /** + * @param tags An array of key-value pairs to apply to this resource. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * @param tags An array of key-value pairs to apply to this resource. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + public fun build(): software.amazon.awscdk.services.kafkaconnect.CfnCustomPluginProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.kafkaconnect.CfnCustomPluginProps, + ) : CdkObject(cdkObject), CfnCustomPluginProps { + /** + * The format of the plugin file. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html#cfn-kafkaconnect-customplugin-contenttype) + */ + override fun contentType(): String = unwrap(this).getContentType() + + /** + * The description of the custom plugin. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html#cfn-kafkaconnect-customplugin-description) + */ + override fun description(): String? = unwrap(this).getDescription() + + /** + * Information about the location of the custom plugin. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html#cfn-kafkaconnect-customplugin-location) + */ + override fun location(): Any = unwrap(this).getLocation() + + /** + * The name of the custom plugin. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html#cfn-kafkaconnect-customplugin-name) + */ + override fun name(): String = unwrap(this).getName() + + /** + * An array of key-value pairs to apply to this resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-customplugin.html#cfn-kafkaconnect-customplugin-tags) + */ + override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnCustomPluginProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.kafkaconnect.CfnCustomPluginProps): + CfnCustomPluginProps = CdkObjectWrappers.wrap(cdkObject) as? CfnCustomPluginProps ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnCustomPluginProps): + software.amazon.awscdk.services.kafkaconnect.CfnCustomPluginProps = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.kafkaconnect.CfnCustomPluginProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kafkaconnect/CfnWorkerConfiguration.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kafkaconnect/CfnWorkerConfiguration.kt new file mode 100644 index 0000000000..20516ce789 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kafkaconnect/CfnWorkerConfiguration.kt @@ -0,0 +1,271 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.kafkaconnect + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.ITaggableV2 +import io.cloudshiftdev.awscdk.TagManager +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import kotlin.Number +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * Creates a worker configuration using the specified properties. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.kafkaconnect.*; + * CfnWorkerConfiguration cfnWorkerConfiguration = CfnWorkerConfiguration.Builder.create(this, + * "MyCfnWorkerConfiguration") + * .name("name") + * .propertiesFileContent("propertiesFileContent") + * // the properties below are optional + * .description("description") + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-workerconfiguration.html) + */ +public open class CfnWorkerConfiguration( + cdkObject: software.amazon.awscdk.services.kafkaconnect.CfnWorkerConfiguration, +) : CfnResource(cdkObject), IInspectable, ITaggableV2 { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnWorkerConfigurationProps, + ) : + this(software.amazon.awscdk.services.kafkaconnect.CfnWorkerConfiguration(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnWorkerConfigurationProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnWorkerConfigurationProps.Builder.() -> Unit, + ) : this(scope, id, CfnWorkerConfigurationProps(props) + ) + + /** + * The revision of the worker configuration. + */ + public open fun attrRevision(): Number = unwrap(this).getAttrRevision() + + /** + * The Amazon Resource Name (ARN) of the worker configuration. + */ + public open fun attrWorkerConfigurationArn(): String = + unwrap(this).getAttrWorkerConfigurationArn() + + /** + * Tag Manager which manages the tags for this resource. + */ + public override fun cdkTagManager(): TagManager = + unwrap(this).getCdkTagManager().let(TagManager::wrap) + + /** + * The description of a worker configuration. + */ + public open fun description(): String? = unwrap(this).getDescription() + + /** + * The description of a worker configuration. + */ + public open fun description(`value`: String) { + unwrap(this).setDescription(`value`) + } + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * The name of the worker configuration. + */ + public open fun name(): String = unwrap(this).getName() + + /** + * The name of the worker configuration. + */ + public open fun name(`value`: String) { + unwrap(this).setName(`value`) + } + + /** + * Base64 encoded contents of the connect-distributed.properties file. + */ + public open fun propertiesFileContent(): String = unwrap(this).getPropertiesFileContent() + + /** + * Base64 encoded contents of the connect-distributed.properties file. + */ + public open fun propertiesFileContent(`value`: String) { + unwrap(this).setPropertiesFileContent(`value`) + } + + /** + * A collection of tags associated with a resource. + */ + public open fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * A collection of tags associated with a resource. + */ + public open fun tags(`value`: List) { + unwrap(this).setTags(`value`.map(CfnTag::unwrap)) + } + + /** + * A collection of tags associated with a resource. + */ + public open fun tags(vararg `value`: CfnTag): Unit = tags(`value`.toList()) + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.kafkaconnect.CfnWorkerConfiguration]. + */ + @CdkDslMarker + public interface Builder { + /** + * The description of a worker configuration. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-workerconfiguration.html#cfn-kafkaconnect-workerconfiguration-description) + * @param description The description of a worker configuration. + */ + public fun description(description: String) + + /** + * The name of the worker configuration. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-workerconfiguration.html#cfn-kafkaconnect-workerconfiguration-name) + * @param name The name of the worker configuration. + */ + public fun name(name: String) + + /** + * Base64 encoded contents of the connect-distributed.properties file. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-workerconfiguration.html#cfn-kafkaconnect-workerconfiguration-propertiesfilecontent) + * @param propertiesFileContent Base64 encoded contents of the connect-distributed.properties + * file. + */ + public fun propertiesFileContent(propertiesFileContent: String) + + /** + * A collection of tags associated with a resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-workerconfiguration.html#cfn-kafkaconnect-workerconfiguration-tags) + * @param tags A collection of tags associated with a resource. + */ + public fun tags(tags: List) + + /** + * A collection of tags associated with a resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-workerconfiguration.html#cfn-kafkaconnect-workerconfiguration-tags) + * @param tags A collection of tags associated with a resource. + */ + public fun tags(vararg tags: CfnTag) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.kafkaconnect.CfnWorkerConfiguration.Builder = + software.amazon.awscdk.services.kafkaconnect.CfnWorkerConfiguration.Builder.create(scope, + id) + + /** + * The description of a worker configuration. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-workerconfiguration.html#cfn-kafkaconnect-workerconfiguration-description) + * @param description The description of a worker configuration. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * The name of the worker configuration. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-workerconfiguration.html#cfn-kafkaconnect-workerconfiguration-name) + * @param name The name of the worker configuration. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + /** + * Base64 encoded contents of the connect-distributed.properties file. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-workerconfiguration.html#cfn-kafkaconnect-workerconfiguration-propertiesfilecontent) + * @param propertiesFileContent Base64 encoded contents of the connect-distributed.properties + * file. + */ + override fun propertiesFileContent(propertiesFileContent: String) { + cdkBuilder.propertiesFileContent(propertiesFileContent) + } + + /** + * A collection of tags associated with a resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-workerconfiguration.html#cfn-kafkaconnect-workerconfiguration-tags) + * @param tags A collection of tags associated with a resource. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * A collection of tags associated with a resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-workerconfiguration.html#cfn-kafkaconnect-workerconfiguration-tags) + * @param tags A collection of tags associated with a resource. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + public fun build(): software.amazon.awscdk.services.kafkaconnect.CfnWorkerConfiguration = + cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.kafkaconnect.CfnWorkerConfiguration.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnWorkerConfiguration { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnWorkerConfiguration(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.kafkaconnect.CfnWorkerConfiguration): + CfnWorkerConfiguration = CfnWorkerConfiguration(cdkObject) + + internal fun unwrap(wrapped: CfnWorkerConfiguration): + software.amazon.awscdk.services.kafkaconnect.CfnWorkerConfiguration = wrapped.cdkObject as + software.amazon.awscdk.services.kafkaconnect.CfnWorkerConfiguration + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kafkaconnect/CfnWorkerConfigurationProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kafkaconnect/CfnWorkerConfigurationProps.kt new file mode 100644 index 0000000000..008bd5ef90 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kafkaconnect/CfnWorkerConfigurationProps.kt @@ -0,0 +1,188 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.kafkaconnect + +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.String +import kotlin.Unit +import kotlin.collections.List + +/** + * Properties for defining a `CfnWorkerConfiguration`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.kafkaconnect.*; + * CfnWorkerConfigurationProps cfnWorkerConfigurationProps = CfnWorkerConfigurationProps.builder() + * .name("name") + * .propertiesFileContent("propertiesFileContent") + * // the properties below are optional + * .description("description") + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-workerconfiguration.html) + */ +public interface CfnWorkerConfigurationProps { + /** + * The description of a worker configuration. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-workerconfiguration.html#cfn-kafkaconnect-workerconfiguration-description) + */ + public fun description(): String? = unwrap(this).getDescription() + + /** + * The name of the worker configuration. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-workerconfiguration.html#cfn-kafkaconnect-workerconfiguration-name) + */ + public fun name(): String + + /** + * Base64 encoded contents of the connect-distributed.properties file. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-workerconfiguration.html#cfn-kafkaconnect-workerconfiguration-propertiesfilecontent) + */ + public fun propertiesFileContent(): String + + /** + * A collection of tags associated with a resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-workerconfiguration.html#cfn-kafkaconnect-workerconfiguration-tags) + */ + public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * A builder for [CfnWorkerConfigurationProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param description The description of a worker configuration. + */ + public fun description(description: String) + + /** + * @param name The name of the worker configuration. + */ + public fun name(name: String) + + /** + * @param propertiesFileContent Base64 encoded contents of the connect-distributed.properties + * file. + */ + public fun propertiesFileContent(propertiesFileContent: String) + + /** + * @param tags A collection of tags associated with a resource. + */ + public fun tags(tags: List) + + /** + * @param tags A collection of tags associated with a resource. + */ + public fun tags(vararg tags: CfnTag) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.kafkaconnect.CfnWorkerConfigurationProps.Builder = + software.amazon.awscdk.services.kafkaconnect.CfnWorkerConfigurationProps.builder() + + /** + * @param description The description of a worker configuration. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + + /** + * @param name The name of the worker configuration. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + /** + * @param propertiesFileContent Base64 encoded contents of the connect-distributed.properties + * file. + */ + override fun propertiesFileContent(propertiesFileContent: String) { + cdkBuilder.propertiesFileContent(propertiesFileContent) + } + + /** + * @param tags A collection of tags associated with a resource. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * @param tags A collection of tags associated with a resource. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + public fun build(): software.amazon.awscdk.services.kafkaconnect.CfnWorkerConfigurationProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.kafkaconnect.CfnWorkerConfigurationProps, + ) : CdkObject(cdkObject), CfnWorkerConfigurationProps { + /** + * The description of a worker configuration. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-workerconfiguration.html#cfn-kafkaconnect-workerconfiguration-description) + */ + override fun description(): String? = unwrap(this).getDescription() + + /** + * The name of the worker configuration. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-workerconfiguration.html#cfn-kafkaconnect-workerconfiguration-name) + */ + override fun name(): String = unwrap(this).getName() + + /** + * Base64 encoded contents of the connect-distributed.properties file. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-workerconfiguration.html#cfn-kafkaconnect-workerconfiguration-propertiesfilecontent) + */ + override fun propertiesFileContent(): String = unwrap(this).getPropertiesFileContent() + + /** + * A collection of tags associated with a resource. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kafkaconnect-workerconfiguration.html#cfn-kafkaconnect-workerconfiguration-tags) + */ + override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnWorkerConfigurationProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.kafkaconnect.CfnWorkerConfigurationProps): + CfnWorkerConfigurationProps = CdkObjectWrappers.wrap(cdkObject) as? + CfnWorkerConfigurationProps ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnWorkerConfigurationProps): + software.amazon.awscdk.services.kafkaconnect.CfnWorkerConfigurationProps = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.kafkaconnect.CfnWorkerConfigurationProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kendra/CfnDataSource.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kendra/CfnDataSource.kt index 985f309ddb..c8484bd6ae 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kendra/CfnDataSource.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kendra/CfnDataSource.kt @@ -3836,9 +3836,9 @@ public open class CfnDataSource( public fun databasePort(): Number /** - * The Amazon Resource Name (ARN) of credentials stored in AWS Secrets Manager . + * The Amazon Resource Name (ARN) of an AWS Secrets Manager secret that stores the credentials. * - * The credentials should be a user/password pair. For more information, see [Using a Database + * The credentials should be a user-password pair. For more information, see [Using a Database * Data Source](https://docs.aws.amazon.com/kendra/latest/dg/data-source-database.html) . For more * information about AWS Secrets Manager , see [What Is AWS Secrets * Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) in the *AWS @@ -3877,9 +3877,9 @@ public open class CfnDataSource( public fun databasePort(databasePort: Number) /** - * @param secretArn The Amazon Resource Name (ARN) of credentials stored in AWS Secrets - * Manager . - * The credentials should be a user/password pair. For more information, see [Using a Database + * @param secretArn The Amazon Resource Name (ARN) of an AWS Secrets Manager secret that + * stores the credentials. + * The credentials should be a user-password pair. For more information, see [Using a Database * Data Source](https://docs.aws.amazon.com/kendra/latest/dg/data-source-database.html) . For * more information about AWS Secrets Manager , see [What Is AWS Secrets * Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) in the *AWS @@ -3922,9 +3922,9 @@ public open class CfnDataSource( } /** - * @param secretArn The Amazon Resource Name (ARN) of credentials stored in AWS Secrets - * Manager . - * The credentials should be a user/password pair. For more information, see [Using a Database + * @param secretArn The Amazon Resource Name (ARN) of an AWS Secrets Manager secret that + * stores the credentials. + * The credentials should be a user-password pair. For more information, see [Using a Database * Data Source](https://docs.aws.amazon.com/kendra/latest/dg/data-source-database.html) . For * more information about AWS Secrets Manager , see [What Is AWS Secrets * Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) in the *AWS @@ -3973,9 +3973,10 @@ public open class CfnDataSource( override fun databasePort(): Number = unwrap(this).getDatabasePort() /** - * The Amazon Resource Name (ARN) of credentials stored in AWS Secrets Manager . + * The Amazon Resource Name (ARN) of an AWS Secrets Manager secret that stores the + * credentials. * - * The credentials should be a user/password pair. For more information, see [Using a Database + * The credentials should be a user-password pair. For more information, see [Using a Database * Data Source](https://docs.aws.amazon.com/kendra/latest/dg/data-source-database.html) . For * more information about AWS Secrets Manager , see [What Is AWS Secrets * Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) in the *AWS @@ -4127,11 +4128,11 @@ public open class CfnDataSource( unwrap(this).getPreExtractionHookConfiguration() /** - * The Amazon Resource Name (ARN) of a role with permission to run + * The Amazon Resource Name (ARN) of an IAM role with permission to run * `PreExtractionHookConfiguration` and `PostExtractionHookConfiguration` for altering document * metadata and content during the document ingestion process. * - * For more information, see [IAM roles for Amazon + * For more information, see [an IAM roles for Amazon * Kendra](https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html) . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-customdocumentenrichmentconfiguration.html#cfn-kendra-datasource-customdocumentenrichmentconfiguration-rolearn) @@ -4233,10 +4234,10 @@ public open class CfnDataSource( fun preExtractionHookConfiguration(preExtractionHookConfiguration: HookConfigurationProperty.Builder.() -> Unit) /** - * @param roleArn The Amazon Resource Name (ARN) of a role with permission to run + * @param roleArn The Amazon Resource Name (ARN) of an IAM role with permission to run * `PreExtractionHookConfiguration` and `PostExtractionHookConfiguration` for altering document * metadata and content during the document ingestion process. - * For more information, see [IAM roles for Amazon + * For more information, see [an IAM roles for Amazon * Kendra](https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html) . */ public fun roleArn(roleArn: String) @@ -4355,10 +4356,10 @@ public open class CfnDataSource( preExtractionHookConfiguration(HookConfigurationProperty(preExtractionHookConfiguration)) /** - * @param roleArn The Amazon Resource Name (ARN) of a role with permission to run + * @param roleArn The Amazon Resource Name (ARN) of an IAM role with permission to run * `PreExtractionHookConfiguration` and `PostExtractionHookConfiguration` for altering document * metadata and content during the document ingestion process. - * For more information, see [IAM roles for Amazon + * For more information, see [an IAM roles for Amazon * Kendra](https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html) . */ override fun roleArn(roleArn: String) { @@ -4410,11 +4411,11 @@ public open class CfnDataSource( unwrap(this).getPreExtractionHookConfiguration() /** - * The Amazon Resource Name (ARN) of a role with permission to run + * The Amazon Resource Name (ARN) of an IAM role with permission to run * `PreExtractionHookConfiguration` and `PostExtractionHookConfiguration` for altering document * metadata and content during the document ingestion process. * - * For more information, see [IAM roles for Amazon + * For more information, see [an IAM roles for Amazon * Kendra](https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html) . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-customdocumentenrichmentconfiguration.html#cfn-kendra-datasource-customdocumentenrichmentconfiguration-rolearn) @@ -7652,10 +7653,10 @@ public open class CfnDataSource( public fun invocationCondition(): Any? = unwrap(this).getInvocationCondition() /** - * The Amazon Resource Name (ARN) of a role with permission to run a Lambda function during + * The Amazon Resource Name (ARN) of an IAM role with permission to run a Lambda function during * ingestion. * - * For more information, see [IAM roles for Amazon + * For more information, see [an IAM roles for Amazon * Kendra](https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html) . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-hookconfiguration.html#cfn-kendra-datasource-hookconfiguration-lambdaarn) @@ -7704,9 +7705,9 @@ public open class CfnDataSource( fun invocationCondition(invocationCondition: DocumentAttributeConditionProperty.Builder.() -> Unit) /** - * @param lambdaArn The Amazon Resource Name (ARN) of a role with permission to run a Lambda - * function during ingestion. - * For more information, see [IAM roles for Amazon + * @param lambdaArn The Amazon Resource Name (ARN) of an IAM role with permission to run a + * Lambda function during ingestion. + * For more information, see [an IAM roles for Amazon * Kendra](https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html) . */ public fun lambdaArn(lambdaArn: String) @@ -7756,9 +7757,9 @@ public open class CfnDataSource( Unit = invocationCondition(DocumentAttributeConditionProperty(invocationCondition)) /** - * @param lambdaArn The Amazon Resource Name (ARN) of a role with permission to run a Lambda - * function during ingestion. - * For more information, see [IAM roles for Amazon + * @param lambdaArn The Amazon Resource Name (ARN) of an IAM role with permission to run a + * Lambda function during ingestion. + * For more information, see [an IAM roles for Amazon * Kendra](https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html) . */ override fun lambdaArn(lambdaArn: String) { @@ -7795,10 +7796,10 @@ public open class CfnDataSource( override fun invocationCondition(): Any? = unwrap(this).getInvocationCondition() /** - * The Amazon Resource Name (ARN) of a role with permission to run a Lambda function during - * ingestion. + * The Amazon Resource Name (ARN) of an IAM role with permission to run a Lambda function + * during ingestion. * - * For more information, see [IAM roles for Amazon + * For more information, see [an IAM roles for Amazon * Kendra](https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html) . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-hookconfiguration.html#cfn-kendra-datasource-hookconfiguration-lambdaarn) @@ -8596,8 +8597,8 @@ public open class CfnDataSource( * A list of users whose documents should be indexed. * * Specify the user names in email format, for example, `username@tenantdomain` . If you - * need to index the documents of more than 100 users, use the `OneDriveUserS3Path` field to - * specify the location of a file containing a list of users. + * need to index the documents of more than 10 users, use the `OneDriveUserS3Path` field to specify + * the location of a file containing a list of users. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-onedriveusers.html#cfn-kendra-datasource-onedriveusers-onedriveuserlist) */ @@ -8619,7 +8620,7 @@ public open class CfnDataSource( /** * @param oneDriveUserList A list of users whose documents should be indexed. * Specify the user names in email format, for example, `username@tenantdomain` . If you - * need to index the documents of more than 100 users, use the `OneDriveUserS3Path` field to + * need to index the documents of more than 10 users, use the `OneDriveUserS3Path` field to * specify the location of a file containing a list of users. */ public fun oneDriveUserList(oneDriveUserList: List) @@ -8627,7 +8628,7 @@ public open class CfnDataSource( /** * @param oneDriveUserList A list of users whose documents should be indexed. * Specify the user names in email format, for example, `username@tenantdomain` . If you - * need to index the documents of more than 100 users, use the `OneDriveUserS3Path` field to + * need to index the documents of more than 10 users, use the `OneDriveUserS3Path` field to * specify the location of a file containing a list of users. */ public fun oneDriveUserList(vararg oneDriveUserList: String) @@ -8661,7 +8662,7 @@ public open class CfnDataSource( /** * @param oneDriveUserList A list of users whose documents should be indexed. * Specify the user names in email format, for example, `username@tenantdomain` . If you - * need to index the documents of more than 100 users, use the `OneDriveUserS3Path` field to + * need to index the documents of more than 10 users, use the `OneDriveUserS3Path` field to * specify the location of a file containing a list of users. */ override fun oneDriveUserList(oneDriveUserList: List) { @@ -8671,7 +8672,7 @@ public open class CfnDataSource( /** * @param oneDriveUserList A list of users whose documents should be indexed. * Specify the user names in email format, for example, `username@tenantdomain` . If you - * need to index the documents of more than 100 users, use the `OneDriveUserS3Path` field to + * need to index the documents of more than 10 users, use the `OneDriveUserS3Path` field to * specify the location of a file containing a list of users. */ override fun oneDriveUserList(vararg oneDriveUserList: String): Unit = @@ -8713,7 +8714,7 @@ public open class CfnDataSource( * A list of users whose documents should be indexed. * * Specify the user names in email format, for example, `username@tenantdomain` . If you - * need to index the documents of more than 100 users, use the `OneDriveUserS3Path` field to + * need to index the documents of more than 10 users, use the `OneDriveUserS3Path` field to * specify the location of a file containing a list of users. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-onedriveusers.html#cfn-kendra-datasource-onedriveusers-onedriveuserlist) @@ -8769,8 +8770,10 @@ public open class CfnDataSource( */ public interface ProxyConfigurationProperty { /** - * Your secret ARN, which you can create in [AWS Secrets - * Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html). + * The Amazon Resource Name (ARN) of an AWS Secrets Manager secret. + * + * You create a secret to store your credentials in [AWS Secrets + * Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) * * The credentials are optional. You use a secret if web proxy credentials are required to * connect to a website host. Amazon Kendra currently support basic authentication to connect to a @@ -8805,8 +8808,10 @@ public open class CfnDataSource( @CdkDslMarker public interface Builder { /** - * @param credentials Your secret ARN, which you can create in [AWS Secrets - * Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html). + * @param credentials The Amazon Resource Name (ARN) of an AWS Secrets Manager secret. + * You create a secret to store your credentials in [AWS Secrets + * Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) + * * The credentials are optional. You use a secret if web proxy credentials are required to * connect to a website host. Amazon Kendra currently support basic authentication to connect to * a web proxy server. The secret stores your credentials. @@ -8834,8 +8839,10 @@ public open class CfnDataSource( software.amazon.awscdk.services.kendra.CfnDataSource.ProxyConfigurationProperty.builder() /** - * @param credentials Your secret ARN, which you can create in [AWS Secrets - * Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html). + * @param credentials The Amazon Resource Name (ARN) of an AWS Secrets Manager secret. + * You create a secret to store your credentials in [AWS Secrets + * Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) + * * The credentials are optional. You use a secret if web proxy credentials are required to * connect to a website host. Amazon Kendra currently support basic authentication to connect to * a web proxy server. The secret stores your credentials. @@ -8871,8 +8878,10 @@ public open class CfnDataSource( cdkObject: software.amazon.awscdk.services.kendra.CfnDataSource.ProxyConfigurationProperty, ) : CdkObject(cdkObject), ProxyConfigurationProperty { /** - * Your secret ARN, which you can create in [AWS Secrets - * Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html). + * The Amazon Resource Name (ARN) of an AWS Secrets Manager secret. + * + * You create a secret to store your credentials in [AWS Secrets + * Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) * * The credentials are optional. You use a secret if web proxy credentials are required to * connect to a website host. Amazon Kendra currently support basic authentication to connect to @@ -9001,17 +9010,20 @@ public open class CfnDataSource( * If a document matches both an inclusion and exclusion prefix or pattern, the exclusion prefix * takes precendence and the document is not indexed. Examples of glob patterns include: * - * * `/myapp/config/ *` - All files inside config directory - * * `** / *.png` - All .png files in all directories - * * `** / *.{png, ico, md}` - All .png, .ico or .md files in all directories - * * `/myapp/src/ ** / *.ts` - All .ts files inside src directory (and all its subdirectories) - * * `** /!(*.module).ts` - All .ts files but not .module.ts - * * **.png , *.jpg* excludes all PNG and JPEG image files in a directory (files with the - * extensions .png and .jpg). - * * **internal** excludes all files in a directory that contain 'internal' in the file name, - * such as 'internal', 'internal_only', 'company_internal'. - * * *** / *internal** excludes all internal-related files in a directory and its - * subdirectories. + * * + * * /myapp/config/ ** —All files inside config directory. + * + * * *** / *.png* —All .png files in all directories. + * * *** / *.{png, ico, md}* —All .png, .ico or .md files in all directories. + * * + * * /myapp/src/ ** / *.ts* —All .ts files inside src directory (and all its subdirectories). + * + * * *** /!(*.module).ts* —All .ts files but not .module.ts + * * **.png , *.jpg* —All PNG and JPEG image files in a directory (files with the extensions + * .png and .jpg). + * * **internal** —All files in a directory that contain 'internal' in the file name, such as + * 'internal', 'internal_only', 'company_internal'. + * * *** / *internal** —All internal-related files in a directory and its subdirectories. * * For more examples, see [Use of Exclude and Include * Filters](https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters) @@ -9030,17 +9042,20 @@ public open class CfnDataSource( * If a document matches both an inclusion and exclusion prefix or pattern, the exclusion prefix * takes precendence and the document is not indexed. Examples of glob patterns include: * - * * `/myapp/config/ *` - All files inside config directory - * * `** / *.png` - All .png files in all directories - * * `** / *.{png, ico, md}` - All .png, .ico or .md files in all directories - * * `/myapp/src/ ** / *.ts` - All .ts files inside src directory (and all its subdirectories) - * * `** /!(*.module).ts` - All .ts files but not .module.ts - * * **.png , *.jpg* includes all PNG and JPEG image files in a directory (files with the - * extensions .png and .jpg). - * * **internal** includes all files in a directory that contain 'internal' in the file name, - * such as 'internal', 'internal_only', 'company_internal'. - * * *** / *internal** includes all internal-related files in a directory and its - * subdirectories. + * * + * * /myapp/config/ ** —All files inside config directory. + * + * * *** / *.png* —All .png files in all directories. + * * *** / *.{png, ico, md}* —All .png, .ico or .md files in all directories. + * * + * * /myapp/src/ ** / *.ts* —All .ts files inside src directory (and all its subdirectories). + * + * * *** /!(*.module).ts* —All .ts files but not .module.ts + * * **.png , *.jpg* —All PNG and JPEG image files in a directory (files with the extensions + * .png and .jpg). + * * **internal** —All files in a directory that contain 'internal' in the file name, such as + * 'internal', 'internal_only', 'company_internal'. + * * *** / *internal** —All internal-related files in a directory and its subdirectories. * * For more examples, see [Use of Exclude and Include * Filters](https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters) @@ -9132,17 +9147,20 @@ public open class CfnDataSource( * If a document matches both an inclusion and exclusion prefix or pattern, the exclusion * prefix takes precendence and the document is not indexed. Examples of glob patterns include: * - * * `/myapp/config/ *` - All files inside config directory - * * `** / *.png` - All .png files in all directories - * * `** / *.{png, ico, md}` - All .png, .ico or .md files in all directories - * * `/myapp/src/ ** / *.ts` - All .ts files inside src directory (and all its subdirectories) - * * `** /!(*.module).ts` - All .ts files but not .module.ts - * * **.png , *.jpg* excludes all PNG and JPEG image files in a directory (files with the - * extensions .png and .jpg). - * * **internal** excludes all files in a directory that contain 'internal' in the file name, - * such as 'internal', 'internal_only', 'company_internal'. - * * *** / *internal** excludes all internal-related files in a directory and its - * subdirectories. + * * + * * /myapp/config/ ** —All files inside config directory. + * + * * *** / *.png* —All .png files in all directories. + * * *** / *.{png, ico, md}* —All .png, .ico or .md files in all directories. + * * + * * /myapp/src/ ** / *.ts* —All .ts files inside src directory (and all its subdirectories). + * + * * *** /!(*.module).ts* —All .ts files but not .module.ts + * * **.png , *.jpg* —All PNG and JPEG image files in a directory (files with the extensions + * .png and .jpg). + * * **internal** —All files in a directory that contain 'internal' in the file name, such as + * 'internal', 'internal_only', 'company_internal'. + * * *** / *internal** —All internal-related files in a directory and its subdirectories. * * For more examples, see [Use of Exclude and Include * Filters](https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters) @@ -9157,17 +9175,20 @@ public open class CfnDataSource( * If a document matches both an inclusion and exclusion prefix or pattern, the exclusion * prefix takes precendence and the document is not indexed. Examples of glob patterns include: * - * * `/myapp/config/ *` - All files inside config directory - * * `** / *.png` - All .png files in all directories - * * `** / *.{png, ico, md}` - All .png, .ico or .md files in all directories - * * `/myapp/src/ ** / *.ts` - All .ts files inside src directory (and all its subdirectories) - * * `** /!(*.module).ts` - All .ts files but not .module.ts - * * **.png , *.jpg* excludes all PNG and JPEG image files in a directory (files with the - * extensions .png and .jpg). - * * **internal** excludes all files in a directory that contain 'internal' in the file name, - * such as 'internal', 'internal_only', 'company_internal'. - * * *** / *internal** excludes all internal-related files in a directory and its - * subdirectories. + * * + * * /myapp/config/ ** —All files inside config directory. + * + * * *** / *.png* —All .png files in all directories. + * * *** / *.{png, ico, md}* —All .png, .ico or .md files in all directories. + * * + * * /myapp/src/ ** / *.ts* —All .ts files inside src directory (and all its subdirectories). + * + * * *** /!(*.module).ts* —All .ts files but not .module.ts + * * **.png , *.jpg* —All PNG and JPEG image files in a directory (files with the extensions + * .png and .jpg). + * * **internal** —All files in a directory that contain 'internal' in the file name, such as + * 'internal', 'internal_only', 'company_internal'. + * * *** / *internal** —All internal-related files in a directory and its subdirectories. * * For more examples, see [Use of Exclude and Include * Filters](https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters) @@ -9182,17 +9203,20 @@ public open class CfnDataSource( * If a document matches both an inclusion and exclusion prefix or pattern, the exclusion * prefix takes precendence and the document is not indexed. Examples of glob patterns include: * - * * `/myapp/config/ *` - All files inside config directory - * * `** / *.png` - All .png files in all directories - * * `** / *.{png, ico, md}` - All .png, .ico or .md files in all directories - * * `/myapp/src/ ** / *.ts` - All .ts files inside src directory (and all its subdirectories) - * * `** /!(*.module).ts` - All .ts files but not .module.ts - * * **.png , *.jpg* includes all PNG and JPEG image files in a directory (files with the - * extensions .png and .jpg). - * * **internal** includes all files in a directory that contain 'internal' in the file name, - * such as 'internal', 'internal_only', 'company_internal'. - * * *** / *internal** includes all internal-related files in a directory and its - * subdirectories. + * * + * * /myapp/config/ ** —All files inside config directory. + * + * * *** / *.png* —All .png files in all directories. + * * *** / *.{png, ico, md}* —All .png, .ico or .md files in all directories. + * * + * * /myapp/src/ ** / *.ts* —All .ts files inside src directory (and all its subdirectories). + * + * * *** /!(*.module).ts* —All .ts files but not .module.ts + * * **.png , *.jpg* —All PNG and JPEG image files in a directory (files with the extensions + * .png and .jpg). + * * **internal** —All files in a directory that contain 'internal' in the file name, such as + * 'internal', 'internal_only', 'company_internal'. + * * *** / *internal** —All internal-related files in a directory and its subdirectories. * * For more examples, see [Use of Exclude and Include * Filters](https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters) @@ -9207,17 +9231,20 @@ public open class CfnDataSource( * If a document matches both an inclusion and exclusion prefix or pattern, the exclusion * prefix takes precendence and the document is not indexed. Examples of glob patterns include: * - * * `/myapp/config/ *` - All files inside config directory - * * `** / *.png` - All .png files in all directories - * * `** / *.{png, ico, md}` - All .png, .ico or .md files in all directories - * * `/myapp/src/ ** / *.ts` - All .ts files inside src directory (and all its subdirectories) - * * `** /!(*.module).ts` - All .ts files but not .module.ts - * * **.png , *.jpg* includes all PNG and JPEG image files in a directory (files with the - * extensions .png and .jpg). - * * **internal** includes all files in a directory that contain 'internal' in the file name, - * such as 'internal', 'internal_only', 'company_internal'. - * * *** / *internal** includes all internal-related files in a directory and its - * subdirectories. + * * + * * /myapp/config/ ** —All files inside config directory. + * + * * *** / *.png* —All .png files in all directories. + * * *** / *.{png, ico, md}* —All .png, .ico or .md files in all directories. + * * + * * /myapp/src/ ** / *.ts* —All .ts files inside src directory (and all its subdirectories). + * + * * *** /!(*.module).ts* —All .ts files but not .module.ts + * * **.png , *.jpg* —All PNG and JPEG image files in a directory (files with the extensions + * .png and .jpg). + * * **internal** —All files in a directory that contain 'internal' in the file name, such as + * 'internal', 'internal_only', 'company_internal'. + * * *** / *internal** —All internal-related files in a directory and its subdirectories. * * For more examples, see [Use of Exclude and Include * Filters](https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters) @@ -9326,17 +9353,20 @@ public open class CfnDataSource( * If a document matches both an inclusion and exclusion prefix or pattern, the exclusion * prefix takes precendence and the document is not indexed. Examples of glob patterns include: * - * * `/myapp/config/ *` - All files inside config directory - * * `** / *.png` - All .png files in all directories - * * `** / *.{png, ico, md}` - All .png, .ico or .md files in all directories - * * `/myapp/src/ ** / *.ts` - All .ts files inside src directory (and all its subdirectories) - * * `** /!(*.module).ts` - All .ts files but not .module.ts - * * **.png , *.jpg* excludes all PNG and JPEG image files in a directory (files with the - * extensions .png and .jpg). - * * **internal** excludes all files in a directory that contain 'internal' in the file name, - * such as 'internal', 'internal_only', 'company_internal'. - * * *** / *internal** excludes all internal-related files in a directory and its - * subdirectories. + * * + * * /myapp/config/ ** —All files inside config directory. + * + * * *** / *.png* —All .png files in all directories. + * * *** / *.{png, ico, md}* —All .png, .ico or .md files in all directories. + * * + * * /myapp/src/ ** / *.ts* —All .ts files inside src directory (and all its subdirectories). + * + * * *** /!(*.module).ts* —All .ts files but not .module.ts + * * **.png , *.jpg* —All PNG and JPEG image files in a directory (files with the extensions + * .png and .jpg). + * * **internal** —All files in a directory that contain 'internal' in the file name, such as + * 'internal', 'internal_only', 'company_internal'. + * * *** / *internal** —All internal-related files in a directory and its subdirectories. * * For more examples, see [Use of Exclude and Include * Filters](https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters) @@ -9353,17 +9383,20 @@ public open class CfnDataSource( * If a document matches both an inclusion and exclusion prefix or pattern, the exclusion * prefix takes precendence and the document is not indexed. Examples of glob patterns include: * - * * `/myapp/config/ *` - All files inside config directory - * * `** / *.png` - All .png files in all directories - * * `** / *.{png, ico, md}` - All .png, .ico or .md files in all directories - * * `/myapp/src/ ** / *.ts` - All .ts files inside src directory (and all its subdirectories) - * * `** /!(*.module).ts` - All .ts files but not .module.ts - * * **.png , *.jpg* excludes all PNG and JPEG image files in a directory (files with the - * extensions .png and .jpg). - * * **internal** excludes all files in a directory that contain 'internal' in the file name, - * such as 'internal', 'internal_only', 'company_internal'. - * * *** / *internal** excludes all internal-related files in a directory and its - * subdirectories. + * * + * * /myapp/config/ ** —All files inside config directory. + * + * * *** / *.png* —All .png files in all directories. + * * *** / *.{png, ico, md}* —All .png, .ico or .md files in all directories. + * * + * * /myapp/src/ ** / *.ts* —All .ts files inside src directory (and all its subdirectories). + * + * * *** /!(*.module).ts* —All .ts files but not .module.ts + * * **.png , *.jpg* —All PNG and JPEG image files in a directory (files with the extensions + * .png and .jpg). + * * **internal** —All files in a directory that contain 'internal' in the file name, such as + * 'internal', 'internal_only', 'company_internal'. + * * *** / *internal** —All internal-related files in a directory and its subdirectories. * * For more examples, see [Use of Exclude and Include * Filters](https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters) @@ -9379,17 +9412,20 @@ public open class CfnDataSource( * If a document matches both an inclusion and exclusion prefix or pattern, the exclusion * prefix takes precendence and the document is not indexed. Examples of glob patterns include: * - * * `/myapp/config/ *` - All files inside config directory - * * `** / *.png` - All .png files in all directories - * * `** / *.{png, ico, md}` - All .png, .ico or .md files in all directories - * * `/myapp/src/ ** / *.ts` - All .ts files inside src directory (and all its subdirectories) - * * `** /!(*.module).ts` - All .ts files but not .module.ts - * * **.png , *.jpg* includes all PNG and JPEG image files in a directory (files with the - * extensions .png and .jpg). - * * **internal** includes all files in a directory that contain 'internal' in the file name, - * such as 'internal', 'internal_only', 'company_internal'. - * * *** / *internal** includes all internal-related files in a directory and its - * subdirectories. + * * + * * /myapp/config/ ** —All files inside config directory. + * + * * *** / *.png* —All .png files in all directories. + * * *** / *.{png, ico, md}* —All .png, .ico or .md files in all directories. + * * + * * /myapp/src/ ** / *.ts* —All .ts files inside src directory (and all its subdirectories). + * + * * *** /!(*.module).ts* —All .ts files but not .module.ts + * * **.png , *.jpg* —All PNG and JPEG image files in a directory (files with the extensions + * .png and .jpg). + * * **internal** —All files in a directory that contain 'internal' in the file name, such as + * 'internal', 'internal_only', 'company_internal'. + * * *** / *internal** —All internal-related files in a directory and its subdirectories. * * For more examples, see [Use of Exclude and Include * Filters](https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters) @@ -9406,17 +9442,20 @@ public open class CfnDataSource( * If a document matches both an inclusion and exclusion prefix or pattern, the exclusion * prefix takes precendence and the document is not indexed. Examples of glob patterns include: * - * * `/myapp/config/ *` - All files inside config directory - * * `** / *.png` - All .png files in all directories - * * `** / *.{png, ico, md}` - All .png, .ico or .md files in all directories - * * `/myapp/src/ ** / *.ts` - All .ts files inside src directory (and all its subdirectories) - * * `** /!(*.module).ts` - All .ts files but not .module.ts - * * **.png , *.jpg* includes all PNG and JPEG image files in a directory (files with the - * extensions .png and .jpg). - * * **internal** includes all files in a directory that contain 'internal' in the file name, - * such as 'internal', 'internal_only', 'company_internal'. - * * *** / *internal** includes all internal-related files in a directory and its - * subdirectories. + * * + * * /myapp/config/ ** —All files inside config directory. + * + * * *** / *.png* —All .png files in all directories. + * * *** / *.{png, ico, md}* —All .png, .ico or .md files in all directories. + * * + * * /myapp/src/ ** / *.ts* —All .ts files inside src directory (and all its subdirectories). + * + * * *** /!(*.module).ts* —All .ts files but not .module.ts + * * **.png , *.jpg* —All PNG and JPEG image files in a directory (files with the extensions + * .png and .jpg). + * * **internal** —All files in a directory that contain 'internal' in the file name, such as + * 'internal', 'internal_only', 'company_internal'. + * * *** / *internal** —All internal-related files in a directory and its subdirectories. * * For more examples, see [Use of Exclude and Include * Filters](https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters) @@ -9486,17 +9525,20 @@ public open class CfnDataSource( * If a document matches both an inclusion and exclusion prefix or pattern, the exclusion * prefix takes precendence and the document is not indexed. Examples of glob patterns include: * - * * `/myapp/config/ *` - All files inside config directory - * * `** / *.png` - All .png files in all directories - * * `** / *.{png, ico, md}` - All .png, .ico or .md files in all directories - * * `/myapp/src/ ** / *.ts` - All .ts files inside src directory (and all its subdirectories) - * * `** /!(*.module).ts` - All .ts files but not .module.ts - * * **.png , *.jpg* excludes all PNG and JPEG image files in a directory (files with the - * extensions .png and .jpg). - * * **internal** excludes all files in a directory that contain 'internal' in the file name, - * such as 'internal', 'internal_only', 'company_internal'. - * * *** / *internal** excludes all internal-related files in a directory and its - * subdirectories. + * * + * * /myapp/config/ ** —All files inside config directory. + * + * * *** / *.png* —All .png files in all directories. + * * *** / *.{png, ico, md}* —All .png, .ico or .md files in all directories. + * * + * * /myapp/src/ ** / *.ts* —All .ts files inside src directory (and all its subdirectories). + * + * * *** /!(*.module).ts* —All .ts files but not .module.ts + * * **.png , *.jpg* —All PNG and JPEG image files in a directory (files with the extensions + * .png and .jpg). + * * **internal** —All files in a directory that contain 'internal' in the file name, such as + * 'internal', 'internal_only', 'company_internal'. + * * *** / *internal** —All internal-related files in a directory and its subdirectories. * * For more examples, see [Use of Exclude and Include * Filters](https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters) @@ -9515,17 +9557,20 @@ public open class CfnDataSource( * If a document matches both an inclusion and exclusion prefix or pattern, the exclusion * prefix takes precendence and the document is not indexed. Examples of glob patterns include: * - * * `/myapp/config/ *` - All files inside config directory - * * `** / *.png` - All .png files in all directories - * * `** / *.{png, ico, md}` - All .png, .ico or .md files in all directories - * * `/myapp/src/ ** / *.ts` - All .ts files inside src directory (and all its subdirectories) - * * `** /!(*.module).ts` - All .ts files but not .module.ts - * * **.png , *.jpg* includes all PNG and JPEG image files in a directory (files with the - * extensions .png and .jpg). - * * **internal** includes all files in a directory that contain 'internal' in the file name, - * such as 'internal', 'internal_only', 'company_internal'. - * * *** / *internal** includes all internal-related files in a directory and its - * subdirectories. + * * + * * /myapp/config/ ** —All files inside config directory. + * + * * *** / *.png* —All .png files in all directories. + * * *** / *.{png, ico, md}* —All .png, .ico or .md files in all directories. + * * + * * /myapp/src/ ** / *.ts* —All .ts files inside src directory (and all its subdirectories). + * + * * *** /!(*.module).ts* —All .ts files but not .module.ts + * * **.png , *.jpg* —All PNG and JPEG image files in a directory (files with the extensions + * .png and .jpg). + * * **internal** —All files in a directory that contain 'internal' in the file name, such as + * 'internal', 'internal_only', 'company_internal'. + * * *** / *internal** —All internal-related files in a directory and its subdirectories. * * For more examples, see [Use of Exclude and Include * Filters](https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters) @@ -14007,8 +14052,10 @@ public open class CfnDataSource( */ public interface WebCrawlerBasicAuthenticationProperty { /** - * Your secret ARN, which you can create in [AWS Secrets - * Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html). + * The Amazon Resource Name (ARN) of an AWS Secrets Manager secret. + * + * You create a secret to store your credentials in [AWS Secrets + * Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) * * You use a secret if basic authentication credentials are required to connect to a website. * The secret stores your credentials of user name and password. @@ -14042,8 +14089,10 @@ public open class CfnDataSource( @CdkDslMarker public interface Builder { /** - * @param credentials Your secret ARN, which you can create in [AWS Secrets - * Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html). + * @param credentials The Amazon Resource Name (ARN) of an AWS Secrets Manager secret. + * You create a secret to store your credentials in [AWS Secrets + * Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) + * * You use a secret if basic authentication credentials are required to connect to a website. * The secret stores your credentials of user name and password. */ @@ -14072,8 +14121,10 @@ public open class CfnDataSource( software.amazon.awscdk.services.kendra.CfnDataSource.WebCrawlerBasicAuthenticationProperty.builder() /** - * @param credentials Your secret ARN, which you can create in [AWS Secrets - * Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html). + * @param credentials The Amazon Resource Name (ARN) of an AWS Secrets Manager secret. + * You create a secret to store your credentials in [AWS Secrets + * Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) + * * You use a secret if basic authentication credentials are required to connect to a website. * The secret stores your credentials of user name and password. */ @@ -14109,8 +14160,10 @@ public open class CfnDataSource( cdkObject: software.amazon.awscdk.services.kendra.CfnDataSource.WebCrawlerBasicAuthenticationProperty, ) : CdkObject(cdkObject), WebCrawlerBasicAuthenticationProperty { /** - * Your secret ARN, which you can create in [AWS Secrets - * Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html). + * The Amazon Resource Name (ARN) of an AWS Secrets Manager secret. + * + * You create a secret to store your credentials in [AWS Secrets + * Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) * * You use a secret if basic authentication credentials are required to connect to a website. * The secret stores your credentials of user name and password. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kendra/CfnFaq.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kendra/CfnFaq.kt index fb4fdbcb01..4c480ed1c1 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kendra/CfnFaq.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kendra/CfnFaq.kt @@ -258,6 +258,11 @@ public open class CfnFaq( /** * The code for a language. * + * This shows a supported language for the FAQ document as part of the summary information for + * FAQs. English is supported by default. For more information on supported languages, including + * their codes, see [Adding documents in languages other than + * English](https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html) . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-faq.html#cfn-kendra-faq-languagecode) * @param languageCode The code for a language. */ @@ -384,6 +389,11 @@ public open class CfnFaq( /** * The code for a language. * + * This shows a supported language for the FAQ document as part of the summary information for + * FAQs. English is supported by default. For more information on supported languages, including + * their codes, see [Adding documents in languages other than + * English](https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html) . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-faq.html#cfn-kendra-faq-languagecode) * @param languageCode The code for a language. */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kendra/CfnFaqProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kendra/CfnFaqProps.kt index d421d48cab..3b7cebf680 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kendra/CfnFaqProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kendra/CfnFaqProps.kt @@ -80,6 +80,11 @@ public interface CfnFaqProps { /** * The code for a language. * + * This shows a supported language for the FAQ document as part of the summary information for + * FAQs. English is supported by default. For more information on supported languages, including + * their codes, see [Adding documents in languages other than + * English](https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html) . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-faq.html#cfn-kendra-faq-languagecode) */ public fun languageCode(): String? = unwrap(this).getLanguageCode() @@ -150,6 +155,10 @@ public interface CfnFaqProps { /** * @param languageCode The code for a language. + * This shows a supported language for the FAQ document as part of the summary information for + * FAQs. English is supported by default. For more information on supported languages, including + * their codes, see [Adding documents in languages other than + * English](https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html) . */ public fun languageCode(languageCode: String) @@ -236,6 +245,10 @@ public interface CfnFaqProps { /** * @param languageCode The code for a language. + * This shows a supported language for the FAQ document as part of the summary information for + * FAQs. English is supported by default. For more information on supported languages, including + * their codes, see [Adding documents in languages other than + * English](https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html) . */ override fun languageCode(languageCode: String) { cdkBuilder.languageCode(languageCode) @@ -338,6 +351,11 @@ public interface CfnFaqProps { /** * The code for a language. * + * This shows a supported language for the FAQ document as part of the summary information for + * FAQs. English is supported by default. For more information on supported languages, including + * their codes, see [Adding documents in languages other than + * English](https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html) . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-faq.html#cfn-kendra-faq-languagecode) */ override fun languageCode(): String? = unwrap(this).getLanguageCode() diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kendra/CfnIndex.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kendra/CfnIndex.kt index 9fd52ee266..d1cf01be5a 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kendra/CfnIndex.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kendra/CfnIndex.kt @@ -1657,8 +1657,7 @@ public open class CfnIndex( * Indicates that this field determines how "fresh" a document is. * * For example, if document 1 was created on November 5, and document 2 was created on October - * 31, document 1 is "fresher" than document 2. You can only set the `Freshness` field on one - * `DATE` type field. Only applies to `DATE` fields. + * 31, document 1 is "fresher" than document 2. Only applies to `DATE` fields. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-relevance.html#cfn-kendra-index-relevance-freshness) */ @@ -1682,7 +1681,7 @@ public open class CfnIndex( * When the `RankOrder` field is `DESCENDING` , lower numbers are better. For example, in a task * tracking application, a priority 1 task is more important than a priority 5 task. * - * Only applies to `LONG` and `DOUBLE` fields. + * Only applies to `LONG` fields. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-relevance.html#cfn-kendra-index-relevance-rankorder) */ @@ -1723,16 +1722,14 @@ public open class CfnIndex( /** * @param freshness Indicates that this field determines how "fresh" a document is. * For example, if document 1 was created on November 5, and document 2 was created on October - * 31, document 1 is "fresher" than document 2. You can only set the `Freshness` field on one - * `DATE` type field. Only applies to `DATE` fields. + * 31, document 1 is "fresher" than document 2. Only applies to `DATE` fields. */ public fun freshness(freshness: Boolean) /** * @param freshness Indicates that this field determines how "fresh" a document is. * For example, if document 1 was created on November 5, and document 2 was created on October - * 31, document 1 is "fresher" than document 2. You can only set the `Freshness` field on one - * `DATE` type field. Only applies to `DATE` fields. + * 31, document 1 is "fresher" than document 2. Only applies to `DATE` fields. */ public fun freshness(freshness: IResolvable) @@ -1750,7 +1747,7 @@ public open class CfnIndex( * When the `RankOrder` field is `DESCENDING` , lower numbers are better. For example, in a * task tracking application, a priority 1 task is more important than a priority 5 task. * - * Only applies to `LONG` and `DOUBLE` fields. + * Only applies to `LONG` fields. */ public fun rankOrder(rankOrder: String) @@ -1816,8 +1813,7 @@ public open class CfnIndex( /** * @param freshness Indicates that this field determines how "fresh" a document is. * For example, if document 1 was created on November 5, and document 2 was created on October - * 31, document 1 is "fresher" than document 2. You can only set the `Freshness` field on one - * `DATE` type field. Only applies to `DATE` fields. + * 31, document 1 is "fresher" than document 2. Only applies to `DATE` fields. */ override fun freshness(freshness: Boolean) { cdkBuilder.freshness(freshness) @@ -1826,8 +1822,7 @@ public open class CfnIndex( /** * @param freshness Indicates that this field determines how "fresh" a document is. * For example, if document 1 was created on November 5, and document 2 was created on October - * 31, document 1 is "fresher" than document 2. You can only set the `Freshness` field on one - * `DATE` type field. Only applies to `DATE` fields. + * 31, document 1 is "fresher" than document 2. Only applies to `DATE` fields. */ override fun freshness(freshness: IResolvable) { cdkBuilder.freshness(freshness.let(IResolvable::unwrap)) @@ -1849,7 +1844,7 @@ public open class CfnIndex( * When the `RankOrder` field is `DESCENDING` , lower numbers are better. For example, in a * task tracking application, a priority 1 task is more important than a priority 5 task. * - * Only applies to `LONG` and `DOUBLE` fields. + * Only applies to `LONG` fields. */ override fun rankOrder(rankOrder: String) { cdkBuilder.rankOrder(rankOrder) @@ -1925,8 +1920,7 @@ public open class CfnIndex( * Indicates that this field determines how "fresh" a document is. * * For example, if document 1 was created on November 5, and document 2 was created on October - * 31, document 1 is "fresher" than document 2. You can only set the `Freshness` field on one - * `DATE` type field. Only applies to `DATE` fields. + * 31, document 1 is "fresher" than document 2. Only applies to `DATE` fields. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-relevance.html#cfn-kendra-index-relevance-freshness) */ @@ -1950,7 +1944,7 @@ public open class CfnIndex( * When the `RankOrder` field is `DESCENDING` , lower numbers are better. For example, in a * task tracking application, a priority 1 task is more important than a priority 5 task. * - * Only applies to `LONG` and `DOUBLE` fields. + * Only applies to `LONG` fields. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-relevance.html#cfn-kendra-index-relevance-rankorder) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalytics/CfnApplicationOutputV2.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalytics/CfnApplicationOutputV2.kt index be02211729..1a7346e4ae 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalytics/CfnApplicationOutputV2.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalytics/CfnApplicationOutputV2.kt @@ -114,34 +114,34 @@ public open class CfnApplicationOutputV2( } /** - * Describes a SQL-based Managed Service for Apache Flink application's output configuration, in - * which you identify an in-application stream and a destination where you want the in-application - * stream data to be written. + * Describes a SQL-based Kinesis Data Analytics application's output configuration, in which you + * identify an in-application stream and a destination where you want the in-application stream data + * to be written. */ public open fun output(): Any = unwrap(this).getOutput() /** - * Describes a SQL-based Managed Service for Apache Flink application's output configuration, in - * which you identify an in-application stream and a destination where you want the in-application - * stream data to be written. + * Describes a SQL-based Kinesis Data Analytics application's output configuration, in which you + * identify an in-application stream and a destination where you want the in-application stream data + * to be written. */ public open fun output(`value`: IResolvable) { unwrap(this).setOutput(`value`.let(IResolvable::unwrap)) } /** - * Describes a SQL-based Managed Service for Apache Flink application's output configuration, in - * which you identify an in-application stream and a destination where you want the in-application - * stream data to be written. + * Describes a SQL-based Kinesis Data Analytics application's output configuration, in which you + * identify an in-application stream and a destination where you want the in-application stream data + * to be written. */ public open fun output(`value`: OutputProperty) { unwrap(this).setOutput(`value`.let(OutputProperty::unwrap)) } /** - * Describes a SQL-based Managed Service for Apache Flink application's output configuration, in - * which you identify an in-application stream and a destination where you want the in-application - * stream data to be written. + * Describes a SQL-based Kinesis Data Analytics application's output configuration, in which you + * identify an in-application stream and a destination where you want the in-application stream data + * to be written. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("1fcf52fb5c05906617cacd530e99f97ba04d36dc214abe10c6e09e49001277a4") @@ -163,42 +163,42 @@ public open class CfnApplicationOutputV2( public fun applicationName(applicationName: String) /** - * Describes a SQL-based Managed Service for Apache Flink application's output configuration, in - * which you identify an in-application stream and a destination where you want the in-application - * stream data to be written. + * Describes a SQL-based Kinesis Data Analytics application's output configuration, in which you + * identify an in-application stream and a destination where you want the in-application stream + * data to be written. * * The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationoutput.html#cfn-kinesisanalyticsv2-applicationoutput-output) - * @param output Describes a SQL-based Managed Service for Apache Flink application's output + * @param output Describes a SQL-based Kinesis Data Analytics application's output * configuration, in which you identify an in-application stream and a destination where you want * the in-application stream data to be written. */ public fun output(output: IResolvable) /** - * Describes a SQL-based Managed Service for Apache Flink application's output configuration, in - * which you identify an in-application stream and a destination where you want the in-application - * stream data to be written. + * Describes a SQL-based Kinesis Data Analytics application's output configuration, in which you + * identify an in-application stream and a destination where you want the in-application stream + * data to be written. * * The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationoutput.html#cfn-kinesisanalyticsv2-applicationoutput-output) - * @param output Describes a SQL-based Managed Service for Apache Flink application's output + * @param output Describes a SQL-based Kinesis Data Analytics application's output * configuration, in which you identify an in-application stream and a destination where you want * the in-application stream data to be written. */ public fun output(output: OutputProperty) /** - * Describes a SQL-based Managed Service for Apache Flink application's output configuration, in - * which you identify an in-application stream and a destination where you want the in-application - * stream data to be written. + * Describes a SQL-based Kinesis Data Analytics application's output configuration, in which you + * identify an in-application stream and a destination where you want the in-application stream + * data to be written. * * The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationoutput.html#cfn-kinesisanalyticsv2-applicationoutput-output) - * @param output Describes a SQL-based Managed Service for Apache Flink application's output + * @param output Describes a SQL-based Kinesis Data Analytics application's output * configuration, in which you identify an in-application stream and a destination where you want * the in-application stream data to be written. */ @@ -227,14 +227,14 @@ public open class CfnApplicationOutputV2( } /** - * Describes a SQL-based Managed Service for Apache Flink application's output configuration, in - * which you identify an in-application stream and a destination where you want the in-application - * stream data to be written. + * Describes a SQL-based Kinesis Data Analytics application's output configuration, in which you + * identify an in-application stream and a destination where you want the in-application stream + * data to be written. * * The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationoutput.html#cfn-kinesisanalyticsv2-applicationoutput-output) - * @param output Describes a SQL-based Managed Service for Apache Flink application's output + * @param output Describes a SQL-based Kinesis Data Analytics application's output * configuration, in which you identify an in-application stream and a destination where you want * the in-application stream data to be written. */ @@ -243,14 +243,14 @@ public open class CfnApplicationOutputV2( } /** - * Describes a SQL-based Managed Service for Apache Flink application's output configuration, in - * which you identify an in-application stream and a destination where you want the in-application - * stream data to be written. + * Describes a SQL-based Kinesis Data Analytics application's output configuration, in which you + * identify an in-application stream and a destination where you want the in-application stream + * data to be written. * * The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationoutput.html#cfn-kinesisanalyticsv2-applicationoutput-output) - * @param output Describes a SQL-based Managed Service for Apache Flink application's output + * @param output Describes a SQL-based Kinesis Data Analytics application's output * configuration, in which you identify an in-application stream and a destination where you want * the in-application stream data to be written. */ @@ -259,14 +259,14 @@ public open class CfnApplicationOutputV2( } /** - * Describes a SQL-based Managed Service for Apache Flink application's output configuration, in - * which you identify an in-application stream and a destination where you want the in-application - * stream data to be written. + * Describes a SQL-based Kinesis Data Analytics application's output configuration, in which you + * identify an in-application stream and a destination where you want the in-application stream + * data to be written. * * The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationoutput.html#cfn-kinesisanalyticsv2-applicationoutput-output) - * @param output Describes a SQL-based Managed Service for Apache Flink application's output + * @param output Describes a SQL-based Kinesis Data Analytics application's output * configuration, in which you identify an in-application stream and a destination where you want * the in-application stream data to be written. */ @@ -302,8 +302,8 @@ public open class CfnApplicationOutputV2( } /** - * Describes the data format when records are written to the destination in a SQL-based Managed - * Service for Apache Flink application. + * Describes the data format when records are written to the destination in a SQL-based Kinesis + * Data Analytics application. * * Example: * @@ -385,8 +385,8 @@ public open class CfnApplicationOutputV2( } /** - * For a SQL-based Managed Service for Apache Flink application, when configuring application - * output, identifies a Kinesis Data Firehose delivery stream as the destination. + * For a SQL-based Kinesis Data Analytics application, when configuring application output, + * identifies a Kinesis Data Firehose delivery stream as the destination. * * You provide the stream Amazon Resource Name (ARN) of the delivery stream. * @@ -471,8 +471,8 @@ public open class CfnApplicationOutputV2( } /** - * When you configure a SQL-based Managed Service for Apache Flink application's output, - * identifies a Kinesis data stream as the destination. + * When you configure a SQL-based Kinesis Data Analytics application's output, identifies a + * Kinesis data stream as the destination. * * You provide the stream Amazon Resource Name (ARN). * @@ -557,8 +557,8 @@ public open class CfnApplicationOutputV2( } /** - * When you configure a SQL-based Managed Service for Apache Flink application's output, - * identifies an Amazon Lambda function as the destination. + * When you configure a SQL-based Kinesis Data Analytics application's output, identifies an + * Amazon Lambda function as the destination. * * You provide the function Amazon Resource Name (ARN) of the Lambda function. * @@ -668,9 +668,9 @@ public open class CfnApplicationOutputV2( } /** - * Describes a SQL-based Managed Service for Apache Flink application's output configuration, in - * which you identify an in-application stream and a destination where you want the in-application - * stream data to be written. + * Describes a SQL-based Kinesis Data Analytics application's output configuration, in which you + * identify an in-application stream and a destination where you want the in-application stream data + * to be written. * * The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalytics/CfnApplicationOutputV2Props.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalytics/CfnApplicationOutputV2Props.kt index 019c366653..263154f351 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalytics/CfnApplicationOutputV2Props.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalytics/CfnApplicationOutputV2Props.kt @@ -52,9 +52,9 @@ public interface CfnApplicationOutputV2Props { public fun applicationName(): String /** - * Describes a SQL-based Managed Service for Apache Flink application's output configuration, in - * which you identify an in-application stream and a destination where you want the in-application - * stream data to be written. + * Describes a SQL-based Kinesis Data Analytics application's output configuration, in which you + * identify an in-application stream and a destination where you want the in-application stream data + * to be written. * * The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream. * @@ -73,7 +73,7 @@ public interface CfnApplicationOutputV2Props { public fun applicationName(applicationName: String) /** - * @param output Describes a SQL-based Managed Service for Apache Flink application's output + * @param output Describes a SQL-based Kinesis Data Analytics application's output * configuration, in which you identify an in-application stream and a destination where you want * the in-application stream data to be written. * The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream. @@ -81,7 +81,7 @@ public interface CfnApplicationOutputV2Props { public fun output(output: IResolvable) /** - * @param output Describes a SQL-based Managed Service for Apache Flink application's output + * @param output Describes a SQL-based Kinesis Data Analytics application's output * configuration, in which you identify an in-application stream and a destination where you want * the in-application stream data to be written. * The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream. @@ -89,7 +89,7 @@ public interface CfnApplicationOutputV2Props { public fun output(output: CfnApplicationOutputV2.OutputProperty) /** - * @param output Describes a SQL-based Managed Service for Apache Flink application's output + * @param output Describes a SQL-based Kinesis Data Analytics application's output * configuration, in which you identify an in-application stream and a destination where you want * the in-application stream data to be written. * The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream. @@ -112,7 +112,7 @@ public interface CfnApplicationOutputV2Props { } /** - * @param output Describes a SQL-based Managed Service for Apache Flink application's output + * @param output Describes a SQL-based Kinesis Data Analytics application's output * configuration, in which you identify an in-application stream and a destination where you want * the in-application stream data to be written. * The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream. @@ -122,7 +122,7 @@ public interface CfnApplicationOutputV2Props { } /** - * @param output Describes a SQL-based Managed Service for Apache Flink application's output + * @param output Describes a SQL-based Kinesis Data Analytics application's output * configuration, in which you identify an in-application stream and a destination where you want * the in-application stream data to be written. * The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream. @@ -132,7 +132,7 @@ public interface CfnApplicationOutputV2Props { } /** - * @param output Describes a SQL-based Managed Service for Apache Flink application's output + * @param output Describes a SQL-based Kinesis Data Analytics application's output * configuration, in which you identify an in-application stream and a destination where you want * the in-application stream data to be written. * The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream. @@ -157,9 +157,9 @@ public interface CfnApplicationOutputV2Props { override fun applicationName(): String = unwrap(this).getApplicationName() /** - * Describes a SQL-based Managed Service for Apache Flink application's output configuration, in - * which you identify an in-application stream and a destination where you want the in-application - * stream data to be written. + * Describes a SQL-based Kinesis Data Analytics application's output configuration, in which you + * identify an in-application stream and a destination where you want the in-application stream + * data to be written. * * The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalytics/CfnApplicationReferenceDataSourceV2.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalytics/CfnApplicationReferenceDataSourceV2.kt index 21bca021aa..afd079509b 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalytics/CfnApplicationReferenceDataSourceV2.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalytics/CfnApplicationReferenceDataSourceV2.kt @@ -18,12 +18,11 @@ import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct import software.constructs.Construct as SoftwareConstructsConstruct /** - * Adds a reference data source to an existing SQL-based Managed Service for Apache Flink - * application. + * Adds a reference data source to an existing SQL-based Kinesis Data Analytics application. * - * Managed Service for Apache Flink reads reference data (that is, an Amazon S3 object) and creates - * an in-application table within your application. In the request, you provide the source (S3 bucket - * name and object key name), name of the in-application table to create, and the necessary mapping + * Kinesis Data Analytics reads reference data (that is, an Amazon S3 object) and creates an + * in-application table within your application. In the request, you provide the source (S3 bucket name + * and object key name), name of the in-application table to create, and the necessary mapping * information that describes how data in an Amazon S3 object maps to columns in the resulting * in-application table. * @@ -118,38 +117,38 @@ public open class CfnApplicationReferenceDataSourceV2( } /** - * For a SQL-based Managed Service for Apache Flink application, describes the reference data - * source by providing the source information (Amazon S3 bucket name and object key name), the - * resulting in-application table name that is created, and the necessary schema to map the data - * elements in the Amazon S3 object to the in-application table. + * For a SQL-based Kinesis Data Analytics application, describes the reference data source by + * providing the source information (Amazon S3 bucket name and object key name), the resulting + * in-application table name that is created, and the necessary schema to map the data elements in + * the Amazon S3 object to the in-application table. */ public open fun referenceDataSource(): Any = unwrap(this).getReferenceDataSource() /** - * For a SQL-based Managed Service for Apache Flink application, describes the reference data - * source by providing the source information (Amazon S3 bucket name and object key name), the - * resulting in-application table name that is created, and the necessary schema to map the data - * elements in the Amazon S3 object to the in-application table. + * For a SQL-based Kinesis Data Analytics application, describes the reference data source by + * providing the source information (Amazon S3 bucket name and object key name), the resulting + * in-application table name that is created, and the necessary schema to map the data elements in + * the Amazon S3 object to the in-application table. */ public open fun referenceDataSource(`value`: IResolvable) { unwrap(this).setReferenceDataSource(`value`.let(IResolvable::unwrap)) } /** - * For a SQL-based Managed Service for Apache Flink application, describes the reference data - * source by providing the source information (Amazon S3 bucket name and object key name), the - * resulting in-application table name that is created, and the necessary schema to map the data - * elements in the Amazon S3 object to the in-application table. + * For a SQL-based Kinesis Data Analytics application, describes the reference data source by + * providing the source information (Amazon S3 bucket name and object key name), the resulting + * in-application table name that is created, and the necessary schema to map the data elements in + * the Amazon S3 object to the in-application table. */ public open fun referenceDataSource(`value`: ReferenceDataSourceProperty) { unwrap(this).setReferenceDataSource(`value`.let(ReferenceDataSourceProperty::unwrap)) } /** - * For a SQL-based Managed Service for Apache Flink application, describes the reference data - * source by providing the source information (Amazon S3 bucket name and object key name), the - * resulting in-application table name that is created, and the necessary schema to map the data - * elements in the Amazon S3 object to the in-application table. + * For a SQL-based Kinesis Data Analytics application, describes the reference data source by + * providing the source information (Amazon S3 bucket name and object key name), the resulting + * in-application table name that is created, and the necessary schema to map the data elements in + * the Amazon S3 object to the in-application table. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("d1c998c97750f5e2de757179b682d329c914a5f64e2ec0e381647a2841cc6c25") @@ -171,44 +170,44 @@ public open class CfnApplicationReferenceDataSourceV2( public fun applicationName(applicationName: String) /** - * For a SQL-based Managed Service for Apache Flink application, describes the reference data - * source by providing the source information (Amazon S3 bucket name and object key name), the - * resulting in-application table name that is created, and the necessary schema to map the data - * elements in the Amazon S3 object to the in-application table. + * For a SQL-based Kinesis Data Analytics application, describes the reference data source by + * providing the source information (Amazon S3 bucket name and object key name), the resulting + * in-application table name that is created, and the necessary schema to map the data elements in + * the Amazon S3 object to the in-application table. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource) - * @param referenceDataSource For a SQL-based Managed Service for Apache Flink application, - * describes the reference data source by providing the source information (Amazon S3 bucket name - * and object key name), the resulting in-application table name that is created, and the necessary - * schema to map the data elements in the Amazon S3 object to the in-application table. + * @param referenceDataSource For a SQL-based Kinesis Data Analytics application, describes the + * reference data source by providing the source information (Amazon S3 bucket name and object key + * name), the resulting in-application table name that is created, and the necessary schema to map + * the data elements in the Amazon S3 object to the in-application table. */ public fun referenceDataSource(referenceDataSource: IResolvable) /** - * For a SQL-based Managed Service for Apache Flink application, describes the reference data - * source by providing the source information (Amazon S3 bucket name and object key name), the - * resulting in-application table name that is created, and the necessary schema to map the data - * elements in the Amazon S3 object to the in-application table. + * For a SQL-based Kinesis Data Analytics application, describes the reference data source by + * providing the source information (Amazon S3 bucket name and object key name), the resulting + * in-application table name that is created, and the necessary schema to map the data elements in + * the Amazon S3 object to the in-application table. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource) - * @param referenceDataSource For a SQL-based Managed Service for Apache Flink application, - * describes the reference data source by providing the source information (Amazon S3 bucket name - * and object key name), the resulting in-application table name that is created, and the necessary - * schema to map the data elements in the Amazon S3 object to the in-application table. + * @param referenceDataSource For a SQL-based Kinesis Data Analytics application, describes the + * reference data source by providing the source information (Amazon S3 bucket name and object key + * name), the resulting in-application table name that is created, and the necessary schema to map + * the data elements in the Amazon S3 object to the in-application table. */ public fun referenceDataSource(referenceDataSource: ReferenceDataSourceProperty) /** - * For a SQL-based Managed Service for Apache Flink application, describes the reference data - * source by providing the source information (Amazon S3 bucket name and object key name), the - * resulting in-application table name that is created, and the necessary schema to map the data - * elements in the Amazon S3 object to the in-application table. + * For a SQL-based Kinesis Data Analytics application, describes the reference data source by + * providing the source information (Amazon S3 bucket name and object key name), the resulting + * in-application table name that is created, and the necessary schema to map the data elements in + * the Amazon S3 object to the in-application table. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource) - * @param referenceDataSource For a SQL-based Managed Service for Apache Flink application, - * describes the reference data source by providing the source information (Amazon S3 bucket name - * and object key name), the resulting in-application table name that is created, and the necessary - * schema to map the data elements in the Amazon S3 object to the in-application table. + * @param referenceDataSource For a SQL-based Kinesis Data Analytics application, describes the + * reference data source by providing the source information (Amazon S3 bucket name and object key + * name), the resulting in-application table name that is created, and the necessary schema to map + * the data elements in the Amazon S3 object to the in-application table. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("c4d3cd708ed3508a9898619a52e0df1b1ae1c31cb02154951c4c82ed6a11e562") @@ -237,48 +236,48 @@ public open class CfnApplicationReferenceDataSourceV2( } /** - * For a SQL-based Managed Service for Apache Flink application, describes the reference data - * source by providing the source information (Amazon S3 bucket name and object key name), the - * resulting in-application table name that is created, and the necessary schema to map the data - * elements in the Amazon S3 object to the in-application table. + * For a SQL-based Kinesis Data Analytics application, describes the reference data source by + * providing the source information (Amazon S3 bucket name and object key name), the resulting + * in-application table name that is created, and the necessary schema to map the data elements in + * the Amazon S3 object to the in-application table. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource) - * @param referenceDataSource For a SQL-based Managed Service for Apache Flink application, - * describes the reference data source by providing the source information (Amazon S3 bucket name - * and object key name), the resulting in-application table name that is created, and the necessary - * schema to map the data elements in the Amazon S3 object to the in-application table. + * @param referenceDataSource For a SQL-based Kinesis Data Analytics application, describes the + * reference data source by providing the source information (Amazon S3 bucket name and object key + * name), the resulting in-application table name that is created, and the necessary schema to map + * the data elements in the Amazon S3 object to the in-application table. */ override fun referenceDataSource(referenceDataSource: IResolvable) { cdkBuilder.referenceDataSource(referenceDataSource.let(IResolvable::unwrap)) } /** - * For a SQL-based Managed Service for Apache Flink application, describes the reference data - * source by providing the source information (Amazon S3 bucket name and object key name), the - * resulting in-application table name that is created, and the necessary schema to map the data - * elements in the Amazon S3 object to the in-application table. + * For a SQL-based Kinesis Data Analytics application, describes the reference data source by + * providing the source information (Amazon S3 bucket name and object key name), the resulting + * in-application table name that is created, and the necessary schema to map the data elements in + * the Amazon S3 object to the in-application table. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource) - * @param referenceDataSource For a SQL-based Managed Service for Apache Flink application, - * describes the reference data source by providing the source information (Amazon S3 bucket name - * and object key name), the resulting in-application table name that is created, and the necessary - * schema to map the data elements in the Amazon S3 object to the in-application table. + * @param referenceDataSource For a SQL-based Kinesis Data Analytics application, describes the + * reference data source by providing the source information (Amazon S3 bucket name and object key + * name), the resulting in-application table name that is created, and the necessary schema to map + * the data elements in the Amazon S3 object to the in-application table. */ override fun referenceDataSource(referenceDataSource: ReferenceDataSourceProperty) { cdkBuilder.referenceDataSource(referenceDataSource.let(ReferenceDataSourceProperty::unwrap)) } /** - * For a SQL-based Managed Service for Apache Flink application, describes the reference data - * source by providing the source information (Amazon S3 bucket name and object key name), the - * resulting in-application table name that is created, and the necessary schema to map the data - * elements in the Amazon S3 object to the in-application table. + * For a SQL-based Kinesis Data Analytics application, describes the reference data source by + * providing the source information (Amazon S3 bucket name and object key name), the resulting + * in-application table name that is created, and the necessary schema to map the data elements in + * the Amazon S3 object to the in-application table. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource) - * @param referenceDataSource For a SQL-based Managed Service for Apache Flink application, - * describes the reference data source by providing the source information (Amazon S3 bucket name - * and object key name), the resulting in-application table name that is created, and the necessary - * schema to map the data elements in the Amazon S3 object to the in-application table. + * @param referenceDataSource For a SQL-based Kinesis Data Analytics application, describes the + * reference data source by providing the source information (Amazon S3 bucket name and object key + * name), the resulting in-application table name that is created, and the necessary schema to map + * the data elements in the Amazon S3 object to the in-application table. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("c4d3cd708ed3508a9898619a52e0df1b1ae1c31cb02154951c4c82ed6a11e562") @@ -315,8 +314,8 @@ public open class CfnApplicationReferenceDataSourceV2( } /** - * For a SQL-based Managed Service for Apache Flink application, provides additional mapping - * information when the record format uses delimiters, such as CSV. + * For a SQL-based Kinesis Data Analytics application, provides additional mapping information + * when the record format uses delimiters, such as CSV. * * For example, the following sample records use CSV format, where the records use the *'\n'* as * the row delimiter and a comma (",") as the column delimiter: @@ -445,8 +444,8 @@ public open class CfnApplicationReferenceDataSourceV2( } /** - * For a SQL-based Managed Service for Apache Flink application, provides additional mapping - * information when JSON is the record format on the streaming source. + * For a SQL-based Kinesis Data Analytics application, provides additional mapping information + * when JSON is the record format on the streaming source. * * Example: * @@ -529,8 +528,8 @@ public open class CfnApplicationReferenceDataSourceV2( } /** - * When you configure a SQL-based Managed Service for Apache Flink application's input at the time - * of creating or updating an application, provides additional mapping information specific to the + * When you configure a SQL-based Kinesis Data Analytics application's input at the time of + * creating or updating an application, provides additional mapping information specific to the * record format (such as JSON, CSV, or record fields delimited by some delimiter) on the streaming * source. * @@ -720,8 +719,8 @@ public open class CfnApplicationReferenceDataSourceV2( } /** - * For a SQL-based Managed Service for Apache Flink application, describes the mapping of each - * data element in the streaming source to the corresponding column in the in-application stream. + * For a SQL-based Kinesis Data Analytics application, describes the mapping of each data element + * in the streaming source to the corresponding column in the in-application stream. * * Also used to describe the format of the reference data source. * @@ -867,8 +866,8 @@ public open class CfnApplicationReferenceDataSourceV2( } /** - * For a SQL-based Managed Service for Apache Flink application, describes the record format and - * relevant mapping information that should be applied to schematize the records on the stream. + * For a SQL-based Kinesis Data Analytics application, describes the record format and relevant + * mapping information that should be applied to schematize the records on the stream. * * Example: * @@ -1030,10 +1029,10 @@ public open class CfnApplicationReferenceDataSourceV2( } /** - * For a SQL-based Managed Service for Apache Flink application, describes the reference data - * source by providing the source information (Amazon S3 bucket name and object key name), the - * resulting in-application table name that is created, and the necessary schema to map the data - * elements in the Amazon S3 object to the in-application table. + * For a SQL-based Kinesis Data Analytics application, describes the reference data source by + * providing the source information (Amazon S3 bucket name and object key name), the resulting + * in-application table name that is created, and the necessary schema to map the data elements in + * the Amazon S3 object to the in-application table. * * Example: * @@ -1299,8 +1298,8 @@ public open class CfnApplicationReferenceDataSourceV2( } /** - * For a SQL-based Managed Service for Apache Flink application, describes the format of the data - * in the streaming source, and how each data element maps to corresponding columns created in the + * For a SQL-based Kinesis Data Analytics application, describes the format of the data in the + * streaming source, and how each data element maps to corresponding columns created in the * in-application stream. * * Example: diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalytics/CfnApplicationReferenceDataSourceV2Props.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalytics/CfnApplicationReferenceDataSourceV2Props.kt index 89854bac3c..464d437a58 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalytics/CfnApplicationReferenceDataSourceV2Props.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalytics/CfnApplicationReferenceDataSourceV2Props.kt @@ -68,10 +68,10 @@ public interface CfnApplicationReferenceDataSourceV2Props { public fun applicationName(): String /** - * For a SQL-based Managed Service for Apache Flink application, describes the reference data - * source by providing the source information (Amazon S3 bucket name and object key name), the - * resulting in-application table name that is created, and the necessary schema to map the data - * elements in the Amazon S3 object to the in-application table. + * For a SQL-based Kinesis Data Analytics application, describes the reference data source by + * providing the source information (Amazon S3 bucket name and object key name), the resulting + * in-application table name that is created, and the necessary schema to map the data elements in + * the Amazon S3 object to the in-application table. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource) */ @@ -88,27 +88,27 @@ public interface CfnApplicationReferenceDataSourceV2Props { public fun applicationName(applicationName: String) /** - * @param referenceDataSource For a SQL-based Managed Service for Apache Flink application, - * describes the reference data source by providing the source information (Amazon S3 bucket name - * and object key name), the resulting in-application table name that is created, and the necessary - * schema to map the data elements in the Amazon S3 object to the in-application table. + * @param referenceDataSource For a SQL-based Kinesis Data Analytics application, describes the + * reference data source by providing the source information (Amazon S3 bucket name and object key + * name), the resulting in-application table name that is created, and the necessary schema to map + * the data elements in the Amazon S3 object to the in-application table. */ public fun referenceDataSource(referenceDataSource: IResolvable) /** - * @param referenceDataSource For a SQL-based Managed Service for Apache Flink application, - * describes the reference data source by providing the source information (Amazon S3 bucket name - * and object key name), the resulting in-application table name that is created, and the necessary - * schema to map the data elements in the Amazon S3 object to the in-application table. + * @param referenceDataSource For a SQL-based Kinesis Data Analytics application, describes the + * reference data source by providing the source information (Amazon S3 bucket name and object key + * name), the resulting in-application table name that is created, and the necessary schema to map + * the data elements in the Amazon S3 object to the in-application table. */ public fun referenceDataSource(referenceDataSource: CfnApplicationReferenceDataSourceV2.ReferenceDataSourceProperty) /** - * @param referenceDataSource For a SQL-based Managed Service for Apache Flink application, - * describes the reference data source by providing the source information (Amazon S3 bucket name - * and object key name), the resulting in-application table name that is created, and the necessary - * schema to map the data elements in the Amazon S3 object to the in-application table. + * @param referenceDataSource For a SQL-based Kinesis Data Analytics application, describes the + * reference data source by providing the source information (Amazon S3 bucket name and object key + * name), the resulting in-application table name that is created, and the necessary schema to map + * the data elements in the Amazon S3 object to the in-application table. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("508c0325757aaa27b6e4ab6c3a27227cdb015d60745a26988b93b7c74ac8dc98") @@ -130,20 +130,20 @@ public interface CfnApplicationReferenceDataSourceV2Props { } /** - * @param referenceDataSource For a SQL-based Managed Service for Apache Flink application, - * describes the reference data source by providing the source information (Amazon S3 bucket name - * and object key name), the resulting in-application table name that is created, and the necessary - * schema to map the data elements in the Amazon S3 object to the in-application table. + * @param referenceDataSource For a SQL-based Kinesis Data Analytics application, describes the + * reference data source by providing the source information (Amazon S3 bucket name and object key + * name), the resulting in-application table name that is created, and the necessary schema to map + * the data elements in the Amazon S3 object to the in-application table. */ override fun referenceDataSource(referenceDataSource: IResolvable) { cdkBuilder.referenceDataSource(referenceDataSource.let(IResolvable::unwrap)) } /** - * @param referenceDataSource For a SQL-based Managed Service for Apache Flink application, - * describes the reference data source by providing the source information (Amazon S3 bucket name - * and object key name), the resulting in-application table name that is created, and the necessary - * schema to map the data elements in the Amazon S3 object to the in-application table. + * @param referenceDataSource For a SQL-based Kinesis Data Analytics application, describes the + * reference data source by providing the source information (Amazon S3 bucket name and object key + * name), the resulting in-application table name that is created, and the necessary schema to map + * the data elements in the Amazon S3 object to the in-application table. */ override fun referenceDataSource(referenceDataSource: CfnApplicationReferenceDataSourceV2.ReferenceDataSourceProperty) { @@ -151,10 +151,10 @@ public interface CfnApplicationReferenceDataSourceV2Props { } /** - * @param referenceDataSource For a SQL-based Managed Service for Apache Flink application, - * describes the reference data source by providing the source information (Amazon S3 bucket name - * and object key name), the resulting in-application table name that is created, and the necessary - * schema to map the data elements in the Amazon S3 object to the in-application table. + * @param referenceDataSource For a SQL-based Kinesis Data Analytics application, describes the + * reference data source by providing the source information (Amazon S3 bucket name and object key + * name), the resulting in-application table name that is created, and the necessary schema to map + * the data elements in the Amazon S3 object to the in-application table. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("508c0325757aaa27b6e4ab6c3a27227cdb015d60745a26988b93b7c74ac8dc98") @@ -179,10 +179,10 @@ public interface CfnApplicationReferenceDataSourceV2Props { override fun applicationName(): String = unwrap(this).getApplicationName() /** - * For a SQL-based Managed Service for Apache Flink application, describes the reference data - * source by providing the source information (Amazon S3 bucket name and object key name), the - * resulting in-application table name that is created, and the necessary schema to map the data - * elements in the Amazon S3 object to the in-application table. + * For a SQL-based Kinesis Data Analytics application, describes the reference data source by + * providing the source information (Amazon S3 bucket name and object key name), the resulting + * in-application table name that is created, and the necessary schema to map the data elements in + * the Amazon S3 object to the in-application table. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalytics/CfnApplicationV2.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalytics/CfnApplicationV2.kt index 12dc7ff681..7b9b717488 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalytics/CfnApplicationV2.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalytics/CfnApplicationV2.kt @@ -1089,8 +1089,7 @@ public open class CfnApplicationV2( unwrap(this).getFlinkApplicationConfiguration() /** - * The creation and update parameters for a SQL-based Managed Service for Apache Flink - * application. + * The creation and update parameters for a SQL-based Kinesis Data Analytics application. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationconfiguration.html#cfn-kinesisanalyticsv2-application-applicationconfiguration-sqlapplicationconfiguration) */ @@ -1205,20 +1204,20 @@ public open class CfnApplicationV2( /** * @param sqlApplicationConfiguration The creation and update parameters for a SQL-based - * Managed Service for Apache Flink application. + * Kinesis Data Analytics application. */ public fun sqlApplicationConfiguration(sqlApplicationConfiguration: IResolvable) /** * @param sqlApplicationConfiguration The creation and update parameters for a SQL-based - * Managed Service for Apache Flink application. + * Kinesis Data Analytics application. */ public fun sqlApplicationConfiguration(sqlApplicationConfiguration: SqlApplicationConfigurationProperty) /** * @param sqlApplicationConfiguration The creation and update parameters for a SQL-based - * Managed Service for Apache Flink application. + * Kinesis Data Analytics application. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("5c5e8903b11230e80603cfcf6061ea65675f4ba6dca2394b69443e17adbf10f1") @@ -1384,7 +1383,7 @@ public open class CfnApplicationV2( /** * @param sqlApplicationConfiguration The creation and update parameters for a SQL-based - * Managed Service for Apache Flink application. + * Kinesis Data Analytics application. */ override fun sqlApplicationConfiguration(sqlApplicationConfiguration: IResolvable) { cdkBuilder.sqlApplicationConfiguration(sqlApplicationConfiguration.let(IResolvable::unwrap)) @@ -1392,7 +1391,7 @@ public open class CfnApplicationV2( /** * @param sqlApplicationConfiguration The creation and update parameters for a SQL-based - * Managed Service for Apache Flink application. + * Kinesis Data Analytics application. */ override fun sqlApplicationConfiguration(sqlApplicationConfiguration: SqlApplicationConfigurationProperty) { @@ -1401,7 +1400,7 @@ public open class CfnApplicationV2( /** * @param sqlApplicationConfiguration The creation and update parameters for a SQL-based - * Managed Service for Apache Flink application. + * Kinesis Data Analytics application. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("5c5e8903b11230e80603cfcf6061ea65675f4ba6dca2394b69443e17adbf10f1") @@ -1501,8 +1500,7 @@ public open class CfnApplicationV2( unwrap(this).getFlinkApplicationConfiguration() /** - * The creation and update parameters for a SQL-based Managed Service for Apache Flink - * application. + * The creation and update parameters for a SQL-based Kinesis Data Analytics application. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationconfiguration.html#cfn-kinesisanalyticsv2-application-applicationconfiguration-sqlapplicationconfiguration) */ @@ -1859,8 +1857,8 @@ public open class CfnApplicationV2( } /** - * For a SQL-based Managed Service for Apache Flink application, provides additional mapping - * information when the record format uses delimiters, such as CSV. + * For a SQL-based Kinesis Data Analytics application, provides additional mapping information + * when the record format uses delimiters, such as CSV. * * For example, the following sample records use CSV format, where the records use the *'\n'* as * the row delimiter and a comma (",") as the column delimiter: @@ -3689,8 +3687,7 @@ public open class CfnApplicationV2( /** * An object that contains the Amazon Resource Name (ARN) of the Amazon Lambda function that is - * used to preprocess records in the stream in a SQL-based Managed Service for Apache Flink - * application. + * used to preprocess records in the stream in a SQL-based Kinesis Data Analytics application. * * Example: * @@ -3799,8 +3796,8 @@ public open class CfnApplicationV2( } /** - * For a SQL-based Managed Service for Apache Flink application, describes the number of - * in-application streams to create for a given streaming source. + * For a SQL-based Kinesis Data Analytics application, describes the number of in-application + * streams to create for a given streaming source. * * Example: * @@ -4025,9 +4022,9 @@ public open class CfnApplicationV2( } /** - * When you configure the application input for a SQL-based Managed Service for Apache Flink - * application, you specify the streaming source, the in-application stream name that is created, and - * the mapping between the two. + * When you configure the application input for a SQL-based Kinesis Data Analytics application, + * you specify the streaming source, the in-application stream name that is created, and the mapping + * between the two. * * Example: * @@ -4130,10 +4127,9 @@ public open class CfnApplicationV2( /** * The name prefix to use when creating an in-application stream. * - * Suppose that you specify a prefix " `MyInApplicationStream` ." Managed Service for Apache - * Flink then creates one or more (as per the `InputParallelism` count you specified) - * in-application streams with the names " `MyInApplicationStream_001` ," " - * `MyInApplicationStream_002` ," and so on. + * Suppose that you specify a prefix " `MyInApplicationStream` ." Kinesis Data Analytics then + * creates one or more (as per the `InputParallelism` count you specified) in-application streams + * with the names " `MyInApplicationStream_001` ," " `MyInApplicationStream_002` ," and so on. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-input.html#cfn-kinesisanalyticsv2-application-input-nameprefix) */ @@ -4268,10 +4264,9 @@ public open class CfnApplicationV2( /** * @param namePrefix The name prefix to use when creating an in-application stream. - * Suppose that you specify a prefix " `MyInApplicationStream` ." Managed Service for Apache - * Flink then creates one or more (as per the `InputParallelism` count you specified) - * in-application streams with the names " `MyInApplicationStream_001` ," " - * `MyInApplicationStream_002` ," and so on. + * Suppose that you specify a prefix " `MyInApplicationStream` ." Kinesis Data Analytics then + * creates one or more (as per the `InputParallelism` count you specified) in-application streams + * with the names " `MyInApplicationStream_001` ," " `MyInApplicationStream_002` ," and so on. */ public fun namePrefix(namePrefix: String) } @@ -4431,10 +4426,9 @@ public open class CfnApplicationV2( /** * @param namePrefix The name prefix to use when creating an in-application stream. - * Suppose that you specify a prefix " `MyInApplicationStream` ." Managed Service for Apache - * Flink then creates one or more (as per the `InputParallelism` count you specified) - * in-application streams with the names " `MyInApplicationStream_001` ," " - * `MyInApplicationStream_002` ," and so on. + * Suppose that you specify a prefix " `MyInApplicationStream` ." Kinesis Data Analytics then + * creates one or more (as per the `InputParallelism` count you specified) in-application streams + * with the names " `MyInApplicationStream_001` ," " `MyInApplicationStream_002` ," and so on. */ override fun namePrefix(namePrefix: String) { cdkBuilder.namePrefix(namePrefix) @@ -4498,10 +4492,9 @@ public open class CfnApplicationV2( /** * The name prefix to use when creating an in-application stream. * - * Suppose that you specify a prefix " `MyInApplicationStream` ." Managed Service for Apache - * Flink then creates one or more (as per the `InputParallelism` count you specified) - * in-application streams with the names " `MyInApplicationStream_001` ," " - * `MyInApplicationStream_002` ," and so on. + * Suppose that you specify a prefix " `MyInApplicationStream` ." Kinesis Data Analytics then + * creates one or more (as per the `InputParallelism` count you specified) in-application streams + * with the names " `MyInApplicationStream_001` ," " `MyInApplicationStream_002` ," and so on. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-input.html#cfn-kinesisanalyticsv2-application-input-nameprefix) */ @@ -4526,8 +4519,8 @@ public open class CfnApplicationV2( } /** - * For a SQL-based Managed Service for Apache Flink application, describes the format of the data - * in the streaming source, and how each data element maps to corresponding columns created in the + * For a SQL-based Kinesis Data Analytics application, describes the format of the data in the + * streaming source, and how each data element maps to corresponding columns created in the * in-application stream. * * Example: @@ -4738,8 +4731,8 @@ public open class CfnApplicationV2( } /** - * For a SQL-based Managed Service for Apache Flink application, provides additional mapping - * information when JSON is the record format on the streaming source. + * For a SQL-based Kinesis Data Analytics application, provides additional mapping information + * when JSON is the record format on the streaming source. * * Example: * @@ -4822,8 +4815,8 @@ public open class CfnApplicationV2( } /** - * For a SQL-based Managed Service for Apache Flink application, identifies a Kinesis Data - * Firehose delivery stream as the streaming source. + * For a SQL-based Kinesis Data Analytics application, identifies a Kinesis Data Firehose delivery + * stream as the streaming source. * * You provide the delivery stream's Amazon Resource Name (ARN). * @@ -4992,8 +4985,8 @@ public open class CfnApplicationV2( } /** - * When you configure a SQL-based Managed Service for Apache Flink application's input at the time - * of creating or updating an application, provides additional mapping information specific to the + * When you configure a SQL-based Kinesis Data Analytics application's input at the time of + * creating or updating an application, provides additional mapping information specific to the * record format (such as JSON, CSV, or record fields delimited by some delimiter) on the streaming * source. * @@ -5847,8 +5840,8 @@ public open class CfnApplicationV2( } /** - * For a SQL-based Managed Service for Apache Flink application, describes the mapping of each - * data element in the streaming source to the corresponding column in the in-application stream. + * For a SQL-based Kinesis Data Analytics application, describes the mapping of each data element + * in the streaming source to the corresponding column in the in-application stream. * * Also used to describe the format of the reference data source. * @@ -5994,8 +5987,8 @@ public open class CfnApplicationV2( } /** - * For a SQL-based Managed Service for Apache Flink application, describes the record format and - * relevant mapping information that should be applied to schematize the records on the stream. + * For a SQL-based Kinesis Data Analytics application, describes the record format and relevant + * mapping information that should be applied to schematize the records on the stream. * * Example: * @@ -6597,8 +6590,8 @@ public open class CfnApplicationV2( } /** - * Describes the inputs, outputs, and reference data sources for a SQL-based Managed Service for - * Apache Flink application. + * Describes the inputs, outputs, and reference data sources for a SQL-based Kinesis Data + * Analytics application. * * Example: * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalyticsv2/CfnApplication.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalyticsv2/CfnApplication.kt index cd79ec844a..d73b110309 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalyticsv2/CfnApplication.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalyticsv2/CfnApplication.kt @@ -1089,8 +1089,7 @@ public open class CfnApplication( unwrap(this).getFlinkApplicationConfiguration() /** - * The creation and update parameters for a SQL-based Managed Service for Apache Flink - * application. + * The creation and update parameters for a SQL-based Kinesis Data Analytics application. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationconfiguration.html#cfn-kinesisanalyticsv2-application-applicationconfiguration-sqlapplicationconfiguration) */ @@ -1205,20 +1204,20 @@ public open class CfnApplication( /** * @param sqlApplicationConfiguration The creation and update parameters for a SQL-based - * Managed Service for Apache Flink application. + * Kinesis Data Analytics application. */ public fun sqlApplicationConfiguration(sqlApplicationConfiguration: IResolvable) /** * @param sqlApplicationConfiguration The creation and update parameters for a SQL-based - * Managed Service for Apache Flink application. + * Kinesis Data Analytics application. */ public fun sqlApplicationConfiguration(sqlApplicationConfiguration: SqlApplicationConfigurationProperty) /** * @param sqlApplicationConfiguration The creation and update parameters for a SQL-based - * Managed Service for Apache Flink application. + * Kinesis Data Analytics application. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("739a9d42cdc613f937634ee485e7018d1f8244cb03e497d08ddcbafa23ee4cd0") @@ -1384,7 +1383,7 @@ public open class CfnApplication( /** * @param sqlApplicationConfiguration The creation and update parameters for a SQL-based - * Managed Service for Apache Flink application. + * Kinesis Data Analytics application. */ override fun sqlApplicationConfiguration(sqlApplicationConfiguration: IResolvable) { cdkBuilder.sqlApplicationConfiguration(sqlApplicationConfiguration.let(IResolvable::unwrap)) @@ -1392,7 +1391,7 @@ public open class CfnApplication( /** * @param sqlApplicationConfiguration The creation and update parameters for a SQL-based - * Managed Service for Apache Flink application. + * Kinesis Data Analytics application. */ override fun sqlApplicationConfiguration(sqlApplicationConfiguration: SqlApplicationConfigurationProperty) { @@ -1401,7 +1400,7 @@ public open class CfnApplication( /** * @param sqlApplicationConfiguration The creation and update parameters for a SQL-based - * Managed Service for Apache Flink application. + * Kinesis Data Analytics application. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("739a9d42cdc613f937634ee485e7018d1f8244cb03e497d08ddcbafa23ee4cd0") @@ -1501,8 +1500,7 @@ public open class CfnApplication( unwrap(this).getFlinkApplicationConfiguration() /** - * The creation and update parameters for a SQL-based Managed Service for Apache Flink - * application. + * The creation and update parameters for a SQL-based Kinesis Data Analytics application. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationconfiguration.html#cfn-kinesisanalyticsv2-application-applicationconfiguration-sqlapplicationconfiguration) */ @@ -1859,8 +1857,8 @@ public open class CfnApplication( } /** - * For a SQL-based Managed Service for Apache Flink application, provides additional mapping - * information when the record format uses delimiters, such as CSV. + * For a SQL-based Kinesis Data Analytics application, provides additional mapping information + * when the record format uses delimiters, such as CSV. * * For example, the following sample records use CSV format, where the records use the *'\n'* as * the row delimiter and a comma (",") as the column delimiter: @@ -3689,8 +3687,7 @@ public open class CfnApplication( /** * An object that contains the Amazon Resource Name (ARN) of the Amazon Lambda function that is - * used to preprocess records in the stream in a SQL-based Managed Service for Apache Flink - * application. + * used to preprocess records in the stream in a SQL-based Kinesis Data Analytics application. * * Example: * @@ -3799,8 +3796,8 @@ public open class CfnApplication( } /** - * For a SQL-based Managed Service for Apache Flink application, describes the number of - * in-application streams to create for a given streaming source. + * For a SQL-based Kinesis Data Analytics application, describes the number of in-application + * streams to create for a given streaming source. * * Example: * @@ -4025,9 +4022,9 @@ public open class CfnApplication( } /** - * When you configure the application input for a SQL-based Managed Service for Apache Flink - * application, you specify the streaming source, the in-application stream name that is created, and - * the mapping between the two. + * When you configure the application input for a SQL-based Kinesis Data Analytics application, + * you specify the streaming source, the in-application stream name that is created, and the mapping + * between the two. * * Example: * @@ -4130,10 +4127,9 @@ public open class CfnApplication( /** * The name prefix to use when creating an in-application stream. * - * Suppose that you specify a prefix " `MyInApplicationStream` ." Managed Service for Apache - * Flink then creates one or more (as per the `InputParallelism` count you specified) - * in-application streams with the names " `MyInApplicationStream_001` ," " - * `MyInApplicationStream_002` ," and so on. + * Suppose that you specify a prefix " `MyInApplicationStream` ." Kinesis Data Analytics then + * creates one or more (as per the `InputParallelism` count you specified) in-application streams + * with the names " `MyInApplicationStream_001` ," " `MyInApplicationStream_002` ," and so on. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-input.html#cfn-kinesisanalyticsv2-application-input-nameprefix) */ @@ -4268,10 +4264,9 @@ public open class CfnApplication( /** * @param namePrefix The name prefix to use when creating an in-application stream. - * Suppose that you specify a prefix " `MyInApplicationStream` ." Managed Service for Apache - * Flink then creates one or more (as per the `InputParallelism` count you specified) - * in-application streams with the names " `MyInApplicationStream_001` ," " - * `MyInApplicationStream_002` ," and so on. + * Suppose that you specify a prefix " `MyInApplicationStream` ." Kinesis Data Analytics then + * creates one or more (as per the `InputParallelism` count you specified) in-application streams + * with the names " `MyInApplicationStream_001` ," " `MyInApplicationStream_002` ," and so on. */ public fun namePrefix(namePrefix: String) } @@ -4431,10 +4426,9 @@ public open class CfnApplication( /** * @param namePrefix The name prefix to use when creating an in-application stream. - * Suppose that you specify a prefix " `MyInApplicationStream` ." Managed Service for Apache - * Flink then creates one or more (as per the `InputParallelism` count you specified) - * in-application streams with the names " `MyInApplicationStream_001` ," " - * `MyInApplicationStream_002` ," and so on. + * Suppose that you specify a prefix " `MyInApplicationStream` ." Kinesis Data Analytics then + * creates one or more (as per the `InputParallelism` count you specified) in-application streams + * with the names " `MyInApplicationStream_001` ," " `MyInApplicationStream_002` ," and so on. */ override fun namePrefix(namePrefix: String) { cdkBuilder.namePrefix(namePrefix) @@ -4498,10 +4492,9 @@ public open class CfnApplication( /** * The name prefix to use when creating an in-application stream. * - * Suppose that you specify a prefix " `MyInApplicationStream` ." Managed Service for Apache - * Flink then creates one or more (as per the `InputParallelism` count you specified) - * in-application streams with the names " `MyInApplicationStream_001` ," " - * `MyInApplicationStream_002` ," and so on. + * Suppose that you specify a prefix " `MyInApplicationStream` ." Kinesis Data Analytics then + * creates one or more (as per the `InputParallelism` count you specified) in-application streams + * with the names " `MyInApplicationStream_001` ," " `MyInApplicationStream_002` ," and so on. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-input.html#cfn-kinesisanalyticsv2-application-input-nameprefix) */ @@ -4526,8 +4519,8 @@ public open class CfnApplication( } /** - * For a SQL-based Managed Service for Apache Flink application, describes the format of the data - * in the streaming source, and how each data element maps to corresponding columns created in the + * For a SQL-based Kinesis Data Analytics application, describes the format of the data in the + * streaming source, and how each data element maps to corresponding columns created in the * in-application stream. * * Example: @@ -4738,8 +4731,8 @@ public open class CfnApplication( } /** - * For a SQL-based Managed Service for Apache Flink application, provides additional mapping - * information when JSON is the record format on the streaming source. + * For a SQL-based Kinesis Data Analytics application, provides additional mapping information + * when JSON is the record format on the streaming source. * * Example: * @@ -4822,8 +4815,8 @@ public open class CfnApplication( } /** - * For a SQL-based Managed Service for Apache Flink application, identifies a Kinesis Data - * Firehose delivery stream as the streaming source. + * For a SQL-based Kinesis Data Analytics application, identifies a Kinesis Data Firehose delivery + * stream as the streaming source. * * You provide the delivery stream's Amazon Resource Name (ARN). * @@ -4992,8 +4985,8 @@ public open class CfnApplication( } /** - * When you configure a SQL-based Managed Service for Apache Flink application's input at the time - * of creating or updating an application, provides additional mapping information specific to the + * When you configure a SQL-based Kinesis Data Analytics application's input at the time of + * creating or updating an application, provides additional mapping information specific to the * record format (such as JSON, CSV, or record fields delimited by some delimiter) on the streaming * source. * @@ -5847,8 +5840,8 @@ public open class CfnApplication( } /** - * For a SQL-based Managed Service for Apache Flink application, describes the mapping of each - * data element in the streaming source to the corresponding column in the in-application stream. + * For a SQL-based Kinesis Data Analytics application, describes the mapping of each data element + * in the streaming source to the corresponding column in the in-application stream. * * Also used to describe the format of the reference data source. * @@ -5994,8 +5987,8 @@ public open class CfnApplication( } /** - * For a SQL-based Managed Service for Apache Flink application, describes the record format and - * relevant mapping information that should be applied to schematize the records on the stream. + * For a SQL-based Kinesis Data Analytics application, describes the record format and relevant + * mapping information that should be applied to schematize the records on the stream. * * Example: * @@ -6597,8 +6590,8 @@ public open class CfnApplication( } /** - * Describes the inputs, outputs, and reference data sources for a SQL-based Managed Service for - * Apache Flink application. + * Describes the inputs, outputs, and reference data sources for a SQL-based Kinesis Data + * Analytics application. * * Example: * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalyticsv2/CfnApplicationOutput.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalyticsv2/CfnApplicationOutput.kt index 9029cb54f9..c7b1eae8ad 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalyticsv2/CfnApplicationOutput.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalyticsv2/CfnApplicationOutput.kt @@ -114,34 +114,34 @@ public open class CfnApplicationOutput( } /** - * Describes a SQL-based Managed Service for Apache Flink application's output configuration, in - * which you identify an in-application stream and a destination where you want the in-application - * stream data to be written. + * Describes a SQL-based Kinesis Data Analytics application's output configuration, in which you + * identify an in-application stream and a destination where you want the in-application stream data + * to be written. */ public open fun output(): Any = unwrap(this).getOutput() /** - * Describes a SQL-based Managed Service for Apache Flink application's output configuration, in - * which you identify an in-application stream and a destination where you want the in-application - * stream data to be written. + * Describes a SQL-based Kinesis Data Analytics application's output configuration, in which you + * identify an in-application stream and a destination where you want the in-application stream data + * to be written. */ public open fun output(`value`: IResolvable) { unwrap(this).setOutput(`value`.let(IResolvable::unwrap)) } /** - * Describes a SQL-based Managed Service for Apache Flink application's output configuration, in - * which you identify an in-application stream and a destination where you want the in-application - * stream data to be written. + * Describes a SQL-based Kinesis Data Analytics application's output configuration, in which you + * identify an in-application stream and a destination where you want the in-application stream data + * to be written. */ public open fun output(`value`: OutputProperty) { unwrap(this).setOutput(`value`.let(OutputProperty::unwrap)) } /** - * Describes a SQL-based Managed Service for Apache Flink application's output configuration, in - * which you identify an in-application stream and a destination where you want the in-application - * stream data to be written. + * Describes a SQL-based Kinesis Data Analytics application's output configuration, in which you + * identify an in-application stream and a destination where you want the in-application stream data + * to be written. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("d614209d4ed192b9890035b521e5e299a73477b3e7feb007bf03c155d3d5146c") @@ -163,42 +163,42 @@ public open class CfnApplicationOutput( public fun applicationName(applicationName: String) /** - * Describes a SQL-based Managed Service for Apache Flink application's output configuration, in - * which you identify an in-application stream and a destination where you want the in-application - * stream data to be written. + * Describes a SQL-based Kinesis Data Analytics application's output configuration, in which you + * identify an in-application stream and a destination where you want the in-application stream + * data to be written. * * The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationoutput.html#cfn-kinesisanalyticsv2-applicationoutput-output) - * @param output Describes a SQL-based Managed Service for Apache Flink application's output + * @param output Describes a SQL-based Kinesis Data Analytics application's output * configuration, in which you identify an in-application stream and a destination where you want * the in-application stream data to be written. */ public fun output(output: IResolvable) /** - * Describes a SQL-based Managed Service for Apache Flink application's output configuration, in - * which you identify an in-application stream and a destination where you want the in-application - * stream data to be written. + * Describes a SQL-based Kinesis Data Analytics application's output configuration, in which you + * identify an in-application stream and a destination where you want the in-application stream + * data to be written. * * The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationoutput.html#cfn-kinesisanalyticsv2-applicationoutput-output) - * @param output Describes a SQL-based Managed Service for Apache Flink application's output + * @param output Describes a SQL-based Kinesis Data Analytics application's output * configuration, in which you identify an in-application stream and a destination where you want * the in-application stream data to be written. */ public fun output(output: OutputProperty) /** - * Describes a SQL-based Managed Service for Apache Flink application's output configuration, in - * which you identify an in-application stream and a destination where you want the in-application - * stream data to be written. + * Describes a SQL-based Kinesis Data Analytics application's output configuration, in which you + * identify an in-application stream and a destination where you want the in-application stream + * data to be written. * * The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationoutput.html#cfn-kinesisanalyticsv2-applicationoutput-output) - * @param output Describes a SQL-based Managed Service for Apache Flink application's output + * @param output Describes a SQL-based Kinesis Data Analytics application's output * configuration, in which you identify an in-application stream and a destination where you want * the in-application stream data to be written. */ @@ -227,14 +227,14 @@ public open class CfnApplicationOutput( } /** - * Describes a SQL-based Managed Service for Apache Flink application's output configuration, in - * which you identify an in-application stream and a destination where you want the in-application - * stream data to be written. + * Describes a SQL-based Kinesis Data Analytics application's output configuration, in which you + * identify an in-application stream and a destination where you want the in-application stream + * data to be written. * * The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationoutput.html#cfn-kinesisanalyticsv2-applicationoutput-output) - * @param output Describes a SQL-based Managed Service for Apache Flink application's output + * @param output Describes a SQL-based Kinesis Data Analytics application's output * configuration, in which you identify an in-application stream and a destination where you want * the in-application stream data to be written. */ @@ -243,14 +243,14 @@ public open class CfnApplicationOutput( } /** - * Describes a SQL-based Managed Service for Apache Flink application's output configuration, in - * which you identify an in-application stream and a destination where you want the in-application - * stream data to be written. + * Describes a SQL-based Kinesis Data Analytics application's output configuration, in which you + * identify an in-application stream and a destination where you want the in-application stream + * data to be written. * * The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationoutput.html#cfn-kinesisanalyticsv2-applicationoutput-output) - * @param output Describes a SQL-based Managed Service for Apache Flink application's output + * @param output Describes a SQL-based Kinesis Data Analytics application's output * configuration, in which you identify an in-application stream and a destination where you want * the in-application stream data to be written. */ @@ -259,14 +259,14 @@ public open class CfnApplicationOutput( } /** - * Describes a SQL-based Managed Service for Apache Flink application's output configuration, in - * which you identify an in-application stream and a destination where you want the in-application - * stream data to be written. + * Describes a SQL-based Kinesis Data Analytics application's output configuration, in which you + * identify an in-application stream and a destination where you want the in-application stream + * data to be written. * * The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationoutput.html#cfn-kinesisanalyticsv2-applicationoutput-output) - * @param output Describes a SQL-based Managed Service for Apache Flink application's output + * @param output Describes a SQL-based Kinesis Data Analytics application's output * configuration, in which you identify an in-application stream and a destination where you want * the in-application stream data to be written. */ @@ -302,8 +302,8 @@ public open class CfnApplicationOutput( } /** - * Describes the data format when records are written to the destination in a SQL-based Managed - * Service for Apache Flink application. + * Describes the data format when records are written to the destination in a SQL-based Kinesis + * Data Analytics application. * * Example: * @@ -385,8 +385,8 @@ public open class CfnApplicationOutput( } /** - * For a SQL-based Managed Service for Apache Flink application, when configuring application - * output, identifies a Kinesis Data Firehose delivery stream as the destination. + * For a SQL-based Kinesis Data Analytics application, when configuring application output, + * identifies a Kinesis Data Firehose delivery stream as the destination. * * You provide the stream Amazon Resource Name (ARN) of the delivery stream. * @@ -471,8 +471,8 @@ public open class CfnApplicationOutput( } /** - * When you configure a SQL-based Managed Service for Apache Flink application's output, - * identifies a Kinesis data stream as the destination. + * When you configure a SQL-based Kinesis Data Analytics application's output, identifies a + * Kinesis data stream as the destination. * * You provide the stream Amazon Resource Name (ARN). * @@ -557,8 +557,8 @@ public open class CfnApplicationOutput( } /** - * When you configure a SQL-based Managed Service for Apache Flink application's output, - * identifies an Amazon Lambda function as the destination. + * When you configure a SQL-based Kinesis Data Analytics application's output, identifies an + * Amazon Lambda function as the destination. * * You provide the function Amazon Resource Name (ARN) of the Lambda function. * @@ -668,9 +668,9 @@ public open class CfnApplicationOutput( } /** - * Describes a SQL-based Managed Service for Apache Flink application's output configuration, in - * which you identify an in-application stream and a destination where you want the in-application - * stream data to be written. + * Describes a SQL-based Kinesis Data Analytics application's output configuration, in which you + * identify an in-application stream and a destination where you want the in-application stream data + * to be written. * * The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalyticsv2/CfnApplicationOutputProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalyticsv2/CfnApplicationOutputProps.kt index 20efc3ae85..bc71c738c4 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalyticsv2/CfnApplicationOutputProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalyticsv2/CfnApplicationOutputProps.kt @@ -52,9 +52,9 @@ public interface CfnApplicationOutputProps { public fun applicationName(): String /** - * Describes a SQL-based Managed Service for Apache Flink application's output configuration, in - * which you identify an in-application stream and a destination where you want the in-application - * stream data to be written. + * Describes a SQL-based Kinesis Data Analytics application's output configuration, in which you + * identify an in-application stream and a destination where you want the in-application stream data + * to be written. * * The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream. * @@ -73,7 +73,7 @@ public interface CfnApplicationOutputProps { public fun applicationName(applicationName: String) /** - * @param output Describes a SQL-based Managed Service for Apache Flink application's output + * @param output Describes a SQL-based Kinesis Data Analytics application's output * configuration, in which you identify an in-application stream and a destination where you want * the in-application stream data to be written. * The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream. @@ -81,7 +81,7 @@ public interface CfnApplicationOutputProps { public fun output(output: IResolvable) /** - * @param output Describes a SQL-based Managed Service for Apache Flink application's output + * @param output Describes a SQL-based Kinesis Data Analytics application's output * configuration, in which you identify an in-application stream and a destination where you want * the in-application stream data to be written. * The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream. @@ -89,7 +89,7 @@ public interface CfnApplicationOutputProps { public fun output(output: CfnApplicationOutput.OutputProperty) /** - * @param output Describes a SQL-based Managed Service for Apache Flink application's output + * @param output Describes a SQL-based Kinesis Data Analytics application's output * configuration, in which you identify an in-application stream and a destination where you want * the in-application stream data to be written. * The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream. @@ -112,7 +112,7 @@ public interface CfnApplicationOutputProps { } /** - * @param output Describes a SQL-based Managed Service for Apache Flink application's output + * @param output Describes a SQL-based Kinesis Data Analytics application's output * configuration, in which you identify an in-application stream and a destination where you want * the in-application stream data to be written. * The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream. @@ -122,7 +122,7 @@ public interface CfnApplicationOutputProps { } /** - * @param output Describes a SQL-based Managed Service for Apache Flink application's output + * @param output Describes a SQL-based Kinesis Data Analytics application's output * configuration, in which you identify an in-application stream and a destination where you want * the in-application stream data to be written. * The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream. @@ -132,7 +132,7 @@ public interface CfnApplicationOutputProps { } /** - * @param output Describes a SQL-based Managed Service for Apache Flink application's output + * @param output Describes a SQL-based Kinesis Data Analytics application's output * configuration, in which you identify an in-application stream and a destination where you want * the in-application stream data to be written. * The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream. @@ -157,9 +157,9 @@ public interface CfnApplicationOutputProps { override fun applicationName(): String = unwrap(this).getApplicationName() /** - * Describes a SQL-based Managed Service for Apache Flink application's output configuration, in - * which you identify an in-application stream and a destination where you want the in-application - * stream data to be written. + * Describes a SQL-based Kinesis Data Analytics application's output configuration, in which you + * identify an in-application stream and a destination where you want the in-application stream + * data to be written. * * The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalyticsv2/CfnApplicationReferenceDataSource.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalyticsv2/CfnApplicationReferenceDataSource.kt index 28cf8d5778..a6c619ba3d 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalyticsv2/CfnApplicationReferenceDataSource.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalyticsv2/CfnApplicationReferenceDataSource.kt @@ -18,12 +18,11 @@ import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct import software.constructs.Construct as SoftwareConstructsConstruct /** - * Adds a reference data source to an existing SQL-based Managed Service for Apache Flink - * application. + * Adds a reference data source to an existing SQL-based Kinesis Data Analytics application. * - * Managed Service for Apache Flink reads reference data (that is, an Amazon S3 object) and creates - * an in-application table within your application. In the request, you provide the source (S3 bucket - * name and object key name), name of the in-application table to create, and the necessary mapping + * Kinesis Data Analytics reads reference data (that is, an Amazon S3 object) and creates an + * in-application table within your application. In the request, you provide the source (S3 bucket name + * and object key name), name of the in-application table to create, and the necessary mapping * information that describes how data in an Amazon S3 object maps to columns in the resulting * in-application table. * @@ -118,38 +117,38 @@ public open class CfnApplicationReferenceDataSource( } /** - * For a SQL-based Managed Service for Apache Flink application, describes the reference data - * source by providing the source information (Amazon S3 bucket name and object key name), the - * resulting in-application table name that is created, and the necessary schema to map the data - * elements in the Amazon S3 object to the in-application table. + * For a SQL-based Kinesis Data Analytics application, describes the reference data source by + * providing the source information (Amazon S3 bucket name and object key name), the resulting + * in-application table name that is created, and the necessary schema to map the data elements in + * the Amazon S3 object to the in-application table. */ public open fun referenceDataSource(): Any = unwrap(this).getReferenceDataSource() /** - * For a SQL-based Managed Service for Apache Flink application, describes the reference data - * source by providing the source information (Amazon S3 bucket name and object key name), the - * resulting in-application table name that is created, and the necessary schema to map the data - * elements in the Amazon S3 object to the in-application table. + * For a SQL-based Kinesis Data Analytics application, describes the reference data source by + * providing the source information (Amazon S3 bucket name and object key name), the resulting + * in-application table name that is created, and the necessary schema to map the data elements in + * the Amazon S3 object to the in-application table. */ public open fun referenceDataSource(`value`: IResolvable) { unwrap(this).setReferenceDataSource(`value`.let(IResolvable::unwrap)) } /** - * For a SQL-based Managed Service for Apache Flink application, describes the reference data - * source by providing the source information (Amazon S3 bucket name and object key name), the - * resulting in-application table name that is created, and the necessary schema to map the data - * elements in the Amazon S3 object to the in-application table. + * For a SQL-based Kinesis Data Analytics application, describes the reference data source by + * providing the source information (Amazon S3 bucket name and object key name), the resulting + * in-application table name that is created, and the necessary schema to map the data elements in + * the Amazon S3 object to the in-application table. */ public open fun referenceDataSource(`value`: ReferenceDataSourceProperty) { unwrap(this).setReferenceDataSource(`value`.let(ReferenceDataSourceProperty::unwrap)) } /** - * For a SQL-based Managed Service for Apache Flink application, describes the reference data - * source by providing the source information (Amazon S3 bucket name and object key name), the - * resulting in-application table name that is created, and the necessary schema to map the data - * elements in the Amazon S3 object to the in-application table. + * For a SQL-based Kinesis Data Analytics application, describes the reference data source by + * providing the source information (Amazon S3 bucket name and object key name), the resulting + * in-application table name that is created, and the necessary schema to map the data elements in + * the Amazon S3 object to the in-application table. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("31f647215751030723bfe09123d66931935a34650f2208bfbf42b1ae10642b03") @@ -171,44 +170,44 @@ public open class CfnApplicationReferenceDataSource( public fun applicationName(applicationName: String) /** - * For a SQL-based Managed Service for Apache Flink application, describes the reference data - * source by providing the source information (Amazon S3 bucket name and object key name), the - * resulting in-application table name that is created, and the necessary schema to map the data - * elements in the Amazon S3 object to the in-application table. + * For a SQL-based Kinesis Data Analytics application, describes the reference data source by + * providing the source information (Amazon S3 bucket name and object key name), the resulting + * in-application table name that is created, and the necessary schema to map the data elements in + * the Amazon S3 object to the in-application table. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource) - * @param referenceDataSource For a SQL-based Managed Service for Apache Flink application, - * describes the reference data source by providing the source information (Amazon S3 bucket name - * and object key name), the resulting in-application table name that is created, and the necessary - * schema to map the data elements in the Amazon S3 object to the in-application table. + * @param referenceDataSource For a SQL-based Kinesis Data Analytics application, describes the + * reference data source by providing the source information (Amazon S3 bucket name and object key + * name), the resulting in-application table name that is created, and the necessary schema to map + * the data elements in the Amazon S3 object to the in-application table. */ public fun referenceDataSource(referenceDataSource: IResolvable) /** - * For a SQL-based Managed Service for Apache Flink application, describes the reference data - * source by providing the source information (Amazon S3 bucket name and object key name), the - * resulting in-application table name that is created, and the necessary schema to map the data - * elements in the Amazon S3 object to the in-application table. + * For a SQL-based Kinesis Data Analytics application, describes the reference data source by + * providing the source information (Amazon S3 bucket name and object key name), the resulting + * in-application table name that is created, and the necessary schema to map the data elements in + * the Amazon S3 object to the in-application table. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource) - * @param referenceDataSource For a SQL-based Managed Service for Apache Flink application, - * describes the reference data source by providing the source information (Amazon S3 bucket name - * and object key name), the resulting in-application table name that is created, and the necessary - * schema to map the data elements in the Amazon S3 object to the in-application table. + * @param referenceDataSource For a SQL-based Kinesis Data Analytics application, describes the + * reference data source by providing the source information (Amazon S3 bucket name and object key + * name), the resulting in-application table name that is created, and the necessary schema to map + * the data elements in the Amazon S3 object to the in-application table. */ public fun referenceDataSource(referenceDataSource: ReferenceDataSourceProperty) /** - * For a SQL-based Managed Service for Apache Flink application, describes the reference data - * source by providing the source information (Amazon S3 bucket name and object key name), the - * resulting in-application table name that is created, and the necessary schema to map the data - * elements in the Amazon S3 object to the in-application table. + * For a SQL-based Kinesis Data Analytics application, describes the reference data source by + * providing the source information (Amazon S3 bucket name and object key name), the resulting + * in-application table name that is created, and the necessary schema to map the data elements in + * the Amazon S3 object to the in-application table. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource) - * @param referenceDataSource For a SQL-based Managed Service for Apache Flink application, - * describes the reference data source by providing the source information (Amazon S3 bucket name - * and object key name), the resulting in-application table name that is created, and the necessary - * schema to map the data elements in the Amazon S3 object to the in-application table. + * @param referenceDataSource For a SQL-based Kinesis Data Analytics application, describes the + * reference data source by providing the source information (Amazon S3 bucket name and object key + * name), the resulting in-application table name that is created, and the necessary schema to map + * the data elements in the Amazon S3 object to the in-application table. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("df30e3ce0e156151be61871d468c650edb2ec61634a8d8111f4e4b0618f7a291") @@ -237,48 +236,48 @@ public open class CfnApplicationReferenceDataSource( } /** - * For a SQL-based Managed Service for Apache Flink application, describes the reference data - * source by providing the source information (Amazon S3 bucket name and object key name), the - * resulting in-application table name that is created, and the necessary schema to map the data - * elements in the Amazon S3 object to the in-application table. + * For a SQL-based Kinesis Data Analytics application, describes the reference data source by + * providing the source information (Amazon S3 bucket name and object key name), the resulting + * in-application table name that is created, and the necessary schema to map the data elements in + * the Amazon S3 object to the in-application table. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource) - * @param referenceDataSource For a SQL-based Managed Service for Apache Flink application, - * describes the reference data source by providing the source information (Amazon S3 bucket name - * and object key name), the resulting in-application table name that is created, and the necessary - * schema to map the data elements in the Amazon S3 object to the in-application table. + * @param referenceDataSource For a SQL-based Kinesis Data Analytics application, describes the + * reference data source by providing the source information (Amazon S3 bucket name and object key + * name), the resulting in-application table name that is created, and the necessary schema to map + * the data elements in the Amazon S3 object to the in-application table. */ override fun referenceDataSource(referenceDataSource: IResolvable) { cdkBuilder.referenceDataSource(referenceDataSource.let(IResolvable::unwrap)) } /** - * For a SQL-based Managed Service for Apache Flink application, describes the reference data - * source by providing the source information (Amazon S3 bucket name and object key name), the - * resulting in-application table name that is created, and the necessary schema to map the data - * elements in the Amazon S3 object to the in-application table. + * For a SQL-based Kinesis Data Analytics application, describes the reference data source by + * providing the source information (Amazon S3 bucket name and object key name), the resulting + * in-application table name that is created, and the necessary schema to map the data elements in + * the Amazon S3 object to the in-application table. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource) - * @param referenceDataSource For a SQL-based Managed Service for Apache Flink application, - * describes the reference data source by providing the source information (Amazon S3 bucket name - * and object key name), the resulting in-application table name that is created, and the necessary - * schema to map the data elements in the Amazon S3 object to the in-application table. + * @param referenceDataSource For a SQL-based Kinesis Data Analytics application, describes the + * reference data source by providing the source information (Amazon S3 bucket name and object key + * name), the resulting in-application table name that is created, and the necessary schema to map + * the data elements in the Amazon S3 object to the in-application table. */ override fun referenceDataSource(referenceDataSource: ReferenceDataSourceProperty) { cdkBuilder.referenceDataSource(referenceDataSource.let(ReferenceDataSourceProperty::unwrap)) } /** - * For a SQL-based Managed Service for Apache Flink application, describes the reference data - * source by providing the source information (Amazon S3 bucket name and object key name), the - * resulting in-application table name that is created, and the necessary schema to map the data - * elements in the Amazon S3 object to the in-application table. + * For a SQL-based Kinesis Data Analytics application, describes the reference data source by + * providing the source information (Amazon S3 bucket name and object key name), the resulting + * in-application table name that is created, and the necessary schema to map the data elements in + * the Amazon S3 object to the in-application table. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource) - * @param referenceDataSource For a SQL-based Managed Service for Apache Flink application, - * describes the reference data source by providing the source information (Amazon S3 bucket name - * and object key name), the resulting in-application table name that is created, and the necessary - * schema to map the data elements in the Amazon S3 object to the in-application table. + * @param referenceDataSource For a SQL-based Kinesis Data Analytics application, describes the + * reference data source by providing the source information (Amazon S3 bucket name and object key + * name), the resulting in-application table name that is created, and the necessary schema to map + * the data elements in the Amazon S3 object to the in-application table. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("df30e3ce0e156151be61871d468c650edb2ec61634a8d8111f4e4b0618f7a291") @@ -315,8 +314,8 @@ public open class CfnApplicationReferenceDataSource( } /** - * For a SQL-based Managed Service for Apache Flink application, provides additional mapping - * information when the record format uses delimiters, such as CSV. + * For a SQL-based Kinesis Data Analytics application, provides additional mapping information + * when the record format uses delimiters, such as CSV. * * For example, the following sample records use CSV format, where the records use the *'\n'* as * the row delimiter and a comma (",") as the column delimiter: @@ -445,8 +444,8 @@ public open class CfnApplicationReferenceDataSource( } /** - * For a SQL-based Managed Service for Apache Flink application, provides additional mapping - * information when JSON is the record format on the streaming source. + * For a SQL-based Kinesis Data Analytics application, provides additional mapping information + * when JSON is the record format on the streaming source. * * Example: * @@ -529,8 +528,8 @@ public open class CfnApplicationReferenceDataSource( } /** - * When you configure a SQL-based Managed Service for Apache Flink application's input at the time - * of creating or updating an application, provides additional mapping information specific to the + * When you configure a SQL-based Kinesis Data Analytics application's input at the time of + * creating or updating an application, provides additional mapping information specific to the * record format (such as JSON, CSV, or record fields delimited by some delimiter) on the streaming * source. * @@ -720,8 +719,8 @@ public open class CfnApplicationReferenceDataSource( } /** - * For a SQL-based Managed Service for Apache Flink application, describes the mapping of each - * data element in the streaming source to the corresponding column in the in-application stream. + * For a SQL-based Kinesis Data Analytics application, describes the mapping of each data element + * in the streaming source to the corresponding column in the in-application stream. * * Also used to describe the format of the reference data source. * @@ -867,8 +866,8 @@ public open class CfnApplicationReferenceDataSource( } /** - * For a SQL-based Managed Service for Apache Flink application, describes the record format and - * relevant mapping information that should be applied to schematize the records on the stream. + * For a SQL-based Kinesis Data Analytics application, describes the record format and relevant + * mapping information that should be applied to schematize the records on the stream. * * Example: * @@ -1030,10 +1029,10 @@ public open class CfnApplicationReferenceDataSource( } /** - * For a SQL-based Managed Service for Apache Flink application, describes the reference data - * source by providing the source information (Amazon S3 bucket name and object key name), the - * resulting in-application table name that is created, and the necessary schema to map the data - * elements in the Amazon S3 object to the in-application table. + * For a SQL-based Kinesis Data Analytics application, describes the reference data source by + * providing the source information (Amazon S3 bucket name and object key name), the resulting + * in-application table name that is created, and the necessary schema to map the data elements in + * the Amazon S3 object to the in-application table. * * Example: * @@ -1299,8 +1298,8 @@ public open class CfnApplicationReferenceDataSource( } /** - * For a SQL-based Managed Service for Apache Flink application, describes the format of the data - * in the streaming source, and how each data element maps to corresponding columns created in the + * For a SQL-based Kinesis Data Analytics application, describes the format of the data in the + * streaming source, and how each data element maps to corresponding columns created in the * in-application stream. * * Example: diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalyticsv2/CfnApplicationReferenceDataSourceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalyticsv2/CfnApplicationReferenceDataSourceProps.kt index 0008c837b0..4c78b86850 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalyticsv2/CfnApplicationReferenceDataSourceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisanalyticsv2/CfnApplicationReferenceDataSourceProps.kt @@ -68,10 +68,10 @@ public interface CfnApplicationReferenceDataSourceProps { public fun applicationName(): String /** - * For a SQL-based Managed Service for Apache Flink application, describes the reference data - * source by providing the source information (Amazon S3 bucket name and object key name), the - * resulting in-application table name that is created, and the necessary schema to map the data - * elements in the Amazon S3 object to the in-application table. + * For a SQL-based Kinesis Data Analytics application, describes the reference data source by + * providing the source information (Amazon S3 bucket name and object key name), the resulting + * in-application table name that is created, and the necessary schema to map the data elements in + * the Amazon S3 object to the in-application table. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource) */ @@ -88,27 +88,27 @@ public interface CfnApplicationReferenceDataSourceProps { public fun applicationName(applicationName: String) /** - * @param referenceDataSource For a SQL-based Managed Service for Apache Flink application, - * describes the reference data source by providing the source information (Amazon S3 bucket name - * and object key name), the resulting in-application table name that is created, and the necessary - * schema to map the data elements in the Amazon S3 object to the in-application table. + * @param referenceDataSource For a SQL-based Kinesis Data Analytics application, describes the + * reference data source by providing the source information (Amazon S3 bucket name and object key + * name), the resulting in-application table name that is created, and the necessary schema to map + * the data elements in the Amazon S3 object to the in-application table. */ public fun referenceDataSource(referenceDataSource: IResolvable) /** - * @param referenceDataSource For a SQL-based Managed Service for Apache Flink application, - * describes the reference data source by providing the source information (Amazon S3 bucket name - * and object key name), the resulting in-application table name that is created, and the necessary - * schema to map the data elements in the Amazon S3 object to the in-application table. + * @param referenceDataSource For a SQL-based Kinesis Data Analytics application, describes the + * reference data source by providing the source information (Amazon S3 bucket name and object key + * name), the resulting in-application table name that is created, and the necessary schema to map + * the data elements in the Amazon S3 object to the in-application table. */ public fun referenceDataSource(referenceDataSource: CfnApplicationReferenceDataSource.ReferenceDataSourceProperty) /** - * @param referenceDataSource For a SQL-based Managed Service for Apache Flink application, - * describes the reference data source by providing the source information (Amazon S3 bucket name - * and object key name), the resulting in-application table name that is created, and the necessary - * schema to map the data elements in the Amazon S3 object to the in-application table. + * @param referenceDataSource For a SQL-based Kinesis Data Analytics application, describes the + * reference data source by providing the source information (Amazon S3 bucket name and object key + * name), the resulting in-application table name that is created, and the necessary schema to map + * the data elements in the Amazon S3 object to the in-application table. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("973691c4852ea2f53c1aa4037855ba75c59e1f42a701fb36605bda2a6399c052") @@ -130,20 +130,20 @@ public interface CfnApplicationReferenceDataSourceProps { } /** - * @param referenceDataSource For a SQL-based Managed Service for Apache Flink application, - * describes the reference data source by providing the source information (Amazon S3 bucket name - * and object key name), the resulting in-application table name that is created, and the necessary - * schema to map the data elements in the Amazon S3 object to the in-application table. + * @param referenceDataSource For a SQL-based Kinesis Data Analytics application, describes the + * reference data source by providing the source information (Amazon S3 bucket name and object key + * name), the resulting in-application table name that is created, and the necessary schema to map + * the data elements in the Amazon S3 object to the in-application table. */ override fun referenceDataSource(referenceDataSource: IResolvable) { cdkBuilder.referenceDataSource(referenceDataSource.let(IResolvable::unwrap)) } /** - * @param referenceDataSource For a SQL-based Managed Service for Apache Flink application, - * describes the reference data source by providing the source information (Amazon S3 bucket name - * and object key name), the resulting in-application table name that is created, and the necessary - * schema to map the data elements in the Amazon S3 object to the in-application table. + * @param referenceDataSource For a SQL-based Kinesis Data Analytics application, describes the + * reference data source by providing the source information (Amazon S3 bucket name and object key + * name), the resulting in-application table name that is created, and the necessary schema to map + * the data elements in the Amazon S3 object to the in-application table. */ override fun referenceDataSource(referenceDataSource: CfnApplicationReferenceDataSource.ReferenceDataSourceProperty) { @@ -151,10 +151,10 @@ public interface CfnApplicationReferenceDataSourceProps { } /** - * @param referenceDataSource For a SQL-based Managed Service for Apache Flink application, - * describes the reference data source by providing the source information (Amazon S3 bucket name - * and object key name), the resulting in-application table name that is created, and the necessary - * schema to map the data elements in the Amazon S3 object to the in-application table. + * @param referenceDataSource For a SQL-based Kinesis Data Analytics application, describes the + * reference data source by providing the source information (Amazon S3 bucket name and object key + * name), the resulting in-application table name that is created, and the necessary schema to map + * the data elements in the Amazon S3 object to the in-application table. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("973691c4852ea2f53c1aa4037855ba75c59e1f42a701fb36605bda2a6399c052") @@ -179,10 +179,10 @@ public interface CfnApplicationReferenceDataSourceProps { override fun applicationName(): String = unwrap(this).getApplicationName() /** - * For a SQL-based Managed Service for Apache Flink application, describes the reference data - * source by providing the source information (Amazon S3 bucket name and object key name), the - * resulting in-application table name that is created, and the necessary schema to map the data - * elements in the Amazon S3 object to the in-application table. + * For a SQL-based Kinesis Data Analytics application, describes the reference data source by + * providing the source information (Amazon S3 bucket name and object key name), the resulting + * in-application table name that is created, and the necessary schema to map the data elements in + * the Amazon S3 object to the in-application table. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisfirehose/CfnDeliveryStream.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisfirehose/CfnDeliveryStream.kt index 757ac3a25a..0692570f42 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisfirehose/CfnDeliveryStream.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisfirehose/CfnDeliveryStream.kt @@ -1061,6 +1061,21 @@ public open class CfnDeliveryStream( * * You can specify up to 50 tags when creating a delivery stream. * + * If you specify tags in the `CreateDeliveryStream` action, Amazon Data Firehose performs an + * additional authorization on the `firehose:TagDeliveryStream` action to verify if users have + * permissions to create tags. If you do not provide this permission, requests to create new + * Firehose delivery streams with IAM resource tags will fail with an `AccessDeniedException` such + * as following. + * + * *AccessDeniedException* + * + * User: arn:aws:sts::x:assumed-role/x/x is not authorized to perform: + * firehose:TagDeliveryStream on resource: arn:aws:firehose:us-east-1:x:deliverystream/x with an + * explicit deny in an identity-based policy. + * + * For an example IAM policy, see [Tag + * example.](https://docs.aws.amazon.com/firehose/latest/APIReference/API_CreateDeliveryStream.html#API_CreateDeliveryStream_Examples) + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-tags) * @param tags A set of tags to assign to the delivery stream. */ @@ -1078,6 +1093,21 @@ public open class CfnDeliveryStream( * * You can specify up to 50 tags when creating a delivery stream. * + * If you specify tags in the `CreateDeliveryStream` action, Amazon Data Firehose performs an + * additional authorization on the `firehose:TagDeliveryStream` action to verify if users have + * permissions to create tags. If you do not provide this permission, requests to create new + * Firehose delivery streams with IAM resource tags will fail with an `AccessDeniedException` such + * as following. + * + * *AccessDeniedException* + * + * User: arn:aws:sts::x:assumed-role/x/x is not authorized to perform: + * firehose:TagDeliveryStream on resource: arn:aws:firehose:us-east-1:x:deliverystream/x with an + * explicit deny in an identity-based policy. + * + * For an example IAM policy, see [Tag + * example.](https://docs.aws.amazon.com/firehose/latest/APIReference/API_CreateDeliveryStream.html#API_CreateDeliveryStream_Examples) + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-tags) * @param tags A set of tags to assign to the delivery stream. */ @@ -1693,6 +1723,21 @@ public open class CfnDeliveryStream( * * You can specify up to 50 tags when creating a delivery stream. * + * If you specify tags in the `CreateDeliveryStream` action, Amazon Data Firehose performs an + * additional authorization on the `firehose:TagDeliveryStream` action to verify if users have + * permissions to create tags. If you do not provide this permission, requests to create new + * Firehose delivery streams with IAM resource tags will fail with an `AccessDeniedException` such + * as following. + * + * *AccessDeniedException* + * + * User: arn:aws:sts::x:assumed-role/x/x is not authorized to perform: + * firehose:TagDeliveryStream on resource: arn:aws:firehose:us-east-1:x:deliverystream/x with an + * explicit deny in an identity-based policy. + * + * For an example IAM policy, see [Tag + * example.](https://docs.aws.amazon.com/firehose/latest/APIReference/API_CreateDeliveryStream.html#API_CreateDeliveryStream_Examples) + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-tags) * @param tags A set of tags to assign to the delivery stream. */ @@ -1712,6 +1757,21 @@ public open class CfnDeliveryStream( * * You can specify up to 50 tags when creating a delivery stream. * + * If you specify tags in the `CreateDeliveryStream` action, Amazon Data Firehose performs an + * additional authorization on the `firehose:TagDeliveryStream` action to verify if users have + * permissions to create tags. If you do not provide this permission, requests to create new + * Firehose delivery streams with IAM resource tags will fail with an `AccessDeniedException` such + * as following. + * + * *AccessDeniedException* + * + * User: arn:aws:sts::x:assumed-role/x/x is not authorized to perform: + * firehose:TagDeliveryStream on resource: arn:aws:firehose:us-east-1:x:deliverystream/x with an + * explicit deny in an identity-based policy. + * + * For an example IAM policy, see [Tag + * example.](https://docs.aws.amazon.com/firehose/latest/APIReference/API_CreateDeliveryStream.html#API_CreateDeliveryStream_Examples) + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-tags) * @param tags A set of tags to assign to the delivery stream. */ @@ -10099,7 +10159,7 @@ public open class CfnDeliveryStream( * A serializer to use for converting data to the Parquet format before storing it in Amazon S3. * * For more information, see [Apache - * Parquet](https://docs.aws.amazon.com/https://parquet.apache.org/documentation/latest/) . + * Parquet](https://docs.aws.amazon.com/https://parquet.apache.org/docs/) . * * Example: * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisfirehose/CfnDeliveryStreamProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisfirehose/CfnDeliveryStreamProps.kt index 45400a4c9b..2fbeb265c8 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisfirehose/CfnDeliveryStreamProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kinesisfirehose/CfnDeliveryStreamProps.kt @@ -202,6 +202,21 @@ public interface CfnDeliveryStreamProps { * * You can specify up to 50 tags when creating a delivery stream. * + * If you specify tags in the `CreateDeliveryStream` action, Amazon Data Firehose performs an + * additional authorization on the `firehose:TagDeliveryStream` action to verify if users have + * permissions to create tags. If you do not provide this permission, requests to create new Firehose + * delivery streams with IAM resource tags will fail with an `AccessDeniedException` such as + * following. + * + * *AccessDeniedException* + * + * User: arn:aws:sts::x:assumed-role/x/x is not authorized to perform: firehose:TagDeliveryStream + * on resource: arn:aws:firehose:us-east-1:x:deliverystream/x with an explicit deny in an + * identity-based policy. + * + * For an example IAM policy, see [Tag + * example.](https://docs.aws.amazon.com/firehose/latest/APIReference/API_CreateDeliveryStream.html#API_CreateDeliveryStream_Examples) + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-tags) */ public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() @@ -583,6 +598,21 @@ public interface CfnDeliveryStreamProps { * AWS Billing and Cost Management User Guide. * * You can specify up to 50 tags when creating a delivery stream. + * + * If you specify tags in the `CreateDeliveryStream` action, Amazon Data Firehose performs an + * additional authorization on the `firehose:TagDeliveryStream` action to verify if users have + * permissions to create tags. If you do not provide this permission, requests to create new + * Firehose delivery streams with IAM resource tags will fail with an `AccessDeniedException` such + * as following. + * + * *AccessDeniedException* + * + * User: arn:aws:sts::x:assumed-role/x/x is not authorized to perform: + * firehose:TagDeliveryStream on resource: arn:aws:firehose:us-east-1:x:deliverystream/x with an + * explicit deny in an identity-based policy. + * + * For an example IAM policy, see [Tag + * example.](https://docs.aws.amazon.com/firehose/latest/APIReference/API_CreateDeliveryStream.html#API_CreateDeliveryStream_Examples) */ public fun tags(tags: List) @@ -596,6 +626,21 @@ public interface CfnDeliveryStreamProps { * AWS Billing and Cost Management User Guide. * * You can specify up to 50 tags when creating a delivery stream. + * + * If you specify tags in the `CreateDeliveryStream` action, Amazon Data Firehose performs an + * additional authorization on the `firehose:TagDeliveryStream` action to verify if users have + * permissions to create tags. If you do not provide this permission, requests to create new + * Firehose delivery streams with IAM resource tags will fail with an `AccessDeniedException` such + * as following. + * + * *AccessDeniedException* + * + * User: arn:aws:sts::x:assumed-role/x/x is not authorized to perform: + * firehose:TagDeliveryStream on resource: arn:aws:firehose:us-east-1:x:deliverystream/x with an + * explicit deny in an identity-based policy. + * + * For an example IAM policy, see [Tag + * example.](https://docs.aws.amazon.com/firehose/latest/APIReference/API_CreateDeliveryStream.html#API_CreateDeliveryStream_Examples) */ public fun tags(vararg tags: CfnTag) } @@ -1054,6 +1099,21 @@ public interface CfnDeliveryStreamProps { * AWS Billing and Cost Management User Guide. * * You can specify up to 50 tags when creating a delivery stream. + * + * If you specify tags in the `CreateDeliveryStream` action, Amazon Data Firehose performs an + * additional authorization on the `firehose:TagDeliveryStream` action to verify if users have + * permissions to create tags. If you do not provide this permission, requests to create new + * Firehose delivery streams with IAM resource tags will fail with an `AccessDeniedException` such + * as following. + * + * *AccessDeniedException* + * + * User: arn:aws:sts::x:assumed-role/x/x is not authorized to perform: + * firehose:TagDeliveryStream on resource: arn:aws:firehose:us-east-1:x:deliverystream/x with an + * explicit deny in an identity-based policy. + * + * For an example IAM policy, see [Tag + * example.](https://docs.aws.amazon.com/firehose/latest/APIReference/API_CreateDeliveryStream.html#API_CreateDeliveryStream_Examples) */ override fun tags(tags: List) { cdkBuilder.tags(tags.map(CfnTag::unwrap)) @@ -1069,6 +1129,21 @@ public interface CfnDeliveryStreamProps { * AWS Billing and Cost Management User Guide. * * You can specify up to 50 tags when creating a delivery stream. + * + * If you specify tags in the `CreateDeliveryStream` action, Amazon Data Firehose performs an + * additional authorization on the `firehose:TagDeliveryStream` action to verify if users have + * permissions to create tags. If you do not provide this permission, requests to create new + * Firehose delivery streams with IAM resource tags will fail with an `AccessDeniedException` such + * as following. + * + * *AccessDeniedException* + * + * User: arn:aws:sts::x:assumed-role/x/x is not authorized to perform: + * firehose:TagDeliveryStream on resource: arn:aws:firehose:us-east-1:x:deliverystream/x with an + * explicit deny in an identity-based policy. + * + * For an example IAM policy, see [Tag + * example.](https://docs.aws.amazon.com/firehose/latest/APIReference/API_CreateDeliveryStream.html#API_CreateDeliveryStream_Examples) */ override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) @@ -1240,6 +1315,21 @@ public interface CfnDeliveryStreamProps { * * You can specify up to 50 tags when creating a delivery stream. * + * If you specify tags in the `CreateDeliveryStream` action, Amazon Data Firehose performs an + * additional authorization on the `firehose:TagDeliveryStream` action to verify if users have + * permissions to create tags. If you do not provide this permission, requests to create new + * Firehose delivery streams with IAM resource tags will fail with an `AccessDeniedException` such + * as following. + * + * *AccessDeniedException* + * + * User: arn:aws:sts::x:assumed-role/x/x is not authorized to perform: + * firehose:TagDeliveryStream on resource: arn:aws:firehose:us-east-1:x:deliverystream/x with an + * explicit deny in an identity-based policy. + * + * For an example IAM policy, see [Tag + * example.](https://docs.aws.amazon.com/firehose/latest/APIReference/API_CreateDeliveryStream.html#API_CreateDeliveryStream_Examples) + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-tags) */ override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kms/CfnKey.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kms/CfnKey.kt index ddbc1100d8..0d86ef6a57 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kms/CfnKey.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kms/CfnKey.kt @@ -308,6 +308,18 @@ public open class CfnKey( unwrap(this).setPendingWindowInDays(`value`) } + /** + * The number of days between each automatic rotation. + */ + public open fun rotationPeriodInDays(): Number? = unwrap(this).getRotationPeriodInDays() + + /** + * The number of days between each automatic rotation. + */ + public open fun rotationPeriodInDays(`value`: Number) { + unwrap(this).setRotationPeriodInDays(`value`) + } + /** * Tag Manager which manages the tags for this resource. */ @@ -800,6 +812,18 @@ public open class CfnKey( */ public fun pendingWindowInDays(pendingWindowInDays: Number) + /** + * The number of days between each automatic rotation. + * + * The default value is 365 days. + * + * Default: - 365 + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html#cfn-kms-key-rotationperiodindays) + * @param rotationPeriodInDays The number of days between each automatic rotation. + */ + public fun rotationPeriodInDays(rotationPeriodInDays: Number) + /** * Assigns one or more tags to the replica key. * @@ -1340,6 +1364,20 @@ public open class CfnKey( cdkBuilder.pendingWindowInDays(pendingWindowInDays) } + /** + * The number of days between each automatic rotation. + * + * The default value is 365 days. + * + * Default: - 365 + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html#cfn-kms-key-rotationperiodindays) + * @param rotationPeriodInDays The number of days between each automatic rotation. + */ + override fun rotationPeriodInDays(rotationPeriodInDays: Number) { + cdkBuilder.rotationPeriodInDays(rotationPeriodInDays) + } + /** * Assigns one or more tags to the replica key. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kms/CfnKeyProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kms/CfnKeyProps.kt index 1b2e6f4409..32a3c0395d 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kms/CfnKeyProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kms/CfnKeyProps.kt @@ -35,6 +35,7 @@ import kotlin.collections.List * .multiRegion(false) * .origin("origin") * .pendingWindowInDays(123) + * .rotationPeriodInDays(123) * .tags(List.of(CfnTag.builder() * .key("key") * .value("value") @@ -365,6 +366,17 @@ public interface CfnKeyProps { */ public fun pendingWindowInDays(): Number? = unwrap(this).getPendingWindowInDays() + /** + * The number of days between each automatic rotation. + * + * The default value is 365 days. + * + * Default: - 365 + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html#cfn-kms-key-rotationperiodindays) + */ + public fun rotationPeriodInDays(): Number? = unwrap(this).getRotationPeriodInDays() + /** * Assigns one or more tags to the replica key. * @@ -775,6 +787,12 @@ public interface CfnKeyProps { */ public fun pendingWindowInDays(pendingWindowInDays: Number) + /** + * @param rotationPeriodInDays The number of days between each automatic rotation. + * The default value is 365 days. + */ + public fun rotationPeriodInDays(rotationPeriodInDays: Number) + /** * @param tags Assigns one or more tags to the replica key. * @@ -1226,6 +1244,14 @@ public interface CfnKeyProps { cdkBuilder.pendingWindowInDays(pendingWindowInDays) } + /** + * @param rotationPeriodInDays The number of days between each automatic rotation. + * The default value is 365 days. + */ + override fun rotationPeriodInDays(rotationPeriodInDays: Number) { + cdkBuilder.rotationPeriodInDays(rotationPeriodInDays) + } + /** * @param tags Assigns one or more tags to the replica key. * @@ -1591,6 +1617,17 @@ public interface CfnKeyProps { */ override fun pendingWindowInDays(): Number? = unwrap(this).getPendingWindowInDays() + /** + * The number of days between each automatic rotation. + * + * The default value is 365 days. + * + * Default: - 365 + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html#cfn-kms-key-rotationperiodindays) + */ + override fun rotationPeriodInDays(): Number? = unwrap(this).getRotationPeriodInDays() + /** * Assigns one or more tags to the replica key. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kms/Key.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kms/Key.kt index 881c10c4db..aa9aedda7d 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kms/Key.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/kms/Key.kt @@ -27,20 +27,16 @@ import software.constructs.Construct as SoftwareConstructsConstruct * Example: * * ``` - * Vpc vpc; - * IInstanceEngine engine = - * DatabaseInstanceEngine.postgres(PostgresInstanceEngineProps.builder().version(PostgresEngineVersion.VER_15_2).build()); - * Key myKey = new Key(this, "MyKey"); - * DatabaseInstance.Builder.create(this, "InstanceWithCustomizedSecret") - * .engine(engine) - * .vpc(vpc) - * .credentials(Credentials.fromGeneratedSecret("postgres", CredentialsBaseOptions.builder() - * .secretName("my-cool-name") - * .encryptionKey(myKey) - * .excludeCharacters("!&*^#@()") - * .replicaRegions(List.of(ReplicaRegion.builder().region("eu-west-1").build(), - * ReplicaRegion.builder().region("eu-west-2").build())) - * .build())) + * Bucket destinationBucket; + * IBucket sourceBucket = Bucket.fromBucketAttributes(this, "SourceBucket", + * BucketAttributes.builder() + * .bucketArn("arn:aws:s3:::my-source-bucket-name") + * .encryptionKey(Key.fromKeyArn(this, "SourceBucketEncryptionKey", + * "arn:aws:kms:us-east-1:123456789012:key/<key-id>")) + * .build()); + * BucketDeployment deployment = BucketDeployment.Builder.create(this, "DeployFiles") + * .sources(List.of(Source.bucket(sourceBucket, "source.zip"))) + * .destinationBucket(destinationBucket) * .build(); * ``` */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/CfnAlias.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/CfnAlias.kt index 51fd5abff4..670282c75c 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/CfnAlias.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/CfnAlias.kt @@ -73,6 +73,11 @@ public open class CfnAlias( ) : this(scope, id, CfnAliasProps(props) ) + /** + * Lambda Alias ARN generated by the service. + */ + public open fun attrAliasArn(): String = unwrap(this).getAttrAliasArn() + /** * */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/Runtime.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/Runtime.kt index 155a0dab99..f894cf8987 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/Runtime.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/Runtime.kt @@ -341,6 +341,9 @@ public open class Runtime( public val RUBY_3_2: Runtime = Runtime.wrap(software.amazon.awscdk.services.lambda.Runtime.RUBY_3_2) + public val RUBY_3_3: Runtime = + Runtime.wrap(software.amazon.awscdk.services.lambda.Runtime.RUBY_3_3) + public operator fun invoke( name: String, family: RuntimeFamily, diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/eventsources/DynamoEventSource.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/eventsources/DynamoEventSource.kt index c79f61e218..3003c6800d 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/eventsources/DynamoEventSource.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/eventsources/DynamoEventSource.kt @@ -158,7 +158,11 @@ public open class DynamoEventSource( * * Minimum value of 60 seconds * * Maximum value of 7 days * - * Default: - the retention period configured on the stream + * The default value is -1, which sets the maximum age to infinite. + * When the value is set to infinite, Lambda never discards old records. + * Record are valid until it expires in the event source. + * + * Default: -1 * * @param maxRecordAge The maximum age of a record that Lambda sends to a function for * processing. @@ -202,7 +206,11 @@ public open class DynamoEventSource( /** * Maximum number of retry attempts Valid Range: * Minimum value of 0 * Maximum value of 10000. * - * Default: - retry until the record expires + * The default value is -1, which sets the maximum number of retries to infinite. + * When MaximumRetryAttempts is infinite, Lambda retries failed records until + * the record expires in the event source. + * + * Default: -1 * * @param retryAttempts Maximum number of retry attempts Valid Range: * Minimum value of 0 * * Maximum value of 10000. @@ -327,7 +335,11 @@ public open class DynamoEventSource( * * Minimum value of 60 seconds * * Maximum value of 7 days * - * Default: - the retention period configured on the stream + * The default value is -1, which sets the maximum age to infinite. + * When the value is set to infinite, Lambda never discards old records. + * Record are valid until it expires in the event source. + * + * Default: -1 * * @param maxRecordAge The maximum age of a record that Lambda sends to a function for * processing. @@ -379,7 +391,11 @@ public open class DynamoEventSource( /** * Maximum number of retry attempts Valid Range: * Minimum value of 0 * Maximum value of 10000. * - * Default: - retry until the record expires + * The default value is -1, which sets the maximum number of retries to infinite. + * When MaximumRetryAttempts is infinite, Lambda retries failed records until + * the record expires in the event source. + * + * Default: -1 * * @param retryAttempts Maximum number of retry attempts Valid Range: * Minimum value of 0 * * Maximum value of 10000. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/eventsources/DynamoEventSourceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/eventsources/DynamoEventSourceProps.kt index c03b9af945..4a5510fbbe 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/eventsources/DynamoEventSourceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/eventsources/DynamoEventSourceProps.kt @@ -92,6 +92,10 @@ public interface DynamoEventSourceProps : StreamEventSourceProps { * * * Minimum value of 60 seconds * * Maximum value of 7 days + * + * The default value is -1, which sets the maximum age to infinite. + * When the value is set to infinite, Lambda never discards old records. + * Record are valid until it expires in the event source. */ public fun maxRecordAge(maxRecordAge: Duration) @@ -118,6 +122,9 @@ public interface DynamoEventSourceProps : StreamEventSourceProps { /** * @param retryAttempts Maximum number of retry attempts Valid Range: * Minimum value of 0 * * Maximum value of 10000. + * The default value is -1, which sets the maximum number of retries to infinite. + * When MaximumRetryAttempts is infinite, Lambda retries failed records until + * the record expires in the event source. */ public fun retryAttempts(retryAttempts: Number) @@ -198,6 +205,10 @@ public interface DynamoEventSourceProps : StreamEventSourceProps { * * * Minimum value of 60 seconds * * Maximum value of 7 days + * + * The default value is -1, which sets the maximum age to infinite. + * When the value is set to infinite, Lambda never discards old records. + * Record are valid until it expires in the event source. */ override fun maxRecordAge(maxRecordAge: Duration) { cdkBuilder.maxRecordAge(maxRecordAge.let(Duration::unwrap)) @@ -232,6 +243,9 @@ public interface DynamoEventSourceProps : StreamEventSourceProps { /** * @param retryAttempts Maximum number of retry attempts Valid Range: * Minimum value of 0 * * Maximum value of 10000. + * The default value is -1, which sets the maximum number of retries to infinite. + * When MaximumRetryAttempts is infinite, Lambda retries failed records until + * the record expires in the event source. */ override fun retryAttempts(retryAttempts: Number) { cdkBuilder.retryAttempts(retryAttempts) @@ -321,7 +335,11 @@ public interface DynamoEventSourceProps : StreamEventSourceProps { * * Minimum value of 60 seconds * * Maximum value of 7 days * - * Default: - the retention period configured on the stream + * The default value is -1, which sets the maximum age to infinite. + * When the value is set to infinite, Lambda never discards old records. + * Record are valid until it expires in the event source. + * + * Default: -1 */ override fun maxRecordAge(): Duration? = unwrap(this).getMaxRecordAge()?.let(Duration::wrap) @@ -357,7 +375,11 @@ public interface DynamoEventSourceProps : StreamEventSourceProps { /** * Maximum number of retry attempts Valid Range: * Minimum value of 0 * Maximum value of 10000. * - * Default: - retry until the record expires + * The default value is -1, which sets the maximum number of retries to infinite. + * When MaximumRetryAttempts is infinite, Lambda retries failed records until + * the record expires in the event source. + * + * Default: -1 */ override fun retryAttempts(): Number? = unwrap(this).getRetryAttempts() diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/eventsources/KinesisEventSource.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/eventsources/KinesisEventSource.kt index 11f5a41932..0fb38dba15 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/eventsources/KinesisEventSource.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/eventsources/KinesisEventSource.kt @@ -159,7 +159,11 @@ public open class KinesisEventSource( * * Minimum value of 60 seconds * * Maximum value of 7 days * - * Default: - the retention period configured on the stream + * The default value is -1, which sets the maximum age to infinite. + * When the value is set to infinite, Lambda never discards old records. + * Record are valid until it expires in the event source. + * + * Default: -1 * * @param maxRecordAge The maximum age of a record that Lambda sends to a function for * processing. @@ -203,7 +207,11 @@ public open class KinesisEventSource( /** * Maximum number of retry attempts Valid Range: * Minimum value of 0 * Maximum value of 10000. * - * Default: - retry until the record expires + * The default value is -1, which sets the maximum number of retries to infinite. + * When MaximumRetryAttempts is infinite, Lambda retries failed records until + * the record expires in the event source. + * + * Default: -1 * * @param retryAttempts Maximum number of retry attempts Valid Range: * Minimum value of 0 * * Maximum value of 10000. @@ -337,7 +345,11 @@ public open class KinesisEventSource( * * Minimum value of 60 seconds * * Maximum value of 7 days * - * Default: - the retention period configured on the stream + * The default value is -1, which sets the maximum age to infinite. + * When the value is set to infinite, Lambda never discards old records. + * Record are valid until it expires in the event source. + * + * Default: -1 * * @param maxRecordAge The maximum age of a record that Lambda sends to a function for * processing. @@ -389,7 +401,11 @@ public open class KinesisEventSource( /** * Maximum number of retry attempts Valid Range: * Minimum value of 0 * Maximum value of 10000. * - * Default: - retry until the record expires + * The default value is -1, which sets the maximum number of retries to infinite. + * When MaximumRetryAttempts is infinite, Lambda retries failed records until + * the record expires in the event source. + * + * Default: -1 * * @param retryAttempts Maximum number of retry attempts Valid Range: * Minimum value of 0 * * Maximum value of 10000. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/eventsources/KinesisEventSourceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/eventsources/KinesisEventSourceProps.kt index 81e4ba9b4d..2124f4f427 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/eventsources/KinesisEventSourceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/eventsources/KinesisEventSourceProps.kt @@ -93,6 +93,10 @@ public interface KinesisEventSourceProps : StreamEventSourceProps { * * * Minimum value of 60 seconds * * Maximum value of 7 days + * + * The default value is -1, which sets the maximum age to infinite. + * When the value is set to infinite, Lambda never discards old records. + * Record are valid until it expires in the event source. */ public fun maxRecordAge(maxRecordAge: Duration) @@ -119,6 +123,9 @@ public interface KinesisEventSourceProps : StreamEventSourceProps { /** * @param retryAttempts Maximum number of retry attempts Valid Range: * Minimum value of 0 * * Maximum value of 10000. + * The default value is -1, which sets the maximum number of retries to infinite. + * When MaximumRetryAttempts is infinite, Lambda retries failed records until + * the record expires in the event source. */ public fun retryAttempts(retryAttempts: Number) @@ -204,6 +211,10 @@ public interface KinesisEventSourceProps : StreamEventSourceProps { * * * Minimum value of 60 seconds * * Maximum value of 7 days + * + * The default value is -1, which sets the maximum age to infinite. + * When the value is set to infinite, Lambda never discards old records. + * Record are valid until it expires in the event source. */ override fun maxRecordAge(maxRecordAge: Duration) { cdkBuilder.maxRecordAge(maxRecordAge.let(Duration::unwrap)) @@ -238,6 +249,9 @@ public interface KinesisEventSourceProps : StreamEventSourceProps { /** * @param retryAttempts Maximum number of retry attempts Valid Range: * Minimum value of 0 * * Maximum value of 10000. + * The default value is -1, which sets the maximum number of retries to infinite. + * When MaximumRetryAttempts is infinite, Lambda retries failed records until + * the record expires in the event source. */ override fun retryAttempts(retryAttempts: Number) { cdkBuilder.retryAttempts(retryAttempts) @@ -334,7 +348,11 @@ public interface KinesisEventSourceProps : StreamEventSourceProps { * * Minimum value of 60 seconds * * Maximum value of 7 days * - * Default: - the retention period configured on the stream + * The default value is -1, which sets the maximum age to infinite. + * When the value is set to infinite, Lambda never discards old records. + * Record are valid until it expires in the event source. + * + * Default: -1 */ override fun maxRecordAge(): Duration? = unwrap(this).getMaxRecordAge()?.let(Duration::wrap) @@ -370,7 +388,11 @@ public interface KinesisEventSourceProps : StreamEventSourceProps { /** * Maximum number of retry attempts Valid Range: * Minimum value of 0 * Maximum value of 10000. * - * Default: - retry until the record expires + * The default value is -1, which sets the maximum number of retries to infinite. + * When MaximumRetryAttempts is infinite, Lambda retries failed records until + * the record expires in the event source. + * + * Default: -1 */ override fun retryAttempts(): Number? = unwrap(this).getRetryAttempts() diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/eventsources/SelfManagedKafkaEventSourceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/eventsources/SelfManagedKafkaEventSourceProps.kt index 67548e9e7f..521c1765e7 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/eventsources/SelfManagedKafkaEventSourceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/eventsources/SelfManagedKafkaEventSourceProps.kt @@ -74,7 +74,7 @@ public interface SelfManagedKafkaEventSourceProps : KafkaEventSourceProps { * * Default: - none */ - public fun rootCaCertificate(): ISecret? = unwrap(this).getRootCACertificate()?.let(ISecret::wrap) + public fun rootCACertificate(): ISecret? = unwrap(this).getRootCACertificate()?.let(ISecret::wrap) /** * If your Kafka brokers are only reachable via VPC, provide the security group here. @@ -492,7 +492,7 @@ public interface SelfManagedKafkaEventSourceProps : KafkaEventSourceProps { * * Default: - none */ - override fun rootCaCertificate(): ISecret? = + override fun rootCACertificate(): ISecret? = unwrap(this).getRootCACertificate()?.let(ISecret::wrap) /** diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/eventsources/StreamEventSourceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/eventsources/StreamEventSourceProps.kt index 8c64d9af78..fe61e3ea63 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/eventsources/StreamEventSourceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/eventsources/StreamEventSourceProps.kt @@ -70,7 +70,11 @@ public interface StreamEventSourceProps : BaseStreamEventSourceProps { * * Minimum value of 60 seconds * * Maximum value of 7 days * - * Default: - the retention period configured on the stream + * The default value is -1, which sets the maximum age to infinite. + * When the value is set to infinite, Lambda never discards old records. + * Record are valid until it expires in the event source. + * + * Default: -1 */ public fun maxRecordAge(): Duration? = unwrap(this).getMaxRecordAge()?.let(Duration::wrap) @@ -105,7 +109,11 @@ public interface StreamEventSourceProps : BaseStreamEventSourceProps { /** * Maximum number of retry attempts Valid Range: * Minimum value of 0 * Maximum value of 10000. * - * Default: - retry until the record expires + * The default value is -1, which sets the maximum number of retries to infinite. + * When MaximumRetryAttempts is infinite, Lambda retries failed records until + * the record expires in the event source. + * + * Default: -1 */ public fun retryAttempts(): Number? = unwrap(this).getRetryAttempts() @@ -172,6 +180,10 @@ public interface StreamEventSourceProps : BaseStreamEventSourceProps { * * * Minimum value of 60 seconds * * Maximum value of 7 days + * + * The default value is -1, which sets the maximum age to infinite. + * When the value is set to infinite, Lambda never discards old records. + * Record are valid until it expires in the event source. */ public fun maxRecordAge(maxRecordAge: Duration) @@ -198,6 +210,9 @@ public interface StreamEventSourceProps : BaseStreamEventSourceProps { /** * @param retryAttempts Maximum number of retry attempts Valid Range: * Minimum value of 0 * * Maximum value of 10000. + * The default value is -1, which sets the maximum number of retries to infinite. + * When MaximumRetryAttempts is infinite, Lambda retries failed records until + * the record expires in the event source. */ public fun retryAttempts(retryAttempts: Number) @@ -278,6 +293,10 @@ public interface StreamEventSourceProps : BaseStreamEventSourceProps { * * * Minimum value of 60 seconds * * Maximum value of 7 days + * + * The default value is -1, which sets the maximum age to infinite. + * When the value is set to infinite, Lambda never discards old records. + * Record are valid until it expires in the event source. */ override fun maxRecordAge(maxRecordAge: Duration) { cdkBuilder.maxRecordAge(maxRecordAge.let(Duration::unwrap)) @@ -312,6 +331,9 @@ public interface StreamEventSourceProps : BaseStreamEventSourceProps { /** * @param retryAttempts Maximum number of retry attempts Valid Range: * Minimum value of 0 * * Maximum value of 10000. + * The default value is -1, which sets the maximum number of retries to infinite. + * When MaximumRetryAttempts is infinite, Lambda retries failed records until + * the record expires in the event source. */ override fun retryAttempts(retryAttempts: Number) { cdkBuilder.retryAttempts(retryAttempts) @@ -401,7 +423,11 @@ public interface StreamEventSourceProps : BaseStreamEventSourceProps { * * Minimum value of 60 seconds * * Maximum value of 7 days * - * Default: - the retention period configured on the stream + * The default value is -1, which sets the maximum age to infinite. + * When the value is set to infinite, Lambda never discards old records. + * Record are valid until it expires in the event source. + * + * Default: -1 */ override fun maxRecordAge(): Duration? = unwrap(this).getMaxRecordAge()?.let(Duration::wrap) @@ -437,7 +463,11 @@ public interface StreamEventSourceProps : BaseStreamEventSourceProps { /** * Maximum number of retry attempts Valid Range: * Minimum value of 0 * Maximum value of 10000. * - * Default: - retry until the record expires + * The default value is -1, which sets the maximum number of retries to infinite. + * When MaximumRetryAttempts is infinite, Lambda retries failed records until + * the record expires in the event source. + * + * Default: -1 */ override fun retryAttempts(): Number? = unwrap(this).getRetryAttempts() diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/nodejs/BundlingOptions.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/nodejs/BundlingOptions.kt index 27f8a9d0ac..63cd326249 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/nodejs/BundlingOptions.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/lambda/nodejs/BundlingOptions.kt @@ -72,7 +72,7 @@ public interface BundlingOptions : DockerRunOptions { * if `true` the `aws-sdk` will be included in the asset bundle and not be * resolved to the Lambda provided sdk. */ - public fun bundleAwsSdk(): Boolean? = unwrap(this).getBundleAwsSDK() + public fun bundleAwsSDK(): Boolean? = unwrap(this).getBundleAwsSDK() /** * Which option to use to copy the source files to the docker container and output files back. @@ -1198,7 +1198,7 @@ public interface BundlingOptions : DockerRunOptions { * if `true` the `aws-sdk` will be included in the asset bundle and not be * resolved to the Lambda provided sdk. */ - override fun bundleAwsSdk(): Boolean? = unwrap(this).getBundleAwsSDK() + override fun bundleAwsSDK(): Boolean? = unwrap(this).getBundleAwsSDK() /** * Which option to use to copy the source files to the docker container and output files back. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/managedblockchain/CfnNode.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/managedblockchain/CfnNode.kt index f8d5f8e516..c7d8cd2402 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/managedblockchain/CfnNode.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/managedblockchain/CfnNode.kt @@ -162,7 +162,6 @@ public open class CfnNode( * Ethereum public networks have the following `NetworkId` s: * * * `n-ethereum-mainnet` - * * `n-ethereum-goerli` * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-managedblockchain-node.html#cfn-managedblockchain-node-networkid) * @param networkId The unique identifier of the network for the node. @@ -221,7 +220,6 @@ public open class CfnNode( * Ethereum public networks have the following `NetworkId` s: * * * `n-ethereum-mainnet` - * * `n-ethereum-goerli` * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-managedblockchain-node.html#cfn-managedblockchain-node-networkid) * @param networkId The unique identifier of the network for the node. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/managedblockchain/CfnNodeProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/managedblockchain/CfnNodeProps.kt index 8ba6b67fe8..ab26fcd0d5 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/managedblockchain/CfnNodeProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/managedblockchain/CfnNodeProps.kt @@ -49,7 +49,6 @@ public interface CfnNodeProps { * Ethereum public networks have the following `NetworkId` s: * * * `n-ethereum-mainnet` - * * `n-ethereum-goerli` * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-managedblockchain-node.html#cfn-managedblockchain-node-networkid) */ @@ -78,7 +77,6 @@ public interface CfnNodeProps { * Ethereum public networks have the following `NetworkId` s: * * * `n-ethereum-mainnet` - * * `n-ethereum-goerli` */ public fun networkId(networkId: String) @@ -118,7 +116,6 @@ public interface CfnNodeProps { * Ethereum public networks have the following `NetworkId` s: * * * `n-ethereum-mainnet` - * * `n-ethereum-goerli` */ override fun networkId(networkId: String) { cdkBuilder.networkId(networkId) @@ -169,7 +166,6 @@ public interface CfnNodeProps { * Ethereum public networks have the following `NetworkId` s: * * * `n-ethereum-mainnet` - * * `n-ethereum-goerli` * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-managedblockchain-node.html#cfn-managedblockchain-node-networkid) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/mediaconvert/CfnJobTemplate.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/mediaconvert/CfnJobTemplate.kt index a35ffa6df1..c87b5af415 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/mediaconvert/CfnJobTemplate.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/mediaconvert/CfnJobTemplate.kt @@ -406,6 +406,23 @@ public open class CfnJobTemplate( */ public fun queue(queue: String) + /** + * Specify, in JSON format, the transcoding job settings for this job template. + * + * This specification must conform to the AWS Elemental MediaConvert job validation. For + * information about forming this specification, see the Remarks section later in this topic. + * + * For more information about MediaConvert job templates, see [Working with AWS Elemental + * MediaConvert Job + * Templates](https://docs.aws.amazon.com/mediaconvert/latest/ug/working-with-job-templates.html) + * in the ** . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-jobtemplate.html#cfn-mediaconvert-jobtemplate-settingsjson) + * @param settingsJson Specify, in JSON format, the transcoding job settings for this job + * template. + */ + public fun settingsJson(settingsJson: Any) + /** * Specify how often MediaConvert sends STATUS_UPDATE events to Amazon CloudWatch Events. * @@ -462,23 +479,6 @@ public open class CfnJobTemplate( * @param tags An array of key-value pairs to apply to this resource. */ public fun tags(tags: Any) - - /** - * Specify, in JSON format, the transcoding job settings for this job template. - * - * This specification must conform to the AWS Elemental MediaConvert job validation. For - * information about forming this specification, see the Remarks section later in this topic. - * - * For more information about MediaConvert job templates, see [Working with AWS Elemental - * MediaConvert Job - * Templates](https://docs.aws.amazon.com/mediaconvert/latest/ug/working-with-job-templates.html) - * in the ** . - * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-jobtemplate.html#cfn-mediaconvert-jobtemplate-settingsjson) - * @param settingsJson Specify, in JSON format, the transcoding job settings for this job - * template. - */ - public fun tingsJson(settingsJson: Any) } private class BuilderImpl( @@ -649,6 +649,25 @@ public open class CfnJobTemplate( cdkBuilder.queue(queue) } + /** + * Specify, in JSON format, the transcoding job settings for this job template. + * + * This specification must conform to the AWS Elemental MediaConvert job validation. For + * information about forming this specification, see the Remarks section later in this topic. + * + * For more information about MediaConvert job templates, see [Working with AWS Elemental + * MediaConvert Job + * Templates](https://docs.aws.amazon.com/mediaconvert/latest/ug/working-with-job-templates.html) + * in the ** . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-jobtemplate.html#cfn-mediaconvert-jobtemplate-settingsjson) + * @param settingsJson Specify, in JSON format, the transcoding job settings for this job + * template. + */ + override fun settingsJson(settingsJson: Any) { + cdkBuilder.settingsJson(settingsJson) + } + /** * Specify how often MediaConvert sends STATUS_UPDATE events to Amazon CloudWatch Events. * @@ -710,25 +729,6 @@ public open class CfnJobTemplate( cdkBuilder.tags(tags) } - /** - * Specify, in JSON format, the transcoding job settings for this job template. - * - * This specification must conform to the AWS Elemental MediaConvert job validation. For - * information about forming this specification, see the Remarks section later in this topic. - * - * For more information about MediaConvert job templates, see [Working with AWS Elemental - * MediaConvert Job - * Templates](https://docs.aws.amazon.com/mediaconvert/latest/ug/working-with-job-templates.html) - * in the ** . - * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-jobtemplate.html#cfn-mediaconvert-jobtemplate-settingsjson) - * @param settingsJson Specify, in JSON format, the transcoding job settings for this job - * template. - */ - override fun tingsJson(settingsJson: Any) { - cdkBuilder.settingsJson(settingsJson) - } - public fun build(): software.amazon.awscdk.services.mediaconvert.CfnJobTemplate = cdkBuilder.build() } diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/mediaconvert/CfnJobTemplateProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/mediaconvert/CfnJobTemplateProps.kt index c16eb1f531..6a2a89bd79 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/mediaconvert/CfnJobTemplateProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/mediaconvert/CfnJobTemplateProps.kt @@ -293,6 +293,19 @@ public interface CfnJobTemplateProps { */ public fun queue(queue: String) + /** + * @param settingsJson Specify, in JSON format, the transcoding job settings for this job + * template. + * This specification must conform to the AWS Elemental MediaConvert job validation. For + * information about forming this specification, see the Remarks section later in this topic. + * + * For more information about MediaConvert job templates, see [Working with AWS Elemental + * MediaConvert Job + * Templates](https://docs.aws.amazon.com/mediaconvert/latest/ug/working-with-job-templates.html) + * in the ** . + */ + public fun settingsJson(settingsJson: Any) + /** * @param statusUpdateInterval Specify how often MediaConvert sends STATUS_UPDATE events to * Amazon CloudWatch Events. @@ -341,19 +354,6 @@ public interface CfnJobTemplateProps { * . */ public fun tags(tags: Any) - - /** - * @param settingsJson Specify, in JSON format, the transcoding job settings for this job - * template. - * This specification must conform to the AWS Elemental MediaConvert job validation. For - * information about forming this specification, see the Remarks section later in this topic. - * - * For more information about MediaConvert job templates, see [Working with AWS Elemental - * MediaConvert Job - * Templates](https://docs.aws.amazon.com/mediaconvert/latest/ug/working-with-job-templates.html) - * in the ** . - */ - public fun tingsJson(settingsJson: Any) } private class BuilderImpl : Builder { @@ -480,6 +480,21 @@ public interface CfnJobTemplateProps { cdkBuilder.queue(queue) } + /** + * @param settingsJson Specify, in JSON format, the transcoding job settings for this job + * template. + * This specification must conform to the AWS Elemental MediaConvert job validation. For + * information about forming this specification, see the Remarks section later in this topic. + * + * For more information about MediaConvert job templates, see [Working with AWS Elemental + * MediaConvert Job + * Templates](https://docs.aws.amazon.com/mediaconvert/latest/ug/working-with-job-templates.html) + * in the ** . + */ + override fun settingsJson(settingsJson: Any) { + cdkBuilder.settingsJson(settingsJson) + } + /** * @param statusUpdateInterval Specify how often MediaConvert sends STATUS_UPDATE events to * Amazon CloudWatch Events. @@ -533,21 +548,6 @@ public interface CfnJobTemplateProps { cdkBuilder.tags(tags) } - /** - * @param settingsJson Specify, in JSON format, the transcoding job settings for this job - * template. - * This specification must conform to the AWS Elemental MediaConvert job validation. For - * information about forming this specification, see the Remarks section later in this topic. - * - * For more information about MediaConvert job templates, see [Working with AWS Elemental - * MediaConvert Job - * Templates](https://docs.aws.amazon.com/mediaconvert/latest/ug/working-with-job-templates.html) - * in the ** . - */ - override fun tingsJson(settingsJson: Any) { - cdkBuilder.settingsJson(settingsJson) - } - public fun build(): software.amazon.awscdk.services.mediaconvert.CfnJobTemplateProps = cdkBuilder.build() } diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/mediaconvert/CfnPreset.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/mediaconvert/CfnPreset.kt index 4499ccaf10..d8cce2163e 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/mediaconvert/CfnPreset.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/mediaconvert/CfnPreset.kt @@ -185,18 +185,6 @@ public open class CfnPreset( */ public fun name(name: String) - /** - * An array of key-value pairs to apply to this resource. - * - * For more information, see - * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) - * . - * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-preset.html#cfn-mediaconvert-preset-tags) - * @param tags An array of key-value pairs to apply to this resource. - */ - public fun tags(tags: Any) - /** * Specify, in JSON format, the transcoding job settings for this output preset. * @@ -212,7 +200,19 @@ public open class CfnPreset( * @param settingsJson Specify, in JSON format, the transcoding job settings for this output * preset. */ - public fun tingsJson(settingsJson: Any) + public fun settingsJson(settingsJson: Any) + + /** + * An array of key-value pairs to apply to this resource. + * + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-preset.html#cfn-mediaconvert-preset-tags) + * @param tags An array of key-value pairs to apply to this resource. + */ + public fun tags(tags: Any) } private class BuilderImpl( @@ -252,20 +252,6 @@ public open class CfnPreset( cdkBuilder.name(name) } - /** - * An array of key-value pairs to apply to this resource. - * - * For more information, see - * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) - * . - * - * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-preset.html#cfn-mediaconvert-preset-tags) - * @param tags An array of key-value pairs to apply to this resource. - */ - override fun tags(tags: Any) { - cdkBuilder.tags(tags) - } - /** * Specify, in JSON format, the transcoding job settings for this output preset. * @@ -281,10 +267,24 @@ public open class CfnPreset( * @param settingsJson Specify, in JSON format, the transcoding job settings for this output * preset. */ - override fun tingsJson(settingsJson: Any) { + override fun settingsJson(settingsJson: Any) { cdkBuilder.settingsJson(settingsJson) } + /** + * An array of key-value pairs to apply to this resource. + * + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-preset.html#cfn-mediaconvert-preset-tags) + * @param tags An array of key-value pairs to apply to this resource. + */ + override fun tags(tags: Any) { + cdkBuilder.tags(tags) + } + public fun build(): software.amazon.awscdk.services.mediaconvert.CfnPreset = cdkBuilder.build() } diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/mediaconvert/CfnPresetProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/mediaconvert/CfnPresetProps.kt index 812759034e..926d4bfd2b 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/mediaconvert/CfnPresetProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/mediaconvert/CfnPresetProps.kt @@ -99,14 +99,6 @@ public interface CfnPresetProps { */ public fun name(name: String) - /** - * @param tags An array of key-value pairs to apply to this resource. - * For more information, see - * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) - * . - */ - public fun tags(tags: Any) - /** * @param settingsJson Specify, in JSON format, the transcoding job settings for this output * preset. @@ -118,7 +110,15 @@ public interface CfnPresetProps { * Presets](https://docs.aws.amazon.com/mediaconvert/latest/ug/working-with-presets.html) in the ** * . */ - public fun tingsJson(settingsJson: Any) + public fun settingsJson(settingsJson: Any) + + /** + * @param tags An array of key-value pairs to apply to this resource. + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) + * . + */ + public fun tags(tags: Any) } private class BuilderImpl : Builder { @@ -146,16 +146,6 @@ public interface CfnPresetProps { cdkBuilder.name(name) } - /** - * @param tags An array of key-value pairs to apply to this resource. - * For more information, see - * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) - * . - */ - override fun tags(tags: Any) { - cdkBuilder.tags(tags) - } - /** * @param settingsJson Specify, in JSON format, the transcoding job settings for this output * preset. @@ -167,10 +157,20 @@ public interface CfnPresetProps { * Presets](https://docs.aws.amazon.com/mediaconvert/latest/ug/working-with-presets.html) in the ** * . */ - override fun tingsJson(settingsJson: Any) { + override fun settingsJson(settingsJson: Any) { cdkBuilder.settingsJson(settingsJson) } + /** + * @param tags An array of key-value pairs to apply to this resource. + * For more information, see + * [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) + * . + */ + override fun tags(tags: Any) { + cdkBuilder.tags(tags) + } + public fun build(): software.amazon.awscdk.services.mediaconvert.CfnPresetProps = cdkBuilder.build() } diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/medialive/CfnChannel.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/medialive/CfnChannel.kt index 89804e8702..30d17f82d2 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/medialive/CfnChannel.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/medialive/CfnChannel.kt @@ -32363,17 +32363,17 @@ public open class CfnChannel( /** * @param settings The destination settings for an output. */ - public fun tings(settings: IResolvable) + public fun settings(settings: IResolvable) /** * @param settings The destination settings for an output. */ - public fun tings(settings: List) + public fun settings(settings: List) /** * @param settings The destination settings for an output. */ - public fun tings(vararg settings: Any) + public fun settings(vararg settings: Any) } private class BuilderImpl : Builder { @@ -32439,21 +32439,21 @@ public open class CfnChannel( /** * @param settings The destination settings for an output. */ - override fun tings(settings: IResolvable) { + override fun settings(settings: IResolvable) { cdkBuilder.settings(settings.let(IResolvable::unwrap)) } /** * @param settings The destination settings for an output. */ - override fun tings(settings: List) { + override fun settings(settings: List) { cdkBuilder.settings(settings.map{CdkObjectWrappers.unwrap(it)}) } /** * @param settings The destination settings for an output. */ - override fun tings(vararg settings: Any): Unit = tings(settings.toList()) + override fun settings(vararg settings: Any): Unit = settings(settings.toList()) public fun build(): software.amazon.awscdk.services.medialive.CfnChannel.OutputDestinationProperty = @@ -37169,7 +37169,7 @@ public open class CfnChannel( * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-standardhlssettings.html#cfn-medialive-channel-standardhlssettings-m3u8settings) */ - public fun m3u8Settings(): Any? = unwrap(this).getM3U8Settings() + public fun m3U8Settings(): Any? = unwrap(this).getM3U8Settings() /** * A builder for [StandardHlsSettingsProperty] @@ -37187,19 +37187,19 @@ public open class CfnChannel( /** * @param m3U8Settings Settings for the M3U8 container. */ - public fun m3u8Settings(m3U8Settings: IResolvable) + public fun m3U8Settings(m3U8Settings: IResolvable) /** * @param m3U8Settings Settings for the M3U8 container. */ - public fun m3u8Settings(m3U8Settings: M3u8SettingsProperty) + public fun m3U8Settings(m3U8Settings: M3u8SettingsProperty) /** * @param m3U8Settings Settings for the M3U8 container. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("38b5e11b940a0f49b93bfecfb05e7fe43fe5e9e271d6f17adb9f58c531eef318") - public fun m3u8Settings(m3U8Settings: M3u8SettingsProperty.Builder.() -> Unit) + @JvmName("ed91af366c64c0492810f6a8a94c76563177ab5ba00b44813ddb3e791afb5187") + public fun m3U8Settings(m3U8Settings: M3u8SettingsProperty.Builder.() -> Unit) } private class BuilderImpl : Builder { @@ -37220,14 +37220,14 @@ public open class CfnChannel( /** * @param m3U8Settings Settings for the M3U8 container. */ - override fun m3u8Settings(m3U8Settings: IResolvable) { + override fun m3U8Settings(m3U8Settings: IResolvable) { cdkBuilder.m3U8Settings(m3U8Settings.let(IResolvable::unwrap)) } /** * @param m3U8Settings Settings for the M3U8 container. */ - override fun m3u8Settings(m3U8Settings: M3u8SettingsProperty) { + override fun m3U8Settings(m3U8Settings: M3u8SettingsProperty) { cdkBuilder.m3U8Settings(m3U8Settings.let(M3u8SettingsProperty::unwrap)) } @@ -37235,9 +37235,9 @@ public open class CfnChannel( * @param m3U8Settings Settings for the M3U8 container. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("38b5e11b940a0f49b93bfecfb05e7fe43fe5e9e271d6f17adb9f58c531eef318") - override fun m3u8Settings(m3U8Settings: M3u8SettingsProperty.Builder.() -> Unit): Unit = - m3u8Settings(M3u8SettingsProperty(m3U8Settings)) + @JvmName("ed91af366c64c0492810f6a8a94c76563177ab5ba00b44813ddb3e791afb5187") + override fun m3U8Settings(m3U8Settings: M3u8SettingsProperty.Builder.() -> Unit): Unit = + m3U8Settings(M3u8SettingsProperty(m3U8Settings)) public fun build(): software.amazon.awscdk.services.medialive.CfnChannel.StandardHlsSettingsProperty = @@ -37262,7 +37262,7 @@ public open class CfnChannel( * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-standardhlssettings.html#cfn-medialive-channel-standardhlssettings-m3u8settings) */ - override fun m3u8Settings(): Any? = unwrap(this).getM3U8Settings() + override fun m3U8Settings(): Any? = unwrap(this).getM3U8Settings() } public companion object { diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/mediatailor/CfnChannel.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/mediatailor/CfnChannel.kt index 91a0b63dcb..e25502e18c 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/mediatailor/CfnChannel.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/mediatailor/CfnChannel.kt @@ -53,6 +53,7 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .build())) * .playbackMode("playbackMode") * // the properties below are optional + * .audiences(List.of("audiences")) * .fillerSlate(SlateSourceProperty.builder() * .sourceLocationName("sourceLocationName") * .vodSourceName("vodSourceName") @@ -97,6 +98,23 @@ public open class CfnChannel( */ public open fun attrArn(): String = unwrap(this).getAttrArn() + /** + * The list of audiences defined in channel. + */ + public open fun audiences(): List = unwrap(this).getAudiences() ?: emptyList() + + /** + * The list of audiences defined in channel. + */ + public open fun audiences(`value`: List) { + unwrap(this).setAudiences(`value`) + } + + /** + * The list of audiences defined in channel. + */ + public open fun audiences(vararg `value`: String): Unit = audiences(`value`.toList()) + /** * Tag Manager which manages the tags for this resource. */ @@ -276,6 +294,22 @@ public open class CfnChannel( */ @CdkDslMarker public interface Builder { + /** + * The list of audiences defined in channel. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channel.html#cfn-mediatailor-channel-audiences) + * @param audiences The list of audiences defined in channel. + */ + public fun audiences(audiences: List) + + /** + * The list of audiences defined in channel. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channel.html#cfn-mediatailor-channel-audiences) + * @param audiences The list of audiences defined in channel. + */ + public fun audiences(vararg audiences: String) + /** * The name of the channel. * @@ -454,6 +488,24 @@ public open class CfnChannel( private val cdkBuilder: software.amazon.awscdk.services.mediatailor.CfnChannel.Builder = software.amazon.awscdk.services.mediatailor.CfnChannel.Builder.create(scope, id) + /** + * The list of audiences defined in channel. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channel.html#cfn-mediatailor-channel-audiences) + * @param audiences The list of audiences defined in channel. + */ + override fun audiences(audiences: List) { + cdkBuilder.audiences(audiences) + } + + /** + * The list of audiences defined in channel. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channel.html#cfn-mediatailor-channel-audiences) + * @param audiences The list of audiences defined in channel. + */ + override fun audiences(vararg audiences: String): Unit = audiences(audiences.toList()) + /** * The name of the channel. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/mediatailor/CfnChannelProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/mediatailor/CfnChannelProps.kt index fe0ce21a25..ef1ae5934c 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/mediatailor/CfnChannelProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/mediatailor/CfnChannelProps.kt @@ -41,6 +41,7 @@ import kotlin.jvm.JvmName * .build())) * .playbackMode("playbackMode") * // the properties below are optional + * .audiences(List.of("audiences")) * .fillerSlate(SlateSourceProperty.builder() * .sourceLocationName("sourceLocationName") * .vodSourceName("vodSourceName") @@ -62,6 +63,13 @@ import kotlin.jvm.JvmName * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channel.html) */ public interface CfnChannelProps { + /** + * The list of audiences defined in channel. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channel.html#cfn-mediatailor-channel-audiences) + */ + public fun audiences(): List = unwrap(this).getAudiences() ?: emptyList() + /** * The name of the channel. * @@ -137,6 +145,16 @@ public interface CfnChannelProps { */ @CdkDslMarker public interface Builder { + /** + * @param audiences The list of audiences defined in channel. + */ + public fun audiences(audiences: List) + + /** + * @param audiences The list of audiences defined in channel. + */ + public fun audiences(vararg audiences: String) + /** * @param channelName The name of the channel. */ @@ -255,6 +273,18 @@ public interface CfnChannelProps { private val cdkBuilder: software.amazon.awscdk.services.mediatailor.CfnChannelProps.Builder = software.amazon.awscdk.services.mediatailor.CfnChannelProps.builder() + /** + * @param audiences The list of audiences defined in channel. + */ + override fun audiences(audiences: List) { + cdkBuilder.audiences(audiences) + } + + /** + * @param audiences The list of audiences defined in channel. + */ + override fun audiences(vararg audiences: String): Unit = audiences(audiences.toList()) + /** * @param channelName The name of the channel. */ @@ -403,6 +433,13 @@ public interface CfnChannelProps { private class Wrapper( cdkObject: software.amazon.awscdk.services.mediatailor.CfnChannelProps, ) : CdkObject(cdkObject), CfnChannelProps { + /** + * The list of audiences defined in channel. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-channel.html#cfn-mediatailor-channel-audiences) + */ + override fun audiences(): List = unwrap(this).getAudiences() ?: emptyList() + /** * The name of the channel. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/msk/CfnReplicator.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/msk/CfnReplicator.kt index 5cc67f3649..4a17da7e90 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/msk/CfnReplicator.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/msk/CfnReplicator.kt @@ -58,6 +58,9 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .copyAccessControlListsForTopics(false) * .copyTopicConfigurations(false) * .detectAndCopyNewTopics(false) + * .startingPosition(ReplicationStartingPositionProperty.builder() + * .type("type") + * .build()) * .topicsToExclude(List.of("topicsToExclude")) * .build()) * .build())) @@ -1177,6 +1180,9 @@ public open class CfnReplicator( * .copyAccessControlListsForTopics(false) * .copyTopicConfigurations(false) * .detectAndCopyNewTopics(false) + * .startingPosition(ReplicationStartingPositionProperty.builder() + * .type("type") + * .build()) * .topicsToExclude(List.of("topicsToExclude")) * .build()) * .build(); @@ -1409,6 +1415,90 @@ public open class CfnReplicator( } } + /** + * Configuration for specifying the position in the topics to start replicating from. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.msk.*; + * ReplicationStartingPositionProperty replicationStartingPositionProperty = + * ReplicationStartingPositionProperty.builder() + * .type("type") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-replicator-replicationstartingposition.html) + */ + public interface ReplicationStartingPositionProperty { + /** + * The type of replication starting position. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-replicator-replicationstartingposition.html#cfn-msk-replicator-replicationstartingposition-type) + */ + public fun type(): String? = unwrap(this).getType() + + /** + * A builder for [ReplicationStartingPositionProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param type The type of replication starting position. + */ + public fun type(type: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.msk.CfnReplicator.ReplicationStartingPositionProperty.Builder + = + software.amazon.awscdk.services.msk.CfnReplicator.ReplicationStartingPositionProperty.builder() + + /** + * @param type The type of replication starting position. + */ + override fun type(type: String) { + cdkBuilder.type(type) + } + + public fun build(): + software.amazon.awscdk.services.msk.CfnReplicator.ReplicationStartingPositionProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.msk.CfnReplicator.ReplicationStartingPositionProperty, + ) : CdkObject(cdkObject), ReplicationStartingPositionProperty { + /** + * The type of replication starting position. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-replicator-replicationstartingposition.html#cfn-msk-replicator-replicationstartingposition-type) + */ + override fun type(): String? = unwrap(this).getType() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): + ReplicationStartingPositionProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.msk.CfnReplicator.ReplicationStartingPositionProperty): + ReplicationStartingPositionProperty = CdkObjectWrappers.wrap(cdkObject) as? + ReplicationStartingPositionProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: ReplicationStartingPositionProperty): + software.amazon.awscdk.services.msk.CfnReplicator.ReplicationStartingPositionProperty = + (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.msk.CfnReplicator.ReplicationStartingPositionProperty + } + } + /** * Example: * @@ -1422,6 +1512,9 @@ public open class CfnReplicator( * .copyAccessControlListsForTopics(false) * .copyTopicConfigurations(false) * .detectAndCopyNewTopics(false) + * .startingPosition(ReplicationStartingPositionProperty.builder() + * .type("type") + * .build()) * .topicsToExclude(List.of("topicsToExclude")) * .build(); * ``` @@ -1452,6 +1545,13 @@ public open class CfnReplicator( */ public fun detectAndCopyNewTopics(): Any? = unwrap(this).getDetectAndCopyNewTopics() + /** + * Configuration for specifying the position in the topics to start replicating from. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-replicator-topicreplication.html#cfn-msk-replicator-topicreplication-startingposition) + */ + public fun startingPosition(): Any? = unwrap(this).getStartingPosition() + /** * List of regular expression patterns indicating the topics that should not be replicated. * @@ -1505,6 +1605,27 @@ public open class CfnReplicator( */ public fun detectAndCopyNewTopics(detectAndCopyNewTopics: IResolvable) + /** + * @param startingPosition Configuration for specifying the position in the topics to start + * replicating from. + */ + public fun startingPosition(startingPosition: IResolvable) + + /** + * @param startingPosition Configuration for specifying the position in the topics to start + * replicating from. + */ + public fun startingPosition(startingPosition: ReplicationStartingPositionProperty) + + /** + * @param startingPosition Configuration for specifying the position in the topics to start + * replicating from. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("b216c9fb6cd3c2d96380696c26c913ca537b6a0175cb86fa24f15fddcce2b9d6") + public + fun startingPosition(startingPosition: ReplicationStartingPositionProperty.Builder.() -> Unit) + /** * @param topicsToExclude List of regular expression patterns indicating the topics that * should not be replicated. @@ -1581,6 +1702,32 @@ public open class CfnReplicator( cdkBuilder.detectAndCopyNewTopics(detectAndCopyNewTopics.let(IResolvable::unwrap)) } + /** + * @param startingPosition Configuration for specifying the position in the topics to start + * replicating from. + */ + override fun startingPosition(startingPosition: IResolvable) { + cdkBuilder.startingPosition(startingPosition.let(IResolvable::unwrap)) + } + + /** + * @param startingPosition Configuration for specifying the position in the topics to start + * replicating from. + */ + override fun startingPosition(startingPosition: ReplicationStartingPositionProperty) { + cdkBuilder.startingPosition(startingPosition.let(ReplicationStartingPositionProperty::unwrap)) + } + + /** + * @param startingPosition Configuration for specifying the position in the topics to start + * replicating from. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("b216c9fb6cd3c2d96380696c26c913ca537b6a0175cb86fa24f15fddcce2b9d6") + override + fun startingPosition(startingPosition: ReplicationStartingPositionProperty.Builder.() -> Unit): + Unit = startingPosition(ReplicationStartingPositionProperty(startingPosition)) + /** * @param topicsToExclude List of regular expression patterns indicating the topics that * should not be replicated. @@ -1642,6 +1789,13 @@ public open class CfnReplicator( */ override fun detectAndCopyNewTopics(): Any? = unwrap(this).getDetectAndCopyNewTopics() + /** + * Configuration for specifying the position in the topics to start replicating from. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-replicator-topicreplication.html#cfn-msk-replicator-topicreplication-startingposition) + */ + override fun startingPosition(): Any? = unwrap(this).getStartingPosition() + /** * List of regular expression patterns indicating the topics that should not be replicated. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/msk/CfnReplicatorProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/msk/CfnReplicatorProps.kt index fabca84fc9..50045792da 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/msk/CfnReplicatorProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/msk/CfnReplicatorProps.kt @@ -49,6 +49,9 @@ import kotlin.collections.List * .copyAccessControlListsForTopics(false) * .copyTopicConfigurations(false) * .detectAndCopyNewTopics(false) + * .startingPosition(ReplicationStartingPositionProperty.builder() + * .type("type") + * .build()) * .topicsToExclude(List.of("topicsToExclude")) * .build()) * .build())) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/networkfirewall/CfnRuleGroup.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/networkfirewall/CfnRuleGroup.kt index 6d23bb0e69..196970d6cd 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/networkfirewall/CfnRuleGroup.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/networkfirewall/CfnRuleGroup.kt @@ -3481,7 +3481,7 @@ public open class CfnRuleGroup( * options](https://docs.aws.amazon.com/https://suricata.readthedocs.io/en/suricata-6.0.9/rules/intro.html#rule-options) * . */ - public fun tings(settings: List) + public fun settings(settings: List) /** * @param settings The Suricata rule option settings. @@ -3491,7 +3491,7 @@ public open class CfnRuleGroup( * options](https://docs.aws.amazon.com/https://suricata.readthedocs.io/en/suricata-6.0.9/rules/intro.html#rule-options) * . */ - public fun tings(vararg settings: String) + public fun settings(vararg settings: String) } private class BuilderImpl : Builder { @@ -3519,7 +3519,7 @@ public open class CfnRuleGroup( * options](https://docs.aws.amazon.com/https://suricata.readthedocs.io/en/suricata-6.0.9/rules/intro.html#rule-options) * . */ - override fun tings(settings: List) { + override fun settings(settings: List) { cdkBuilder.settings(settings) } @@ -3531,7 +3531,7 @@ public open class CfnRuleGroup( * options](https://docs.aws.amazon.com/https://suricata.readthedocs.io/en/suricata-6.0.9/rules/intro.html#rule-options) * . */ - override fun tings(vararg settings: String): Unit = tings(settings.toList()) + override fun settings(vararg settings: String): Unit = settings(settings.toList()) public fun build(): software.amazon.awscdk.services.networkfirewall.CfnRuleGroup.RuleOptionProperty = diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/oam/CfnLink.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/oam/CfnLink.kt index dd59a1d8ee..c9fe7a1bad 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/oam/CfnLink.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/oam/CfnLink.kt @@ -4,14 +4,19 @@ package io.cloudshiftdev.awscdk.services.oam import io.cloudshiftdev.awscdk.CfnResource import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.IResolvable import io.cloudshiftdev.awscdk.ITaggable import io.cloudshiftdev.awscdk.TagManager import io.cloudshiftdev.awscdk.TreeInspector import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any import kotlin.String import kotlin.Unit import kotlin.collections.List import kotlin.collections.Map +import kotlin.jvm.JvmName import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct import software.constructs.Construct as SoftwareConstructsConstruct @@ -42,6 +47,14 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .sinkIdentifier("sinkIdentifier") * // the properties below are optional * .labelTemplate("labelTemplate") + * .linkConfiguration(LinkConfigurationProperty.builder() + * .logGroupConfiguration(LinkFilterProperty.builder() + * .filter("filter") + * .build()) + * .metricConfiguration(LinkFilterProperty.builder() + * .filter("filter") + * .build()) + * .build()) * .tags(Map.of( * "tagsKey", "tags")) * .build(); @@ -106,6 +119,33 @@ public open class CfnLink( unwrap(this).setLabelTemplate(`value`) } + /** + * + */ + public open fun linkConfiguration(): Any? = unwrap(this).getLinkConfiguration() + + /** + * + */ + public open fun linkConfiguration(`value`: IResolvable) { + unwrap(this).setLinkConfiguration(`value`.let(IResolvable::unwrap)) + } + + /** + * + */ + public open fun linkConfiguration(`value`: LinkConfigurationProperty) { + unwrap(this).setLinkConfiguration(`value`.let(LinkConfigurationProperty::unwrap)) + } + + /** + * + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("f1c4f2ae27fd10fbd00313cd2fd1db2afc5874c89c47875133098be129bdfc14") + public open fun linkConfiguration(`value`: LinkConfigurationProperty.Builder.() -> Unit): Unit = + linkConfiguration(LinkConfigurationProperty(`value`)) + /** * An array of strings that define which types of data that the source account shares with the * monitoring account. @@ -177,12 +217,32 @@ public open class CfnLink( */ public fun labelTemplate(labelTemplate: String) + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-link.html#cfn-oam-link-linkconfiguration) + * @param linkConfiguration + */ + public fun linkConfiguration(linkConfiguration: IResolvable) + + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-link.html#cfn-oam-link-linkconfiguration) + * @param linkConfiguration + */ + public fun linkConfiguration(linkConfiguration: LinkConfigurationProperty) + + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-link.html#cfn-oam-link-linkconfiguration) + * @param linkConfiguration + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("2f023ed46c2f574a2355e148ac03b8c6ca677f94961515df90dddb5daaafd79b") + public fun linkConfiguration(linkConfiguration: LinkConfigurationProperty.Builder.() -> Unit) + /** * An array of strings that define which types of data that the source account shares with the * monitoring account. * * Valid values are `AWS::CloudWatch::Metric | AWS::Logs::LogGroup | AWS::XRay::Trace | - * AWS::ApplicationInsights::Application` . + * AWS::ApplicationInsights::Application | AWS::InternetMonitor::Monitor` . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-link.html#cfn-oam-link-resourcetypes) * @param resourceTypes An array of strings that define which types of data that the source @@ -195,7 +255,7 @@ public open class CfnLink( * monitoring account. * * Valid values are `AWS::CloudWatch::Metric | AWS::Logs::LogGroup | AWS::XRay::Trace | - * AWS::ApplicationInsights::Application` . + * AWS::ApplicationInsights::Application | AWS::InternetMonitor::Monitor` . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-link.html#cfn-oam-link-resourcetypes) * @param resourceTypes An array of strings that define which types of data that the source @@ -255,12 +315,37 @@ public open class CfnLink( cdkBuilder.labelTemplate(labelTemplate) } + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-link.html#cfn-oam-link-linkconfiguration) + * @param linkConfiguration + */ + override fun linkConfiguration(linkConfiguration: IResolvable) { + cdkBuilder.linkConfiguration(linkConfiguration.let(IResolvable::unwrap)) + } + + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-link.html#cfn-oam-link-linkconfiguration) + * @param linkConfiguration + */ + override fun linkConfiguration(linkConfiguration: LinkConfigurationProperty) { + cdkBuilder.linkConfiguration(linkConfiguration.let(LinkConfigurationProperty::unwrap)) + } + + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-link.html#cfn-oam-link-linkconfiguration) + * @param linkConfiguration + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("2f023ed46c2f574a2355e148ac03b8c6ca677f94961515df90dddb5daaafd79b") + override fun linkConfiguration(linkConfiguration: LinkConfigurationProperty.Builder.() -> Unit): + Unit = linkConfiguration(LinkConfigurationProperty(linkConfiguration)) + /** * An array of strings that define which types of data that the source account shares with the * monitoring account. * * Valid values are `AWS::CloudWatch::Metric | AWS::Logs::LogGroup | AWS::XRay::Trace | - * AWS::ApplicationInsights::Application` . + * AWS::ApplicationInsights::Application | AWS::InternetMonitor::Monitor` . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-link.html#cfn-oam-link-resourcetypes) * @param resourceTypes An array of strings that define which types of data that the source @@ -275,7 +360,7 @@ public open class CfnLink( * monitoring account. * * Valid values are `AWS::CloudWatch::Metric | AWS::Logs::LogGroup | AWS::XRay::Trace | - * AWS::ApplicationInsights::Application` . + * AWS::ApplicationInsights::Application | AWS::InternetMonitor::Monitor` . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-link.html#cfn-oam-link-resourcetypes) * @param resourceTypes An array of strings that define which types of data that the source @@ -335,4 +420,231 @@ public open class CfnLink( internal fun unwrap(wrapped: CfnLink): software.amazon.awscdk.services.oam.CfnLink = wrapped.cdkObject as software.amazon.awscdk.services.oam.CfnLink } + + /** + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.oam.*; + * LinkConfigurationProperty linkConfigurationProperty = LinkConfigurationProperty.builder() + * .logGroupConfiguration(LinkFilterProperty.builder() + * .filter("filter") + * .build()) + * .metricConfiguration(LinkFilterProperty.builder() + * .filter("filter") + * .build()) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-oam-link-linkconfiguration.html) + */ + public interface LinkConfigurationProperty { + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-oam-link-linkconfiguration.html#cfn-oam-link-linkconfiguration-loggroupconfiguration) + */ + public fun logGroupConfiguration(): Any? = unwrap(this).getLogGroupConfiguration() + + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-oam-link-linkconfiguration.html#cfn-oam-link-linkconfiguration-metricconfiguration) + */ + public fun metricConfiguration(): Any? = unwrap(this).getMetricConfiguration() + + /** + * A builder for [LinkConfigurationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param logGroupConfiguration the value to be set. + */ + public fun logGroupConfiguration(logGroupConfiguration: IResolvable) + + /** + * @param logGroupConfiguration the value to be set. + */ + public fun logGroupConfiguration(logGroupConfiguration: LinkFilterProperty) + + /** + * @param logGroupConfiguration the value to be set. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("6071a625c6b3d9a327b833ab989a7caddb31359aa7034471a709a9a56f27c917") + public fun logGroupConfiguration(logGroupConfiguration: LinkFilterProperty.Builder.() -> Unit) + + /** + * @param metricConfiguration the value to be set. + */ + public fun metricConfiguration(metricConfiguration: IResolvable) + + /** + * @param metricConfiguration the value to be set. + */ + public fun metricConfiguration(metricConfiguration: LinkFilterProperty) + + /** + * @param metricConfiguration the value to be set. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("10f1eac64888de848ebfafff66aa54b2a3f3a4e445e1ef1f0f075ad558f4f46b") + public fun metricConfiguration(metricConfiguration: LinkFilterProperty.Builder.() -> Unit) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.oam.CfnLink.LinkConfigurationProperty.Builder = + software.amazon.awscdk.services.oam.CfnLink.LinkConfigurationProperty.builder() + + /** + * @param logGroupConfiguration the value to be set. + */ + override fun logGroupConfiguration(logGroupConfiguration: IResolvable) { + cdkBuilder.logGroupConfiguration(logGroupConfiguration.let(IResolvable::unwrap)) + } + + /** + * @param logGroupConfiguration the value to be set. + */ + override fun logGroupConfiguration(logGroupConfiguration: LinkFilterProperty) { + cdkBuilder.logGroupConfiguration(logGroupConfiguration.let(LinkFilterProperty::unwrap)) + } + + /** + * @param logGroupConfiguration the value to be set. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("6071a625c6b3d9a327b833ab989a7caddb31359aa7034471a709a9a56f27c917") + override + fun logGroupConfiguration(logGroupConfiguration: LinkFilterProperty.Builder.() -> Unit): + Unit = logGroupConfiguration(LinkFilterProperty(logGroupConfiguration)) + + /** + * @param metricConfiguration the value to be set. + */ + override fun metricConfiguration(metricConfiguration: IResolvable) { + cdkBuilder.metricConfiguration(metricConfiguration.let(IResolvable::unwrap)) + } + + /** + * @param metricConfiguration the value to be set. + */ + override fun metricConfiguration(metricConfiguration: LinkFilterProperty) { + cdkBuilder.metricConfiguration(metricConfiguration.let(LinkFilterProperty::unwrap)) + } + + /** + * @param metricConfiguration the value to be set. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("10f1eac64888de848ebfafff66aa54b2a3f3a4e445e1ef1f0f075ad558f4f46b") + override fun metricConfiguration(metricConfiguration: LinkFilterProperty.Builder.() -> Unit): + Unit = metricConfiguration(LinkFilterProperty(metricConfiguration)) + + public fun build(): software.amazon.awscdk.services.oam.CfnLink.LinkConfigurationProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.oam.CfnLink.LinkConfigurationProperty, + ) : CdkObject(cdkObject), LinkConfigurationProperty { + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-oam-link-linkconfiguration.html#cfn-oam-link-linkconfiguration-loggroupconfiguration) + */ + override fun logGroupConfiguration(): Any? = unwrap(this).getLogGroupConfiguration() + + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-oam-link-linkconfiguration.html#cfn-oam-link-linkconfiguration-metricconfiguration) + */ + override fun metricConfiguration(): Any? = unwrap(this).getMetricConfiguration() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): LinkConfigurationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.oam.CfnLink.LinkConfigurationProperty): + LinkConfigurationProperty = CdkObjectWrappers.wrap(cdkObject) as? + LinkConfigurationProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: LinkConfigurationProperty): + software.amazon.awscdk.services.oam.CfnLink.LinkConfigurationProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.oam.CfnLink.LinkConfigurationProperty + } + } + + /** + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.oam.*; + * LinkFilterProperty linkFilterProperty = LinkFilterProperty.builder() + * .filter("filter") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-oam-link-linkfilter.html) + */ + public interface LinkFilterProperty { + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-oam-link-linkfilter.html#cfn-oam-link-linkfilter-filter) + */ + public fun filter(): String + + /** + * A builder for [LinkFilterProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param filter the value to be set. + */ + public fun filter(filter: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.services.oam.CfnLink.LinkFilterProperty.Builder + = software.amazon.awscdk.services.oam.CfnLink.LinkFilterProperty.builder() + + /** + * @param filter the value to be set. + */ + override fun filter(filter: String) { + cdkBuilder.filter(filter) + } + + public fun build(): software.amazon.awscdk.services.oam.CfnLink.LinkFilterProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.oam.CfnLink.LinkFilterProperty, + ) : CdkObject(cdkObject), LinkFilterProperty { + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-oam-link-linkfilter.html#cfn-oam-link-linkfilter-filter) + */ + override fun filter(): String = unwrap(this).getFilter() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): LinkFilterProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.oam.CfnLink.LinkFilterProperty): + LinkFilterProperty = CdkObjectWrappers.wrap(cdkObject) as? LinkFilterProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: LinkFilterProperty): + software.amazon.awscdk.services.oam.CfnLink.LinkFilterProperty = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.oam.CfnLink.LinkFilterProperty + } + } } diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/oam/CfnLinkProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/oam/CfnLinkProps.kt index 77ab65baec..708d491418 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/oam/CfnLinkProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/oam/CfnLinkProps.kt @@ -2,13 +2,16 @@ package io.cloudshiftdev.awscdk.services.oam +import io.cloudshiftdev.awscdk.IResolvable import io.cloudshiftdev.awscdk.common.CdkDslMarker import io.cloudshiftdev.awscdk.common.CdkObject import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any import kotlin.String import kotlin.Unit import kotlin.collections.List import kotlin.collections.Map +import kotlin.jvm.JvmName /** * Properties for defining a `CfnLink`. @@ -24,6 +27,14 @@ import kotlin.collections.Map * .sinkIdentifier("sinkIdentifier") * // the properties below are optional * .labelTemplate("labelTemplate") + * .linkConfiguration(LinkConfigurationProperty.builder() + * .logGroupConfiguration(LinkFilterProperty.builder() + * .filter("filter") + * .build()) + * .metricConfiguration(LinkFilterProperty.builder() + * .filter("filter") + * .build()) + * .build()) * .tags(Map.of( * "tagsKey", "tags")) * .build(); @@ -47,12 +58,17 @@ public interface CfnLinkProps { */ public fun labelTemplate(): String? = unwrap(this).getLabelTemplate() + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-link.html#cfn-oam-link-linkconfiguration) + */ + public fun linkConfiguration(): Any? = unwrap(this).getLinkConfiguration() + /** * An array of strings that define which types of data that the source account shares with the * monitoring account. * * Valid values are `AWS::CloudWatch::Metric | AWS::Logs::LogGroup | AWS::XRay::Trace | - * AWS::ApplicationInsights::Application` . + * AWS::ApplicationInsights::Application | AWS::InternetMonitor::Monitor` . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-link.html#cfn-oam-link-resourcetypes) */ @@ -96,11 +112,29 @@ public interface CfnLinkProps { */ public fun labelTemplate(labelTemplate: String) + /** + * @param linkConfiguration the value to be set. + */ + public fun linkConfiguration(linkConfiguration: IResolvable) + + /** + * @param linkConfiguration the value to be set. + */ + public fun linkConfiguration(linkConfiguration: CfnLink.LinkConfigurationProperty) + + /** + * @param linkConfiguration the value to be set. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("c16b83fb005aa5f502bdd496d9c5765d2c4a68deb4bc415651ae331455a32cfc") + public + fun linkConfiguration(linkConfiguration: CfnLink.LinkConfigurationProperty.Builder.() -> Unit) + /** * @param resourceTypes An array of strings that define which types of data that the source * account shares with the monitoring account. * Valid values are `AWS::CloudWatch::Metric | AWS::Logs::LogGroup | AWS::XRay::Trace | - * AWS::ApplicationInsights::Application` . + * AWS::ApplicationInsights::Application | AWS::InternetMonitor::Monitor` . */ public fun resourceTypes(resourceTypes: List) @@ -108,7 +142,7 @@ public interface CfnLinkProps { * @param resourceTypes An array of strings that define which types of data that the source * account shares with the monitoring account. * Valid values are `AWS::CloudWatch::Metric | AWS::Logs::LogGroup | AWS::XRay::Trace | - * AWS::ApplicationInsights::Application` . + * AWS::ApplicationInsights::Application | AWS::InternetMonitor::Monitor` . */ public fun resourceTypes(vararg resourceTypes: String) @@ -148,11 +182,34 @@ public interface CfnLinkProps { cdkBuilder.labelTemplate(labelTemplate) } + /** + * @param linkConfiguration the value to be set. + */ + override fun linkConfiguration(linkConfiguration: IResolvable) { + cdkBuilder.linkConfiguration(linkConfiguration.let(IResolvable::unwrap)) + } + + /** + * @param linkConfiguration the value to be set. + */ + override fun linkConfiguration(linkConfiguration: CfnLink.LinkConfigurationProperty) { + cdkBuilder.linkConfiguration(linkConfiguration.let(CfnLink.LinkConfigurationProperty::unwrap)) + } + + /** + * @param linkConfiguration the value to be set. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("c16b83fb005aa5f502bdd496d9c5765d2c4a68deb4bc415651ae331455a32cfc") + override + fun linkConfiguration(linkConfiguration: CfnLink.LinkConfigurationProperty.Builder.() -> Unit): + Unit = linkConfiguration(CfnLink.LinkConfigurationProperty(linkConfiguration)) + /** * @param resourceTypes An array of strings that define which types of data that the source * account shares with the monitoring account. * Valid values are `AWS::CloudWatch::Metric | AWS::Logs::LogGroup | AWS::XRay::Trace | - * AWS::ApplicationInsights::Application` . + * AWS::ApplicationInsights::Application | AWS::InternetMonitor::Monitor` . */ override fun resourceTypes(resourceTypes: List) { cdkBuilder.resourceTypes(resourceTypes) @@ -162,7 +219,7 @@ public interface CfnLinkProps { * @param resourceTypes An array of strings that define which types of data that the source * account shares with the monitoring account. * Valid values are `AWS::CloudWatch::Metric | AWS::Logs::LogGroup | AWS::XRay::Trace | - * AWS::ApplicationInsights::Application` . + * AWS::ApplicationInsights::Application | AWS::InternetMonitor::Monitor` . */ override fun resourceTypes(vararg resourceTypes: String): Unit = resourceTypes(resourceTypes.toList()) @@ -209,12 +266,17 @@ public interface CfnLinkProps { */ override fun labelTemplate(): String? = unwrap(this).getLabelTemplate() + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-link.html#cfn-oam-link-linkconfiguration) + */ + override fun linkConfiguration(): Any? = unwrap(this).getLinkConfiguration() + /** * An array of strings that define which types of data that the source account shares with the * monitoring account. * * Valid values are `AWS::CloudWatch::Metric | AWS::Logs::LogGroup | AWS::XRay::Trace | - * AWS::ApplicationInsights::Application` . + * AWS::ApplicationInsights::Application | AWS::InternetMonitor::Monitor` . * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-link.html#cfn-oam-link-resourcetypes) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/opensearchservice/CapacityConfig.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/opensearchservice/CapacityConfig.kt index c26b1c30fb..2bdad6fbc6 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/opensearchservice/CapacityConfig.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/opensearchservice/CapacityConfig.kt @@ -47,8 +47,8 @@ public interface CapacityConfig { /** * The hardware configuration of the computer that hosts the dedicated master node, such as - * `m3.medium.search`. For valid values, see [Supported Instance Types] - * (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/supported-instance-types.html) + * `m3.medium.search`. For valid values, see [Supported Instance + * Types](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/supported-instance-types.html) * in the Amazon OpenSearch Service Developer Guide. * * Default: - r5.large.search @@ -65,17 +65,20 @@ public interface CapacityConfig { /** * Indicates whether Multi-AZ with Standby deployment option is enabled. * - * For more information, see [Multi-AZ with Standby] - * (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-multiaz.html#managedomains-za-standby) + * For more information, see Multi-AZ + * with + * Standby * - * Default: - no multi-az with standby + * Default: - multi-az with standby if the feature flag `ENABLE_OPENSEARCH_MULTIAZ_WITH_STANDBY` + * is true, no multi-az with standby otherwise */ public fun multiAzWithStandbyEnabled(): Boolean? = unwrap(this).getMultiAzWithStandbyEnabled() /** * The instance type for your UltraWarm node, such as `ultrawarm1.medium.search`. For valid - * values, see [UltraWarm Storage Limits] - * (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/limits.html#limits-ultrawarm) + * values, see [UltraWarm Storage + * Limits](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/limits.html#limits-ultrawarm) * in the Amazon OpenSearch Service Developer Guide. * * Default: - ultrawarm1.medium.search @@ -111,8 +114,7 @@ public interface CapacityConfig { /** * @param masterNodeInstanceType The hardware configuration of the computer that hosts the * dedicated master node, such as `m3.medium.search`. For valid values, see [Supported Instance - * Types] - * (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/supported-instance-types.html) + * Types](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/supported-instance-types.html) * in the Amazon OpenSearch Service Developer Guide. */ public fun masterNodeInstanceType(masterNodeInstanceType: String) @@ -125,15 +127,17 @@ public interface CapacityConfig { /** * @param multiAzWithStandbyEnabled Indicates whether Multi-AZ with Standby deployment option is * enabled. - * For more information, see [Multi-AZ with Standby] - * (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-multiaz.html#managedomains-za-standby) + * For more information, see Multi-AZ + * with + * Standby */ public fun multiAzWithStandbyEnabled(multiAzWithStandbyEnabled: Boolean) /** * @param warmInstanceType The instance type for your UltraWarm node, such as - * `ultrawarm1.medium.search`. For valid values, see [UltraWarm Storage Limits] - * (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/limits.html#limits-ultrawarm) + * `ultrawarm1.medium.search`. For valid values, see [UltraWarm Storage + * Limits](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/limits.html#limits-ultrawarm) * in the Amazon OpenSearch Service Developer Guide. */ public fun warmInstanceType(warmInstanceType: String) @@ -170,8 +174,7 @@ public interface CapacityConfig { /** * @param masterNodeInstanceType The hardware configuration of the computer that hosts the * dedicated master node, such as `m3.medium.search`. For valid values, see [Supported Instance - * Types] - * (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/supported-instance-types.html) + * Types](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/supported-instance-types.html) * in the Amazon OpenSearch Service Developer Guide. */ override fun masterNodeInstanceType(masterNodeInstanceType: String) { @@ -188,8 +191,10 @@ public interface CapacityConfig { /** * @param multiAzWithStandbyEnabled Indicates whether Multi-AZ with Standby deployment option is * enabled. - * For more information, see [Multi-AZ with Standby] - * (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-multiaz.html#managedomains-za-standby) + * For more information, see Multi-AZ + * with + * Standby */ override fun multiAzWithStandbyEnabled(multiAzWithStandbyEnabled: Boolean) { cdkBuilder.multiAzWithStandbyEnabled(multiAzWithStandbyEnabled) @@ -197,8 +202,8 @@ public interface CapacityConfig { /** * @param warmInstanceType The instance type for your UltraWarm node, such as - * `ultrawarm1.medium.search`. For valid values, see [UltraWarm Storage Limits] - * (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/limits.html#limits-ultrawarm) + * `ultrawarm1.medium.search`. For valid values, see [UltraWarm Storage + * Limits](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/limits.html#limits-ultrawarm) * in the Amazon OpenSearch Service Developer Guide. */ override fun warmInstanceType(warmInstanceType: String) { @@ -239,8 +244,8 @@ public interface CapacityConfig { /** * The hardware configuration of the computer that hosts the dedicated master node, such as - * `m3.medium.search`. For valid values, see [Supported Instance Types] - * (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/supported-instance-types.html) + * `m3.medium.search`. For valid values, see [Supported Instance + * Types](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/supported-instance-types.html) * in the Amazon OpenSearch Service Developer Guide. * * Default: - r5.large.search @@ -257,17 +262,20 @@ public interface CapacityConfig { /** * Indicates whether Multi-AZ with Standby deployment option is enabled. * - * For more information, see [Multi-AZ with Standby] - * (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-multiaz.html#managedomains-za-standby) + * For more information, see Multi-AZ + * with + * Standby * - * Default: - no multi-az with standby + * Default: - multi-az with standby if the feature flag `ENABLE_OPENSEARCH_MULTIAZ_WITH_STANDBY` + * is true, no multi-az with standby otherwise */ override fun multiAzWithStandbyEnabled(): Boolean? = unwrap(this).getMultiAzWithStandbyEnabled() /** * The instance type for your UltraWarm node, such as `ultrawarm1.medium.search`. For valid - * values, see [UltraWarm Storage Limits] - * (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/limits.html#limits-ultrawarm) + * values, see [UltraWarm Storage + * Limits](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/limits.html#limits-ultrawarm) * in the Amazon OpenSearch Service Developer Guide. * * Default: - ultrawarm1.medium.search diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/opensearchservice/CfnDomain.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/opensearchservice/CfnDomain.kt index c998d43743..96255d40e1 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/opensearchservice/CfnDomain.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/opensearchservice/CfnDomain.kt @@ -4387,7 +4387,7 @@ public open class CfnDomain( /** * Specifies information about the master user. * - * Required if if `InternalUserDatabaseEnabled` is true in + * Required if `InternalUserDatabaseEnabled` is true in * [AdvancedSecurityOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-advancedsecurityoptionsinput.html) * . * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/opensearchservice/Domain.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/opensearchservice/Domain.kt index 42492684ac..d975e8029c 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/opensearchservice/Domain.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/opensearchservice/Domain.kt @@ -279,6 +279,38 @@ public open class Domain( public override fun metricAutomatedSnapshotFailure(props: MetricOptions.Builder.() -> Unit): Metric = metricAutomatedSnapshotFailure(MetricOptions(props)) + /** + * Metric for CPU utilization. + * + * Default: maximum over 5 minutes + * + * @param props + */ + public override fun metricCPUUtilization(): Metric = + unwrap(this).metricCPUUtilization().let(Metric::wrap) + + /** + * Metric for CPU utilization. + * + * Default: maximum over 5 minutes + * + * @param props + */ + public override fun metricCPUUtilization(props: MetricOptions): Metric = + unwrap(this).metricCPUUtilization(props.let(MetricOptions::unwrap)).let(Metric::wrap) + + /** + * Metric for CPU utilization. + * + * Default: maximum over 5 minutes + * + * @param props + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("66a273587ca08857c76d1952aa0bb360d86bfe06cc24788a922415fa0fa097ef") + public override fun metricCPUUtilization(props: MetricOptions.Builder.() -> Unit): Metric = + metricCPUUtilization(MetricOptions(props)) + /** * Metric for the cluster blocking index writes. * @@ -375,38 +407,6 @@ public open class Domain( public override fun metricClusterStatusYellow(props: MetricOptions.Builder.() -> Unit): Metric = metricClusterStatusYellow(MetricOptions(props)) - /** - * Metric for CPU utilization. - * - * Default: maximum over 5 minutes - * - * @param props - */ - public override fun metricCpuUtilization(): Metric = - unwrap(this).metricCPUUtilization().let(Metric::wrap) - - /** - * Metric for CPU utilization. - * - * Default: maximum over 5 minutes - * - * @param props - */ - public override fun metricCpuUtilization(props: MetricOptions): Metric = - unwrap(this).metricCPUUtilization(props.let(MetricOptions::unwrap)).let(Metric::wrap) - - /** - * Metric for CPU utilization. - * - * Default: maximum over 5 minutes - * - * @param props - */ - @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("06a38048efcdd43000e7f66d74001004b818625d95136f460bf350a2397a31d0") - public override fun metricCpuUtilization(props: MetricOptions.Builder.() -> Unit): Metric = - metricCpuUtilization(MetricOptions(props)) - /** * Metric for the storage space of nodes in the cluster. * @@ -478,7 +478,7 @@ public open class Domain( * * @param props */ - public override fun metricJvmMemoryPressure(): Metric = + public override fun metricJVMMemoryPressure(): Metric = unwrap(this).metricJVMMemoryPressure().let(Metric::wrap) /** @@ -488,7 +488,7 @@ public open class Domain( * * @param props */ - public override fun metricJvmMemoryPressure(props: MetricOptions): Metric = + public override fun metricJVMMemoryPressure(props: MetricOptions): Metric = unwrap(this).metricJVMMemoryPressure(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -499,9 +499,9 @@ public open class Domain( * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("283ffec8edbd9b28227078700405c8b7b7fe0f6bf433f6323ba9205b4c8a528f") - public override fun metricJvmMemoryPressure(props: MetricOptions.Builder.() -> Unit): Metric = - metricJvmMemoryPressure(MetricOptions(props)) + @JvmName("bbc5860f20525c5c3cf2850d91d7efa180c7058337e1de65c8420bc7be81cc9b") + public override fun metricJVMMemoryPressure(props: MetricOptions.Builder.() -> Unit): Metric = + metricJVMMemoryPressure(MetricOptions(props)) /** * Metric for KMS key errors. @@ -510,7 +510,7 @@ public open class Domain( * * @param props */ - public override fun metricKmsKeyError(): Metric = + public override fun metricKMSKeyError(): Metric = unwrap(this).metricKMSKeyError().let(Metric::wrap) /** @@ -520,7 +520,7 @@ public open class Domain( * * @param props */ - public override fun metricKmsKeyError(props: MetricOptions): Metric = + public override fun metricKMSKeyError(props: MetricOptions): Metric = unwrap(this).metricKMSKeyError(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -531,9 +531,9 @@ public open class Domain( * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("309d28dee34b268d496bc1e8ba269d5bff9ec10e9e17132d9a884e208a805741") - public override fun metricKmsKeyError(props: MetricOptions.Builder.() -> Unit): Metric = - metricKmsKeyError(MetricOptions(props)) + @JvmName("e6d547afff79fd0803e3b15eb00be8f5c5c65020938e7e8c527fefe04c3ec7de") + public override fun metricKMSKeyError(props: MetricOptions.Builder.() -> Unit): Metric = + metricKMSKeyError(MetricOptions(props)) /** * Metric for KMS key being inaccessible. @@ -542,7 +542,7 @@ public open class Domain( * * @param props */ - public override fun metricKmsKeyInaccessible(): Metric = + public override fun metricKMSKeyInaccessible(): Metric = unwrap(this).metricKMSKeyInaccessible().let(Metric::wrap) /** @@ -552,7 +552,7 @@ public open class Domain( * * @param props */ - public override fun metricKmsKeyInaccessible(props: MetricOptions): Metric = + public override fun metricKMSKeyInaccessible(props: MetricOptions): Metric = unwrap(this).metricKMSKeyInaccessible(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -563,9 +563,9 @@ public open class Domain( * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("bfca9e4cdc1ad37f6d57f9fdeb4258e1c6235ab92ed8224c8ee4cda359baaad6") - public override fun metricKmsKeyInaccessible(props: MetricOptions.Builder.() -> Unit): Metric = - metricKmsKeyInaccessible(MetricOptions(props)) + @JvmName("5c4bf93f4e622d4a76178b4868be7efe604fd3d16316e4a05742bea79f81ef77") + public override fun metricKMSKeyInaccessible(props: MetricOptions.Builder.() -> Unit): Metric = + metricKMSKeyInaccessible(MetricOptions(props)) /** * Metric for master CPU utilization. @@ -574,7 +574,7 @@ public open class Domain( * * @param props */ - public override fun metricMasterCpuUtilization(): Metric = + public override fun metricMasterCPUUtilization(): Metric = unwrap(this).metricMasterCPUUtilization().let(Metric::wrap) /** @@ -584,7 +584,7 @@ public open class Domain( * * @param props */ - public override fun metricMasterCpuUtilization(props: MetricOptions): Metric = + public override fun metricMasterCPUUtilization(props: MetricOptions): Metric = unwrap(this).metricMasterCPUUtilization(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -595,9 +595,9 @@ public open class Domain( * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("8a46b211229de3f431630b8ea4f99843647a1cab494f599c79138732a397c709") - public override fun metricMasterCpuUtilization(props: MetricOptions.Builder.() -> Unit): Metric = - metricMasterCpuUtilization(MetricOptions(props)) + @JvmName("9bfbec0deb2fa2aad0f19ca7ed1e5d7e6bd722bd278b8f9e86e0086d51527219") + public override fun metricMasterCPUUtilization(props: MetricOptions.Builder.() -> Unit): Metric = + metricMasterCPUUtilization(MetricOptions(props)) /** * Metric for master JVM memory pressure. @@ -606,7 +606,7 @@ public open class Domain( * * @param props */ - public override fun metricMasterJvmMemoryPressure(): Metric = + public override fun metricMasterJVMMemoryPressure(): Metric = unwrap(this).metricMasterJVMMemoryPressure().let(Metric::wrap) /** @@ -616,7 +616,7 @@ public open class Domain( * * @param props */ - public override fun metricMasterJvmMemoryPressure(props: MetricOptions): Metric = + public override fun metricMasterJVMMemoryPressure(props: MetricOptions): Metric = unwrap(this).metricMasterJVMMemoryPressure(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -627,9 +627,9 @@ public open class Domain( * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("fbcf8e4882306bcb2bed673a80ed7a54a16cc27adfc1a7fe173fbb566b335350") - public override fun metricMasterJvmMemoryPressure(props: MetricOptions.Builder.() -> Unit): Metric - = metricMasterJvmMemoryPressure(MetricOptions(props)) + @JvmName("8abbe6fe8c9df31c7c02cf8f2ff374dd99996363ad1f3de815273cee61f4b816") + public override fun metricMasterJVMMemoryPressure(props: MetricOptions.Builder.() -> Unit): Metric + = metricMasterJVMMemoryPressure(MetricOptions(props)) /** * Metric for the number of nodes. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/opensearchservice/EbsOptions.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/opensearchservice/EbsOptions.kt index ce43aec247..d404206064 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/opensearchservice/EbsOptions.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/opensearchservice/EbsOptions.kt @@ -15,8 +15,7 @@ import kotlin.Unit * nodes in the Amazon OpenSearch Service domain. * * For more information, see - * [Amazon EBS] - * (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) + * [Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) * in the Amazon Elastic Compute Cloud Developer Guide. * * Example: @@ -69,8 +68,8 @@ public interface EbsOptions { * The minimum and * maximum size of an EBS volume depends on the EBS volume type and the * instance type to which it is attached. For valid values, see - * [EBS volume size limits] - * (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/limits.html#ebsresource) + * [EBS volume size + * limits](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/limits.html#ebsresource) * in the Amazon OpenSearch Service Developer Guide. * * Default: 10 @@ -115,8 +114,8 @@ public interface EbsOptions { * The minimum and * maximum size of an EBS volume depends on the EBS volume type and the * instance type to which it is attached. For valid values, see - * [EBS volume size limits] - * (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/limits.html#ebsresource) + * [EBS volume size + * limits](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/limits.html#ebsresource) * in the Amazon OpenSearch Service Developer Guide. */ public fun volumeSize(volumeSize: Number) @@ -162,8 +161,8 @@ public interface EbsOptions { * The minimum and * maximum size of an EBS volume depends on the EBS volume type and the * instance type to which it is attached. For valid values, see - * [EBS volume size limits] - * (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/limits.html#ebsresource) + * [EBS volume size + * limits](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/limits.html#ebsresource) * in the Amazon OpenSearch Service Developer Guide. */ override fun volumeSize(volumeSize: Number) { @@ -218,8 +217,8 @@ public interface EbsOptions { * The minimum and * maximum size of an EBS volume depends on the EBS volume type and the * instance type to which it is attached. For valid values, see - * [EBS volume size limits] - * (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/limits.html#ebsresource) + * [EBS volume size + * limits](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/limits.html#ebsresource) * in the Amazon OpenSearch Service Developer Guide. * * Default: 10 diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/opensearchservice/IDomain.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/opensearchservice/IDomain.kt index f4133b1285..a12a72fb68 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/opensearchservice/IDomain.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/opensearchservice/IDomain.kt @@ -170,6 +170,35 @@ public interface IDomain : IResource { @JvmName("f9f702cdc4e375e8b739cdce26ff5c0a5606646a98edb39614863885f1182c7f") public fun metricAutomatedSnapshotFailure(props: MetricOptions.Builder.() -> Unit): Metric + /** + * Metric for CPU utilization. + * + * Default: maximum over 5 minutes + * + * @param props + */ + public fun metricCPUUtilization(): Metric + + /** + * Metric for CPU utilization. + * + * Default: maximum over 5 minutes + * + * @param props + */ + public fun metricCPUUtilization(props: MetricOptions): Metric + + /** + * Metric for CPU utilization. + * + * Default: maximum over 5 minutes + * + * @param props + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("66a273587ca08857c76d1952aa0bb360d86bfe06cc24788a922415fa0fa097ef") + public fun metricCPUUtilization(props: MetricOptions.Builder.() -> Unit): Metric + /** * Metric for the cluster blocking index writes. * @@ -257,35 +286,6 @@ public interface IDomain : IResource { @JvmName("1ef39420c98f9d4cfefd45b8c2db0c21ea1a1e68a7c9b723df1412af465bda2f") public fun metricClusterStatusYellow(props: MetricOptions.Builder.() -> Unit): Metric - /** - * Metric for CPU utilization. - * - * Default: maximum over 5 minutes - * - * @param props - */ - public fun metricCpuUtilization(): Metric - - /** - * Metric for CPU utilization. - * - * Default: maximum over 5 minutes - * - * @param props - */ - public fun metricCpuUtilization(props: MetricOptions): Metric - - /** - * Metric for CPU utilization. - * - * Default: maximum over 5 minutes - * - * @param props - */ - @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("06a38048efcdd43000e7f66d74001004b818625d95136f460bf350a2397a31d0") - public fun metricCpuUtilization(props: MetricOptions.Builder.() -> Unit): Metric - /** * Metric for the storage space of nodes in the cluster. * @@ -351,7 +351,7 @@ public interface IDomain : IResource { * * @param props */ - public fun metricJvmMemoryPressure(): Metric + public fun metricJVMMemoryPressure(): Metric /** * Metric for JVM memory pressure. @@ -360,7 +360,7 @@ public interface IDomain : IResource { * * @param props */ - public fun metricJvmMemoryPressure(props: MetricOptions): Metric + public fun metricJVMMemoryPressure(props: MetricOptions): Metric /** * Metric for JVM memory pressure. @@ -370,8 +370,8 @@ public interface IDomain : IResource { * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("283ffec8edbd9b28227078700405c8b7b7fe0f6bf433f6323ba9205b4c8a528f") - public fun metricJvmMemoryPressure(props: MetricOptions.Builder.() -> Unit): Metric + @JvmName("bbc5860f20525c5c3cf2850d91d7efa180c7058337e1de65c8420bc7be81cc9b") + public fun metricJVMMemoryPressure(props: MetricOptions.Builder.() -> Unit): Metric /** * Metric for KMS key errors. @@ -380,7 +380,7 @@ public interface IDomain : IResource { * * @param props */ - public fun metricKmsKeyError(): Metric + public fun metricKMSKeyError(): Metric /** * Metric for KMS key errors. @@ -389,7 +389,7 @@ public interface IDomain : IResource { * * @param props */ - public fun metricKmsKeyError(props: MetricOptions): Metric + public fun metricKMSKeyError(props: MetricOptions): Metric /** * Metric for KMS key errors. @@ -399,8 +399,8 @@ public interface IDomain : IResource { * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("309d28dee34b268d496bc1e8ba269d5bff9ec10e9e17132d9a884e208a805741") - public fun metricKmsKeyError(props: MetricOptions.Builder.() -> Unit): Metric + @JvmName("e6d547afff79fd0803e3b15eb00be8f5c5c65020938e7e8c527fefe04c3ec7de") + public fun metricKMSKeyError(props: MetricOptions.Builder.() -> Unit): Metric /** * Metric for KMS key being inaccessible. @@ -409,7 +409,7 @@ public interface IDomain : IResource { * * @param props */ - public fun metricKmsKeyInaccessible(): Metric + public fun metricKMSKeyInaccessible(): Metric /** * Metric for KMS key being inaccessible. @@ -418,7 +418,7 @@ public interface IDomain : IResource { * * @param props */ - public fun metricKmsKeyInaccessible(props: MetricOptions): Metric + public fun metricKMSKeyInaccessible(props: MetricOptions): Metric /** * Metric for KMS key being inaccessible. @@ -428,8 +428,8 @@ public interface IDomain : IResource { * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("bfca9e4cdc1ad37f6d57f9fdeb4258e1c6235ab92ed8224c8ee4cda359baaad6") - public fun metricKmsKeyInaccessible(props: MetricOptions.Builder.() -> Unit): Metric + @JvmName("5c4bf93f4e622d4a76178b4868be7efe604fd3d16316e4a05742bea79f81ef77") + public fun metricKMSKeyInaccessible(props: MetricOptions.Builder.() -> Unit): Metric /** * Metric for master CPU utilization. @@ -438,7 +438,7 @@ public interface IDomain : IResource { * * @param props */ - public fun metricMasterCpuUtilization(): Metric + public fun metricMasterCPUUtilization(): Metric /** * Metric for master CPU utilization. @@ -447,7 +447,7 @@ public interface IDomain : IResource { * * @param props */ - public fun metricMasterCpuUtilization(props: MetricOptions): Metric + public fun metricMasterCPUUtilization(props: MetricOptions): Metric /** * Metric for master CPU utilization. @@ -457,8 +457,8 @@ public interface IDomain : IResource { * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("8a46b211229de3f431630b8ea4f99843647a1cab494f599c79138732a397c709") - public fun metricMasterCpuUtilization(props: MetricOptions.Builder.() -> Unit): Metric + @JvmName("9bfbec0deb2fa2aad0f19ca7ed1e5d7e6bd722bd278b8f9e86e0086d51527219") + public fun metricMasterCPUUtilization(props: MetricOptions.Builder.() -> Unit): Metric /** * Metric for master JVM memory pressure. @@ -467,7 +467,7 @@ public interface IDomain : IResource { * * @param props */ - public fun metricMasterJvmMemoryPressure(): Metric + public fun metricMasterJVMMemoryPressure(): Metric /** * Metric for master JVM memory pressure. @@ -476,7 +476,7 @@ public interface IDomain : IResource { * * @param props */ - public fun metricMasterJvmMemoryPressure(props: MetricOptions): Metric + public fun metricMasterJVMMemoryPressure(props: MetricOptions): Metric /** * Metric for master JVM memory pressure. @@ -486,8 +486,8 @@ public interface IDomain : IResource { * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("fbcf8e4882306bcb2bed673a80ed7a54a16cc27adfc1a7fe173fbb566b335350") - public fun metricMasterJvmMemoryPressure(props: MetricOptions.Builder.() -> Unit): Metric + @JvmName("8abbe6fe8c9df31c7c02cf8f2ff374dd99996363ad1f3de815273cee61f4b816") + public fun metricMasterJVMMemoryPressure(props: MetricOptions.Builder.() -> Unit): Metric /** * Metric for the number of nodes. @@ -774,6 +774,38 @@ public interface IDomain : IResource { override fun metricAutomatedSnapshotFailure(props: MetricOptions.Builder.() -> Unit): Metric = metricAutomatedSnapshotFailure(MetricOptions(props)) + /** + * Metric for CPU utilization. + * + * Default: maximum over 5 minutes + * + * @param props + */ + override fun metricCPUUtilization(): Metric = + unwrap(this).metricCPUUtilization().let(Metric::wrap) + + /** + * Metric for CPU utilization. + * + * Default: maximum over 5 minutes + * + * @param props + */ + override fun metricCPUUtilization(props: MetricOptions): Metric = + unwrap(this).metricCPUUtilization(props.let(MetricOptions::unwrap)).let(Metric::wrap) + + /** + * Metric for CPU utilization. + * + * Default: maximum over 5 minutes + * + * @param props + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("66a273587ca08857c76d1952aa0bb360d86bfe06cc24788a922415fa0fa097ef") + override fun metricCPUUtilization(props: MetricOptions.Builder.() -> Unit): Metric = + metricCPUUtilization(MetricOptions(props)) + /** * Metric for the cluster blocking index writes. * @@ -870,38 +902,6 @@ public interface IDomain : IResource { override fun metricClusterStatusYellow(props: MetricOptions.Builder.() -> Unit): Metric = metricClusterStatusYellow(MetricOptions(props)) - /** - * Metric for CPU utilization. - * - * Default: maximum over 5 minutes - * - * @param props - */ - override fun metricCpuUtilization(): Metric = - unwrap(this).metricCPUUtilization().let(Metric::wrap) - - /** - * Metric for CPU utilization. - * - * Default: maximum over 5 minutes - * - * @param props - */ - override fun metricCpuUtilization(props: MetricOptions): Metric = - unwrap(this).metricCPUUtilization(props.let(MetricOptions::unwrap)).let(Metric::wrap) - - /** - * Metric for CPU utilization. - * - * Default: maximum over 5 minutes - * - * @param props - */ - @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("06a38048efcdd43000e7f66d74001004b818625d95136f460bf350a2397a31d0") - override fun metricCpuUtilization(props: MetricOptions.Builder.() -> Unit): Metric = - metricCpuUtilization(MetricOptions(props)) - /** * Metric for the storage space of nodes in the cluster. * @@ -973,7 +973,7 @@ public interface IDomain : IResource { * * @param props */ - override fun metricJvmMemoryPressure(): Metric = + override fun metricJVMMemoryPressure(): Metric = unwrap(this).metricJVMMemoryPressure().let(Metric::wrap) /** @@ -983,7 +983,7 @@ public interface IDomain : IResource { * * @param props */ - override fun metricJvmMemoryPressure(props: MetricOptions): Metric = + override fun metricJVMMemoryPressure(props: MetricOptions): Metric = unwrap(this).metricJVMMemoryPressure(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -994,9 +994,9 @@ public interface IDomain : IResource { * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("283ffec8edbd9b28227078700405c8b7b7fe0f6bf433f6323ba9205b4c8a528f") - override fun metricJvmMemoryPressure(props: MetricOptions.Builder.() -> Unit): Metric = - metricJvmMemoryPressure(MetricOptions(props)) + @JvmName("bbc5860f20525c5c3cf2850d91d7efa180c7058337e1de65c8420bc7be81cc9b") + override fun metricJVMMemoryPressure(props: MetricOptions.Builder.() -> Unit): Metric = + metricJVMMemoryPressure(MetricOptions(props)) /** * Metric for KMS key errors. @@ -1005,7 +1005,7 @@ public interface IDomain : IResource { * * @param props */ - override fun metricKmsKeyError(): Metric = unwrap(this).metricKMSKeyError().let(Metric::wrap) + override fun metricKMSKeyError(): Metric = unwrap(this).metricKMSKeyError().let(Metric::wrap) /** * Metric for KMS key errors. @@ -1014,7 +1014,7 @@ public interface IDomain : IResource { * * @param props */ - override fun metricKmsKeyError(props: MetricOptions): Metric = + override fun metricKMSKeyError(props: MetricOptions): Metric = unwrap(this).metricKMSKeyError(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -1025,9 +1025,9 @@ public interface IDomain : IResource { * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("309d28dee34b268d496bc1e8ba269d5bff9ec10e9e17132d9a884e208a805741") - override fun metricKmsKeyError(props: MetricOptions.Builder.() -> Unit): Metric = - metricKmsKeyError(MetricOptions(props)) + @JvmName("e6d547afff79fd0803e3b15eb00be8f5c5c65020938e7e8c527fefe04c3ec7de") + override fun metricKMSKeyError(props: MetricOptions.Builder.() -> Unit): Metric = + metricKMSKeyError(MetricOptions(props)) /** * Metric for KMS key being inaccessible. @@ -1036,7 +1036,7 @@ public interface IDomain : IResource { * * @param props */ - override fun metricKmsKeyInaccessible(): Metric = + override fun metricKMSKeyInaccessible(): Metric = unwrap(this).metricKMSKeyInaccessible().let(Metric::wrap) /** @@ -1046,7 +1046,7 @@ public interface IDomain : IResource { * * @param props */ - override fun metricKmsKeyInaccessible(props: MetricOptions): Metric = + override fun metricKMSKeyInaccessible(props: MetricOptions): Metric = unwrap(this).metricKMSKeyInaccessible(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -1057,9 +1057,9 @@ public interface IDomain : IResource { * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("bfca9e4cdc1ad37f6d57f9fdeb4258e1c6235ab92ed8224c8ee4cda359baaad6") - override fun metricKmsKeyInaccessible(props: MetricOptions.Builder.() -> Unit): Metric = - metricKmsKeyInaccessible(MetricOptions(props)) + @JvmName("5c4bf93f4e622d4a76178b4868be7efe604fd3d16316e4a05742bea79f81ef77") + override fun metricKMSKeyInaccessible(props: MetricOptions.Builder.() -> Unit): Metric = + metricKMSKeyInaccessible(MetricOptions(props)) /** * Metric for master CPU utilization. @@ -1068,7 +1068,7 @@ public interface IDomain : IResource { * * @param props */ - override fun metricMasterCpuUtilization(): Metric = + override fun metricMasterCPUUtilization(): Metric = unwrap(this).metricMasterCPUUtilization().let(Metric::wrap) /** @@ -1078,7 +1078,7 @@ public interface IDomain : IResource { * * @param props */ - override fun metricMasterCpuUtilization(props: MetricOptions): Metric = + override fun metricMasterCPUUtilization(props: MetricOptions): Metric = unwrap(this).metricMasterCPUUtilization(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -1089,9 +1089,9 @@ public interface IDomain : IResource { * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("8a46b211229de3f431630b8ea4f99843647a1cab494f599c79138732a397c709") - override fun metricMasterCpuUtilization(props: MetricOptions.Builder.() -> Unit): Metric = - metricMasterCpuUtilization(MetricOptions(props)) + @JvmName("9bfbec0deb2fa2aad0f19ca7ed1e5d7e6bd722bd278b8f9e86e0086d51527219") + override fun metricMasterCPUUtilization(props: MetricOptions.Builder.() -> Unit): Metric = + metricMasterCPUUtilization(MetricOptions(props)) /** * Metric for master JVM memory pressure. @@ -1100,7 +1100,7 @@ public interface IDomain : IResource { * * @param props */ - override fun metricMasterJvmMemoryPressure(): Metric = + override fun metricMasterJVMMemoryPressure(): Metric = unwrap(this).metricMasterJVMMemoryPressure().let(Metric::wrap) /** @@ -1110,7 +1110,7 @@ public interface IDomain : IResource { * * @param props */ - override fun metricMasterJvmMemoryPressure(props: MetricOptions): Metric = + override fun metricMasterJVMMemoryPressure(props: MetricOptions): Metric = unwrap(this).metricMasterJVMMemoryPressure(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -1121,9 +1121,9 @@ public interface IDomain : IResource { * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("fbcf8e4882306bcb2bed673a80ed7a54a16cc27adfc1a7fe173fbb566b335350") - override fun metricMasterJvmMemoryPressure(props: MetricOptions.Builder.() -> Unit): Metric = - metricMasterJvmMemoryPressure(MetricOptions(props)) + @JvmName("8abbe6fe8c9df31c7c02cf8f2ff374dd99996363ad1f3de815273cee61f4b816") + override fun metricMasterJVMMemoryPressure(props: MetricOptions.Builder.() -> Unit): Metric = + metricMasterJVMMemoryPressure(MetricOptions(props)) /** * Metric for the number of nodes. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/opensearchservice/ZoneAwarenessConfig.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/opensearchservice/ZoneAwarenessConfig.kt index 44407f48fe..361ee07cfe 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/opensearchservice/ZoneAwarenessConfig.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/opensearchservice/ZoneAwarenessConfig.kt @@ -52,8 +52,8 @@ public interface ZoneAwarenessConfig { * in the same region to prevent data loss and minimize downtime in the event * of node or data center failure. Don't enable zone awareness if your cluster * has no replica index shards or is a single-node cluster. For more information, - * see [Configuring a Multi-AZ Domain] - * (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-multiaz.html) + * see [Configuring a Multi-AZ + * Domain](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-multiaz.html) * in the Amazon OpenSearch Service Developer Guide. * * Default: - false @@ -80,8 +80,8 @@ public interface ZoneAwarenessConfig { * in the same region to prevent data loss and minimize downtime in the event * of node or data center failure. Don't enable zone awareness if your cluster * has no replica index shards or is a single-node cluster. For more information, - * see [Configuring a Multi-AZ Domain] - * (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-multiaz.html) + * see [Configuring a Multi-AZ + * Domain](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-multiaz.html) * in the Amazon OpenSearch Service Developer Guide. */ public fun enabled(enabled: Boolean) @@ -109,8 +109,8 @@ public interface ZoneAwarenessConfig { * in the same region to prevent data loss and minimize downtime in the event * of node or data center failure. Don't enable zone awareness if your cluster * has no replica index shards or is a single-node cluster. For more information, - * see [Configuring a Multi-AZ Domain] - * (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-multiaz.html) + * see [Configuring a Multi-AZ + * Domain](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-multiaz.html) * in the Amazon OpenSearch Service Developer Guide. */ override fun enabled(enabled: Boolean) { @@ -142,8 +142,8 @@ public interface ZoneAwarenessConfig { * in the same region to prevent data loss and minimize downtime in the event * of node or data center failure. Don't enable zone awareness if your cluster * has no replica index shards or is a single-node cluster. For more information, - * see [Configuring a Multi-AZ Domain] - * (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-multiaz.html) + * see [Configuring a Multi-AZ + * Domain](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-multiaz.html) * in the Amazon OpenSearch Service Developer Guide. * * Default: - false diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/opsworks/CfnLayer.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/opsworks/CfnLayer.kt index 99d3b0f6a1..f0f41028e8 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/opsworks/CfnLayer.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/opsworks/CfnLayer.kt @@ -2095,6 +2095,16 @@ public open class CfnLayer( */ public fun deploy(vararg deploy: String) + /** + * @param setup An array of custom recipe names to be run following a `setup` event. + */ + public fun setup(setup: List) + + /** + * @param setup An array of custom recipe names to be run following a `setup` event. + */ + public fun setup(vararg setup: String) + /** * @param shutdown An array of custom recipe names to be run following a `shutdown` event. */ @@ -2114,16 +2124,6 @@ public open class CfnLayer( * @param undeploy An array of custom recipe names to be run following a `undeploy` event. */ public fun undeploy(vararg undeploy: String) - - /** - * @param setup An array of custom recipe names to be run following a `setup` event. - */ - public fun up(setup: List) - - /** - * @param setup An array of custom recipe names to be run following a `setup` event. - */ - public fun up(vararg setup: String) } private class BuilderImpl : Builder { @@ -2155,6 +2155,18 @@ public open class CfnLayer( */ override fun deploy(vararg deploy: String): Unit = deploy(deploy.toList()) + /** + * @param setup An array of custom recipe names to be run following a `setup` event. + */ + override fun setup(setup: List) { + cdkBuilder.setup(setup) + } + + /** + * @param setup An array of custom recipe names to be run following a `setup` event. + */ + override fun setup(vararg setup: String): Unit = setup(setup.toList()) + /** * @param shutdown An array of custom recipe names to be run following a `shutdown` event. */ @@ -2179,18 +2191,6 @@ public open class CfnLayer( */ override fun undeploy(vararg undeploy: String): Unit = undeploy(undeploy.toList()) - /** - * @param setup An array of custom recipe names to be run following a `setup` event. - */ - override fun up(setup: List) { - cdkBuilder.setup(setup) - } - - /** - * @param setup An array of custom recipe names to be run following a `setup` event. - */ - override fun up(vararg setup: String): Unit = up(setup.toList()) - public fun build(): software.amazon.awscdk.services.opsworks.CfnLayer.RecipesProperty = cdkBuilder.build() } diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/personalize/CfnDataset.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/personalize/CfnDataset.kt index 0b2c307712..46d7381a93 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/personalize/CfnDataset.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/personalize/CfnDataset.kt @@ -28,8 +28,8 @@ import software.constructs.Construct as SoftwareConstructsConstruct * * Item interactions * * Items * * Users - * * Action interactions - * * Actions + * * Action interactions (you can't use CloudFormation to create an Action interactions dataset) + * * Actions (you can't use CloudFormation to create an Actions dataset) * * Each dataset type has an associated schema with required field types. Only the `Item * interactions` dataset is required in order to train a model (also referred to as creating a @@ -247,8 +247,10 @@ public open class CfnDataset( * * Interactions * * Items * * Users - * * Actions - * * Action_Interactions + * + * + * You can't use CloudFormation to create an Action Interactions or Actions dataset. + * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-personalize-dataset.html#cfn-personalize-dataset-datasettype) * @param datasetType One of the following values:. @@ -341,8 +343,10 @@ public open class CfnDataset( * * Interactions * * Items * * Users - * * Actions - * * Action_Interactions + * + * + * You can't use CloudFormation to create an Action Interactions or Actions dataset. + * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-personalize-dataset.html#cfn-personalize-dataset-datasettype) * @param datasetType One of the following values:. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/personalize/CfnDatasetProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/personalize/CfnDatasetProps.kt index 0c3d62be5c..7ea6b867b3 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/personalize/CfnDatasetProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/personalize/CfnDatasetProps.kt @@ -64,8 +64,10 @@ public interface CfnDatasetProps { * * Interactions * * Items * * Users - * * Actions - * * Action_Interactions + * + * + * You can't use CloudFormation to create an Action Interactions or Actions dataset. + * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-personalize-dataset.html#cfn-personalize-dataset-datasettype) */ @@ -127,8 +129,9 @@ public interface CfnDatasetProps { * * Interactions * * Items * * Users - * * Actions - * * Action_Interactions + * + * + * You can't use CloudFormation to create an Action Interactions or Actions dataset. */ public fun datasetType(datasetType: String) @@ -191,8 +194,9 @@ public interface CfnDatasetProps { * * Interactions * * Items * * Users - * * Actions - * * Action_Interactions + * + * + * You can't use CloudFormation to create an Action Interactions or Actions dataset. */ override fun datasetType(datasetType: String) { cdkBuilder.datasetType(datasetType) @@ -243,8 +247,10 @@ public interface CfnDatasetProps { * * Interactions * * Items * * Users - * * Actions - * * Action_Interactions + * + * + * You can't use CloudFormation to create an Action Interactions or Actions dataset. + * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-personalize-dataset.html#cfn-personalize-dataset-datasettype) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/pinpoint/CfnCampaign.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/pinpoint/CfnCampaign.kt index 70b11cbdd5..8ae82e13ca 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/pinpoint/CfnCampaign.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/pinpoint/CfnCampaign.kt @@ -4921,9 +4921,13 @@ public open class CfnCampaign( public fun defaultMessage(): Any? = unwrap(this).getDefaultMessage() /** - * The message that the campaign sends through the email channel. + * The message that the campaign sends through the email channel. If specified, this message + * overrides the default message. + * + * + * The maximum email message size is 200KB. You can use email templates to send larger email + * messages. * - * If specified, this message overrides the default message. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-messageconfiguration.html#cfn-pinpoint-campaign-messageconfiguration-emailmessage) */ @@ -5079,20 +5083,29 @@ public open class CfnCampaign( public fun defaultMessage(defaultMessage: MessageProperty.Builder.() -> Unit) /** - * @param emailMessage The message that the campaign sends through the email channel. - * If specified, this message overrides the default message. + * @param emailMessage The message that the campaign sends through the email channel. If + * specified, this message overrides the default message. + * + * The maximum email message size is 200KB. You can use email templates to send larger email + * messages. */ public fun emailMessage(emailMessage: IResolvable) /** - * @param emailMessage The message that the campaign sends through the email channel. - * If specified, this message overrides the default message. + * @param emailMessage The message that the campaign sends through the email channel. If + * specified, this message overrides the default message. + * + * The maximum email message size is 200KB. You can use email templates to send larger email + * messages. */ public fun emailMessage(emailMessage: CampaignEmailMessageProperty) /** - * @param emailMessage The message that the campaign sends through the email channel. - * If specified, this message overrides the default message. + * @param emailMessage The message that the campaign sends through the email channel. If + * specified, this message overrides the default message. + * + * The maximum email message size is 200KB. You can use email templates to send larger email + * messages. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("27371de087267f4f96761f1118ec73d5c86b4e657bf26ce2ba84ab880dae2c0d") @@ -5312,24 +5325,33 @@ public open class CfnCampaign( defaultMessage(MessageProperty(defaultMessage)) /** - * @param emailMessage The message that the campaign sends through the email channel. - * If specified, this message overrides the default message. + * @param emailMessage The message that the campaign sends through the email channel. If + * specified, this message overrides the default message. + * + * The maximum email message size is 200KB. You can use email templates to send larger email + * messages. */ override fun emailMessage(emailMessage: IResolvable) { cdkBuilder.emailMessage(emailMessage.let(IResolvable::unwrap)) } /** - * @param emailMessage The message that the campaign sends through the email channel. - * If specified, this message overrides the default message. + * @param emailMessage The message that the campaign sends through the email channel. If + * specified, this message overrides the default message. + * + * The maximum email message size is 200KB. You can use email templates to send larger email + * messages. */ override fun emailMessage(emailMessage: CampaignEmailMessageProperty) { cdkBuilder.emailMessage(emailMessage.let(CampaignEmailMessageProperty::unwrap)) } /** - * @param emailMessage The message that the campaign sends through the email channel. - * If specified, this message overrides the default message. + * @param emailMessage The message that the campaign sends through the email channel. If + * specified, this message overrides the default message. + * + * The maximum email message size is 200KB. You can use email templates to send larger email + * messages. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("27371de087267f4f96761f1118ec73d5c86b4e657bf26ce2ba84ab880dae2c0d") @@ -5472,9 +5494,13 @@ public open class CfnCampaign( override fun defaultMessage(): Any? = unwrap(this).getDefaultMessage() /** - * The message that the campaign sends through the email channel. + * The message that the campaign sends through the email channel. If specified, this message + * overrides the default message. + * + * + * The maximum email message size is 200KB. You can use email templates to send larger email + * messages. * - * If specified, this message overrides the default message. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-messageconfiguration.html#cfn-pinpoint-campaign-messageconfiguration-emailmessage) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/pinpoint/CfnEmailChannel.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/pinpoint/CfnEmailChannel.kt index c724e6ad13..893d1ddf65 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/pinpoint/CfnEmailChannel.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/pinpoint/CfnEmailChannel.kt @@ -36,6 +36,7 @@ import software.constructs.Construct as SoftwareConstructsConstruct * // the properties below are optional * .configurationSet("configurationSet") * .enabled(false) + * .orchestrationSendingRoleArn("orchestrationSendingRoleArn") * .roleArn("roleArn") * .build(); * ``` @@ -154,6 +155,19 @@ public open class CfnEmailChannel( unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) } + /** + * + */ + public open fun orchestrationSendingRoleArn(): String? = + unwrap(this).getOrchestrationSendingRoleArn() + + /** + * + */ + public open fun orchestrationSendingRoleArn(`value`: String) { + unwrap(this).setOrchestrationSendingRoleArn(`value`) + } + /** * The ARN of the AWS Identity and Access Management (IAM) role that you want Amazon Pinpoint to * use when it submits email-related event data for the channel. @@ -231,6 +245,12 @@ public open class CfnEmailChannel( */ public fun identity(identity: String) + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-emailchannel.html#cfn-pinpoint-emailchannel-orchestrationsendingrolearn) + * @param orchestrationSendingRoleArn + */ + public fun orchestrationSendingRoleArn(orchestrationSendingRoleArn: String) + /** * The ARN of the AWS Identity and Access Management (IAM) role that you want Amazon Pinpoint to * use when it submits email-related event data for the channel. @@ -319,6 +339,14 @@ public open class CfnEmailChannel( cdkBuilder.identity(identity) } + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-emailchannel.html#cfn-pinpoint-emailchannel-orchestrationsendingrolearn) + * @param orchestrationSendingRoleArn + */ + override fun orchestrationSendingRoleArn(orchestrationSendingRoleArn: String) { + cdkBuilder.orchestrationSendingRoleArn(orchestrationSendingRoleArn) + } + /** * The ARN of the AWS Identity and Access Management (IAM) role that you want Amazon Pinpoint to * use when it submits email-related event data for the channel. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/pinpoint/CfnEmailChannelProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/pinpoint/CfnEmailChannelProps.kt index c72662788e..fdd3906eef 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/pinpoint/CfnEmailChannelProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/pinpoint/CfnEmailChannelProps.kt @@ -27,6 +27,7 @@ import kotlin.Unit * // the properties below are optional * .configurationSet("configurationSet") * .enabled(false) + * .orchestrationSendingRoleArn("orchestrationSendingRoleArn") * .roleArn("roleArn") * .build(); * ``` @@ -74,6 +75,11 @@ public interface CfnEmailChannelProps { */ public fun identity(): String + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-emailchannel.html#cfn-pinpoint-emailchannel-orchestrationsendingrolearn) + */ + public fun orchestrationSendingRoleArn(): String? = unwrap(this).getOrchestrationSendingRoleArn() + /** * The ARN of the AWS Identity and Access Management (IAM) role that you want Amazon Pinpoint to * use when it submits email-related event data for the channel. @@ -122,6 +128,11 @@ public interface CfnEmailChannelProps { */ public fun identity(identity: String) + /** + * @param orchestrationSendingRoleArn the value to be set. + */ + public fun orchestrationSendingRoleArn(orchestrationSendingRoleArn: String) + /** * @param roleArn The ARN of the AWS Identity and Access Management (IAM) role that you want * Amazon Pinpoint to use when it submits email-related event data for the channel. @@ -180,6 +191,13 @@ public interface CfnEmailChannelProps { cdkBuilder.identity(identity) } + /** + * @param orchestrationSendingRoleArn the value to be set. + */ + override fun orchestrationSendingRoleArn(orchestrationSendingRoleArn: String) { + cdkBuilder.orchestrationSendingRoleArn(orchestrationSendingRoleArn) + } + /** * @param roleArn The ARN of the AWS Identity and Access Management (IAM) role that you want * Amazon Pinpoint to use when it submits email-related event data for the channel. @@ -235,6 +253,12 @@ public interface CfnEmailChannelProps { */ override fun identity(): String = unwrap(this).getIdentity() + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-emailchannel.html#cfn-pinpoint-emailchannel-orchestrationsendingrolearn) + */ + override fun orchestrationSendingRoleArn(): String? = + unwrap(this).getOrchestrationSendingRoleArn() + /** * The ARN of the AWS Identity and Access Management (IAM) role that you want Amazon Pinpoint to * use when it submits email-related event data for the channel. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/pipes/CfnPipe.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/pipes/CfnPipe.kt index 6c2ac51f4d..076836d621 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/pipes/CfnPipe.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/pipes/CfnPipe.kt @@ -7051,6 +7051,15 @@ public open class CfnPipe( /** * The parameters for using a stream as a source. * + * A *self managed* cluster refers to any Apache Kafka cluster not hosted by AWS . This includes + * both clusters you manage yourself, as well as those hosted by a third-party provider, such as + * [Confluent Cloud](https://docs.aws.amazon.com/https://www.confluent.io/) , + * [CloudKarafka](https://docs.aws.amazon.com/https://www.cloudkarafka.com/) , or + * [Redpanda](https://docs.aws.amazon.com/https://redpanda.com/) . For more information, see + * [Apache Kafka streams as a + * source](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes-kafka.html) in the + * *Amazon EventBridge User Guide* . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pipes-pipe-pipesourceparameters.html#cfn-pipes-pipe-pipesourceparameters-selfmanagedkafkaparameters) */ public fun selfManagedKafkaParameters(): Any? = unwrap(this).getSelfManagedKafkaParameters() @@ -7199,17 +7208,41 @@ public open class CfnPipe( /** * @param selfManagedKafkaParameters The parameters for using a stream as a source. + * A *self managed* cluster refers to any Apache Kafka cluster not hosted by AWS . This + * includes both clusters you manage yourself, as well as those hosted by a third-party provider, + * such as [Confluent Cloud](https://docs.aws.amazon.com/https://www.confluent.io/) , + * [CloudKarafka](https://docs.aws.amazon.com/https://www.cloudkarafka.com/) , or + * [Redpanda](https://docs.aws.amazon.com/https://redpanda.com/) . For more information, see + * [Apache Kafka streams as a + * source](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes-kafka.html) in the + * *Amazon EventBridge User Guide* . */ public fun selfManagedKafkaParameters(selfManagedKafkaParameters: IResolvable) /** * @param selfManagedKafkaParameters The parameters for using a stream as a source. + * A *self managed* cluster refers to any Apache Kafka cluster not hosted by AWS . This + * includes both clusters you manage yourself, as well as those hosted by a third-party provider, + * such as [Confluent Cloud](https://docs.aws.amazon.com/https://www.confluent.io/) , + * [CloudKarafka](https://docs.aws.amazon.com/https://www.cloudkarafka.com/) , or + * [Redpanda](https://docs.aws.amazon.com/https://redpanda.com/) . For more information, see + * [Apache Kafka streams as a + * source](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes-kafka.html) in the + * *Amazon EventBridge User Guide* . */ public fun selfManagedKafkaParameters(selfManagedKafkaParameters: PipeSourceSelfManagedKafkaParametersProperty) /** * @param selfManagedKafkaParameters The parameters for using a stream as a source. + * A *self managed* cluster refers to any Apache Kafka cluster not hosted by AWS . This + * includes both clusters you manage yourself, as well as those hosted by a third-party provider, + * such as [Confluent Cloud](https://docs.aws.amazon.com/https://www.confluent.io/) , + * [CloudKarafka](https://docs.aws.amazon.com/https://www.cloudkarafka.com/) , or + * [Redpanda](https://docs.aws.amazon.com/https://redpanda.com/) . For more information, see + * [Apache Kafka streams as a + * source](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes-kafka.html) in the + * *Amazon EventBridge User Guide* . */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("fc7c2eb898cf64ad061c5d11e2ae61bf1e56548d691fa7599e2d78c81aa8bdf6") @@ -7407,6 +7440,14 @@ public open class CfnPipe( /** * @param selfManagedKafkaParameters The parameters for using a stream as a source. + * A *self managed* cluster refers to any Apache Kafka cluster not hosted by AWS . This + * includes both clusters you manage yourself, as well as those hosted by a third-party provider, + * such as [Confluent Cloud](https://docs.aws.amazon.com/https://www.confluent.io/) , + * [CloudKarafka](https://docs.aws.amazon.com/https://www.cloudkarafka.com/) , or + * [Redpanda](https://docs.aws.amazon.com/https://redpanda.com/) . For more information, see + * [Apache Kafka streams as a + * source](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes-kafka.html) in the + * *Amazon EventBridge User Guide* . */ override fun selfManagedKafkaParameters(selfManagedKafkaParameters: IResolvable) { cdkBuilder.selfManagedKafkaParameters(selfManagedKafkaParameters.let(IResolvable::unwrap)) @@ -7414,6 +7455,14 @@ public open class CfnPipe( /** * @param selfManagedKafkaParameters The parameters for using a stream as a source. + * A *self managed* cluster refers to any Apache Kafka cluster not hosted by AWS . This + * includes both clusters you manage yourself, as well as those hosted by a third-party provider, + * such as [Confluent Cloud](https://docs.aws.amazon.com/https://www.confluent.io/) , + * [CloudKarafka](https://docs.aws.amazon.com/https://www.cloudkarafka.com/) , or + * [Redpanda](https://docs.aws.amazon.com/https://redpanda.com/) . For more information, see + * [Apache Kafka streams as a + * source](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes-kafka.html) in the + * *Amazon EventBridge User Guide* . */ override fun selfManagedKafkaParameters(selfManagedKafkaParameters: PipeSourceSelfManagedKafkaParametersProperty) { @@ -7422,6 +7471,14 @@ public open class CfnPipe( /** * @param selfManagedKafkaParameters The parameters for using a stream as a source. + * A *self managed* cluster refers to any Apache Kafka cluster not hosted by AWS . This + * includes both clusters you manage yourself, as well as those hosted by a third-party provider, + * such as [Confluent Cloud](https://docs.aws.amazon.com/https://www.confluent.io/) , + * [CloudKarafka](https://docs.aws.amazon.com/https://www.cloudkarafka.com/) , or + * [Redpanda](https://docs.aws.amazon.com/https://redpanda.com/) . For more information, see + * [Apache Kafka streams as a + * source](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes-kafka.html) in the + * *Amazon EventBridge User Guide* . */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("fc7c2eb898cf64ad061c5d11e2ae61bf1e56548d691fa7599e2d78c81aa8bdf6") @@ -7513,6 +7570,15 @@ public open class CfnPipe( /** * The parameters for using a stream as a source. * + * A *self managed* cluster refers to any Apache Kafka cluster not hosted by AWS . This + * includes both clusters you manage yourself, as well as those hosted by a third-party provider, + * such as [Confluent Cloud](https://docs.aws.amazon.com/https://www.confluent.io/) , + * [CloudKarafka](https://docs.aws.amazon.com/https://www.cloudkarafka.com/) , or + * [Redpanda](https://docs.aws.amazon.com/https://redpanda.com/) . For more information, see + * [Apache Kafka streams as a + * source](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes-kafka.html) in the + * *Amazon EventBridge User Guide* . + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pipes-pipe-pipesourceparameters.html#cfn-pipes-pipe-pipesourceparameters-selfmanagedkafkaparameters) */ override fun selfManagedKafkaParameters(): Any? = unwrap(this).getSelfManagedKafkaParameters() @@ -7770,6 +7836,15 @@ public open class CfnPipe( /** * The parameters for using a stream as a source. * + * A *self managed* cluster refers to any Apache Kafka cluster not hosted by AWS . This includes + * both clusters you manage yourself, as well as those hosted by a third-party provider, such as + * [Confluent Cloud](https://docs.aws.amazon.com/https://www.confluent.io/) , + * [CloudKarafka](https://docs.aws.amazon.com/https://www.cloudkarafka.com/) , or + * [Redpanda](https://docs.aws.amazon.com/https://redpanda.com/) . For more information, see [Apache + * Kafka streams as a + * source](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes-kafka.html) in the + * *Amazon EventBridge User Guide* . + * * Example: * * ``` diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/quicksight/CfnAnalysis.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/quicksight/CfnAnalysis.kt index fbc5b38647..86b598e502 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/quicksight/CfnAnalysis.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/quicksight/CfnAnalysis.kt @@ -21738,21 +21738,21 @@ public open class CfnAnalysis( * @param settings The options that determine the presentation of line series associated to * the field. */ - public fun tings(settings: IResolvable) + public fun settings(settings: IResolvable) /** * @param settings The options that determine the presentation of line series associated to * the field. */ - public fun tings(settings: LineChartSeriesSettingsProperty) + public fun settings(settings: LineChartSeriesSettingsProperty) /** * @param settings The options that determine the presentation of line series associated to * the field. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("571703fecfae31262d3cdc90936fdc44bc077241c2325b743db5b69a79d13630") - public fun tings(settings: LineChartSeriesSettingsProperty.Builder.() -> Unit) + @JvmName("225f32c952379c62ac9fc7debbf907c144486ab03b9560a96bcdaf047f2829ee") + public fun settings(settings: LineChartSeriesSettingsProperty.Builder.() -> Unit) } private class BuilderImpl : Builder { @@ -21786,7 +21786,7 @@ public open class CfnAnalysis( * @param settings The options that determine the presentation of line series associated to * the field. */ - override fun tings(settings: IResolvable) { + override fun settings(settings: IResolvable) { cdkBuilder.settings(settings.let(IResolvable::unwrap)) } @@ -21794,7 +21794,7 @@ public open class CfnAnalysis( * @param settings The options that determine the presentation of line series associated to * the field. */ - override fun tings(settings: LineChartSeriesSettingsProperty) { + override fun settings(settings: LineChartSeriesSettingsProperty) { cdkBuilder.settings(settings.let(LineChartSeriesSettingsProperty::unwrap)) } @@ -21803,9 +21803,9 @@ public open class CfnAnalysis( * the field. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("571703fecfae31262d3cdc90936fdc44bc077241c2325b743db5b69a79d13630") - override fun tings(settings: LineChartSeriesSettingsProperty.Builder.() -> Unit): Unit = - tings(LineChartSeriesSettingsProperty(settings)) + @JvmName("225f32c952379c62ac9fc7debbf907c144486ab03b9560a96bcdaf047f2829ee") + override fun settings(settings: LineChartSeriesSettingsProperty.Builder.() -> Unit): Unit = + settings(LineChartSeriesSettingsProperty(settings)) public fun build(): software.amazon.awscdk.services.quicksight.CfnAnalysis.DataFieldSeriesItemProperty = @@ -30416,21 +30416,21 @@ public open class CfnAnalysis( * @param settings The options that determine the presentation of line series associated to * the field. */ - public fun tings(settings: IResolvable) + public fun settings(settings: IResolvable) /** * @param settings The options that determine the presentation of line series associated to * the field. */ - public fun tings(settings: LineChartSeriesSettingsProperty) + public fun settings(settings: LineChartSeriesSettingsProperty) /** * @param settings The options that determine the presentation of line series associated to * the field. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("2e302c0d5c8deaea5e877e9a3554efb723ca11328014bfa98b85fdbbfd48a863") - public fun tings(settings: LineChartSeriesSettingsProperty.Builder.() -> Unit) + @JvmName("f097b7aa2c4e7e1b8ff57b547fc9e176be0a64a99ba4426f316cf52ffd287582") + public fun settings(settings: LineChartSeriesSettingsProperty.Builder.() -> Unit) } private class BuilderImpl : Builder { @@ -30456,7 +30456,7 @@ public open class CfnAnalysis( * @param settings The options that determine the presentation of line series associated to * the field. */ - override fun tings(settings: IResolvable) { + override fun settings(settings: IResolvable) { cdkBuilder.settings(settings.let(IResolvable::unwrap)) } @@ -30464,7 +30464,7 @@ public open class CfnAnalysis( * @param settings The options that determine the presentation of line series associated to * the field. */ - override fun tings(settings: LineChartSeriesSettingsProperty) { + override fun settings(settings: LineChartSeriesSettingsProperty) { cdkBuilder.settings(settings.let(LineChartSeriesSettingsProperty::unwrap)) } @@ -30473,9 +30473,9 @@ public open class CfnAnalysis( * the field. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("2e302c0d5c8deaea5e877e9a3554efb723ca11328014bfa98b85fdbbfd48a863") - override fun tings(settings: LineChartSeriesSettingsProperty.Builder.() -> Unit): Unit = - tings(LineChartSeriesSettingsProperty(settings)) + @JvmName("f097b7aa2c4e7e1b8ff57b547fc9e176be0a64a99ba4426f316cf52ffd287582") + override fun settings(settings: LineChartSeriesSettingsProperty.Builder.() -> Unit): Unit = + settings(LineChartSeriesSettingsProperty(settings)) public fun build(): software.amazon.awscdk.services.quicksight.CfnAnalysis.FieldSeriesItemProperty = @@ -37305,7 +37305,11 @@ public open class CfnAnalysis( */ public interface FilterScopeConfigurationProperty { /** - * The configuration for applying a filter to all sheets. + * The configuration that applies a filter to all sheets. + * + * When you choose `AllSheets` as the value for a `FilterScopeConfiguration` , this filter is + * applied to all visuals of all sheets in an Analysis, Dashboard, or Template. The + * `AllSheetsFilterScopeConfiguration` is chosen. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-filterscopeconfiguration.html#cfn-quicksight-analysis-filterscopeconfiguration-allsheets) */ @@ -37324,7 +37328,10 @@ public open class CfnAnalysis( @CdkDslMarker public interface Builder { /** - * @param allSheets The configuration for applying a filter to all sheets. + * @param allSheets The configuration that applies a filter to all sheets. + * When you choose `AllSheets` as the value for a `FilterScopeConfiguration` , this filter is + * applied to all visuals of all sheets in an Analysis, Dashboard, or Template. The + * `AllSheetsFilterScopeConfiguration` is chosen. */ public fun allSheets(allSheets: Any) @@ -37354,7 +37361,10 @@ public open class CfnAnalysis( software.amazon.awscdk.services.quicksight.CfnAnalysis.FilterScopeConfigurationProperty.builder() /** - * @param allSheets The configuration for applying a filter to all sheets. + * @param allSheets The configuration that applies a filter to all sheets. + * When you choose `AllSheets` as the value for a `FilterScopeConfiguration` , this filter is + * applied to all visuals of all sheets in an Analysis, Dashboard, or Template. The + * `AllSheetsFilterScopeConfiguration` is chosen. */ override fun allSheets(allSheets: Any) { cdkBuilder.allSheets(allSheets) @@ -37392,7 +37402,11 @@ public open class CfnAnalysis( cdkObject: software.amazon.awscdk.services.quicksight.CfnAnalysis.FilterScopeConfigurationProperty, ) : CdkObject(cdkObject), FilterScopeConfigurationProperty { /** - * The configuration for applying a filter to all sheets. + * The configuration that applies a filter to all sheets. + * + * When you choose `AllSheets` as the value for a `FilterScopeConfiguration` , this filter is + * applied to all visuals of all sheets in an Analysis, Dashboard, or Template. The + * `AllSheetsFilterScopeConfiguration` is chosen. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-filterscopeconfiguration.html#cfn-quicksight-analysis-filterscopeconfiguration-allsheets) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/quicksight/CfnDashboard.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/quicksight/CfnDashboard.kt index 49d5b2842e..dbe0116ea2 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/quicksight/CfnDashboard.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/quicksight/CfnDashboard.kt @@ -78,7 +78,7 @@ public open class CfnDashboard( public open fun attrLastUpdatedTime(): String = unwrap(this).getAttrLastUpdatedTime() /** - * + * Dashboard version.

. */ public open fun attrVersion(): IResolvable = unwrap(this).getAttrVersion().let(IResolvable::wrap) @@ -23300,21 +23300,21 @@ public open class CfnDashboard( * @param settings The options that determine the presentation of line series associated to * the field. */ - public fun tings(settings: IResolvable) + public fun settings(settings: IResolvable) /** * @param settings The options that determine the presentation of line series associated to * the field. */ - public fun tings(settings: LineChartSeriesSettingsProperty) + public fun settings(settings: LineChartSeriesSettingsProperty) /** * @param settings The options that determine the presentation of line series associated to * the field. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("97d154e22afd7f40c2dcaf7dde3d93f94e51e775ec334af4445811bc9fecaa87") - public fun tings(settings: LineChartSeriesSettingsProperty.Builder.() -> Unit) + @JvmName("165d9fe5516af2fb04063d2bb81241600f248768f7320625c46fb88a774160c8") + public fun settings(settings: LineChartSeriesSettingsProperty.Builder.() -> Unit) } private class BuilderImpl : Builder { @@ -23348,7 +23348,7 @@ public open class CfnDashboard( * @param settings The options that determine the presentation of line series associated to * the field. */ - override fun tings(settings: IResolvable) { + override fun settings(settings: IResolvable) { cdkBuilder.settings(settings.let(IResolvable::unwrap)) } @@ -23356,7 +23356,7 @@ public open class CfnDashboard( * @param settings The options that determine the presentation of line series associated to * the field. */ - override fun tings(settings: LineChartSeriesSettingsProperty) { + override fun settings(settings: LineChartSeriesSettingsProperty) { cdkBuilder.settings(settings.let(LineChartSeriesSettingsProperty::unwrap)) } @@ -23365,9 +23365,9 @@ public open class CfnDashboard( * the field. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("97d154e22afd7f40c2dcaf7dde3d93f94e51e775ec334af4445811bc9fecaa87") - override fun tings(settings: LineChartSeriesSettingsProperty.Builder.() -> Unit): Unit = - tings(LineChartSeriesSettingsProperty(settings)) + @JvmName("165d9fe5516af2fb04063d2bb81241600f248768f7320625c46fb88a774160c8") + override fun settings(settings: LineChartSeriesSettingsProperty.Builder.() -> Unit): Unit = + settings(LineChartSeriesSettingsProperty(settings)) public fun build(): software.amazon.awscdk.services.quicksight.CfnDashboard.DataFieldSeriesItemProperty = @@ -32483,21 +32483,21 @@ public open class CfnDashboard( * @param settings The options that determine the presentation of line series associated to * the field. */ - public fun tings(settings: IResolvable) + public fun settings(settings: IResolvable) /** * @param settings The options that determine the presentation of line series associated to * the field. */ - public fun tings(settings: LineChartSeriesSettingsProperty) + public fun settings(settings: LineChartSeriesSettingsProperty) /** * @param settings The options that determine the presentation of line series associated to * the field. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("9d782d35589bf087e146af9bf742a42749aeb0ef525b8e04a6095ade4fbcb1a1") - public fun tings(settings: LineChartSeriesSettingsProperty.Builder.() -> Unit) + @JvmName("37e1fd15c9db5e4e27b4fdb4430df4e303eae22bcfb517c14b7acb6392601cde") + public fun settings(settings: LineChartSeriesSettingsProperty.Builder.() -> Unit) } private class BuilderImpl : Builder { @@ -32523,7 +32523,7 @@ public open class CfnDashboard( * @param settings The options that determine the presentation of line series associated to * the field. */ - override fun tings(settings: IResolvable) { + override fun settings(settings: IResolvable) { cdkBuilder.settings(settings.let(IResolvable::unwrap)) } @@ -32531,7 +32531,7 @@ public open class CfnDashboard( * @param settings The options that determine the presentation of line series associated to * the field. */ - override fun tings(settings: LineChartSeriesSettingsProperty) { + override fun settings(settings: LineChartSeriesSettingsProperty) { cdkBuilder.settings(settings.let(LineChartSeriesSettingsProperty::unwrap)) } @@ -32540,9 +32540,9 @@ public open class CfnDashboard( * the field. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("9d782d35589bf087e146af9bf742a42749aeb0ef525b8e04a6095ade4fbcb1a1") - override fun tings(settings: LineChartSeriesSettingsProperty.Builder.() -> Unit): Unit = - tings(LineChartSeriesSettingsProperty(settings)) + @JvmName("37e1fd15c9db5e4e27b4fdb4430df4e303eae22bcfb517c14b7acb6392601cde") + override fun settings(settings: LineChartSeriesSettingsProperty.Builder.() -> Unit): Unit = + settings(LineChartSeriesSettingsProperty(settings)) public fun build(): software.amazon.awscdk.services.quicksight.CfnDashboard.FieldSeriesItemProperty = @@ -39374,7 +39374,11 @@ public open class CfnDashboard( */ public interface FilterScopeConfigurationProperty { /** - * The configuration for applying a filter to all sheets. + * The configuration that applies a filter to all sheets. + * + * When you choose `AllSheets` as the value for a `FilterScopeConfiguration` , this filter is + * applied to all visuals of all sheets in an Analysis, Dashboard, or Template. The + * `AllSheetsFilterScopeConfiguration` is chosen. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-filterscopeconfiguration.html#cfn-quicksight-dashboard-filterscopeconfiguration-allsheets) */ @@ -39393,7 +39397,10 @@ public open class CfnDashboard( @CdkDslMarker public interface Builder { /** - * @param allSheets The configuration for applying a filter to all sheets. + * @param allSheets The configuration that applies a filter to all sheets. + * When you choose `AllSheets` as the value for a `FilterScopeConfiguration` , this filter is + * applied to all visuals of all sheets in an Analysis, Dashboard, or Template. The + * `AllSheetsFilterScopeConfiguration` is chosen. */ public fun allSheets(allSheets: Any) @@ -39423,7 +39430,10 @@ public open class CfnDashboard( software.amazon.awscdk.services.quicksight.CfnDashboard.FilterScopeConfigurationProperty.builder() /** - * @param allSheets The configuration for applying a filter to all sheets. + * @param allSheets The configuration that applies a filter to all sheets. + * When you choose `AllSheets` as the value for a `FilterScopeConfiguration` , this filter is + * applied to all visuals of all sheets in an Analysis, Dashboard, or Template. The + * `AllSheetsFilterScopeConfiguration` is chosen. */ override fun allSheets(allSheets: Any) { cdkBuilder.allSheets(allSheets) @@ -39461,7 +39471,11 @@ public open class CfnDashboard( cdkObject: software.amazon.awscdk.services.quicksight.CfnDashboard.FilterScopeConfigurationProperty, ) : CdkObject(cdkObject), FilterScopeConfigurationProperty { /** - * The configuration for applying a filter to all sheets. + * The configuration that applies a filter to all sheets. + * + * When you choose `AllSheets` as the value for a `FilterScopeConfiguration` , this filter is + * applied to all visuals of all sheets in an Analysis, Dashboard, or Template. The + * `AllSheetsFilterScopeConfiguration` is chosen. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-filterscopeconfiguration.html#cfn-quicksight-dashboard-filterscopeconfiguration-allsheets) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/quicksight/CfnTemplate.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/quicksight/CfnTemplate.kt index 5b4d059276..868d3fd531 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/quicksight/CfnTemplate.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/quicksight/CfnTemplate.kt @@ -75,7 +75,7 @@ public open class CfnTemplate( public open fun attrLastUpdatedTime(): String = unwrap(this).getAttrLastUpdatedTime() /** - * + * A version of a template.

. */ public open fun attrVersion(): IResolvable = unwrap(this).getAttrVersion().let(IResolvable::wrap) @@ -20891,21 +20891,21 @@ public open class CfnTemplate( * @param settings The options that determine the presentation of line series associated to * the field. */ - public fun tings(settings: IResolvable) + public fun settings(settings: IResolvable) /** * @param settings The options that determine the presentation of line series associated to * the field. */ - public fun tings(settings: LineChartSeriesSettingsProperty) + public fun settings(settings: LineChartSeriesSettingsProperty) /** * @param settings The options that determine the presentation of line series associated to * the field. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("7c92e28f1aa02567f8ea842b8fe0b4ecc95e477ff770255ed24afdf5ba86a3ed") - public fun tings(settings: LineChartSeriesSettingsProperty.Builder.() -> Unit) + @JvmName("f4281e52dd731339ce998f5b54f27f7df91acc6018d22e7af5de366058e0203c") + public fun settings(settings: LineChartSeriesSettingsProperty.Builder.() -> Unit) } private class BuilderImpl : Builder { @@ -20939,7 +20939,7 @@ public open class CfnTemplate( * @param settings The options that determine the presentation of line series associated to * the field. */ - override fun tings(settings: IResolvable) { + override fun settings(settings: IResolvable) { cdkBuilder.settings(settings.let(IResolvable::unwrap)) } @@ -20947,7 +20947,7 @@ public open class CfnTemplate( * @param settings The options that determine the presentation of line series associated to * the field. */ - override fun tings(settings: LineChartSeriesSettingsProperty) { + override fun settings(settings: LineChartSeriesSettingsProperty) { cdkBuilder.settings(settings.let(LineChartSeriesSettingsProperty::unwrap)) } @@ -20956,9 +20956,9 @@ public open class CfnTemplate( * the field. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("7c92e28f1aa02567f8ea842b8fe0b4ecc95e477ff770255ed24afdf5ba86a3ed") - override fun tings(settings: LineChartSeriesSettingsProperty.Builder.() -> Unit): Unit = - tings(LineChartSeriesSettingsProperty(settings)) + @JvmName("f4281e52dd731339ce998f5b54f27f7df91acc6018d22e7af5de366058e0203c") + override fun settings(settings: LineChartSeriesSettingsProperty.Builder.() -> Unit): Unit = + settings(LineChartSeriesSettingsProperty(settings)) public fun build(): software.amazon.awscdk.services.quicksight.CfnTemplate.DataFieldSeriesItemProperty = @@ -29516,21 +29516,21 @@ public open class CfnTemplate( * @param settings The options that determine the presentation of line series associated to * the field. */ - public fun tings(settings: IResolvable) + public fun settings(settings: IResolvable) /** * @param settings The options that determine the presentation of line series associated to * the field. */ - public fun tings(settings: LineChartSeriesSettingsProperty) + public fun settings(settings: LineChartSeriesSettingsProperty) /** * @param settings The options that determine the presentation of line series associated to * the field. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("e50838e96955e9b70226bf34b80d58e9f597713d2c6ffc33fc0ac9129175f790") - public fun tings(settings: LineChartSeriesSettingsProperty.Builder.() -> Unit) + @JvmName("014d68f2b89d8d92e59c67d3866ae1f4daf693196530cd49fc1287bf76f3c914") + public fun settings(settings: LineChartSeriesSettingsProperty.Builder.() -> Unit) } private class BuilderImpl : Builder { @@ -29556,7 +29556,7 @@ public open class CfnTemplate( * @param settings The options that determine the presentation of line series associated to * the field. */ - override fun tings(settings: IResolvable) { + override fun settings(settings: IResolvable) { cdkBuilder.settings(settings.let(IResolvable::unwrap)) } @@ -29564,7 +29564,7 @@ public open class CfnTemplate( * @param settings The options that determine the presentation of line series associated to * the field. */ - override fun tings(settings: LineChartSeriesSettingsProperty) { + override fun settings(settings: LineChartSeriesSettingsProperty) { cdkBuilder.settings(settings.let(LineChartSeriesSettingsProperty::unwrap)) } @@ -29573,9 +29573,9 @@ public open class CfnTemplate( * the field. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("e50838e96955e9b70226bf34b80d58e9f597713d2c6ffc33fc0ac9129175f790") - override fun tings(settings: LineChartSeriesSettingsProperty.Builder.() -> Unit): Unit = - tings(LineChartSeriesSettingsProperty(settings)) + @JvmName("014d68f2b89d8d92e59c67d3866ae1f4daf693196530cd49fc1287bf76f3c914") + override fun settings(settings: LineChartSeriesSettingsProperty.Builder.() -> Unit): Unit = + settings(LineChartSeriesSettingsProperty(settings)) public fun build(): software.amazon.awscdk.services.quicksight.CfnTemplate.FieldSeriesItemProperty = @@ -36405,7 +36405,11 @@ public open class CfnTemplate( */ public interface FilterScopeConfigurationProperty { /** - * The configuration for applying a filter to all sheets. + * The configuration that applies a filter to all sheets. + * + * When you choose `AllSheets` as the value for a `FilterScopeConfiguration` , this filter is + * applied to all visuals of all sheets in an Analysis, Dashboard, or Template. The + * `AllSheetsFilterScopeConfiguration` is chosen. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-template-filterscopeconfiguration.html#cfn-quicksight-template-filterscopeconfiguration-allsheets) */ @@ -36424,7 +36428,10 @@ public open class CfnTemplate( @CdkDslMarker public interface Builder { /** - * @param allSheets The configuration for applying a filter to all sheets. + * @param allSheets The configuration that applies a filter to all sheets. + * When you choose `AllSheets` as the value for a `FilterScopeConfiguration` , this filter is + * applied to all visuals of all sheets in an Analysis, Dashboard, or Template. The + * `AllSheetsFilterScopeConfiguration` is chosen. */ public fun allSheets(allSheets: Any) @@ -36454,7 +36461,10 @@ public open class CfnTemplate( software.amazon.awscdk.services.quicksight.CfnTemplate.FilterScopeConfigurationProperty.builder() /** - * @param allSheets The configuration for applying a filter to all sheets. + * @param allSheets The configuration that applies a filter to all sheets. + * When you choose `AllSheets` as the value for a `FilterScopeConfiguration` , this filter is + * applied to all visuals of all sheets in an Analysis, Dashboard, or Template. The + * `AllSheetsFilterScopeConfiguration` is chosen. */ override fun allSheets(allSheets: Any) { cdkBuilder.allSheets(allSheets) @@ -36492,7 +36502,11 @@ public open class CfnTemplate( cdkObject: software.amazon.awscdk.services.quicksight.CfnTemplate.FilterScopeConfigurationProperty, ) : CdkObject(cdkObject), FilterScopeConfigurationProperty { /** - * The configuration for applying a filter to all sheets. + * The configuration that applies a filter to all sheets. + * + * When you choose `AllSheets` as the value for a `FilterScopeConfiguration` , this filter is + * applied to all visuals of all sheets in an Analysis, Dashboard, or Template. The + * `AllSheetsFilterScopeConfiguration` is chosen. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-template-filterscopeconfiguration.html#cfn-quicksight-template-filterscopeconfiguration-allsheets) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/AuroraMysqlEngineVersion.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/AuroraMysqlEngineVersion.kt index 060c3c63cd..30cf8c8c87 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/AuroraMysqlEngineVersion.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/AuroraMysqlEngineVersion.kt @@ -186,6 +186,9 @@ public open class AuroraMysqlEngineVersion( public val VER_2_11_4: AuroraMysqlEngineVersion = AuroraMysqlEngineVersion.wrap(software.amazon.awscdk.services.rds.AuroraMysqlEngineVersion.VER_2_11_4) + public val VER_2_11_5: AuroraMysqlEngineVersion = + AuroraMysqlEngineVersion.wrap(software.amazon.awscdk.services.rds.AuroraMysqlEngineVersion.VER_2_11_5) + public val VER_2_12_0: AuroraMysqlEngineVersion = AuroraMysqlEngineVersion.wrap(software.amazon.awscdk.services.rds.AuroraMysqlEngineVersion.VER_2_12_0) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/AuroraPostgresClusterEngineProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/AuroraPostgresClusterEngineProps.kt index f667efa425..eff257dd64 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/AuroraPostgresClusterEngineProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/AuroraPostgresClusterEngineProps.kt @@ -15,21 +15,47 @@ import kotlin.Unit * Example: * * ``` - * Vpc vpc; - * DatabaseCluster cluster = DatabaseCluster.Builder.create(this, "Database") - * .engine(DatabaseClusterEngine.auroraPostgres(AuroraPostgresClusterEngineProps.builder().version(AuroraPostgresEngineVersion.VER_15_2).build())) - * .credentials(Credentials.fromUsername("adminuser", - * CredentialsFromUsernameOptions.builder().password(SecretValue.unsafePlainText("7959866cacc02c2d243ecfe177464fe6")).build())) - * .writer(ClusterInstance.provisioned("writer", ProvisionedClusterInstanceProps.builder() - * .publiclyAccessible(false) - * .build())) - * .readers(List.of(ClusterInstance.provisioned("reader"))) - * .storageType(DBClusterStorageType.AURORA_IOPT1) - * .vpcSubnets(SubnetSelection.builder() - * .subnetType(SubnetType.PRIVATE_WITH_EGRESS) - * .build()) + * // Build a data source for AppSync to access the database. + * GraphqlApi api; + * // Create username and password secret for DB Cluster + * DatabaseSecret secret = DatabaseSecret.Builder.create(this, "AuroraSecret") + * .username("clusteradmin") + * .build(); + * // The VPC to place the cluster in + * Vpc vpc = new Vpc(this, "AuroraVpc"); + * // Create the serverless cluster, provide all values needed to customise the database. + * DatabaseCluster cluster = DatabaseCluster.Builder.create(this, "AuroraClusterV2") + * .engine(DatabaseClusterEngine.auroraPostgres(AuroraPostgresClusterEngineProps.builder().version(AuroraPostgresEngineVersion.VER_15_5).build())) + * .credentials(Map.of("username", "clusteradmin")) + * .clusterIdentifier("db-endpoint-test") + * .writer(ClusterInstance.serverlessV2("writer")) + * .serverlessV2MinCapacity(2) + * .serverlessV2MaxCapacity(10) * .vpc(vpc) + * .defaultDatabaseName("demos") + * .enableDataApi(true) * .build(); + * RdsDataSource rdsDS = api.addRdsDataSourceV2("rds", cluster, secret, "demos"); + * // Set up a resolver for an RDS query. + * rdsDS.createResolver("QueryGetDemosRdsResolver", BaseResolverProps.builder() + * .typeName("Query") + * .fieldName("getDemosRds") + * .requestMappingTemplate(MappingTemplate.fromString("\n {\n \"version\": \"2018-05-29\",\n + * \"statements\": [\n \"SELECT * FROM demos\"\n ]\n }\n ")) + * .responseMappingTemplate(MappingTemplate.fromString("\n + * $utils.toJson($utils.rds.toJsonObject($ctx.result)[0])\n ")) + * .build()); + * // Set up a resolver for an RDS mutation. + * rdsDS.createResolver("MutationAddDemoRdsResolver", BaseResolverProps.builder() + * .typeName("Mutation") + * .fieldName("addDemoRds") + * .requestMappingTemplate(MappingTemplate.fromString("\n {\n \"version\": \"2018-05-29\",\n + * \"statements\": [\n \"INSERT INTO demos VALUES (:id, :version)\",\n \"SELECT * WHERE id = + * :id\"\n ],\n \"variableMap\": {\n \":id\": $util.toJson($util.autoId()),\n + * \":version\": $util.toJson($ctx.args.version)\n }\n }\n ")) + * .responseMappingTemplate(MappingTemplate.fromString("\n + * $utils.toJson($utils.rds.toJsonObject($ctx.result)[1][0])\n ")) + * .build()); * ``` */ public interface AuroraPostgresClusterEngineProps { diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/AuroraPostgresEngineVersion.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/AuroraPostgresEngineVersion.kt index 984d84b765..1bdc2fcdf3 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/AuroraPostgresEngineVersion.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/AuroraPostgresEngineVersion.kt @@ -16,21 +16,47 @@ import kotlin.jvm.JvmName * Example: * * ``` - * Vpc vpc; - * DatabaseCluster cluster = DatabaseCluster.Builder.create(this, "Database") - * .engine(DatabaseClusterEngine.auroraPostgres(AuroraPostgresClusterEngineProps.builder().version(AuroraPostgresEngineVersion.VER_15_2).build())) - * .credentials(Credentials.fromUsername("adminuser", - * CredentialsFromUsernameOptions.builder().password(SecretValue.unsafePlainText("7959866cacc02c2d243ecfe177464fe6")).build())) - * .writer(ClusterInstance.provisioned("writer", ProvisionedClusterInstanceProps.builder() - * .publiclyAccessible(false) - * .build())) - * .readers(List.of(ClusterInstance.provisioned("reader"))) - * .storageType(DBClusterStorageType.AURORA_IOPT1) - * .vpcSubnets(SubnetSelection.builder() - * .subnetType(SubnetType.PRIVATE_WITH_EGRESS) - * .build()) + * // Build a data source for AppSync to access the database. + * GraphqlApi api; + * // Create username and password secret for DB Cluster + * DatabaseSecret secret = DatabaseSecret.Builder.create(this, "AuroraSecret") + * .username("clusteradmin") + * .build(); + * // The VPC to place the cluster in + * Vpc vpc = new Vpc(this, "AuroraVpc"); + * // Create the serverless cluster, provide all values needed to customise the database. + * DatabaseCluster cluster = DatabaseCluster.Builder.create(this, "AuroraClusterV2") + * .engine(DatabaseClusterEngine.auroraPostgres(AuroraPostgresClusterEngineProps.builder().version(AuroraPostgresEngineVersion.VER_15_5).build())) + * .credentials(Map.of("username", "clusteradmin")) + * .clusterIdentifier("db-endpoint-test") + * .writer(ClusterInstance.serverlessV2("writer")) + * .serverlessV2MinCapacity(2) + * .serverlessV2MaxCapacity(10) * .vpc(vpc) + * .defaultDatabaseName("demos") + * .enableDataApi(true) * .build(); + * RdsDataSource rdsDS = api.addRdsDataSourceV2("rds", cluster, secret, "demos"); + * // Set up a resolver for an RDS query. + * rdsDS.createResolver("QueryGetDemosRdsResolver", BaseResolverProps.builder() + * .typeName("Query") + * .fieldName("getDemosRds") + * .requestMappingTemplate(MappingTemplate.fromString("\n {\n \"version\": \"2018-05-29\",\n + * \"statements\": [\n \"SELECT * FROM demos\"\n ]\n }\n ")) + * .responseMappingTemplate(MappingTemplate.fromString("\n + * $utils.toJson($utils.rds.toJsonObject($ctx.result)[0])\n ")) + * .build()); + * // Set up a resolver for an RDS mutation. + * rdsDS.createResolver("MutationAddDemoRdsResolver", BaseResolverProps.builder() + * .typeName("Mutation") + * .fieldName("addDemoRds") + * .requestMappingTemplate(MappingTemplate.fromString("\n {\n \"version\": \"2018-05-29\",\n + * \"statements\": [\n \"INSERT INTO demos VALUES (:id, :version)\",\n \"SELECT * WHERE id = + * :id\"\n ],\n \"variableMap\": {\n \":id\": $util.toJson($util.autoId()),\n + * \":version\": $util.toJson($ctx.args.version)\n }\n }\n ")) + * .responseMappingTemplate(MappingTemplate.fromString("\n + * $utils.toJson($utils.rds.toJsonObject($ctx.result)[1][0])\n ")) + * .build()); * ``` */ public open class AuroraPostgresEngineVersion( diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnCustomDBEngineVersion.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnCustomDBEngineVersion.kt index e67e979f9e..43b17d864d 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnCustomDBEngineVersion.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnCustomDBEngineVersion.kt @@ -5,10 +5,13 @@ package io.cloudshiftdev.awscdk.services.rds import io.cloudshiftdev.awscdk.CfnResource import io.cloudshiftdev.awscdk.CfnTag import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.IResolvable import io.cloudshiftdev.awscdk.ITaggableV2 import io.cloudshiftdev.awscdk.TagManager import io.cloudshiftdev.awscdk.TreeInspector import io.cloudshiftdev.awscdk.common.CdkDslMarker +import kotlin.Any +import kotlin.Boolean import kotlin.String import kotlin.Unit import kotlin.collections.List @@ -26,19 +29,22 @@ import software.constructs.Construct as SoftwareConstructsConstruct * import io.cloudshiftdev.awscdk.services.rds.*; * CfnCustomDBEngineVersion cfnCustomDBEngineVersion = CfnCustomDBEngineVersion.Builder.create(this, * "MyCfnCustomDBEngineVersion") - * .databaseInstallationFilesS3BucketName("databaseInstallationFilesS3BucketName") * .engine("engine") * .engineVersion("engineVersion") * // the properties below are optional + * .databaseInstallationFilesS3BucketName("databaseInstallationFilesS3BucketName") * .databaseInstallationFilesS3Prefix("databaseInstallationFilesS3Prefix") * .description("description") + * .imageId("imageId") * .kmsKeyId("kmsKeyId") * .manifest("manifest") + * .sourceCustomDbEngineVersionIdentifier("sourceCustomDbEngineVersionIdentifier") * .status("status") * .tags(List.of(CfnTag.builder() * .key("key") * .value("value") * .build())) + * .useAwsProvidedLatestImage(false) * .build(); * ``` * @@ -77,7 +83,7 @@ public open class CfnCustomDBEngineVersion( /** * The name of an Amazon S3 bucket that contains database installation files for your CEV. */ - public open fun databaseInstallationFilesS3BucketName(): String = + public open fun databaseInstallationFilesS3BucketName(): String? = unwrap(this).getDatabaseInstallationFilesS3BucketName() /** @@ -136,6 +142,18 @@ public open class CfnCustomDBEngineVersion( unwrap(this).setEngineVersion(`value`) } + /** + * A value that indicates the ID of the AMI. + */ + public open fun imageId(): String? = unwrap(this).getImageId() + + /** + * A value that indicates the ID of the AMI. + */ + public open fun imageId(`value`: String) { + unwrap(this).setImageId(`value`) + } + /** * Examines the CloudFormation resource and discloses attributes. * @@ -173,6 +191,19 @@ public open class CfnCustomDBEngineVersion( unwrap(this).setManifest(`value`) } + /** + * The ARN of a CEV to use as a source for creating a new CEV. + */ + public open fun sourceCustomDbEngineVersionIdentifier(): String? = + unwrap(this).getSourceCustomDbEngineVersionIdentifier() + + /** + * The ARN of a CEV to use as a source for creating a new CEV. + */ + public open fun sourceCustomDbEngineVersionIdentifier(`value`: String) { + unwrap(this).setSourceCustomDbEngineVersionIdentifier(`value`) + } + /** * A value that indicates the status of a custom engine version (CEV). */ @@ -202,6 +233,25 @@ public open class CfnCustomDBEngineVersion( */ public open fun tags(vararg `value`: CfnTag): Unit = tags(`value`.toList()) + /** + * Specifies whether to use the latest service-provided Amazon Machine Image (AMI) for the CEV. + */ + public open fun useAwsProvidedLatestImage(): Any? = unwrap(this).getUseAwsProvidedLatestImage() + + /** + * Specifies whether to use the latest service-provided Amazon Machine Image (AMI) for the CEV. + */ + public open fun useAwsProvidedLatestImage(`value`: Boolean) { + unwrap(this).setUseAwsProvidedLatestImage(`value`) + } + + /** + * Specifies whether to use the latest service-provided Amazon Machine Image (AMI) for the CEV. + */ + public open fun useAwsProvidedLatestImage(`value`: IResolvable) { + unwrap(this).setUseAwsProvidedLatestImage(`value`.let(IResolvable::unwrap)) + } + /** * A fluent builder for [io.cloudshiftdev.awscdk.services.rds.CfnCustomDBEngineVersion]. */ @@ -267,6 +317,14 @@ public open class CfnCustomDBEngineVersion( */ public fun engineVersion(engineVersion: String) + /** + * A value that indicates the ID of the AMI. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-customdbengineversion.html#cfn-rds-customdbengineversion-imageid) + * @param imageId A value that indicates the ID of the AMI. + */ + public fun imageId(imageId: String) + /** * The AWS KMS key identifier for an encrypted CEV. * @@ -312,6 +370,19 @@ public open class CfnCustomDBEngineVersion( */ public fun manifest(manifest: String) + /** + * The ARN of a CEV to use as a source for creating a new CEV. + * + * You can specify a different Amazon Machine Imagine (AMI) by using either `Source` or + * `UseAwsProvidedLatestImage` . You can't specify a different JSON manifest when you specify + * `SourceCustomDbEngineVersionIdentifier` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-customdbengineversion.html#cfn-rds-customdbengineversion-sourcecustomdbengineversionidentifier) + * @param sourceCustomDbEngineVersionIdentifier The ARN of a CEV to use as a source for creating + * a new CEV. + */ + public fun sourceCustomDbEngineVersionIdentifier(sourceCustomDbEngineVersionIdentifier: String) + /** * A value that indicates the status of a custom engine version (CEV). * @@ -345,6 +416,28 @@ public open class CfnCustomDBEngineVersion( * @param tags A list of tags. */ public fun tags(vararg tags: CfnTag) + + /** + * Specifies whether to use the latest service-provided Amazon Machine Image (AMI) for the CEV. + * + * If you specify `UseAwsProvidedLatestImage` , you can't also specify `ImageId` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-customdbengineversion.html#cfn-rds-customdbengineversion-useawsprovidedlatestimage) + * @param useAwsProvidedLatestImage Specifies whether to use the latest service-provided Amazon + * Machine Image (AMI) for the CEV. + */ + public fun useAwsProvidedLatestImage(useAwsProvidedLatestImage: Boolean) + + /** + * Specifies whether to use the latest service-provided Amazon Machine Image (AMI) for the CEV. + * + * If you specify `UseAwsProvidedLatestImage` , you can't also specify `ImageId` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-customdbengineversion.html#cfn-rds-customdbengineversion-useawsprovidedlatestimage) + * @param useAwsProvidedLatestImage Specifies whether to use the latest service-provided Amazon + * Machine Image (AMI) for the CEV. + */ + public fun useAwsProvidedLatestImage(useAwsProvidedLatestImage: IResolvable) } private class BuilderImpl( @@ -425,6 +518,16 @@ public open class CfnCustomDBEngineVersion( cdkBuilder.engineVersion(engineVersion) } + /** + * A value that indicates the ID of the AMI. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-customdbengineversion.html#cfn-rds-customdbengineversion-imageid) + * @param imageId A value that indicates the ID of the AMI. + */ + override fun imageId(imageId: String) { + cdkBuilder.imageId(imageId) + } + /** * The AWS KMS key identifier for an encrypted CEV. * @@ -474,6 +577,22 @@ public open class CfnCustomDBEngineVersion( cdkBuilder.manifest(manifest) } + /** + * The ARN of a CEV to use as a source for creating a new CEV. + * + * You can specify a different Amazon Machine Imagine (AMI) by using either `Source` or + * `UseAwsProvidedLatestImage` . You can't specify a different JSON manifest when you specify + * `SourceCustomDbEngineVersionIdentifier` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-customdbengineversion.html#cfn-rds-customdbengineversion-sourcecustomdbengineversionidentifier) + * @param sourceCustomDbEngineVersionIdentifier The ARN of a CEV to use as a source for creating + * a new CEV. + */ + override + fun sourceCustomDbEngineVersionIdentifier(sourceCustomDbEngineVersionIdentifier: String) { + cdkBuilder.sourceCustomDbEngineVersionIdentifier(sourceCustomDbEngineVersionIdentifier) + } + /** * A value that indicates the status of a custom engine version (CEV). * @@ -512,6 +631,32 @@ public open class CfnCustomDBEngineVersion( */ override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + /** + * Specifies whether to use the latest service-provided Amazon Machine Image (AMI) for the CEV. + * + * If you specify `UseAwsProvidedLatestImage` , you can't also specify `ImageId` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-customdbengineversion.html#cfn-rds-customdbengineversion-useawsprovidedlatestimage) + * @param useAwsProvidedLatestImage Specifies whether to use the latest service-provided Amazon + * Machine Image (AMI) for the CEV. + */ + override fun useAwsProvidedLatestImage(useAwsProvidedLatestImage: Boolean) { + cdkBuilder.useAwsProvidedLatestImage(useAwsProvidedLatestImage) + } + + /** + * Specifies whether to use the latest service-provided Amazon Machine Image (AMI) for the CEV. + * + * If you specify `UseAwsProvidedLatestImage` , you can't also specify `ImageId` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-customdbengineversion.html#cfn-rds-customdbengineversion-useawsprovidedlatestimage) + * @param useAwsProvidedLatestImage Specifies whether to use the latest service-provided Amazon + * Machine Image (AMI) for the CEV. + */ + override fun useAwsProvidedLatestImage(useAwsProvidedLatestImage: IResolvable) { + cdkBuilder.useAwsProvidedLatestImage(useAwsProvidedLatestImage.let(IResolvable::unwrap)) + } + public fun build(): software.amazon.awscdk.services.rds.CfnCustomDBEngineVersion = cdkBuilder.build() } diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnCustomDBEngineVersionProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnCustomDBEngineVersionProps.kt index 31a595ead5..a1974138f6 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnCustomDBEngineVersionProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnCustomDBEngineVersionProps.kt @@ -3,9 +3,12 @@ package io.cloudshiftdev.awscdk.services.rds import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IResolvable import io.cloudshiftdev.awscdk.common.CdkDslMarker import io.cloudshiftdev.awscdk.common.CdkObject import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.Boolean import kotlin.String import kotlin.Unit import kotlin.collections.List @@ -21,19 +24,22 @@ import kotlin.collections.List * import io.cloudshiftdev.awscdk.services.rds.*; * CfnCustomDBEngineVersionProps cfnCustomDBEngineVersionProps = * CfnCustomDBEngineVersionProps.builder() - * .databaseInstallationFilesS3BucketName("databaseInstallationFilesS3BucketName") * .engine("engine") * .engineVersion("engineVersion") * // the properties below are optional + * .databaseInstallationFilesS3BucketName("databaseInstallationFilesS3BucketName") * .databaseInstallationFilesS3Prefix("databaseInstallationFilesS3Prefix") * .description("description") + * .imageId("imageId") * .kmsKeyId("kmsKeyId") * .manifest("manifest") + * .sourceCustomDbEngineVersionIdentifier("sourceCustomDbEngineVersionIdentifier") * .status("status") * .tags(List.of(CfnTag.builder() * .key("key") * .value("value") * .build())) + * .useAwsProvidedLatestImage(false) * .build(); * ``` * @@ -47,7 +53,8 @@ public interface CfnCustomDBEngineVersionProps { * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-customdbengineversion.html#cfn-rds-customdbengineversion-databaseinstallationfiless3bucketname) */ - public fun databaseInstallationFilesS3BucketName(): String + public fun databaseInstallationFilesS3BucketName(): String? = + unwrap(this).getDatabaseInstallationFilesS3BucketName() /** * The Amazon S3 directory that contains the database installation files for your CEV. @@ -94,6 +101,13 @@ public interface CfnCustomDBEngineVersionProps { */ public fun engineVersion(): String + /** + * A value that indicates the ID of the AMI. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-customdbengineversion.html#cfn-rds-customdbengineversion-imageid) + */ + public fun imageId(): String? = unwrap(this).getImageId() + /** * The AWS KMS key identifier for an encrypted CEV. * @@ -135,6 +149,18 @@ public interface CfnCustomDBEngineVersionProps { */ public fun manifest(): String? = unwrap(this).getManifest() + /** + * The ARN of a CEV to use as a source for creating a new CEV. + * + * You can specify a different Amazon Machine Imagine (AMI) by using either `Source` or + * `UseAwsProvidedLatestImage` . You can't specify a different JSON manifest when you specify + * `SourceCustomDbEngineVersionIdentifier` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-customdbengineversion.html#cfn-rds-customdbengineversion-sourcecustomdbengineversionidentifier) + */ + public fun sourceCustomDbEngineVersionIdentifier(): String? = + unwrap(this).getSourceCustomDbEngineVersionIdentifier() + /** * A value that indicates the status of a custom engine version (CEV). * @@ -155,6 +181,15 @@ public interface CfnCustomDBEngineVersionProps { */ public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + /** + * Specifies whether to use the latest service-provided Amazon Machine Image (AMI) for the CEV. + * + * If you specify `UseAwsProvidedLatestImage` , you can't also specify `ImageId` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-customdbengineversion.html#cfn-rds-customdbengineversion-useawsprovidedlatestimage) + */ + public fun useAwsProvidedLatestImage(): Any? = unwrap(this).getUseAwsProvidedLatestImage() + /** * A builder for [CfnCustomDBEngineVersionProps] */ @@ -162,7 +197,7 @@ public interface CfnCustomDBEngineVersionProps { public interface Builder { /** * @param databaseInstallationFilesS3BucketName The name of an Amazon S3 bucket that contains - * database installation files for your CEV. + * database installation files for your CEV. * For example, a valid bucket name is `my-custom-installation-files` . */ public fun databaseInstallationFilesS3BucketName(databaseInstallationFilesS3BucketName: String) @@ -201,6 +236,11 @@ public interface CfnCustomDBEngineVersionProps { */ public fun engineVersion(engineVersion: String) + /** + * @param imageId A value that indicates the ID of the AMI. + */ + public fun imageId(imageId: String) + /** * @param kmsKeyId The AWS KMS key identifier for an encrypted CEV. * A symmetric encryption KMS key is required for RDS Custom, but optional for Amazon RDS. @@ -236,6 +276,15 @@ public interface CfnCustomDBEngineVersionProps { */ public fun manifest(manifest: String) + /** + * @param sourceCustomDbEngineVersionIdentifier The ARN of a CEV to use as a source for creating + * a new CEV. + * You can specify a different Amazon Machine Imagine (AMI) by using either `Source` or + * `UseAwsProvidedLatestImage` . You can't specify a different JSON manifest when you specify + * `SourceCustomDbEngineVersionIdentifier` . + */ + public fun sourceCustomDbEngineVersionIdentifier(sourceCustomDbEngineVersionIdentifier: String) + /** * @param status A value that indicates the status of a custom engine version (CEV). */ @@ -256,6 +305,20 @@ public interface CfnCustomDBEngineVersionProps { * *Amazon RDS User Guide.* */ public fun tags(vararg tags: CfnTag) + + /** + * @param useAwsProvidedLatestImage Specifies whether to use the latest service-provided Amazon + * Machine Image (AMI) for the CEV. + * If you specify `UseAwsProvidedLatestImage` , you can't also specify `ImageId` . + */ + public fun useAwsProvidedLatestImage(useAwsProvidedLatestImage: Boolean) + + /** + * @param useAwsProvidedLatestImage Specifies whether to use the latest service-provided Amazon + * Machine Image (AMI) for the CEV. + * If you specify `UseAwsProvidedLatestImage` , you can't also specify `ImageId` . + */ + public fun useAwsProvidedLatestImage(useAwsProvidedLatestImage: IResolvable) } private class BuilderImpl : Builder { @@ -265,7 +328,7 @@ public interface CfnCustomDBEngineVersionProps { /** * @param databaseInstallationFilesS3BucketName The name of an Amazon S3 bucket that contains - * database installation files for your CEV. + * database installation files for your CEV. * For example, a valid bucket name is `my-custom-installation-files` . */ override @@ -315,6 +378,13 @@ public interface CfnCustomDBEngineVersionProps { cdkBuilder.engineVersion(engineVersion) } + /** + * @param imageId A value that indicates the ID of the AMI. + */ + override fun imageId(imageId: String) { + cdkBuilder.imageId(imageId) + } + /** * @param kmsKeyId The AWS KMS key identifier for an encrypted CEV. * A symmetric encryption KMS key is required for RDS Custom, but optional for Amazon RDS. @@ -354,6 +424,18 @@ public interface CfnCustomDBEngineVersionProps { cdkBuilder.manifest(manifest) } + /** + * @param sourceCustomDbEngineVersionIdentifier The ARN of a CEV to use as a source for creating + * a new CEV. + * You can specify a different Amazon Machine Imagine (AMI) by using either `Source` or + * `UseAwsProvidedLatestImage` . You can't specify a different JSON manifest when you specify + * `SourceCustomDbEngineVersionIdentifier` . + */ + override + fun sourceCustomDbEngineVersionIdentifier(sourceCustomDbEngineVersionIdentifier: String) { + cdkBuilder.sourceCustomDbEngineVersionIdentifier(sourceCustomDbEngineVersionIdentifier) + } + /** * @param status A value that indicates the status of a custom engine version (CEV). */ @@ -379,6 +461,24 @@ public interface CfnCustomDBEngineVersionProps { */ override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + /** + * @param useAwsProvidedLatestImage Specifies whether to use the latest service-provided Amazon + * Machine Image (AMI) for the CEV. + * If you specify `UseAwsProvidedLatestImage` , you can't also specify `ImageId` . + */ + override fun useAwsProvidedLatestImage(useAwsProvidedLatestImage: Boolean) { + cdkBuilder.useAwsProvidedLatestImage(useAwsProvidedLatestImage) + } + + /** + * @param useAwsProvidedLatestImage Specifies whether to use the latest service-provided Amazon + * Machine Image (AMI) for the CEV. + * If you specify `UseAwsProvidedLatestImage` , you can't also specify `ImageId` . + */ + override fun useAwsProvidedLatestImage(useAwsProvidedLatestImage: IResolvable) { + cdkBuilder.useAwsProvidedLatestImage(useAwsProvidedLatestImage.let(IResolvable::unwrap)) + } + public fun build(): software.amazon.awscdk.services.rds.CfnCustomDBEngineVersionProps = cdkBuilder.build() } @@ -393,7 +493,7 @@ public interface CfnCustomDBEngineVersionProps { * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-customdbengineversion.html#cfn-rds-customdbengineversion-databaseinstallationfiless3bucketname) */ - override fun databaseInstallationFilesS3BucketName(): String = + override fun databaseInstallationFilesS3BucketName(): String? = unwrap(this).getDatabaseInstallationFilesS3BucketName() /** @@ -441,6 +541,13 @@ public interface CfnCustomDBEngineVersionProps { */ override fun engineVersion(): String = unwrap(this).getEngineVersion() + /** + * A value that indicates the ID of the AMI. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-customdbengineversion.html#cfn-rds-customdbengineversion-imageid) + */ + override fun imageId(): String? = unwrap(this).getImageId() + /** * The AWS KMS key identifier for an encrypted CEV. * @@ -482,6 +589,18 @@ public interface CfnCustomDBEngineVersionProps { */ override fun manifest(): String? = unwrap(this).getManifest() + /** + * The ARN of a CEV to use as a source for creating a new CEV. + * + * You can specify a different Amazon Machine Imagine (AMI) by using either `Source` or + * `UseAwsProvidedLatestImage` . You can't specify a different JSON manifest when you specify + * `SourceCustomDbEngineVersionIdentifier` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-customdbengineversion.html#cfn-rds-customdbengineversion-sourcecustomdbengineversionidentifier) + */ + override fun sourceCustomDbEngineVersionIdentifier(): String? = + unwrap(this).getSourceCustomDbEngineVersionIdentifier() + /** * A value that indicates the status of a custom engine version (CEV). * @@ -501,6 +620,15 @@ public interface CfnCustomDBEngineVersionProps { * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-customdbengineversion.html#cfn-rds-customdbengineversion-tags) */ override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * Specifies whether to use the latest service-provided Amazon Machine Image (AMI) for the CEV. + * + * If you specify `UseAwsProvidedLatestImage` , you can't also specify `ImageId` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-customdbengineversion.html#cfn-rds-customdbengineversion-useawsprovidedlatestimage) + */ + override fun useAwsProvidedLatestImage(): Any? = unwrap(this).getUseAwsProvidedLatestImage() } public companion object { diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnDBCluster.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnDBCluster.kt index 7eaa510813..e11b9206d0 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnDBCluster.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnDBCluster.kt @@ -969,30 +969,26 @@ public open class CfnDBCluster( } /** - * The `ScalingConfiguration` property type specifies the scaling configuration of an Aurora - * Serverless DB cluster. + * The scaling configuration of an Aurora Serverless v1 DB cluster. */ public open fun scalingConfiguration(): Any? = unwrap(this).getScalingConfiguration() /** - * The `ScalingConfiguration` property type specifies the scaling configuration of an Aurora - * Serverless DB cluster. + * The scaling configuration of an Aurora Serverless v1 DB cluster. */ public open fun scalingConfiguration(`value`: IResolvable) { unwrap(this).setScalingConfiguration(`value`.let(IResolvable::unwrap)) } /** - * The `ScalingConfiguration` property type specifies the scaling configuration of an Aurora - * Serverless DB cluster. + * The scaling configuration of an Aurora Serverless v1 DB cluster. */ public open fun scalingConfiguration(`value`: ScalingConfigurationProperty) { unwrap(this).setScalingConfiguration(`value`.let(ScalingConfigurationProperty::unwrap)) } /** - * The `ScalingConfiguration` property type specifies the scaling configuration of an Aurora - * Serverless DB cluster. + * The scaling configuration of an Aurora Serverless v1 DB cluster. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("86aad0a68f36b9d040df465f8a32a83e067932cd783b680eeb2aac72b4cbcab5") @@ -1000,23 +996,20 @@ public open class CfnDBCluster( Unit = scalingConfiguration(ScalingConfigurationProperty(`value`)) /** - * The `ServerlessV2ScalingConfiguration` property type specifies the scaling configuration of an - * Aurora Serverless V2 DB cluster. + * The scaling configuration of an Aurora Serverless V2 DB cluster. */ public open fun serverlessV2ScalingConfiguration(): Any? = unwrap(this).getServerlessV2ScalingConfiguration() /** - * The `ServerlessV2ScalingConfiguration` property type specifies the scaling configuration of an - * Aurora Serverless V2 DB cluster. + * The scaling configuration of an Aurora Serverless V2 DB cluster. */ public open fun serverlessV2ScalingConfiguration(`value`: IResolvable) { unwrap(this).setServerlessV2ScalingConfiguration(`value`.let(IResolvable::unwrap)) } /** - * The `ServerlessV2ScalingConfiguration` property type specifies the scaling configuration of an - * Aurora Serverless V2 DB cluster. + * The scaling configuration of an Aurora Serverless V2 DB cluster. */ public open fun serverlessV2ScalingConfiguration(`value`: ServerlessV2ScalingConfigurationProperty) { @@ -1024,8 +1017,7 @@ public open class CfnDBCluster( } /** - * The `ServerlessV2ScalingConfiguration` property type specifies the scaling configuration of an - * Aurora Serverless V2 DB cluster. + * The scaling configuration of an Aurora Serverless V2 DB cluster. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("16656dde8dddfb9772783b78be13a984a660ee7b3ee9b1b7709e1f915ad90afd") @@ -1449,11 +1441,15 @@ public open class CfnDBCluster( * than during the next maintenance window. * * + * Valid for Cluster Type: Aurora DB clusters only + * * Default: The existing name setting * * Constraints: * * * The DB parameter group must be in the same DB parameter group family as this DB cluster. + * * The `DBInstanceParameterGroupName` parameter is valid in combination with the + * `AllowMajorVersionUpgrade` parameter for a major version upgrade only. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-dbinstanceparametergroupname) * @param dbInstanceParameterGroupName The name of the DB parameter group to apply to all @@ -1735,21 +1731,18 @@ public open class CfnDBCluster( /** * The DB engine mode of the DB cluster, either `provisioned` or `serverless` . * - * The `serverless` engine mode only supports Aurora Serverless v1. + * The `serverless` engine mode only applies for Aurora Serverless v1 DB clusters. Aurora + * Serverless v2 DB clusters use the `provisioned` engine mode. * - * Limitations and requirements apply to some DB engine modes. For more information, see the + * For information about limitations and requirements for Serverless DB clusters, see the * following sections in the *Amazon Aurora User Guide* : * * * [Limitations of Aurora Serverless * v1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html#aurora-serverless.limitations) * * [Requirements for Aurora Serverless * v2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.requirements.html) - * * [Limitations of parallel - * query](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-mysql-parallel-query.html#aurora-mysql-parallel-query-limitations) - * * [Limitations of Aurora global - * databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html#aurora-global-database.limitations) * - * Valid for: Aurora DB clusters only + * Valid for Cluster Type: Aurora DB clusters only * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-enginemode) * @param engineMode The DB engine mode of the DB cluster, either `provisioned` or `serverless` @@ -2354,47 +2347,41 @@ public open class CfnDBCluster( public fun restoreType(restoreType: String) /** - * The `ScalingConfiguration` property type specifies the scaling configuration of an Aurora - * Serverless DB cluster. + * The scaling configuration of an Aurora Serverless v1 DB cluster. * * This property is only supported for Aurora Serverless v1. For Aurora Serverless v2, Use the * `ServerlessV2ScalingConfiguration` property. * - * Valid for: Aurora DB clusters only + * Valid for: Aurora Serverless v1 DB clusters only * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-scalingconfiguration) - * @param scalingConfiguration The `ScalingConfiguration` property type specifies the scaling - * configuration of an Aurora Serverless DB cluster. + * @param scalingConfiguration The scaling configuration of an Aurora Serverless v1 DB cluster. */ public fun scalingConfiguration(scalingConfiguration: IResolvable) /** - * The `ScalingConfiguration` property type specifies the scaling configuration of an Aurora - * Serverless DB cluster. + * The scaling configuration of an Aurora Serverless v1 DB cluster. * * This property is only supported for Aurora Serverless v1. For Aurora Serverless v2, Use the * `ServerlessV2ScalingConfiguration` property. * - * Valid for: Aurora DB clusters only + * Valid for: Aurora Serverless v1 DB clusters only * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-scalingconfiguration) - * @param scalingConfiguration The `ScalingConfiguration` property type specifies the scaling - * configuration of an Aurora Serverless DB cluster. + * @param scalingConfiguration The scaling configuration of an Aurora Serverless v1 DB cluster. */ public fun scalingConfiguration(scalingConfiguration: ScalingConfigurationProperty) /** - * The `ScalingConfiguration` property type specifies the scaling configuration of an Aurora - * Serverless DB cluster. + * The scaling configuration of an Aurora Serverless v1 DB cluster. * * This property is only supported for Aurora Serverless v1. For Aurora Serverless v2, Use the * `ServerlessV2ScalingConfiguration` property. * - * Valid for: Aurora DB clusters only + * Valid for: Aurora Serverless v1 DB clusters only * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-scalingconfiguration) - * @param scalingConfiguration The `ScalingConfiguration` property type specifies the scaling - * configuration of an Aurora Serverless DB cluster. + * @param scalingConfiguration The scaling configuration of an Aurora Serverless v1 DB cluster. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("7fa9676c3039f29f132b6dd8b699ca2cee78d2e1ded81b22cbcd42057c78dafe") @@ -2402,48 +2389,45 @@ public open class CfnDBCluster( fun scalingConfiguration(scalingConfiguration: ScalingConfigurationProperty.Builder.() -> Unit) /** - * The `ServerlessV2ScalingConfiguration` property type specifies the scaling configuration of - * an Aurora Serverless V2 DB cluster. + * The scaling configuration of an Aurora Serverless V2 DB cluster. * * This property is only supported for Aurora Serverless v2. For Aurora Serverless v1, Use the * `ScalingConfiguration` property. * - * Valid for: Aurora DB clusters only + * Valid for: Aurora Serverless v2 DB clusters only * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-serverlessv2scalingconfiguration) - * @param serverlessV2ScalingConfiguration The `ServerlessV2ScalingConfiguration` property type - * specifies the scaling configuration of an Aurora Serverless V2 DB cluster. + * @param serverlessV2ScalingConfiguration The scaling configuration of an Aurora Serverless V2 + * DB cluster. */ public fun serverlessV2ScalingConfiguration(serverlessV2ScalingConfiguration: IResolvable) /** - * The `ServerlessV2ScalingConfiguration` property type specifies the scaling configuration of - * an Aurora Serverless V2 DB cluster. + * The scaling configuration of an Aurora Serverless V2 DB cluster. * * This property is only supported for Aurora Serverless v2. For Aurora Serverless v1, Use the * `ScalingConfiguration` property. * - * Valid for: Aurora DB clusters only + * Valid for: Aurora Serverless v2 DB clusters only * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-serverlessv2scalingconfiguration) - * @param serverlessV2ScalingConfiguration The `ServerlessV2ScalingConfiguration` property type - * specifies the scaling configuration of an Aurora Serverless V2 DB cluster. + * @param serverlessV2ScalingConfiguration The scaling configuration of an Aurora Serverless V2 + * DB cluster. */ public fun serverlessV2ScalingConfiguration(serverlessV2ScalingConfiguration: ServerlessV2ScalingConfigurationProperty) /** - * The `ServerlessV2ScalingConfiguration` property type specifies the scaling configuration of - * an Aurora Serverless V2 DB cluster. + * The scaling configuration of an Aurora Serverless V2 DB cluster. * * This property is only supported for Aurora Serverless v2. For Aurora Serverless v1, Use the * `ScalingConfiguration` property. * - * Valid for: Aurora DB clusters only + * Valid for: Aurora Serverless v2 DB clusters only * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-serverlessv2scalingconfiguration) - * @param serverlessV2ScalingConfiguration The `ServerlessV2ScalingConfiguration` property type - * specifies the scaling configuration of an Aurora Serverless V2 DB cluster. + * @param serverlessV2ScalingConfiguration The scaling configuration of an Aurora Serverless V2 + * DB cluster. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("c267a26045ec107b3af7352451263749d4ad8d017efddc544d91f7cc9c89369f") @@ -2995,11 +2979,15 @@ public open class CfnDBCluster( * than during the next maintenance window. * * + * Valid for Cluster Type: Aurora DB clusters only + * * Default: The existing name setting * * Constraints: * * * The DB parameter group must be in the same DB parameter group family as this DB cluster. + * * The `DBInstanceParameterGroupName` parameter is valid in combination with the + * `AllowMajorVersionUpgrade` parameter for a major version upgrade only. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-dbinstanceparametergroupname) * @param dbInstanceParameterGroupName The name of the DB parameter group to apply to all @@ -3312,21 +3300,18 @@ public open class CfnDBCluster( /** * The DB engine mode of the DB cluster, either `provisioned` or `serverless` . * - * The `serverless` engine mode only supports Aurora Serverless v1. + * The `serverless` engine mode only applies for Aurora Serverless v1 DB clusters. Aurora + * Serverless v2 DB clusters use the `provisioned` engine mode. * - * Limitations and requirements apply to some DB engine modes. For more information, see the + * For information about limitations and requirements for Serverless DB clusters, see the * following sections in the *Amazon Aurora User Guide* : * * * [Limitations of Aurora Serverless * v1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html#aurora-serverless.limitations) * * [Requirements for Aurora Serverless * v2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.requirements.html) - * * [Limitations of parallel - * query](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-mysql-parallel-query.html#aurora-mysql-parallel-query-limitations) - * * [Limitations of Aurora global - * databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html#aurora-global-database.limitations) * - * Valid for: Aurora DB clusters only + * Valid for Cluster Type: Aurora DB clusters only * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-enginemode) * @param engineMode The DB engine mode of the DB cluster, either `provisioned` or `serverless` @@ -3984,51 +3969,45 @@ public open class CfnDBCluster( } /** - * The `ScalingConfiguration` property type specifies the scaling configuration of an Aurora - * Serverless DB cluster. + * The scaling configuration of an Aurora Serverless v1 DB cluster. * * This property is only supported for Aurora Serverless v1. For Aurora Serverless v2, Use the * `ServerlessV2ScalingConfiguration` property. * - * Valid for: Aurora DB clusters only + * Valid for: Aurora Serverless v1 DB clusters only * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-scalingconfiguration) - * @param scalingConfiguration The `ScalingConfiguration` property type specifies the scaling - * configuration of an Aurora Serverless DB cluster. + * @param scalingConfiguration The scaling configuration of an Aurora Serverless v1 DB cluster. */ override fun scalingConfiguration(scalingConfiguration: IResolvable) { cdkBuilder.scalingConfiguration(scalingConfiguration.let(IResolvable::unwrap)) } /** - * The `ScalingConfiguration` property type specifies the scaling configuration of an Aurora - * Serverless DB cluster. + * The scaling configuration of an Aurora Serverless v1 DB cluster. * * This property is only supported for Aurora Serverless v1. For Aurora Serverless v2, Use the * `ServerlessV2ScalingConfiguration` property. * - * Valid for: Aurora DB clusters only + * Valid for: Aurora Serverless v1 DB clusters only * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-scalingconfiguration) - * @param scalingConfiguration The `ScalingConfiguration` property type specifies the scaling - * configuration of an Aurora Serverless DB cluster. + * @param scalingConfiguration The scaling configuration of an Aurora Serverless v1 DB cluster. */ override fun scalingConfiguration(scalingConfiguration: ScalingConfigurationProperty) { cdkBuilder.scalingConfiguration(scalingConfiguration.let(ScalingConfigurationProperty::unwrap)) } /** - * The `ScalingConfiguration` property type specifies the scaling configuration of an Aurora - * Serverless DB cluster. + * The scaling configuration of an Aurora Serverless v1 DB cluster. * * This property is only supported for Aurora Serverless v1. For Aurora Serverless v2, Use the * `ServerlessV2ScalingConfiguration` property. * - * Valid for: Aurora DB clusters only + * Valid for: Aurora Serverless v1 DB clusters only * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-scalingconfiguration) - * @param scalingConfiguration The `ScalingConfiguration` property type specifies the scaling - * configuration of an Aurora Serverless DB cluster. + * @param scalingConfiguration The scaling configuration of an Aurora Serverless v1 DB cluster. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("7fa9676c3039f29f132b6dd8b699ca2cee78d2e1ded81b22cbcd42057c78dafe") @@ -4037,34 +4016,32 @@ public open class CfnDBCluster( Unit = scalingConfiguration(ScalingConfigurationProperty(scalingConfiguration)) /** - * The `ServerlessV2ScalingConfiguration` property type specifies the scaling configuration of - * an Aurora Serverless V2 DB cluster. + * The scaling configuration of an Aurora Serverless V2 DB cluster. * * This property is only supported for Aurora Serverless v2. For Aurora Serverless v1, Use the * `ScalingConfiguration` property. * - * Valid for: Aurora DB clusters only + * Valid for: Aurora Serverless v2 DB clusters only * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-serverlessv2scalingconfiguration) - * @param serverlessV2ScalingConfiguration The `ServerlessV2ScalingConfiguration` property type - * specifies the scaling configuration of an Aurora Serverless V2 DB cluster. + * @param serverlessV2ScalingConfiguration The scaling configuration of an Aurora Serverless V2 + * DB cluster. */ override fun serverlessV2ScalingConfiguration(serverlessV2ScalingConfiguration: IResolvable) { cdkBuilder.serverlessV2ScalingConfiguration(serverlessV2ScalingConfiguration.let(IResolvable::unwrap)) } /** - * The `ServerlessV2ScalingConfiguration` property type specifies the scaling configuration of - * an Aurora Serverless V2 DB cluster. + * The scaling configuration of an Aurora Serverless V2 DB cluster. * * This property is only supported for Aurora Serverless v2. For Aurora Serverless v1, Use the * `ScalingConfiguration` property. * - * Valid for: Aurora DB clusters only + * Valid for: Aurora Serverless v2 DB clusters only * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-serverlessv2scalingconfiguration) - * @param serverlessV2ScalingConfiguration The `ServerlessV2ScalingConfiguration` property type - * specifies the scaling configuration of an Aurora Serverless V2 DB cluster. + * @param serverlessV2ScalingConfiguration The scaling configuration of an Aurora Serverless V2 + * DB cluster. */ override fun serverlessV2ScalingConfiguration(serverlessV2ScalingConfiguration: ServerlessV2ScalingConfigurationProperty) { @@ -4072,17 +4049,16 @@ public open class CfnDBCluster( } /** - * The `ServerlessV2ScalingConfiguration` property type specifies the scaling configuration of - * an Aurora Serverless V2 DB cluster. + * The scaling configuration of an Aurora Serverless V2 DB cluster. * * This property is only supported for Aurora Serverless v2. For Aurora Serverless v1, Use the * `ScalingConfiguration` property. * - * Valid for: Aurora DB clusters only + * Valid for: Aurora Serverless v2 DB clusters only * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-serverlessv2scalingconfiguration) - * @param serverlessV2ScalingConfiguration The `ServerlessV2ScalingConfiguration` property type - * specifies the scaling configuration of an Aurora Serverless V2 DB cluster. + * @param serverlessV2ScalingConfiguration The scaling configuration of an Aurora Serverless V2 + * DB cluster. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("c267a26045ec107b3af7352451263749d4ad8d017efddc544d91f7cc9c89369f") @@ -4819,7 +4795,7 @@ public open class CfnDBCluster( /** * The `ScalingConfiguration` property type specifies the scaling configuration of an Aurora - * Serverless DB cluster. + * Serverless v1 DB cluster. * * For more information, see [Using Amazon Aurora * Serverless](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) @@ -4828,7 +4804,7 @@ public open class CfnDBCluster( * This property is only supported for Aurora Serverless v1. For Aurora Serverless v2, Use the * `ServerlessV2ScalingConfiguration` property. * - * Valid for: Aurora DB clusters only + * Valid for: Aurora Serverless v1 DB clusters only * * Example: * @@ -5258,9 +5234,11 @@ public open class CfnDBCluster( * specified](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.requirements.html#aurora-serverless-v2.requirements.capacity-range) * in the *Amazon Aurora User Guide* . * - * This property is only supported for Aurora Serverless v2. For Aurora Serverless v1, Use the + * This property is only supported for Aurora Serverless v2. For Aurora Serverless v1, use the * `ScalingConfiguration` property. * + * Valid for: Aurora Serverless v2 DB clusters + * * Example: * * ``` diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnDBClusterProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnDBClusterProps.kt index 5f4bf55c4d..4310d0e3aa 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnDBClusterProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnDBClusterProps.kt @@ -287,11 +287,15 @@ public interface CfnDBClusterProps { * during the next maintenance window. * * + * Valid for Cluster Type: Aurora DB clusters only + * * Default: The existing name setting * * Constraints: * * * The DB parameter group must be in the same DB parameter group family as this DB cluster. + * * The `DBInstanceParameterGroupName` parameter is valid in combination with the + * `AllowMajorVersionUpgrade` parameter for a major version upgrade only. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-dbinstanceparametergroupname) */ @@ -456,21 +460,18 @@ public interface CfnDBClusterProps { /** * The DB engine mode of the DB cluster, either `provisioned` or `serverless` . * - * The `serverless` engine mode only supports Aurora Serverless v1. + * The `serverless` engine mode only applies for Aurora Serverless v1 DB clusters. Aurora + * Serverless v2 DB clusters use the `provisioned` engine mode. * - * Limitations and requirements apply to some DB engine modes. For more information, see the + * For information about limitations and requirements for Serverless DB clusters, see the * following sections in the *Amazon Aurora User Guide* : * * * [Limitations of Aurora Serverless * v1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html#aurora-serverless.limitations) * * [Requirements for Aurora Serverless * v2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.requirements.html) - * * [Limitations of parallel - * query](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-mysql-parallel-query.html#aurora-mysql-parallel-query-limitations) - * * [Limitations of Aurora global - * databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html#aurora-global-database.limitations) * - * Valid for: Aurora DB clusters only + * Valid for Cluster Type: Aurora DB clusters only * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-enginemode) */ @@ -925,26 +926,24 @@ public interface CfnDBClusterProps { public fun restoreType(): String? = unwrap(this).getRestoreType() /** - * The `ScalingConfiguration` property type specifies the scaling configuration of an Aurora - * Serverless DB cluster. + * The scaling configuration of an Aurora Serverless v1 DB cluster. * * This property is only supported for Aurora Serverless v1. For Aurora Serverless v2, Use the * `ServerlessV2ScalingConfiguration` property. * - * Valid for: Aurora DB clusters only + * Valid for: Aurora Serverless v1 DB clusters only * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-scalingconfiguration) */ public fun scalingConfiguration(): Any? = unwrap(this).getScalingConfiguration() /** - * The `ServerlessV2ScalingConfiguration` property type specifies the scaling configuration of an - * Aurora Serverless V2 DB cluster. + * The scaling configuration of an Aurora Serverless V2 DB cluster. * * This property is only supported for Aurora Serverless v2. For Aurora Serverless v1, Use the * `ScalingConfiguration` property. * - * Valid for: Aurora DB clusters only + * Valid for: Aurora Serverless v2 DB clusters only * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-serverlessv2scalingconfiguration) */ @@ -1306,11 +1305,15 @@ public interface CfnDBClusterProps { * than during the next maintenance window. * * + * Valid for Cluster Type: Aurora DB clusters only + * * Default: The existing name setting * * Constraints: * * * The DB parameter group must be in the same DB parameter group family as this DB cluster. + * * The `DBInstanceParameterGroupName` parameter is valid in combination with the + * `AllowMajorVersionUpgrade` parameter for a major version upgrade only. */ public fun dbInstanceParameterGroupName(dbInstanceParameterGroupName: String) @@ -1523,21 +1526,18 @@ public interface CfnDBClusterProps { /** * @param engineMode The DB engine mode of the DB cluster, either `provisioned` or `serverless` * . - * The `serverless` engine mode only supports Aurora Serverless v1. + * The `serverless` engine mode only applies for Aurora Serverless v1 DB clusters. Aurora + * Serverless v2 DB clusters use the `provisioned` engine mode. * - * Limitations and requirements apply to some DB engine modes. For more information, see the + * For information about limitations and requirements for Serverless DB clusters, see the * following sections in the *Amazon Aurora User Guide* : * * * [Limitations of Aurora Serverless * v1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html#aurora-serverless.limitations) * * [Requirements for Aurora Serverless * v2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.requirements.html) - * * [Limitations of parallel - * query](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-mysql-parallel-query.html#aurora-mysql-parallel-query-limitations) - * * [Limitations of Aurora global - * databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html#aurora-global-database.limitations) * - * Valid for: Aurora DB clusters only + * Valid for Cluster Type: Aurora DB clusters only */ public fun engineMode(engineMode: String) @@ -2021,32 +2021,29 @@ public interface CfnDBClusterProps { public fun restoreType(restoreType: String) /** - * @param scalingConfiguration The `ScalingConfiguration` property type specifies the scaling - * configuration of an Aurora Serverless DB cluster. + * @param scalingConfiguration The scaling configuration of an Aurora Serverless v1 DB cluster. * This property is only supported for Aurora Serverless v1. For Aurora Serverless v2, Use the * `ServerlessV2ScalingConfiguration` property. * - * Valid for: Aurora DB clusters only + * Valid for: Aurora Serverless v1 DB clusters only */ public fun scalingConfiguration(scalingConfiguration: IResolvable) /** - * @param scalingConfiguration The `ScalingConfiguration` property type specifies the scaling - * configuration of an Aurora Serverless DB cluster. + * @param scalingConfiguration The scaling configuration of an Aurora Serverless v1 DB cluster. * This property is only supported for Aurora Serverless v1. For Aurora Serverless v2, Use the * `ServerlessV2ScalingConfiguration` property. * - * Valid for: Aurora DB clusters only + * Valid for: Aurora Serverless v1 DB clusters only */ public fun scalingConfiguration(scalingConfiguration: CfnDBCluster.ScalingConfigurationProperty) /** - * @param scalingConfiguration The `ScalingConfiguration` property type specifies the scaling - * configuration of an Aurora Serverless DB cluster. + * @param scalingConfiguration The scaling configuration of an Aurora Serverless v1 DB cluster. * This property is only supported for Aurora Serverless v1. For Aurora Serverless v2, Use the * `ServerlessV2ScalingConfiguration` property. * - * Valid for: Aurora DB clusters only + * Valid for: Aurora Serverless v1 DB clusters only */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("669faa99f851803fe28a32b25a008dcb1931d2e5b37783cf7d41a878fa8a1319") @@ -2054,33 +2051,33 @@ public interface CfnDBClusterProps { fun scalingConfiguration(scalingConfiguration: CfnDBCluster.ScalingConfigurationProperty.Builder.() -> Unit) /** - * @param serverlessV2ScalingConfiguration The `ServerlessV2ScalingConfiguration` property type - * specifies the scaling configuration of an Aurora Serverless V2 DB cluster. + * @param serverlessV2ScalingConfiguration The scaling configuration of an Aurora Serverless V2 + * DB cluster. * This property is only supported for Aurora Serverless v2. For Aurora Serverless v1, Use the * `ScalingConfiguration` property. * - * Valid for: Aurora DB clusters only + * Valid for: Aurora Serverless v2 DB clusters only */ public fun serverlessV2ScalingConfiguration(serverlessV2ScalingConfiguration: IResolvable) /** - * @param serverlessV2ScalingConfiguration The `ServerlessV2ScalingConfiguration` property type - * specifies the scaling configuration of an Aurora Serverless V2 DB cluster. + * @param serverlessV2ScalingConfiguration The scaling configuration of an Aurora Serverless V2 + * DB cluster. * This property is only supported for Aurora Serverless v2. For Aurora Serverless v1, Use the * `ScalingConfiguration` property. * - * Valid for: Aurora DB clusters only + * Valid for: Aurora Serverless v2 DB clusters only */ public fun serverlessV2ScalingConfiguration(serverlessV2ScalingConfiguration: CfnDBCluster.ServerlessV2ScalingConfigurationProperty) /** - * @param serverlessV2ScalingConfiguration The `ServerlessV2ScalingConfiguration` property type - * specifies the scaling configuration of an Aurora Serverless V2 DB cluster. + * @param serverlessV2ScalingConfiguration The scaling configuration of an Aurora Serverless V2 + * DB cluster. * This property is only supported for Aurora Serverless v2. For Aurora Serverless v1, Use the * `ScalingConfiguration` property. * - * Valid for: Aurora DB clusters only + * Valid for: Aurora Serverless v2 DB clusters only */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("1a7e00644e444918868049b5781d6f9ccb5826a3d4ffc86dc7538c18aba397e2") @@ -2496,11 +2493,15 @@ public interface CfnDBClusterProps { * than during the next maintenance window. * * + * Valid for Cluster Type: Aurora DB clusters only + * * Default: The existing name setting * * Constraints: * * * The DB parameter group must be in the same DB parameter group family as this DB cluster. + * * The `DBInstanceParameterGroupName` parameter is valid in combination with the + * `AllowMajorVersionUpgrade` parameter for a major version upgrade only. */ override fun dbInstanceParameterGroupName(dbInstanceParameterGroupName: String) { cdkBuilder.dbInstanceParameterGroupName(dbInstanceParameterGroupName) @@ -2744,21 +2745,18 @@ public interface CfnDBClusterProps { /** * @param engineMode The DB engine mode of the DB cluster, either `provisioned` or `serverless` * . - * The `serverless` engine mode only supports Aurora Serverless v1. + * The `serverless` engine mode only applies for Aurora Serverless v1 DB clusters. Aurora + * Serverless v2 DB clusters use the `provisioned` engine mode. * - * Limitations and requirements apply to some DB engine modes. For more information, see the + * For information about limitations and requirements for Serverless DB clusters, see the * following sections in the *Amazon Aurora User Guide* : * * * [Limitations of Aurora Serverless * v1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html#aurora-serverless.limitations) * * [Requirements for Aurora Serverless * v2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.requirements.html) - * * [Limitations of parallel - * query](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-mysql-parallel-query.html#aurora-mysql-parallel-query-limitations) - * * [Limitations of Aurora global - * databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html#aurora-global-database.limitations) * - * Valid for: Aurora DB clusters only + * Valid for Cluster Type: Aurora DB clusters only */ override fun engineMode(engineMode: String) { cdkBuilder.engineMode(engineMode) @@ -3295,24 +3293,22 @@ public interface CfnDBClusterProps { } /** - * @param scalingConfiguration The `ScalingConfiguration` property type specifies the scaling - * configuration of an Aurora Serverless DB cluster. + * @param scalingConfiguration The scaling configuration of an Aurora Serverless v1 DB cluster. * This property is only supported for Aurora Serverless v1. For Aurora Serverless v2, Use the * `ServerlessV2ScalingConfiguration` property. * - * Valid for: Aurora DB clusters only + * Valid for: Aurora Serverless v1 DB clusters only */ override fun scalingConfiguration(scalingConfiguration: IResolvable) { cdkBuilder.scalingConfiguration(scalingConfiguration.let(IResolvable::unwrap)) } /** - * @param scalingConfiguration The `ScalingConfiguration` property type specifies the scaling - * configuration of an Aurora Serverless DB cluster. + * @param scalingConfiguration The scaling configuration of an Aurora Serverless v1 DB cluster. * This property is only supported for Aurora Serverless v1. For Aurora Serverless v2, Use the * `ServerlessV2ScalingConfiguration` property. * - * Valid for: Aurora DB clusters only + * Valid for: Aurora Serverless v1 DB clusters only */ override fun scalingConfiguration(scalingConfiguration: CfnDBCluster.ScalingConfigurationProperty) { @@ -3320,12 +3316,11 @@ public interface CfnDBClusterProps { } /** - * @param scalingConfiguration The `ScalingConfiguration` property type specifies the scaling - * configuration of an Aurora Serverless DB cluster. + * @param scalingConfiguration The scaling configuration of an Aurora Serverless v1 DB cluster. * This property is only supported for Aurora Serverless v1. For Aurora Serverless v2, Use the * `ServerlessV2ScalingConfiguration` property. * - * Valid for: Aurora DB clusters only + * Valid for: Aurora Serverless v1 DB clusters only */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("669faa99f851803fe28a32b25a008dcb1931d2e5b37783cf7d41a878fa8a1319") @@ -3334,24 +3329,24 @@ public interface CfnDBClusterProps { Unit = scalingConfiguration(CfnDBCluster.ScalingConfigurationProperty(scalingConfiguration)) /** - * @param serverlessV2ScalingConfiguration The `ServerlessV2ScalingConfiguration` property type - * specifies the scaling configuration of an Aurora Serverless V2 DB cluster. + * @param serverlessV2ScalingConfiguration The scaling configuration of an Aurora Serverless V2 + * DB cluster. * This property is only supported for Aurora Serverless v2. For Aurora Serverless v1, Use the * `ScalingConfiguration` property. * - * Valid for: Aurora DB clusters only + * Valid for: Aurora Serverless v2 DB clusters only */ override fun serverlessV2ScalingConfiguration(serverlessV2ScalingConfiguration: IResolvable) { cdkBuilder.serverlessV2ScalingConfiguration(serverlessV2ScalingConfiguration.let(IResolvable::unwrap)) } /** - * @param serverlessV2ScalingConfiguration The `ServerlessV2ScalingConfiguration` property type - * specifies the scaling configuration of an Aurora Serverless V2 DB cluster. + * @param serverlessV2ScalingConfiguration The scaling configuration of an Aurora Serverless V2 + * DB cluster. * This property is only supported for Aurora Serverless v2. For Aurora Serverless v1, Use the * `ScalingConfiguration` property. * - * Valid for: Aurora DB clusters only + * Valid for: Aurora Serverless v2 DB clusters only */ override fun serverlessV2ScalingConfiguration(serverlessV2ScalingConfiguration: CfnDBCluster.ServerlessV2ScalingConfigurationProperty) { @@ -3359,12 +3354,12 @@ public interface CfnDBClusterProps { } /** - * @param serverlessV2ScalingConfiguration The `ServerlessV2ScalingConfiguration` property type - * specifies the scaling configuration of an Aurora Serverless V2 DB cluster. + * @param serverlessV2ScalingConfiguration The scaling configuration of an Aurora Serverless V2 + * DB cluster. * This property is only supported for Aurora Serverless v2. For Aurora Serverless v1, Use the * `ScalingConfiguration` property. * - * Valid for: Aurora DB clusters only + * Valid for: Aurora Serverless v2 DB clusters only */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("1a7e00644e444918868049b5781d6f9ccb5826a3d4ffc86dc7538c18aba397e2") @@ -3761,11 +3756,15 @@ public interface CfnDBClusterProps { * than during the next maintenance window. * * + * Valid for Cluster Type: Aurora DB clusters only + * * Default: The existing name setting * * Constraints: * * * The DB parameter group must be in the same DB parameter group family as this DB cluster. + * * The `DBInstanceParameterGroupName` parameter is valid in combination with the + * `AllowMajorVersionUpgrade` parameter for a major version upgrade only. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-dbinstanceparametergroupname) */ @@ -3930,21 +3929,18 @@ public interface CfnDBClusterProps { /** * The DB engine mode of the DB cluster, either `provisioned` or `serverless` . * - * The `serverless` engine mode only supports Aurora Serverless v1. + * The `serverless` engine mode only applies for Aurora Serverless v1 DB clusters. Aurora + * Serverless v2 DB clusters use the `provisioned` engine mode. * - * Limitations and requirements apply to some DB engine modes. For more information, see the + * For information about limitations and requirements for Serverless DB clusters, see the * following sections in the *Amazon Aurora User Guide* : * * * [Limitations of Aurora Serverless * v1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html#aurora-serverless.limitations) * * [Requirements for Aurora Serverless * v2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.requirements.html) - * * [Limitations of parallel - * query](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-mysql-parallel-query.html#aurora-mysql-parallel-query-limitations) - * * [Limitations of Aurora global - * databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html#aurora-global-database.limitations) * - * Valid for: Aurora DB clusters only + * Valid for Cluster Type: Aurora DB clusters only * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-enginemode) */ @@ -4408,26 +4404,24 @@ public interface CfnDBClusterProps { override fun restoreType(): String? = unwrap(this).getRestoreType() /** - * The `ScalingConfiguration` property type specifies the scaling configuration of an Aurora - * Serverless DB cluster. + * The scaling configuration of an Aurora Serverless v1 DB cluster. * * This property is only supported for Aurora Serverless v1. For Aurora Serverless v2, Use the * `ServerlessV2ScalingConfiguration` property. * - * Valid for: Aurora DB clusters only + * Valid for: Aurora Serverless v1 DB clusters only * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-scalingconfiguration) */ override fun scalingConfiguration(): Any? = unwrap(this).getScalingConfiguration() /** - * The `ServerlessV2ScalingConfiguration` property type specifies the scaling configuration of - * an Aurora Serverless V2 DB cluster. + * The scaling configuration of an Aurora Serverless V2 DB cluster. * * This property is only supported for Aurora Serverless v2. For Aurora Serverless v1, Use the * `ScalingConfiguration` property. * - * Valid for: Aurora DB clusters only + * Valid for: Aurora Serverless v2 DB clusters only * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-serverlessv2scalingconfiguration) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnDBInstance.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnDBInstance.kt index 8f23e64665..531681c9fc 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnDBInstance.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnDBInstance.kt @@ -876,12 +876,12 @@ public open class CfnDBInstance( endpoint(EndpointProperty(`value`)) /** - * The name of the database engine that you want to use for this DB instance. + * The name of the database engine to use for this DB instance. */ public open fun engine(): String? = unwrap(this).getEngine() /** - * The name of the database engine that you want to use for this DB instance. + * The name of the database engine to use for this DB instance. */ public open fun engine(`value`: String) { unwrap(this).setEngine(`value`) @@ -2657,12 +2657,17 @@ public open class CfnDBInstance( public fun endpoint(endpoint: EndpointProperty.Builder.() -> Unit) /** - * The name of the database engine that you want to use for this DB instance. + * The name of the database engine to use for this DB instance. * * Not every database engine is available in every AWS Region. * + * This property is required when creating a DB instance. * - * When you are creating a DB instance, the `Engine` property is required. + * + * You can convert an Oracle database from the non-CDB architecture to the container database + * (CDB) architecture by updating the `Engine` value in your templates from `oracle-ee` to + * `oracle-ee-cdb` or from `oracle-se2` to `oracle-se2-cdb` . Converting to the CDB architecture + * requires an interruption. * * * Valid Values: @@ -2689,7 +2694,7 @@ public open class CfnDBInstance( * * `sqlserver-web` * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-engine) - * @param engine The name of the database engine that you want to use for this DB instance. + * @param engine The name of the database engine to use for this DB instance. */ public fun engine(engine: String) @@ -2793,9 +2798,9 @@ public open class CfnDBInstance( * KMS key for the destination AWS Region. KMS encryption keys are specific to the region that * they're created in, and you can't use encryption keys from one region in another region. * - * If you specify the `SnapshotIdentifier` property, the `StorageEncrypted` property value is - * inherited from the snapshot, and if the DB instance is encrypted, the specified `KmsKeyId` - * property is used. + * If you specify the `DBSnapshotIdentifier` property, don't specify this property. The + * `StorageEncrypted` property value is inherited from the snapshot. If the DB instance is + * encrypted, the specified `KmsKeyId` property is also inherited from the snapshot. * * If you specify `DBSecurityGroups` , AWS CloudFormation ignores this property. To specify both * a security group and this property, you must use a VPC security group. For more information @@ -3505,14 +3510,8 @@ public open class CfnDBInstance( * value is inherited from the source DB instance, and if the DB instance is encrypted, the * specified `KmsKeyId` property is used. * - * If you specify the `DBSnapshotIdentifier` and the specified snapshot is encrypted, don't - * specify this property. The value is inherited from the snapshot, and the specified `KmsKeyId` - * property is used. - * - * If you specify the `DBSnapshotIdentifier` and the specified snapshot isn't encrypted, you can - * use this property to specify that the restored DB instance is encrypted. Specify the `KmsKeyId` - * property for the KMS key to use for encryption. If you don't want the restored DB instance to be - * encrypted, then don't set this property or set it to `false` . + * If you specify `DBSnapshotIdentifier` property, don't specify this property. The value is + * inherited from the snapshot. * * *Amazon Aurora* * @@ -3533,14 +3532,8 @@ public open class CfnDBInstance( * value is inherited from the source DB instance, and if the DB instance is encrypted, the * specified `KmsKeyId` property is used. * - * If you specify the `DBSnapshotIdentifier` and the specified snapshot is encrypted, don't - * specify this property. The value is inherited from the snapshot, and the specified `KmsKeyId` - * property is used. - * - * If you specify the `DBSnapshotIdentifier` and the specified snapshot isn't encrypted, you can - * use this property to specify that the restored DB instance is encrypted. Specify the `KmsKeyId` - * property for the KMS key to use for encryption. If you don't want the restored DB instance to be - * encrypted, then don't set this property or set it to `false` . + * If you specify `DBSnapshotIdentifier` property, don't specify this property. The value is + * inherited from the snapshot. * * *Amazon Aurora* * @@ -5018,12 +5011,17 @@ public open class CfnDBInstance( endpoint(EndpointProperty(endpoint)) /** - * The name of the database engine that you want to use for this DB instance. + * The name of the database engine to use for this DB instance. * * Not every database engine is available in every AWS Region. * + * This property is required when creating a DB instance. * - * When you are creating a DB instance, the `Engine` property is required. + * + * You can convert an Oracle database from the non-CDB architecture to the container database + * (CDB) architecture by updating the `Engine` value in your templates from `oracle-ee` to + * `oracle-ee-cdb` or from `oracle-se2` to `oracle-se2-cdb` . Converting to the CDB architecture + * requires an interruption. * * * Valid Values: @@ -5050,7 +5048,7 @@ public open class CfnDBInstance( * * `sqlserver-web` * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#cfn-rds-dbinstance-engine) - * @param engine The name of the database engine that you want to use for this DB instance. + * @param engine The name of the database engine to use for this DB instance. */ override fun engine(engine: String) { cdkBuilder.engine(engine) @@ -5160,9 +5158,9 @@ public open class CfnDBInstance( * KMS key for the destination AWS Region. KMS encryption keys are specific to the region that * they're created in, and you can't use encryption keys from one region in another region. * - * If you specify the `SnapshotIdentifier` property, the `StorageEncrypted` property value is - * inherited from the snapshot, and if the DB instance is encrypted, the specified `KmsKeyId` - * property is used. + * If you specify the `DBSnapshotIdentifier` property, don't specify this property. The + * `StorageEncrypted` property value is inherited from the snapshot. If the DB instance is + * encrypted, the specified `KmsKeyId` property is also inherited from the snapshot. * * If you specify `DBSecurityGroups` , AWS CloudFormation ignores this property. To specify both * a security group and this property, you must use a VPC security group. For more information @@ -5940,14 +5938,8 @@ public open class CfnDBInstance( * value is inherited from the source DB instance, and if the DB instance is encrypted, the * specified `KmsKeyId` property is used. * - * If you specify the `DBSnapshotIdentifier` and the specified snapshot is encrypted, don't - * specify this property. The value is inherited from the snapshot, and the specified `KmsKeyId` - * property is used. - * - * If you specify the `DBSnapshotIdentifier` and the specified snapshot isn't encrypted, you can - * use this property to specify that the restored DB instance is encrypted. Specify the `KmsKeyId` - * property for the KMS key to use for encryption. If you don't want the restored DB instance to be - * encrypted, then don't set this property or set it to `false` . + * If you specify `DBSnapshotIdentifier` property, don't specify this property. The value is + * inherited from the snapshot. * * *Amazon Aurora* * @@ -5970,14 +5962,8 @@ public open class CfnDBInstance( * value is inherited from the source DB instance, and if the DB instance is encrypted, the * specified `KmsKeyId` property is used. * - * If you specify the `DBSnapshotIdentifier` and the specified snapshot is encrypted, don't - * specify this property. The value is inherited from the snapshot, and the specified `KmsKeyId` - * property is used. - * - * If you specify the `DBSnapshotIdentifier` and the specified snapshot isn't encrypted, you can - * use this property to specify that the restored DB instance is encrypted. Specify the `KmsKeyId` - * property for the KMS key to use for encryption. If you don't want the restored DB instance to be - * encrypted, then don't set this property or set it to `false` . + * If you specify `DBSnapshotIdentifier` property, don't specify this property. The value is + * inherited from the snapshot. * * *Amazon Aurora* * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnDBInstanceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnDBInstanceProps.kt index bbc4e61591..9f1767ec62 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnDBInstanceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnDBInstanceProps.kt @@ -873,12 +873,17 @@ public interface CfnDBInstanceProps { public fun endpoint(): Any? = unwrap(this).getEndpoint() /** - * The name of the database engine that you want to use for this DB instance. + * The name of the database engine to use for this DB instance. * * Not every database engine is available in every AWS Region. * + * This property is required when creating a DB instance. * - * When you are creating a DB instance, the `Engine` property is required. + * + * You can convert an Oracle database from the non-CDB architecture to the container database + * (CDB) architecture by updating the `Engine` value in your templates from `oracle-ee` to + * `oracle-ee-cdb` or from `oracle-se2` to `oracle-se2-cdb` . Converting to the CDB architecture + * requires an interruption. * * * Valid Values: @@ -1006,9 +1011,9 @@ public interface CfnDBInstanceProps { * key for the destination AWS Region. KMS encryption keys are specific to the region that they're * created in, and you can't use encryption keys from one region in another region. * - * If you specify the `SnapshotIdentifier` property, the `StorageEncrypted` property value is - * inherited from the snapshot, and if the DB instance is encrypted, the specified `KmsKeyId` - * property is used. + * If you specify the `DBSnapshotIdentifier` property, don't specify this property. The + * `StorageEncrypted` property value is inherited from the snapshot. If the DB instance is encrypted, + * the specified `KmsKeyId` property is also inherited from the snapshot. * * If you specify `DBSecurityGroups` , AWS CloudFormation ignores this property. To specify both a * security group and this property, you must use a VPC security group. For more information about @@ -1566,14 +1571,8 @@ public interface CfnDBInstanceProps { * value is inherited from the source DB instance, and if the DB instance is encrypted, the specified * `KmsKeyId` property is used. * - * If you specify the `DBSnapshotIdentifier` and the specified snapshot is encrypted, don't - * specify this property. The value is inherited from the snapshot, and the specified `KmsKeyId` - * property is used. - * - * If you specify the `DBSnapshotIdentifier` and the specified snapshot isn't encrypted, you can - * use this property to specify that the restored DB instance is encrypted. Specify the `KmsKeyId` - * property for the KMS key to use for encryption. If you don't want the restored DB instance to be - * encrypted, then don't set this property or set it to `false` . + * If you specify `DBSnapshotIdentifier` property, don't specify this property. The value is + * inherited from the snapshot. * * *Amazon Aurora* * @@ -2623,11 +2622,16 @@ public interface CfnDBInstanceProps { public fun endpoint(endpoint: CfnDBInstance.EndpointProperty.Builder.() -> Unit) /** - * @param engine The name of the database engine that you want to use for this DB instance. + * @param engine The name of the database engine to use for this DB instance. * Not every database engine is available in every AWS Region. * + * This property is required when creating a DB instance. + * * - * When you are creating a DB instance, the `Engine` property is required. + * You can convert an Oracle database from the non-CDB architecture to the container database + * (CDB) architecture by updating the `Engine` value in your templates from `oracle-ee` to + * `oracle-ee-cdb` or from `oracle-se2` to `oracle-se2-cdb` . Converting to the CDB architecture + * requires an interruption. * * * Valid Values: @@ -2746,9 +2750,9 @@ public interface CfnDBInstanceProps { * KMS key for the destination AWS Region. KMS encryption keys are specific to the region that * they're created in, and you can't use encryption keys from one region in another region. * - * If you specify the `SnapshotIdentifier` property, the `StorageEncrypted` property value is - * inherited from the snapshot, and if the DB instance is encrypted, the specified `KmsKeyId` - * property is used. + * If you specify the `DBSnapshotIdentifier` property, don't specify this property. The + * `StorageEncrypted` property value is inherited from the snapshot. If the DB instance is + * encrypted, the specified `KmsKeyId` property is also inherited from the snapshot. * * If you specify `DBSecurityGroups` , AWS CloudFormation ignores this property. To specify both * a security group and this property, you must use a VPC security group. For more information @@ -3304,14 +3308,8 @@ public interface CfnDBInstanceProps { * value is inherited from the source DB instance, and if the DB instance is encrypted, the * specified `KmsKeyId` property is used. * - * If you specify the `DBSnapshotIdentifier` and the specified snapshot is encrypted, don't - * specify this property. The value is inherited from the snapshot, and the specified `KmsKeyId` - * property is used. - * - * If you specify the `DBSnapshotIdentifier` and the specified snapshot isn't encrypted, you can - * use this property to specify that the restored DB instance is encrypted. Specify the `KmsKeyId` - * property for the KMS key to use for encryption. If you don't want the restored DB instance to be - * encrypted, then don't set this property or set it to `false` . + * If you specify `DBSnapshotIdentifier` property, don't specify this property. The value is + * inherited from the snapshot. * * *Amazon Aurora* * @@ -3328,14 +3326,8 @@ public interface CfnDBInstanceProps { * value is inherited from the source DB instance, and if the DB instance is encrypted, the * specified `KmsKeyId` property is used. * - * If you specify the `DBSnapshotIdentifier` and the specified snapshot is encrypted, don't - * specify this property. The value is inherited from the snapshot, and the specified `KmsKeyId` - * property is used. - * - * If you specify the `DBSnapshotIdentifier` and the specified snapshot isn't encrypted, you can - * use this property to specify that the restored DB instance is encrypted. Specify the `KmsKeyId` - * property for the KMS key to use for encryption. If you don't want the restored DB instance to be - * encrypted, then don't set this property or set it to `false` . + * If you specify `DBSnapshotIdentifier` property, don't specify this property. The value is + * inherited from the snapshot. * * *Amazon Aurora* * @@ -4527,11 +4519,16 @@ public interface CfnDBInstanceProps { endpoint(CfnDBInstance.EndpointProperty(endpoint)) /** - * @param engine The name of the database engine that you want to use for this DB instance. + * @param engine The name of the database engine to use for this DB instance. * Not every database engine is available in every AWS Region. * + * This property is required when creating a DB instance. * - * When you are creating a DB instance, the `Engine` property is required. + * + * You can convert an Oracle database from the non-CDB architecture to the container database + * (CDB) architecture by updating the `Engine` value in your templates from `oracle-ee` to + * `oracle-ee-cdb` or from `oracle-se2` to `oracle-se2-cdb` . Converting to the CDB architecture + * requires an interruption. * * * Valid Values: @@ -4656,9 +4653,9 @@ public interface CfnDBInstanceProps { * KMS key for the destination AWS Region. KMS encryption keys are specific to the region that * they're created in, and you can't use encryption keys from one region in another region. * - * If you specify the `SnapshotIdentifier` property, the `StorageEncrypted` property value is - * inherited from the snapshot, and if the DB instance is encrypted, the specified `KmsKeyId` - * property is used. + * If you specify the `DBSnapshotIdentifier` property, don't specify this property. The + * `StorageEncrypted` property value is inherited from the snapshot. If the DB instance is + * encrypted, the specified `KmsKeyId` property is also inherited from the snapshot. * * If you specify `DBSecurityGroups` , AWS CloudFormation ignores this property. To specify both * a security group and this property, you must use a VPC security group. For more information @@ -5282,14 +5279,8 @@ public interface CfnDBInstanceProps { * value is inherited from the source DB instance, and if the DB instance is encrypted, the * specified `KmsKeyId` property is used. * - * If you specify the `DBSnapshotIdentifier` and the specified snapshot is encrypted, don't - * specify this property. The value is inherited from the snapshot, and the specified `KmsKeyId` - * property is used. - * - * If you specify the `DBSnapshotIdentifier` and the specified snapshot isn't encrypted, you can - * use this property to specify that the restored DB instance is encrypted. Specify the `KmsKeyId` - * property for the KMS key to use for encryption. If you don't want the restored DB instance to be - * encrypted, then don't set this property or set it to `false` . + * If you specify `DBSnapshotIdentifier` property, don't specify this property. The value is + * inherited from the snapshot. * * *Amazon Aurora* * @@ -5308,14 +5299,8 @@ public interface CfnDBInstanceProps { * value is inherited from the source DB instance, and if the DB instance is encrypted, the * specified `KmsKeyId` property is used. * - * If you specify the `DBSnapshotIdentifier` and the specified snapshot is encrypted, don't - * specify this property. The value is inherited from the snapshot, and the specified `KmsKeyId` - * property is used. - * - * If you specify the `DBSnapshotIdentifier` and the specified snapshot isn't encrypted, you can - * use this property to specify that the restored DB instance is encrypted. Specify the `KmsKeyId` - * property for the KMS key to use for encryption. If you don't want the restored DB instance to be - * encrypted, then don't set this property or set it to `false` . + * If you specify `DBSnapshotIdentifier` property, don't specify this property. The value is + * inherited from the snapshot. * * *Amazon Aurora* * @@ -6273,12 +6258,17 @@ public interface CfnDBInstanceProps { override fun endpoint(): Any? = unwrap(this).getEndpoint() /** - * The name of the database engine that you want to use for this DB instance. + * The name of the database engine to use for this DB instance. * * Not every database engine is available in every AWS Region. * + * This property is required when creating a DB instance. * - * When you are creating a DB instance, the `Engine` property is required. + * + * You can convert an Oracle database from the non-CDB architecture to the container database + * (CDB) architecture by updating the `Engine` value in your templates from `oracle-ee` to + * `oracle-ee-cdb` or from `oracle-se2` to `oracle-se2-cdb` . Converting to the CDB architecture + * requires an interruption. * * * Valid Values: @@ -6406,9 +6396,9 @@ public interface CfnDBInstanceProps { * KMS key for the destination AWS Region. KMS encryption keys are specific to the region that * they're created in, and you can't use encryption keys from one region in another region. * - * If you specify the `SnapshotIdentifier` property, the `StorageEncrypted` property value is - * inherited from the snapshot, and if the DB instance is encrypted, the specified `KmsKeyId` - * property is used. + * If you specify the `DBSnapshotIdentifier` property, don't specify this property. The + * `StorageEncrypted` property value is inherited from the snapshot. If the DB instance is + * encrypted, the specified `KmsKeyId` property is also inherited from the snapshot. * * If you specify `DBSecurityGroups` , AWS CloudFormation ignores this property. To specify both * a security group and this property, you must use a VPC security group. For more information @@ -6970,14 +6960,8 @@ public interface CfnDBInstanceProps { * value is inherited from the source DB instance, and if the DB instance is encrypted, the * specified `KmsKeyId` property is used. * - * If you specify the `DBSnapshotIdentifier` and the specified snapshot is encrypted, don't - * specify this property. The value is inherited from the snapshot, and the specified `KmsKeyId` - * property is used. - * - * If you specify the `DBSnapshotIdentifier` and the specified snapshot isn't encrypted, you can - * use this property to specify that the restored DB instance is encrypted. Specify the `KmsKeyId` - * property for the KMS key to use for encryption. If you don't want the restored DB instance to be - * encrypted, then don't set this property or set it to `false` . + * If you specify `DBSnapshotIdentifier` property, don't specify this property. The value is + * inherited from the snapshot. * * *Amazon Aurora* * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnIntegration.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnIntegration.kt index 784bc244f1..39ceee7791 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnIntegration.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnIntegration.kt @@ -33,6 +33,8 @@ import software.constructs.Construct as SoftwareConstructsConstruct * // the properties below are optional * .additionalEncryptionContext(Map.of( * "additionalEncryptionContextKey", "additionalEncryptionContext")) + * .dataFilter("dataFilter") + * .description("description") * .integrationName("integrationName") * .kmsKeyId("kmsKeyId") * .tags(List.of(CfnTag.builder() @@ -102,6 +104,30 @@ public open class CfnIntegration( public override fun cdkTagManager(): TagManager = unwrap(this).getCdkTagManager().let(TagManager::wrap) + /** + * Data filters for the integration. + */ + public open fun dataFilter(): String? = unwrap(this).getDataFilter() + + /** + * Data filters for the integration. + */ + public open fun dataFilter(`value`: String) { + unwrap(this).setDataFilter(`value`) + } + + /** + * A description of the integration. + */ + public open fun description(): String? = unwrap(this).getDescription() + + /** + * A description of the integration. + */ + public open fun description(`value`: String) { + unwrap(this).setDescription(`value`) + } + /** * Examines the CloudFormation resource and discloses attributes. * @@ -215,6 +241,25 @@ public open class CfnIntegration( */ public fun additionalEncryptionContext(additionalEncryptionContext: Map) + /** + * Data filters for the integration. + * + * These filters determine which tables from the source database are sent to the target Amazon + * Redshift data warehouse. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-integration.html#cfn-rds-integration-datafilter) + * @param dataFilter Data filters for the integration. + */ + public fun dataFilter(dataFilter: String) + + /** + * A description of the integration. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-integration.html#cfn-rds-integration-description) + * @param description A description of the integration. + */ + public fun description(description: String) + /** * The name of the integration. * @@ -321,6 +366,29 @@ public open class CfnIntegration( cdkBuilder.additionalEncryptionContext(additionalEncryptionContext) } + /** + * Data filters for the integration. + * + * These filters determine which tables from the source database are sent to the target Amazon + * Redshift data warehouse. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-integration.html#cfn-rds-integration-datafilter) + * @param dataFilter Data filters for the integration. + */ + override fun dataFilter(dataFilter: String) { + cdkBuilder.dataFilter(dataFilter) + } + + /** + * A description of the integration. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-integration.html#cfn-rds-integration-description) + * @param description A description of the integration. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + /** * The name of the integration. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnIntegrationProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnIntegrationProps.kt index 686e2fe769..c7d010c928 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnIntegrationProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/CfnIntegrationProps.kt @@ -28,6 +28,8 @@ import kotlin.collections.Map * // the properties below are optional * .additionalEncryptionContext(Map.of( * "additionalEncryptionContextKey", "additionalEncryptionContext")) + * .dataFilter("dataFilter") + * .description("description") * .integrationName("integrationName") * .kmsKeyId("kmsKeyId") * .tags(List.of(CfnTag.builder() @@ -54,6 +56,23 @@ public interface CfnIntegrationProps { */ public fun additionalEncryptionContext(): Any? = unwrap(this).getAdditionalEncryptionContext() + /** + * Data filters for the integration. + * + * These filters determine which tables from the source database are sent to the target Amazon + * Redshift data warehouse. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-integration.html#cfn-rds-integration-datafilter) + */ + public fun dataFilter(): String? = unwrap(this).getDataFilter() + + /** + * A description of the integration. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-integration.html#cfn-rds-integration-description) + */ + public fun description(): String? = unwrap(this).getDescription() + /** * The name of the integration. * @@ -123,6 +142,18 @@ public interface CfnIntegrationProps { */ public fun additionalEncryptionContext(additionalEncryptionContext: Map) + /** + * @param dataFilter Data filters for the integration. + * These filters determine which tables from the source database are sent to the target Amazon + * Redshift data warehouse. + */ + public fun dataFilter(dataFilter: String) + + /** + * @param description A description of the integration. + */ + public fun description(description: String) + /** * @param integrationName The name of the integration. */ @@ -194,6 +225,22 @@ public interface CfnIntegrationProps { cdkBuilder.additionalEncryptionContext(additionalEncryptionContext) } + /** + * @param dataFilter Data filters for the integration. + * These filters determine which tables from the source database are sent to the target Amazon + * Redshift data warehouse. + */ + override fun dataFilter(dataFilter: String) { + cdkBuilder.dataFilter(dataFilter) + } + + /** + * @param description A description of the integration. + */ + override fun description(description: String) { + cdkBuilder.description(description) + } + /** * @param integrationName The name of the integration. */ @@ -264,6 +311,23 @@ public interface CfnIntegrationProps { */ override fun additionalEncryptionContext(): Any? = unwrap(this).getAdditionalEncryptionContext() + /** + * Data filters for the integration. + * + * These filters determine which tables from the source database are sent to the target Amazon + * Redshift data warehouse. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-integration.html#cfn-rds-integration-datafilter) + */ + override fun dataFilter(): String? = unwrap(this).getDataFilter() + + /** + * A description of the integration. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-integration.html#cfn-rds-integration-description) + */ + override fun description(): String? = unwrap(this).getDescription() + /** * The name of the integration. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/ClusterInstanceOptions.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/ClusterInstanceOptions.kt index 4b98067501..ae2b5f3d9a 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/ClusterInstanceOptions.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/ClusterInstanceOptions.kt @@ -36,6 +36,7 @@ import kotlin.collections.Map * "parametersKey", "parameters")) * .performanceInsightEncryptionKey(key) * .performanceInsightRetention(PerformanceInsightRetention.DEFAULT) + * .preferredMaintenanceWindow("preferredMaintenanceWindow") * .publiclyAccessible(false) * .build(); * ``` @@ -167,6 +168,19 @@ public interface ClusterInstanceOptions { public fun performanceInsightRetention(): PerformanceInsightRetention? = unwrap(this).getPerformanceInsightRetention()?.let(PerformanceInsightRetention::wrap) + /** + * A preferred maintenance window day/time range. Should be specified as a range + * ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). + * + * Example: 'Sun:23:45-Mon:00:15' + * + * Default: - 30-minute window selected at random from an 8-hour block of time for + * each AWS Region, occurring on a random day of the week. + * + * [Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#Concepts.DBMaintenance) + */ + public fun preferredMaintenanceWindow(): String? = unwrap(this).getPreferredMaintenanceWindow() + /** * Indicates whether the DB instance is an internet-facing instance. * @@ -247,6 +261,13 @@ public interface ClusterInstanceOptions { */ public fun performanceInsightRetention(performanceInsightRetention: PerformanceInsightRetention) + /** + * @param preferredMaintenanceWindow A preferred maintenance window day/time range. Should be + * specified as a range ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). + * Example: 'Sun:23:45-Mon:00:15' + */ + public fun preferredMaintenanceWindow(preferredMaintenanceWindow: String) + /** * @param publiclyAccessible Indicates whether the DB instance is an internet-facing instance. * If not specified, @@ -344,6 +365,15 @@ public interface ClusterInstanceOptions { cdkBuilder.performanceInsightRetention(performanceInsightRetention.let(PerformanceInsightRetention::unwrap)) } + /** + * @param preferredMaintenanceWindow A preferred maintenance window day/time range. Should be + * specified as a range ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). + * Example: 'Sun:23:45-Mon:00:15' + */ + override fun preferredMaintenanceWindow(preferredMaintenanceWindow: String) { + cdkBuilder.preferredMaintenanceWindow(preferredMaintenanceWindow) + } + /** * @param publiclyAccessible Indicates whether the DB instance is an internet-facing instance. * If not specified, @@ -488,6 +518,20 @@ public interface ClusterInstanceOptions { override fun performanceInsightRetention(): PerformanceInsightRetention? = unwrap(this).getPerformanceInsightRetention()?.let(PerformanceInsightRetention::wrap) + /** + * A preferred maintenance window day/time range. Should be specified as a range + * ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). + * + * Example: 'Sun:23:45-Mon:00:15' + * + * Default: - 30-minute window selected at random from an 8-hour block of time for + * each AWS Region, occurring on a random day of the week. + * + * [Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#Concepts.DBMaintenance) + */ + override fun preferredMaintenanceWindow(): String? = + unwrap(this).getPreferredMaintenanceWindow() + /** * Indicates whether the DB instance is an internet-facing instance. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/ClusterInstanceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/ClusterInstanceProps.kt index 88e7394f43..fc2151ccde 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/ClusterInstanceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/ClusterInstanceProps.kt @@ -40,6 +40,7 @@ import kotlin.collections.Map * "parametersKey", "parameters")) * .performanceInsightEncryptionKey(key) * .performanceInsightRetention(PerformanceInsightRetention.DEFAULT) + * .preferredMaintenanceWindow("preferredMaintenanceWindow") * .promotionTier(123) * .publiclyAccessible(false) * .build(); @@ -142,6 +143,13 @@ public interface ClusterInstanceProps : ClusterInstanceOptions { */ public fun performanceInsightRetention(performanceInsightRetention: PerformanceInsightRetention) + /** + * @param preferredMaintenanceWindow A preferred maintenance window day/time range. Should be + * specified as a range ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). + * Example: 'Sun:23:45-Mon:00:15' + */ + public fun preferredMaintenanceWindow(preferredMaintenanceWindow: String) + /** * @param promotionTier The promotion tier of the cluster instance. * This matters more for serverlessV2 instances. If a serverless @@ -258,6 +266,15 @@ public interface ClusterInstanceProps : ClusterInstanceOptions { cdkBuilder.performanceInsightRetention(performanceInsightRetention.let(PerformanceInsightRetention::unwrap)) } + /** + * @param preferredMaintenanceWindow A preferred maintenance window day/time range. Should be + * specified as a range ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). + * Example: 'Sun:23:45-Mon:00:15' + */ + override fun preferredMaintenanceWindow(preferredMaintenanceWindow: String) { + cdkBuilder.preferredMaintenanceWindow(preferredMaintenanceWindow) + } + /** * @param promotionTier The promotion tier of the cluster instance. * This matters more for serverlessV2 instances. If a serverless @@ -423,6 +440,20 @@ public interface ClusterInstanceProps : ClusterInstanceOptions { override fun performanceInsightRetention(): PerformanceInsightRetention? = unwrap(this).getPerformanceInsightRetention()?.let(PerformanceInsightRetention::wrap) + /** + * A preferred maintenance window day/time range. Should be specified as a range + * ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). + * + * Example: 'Sun:23:45-Mon:00:15' + * + * Default: - 30-minute window selected at random from an 8-hour block of time for + * each AWS Region, occurring on a random day of the week. + * + * [Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#Concepts.DBMaintenance) + */ + override fun preferredMaintenanceWindow(): String? = + unwrap(this).getPreferredMaintenanceWindow() + /** * The promotion tier of the cluster instance. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/Credentials.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/Credentials.kt index 3f24cafea4..d9c0dab5f7 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/Credentials.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/Credentials.kt @@ -29,14 +29,18 @@ import kotlin.jvm.JvmName * // The VPC to place the cluster in * Vpc vpc = new Vpc(this, "AuroraVpc"); * // Create the serverless cluster, provide all values needed to customise the database. - * ServerlessCluster cluster = ServerlessCluster.Builder.create(this, "AuroraCluster") - * .engine(DatabaseClusterEngine.AURORA_MYSQL) - * .vpc(vpc) + * DatabaseCluster cluster = DatabaseCluster.Builder.create(this, "AuroraClusterV2") + * .engine(DatabaseClusterEngine.auroraPostgres(AuroraPostgresClusterEngineProps.builder().version(AuroraPostgresEngineVersion.VER_15_5).build())) * .credentials(Map.of("username", "clusteradmin")) * .clusterIdentifier("db-endpoint-test") + * .writer(ClusterInstance.serverlessV2("writer")) + * .serverlessV2MinCapacity(2) + * .serverlessV2MaxCapacity(10) + * .vpc(vpc) * .defaultDatabaseName("demos") + * .enableDataApi(true) * .build(); - * RdsDataSource rdsDS = api.addRdsDataSource("rds", cluster, secret, "demos"); + * RdsDataSource rdsDS = api.addRdsDataSourceV2("rds", cluster, secret, "demos"); * // Set up a resolver for an RDS query. * rdsDS.createResolver("QueryGetDemosRdsResolver", BaseResolverProps.builder() * .typeName("Query") diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/DatabaseCluster.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/DatabaseCluster.kt index 1b85096baf..5d87f97f83 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/DatabaseCluster.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/DatabaseCluster.kt @@ -202,7 +202,7 @@ public open class DatabaseCluster( * * @param props */ - public open fun metricAcuUtilization(): Metric = + public open fun metricACUUtilization(): Metric = unwrap(this).metricACUUtilization().let(Metric::wrap) /** @@ -216,7 +216,7 @@ public open class DatabaseCluster( * * @param props */ - public open fun metricAcuUtilization(props: MetricOptions): Metric = + public open fun metricACUUtilization(props: MetricOptions): Metric = unwrap(this).metricACUUtilization(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -231,9 +231,9 @@ public open class DatabaseCluster( * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("3f3662f4563df3003c54025065edc6881211474bc66d259be936d026eb80d439") - public open fun metricAcuUtilization(props: MetricOptions.Builder.() -> Unit): Metric = - metricAcuUtilization(MetricOptions(props)) + @JvmName("33b0ed64300589a3c8c62b653dd879a14ce77adab1e44f36e44db36cbd1b09b6") + public open fun metricACUUtilization(props: MetricOptions.Builder.() -> Unit): Metric = + metricACUUtilization(MetricOptions(props)) /** * As a cluster-level metric, it represents the average of the ServerlessDatabaseCapacity values @@ -273,7 +273,7 @@ public open class DatabaseCluster( /** * The secret attached to this cluster. */ - public open fun secret(): ISecret? = unwrap(this).getSecret()?.let(ISecret::wrap) + public override fun secret(): ISecret? = unwrap(this).getSecret()?.let(ISecret::wrap) /** * Application for single user rotation of the master password to this cluster. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/DatabaseClusterAttributes.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/DatabaseClusterAttributes.kt index bd13a2364b..00cce6fb6e 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/DatabaseClusterAttributes.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/DatabaseClusterAttributes.kt @@ -6,6 +6,7 @@ import io.cloudshiftdev.awscdk.common.CdkDslMarker import io.cloudshiftdev.awscdk.common.CdkObject import io.cloudshiftdev.awscdk.common.CdkObjectWrappers import io.cloudshiftdev.awscdk.services.ec2.ISecurityGroup +import io.cloudshiftdev.awscdk.services.secretsmanager.ISecret import kotlin.Number import kotlin.String import kotlin.Unit @@ -21,7 +22,9 @@ import kotlin.collections.List * // The values are placeholders you should change. * import io.cloudshiftdev.awscdk.services.ec2.*; * import io.cloudshiftdev.awscdk.services.rds.*; + * import io.cloudshiftdev.awscdk.services.secretsmanager.*; * IClusterEngine clusterEngine; + * Secret secret; * SecurityGroup securityGroup; * DatabaseClusterAttributes databaseClusterAttributes = DatabaseClusterAttributes.builder() * .clusterIdentifier("clusterIdentifier") @@ -33,6 +36,7 @@ import kotlin.collections.List * .instanceIdentifiers(List.of("instanceIdentifiers")) * .port(123) * .readerEndpointAddress("readerEndpointAddress") + * .secret(secret) * .securityGroups(List.of(securityGroup)) * .build(); * ``` @@ -96,6 +100,13 @@ public interface DatabaseClusterAttributes { */ public fun readerEndpointAddress(): String? = unwrap(this).getReaderEndpointAddress() + /** + * The secret attached to the database cluster. + * + * Default: - the imported Cluster's secret is unknown + */ + public fun secret(): ISecret? = unwrap(this).getSecret()?.let(ISecret::wrap) + /** * The security groups of the database cluster. * @@ -161,6 +172,11 @@ public interface DatabaseClusterAttributes { */ public fun readerEndpointAddress(readerEndpointAddress: String) + /** + * @param secret The secret attached to the database cluster. + */ + public fun secret(secret: ISecret) + /** * @param securityGroups The security groups of the database cluster. */ @@ -246,6 +262,13 @@ public interface DatabaseClusterAttributes { cdkBuilder.readerEndpointAddress(readerEndpointAddress) } + /** + * @param secret The secret attached to the database cluster. + */ + override fun secret(secret: ISecret) { + cdkBuilder.secret(secret.let(ISecret::unwrap)) + } + /** * @param securityGroups The security groups of the database cluster. */ @@ -324,6 +347,13 @@ public interface DatabaseClusterAttributes { */ override fun readerEndpointAddress(): String? = unwrap(this).getReaderEndpointAddress() + /** + * The secret attached to the database cluster. + * + * Default: - the imported Cluster's secret is unknown + */ + override fun secret(): ISecret? = unwrap(this).getSecret()?.let(ISecret::wrap) + /** * The security groups of the database cluster. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/DatabaseClusterBase.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/DatabaseClusterBase.kt index e58a837d95..5a12052f38 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/DatabaseClusterBase.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/DatabaseClusterBase.kt @@ -10,6 +10,7 @@ import io.cloudshiftdev.awscdk.services.cloudwatch.MetricOptions import io.cloudshiftdev.awscdk.services.ec2.Connections import io.cloudshiftdev.awscdk.services.iam.Grant import io.cloudshiftdev.awscdk.services.iam.IGrantable +import io.cloudshiftdev.awscdk.services.secretsmanager.ISecret import io.cloudshiftdev.awscdk.services.secretsmanager.SecretAttachmentTargetProps import kotlin.String import kotlin.Unit @@ -106,7 +107,7 @@ public abstract class DatabaseClusterBase( * * @param grantee */ - public open fun grantDataApiAccess(grantee: IGrantable): Grant = + public override fun grantDataApiAccess(grantee: IGrantable): Grant = unwrap(this).grantDataApiAccess(grantee.let(IGrantable::unwrap)).let(Grant::wrap) /** @@ -156,7 +157,7 @@ public abstract class DatabaseClusterBase( * * @param props */ - public override fun metricCpuUtilization(): Metric = + public override fun metricCPUUtilization(): Metric = unwrap(this).metricCPUUtilization().let(Metric::wrap) /** @@ -166,7 +167,7 @@ public abstract class DatabaseClusterBase( * * @param props */ - public override fun metricCpuUtilization(props: MetricOptions): Metric = + public override fun metricCPUUtilization(props: MetricOptions): Metric = unwrap(this).metricCPUUtilization(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -177,9 +178,9 @@ public abstract class DatabaseClusterBase( * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("06a38048efcdd43000e7f66d74001004b818625d95136f460bf350a2397a31d0") - public override fun metricCpuUtilization(props: MetricOptions.Builder.() -> Unit): Metric = - metricCpuUtilization(MetricOptions(props)) + @JvmName("66a273587ca08857c76d1952aa0bb360d86bfe06cc24788a922415fa0fa097ef") + public override fun metricCPUUtilization(props: MetricOptions.Builder.() -> Unit): Metric = + metricCPUUtilization(MetricOptions(props)) /** * The number of database connections in use. @@ -545,7 +546,7 @@ public abstract class DatabaseClusterBase( * * @param props */ - public override fun metricVolumeReadIoPs(): Metric = + public override fun metricVolumeReadIOPs(): Metric = unwrap(this).metricVolumeReadIOPs().let(Metric::wrap) /** @@ -555,7 +556,7 @@ public abstract class DatabaseClusterBase( * * @param props */ - public override fun metricVolumeReadIoPs(props: MetricOptions): Metric = + public override fun metricVolumeReadIOPs(props: MetricOptions): Metric = unwrap(this).metricVolumeReadIOPs(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -566,9 +567,9 @@ public abstract class DatabaseClusterBase( * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("72067052a26857a00db0f687d77e4b1548626bbc1cc21cf9326d161fc9b68886") - public override fun metricVolumeReadIoPs(props: MetricOptions.Builder.() -> Unit): Metric = - metricVolumeReadIoPs(MetricOptions(props)) + @JvmName("086a9f6911f369e61d0fcde9022eb67ad1713fce19147894ef9b125ba6821a32") + public override fun metricVolumeReadIOPs(props: MetricOptions.Builder.() -> Unit): Metric = + metricVolumeReadIOPs(MetricOptions(props)) /** * The number of write disk I/O operations to the cluster volume, reported at 5-minute intervals. @@ -577,7 +578,7 @@ public abstract class DatabaseClusterBase( * * @param props */ - public override fun metricVolumeWriteIoPs(): Metric = + public override fun metricVolumeWriteIOPs(): Metric = unwrap(this).metricVolumeWriteIOPs().let(Metric::wrap) /** @@ -587,7 +588,7 @@ public abstract class DatabaseClusterBase( * * @param props */ - public override fun metricVolumeWriteIoPs(props: MetricOptions): Metric = + public override fun metricVolumeWriteIOPs(props: MetricOptions): Metric = unwrap(this).metricVolumeWriteIOPs(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -598,9 +599,14 @@ public abstract class DatabaseClusterBase( * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("e049e75cf4d1c56da8bf142e554ca3f6d27b3533201bcb1be743dd489f70476a") - public override fun metricVolumeWriteIoPs(props: MetricOptions.Builder.() -> Unit): Metric = - metricVolumeWriteIoPs(MetricOptions(props)) + @JvmName("f19f045892b48d2f8dfe909a7aebc7e660a59bbc59651b3f2119beea07c2cdd9") + public override fun metricVolumeWriteIOPs(props: MetricOptions.Builder.() -> Unit): Metric = + metricVolumeWriteIOPs(MetricOptions(props)) + + /** + * The secret attached to this cluster. + */ + public open fun secret(): ISecret? = unwrap(this).getSecret()?.let(ISecret::wrap) private class Wrapper( cdkObject: software.amazon.awscdk.services.rds.DatabaseClusterBase, diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/DatabaseClusterFromSnapshot.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/DatabaseClusterFromSnapshot.kt index 3f17a42bfd..0ac7e830bb 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/DatabaseClusterFromSnapshot.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/DatabaseClusterFromSnapshot.kt @@ -196,7 +196,7 @@ public open class DatabaseClusterFromSnapshot( * * @param props */ - public open fun metricAcuUtilization(): Metric = + public open fun metricACUUtilization(): Metric = unwrap(this).metricACUUtilization().let(Metric::wrap) /** @@ -210,7 +210,7 @@ public open class DatabaseClusterFromSnapshot( * * @param props */ - public open fun metricAcuUtilization(props: MetricOptions): Metric = + public open fun metricACUUtilization(props: MetricOptions): Metric = unwrap(this).metricACUUtilization(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -225,9 +225,9 @@ public open class DatabaseClusterFromSnapshot( * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("3f3662f4563df3003c54025065edc6881211474bc66d259be936d026eb80d439") - public open fun metricAcuUtilization(props: MetricOptions.Builder.() -> Unit): Metric = - metricAcuUtilization(MetricOptions(props)) + @JvmName("33b0ed64300589a3c8c62b653dd879a14ce77adab1e44f36e44db36cbd1b09b6") + public open fun metricACUUtilization(props: MetricOptions.Builder.() -> Unit): Metric = + metricACUUtilization(MetricOptions(props)) /** * As a cluster-level metric, it represents the average of the ServerlessDatabaseCapacity values @@ -267,7 +267,7 @@ public open class DatabaseClusterFromSnapshot( /** * The secret attached to this cluster. */ - public open fun secret(): ISecret? = unwrap(this).getSecret()?.let(ISecret::wrap) + public override fun secret(): ISecret? = unwrap(this).getSecret()?.let(ISecret::wrap) /** * Application for single user rotation of the master password to this cluster. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/DatabaseInstanceBase.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/DatabaseInstanceBase.kt index e93b8e2bbd..bdb3219ca1 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/DatabaseInstanceBase.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/DatabaseInstanceBase.kt @@ -176,7 +176,7 @@ public abstract class DatabaseInstanceBase( * * @param props */ - public override fun metricCpuUtilization(): Metric = + public override fun metricCPUUtilization(): Metric = unwrap(this).metricCPUUtilization().let(Metric::wrap) /** @@ -186,7 +186,7 @@ public abstract class DatabaseInstanceBase( * * @param props */ - public override fun metricCpuUtilization(props: MetricOptions): Metric = + public override fun metricCPUUtilization(props: MetricOptions): Metric = unwrap(this).metricCPUUtilization(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -197,9 +197,9 @@ public abstract class DatabaseInstanceBase( * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("06a38048efcdd43000e7f66d74001004b818625d95136f460bf350a2397a31d0") - public override fun metricCpuUtilization(props: MetricOptions.Builder.() -> Unit): Metric = - metricCpuUtilization(MetricOptions(props)) + @JvmName("66a273587ca08857c76d1952aa0bb360d86bfe06cc24788a922415fa0fa097ef") + public override fun metricCPUUtilization(props: MetricOptions.Builder.() -> Unit): Metric = + metricCPUUtilization(MetricOptions(props)) /** * The number of database connections in use. @@ -304,7 +304,7 @@ public abstract class DatabaseInstanceBase( * * @param props */ - public override fun metricReadIops(): Metric = unwrap(this).metricReadIOPS().let(Metric::wrap) + public override fun metricReadIOPS(): Metric = unwrap(this).metricReadIOPS().let(Metric::wrap) /** * The average number of disk write I/O operations per second. @@ -313,7 +313,7 @@ public abstract class DatabaseInstanceBase( * * @param props */ - public override fun metricReadIops(props: MetricOptions): Metric = + public override fun metricReadIOPS(props: MetricOptions): Metric = unwrap(this).metricReadIOPS(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -324,9 +324,9 @@ public abstract class DatabaseInstanceBase( * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("49526da03d196d2f975a43ba7ac595a380f6b4f4817805d76831acb9d384a0dc") - public override fun metricReadIops(props: MetricOptions.Builder.() -> Unit): Metric = - metricReadIops(MetricOptions(props)) + @JvmName("675d709aa97b4b2ffd49350ba825728b633d56482af787ad3be691dc8bd8db1a") + public override fun metricReadIOPS(props: MetricOptions.Builder.() -> Unit): Metric = + metricReadIOPS(MetricOptions(props)) /** * The average number of disk read I/O operations per second. @@ -335,7 +335,7 @@ public abstract class DatabaseInstanceBase( * * @param props */ - public override fun metricWriteIops(): Metric = unwrap(this).metricWriteIOPS().let(Metric::wrap) + public override fun metricWriteIOPS(): Metric = unwrap(this).metricWriteIOPS().let(Metric::wrap) /** * The average number of disk read I/O operations per second. @@ -344,7 +344,7 @@ public abstract class DatabaseInstanceBase( * * @param props */ - public override fun metricWriteIops(props: MetricOptions): Metric = + public override fun metricWriteIOPS(props: MetricOptions): Metric = unwrap(this).metricWriteIOPS(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -355,9 +355,9 @@ public abstract class DatabaseInstanceBase( * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("8c0e40270e6e53bc6598d5ec2710a93c940874139b12355a5e5d9925c9ff439a") - public override fun metricWriteIops(props: MetricOptions.Builder.() -> Unit): Metric = - metricWriteIops(MetricOptions(props)) + @JvmName("83e54c79d3dbc0c025ceae17bc1f212a92688e30a3f4fafdc9abae8356ba6325") + public override fun metricWriteIOPS(props: MetricOptions.Builder.() -> Unit): Metric = + metricWriteIOPS(MetricOptions(props)) /** * Defines a CloudWatch event rule which triggers for instance events. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/DatabaseProxyOptions.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/DatabaseProxyOptions.kt index 27f73bf243..89befe2df8 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/DatabaseProxyOptions.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/DatabaseProxyOptions.kt @@ -157,7 +157,7 @@ public interface DatabaseProxyOptions { * * Default: true */ - public fun requireTls(): Boolean? = unwrap(this).getRequireTLS() + public fun requireTLS(): Boolean? = unwrap(this).getRequireTLS() /** * IAM role that the proxy uses to access secrets in AWS Secrets Manager. @@ -706,7 +706,7 @@ public interface DatabaseProxyOptions { * * Default: true */ - override fun requireTls(): Boolean? = unwrap(this).getRequireTLS() + override fun requireTLS(): Boolean? = unwrap(this).getRequireTLS() /** * IAM role that the proxy uses to access secrets in AWS Secrets Manager. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/DatabaseProxyProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/DatabaseProxyProps.kt index 07b0550051..ffea26f7d5 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/DatabaseProxyProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/DatabaseProxyProps.kt @@ -564,7 +564,7 @@ public interface DatabaseProxyProps : DatabaseProxyOptions { * * Default: true */ - override fun requireTls(): Boolean? = unwrap(this).getRequireTLS() + override fun requireTLS(): Boolean? = unwrap(this).getRequireTLS() /** * IAM role that the proxy uses to access secrets in AWS Secrets Manager. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/IDatabaseCluster.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/IDatabaseCluster.kt index de0be3c0c4..faffa27fe0 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/IDatabaseCluster.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/IDatabaseCluster.kt @@ -86,6 +86,13 @@ public interface IDatabaseCluster : IResource, IConnectable, ISecretAttachmentTa */ public fun grantConnect(grantee: IGrantable, dbUser: String): Grant + /** + * Grant the given identity to access to the Data API. + * + * @param grantee The principal to grant access to. + */ + public fun grantDataApiAccess(grantee: IGrantable): Grant + /** * Endpoints which address each individual replica. */ @@ -129,7 +136,7 @@ public interface IDatabaseCluster : IResource, IConnectable, ISecretAttachmentTa * * @param props */ - public fun metricCpuUtilization(): Metric + public fun metricCPUUtilization(): Metric /** * The percentage of CPU utilization. @@ -138,7 +145,7 @@ public interface IDatabaseCluster : IResource, IConnectable, ISecretAttachmentTa * * @param props */ - public fun metricCpuUtilization(props: MetricOptions): Metric + public fun metricCPUUtilization(props: MetricOptions): Metric /** * The percentage of CPU utilization. @@ -148,8 +155,8 @@ public interface IDatabaseCluster : IResource, IConnectable, ISecretAttachmentTa * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("06a38048efcdd43000e7f66d74001004b818625d95136f460bf350a2397a31d0") - public fun metricCpuUtilization(props: MetricOptions.Builder.() -> Unit): Metric + @JvmName("66a273587ca08857c76d1952aa0bb360d86bfe06cc24788a922415fa0fa097ef") + public fun metricCPUUtilization(props: MetricOptions.Builder.() -> Unit): Metric /** * The number of database connections in use. @@ -483,7 +490,7 @@ public interface IDatabaseCluster : IResource, IConnectable, ISecretAttachmentTa * * @param props */ - public fun metricVolumeReadIoPs(): Metric + public fun metricVolumeReadIOPs(): Metric /** * The number of billed read I/O operations from a cluster volume, reported at 5-minute intervals. @@ -492,7 +499,7 @@ public interface IDatabaseCluster : IResource, IConnectable, ISecretAttachmentTa * * @param props */ - public fun metricVolumeReadIoPs(props: MetricOptions): Metric + public fun metricVolumeReadIOPs(props: MetricOptions): Metric /** * The number of billed read I/O operations from a cluster volume, reported at 5-minute intervals. @@ -502,8 +509,8 @@ public interface IDatabaseCluster : IResource, IConnectable, ISecretAttachmentTa * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("72067052a26857a00db0f687d77e4b1548626bbc1cc21cf9326d161fc9b68886") - public fun metricVolumeReadIoPs(props: MetricOptions.Builder.() -> Unit): Metric + @JvmName("086a9f6911f369e61d0fcde9022eb67ad1713fce19147894ef9b125ba6821a32") + public fun metricVolumeReadIOPs(props: MetricOptions.Builder.() -> Unit): Metric /** * The number of write disk I/O operations to the cluster volume, reported at 5-minute intervals. @@ -512,7 +519,7 @@ public interface IDatabaseCluster : IResource, IConnectable, ISecretAttachmentTa * * @param props */ - public fun metricVolumeWriteIoPs(): Metric + public fun metricVolumeWriteIOPs(): Metric /** * The number of write disk I/O operations to the cluster volume, reported at 5-minute intervals. @@ -521,7 +528,7 @@ public interface IDatabaseCluster : IResource, IConnectable, ISecretAttachmentTa * * @param props */ - public fun metricVolumeWriteIoPs(props: MetricOptions): Metric + public fun metricVolumeWriteIOPs(props: MetricOptions): Metric /** * The number of write disk I/O operations to the cluster volume, reported at 5-minute intervals. @@ -531,8 +538,8 @@ public interface IDatabaseCluster : IResource, IConnectable, ISecretAttachmentTa * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("e049e75cf4d1c56da8bf142e554ca3f6d27b3533201bcb1be743dd489f70476a") - public fun metricVolumeWriteIoPs(props: MetricOptions.Builder.() -> Unit): Metric + @JvmName("f19f045892b48d2f8dfe909a7aebc7e660a59bbc59651b3f2119beea07c2cdd9") + public fun metricVolumeWriteIOPs(props: MetricOptions.Builder.() -> Unit): Metric private class Wrapper( cdkObject: software.amazon.awscdk.services.rds.IDatabaseCluster, @@ -642,6 +649,14 @@ public interface IDatabaseCluster : IResource, IConnectable, ISecretAttachmentTa override fun grantConnect(grantee: IGrantable, dbUser: String): Grant = unwrap(this).grantConnect(grantee.let(IGrantable::unwrap), dbUser).let(Grant::wrap) + /** + * Grant the given identity to access to the Data API. + * + * @param grantee The principal to grant access to. + */ + override fun grantDataApiAccess(grantee: IGrantable): Grant = + unwrap(this).grantDataApiAccess(grantee.let(IGrantable::unwrap)).let(Grant::wrap) + /** * Endpoints which address each individual replica. */ @@ -689,7 +704,7 @@ public interface IDatabaseCluster : IResource, IConnectable, ISecretAttachmentTa * * @param props */ - override fun metricCpuUtilization(): Metric = + override fun metricCPUUtilization(): Metric = unwrap(this).metricCPUUtilization().let(Metric::wrap) /** @@ -699,7 +714,7 @@ public interface IDatabaseCluster : IResource, IConnectable, ISecretAttachmentTa * * @param props */ - override fun metricCpuUtilization(props: MetricOptions): Metric = + override fun metricCPUUtilization(props: MetricOptions): Metric = unwrap(this).metricCPUUtilization(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -710,9 +725,9 @@ public interface IDatabaseCluster : IResource, IConnectable, ISecretAttachmentTa * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("06a38048efcdd43000e7f66d74001004b818625d95136f460bf350a2397a31d0") - override fun metricCpuUtilization(props: MetricOptions.Builder.() -> Unit): Metric = - metricCpuUtilization(MetricOptions(props)) + @JvmName("66a273587ca08857c76d1952aa0bb360d86bfe06cc24788a922415fa0fa097ef") + override fun metricCPUUtilization(props: MetricOptions.Builder.() -> Unit): Metric = + metricCPUUtilization(MetricOptions(props)) /** * The number of database connections in use. @@ -1078,7 +1093,7 @@ public interface IDatabaseCluster : IResource, IConnectable, ISecretAttachmentTa * * @param props */ - override fun metricVolumeReadIoPs(): Metric = + override fun metricVolumeReadIOPs(): Metric = unwrap(this).metricVolumeReadIOPs().let(Metric::wrap) /** @@ -1089,7 +1104,7 @@ public interface IDatabaseCluster : IResource, IConnectable, ISecretAttachmentTa * * @param props */ - override fun metricVolumeReadIoPs(props: MetricOptions): Metric = + override fun metricVolumeReadIOPs(props: MetricOptions): Metric = unwrap(this).metricVolumeReadIOPs(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -1101,9 +1116,9 @@ public interface IDatabaseCluster : IResource, IConnectable, ISecretAttachmentTa * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("72067052a26857a00db0f687d77e4b1548626bbc1cc21cf9326d161fc9b68886") - override fun metricVolumeReadIoPs(props: MetricOptions.Builder.() -> Unit): Metric = - metricVolumeReadIoPs(MetricOptions(props)) + @JvmName("086a9f6911f369e61d0fcde9022eb67ad1713fce19147894ef9b125ba6821a32") + override fun metricVolumeReadIOPs(props: MetricOptions.Builder.() -> Unit): Metric = + metricVolumeReadIOPs(MetricOptions(props)) /** * The number of write disk I/O operations to the cluster volume, reported at 5-minute @@ -1113,7 +1128,7 @@ public interface IDatabaseCluster : IResource, IConnectable, ISecretAttachmentTa * * @param props */ - override fun metricVolumeWriteIoPs(): Metric = + override fun metricVolumeWriteIOPs(): Metric = unwrap(this).metricVolumeWriteIOPs().let(Metric::wrap) /** @@ -1124,7 +1139,7 @@ public interface IDatabaseCluster : IResource, IConnectable, ISecretAttachmentTa * * @param props */ - override fun metricVolumeWriteIoPs(props: MetricOptions): Metric = + override fun metricVolumeWriteIOPs(props: MetricOptions): Metric = unwrap(this).metricVolumeWriteIOPs(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -1136,9 +1151,9 @@ public interface IDatabaseCluster : IResource, IConnectable, ISecretAttachmentTa * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("e049e75cf4d1c56da8bf142e554ca3f6d27b3533201bcb1be743dd489f70476a") - override fun metricVolumeWriteIoPs(props: MetricOptions.Builder.() -> Unit): Metric = - metricVolumeWriteIoPs(MetricOptions(props)) + @JvmName("f19f045892b48d2f8dfe909a7aebc7e660a59bbc59651b3f2119beea07c2cdd9") + override fun metricVolumeWriteIOPs(props: MetricOptions.Builder.() -> Unit): Metric = + metricVolumeWriteIOPs(MetricOptions(props)) override fun node(): Node = unwrap(this).getNode().let(Node::wrap) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/IDatabaseInstance.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/IDatabaseInstance.kt index bcf04ce068..aa9062b786 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/IDatabaseInstance.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/IDatabaseInstance.kt @@ -137,7 +137,7 @@ public interface IDatabaseInstance : IResource, IConnectable, ISecretAttachmentT * * @param props */ - public fun metricCpuUtilization(): Metric + public fun metricCPUUtilization(): Metric /** * The percentage of CPU utilization. @@ -146,7 +146,7 @@ public interface IDatabaseInstance : IResource, IConnectable, ISecretAttachmentT * * @param props */ - public fun metricCpuUtilization(props: MetricOptions): Metric + public fun metricCPUUtilization(props: MetricOptions): Metric /** * The percentage of CPU utilization. @@ -156,8 +156,8 @@ public interface IDatabaseInstance : IResource, IConnectable, ISecretAttachmentT * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("06a38048efcdd43000e7f66d74001004b818625d95136f460bf350a2397a31d0") - public fun metricCpuUtilization(props: MetricOptions.Builder.() -> Unit): Metric + @JvmName("66a273587ca08857c76d1952aa0bb360d86bfe06cc24788a922415fa0fa097ef") + public fun metricCPUUtilization(props: MetricOptions.Builder.() -> Unit): Metric /** * The number of database connections in use. @@ -253,7 +253,7 @@ public interface IDatabaseInstance : IResource, IConnectable, ISecretAttachmentT * * @param props */ - public fun metricReadIops(): Metric + public fun metricReadIOPS(): Metric /** * The average number of disk write I/O operations per second. @@ -262,7 +262,7 @@ public interface IDatabaseInstance : IResource, IConnectable, ISecretAttachmentT * * @param props */ - public fun metricReadIops(props: MetricOptions): Metric + public fun metricReadIOPS(props: MetricOptions): Metric /** * The average number of disk write I/O operations per second. @@ -272,8 +272,8 @@ public interface IDatabaseInstance : IResource, IConnectable, ISecretAttachmentT * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("49526da03d196d2f975a43ba7ac595a380f6b4f4817805d76831acb9d384a0dc") - public fun metricReadIops(props: MetricOptions.Builder.() -> Unit): Metric + @JvmName("675d709aa97b4b2ffd49350ba825728b633d56482af787ad3be691dc8bd8db1a") + public fun metricReadIOPS(props: MetricOptions.Builder.() -> Unit): Metric /** * The average number of disk read I/O operations per second. @@ -282,7 +282,7 @@ public interface IDatabaseInstance : IResource, IConnectable, ISecretAttachmentT * * @param props */ - public fun metricWriteIops(): Metric + public fun metricWriteIOPS(): Metric /** * The average number of disk read I/O operations per second. @@ -291,7 +291,7 @@ public interface IDatabaseInstance : IResource, IConnectable, ISecretAttachmentT * * @param props */ - public fun metricWriteIops(props: MetricOptions): Metric + public fun metricWriteIOPS(props: MetricOptions): Metric /** * The average number of disk read I/O operations per second. @@ -301,8 +301,8 @@ public interface IDatabaseInstance : IResource, IConnectable, ISecretAttachmentT * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("8c0e40270e6e53bc6598d5ec2710a93c940874139b12355a5e5d9925c9ff439a") - public fun metricWriteIops(props: MetricOptions.Builder.() -> Unit): Metric + @JvmName("83e54c79d3dbc0c025ceae17bc1f212a92688e30a3f4fafdc9abae8356ba6325") + public fun metricWriteIOPS(props: MetricOptions.Builder.() -> Unit): Metric /** * Defines a CloudWatch event rule which triggers for instance events. @@ -501,7 +501,7 @@ public interface IDatabaseInstance : IResource, IConnectable, ISecretAttachmentT * * @param props */ - override fun metricCpuUtilization(): Metric = + override fun metricCPUUtilization(): Metric = unwrap(this).metricCPUUtilization().let(Metric::wrap) /** @@ -511,7 +511,7 @@ public interface IDatabaseInstance : IResource, IConnectable, ISecretAttachmentT * * @param props */ - override fun metricCpuUtilization(props: MetricOptions): Metric = + override fun metricCPUUtilization(props: MetricOptions): Metric = unwrap(this).metricCPUUtilization(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -522,9 +522,9 @@ public interface IDatabaseInstance : IResource, IConnectable, ISecretAttachmentT * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("06a38048efcdd43000e7f66d74001004b818625d95136f460bf350a2397a31d0") - override fun metricCpuUtilization(props: MetricOptions.Builder.() -> Unit): Metric = - metricCpuUtilization(MetricOptions(props)) + @JvmName("66a273587ca08857c76d1952aa0bb360d86bfe06cc24788a922415fa0fa097ef") + override fun metricCPUUtilization(props: MetricOptions.Builder.() -> Unit): Metric = + metricCPUUtilization(MetricOptions(props)) /** * The number of database connections in use. @@ -629,7 +629,7 @@ public interface IDatabaseInstance : IResource, IConnectable, ISecretAttachmentT * * @param props */ - override fun metricReadIops(): Metric = unwrap(this).metricReadIOPS().let(Metric::wrap) + override fun metricReadIOPS(): Metric = unwrap(this).metricReadIOPS().let(Metric::wrap) /** * The average number of disk write I/O operations per second. @@ -638,7 +638,7 @@ public interface IDatabaseInstance : IResource, IConnectable, ISecretAttachmentT * * @param props */ - override fun metricReadIops(props: MetricOptions): Metric = + override fun metricReadIOPS(props: MetricOptions): Metric = unwrap(this).metricReadIOPS(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -649,9 +649,9 @@ public interface IDatabaseInstance : IResource, IConnectable, ISecretAttachmentT * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("49526da03d196d2f975a43ba7ac595a380f6b4f4817805d76831acb9d384a0dc") - override fun metricReadIops(props: MetricOptions.Builder.() -> Unit): Metric = - metricReadIops(MetricOptions(props)) + @JvmName("675d709aa97b4b2ffd49350ba825728b633d56482af787ad3be691dc8bd8db1a") + override fun metricReadIOPS(props: MetricOptions.Builder.() -> Unit): Metric = + metricReadIOPS(MetricOptions(props)) /** * The average number of disk read I/O operations per second. @@ -660,7 +660,7 @@ public interface IDatabaseInstance : IResource, IConnectable, ISecretAttachmentT * * @param props */ - override fun metricWriteIops(): Metric = unwrap(this).metricWriteIOPS().let(Metric::wrap) + override fun metricWriteIOPS(): Metric = unwrap(this).metricWriteIOPS().let(Metric::wrap) /** * The average number of disk read I/O operations per second. @@ -669,7 +669,7 @@ public interface IDatabaseInstance : IResource, IConnectable, ISecretAttachmentT * * @param props */ - override fun metricWriteIops(props: MetricOptions): Metric = + override fun metricWriteIOPS(props: MetricOptions): Metric = unwrap(this).metricWriteIOPS(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -680,9 +680,9 @@ public interface IDatabaseInstance : IResource, IConnectable, ISecretAttachmentT * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("8c0e40270e6e53bc6598d5ec2710a93c940874139b12355a5e5d9925c9ff439a") - override fun metricWriteIops(props: MetricOptions.Builder.() -> Unit): Metric = - metricWriteIops(MetricOptions(props)) + @JvmName("83e54c79d3dbc0c025ceae17bc1f212a92688e30a3f4fafdc9abae8356ba6325") + override fun metricWriteIOPS(props: MetricOptions.Builder.() -> Unit): Metric = + metricWriteIOPS(MetricOptions(props)) override fun node(): Node = unwrap(this).getNode().let(Node::wrap) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/OptionConfiguration.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/OptionConfiguration.kt index 98c4618507..5c4de0d6b4 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/OptionConfiguration.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/OptionConfiguration.kt @@ -121,7 +121,7 @@ public interface OptionConfiguration { /** * @param settings The settings for the option. */ - public fun tings(settings: Map) + public fun settings(settings: Map) /** * @param version The version for the option. @@ -176,7 +176,7 @@ public interface OptionConfiguration { /** * @param settings The settings for the option. */ - override fun tings(settings: Map) { + override fun settings(settings: Map) { cdkBuilder.settings(settings) } diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/ProvisionedClusterInstanceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/ProvisionedClusterInstanceProps.kt index 354c16e4c6..cf9c147b98 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/ProvisionedClusterInstanceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/ProvisionedClusterInstanceProps.kt @@ -127,6 +127,13 @@ public interface ProvisionedClusterInstanceProps : ClusterInstanceOptions { */ public fun performanceInsightRetention(performanceInsightRetention: PerformanceInsightRetention) + /** + * @param preferredMaintenanceWindow A preferred maintenance window day/time range. Should be + * specified as a range ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). + * Example: 'Sun:23:45-Mon:00:15' + */ + public fun preferredMaintenanceWindow(preferredMaintenanceWindow: String) + /** * @param promotionTier The promotion tier of the cluster instance. * Can be between 0-15 @@ -241,6 +248,15 @@ public interface ProvisionedClusterInstanceProps : ClusterInstanceOptions { cdkBuilder.performanceInsightRetention(performanceInsightRetention.let(PerformanceInsightRetention::unwrap)) } + /** + * @param preferredMaintenanceWindow A preferred maintenance window day/time range. Should be + * specified as a range ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). + * Example: 'Sun:23:45-Mon:00:15' + */ + override fun preferredMaintenanceWindow(preferredMaintenanceWindow: String) { + cdkBuilder.preferredMaintenanceWindow(preferredMaintenanceWindow) + } + /** * @param promotionTier The promotion tier of the cluster instance. * Can be between 0-15 @@ -404,6 +420,20 @@ public interface ProvisionedClusterInstanceProps : ClusterInstanceOptions { override fun performanceInsightRetention(): PerformanceInsightRetention? = unwrap(this).getPerformanceInsightRetention()?.let(PerformanceInsightRetention::wrap) + /** + * A preferred maintenance window day/time range. Should be specified as a range + * ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). + * + * Example: 'Sun:23:45-Mon:00:15' + * + * Default: - 30-minute window selected at random from an 8-hour block of time for + * each AWS Region, occurring on a random day of the week. + * + * [Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#Concepts.DBMaintenance) + */ + override fun preferredMaintenanceWindow(): String? = + unwrap(this).getPreferredMaintenanceWindow() + /** * The promotion tier of the cluster instance. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/ServerlessV2ClusterInstanceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/ServerlessV2ClusterInstanceProps.kt index ae16b61513..5477d2c668 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/ServerlessV2ClusterInstanceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/rds/ServerlessV2ClusterInstanceProps.kt @@ -116,6 +116,13 @@ public interface ServerlessV2ClusterInstanceProps : ClusterInstanceOptions { */ public fun performanceInsightRetention(performanceInsightRetention: PerformanceInsightRetention) + /** + * @param preferredMaintenanceWindow A preferred maintenance window day/time range. Should be + * specified as a range ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). + * Example: 'Sun:23:45-Mon:00:15' + */ + public fun preferredMaintenanceWindow(preferredMaintenanceWindow: String) + /** * @param publiclyAccessible Indicates whether the DB instance is an internet-facing instance. * If not specified, @@ -227,6 +234,15 @@ public interface ServerlessV2ClusterInstanceProps : ClusterInstanceOptions { cdkBuilder.performanceInsightRetention(performanceInsightRetention.let(PerformanceInsightRetention::unwrap)) } + /** + * @param preferredMaintenanceWindow A preferred maintenance window day/time range. Should be + * specified as a range ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). + * Example: 'Sun:23:45-Mon:00:15' + */ + override fun preferredMaintenanceWindow(preferredMaintenanceWindow: String) { + cdkBuilder.preferredMaintenanceWindow(preferredMaintenanceWindow) + } + /** * @param publiclyAccessible Indicates whether the DB instance is an internet-facing instance. * If not specified, @@ -386,6 +402,20 @@ public interface ServerlessV2ClusterInstanceProps : ClusterInstanceOptions { override fun performanceInsightRetention(): PerformanceInsightRetention? = unwrap(this).getPerformanceInsightRetention()?.let(PerformanceInsightRetention::wrap) + /** + * A preferred maintenance window day/time range. Should be specified as a range + * ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). + * + * Example: 'Sun:23:45-Mon:00:15' + * + * Default: - 30-minute window selected at random from an 8-hour block of time for + * each AWS Region, occurring on a random day of the week. + * + * [Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#Concepts.DBMaintenance) + */ + override fun preferredMaintenanceWindow(): String? = + unwrap(this).getPreferredMaintenanceWindow() + /** * Indicates whether the DB instance is an internet-facing instance. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/redshiftserverless/CfnNamespace.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/redshiftserverless/CfnNamespace.kt index ece40184e9..4296f237a8 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/redshiftserverless/CfnNamespace.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/redshiftserverless/CfnNamespace.kt @@ -47,6 +47,12 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .manageAdminPassword(false) * .namespaceResourcePolicy(namespaceResourcePolicy) * .redshiftIdcApplicationArn("redshiftIdcApplicationArn") + * .snapshotCopyConfigurations(List.of(SnapshotCopyConfigurationProperty.builder() + * .destinationRegion("destinationRegion") + * // the properties below are optional + * .destinationKmsKeyId("destinationKmsKeyId") + * .snapshotRetentionPeriod(123) + * .build())) * .tags(List.of(CfnTag.builder() * .key("key") * .value("value") @@ -345,6 +351,31 @@ public open class CfnNamespace( unwrap(this).setRedshiftIdcApplicationArn(`value`) } + /** + * The snapshot copy configurations for the namespace. + */ + public open fun snapshotCopyConfigurations(): Any? = unwrap(this).getSnapshotCopyConfigurations() + + /** + * The snapshot copy configurations for the namespace. + */ + public open fun snapshotCopyConfigurations(`value`: IResolvable) { + unwrap(this).setSnapshotCopyConfigurations(`value`.let(IResolvable::unwrap)) + } + + /** + * The snapshot copy configurations for the namespace. + */ + public open fun snapshotCopyConfigurations(`value`: List) { + unwrap(this).setSnapshotCopyConfigurations(`value`.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * The snapshot copy configurations for the namespace. + */ + public open fun snapshotCopyConfigurations(vararg `value`: Any): Unit = + snapshotCopyConfigurations(`value`.toList()) + /** * Tag Manager which manages the tags for this resource. */ @@ -539,6 +570,30 @@ public open class CfnNamespace( */ public fun redshiftIdcApplicationArn(redshiftIdcApplicationArn: String) + /** + * The snapshot copy configurations for the namespace. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshiftserverless-namespace.html#cfn-redshiftserverless-namespace-snapshotcopyconfigurations) + * @param snapshotCopyConfigurations The snapshot copy configurations for the namespace. + */ + public fun snapshotCopyConfigurations(snapshotCopyConfigurations: IResolvable) + + /** + * The snapshot copy configurations for the namespace. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshiftserverless-namespace.html#cfn-redshiftserverless-namespace-snapshotcopyconfigurations) + * @param snapshotCopyConfigurations The snapshot copy configurations for the namespace. + */ + public fun snapshotCopyConfigurations(snapshotCopyConfigurations: List) + + /** + * The snapshot copy configurations for the namespace. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshiftserverless-namespace.html#cfn-redshiftserverless-namespace-snapshotcopyconfigurations) + * @param snapshotCopyConfigurations The snapshot copy configurations for the namespace. + */ + public fun snapshotCopyConfigurations(vararg snapshotCopyConfigurations: Any) + /** * The map of the key-value pairs used to tag the namespace. * @@ -759,6 +814,35 @@ public open class CfnNamespace( cdkBuilder.redshiftIdcApplicationArn(redshiftIdcApplicationArn) } + /** + * The snapshot copy configurations for the namespace. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshiftserverless-namespace.html#cfn-redshiftserverless-namespace-snapshotcopyconfigurations) + * @param snapshotCopyConfigurations The snapshot copy configurations for the namespace. + */ + override fun snapshotCopyConfigurations(snapshotCopyConfigurations: IResolvable) { + cdkBuilder.snapshotCopyConfigurations(snapshotCopyConfigurations.let(IResolvable::unwrap)) + } + + /** + * The snapshot copy configurations for the namespace. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshiftserverless-namespace.html#cfn-redshiftserverless-namespace-snapshotcopyconfigurations) + * @param snapshotCopyConfigurations The snapshot copy configurations for the namespace. + */ + override fun snapshotCopyConfigurations(snapshotCopyConfigurations: List) { + cdkBuilder.snapshotCopyConfigurations(snapshotCopyConfigurations.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * The snapshot copy configurations for the namespace. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshiftserverless-namespace.html#cfn-redshiftserverless-namespace-snapshotcopyconfigurations) + * @param snapshotCopyConfigurations The snapshot copy configurations for the namespace. + */ + override fun snapshotCopyConfigurations(vararg snapshotCopyConfigurations: Any): Unit = + snapshotCopyConfigurations(snapshotCopyConfigurations.toList()) + /** * The map of the key-value pairs used to tag the namespace. * @@ -1265,4 +1349,129 @@ public open class CfnNamespace( software.amazon.awscdk.services.redshiftserverless.CfnNamespace.NamespaceProperty } } + + /** + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.redshiftserverless.*; + * SnapshotCopyConfigurationProperty snapshotCopyConfigurationProperty = + * SnapshotCopyConfigurationProperty.builder() + * .destinationRegion("destinationRegion") + * // the properties below are optional + * .destinationKmsKeyId("destinationKmsKeyId") + * .snapshotRetentionPeriod(123) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshiftserverless-namespace-snapshotcopyconfiguration.html) + */ + public interface SnapshotCopyConfigurationProperty { + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshiftserverless-namespace-snapshotcopyconfiguration.html#cfn-redshiftserverless-namespace-snapshotcopyconfiguration-destinationkmskeyid) + */ + public fun destinationKmsKeyId(): String? = unwrap(this).getDestinationKmsKeyId() + + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshiftserverless-namespace-snapshotcopyconfiguration.html#cfn-redshiftserverless-namespace-snapshotcopyconfiguration-destinationregion) + */ + public fun destinationRegion(): String + + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshiftserverless-namespace-snapshotcopyconfiguration.html#cfn-redshiftserverless-namespace-snapshotcopyconfiguration-snapshotretentionperiod) + */ + public fun snapshotRetentionPeriod(): Number? = unwrap(this).getSnapshotRetentionPeriod() + + /** + * A builder for [SnapshotCopyConfigurationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param destinationKmsKeyId the value to be set. + */ + public fun destinationKmsKeyId(destinationKmsKeyId: String) + + /** + * @param destinationRegion the value to be set. + */ + public fun destinationRegion(destinationRegion: String) + + /** + * @param snapshotRetentionPeriod the value to be set. + */ + public fun snapshotRetentionPeriod(snapshotRetentionPeriod: Number) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.redshiftserverless.CfnNamespace.SnapshotCopyConfigurationProperty.Builder + = + software.amazon.awscdk.services.redshiftserverless.CfnNamespace.SnapshotCopyConfigurationProperty.builder() + + /** + * @param destinationKmsKeyId the value to be set. + */ + override fun destinationKmsKeyId(destinationKmsKeyId: String) { + cdkBuilder.destinationKmsKeyId(destinationKmsKeyId) + } + + /** + * @param destinationRegion the value to be set. + */ + override fun destinationRegion(destinationRegion: String) { + cdkBuilder.destinationRegion(destinationRegion) + } + + /** + * @param snapshotRetentionPeriod the value to be set. + */ + override fun snapshotRetentionPeriod(snapshotRetentionPeriod: Number) { + cdkBuilder.snapshotRetentionPeriod(snapshotRetentionPeriod) + } + + public fun build(): + software.amazon.awscdk.services.redshiftserverless.CfnNamespace.SnapshotCopyConfigurationProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.redshiftserverless.CfnNamespace.SnapshotCopyConfigurationProperty, + ) : CdkObject(cdkObject), SnapshotCopyConfigurationProperty { + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshiftserverless-namespace-snapshotcopyconfiguration.html#cfn-redshiftserverless-namespace-snapshotcopyconfiguration-destinationkmskeyid) + */ + override fun destinationKmsKeyId(): String? = unwrap(this).getDestinationKmsKeyId() + + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshiftserverless-namespace-snapshotcopyconfiguration.html#cfn-redshiftserverless-namespace-snapshotcopyconfiguration-destinationregion) + */ + override fun destinationRegion(): String = unwrap(this).getDestinationRegion() + + /** + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshiftserverless-namespace-snapshotcopyconfiguration.html#cfn-redshiftserverless-namespace-snapshotcopyconfiguration-snapshotretentionperiod) + */ + override fun snapshotRetentionPeriod(): Number? = unwrap(this).getSnapshotRetentionPeriod() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): + SnapshotCopyConfigurationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.redshiftserverless.CfnNamespace.SnapshotCopyConfigurationProperty): + SnapshotCopyConfigurationProperty = CdkObjectWrappers.wrap(cdkObject) as? + SnapshotCopyConfigurationProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: SnapshotCopyConfigurationProperty): + software.amazon.awscdk.services.redshiftserverless.CfnNamespace.SnapshotCopyConfigurationProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.redshiftserverless.CfnNamespace.SnapshotCopyConfigurationProperty + } + } } diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/redshiftserverless/CfnNamespaceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/redshiftserverless/CfnNamespaceProps.kt index ab1533511b..b73772b155 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/redshiftserverless/CfnNamespaceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/redshiftserverless/CfnNamespaceProps.kt @@ -40,6 +40,12 @@ import kotlin.collections.List * .manageAdminPassword(false) * .namespaceResourcePolicy(namespaceResourcePolicy) * .redshiftIdcApplicationArn("redshiftIdcApplicationArn") + * .snapshotCopyConfigurations(List.of(SnapshotCopyConfigurationProperty.builder() + * .destinationRegion("destinationRegion") + * // the properties below are optional + * .destinationKmsKeyId("destinationKmsKeyId") + * .snapshotRetentionPeriod(123) + * .build())) * .tags(List.of(CfnTag.builder() * .key("key") * .value("value") @@ -163,6 +169,13 @@ public interface CfnNamespaceProps { */ public fun redshiftIdcApplicationArn(): String? = unwrap(this).getRedshiftIdcApplicationArn() + /** + * The snapshot copy configurations for the namespace. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshiftserverless-namespace.html#cfn-redshiftserverless-namespace-snapshotcopyconfigurations) + */ + public fun snapshotCopyConfigurations(): Any? = unwrap(this).getSnapshotCopyConfigurations() + /** * The map of the key-value pairs used to tag the namespace. * @@ -281,6 +294,21 @@ public interface CfnNamespaceProps { */ public fun redshiftIdcApplicationArn(redshiftIdcApplicationArn: String) + /** + * @param snapshotCopyConfigurations The snapshot copy configurations for the namespace. + */ + public fun snapshotCopyConfigurations(snapshotCopyConfigurations: IResolvable) + + /** + * @param snapshotCopyConfigurations The snapshot copy configurations for the namespace. + */ + public fun snapshotCopyConfigurations(snapshotCopyConfigurations: List) + + /** + * @param snapshotCopyConfigurations The snapshot copy configurations for the namespace. + */ + public fun snapshotCopyConfigurations(vararg snapshotCopyConfigurations: Any) + /** * @param tags The map of the key-value pairs used to tag the namespace. */ @@ -433,6 +461,26 @@ public interface CfnNamespaceProps { cdkBuilder.redshiftIdcApplicationArn(redshiftIdcApplicationArn) } + /** + * @param snapshotCopyConfigurations The snapshot copy configurations for the namespace. + */ + override fun snapshotCopyConfigurations(snapshotCopyConfigurations: IResolvable) { + cdkBuilder.snapshotCopyConfigurations(snapshotCopyConfigurations.let(IResolvable::unwrap)) + } + + /** + * @param snapshotCopyConfigurations The snapshot copy configurations for the namespace. + */ + override fun snapshotCopyConfigurations(snapshotCopyConfigurations: List) { + cdkBuilder.snapshotCopyConfigurations(snapshotCopyConfigurations.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param snapshotCopyConfigurations The snapshot copy configurations for the namespace. + */ + override fun snapshotCopyConfigurations(vararg snapshotCopyConfigurations: Any): Unit = + snapshotCopyConfigurations(snapshotCopyConfigurations.toList()) + /** * @param tags The map of the key-value pairs used to tag the namespace. */ @@ -567,6 +615,13 @@ public interface CfnNamespaceProps { */ override fun redshiftIdcApplicationArn(): String? = unwrap(this).getRedshiftIdcApplicationArn() + /** + * The snapshot copy configurations for the namespace. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshiftserverless-namespace.html#cfn-redshiftserverless-namespace-snapshotcopyconfigurations) + */ + override fun snapshotCopyConfigurations(): Any? = unwrap(this).getSnapshotCopyConfigurations() + /** * The map of the key-value pairs used to tag the namespace. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/CfnHostedZone.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/CfnHostedZone.kt index 291c91a488..77f0b7fb25 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/CfnHostedZone.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/CfnHostedZone.kt @@ -374,10 +374,11 @@ public open class CfnHostedZone( * logging. * * * Create a CloudWatch Logs resource policy, and give it the permissions that Route 53 needs - * to create log streams and to send query logs to log streams. For the value of `Resource` , - * specify the ARN for the log group that you created in the previous step. To use the same - * resource policy for all the CloudWatch Logs log groups that you created for query logging - * configurations, replace the hosted zone name with `*` , for example: + * to create log streams and to send query logs to log streams. You must create the CloudWatch Logs + * resource policy in the us-east-1 region. For the value of `Resource` , specify the ARN for the + * log group that you created in the previous step. To use the same resource policy for all the + * CloudWatch Logs log groups that you created for query logging configurations, replace the hosted + * zone name with `*` , for example: * * `arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/ *` * @@ -482,10 +483,11 @@ public open class CfnHostedZone( * logging. * * * Create a CloudWatch Logs resource policy, and give it the permissions that Route 53 needs - * to create log streams and to send query logs to log streams. For the value of `Resource` , - * specify the ARN for the log group that you created in the previous step. To use the same - * resource policy for all the CloudWatch Logs log groups that you created for query logging - * configurations, replace the hosted zone name with `*` , for example: + * to create log streams and to send query logs to log streams. You must create the CloudWatch Logs + * resource policy in the us-east-1 region. For the value of `Resource` , specify the ARN for the + * log group that you created in the previous step. To use the same resource policy for all the + * CloudWatch Logs log groups that you created for query logging configurations, replace the hosted + * zone name with `*` , for example: * * `arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/ *` * @@ -590,10 +592,11 @@ public open class CfnHostedZone( * logging. * * * Create a CloudWatch Logs resource policy, and give it the permissions that Route 53 needs - * to create log streams and to send query logs to log streams. For the value of `Resource` , - * specify the ARN for the log group that you created in the previous step. To use the same - * resource policy for all the CloudWatch Logs log groups that you created for query logging - * configurations, replace the hosted zone name with `*` , for example: + * to create log streams and to send query logs to log streams. You must create the CloudWatch Logs + * resource policy in the us-east-1 region. For the value of `Resource` , specify the ARN for the + * log group that you created in the previous step. To use the same resource policy for all the + * CloudWatch Logs log groups that you created for query logging configurations, replace the hosted + * zone name with `*` , for example: * * `arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/ *` * @@ -834,10 +837,11 @@ public open class CfnHostedZone( * logging. * * * Create a CloudWatch Logs resource policy, and give it the permissions that Route 53 needs - * to create log streams and to send query logs to log streams. For the value of `Resource` , - * specify the ARN for the log group that you created in the previous step. To use the same - * resource policy for all the CloudWatch Logs log groups that you created for query logging - * configurations, replace the hosted zone name with `*` , for example: + * to create log streams and to send query logs to log streams. You must create the CloudWatch Logs + * resource policy in the us-east-1 region. For the value of `Resource` , specify the ARN for the + * log group that you created in the previous step. To use the same resource policy for all the + * CloudWatch Logs log groups that you created for query logging configurations, replace the hosted + * zone name with `*` , for example: * * `arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/ *` * @@ -944,10 +948,11 @@ public open class CfnHostedZone( * logging. * * * Create a CloudWatch Logs resource policy, and give it the permissions that Route 53 needs - * to create log streams and to send query logs to log streams. For the value of `Resource` , - * specify the ARN for the log group that you created in the previous step. To use the same - * resource policy for all the CloudWatch Logs log groups that you created for query logging - * configurations, replace the hosted zone name with `*` , for example: + * to create log streams and to send query logs to log streams. You must create the CloudWatch Logs + * resource policy in the us-east-1 region. For the value of `Resource` , specify the ARN for the + * log group that you created in the previous step. To use the same resource policy for all the + * CloudWatch Logs log groups that you created for query logging configurations, replace the hosted + * zone name with `*` , for example: * * `arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/ *` * @@ -1054,10 +1059,11 @@ public open class CfnHostedZone( * logging. * * * Create a CloudWatch Logs resource policy, and give it the permissions that Route 53 needs - * to create log streams and to send query logs to log streams. For the value of `Resource` , - * specify the ARN for the log group that you created in the previous step. To use the same - * resource policy for all the CloudWatch Logs log groups that you created for query logging - * configurations, replace the hosted zone name with `*` , for example: + * to create log streams and to send query logs to log streams. You must create the CloudWatch Logs + * resource policy in the us-east-1 region. For the value of `Resource` , specify the ARN for the + * log group that you created in the previous step. To use the same resource policy for all the + * CloudWatch Logs log groups that you created for query logging configurations, replace the hosted + * zone name with `*` , for example: * * `arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/ *` * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/CfnHostedZoneProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/CfnHostedZoneProps.kt index 9d43134beb..194889cc16 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/CfnHostedZoneProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/CfnHostedZoneProps.kt @@ -119,10 +119,11 @@ public interface CfnHostedZoneProps { * so you can use the same resource policy for all the log groups that you create for query logging. * * * Create a CloudWatch Logs resource policy, and give it the permissions that Route 53 needs to - * create log streams and to send query logs to log streams. For the value of `Resource` , specify - * the ARN for the log group that you created in the previous step. To use the same resource policy - * for all the CloudWatch Logs log groups that you created for query logging configurations, replace - * the hosted zone name with `*` , for example: + * create log streams and to send query logs to log streams. You must create the CloudWatch Logs + * resource policy in the us-east-1 region. For the value of `Resource` , specify the ARN for the log + * group that you created in the previous step. To use the same resource policy for all the + * CloudWatch Logs log groups that you created for query logging configurations, replace the hosted + * zone name with `*` , for example: * * `arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/ *` * @@ -292,10 +293,11 @@ public interface CfnHostedZoneProps { * logging. * * * Create a CloudWatch Logs resource policy, and give it the permissions that Route 53 needs - * to create log streams and to send query logs to log streams. For the value of `Resource` , - * specify the ARN for the log group that you created in the previous step. To use the same - * resource policy for all the CloudWatch Logs log groups that you created for query logging - * configurations, replace the hosted zone name with `*` , for example: + * to create log streams and to send query logs to log streams. You must create the CloudWatch Logs + * resource policy in the us-east-1 region. For the value of `Resource` , specify the ARN for the + * log group that you created in the previous step. To use the same resource policy for all the + * CloudWatch Logs log groups that you created for query logging configurations, replace the hosted + * zone name with `*` , for example: * * `arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/ *` * @@ -396,10 +398,11 @@ public interface CfnHostedZoneProps { * logging. * * * Create a CloudWatch Logs resource policy, and give it the permissions that Route 53 needs - * to create log streams and to send query logs to log streams. For the value of `Resource` , - * specify the ARN for the log group that you created in the previous step. To use the same - * resource policy for all the CloudWatch Logs log groups that you created for query logging - * configurations, replace the hosted zone name with `*` , for example: + * to create log streams and to send query logs to log streams. You must create the CloudWatch Logs + * resource policy in the us-east-1 region. For the value of `Resource` , specify the ARN for the + * log group that you created in the previous step. To use the same resource policy for all the + * CloudWatch Logs log groups that you created for query logging configurations, replace the hosted + * zone name with `*` , for example: * * `arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/ *` * @@ -500,10 +503,11 @@ public interface CfnHostedZoneProps { * logging. * * * Create a CloudWatch Logs resource policy, and give it the permissions that Route 53 needs - * to create log streams and to send query logs to log streams. For the value of `Resource` , - * specify the ARN for the log group that you created in the previous step. To use the same - * resource policy for all the CloudWatch Logs log groups that you created for query logging - * configurations, replace the hosted zone name with `*` , for example: + * to create log streams and to send query logs to log streams. You must create the CloudWatch Logs + * resource policy in the us-east-1 region. For the value of `Resource` , specify the ARN for the + * log group that you created in the previous step. To use the same resource policy for all the + * CloudWatch Logs log groups that you created for query logging configurations, replace the hosted + * zone name with `*` , for example: * * `arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/ *` * @@ -697,10 +701,11 @@ public interface CfnHostedZoneProps { * logging. * * * Create a CloudWatch Logs resource policy, and give it the permissions that Route 53 needs - * to create log streams and to send query logs to log streams. For the value of `Resource` , - * specify the ARN for the log group that you created in the previous step. To use the same - * resource policy for all the CloudWatch Logs log groups that you created for query logging - * configurations, replace the hosted zone name with `*` , for example: + * to create log streams and to send query logs to log streams. You must create the CloudWatch Logs + * resource policy in the us-east-1 region. For the value of `Resource` , specify the ARN for the + * log group that you created in the previous step. To use the same resource policy for all the + * CloudWatch Logs log groups that you created for query logging configurations, replace the hosted + * zone name with `*` , for example: * * `arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/ *` * @@ -803,10 +808,11 @@ public interface CfnHostedZoneProps { * logging. * * * Create a CloudWatch Logs resource policy, and give it the permissions that Route 53 needs - * to create log streams and to send query logs to log streams. For the value of `Resource` , - * specify the ARN for the log group that you created in the previous step. To use the same - * resource policy for all the CloudWatch Logs log groups that you created for query logging - * configurations, replace the hosted zone name with `*` , for example: + * to create log streams and to send query logs to log streams. You must create the CloudWatch Logs + * resource policy in the us-east-1 region. For the value of `Resource` , specify the ARN for the + * log group that you created in the previous step. To use the same resource policy for all the + * CloudWatch Logs log groups that you created for query logging configurations, replace the hosted + * zone name with `*` , for example: * * `arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/ *` * @@ -909,10 +915,11 @@ public interface CfnHostedZoneProps { * logging. * * * Create a CloudWatch Logs resource policy, and give it the permissions that Route 53 needs - * to create log streams and to send query logs to log streams. For the value of `Resource` , - * specify the ARN for the log group that you created in the previous step. To use the same - * resource policy for all the CloudWatch Logs log groups that you created for query logging - * configurations, replace the hosted zone name with `*` , for example: + * to create log streams and to send query logs to log streams. You must create the CloudWatch Logs + * resource policy in the us-east-1 region. For the value of `Resource` , specify the ARN for the + * log group that you created in the previous step. To use the same resource policy for all the + * CloudWatch Logs log groups that you created for query logging configurations, replace the hosted + * zone name with `*` , for example: * * `arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/ *` * @@ -1092,10 +1099,11 @@ public interface CfnHostedZoneProps { * logging. * * * Create a CloudWatch Logs resource policy, and give it the permissions that Route 53 needs - * to create log streams and to send query logs to log streams. For the value of `Resource` , - * specify the ARN for the log group that you created in the previous step. To use the same - * resource policy for all the CloudWatch Logs log groups that you created for query logging - * configurations, replace the hosted zone name with `*` , for example: + * to create log streams and to send query logs to log streams. You must create the CloudWatch Logs + * resource policy in the us-east-1 region. For the value of `Resource` , specify the ARN for the + * log group that you created in the previous step. To use the same resource policy for all the + * CloudWatch Logs log groups that you created for query logging configurations, replace the hosted + * zone name with `*` , for example: * * `arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/ *` * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/CfnRecordSet.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/CfnRecordSet.kt index cfc5577763..f4e8d68eec 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/CfnRecordSet.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/CfnRecordSet.kt @@ -1122,7 +1122,7 @@ public open class CfnRecordSet( * of the resource record sets in the group. * * Valid values for multivalue answer resource record sets: `A` | `AAAA` | `MX` | `NAPTR` | - * `PTR` | `SPF` | `SRV` | `TXT` + * `PTR` | `SPF` | `SRV` | `TXT` | `CAA` * * * SPF records were formerly used to verify the identity of the sender of email messages. @@ -1928,7 +1928,7 @@ public open class CfnRecordSet( * of the resource record sets in the group. * * Valid values for multivalue answer resource record sets: `A` | `AAAA` | `MX` | `NAPTR` | - * `PTR` | `SPF` | `SRV` | `TXT` + * `PTR` | `SPF` | `SRV` | `TXT` | `CAA` * * * SPF records were formerly used to verify the identity of the sender of email messages. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/CfnRecordSetGroup.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/CfnRecordSetGroup.kt index 57f10f9ed3..e6d39812ba 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/CfnRecordSetGroup.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/CfnRecordSetGroup.kt @@ -2780,7 +2780,7 @@ public open class CfnRecordSetGroup( * of the resource record sets in the group. * * Valid values for multivalue answer resource record sets: `A` | `AAAA` | `MX` | `NAPTR` | - * `PTR` | `SPF` | `SRV` | `TXT` + * `PTR` | `SPF` | `SRV` | `TXT` | `CAA` * * * SPF records were formerly used to verify the identity of the sender of email messages. @@ -3391,7 +3391,7 @@ public open class CfnRecordSetGroup( * all of the resource record sets in the group. * * Valid values for multivalue answer resource record sets: `A` | `AAAA` | `MX` | `NAPTR` | - * `PTR` | `SPF` | `SRV` | `TXT` + * `PTR` | `SPF` | `SRV` | `TXT` | `CAA` * * * SPF records were formerly used to verify the identity of the sender of email messages. @@ -4042,7 +4042,7 @@ public open class CfnRecordSetGroup( * all of the resource record sets in the group. * * Valid values for multivalue answer resource record sets: `A` | `AAAA` | `MX` | `NAPTR` | - * `PTR` | `SPF` | `SRV` | `TXT` + * `PTR` | `SPF` | `SRV` | `TXT` | `CAA` * * * SPF records were formerly used to verify the identity of the sender of email messages. @@ -4526,7 +4526,7 @@ public open class CfnRecordSetGroup( * all of the resource record sets in the group. * * Valid values for multivalue answer resource record sets: `A` | `AAAA` | `MX` | `NAPTR` | - * `PTR` | `SPF` | `SRV` | `TXT` + * `PTR` | `SPF` | `SRV` | `TXT` | `CAA` * * * SPF records were formerly used to verify the identity of the sender of email messages. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/CfnRecordSetProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/CfnRecordSetProps.kt index bac0d9dd94..44426bf686 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/CfnRecordSetProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/CfnRecordSetProps.kt @@ -481,7 +481,7 @@ public interface CfnRecordSetProps { * of the resource record sets in the group. * * Valid values for multivalue answer resource record sets: `A` | `AAAA` | `MX` | `NAPTR` | `PTR` - * | `SPF` | `SRV` | `TXT` + * | `SPF` | `SRV` | `TXT` | `CAA` * * * SPF records were formerly used to verify the identity of the sender of email messages. However, @@ -1108,7 +1108,7 @@ public interface CfnRecordSetProps { * of the resource record sets in the group. * * Valid values for multivalue answer resource record sets: `A` | `AAAA` | `MX` | `NAPTR` | - * `PTR` | `SPF` | `SRV` | `TXT` + * `PTR` | `SPF` | `SRV` | `TXT` | `CAA` * * * SPF records were formerly used to verify the identity of the sender of email messages. @@ -1776,7 +1776,7 @@ public interface CfnRecordSetProps { * of the resource record sets in the group. * * Valid values for multivalue answer resource record sets: `A` | `AAAA` | `MX` | `NAPTR` | - * `PTR` | `SPF` | `SRV` | `TXT` + * `PTR` | `SPF` | `SRV` | `TXT` | `CAA` * * * SPF records were formerly used to verify the identity of the sender of email messages. @@ -2267,7 +2267,7 @@ public interface CfnRecordSetProps { * of the resource record sets in the group. * * Valid values for multivalue answer resource record sets: `A` | `AAAA` | `MX` | `NAPTR` | - * `PTR` | `SPF` | `SRV` | `TXT` + * `PTR` | `SPF` | `SRV` | `TXT` | `CAA` * * * SPF records were formerly used to verify the identity of the sender of email messages. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/CrossAccountZoneDelegationRecord.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/CrossAccountZoneDelegationRecord.kt index a02d147730..907d3ab87c 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/CrossAccountZoneDelegationRecord.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/CrossAccountZoneDelegationRecord.kt @@ -63,6 +63,15 @@ public open class CrossAccountZoneDelegationRecord( */ @CdkDslMarker public interface Builder { + /** + * Region from which to obtain temporary credentials. + * + * Default: - the Route53 signing region in the current partition + * + * @param assumeRoleRegion Region from which to obtain temporary credentials. + */ + public fun assumeRoleRegion(assumeRoleRegion: String) + /** * The zone to be delegated. * @@ -123,6 +132,17 @@ public open class CrossAccountZoneDelegationRecord( software.amazon.awscdk.services.route53.CrossAccountZoneDelegationRecord.Builder.create(scope, id) + /** + * Region from which to obtain temporary credentials. + * + * Default: - the Route53 signing region in the current partition + * + * @param assumeRoleRegion Region from which to obtain temporary credentials. + */ + override fun assumeRoleRegion(assumeRoleRegion: String) { + cdkBuilder.assumeRoleRegion(assumeRoleRegion) + } + /** * The zone to be delegated. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/CrossAccountZoneDelegationRecordProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/CrossAccountZoneDelegationRecordProps.kt index e955cdab2b..74719e36b3 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/CrossAccountZoneDelegationRecordProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/CrossAccountZoneDelegationRecordProps.kt @@ -39,6 +39,13 @@ import kotlin.Unit * ``` */ public interface CrossAccountZoneDelegationRecordProps { + /** + * Region from which to obtain temporary credentials. + * + * Default: - the Route53 signing region in the current partition + */ + public fun assumeRoleRegion(): String? = unwrap(this).getAssumeRoleRegion() + /** * The zone to be delegated. */ @@ -83,6 +90,11 @@ public interface CrossAccountZoneDelegationRecordProps { */ @CdkDslMarker public interface Builder { + /** + * @param assumeRoleRegion Region from which to obtain temporary credentials. + */ + public fun assumeRoleRegion(assumeRoleRegion: String) + /** * @param delegatedZone The zone to be delegated. */ @@ -119,6 +131,13 @@ public interface CrossAccountZoneDelegationRecordProps { software.amazon.awscdk.services.route53.CrossAccountZoneDelegationRecordProps.Builder = software.amazon.awscdk.services.route53.CrossAccountZoneDelegationRecordProps.builder() + /** + * @param assumeRoleRegion Region from which to obtain temporary credentials. + */ + override fun assumeRoleRegion(assumeRoleRegion: String) { + cdkBuilder.assumeRoleRegion(assumeRoleRegion) + } + /** * @param delegatedZone The zone to be delegated. */ @@ -169,6 +188,13 @@ public interface CrossAccountZoneDelegationRecordProps { private class Wrapper( cdkObject: software.amazon.awscdk.services.route53.CrossAccountZoneDelegationRecordProps, ) : CdkObject(cdkObject), CrossAccountZoneDelegationRecordProps { + /** + * Region from which to obtain temporary credentials. + * + * Default: - the Route53 signing region in the current partition + */ + override fun assumeRoleRegion(): String? = unwrap(this).getAssumeRoleRegion() + /** * The zone to be delegated. */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/HostedZone.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/HostedZone.kt index 1b6017c76b..72174a95f6 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/HostedZone.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/HostedZone.kt @@ -22,14 +22,15 @@ import software.constructs.Construct as SoftwareConstructsConstruct * Example: * * ``` - * HostedZone myHostedZone = HostedZone.Builder.create(this, "HostedZone") - * .zoneName("example.com") + * Key kmsKey = Key.Builder.create(this, "KmsCMK") + * .keySpec(KeySpec.ECC_NIST_P256) + * .keyUsage(KeyUsage.SIGN_VERIFY) * .build(); - * Certificate.Builder.create(this, "Certificate") - * .domainName("hello.example.com") - * .certificateName("Hello World Service") // Optionally provide an certificate name - * .validation(CertificateValidation.fromDns(myHostedZone)) + * HostedZone hostedZone = HostedZone.Builder.create(this, "HostedZone") + * .zoneName("example.com") * .build(); + * // Enable DNSSEC signing for the zone + * hostedZone.enableDnssec(ZoneSigningOptions.builder().kmsKey(kmsKey).build()); * ``` */ public open class HostedZone( @@ -60,6 +61,30 @@ public open class HostedZone( unwrap(this).addVpc(vpc.let(IVpc::unwrap)) } + /** + * Enable DNSSEC for this hosted zone. + * + * This will create a key signing key with the given options and enable DNSSEC signing + * for the hosted zone. + * + * @param options + */ + public open fun enableDnssec(options: ZoneSigningOptions): IKeySigningKey = + unwrap(this).enableDnssec(options.let(ZoneSigningOptions::unwrap)).let(IKeySigningKey::wrap) + + /** + * Enable DNSSEC for this hosted zone. + * + * This will create a key signing key with the given options and enable DNSSEC signing + * for the hosted zone. + * + * @param options + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("ceefb2857feae99de9b42d3d05ee3eef724b6edefe1639dae12efb3d05df371a") + public open fun enableDnssec(options: ZoneSigningOptions.Builder.() -> Unit): IKeySigningKey = + enableDnssec(ZoneSigningOptions(options)) + /** * Grant permissions to add delegation records to this zone. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/IKeySigningKey.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/IKeySigningKey.kt new file mode 100644 index 0000000000..a4cb4334d0 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/IKeySigningKey.kt @@ -0,0 +1,96 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.route53 + +import io.cloudshiftdev.awscdk.IResource +import io.cloudshiftdev.awscdk.RemovalPolicy +import io.cloudshiftdev.awscdk.ResourceEnvironment +import io.cloudshiftdev.awscdk.Stack +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import io.cloudshiftdev.constructs.Node +import kotlin.String + +/** + * A Key Signing Key for a Route 53 Hosted Zone. + */ +public interface IKeySigningKey : IResource { + /** + * The hosted zone that the key signing key signs. + */ + public fun hostedZone(): IHostedZone + + /** + * The ID of the key signing key, derived from the hosted zone ID and its name. + */ + public fun keySigningKeyId(): String + + /** + * The name of the key signing key. + */ + public fun keySigningKeyName(): String + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.route53.IKeySigningKey, + ) : CdkObject(cdkObject), IKeySigningKey { + /** + * Apply the given removal policy to this resource. + * + * The Removal Policy controls what happens to this resource when it stops + * being managed by CloudFormation, either because you've removed it from the + * CDK application or because you've made a change that requires the resource + * to be replaced. + * + * The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS + * account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). + * + * @param policy + */ + override fun applyRemovalPolicy(policy: RemovalPolicy) { + unwrap(this).applyRemovalPolicy(policy.let(RemovalPolicy::unwrap)) + } + + /** + * The environment this resource belongs to. + * + * For resources that are created and managed by the CDK + * (generally, those created by creating new class instances like Role, Bucket, etc.), + * this is always the same as the environment of the stack they belong to; + * however, for imported resources + * (those obtained from static methods like fromRoleArn, fromBucketName, etc.), + * that might be different than the stack they were imported into. + */ + override fun env(): ResourceEnvironment = unwrap(this).getEnv().let(ResourceEnvironment::wrap) + + /** + * The hosted zone that the key signing key signs. + */ + override fun hostedZone(): IHostedZone = unwrap(this).getHostedZone().let(IHostedZone::wrap) + + /** + * The ID of the key signing key, derived from the hosted zone ID and its name. + */ + override fun keySigningKeyId(): String = unwrap(this).getKeySigningKeyId() + + /** + * The name of the key signing key. + */ + override fun keySigningKeyName(): String = unwrap(this).getKeySigningKeyName() + + override fun node(): Node = unwrap(this).getNode().let(Node::wrap) + + /** + * The stack in which this resource is defined. + */ + override fun stack(): Stack = unwrap(this).getStack().let(Stack::wrap) + } + + public companion object { + internal fun wrap(cdkObject: software.amazon.awscdk.services.route53.IKeySigningKey): + IKeySigningKey = CdkObjectWrappers.wrap(cdkObject) as? IKeySigningKey ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: IKeySigningKey): + software.amazon.awscdk.services.route53.IKeySigningKey = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.route53.IKeySigningKey + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/KeySigningKey.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/KeySigningKey.kt new file mode 100644 index 0000000000..adf24e6ac6 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/KeySigningKey.kt @@ -0,0 +1,198 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.route53 + +import io.cloudshiftdev.awscdk.Resource +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.services.kms.IKey +import kotlin.String +import kotlin.Unit +import kotlin.jvm.JvmName +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * A Key Signing Key for a Route 53 Hosted Zone. + * + * Example: + * + * ``` + * HostedZone hostedZone; + * Key kmsKey; + * KeySigningKey.Builder.create(this, "KeySigningKey") + * .hostedZone(hostedZone) + * .kmsKey(kmsKey) + * .keySigningKeyName("ksk") + * .status(KeySigningKeyStatus.ACTIVE) + * .build(); + * ``` + */ +public open class KeySigningKey( + cdkObject: software.amazon.awscdk.services.route53.KeySigningKey, +) : Resource(cdkObject), IKeySigningKey { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: KeySigningKeyProps, + ) : + this(software.amazon.awscdk.services.route53.KeySigningKey(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(KeySigningKeyProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: KeySigningKeyProps.Builder.() -> Unit, + ) : this(scope, id, KeySigningKeyProps(props) + ) + + /** + * The hosted zone that the key signing key signs. + */ + public override fun hostedZone(): IHostedZone = + unwrap(this).getHostedZone().let(IHostedZone::wrap) + + /** + * The ID of the key signing key, derived from the hosted zone ID and its name. + */ + public override fun keySigningKeyId(): String = unwrap(this).getKeySigningKeyId() + + /** + * The name of the key signing key. + */ + public override fun keySigningKeyName(): String = unwrap(this).getKeySigningKeyName() + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.route53.KeySigningKey]. + */ + @CdkDslMarker + public interface Builder { + /** + * The hosted zone that this key will be used to sign. + * + * @param hostedZone The hosted zone that this key will be used to sign. + */ + public fun hostedZone(hostedZone: IHostedZone) + + /** + * The name for the key signing key. + * + * This name must be unique within a hosted zone. + * + * Default: an autogenerated name + * + * @param keySigningKeyName The name for the key signing key. + */ + public fun keySigningKeyName(keySigningKeyName: String) + + /** + * The customer-managed KMS key that that will be used to sign the records. + * + * The KMS Key must be unique for each KSK within a hosted zone. Additionally, the + * KMS key must be an asymetric customer-managed key using the ECC_NIST_P256 algorithm. + * + * [Documentation](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-configuring-dnssec-cmk-requirements.html) + * @param kmsKey The customer-managed KMS key that that will be used to sign the records. + */ + public fun kmsKey(kmsKey: IKey) + + /** + * The status of the key signing key. + * + * Default: ACTIVE + * + * @param status The status of the key signing key. + */ + public fun status(status: KeySigningKeyStatus) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.services.route53.KeySigningKey.Builder = + software.amazon.awscdk.services.route53.KeySigningKey.Builder.create(scope, id) + + /** + * The hosted zone that this key will be used to sign. + * + * @param hostedZone The hosted zone that this key will be used to sign. + */ + override fun hostedZone(hostedZone: IHostedZone) { + cdkBuilder.hostedZone(hostedZone.let(IHostedZone::unwrap)) + } + + /** + * The name for the key signing key. + * + * This name must be unique within a hosted zone. + * + * Default: an autogenerated name + * + * @param keySigningKeyName The name for the key signing key. + */ + override fun keySigningKeyName(keySigningKeyName: String) { + cdkBuilder.keySigningKeyName(keySigningKeyName) + } + + /** + * The customer-managed KMS key that that will be used to sign the records. + * + * The KMS Key must be unique for each KSK within a hosted zone. Additionally, the + * KMS key must be an asymetric customer-managed key using the ECC_NIST_P256 algorithm. + * + * [Documentation](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-configuring-dnssec-cmk-requirements.html) + * @param kmsKey The customer-managed KMS key that that will be used to sign the records. + */ + override fun kmsKey(kmsKey: IKey) { + cdkBuilder.kmsKey(kmsKey.let(IKey::unwrap)) + } + + /** + * The status of the key signing key. + * + * Default: ACTIVE + * + * @param status The status of the key signing key. + */ + override fun status(status: KeySigningKeyStatus) { + cdkBuilder.status(status.let(KeySigningKeyStatus::unwrap)) + } + + public fun build(): software.amazon.awscdk.services.route53.KeySigningKey = cdkBuilder.build() + } + + public companion object { + public fun fromKeySigningKeyAttributes( + scope: CloudshiftdevConstructsConstruct, + id: String, + attrs: KeySigningKeyAttributes, + ): IKeySigningKey = + software.amazon.awscdk.services.route53.KeySigningKey.fromKeySigningKeyAttributes(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, attrs.let(KeySigningKeyAttributes::unwrap)).let(IKeySigningKey::wrap) + + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("75826e30a29d75b033f852519279dba732ef46c4cc824e4b69e8db313453e4f9") + public fun fromKeySigningKeyAttributes( + scope: CloudshiftdevConstructsConstruct, + id: String, + attrs: KeySigningKeyAttributes.Builder.() -> Unit, + ): IKeySigningKey = fromKeySigningKeyAttributes(scope, id, KeySigningKeyAttributes(attrs)) + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): KeySigningKey { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return KeySigningKey(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.route53.KeySigningKey): + KeySigningKey = KeySigningKey(cdkObject) + + internal fun unwrap(wrapped: KeySigningKey): + software.amazon.awscdk.services.route53.KeySigningKey = wrapped.cdkObject as + software.amazon.awscdk.services.route53.KeySigningKey + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/KeySigningKeyAttributes.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/KeySigningKeyAttributes.kt new file mode 100644 index 0000000000..459e4c9888 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/KeySigningKeyAttributes.kt @@ -0,0 +1,104 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.route53 + +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.String +import kotlin.Unit + +/** + * The attributes of a key signing key. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.route53.*; + * HostedZone hostedZone; + * KeySigningKeyAttributes keySigningKeyAttributes = KeySigningKeyAttributes.builder() + * .hostedZone(hostedZone) + * .keySigningKeyName("keySigningKeyName") + * .build(); + * ``` + */ +public interface KeySigningKeyAttributes { + /** + * The hosted zone that the key signing key signs. + */ + public fun hostedZone(): IHostedZone + + /** + * The name of the key signing key. + */ + public fun keySigningKeyName(): String + + /** + * A builder for [KeySigningKeyAttributes] + */ + @CdkDslMarker + public interface Builder { + /** + * @param hostedZone The hosted zone that the key signing key signs. + */ + public fun hostedZone(hostedZone: IHostedZone) + + /** + * @param keySigningKeyName The name of the key signing key. + */ + public fun keySigningKeyName(keySigningKeyName: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.services.route53.KeySigningKeyAttributes.Builder + = software.amazon.awscdk.services.route53.KeySigningKeyAttributes.builder() + + /** + * @param hostedZone The hosted zone that the key signing key signs. + */ + override fun hostedZone(hostedZone: IHostedZone) { + cdkBuilder.hostedZone(hostedZone.let(IHostedZone::unwrap)) + } + + /** + * @param keySigningKeyName The name of the key signing key. + */ + override fun keySigningKeyName(keySigningKeyName: String) { + cdkBuilder.keySigningKeyName(keySigningKeyName) + } + + public fun build(): software.amazon.awscdk.services.route53.KeySigningKeyAttributes = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.route53.KeySigningKeyAttributes, + ) : CdkObject(cdkObject), KeySigningKeyAttributes { + /** + * The hosted zone that the key signing key signs. + */ + override fun hostedZone(): IHostedZone = unwrap(this).getHostedZone().let(IHostedZone::wrap) + + /** + * The name of the key signing key. + */ + override fun keySigningKeyName(): String = unwrap(this).getKeySigningKeyName() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): KeySigningKeyAttributes { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.route53.KeySigningKeyAttributes): + KeySigningKeyAttributes = CdkObjectWrappers.wrap(cdkObject) as? KeySigningKeyAttributes ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: KeySigningKeyAttributes): + software.amazon.awscdk.services.route53.KeySigningKeyAttributes = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.route53.KeySigningKeyAttributes + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/KeySigningKeyProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/KeySigningKeyProps.kt new file mode 100644 index 0000000000..98ad40ba82 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/KeySigningKeyProps.kt @@ -0,0 +1,179 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.route53 + +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import io.cloudshiftdev.awscdk.services.kms.IKey +import kotlin.String +import kotlin.Unit + +/** + * Properties for constructing a Key Signing Key. + * + * Example: + * + * ``` + * HostedZone hostedZone; + * Key kmsKey; + * KeySigningKey.Builder.create(this, "KeySigningKey") + * .hostedZone(hostedZone) + * .kmsKey(kmsKey) + * .keySigningKeyName("ksk") + * .status(KeySigningKeyStatus.ACTIVE) + * .build(); + * ``` + */ +public interface KeySigningKeyProps { + /** + * The hosted zone that this key will be used to sign. + */ + public fun hostedZone(): IHostedZone + + /** + * The name for the key signing key. + * + * This name must be unique within a hosted zone. + * + * Default: an autogenerated name + */ + public fun keySigningKeyName(): String? = unwrap(this).getKeySigningKeyName() + + /** + * The customer-managed KMS key that that will be used to sign the records. + * + * The KMS Key must be unique for each KSK within a hosted zone. Additionally, the + * KMS key must be an asymetric customer-managed key using the ECC_NIST_P256 algorithm. + * + * [Documentation](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-configuring-dnssec-cmk-requirements.html) + */ + public fun kmsKey(): IKey + + /** + * The status of the key signing key. + * + * Default: ACTIVE + */ + public fun status(): KeySigningKeyStatus? = + unwrap(this).getStatus()?.let(KeySigningKeyStatus::wrap) + + /** + * A builder for [KeySigningKeyProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param hostedZone The hosted zone that this key will be used to sign. + */ + public fun hostedZone(hostedZone: IHostedZone) + + /** + * @param keySigningKeyName The name for the key signing key. + * This name must be unique within a hosted zone. + */ + public fun keySigningKeyName(keySigningKeyName: String) + + /** + * @param kmsKey The customer-managed KMS key that that will be used to sign the records. + * The KMS Key must be unique for each KSK within a hosted zone. Additionally, the + * KMS key must be an asymetric customer-managed key using the ECC_NIST_P256 algorithm. + */ + public fun kmsKey(kmsKey: IKey) + + /** + * @param status The status of the key signing key. + */ + public fun status(status: KeySigningKeyStatus) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.services.route53.KeySigningKeyProps.Builder = + software.amazon.awscdk.services.route53.KeySigningKeyProps.builder() + + /** + * @param hostedZone The hosted zone that this key will be used to sign. + */ + override fun hostedZone(hostedZone: IHostedZone) { + cdkBuilder.hostedZone(hostedZone.let(IHostedZone::unwrap)) + } + + /** + * @param keySigningKeyName The name for the key signing key. + * This name must be unique within a hosted zone. + */ + override fun keySigningKeyName(keySigningKeyName: String) { + cdkBuilder.keySigningKeyName(keySigningKeyName) + } + + /** + * @param kmsKey The customer-managed KMS key that that will be used to sign the records. + * The KMS Key must be unique for each KSK within a hosted zone. Additionally, the + * KMS key must be an asymetric customer-managed key using the ECC_NIST_P256 algorithm. + */ + override fun kmsKey(kmsKey: IKey) { + cdkBuilder.kmsKey(kmsKey.let(IKey::unwrap)) + } + + /** + * @param status The status of the key signing key. + */ + override fun status(status: KeySigningKeyStatus) { + cdkBuilder.status(status.let(KeySigningKeyStatus::unwrap)) + } + + public fun build(): software.amazon.awscdk.services.route53.KeySigningKeyProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.route53.KeySigningKeyProps, + ) : CdkObject(cdkObject), KeySigningKeyProps { + /** + * The hosted zone that this key will be used to sign. + */ + override fun hostedZone(): IHostedZone = unwrap(this).getHostedZone().let(IHostedZone::wrap) + + /** + * The name for the key signing key. + * + * This name must be unique within a hosted zone. + * + * Default: an autogenerated name + */ + override fun keySigningKeyName(): String? = unwrap(this).getKeySigningKeyName() + + /** + * The customer-managed KMS key that that will be used to sign the records. + * + * The KMS Key must be unique for each KSK within a hosted zone. Additionally, the + * KMS key must be an asymetric customer-managed key using the ECC_NIST_P256 algorithm. + * + * [Documentation](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-configuring-dnssec-cmk-requirements.html) + */ + override fun kmsKey(): IKey = unwrap(this).getKmsKey().let(IKey::wrap) + + /** + * The status of the key signing key. + * + * Default: ACTIVE + */ + override fun status(): KeySigningKeyStatus? = + unwrap(this).getStatus()?.let(KeySigningKeyStatus::wrap) + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): KeySigningKeyProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.route53.KeySigningKeyProps): + KeySigningKeyProps = CdkObjectWrappers.wrap(cdkObject) as? KeySigningKeyProps ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: KeySigningKeyProps): + software.amazon.awscdk.services.route53.KeySigningKeyProps = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.route53.KeySigningKeyProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/KeySigningKeyStatus.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/KeySigningKeyStatus.kt new file mode 100644 index 0000000000..56942da8b5 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/KeySigningKeyStatus.kt @@ -0,0 +1,24 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.route53 + +public enum class KeySigningKeyStatus( + private val cdkObject: software.amazon.awscdk.services.route53.KeySigningKeyStatus, +) { + ACTIVE(software.amazon.awscdk.services.route53.KeySigningKeyStatus.ACTIVE), + INACTIVE(software.amazon.awscdk.services.route53.KeySigningKeyStatus.INACTIVE), + ; + + public companion object { + internal fun wrap(cdkObject: software.amazon.awscdk.services.route53.KeySigningKeyStatus): + KeySigningKeyStatus = when (cdkObject) { + software.amazon.awscdk.services.route53.KeySigningKeyStatus.ACTIVE -> + KeySigningKeyStatus.ACTIVE + software.amazon.awscdk.services.route53.KeySigningKeyStatus.INACTIVE -> + KeySigningKeyStatus.INACTIVE + } + + internal fun unwrap(wrapped: KeySigningKeyStatus): + software.amazon.awscdk.services.route53.KeySigningKeyStatus = wrapped.cdkObject + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/PublicHostedZoneProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/PublicHostedZoneProps.kt index 65d9e6dcdd..5e7990e9f5 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/PublicHostedZoneProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/PublicHostedZoneProps.kt @@ -38,9 +38,9 @@ import kotlin.Unit * .resources(List.of("*")) * .build(), * PolicyStatement.Builder.create() - * .sid("GetHostedZoneAndChangeResourceRecordSet") + * .sid("GetHostedZoneAndChangeResourceRecordSets") * .effect(Effect.ALLOW) - * .actions(List.of("route53:GetHostedZone", "route53:ChangeResourceRecordSet")) + * .actions(List.of("route53:GetHostedZone", "route53:ChangeResourceRecordSets")) * // This example assumes the RecordSet subdomain.somexample.com * // is contained in the HostedZone * .resources(List.of("arn:aws:route53:::hostedzone/HZID00000000000000000")) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/ZoneSigningOptions.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/ZoneSigningOptions.kt new file mode 100644 index 0000000000..34bdeda06a --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/route53/ZoneSigningOptions.kt @@ -0,0 +1,130 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.route53 + +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import io.cloudshiftdev.awscdk.services.kms.IKey +import kotlin.String +import kotlin.Unit + +/** + * Options for enabling key signing from a hosted zone. + * + * Example: + * + * ``` + * Key kmsKey = Key.Builder.create(this, "KmsCMK") + * .keySpec(KeySpec.ECC_NIST_P256) + * .keyUsage(KeyUsage.SIGN_VERIFY) + * .build(); + * HostedZone hostedZone = HostedZone.Builder.create(this, "HostedZone") + * .zoneName("example.com") + * .build(); + * // Enable DNSSEC signing for the zone + * hostedZone.enableDnssec(ZoneSigningOptions.builder().kmsKey(kmsKey).build()); + * ``` + */ +public interface ZoneSigningOptions { + /** + * The name for the key signing key. + * + * This name must be unique within a hosted zone. + * + * Default: an autogenerated name + */ + public fun keySigningKeyName(): String? = unwrap(this).getKeySigningKeyName() + + /** + * The customer-managed KMS key that that will be used to sign the records. + * + * The KMS Key must be unique for each KSK within a hosted zone. Additionally, the + * KMS key must be an asymetric customer-managed key using the ECC_NIST_P256 algorithm. + * + * [Documentation](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-configuring-dnssec-cmk-requirements.html) + */ + public fun kmsKey(): IKey + + /** + * A builder for [ZoneSigningOptions] + */ + @CdkDslMarker + public interface Builder { + /** + * @param keySigningKeyName The name for the key signing key. + * This name must be unique within a hosted zone. + */ + public fun keySigningKeyName(keySigningKeyName: String) + + /** + * @param kmsKey The customer-managed KMS key that that will be used to sign the records. + * The KMS Key must be unique for each KSK within a hosted zone. Additionally, the + * KMS key must be an asymetric customer-managed key using the ECC_NIST_P256 algorithm. + */ + public fun kmsKey(kmsKey: IKey) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.services.route53.ZoneSigningOptions.Builder = + software.amazon.awscdk.services.route53.ZoneSigningOptions.builder() + + /** + * @param keySigningKeyName The name for the key signing key. + * This name must be unique within a hosted zone. + */ + override fun keySigningKeyName(keySigningKeyName: String) { + cdkBuilder.keySigningKeyName(keySigningKeyName) + } + + /** + * @param kmsKey The customer-managed KMS key that that will be used to sign the records. + * The KMS Key must be unique for each KSK within a hosted zone. Additionally, the + * KMS key must be an asymetric customer-managed key using the ECC_NIST_P256 algorithm. + */ + override fun kmsKey(kmsKey: IKey) { + cdkBuilder.kmsKey(kmsKey.let(IKey::unwrap)) + } + + public fun build(): software.amazon.awscdk.services.route53.ZoneSigningOptions = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.route53.ZoneSigningOptions, + ) : CdkObject(cdkObject), ZoneSigningOptions { + /** + * The name for the key signing key. + * + * This name must be unique within a hosted zone. + * + * Default: an autogenerated name + */ + override fun keySigningKeyName(): String? = unwrap(this).getKeySigningKeyName() + + /** + * The customer-managed KMS key that that will be used to sign the records. + * + * The KMS Key must be unique for each KSK within a hosted zone. Additionally, the + * KMS key must be an asymetric customer-managed key using the ECC_NIST_P256 algorithm. + * + * [Documentation](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-configuring-dnssec-cmk-requirements.html) + */ + override fun kmsKey(): IKey = unwrap(this).getKmsKey().let(IKey::wrap) + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): ZoneSigningOptions { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.route53.ZoneSigningOptions): + ZoneSigningOptions = CdkObjectWrappers.wrap(cdkObject) as? ZoneSigningOptions ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: ZoneSigningOptions): + software.amazon.awscdk.services.route53.ZoneSigningOptions = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.route53.ZoneSigningOptions + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/s3/BucketProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/s3/BucketProps.kt index 1d9167444b..f345189c68 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/s3/BucketProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/s3/BucketProps.kt @@ -135,7 +135,7 @@ public interface BucketProps { * * [Documentation](https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-ssl-requests-only.html) */ - public fun enforceSsl(): Boolean? = unwrap(this).getEnforceSSL() + public fun enforceSSL(): Boolean? = unwrap(this).getEnforceSSL() /** * Whether this bucket should send notifications to Amazon EventBridge or not. @@ -192,7 +192,7 @@ public interface BucketProps { * * [Documentation](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazon-s3-policy-keys.html#example-object-tls-version) */ - public fun minimumTlsVersion(): Number? = unwrap(this).getMinimumTLSVersion() + public fun minimumTLSVersion(): Number? = unwrap(this).getMinimumTLSVersion() /** * The role to be used by the notifications handler. @@ -986,7 +986,7 @@ public interface BucketProps { * * [Documentation](https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-ssl-requests-only.html) */ - override fun enforceSsl(): Boolean? = unwrap(this).getEnforceSSL() + override fun enforceSSL(): Boolean? = unwrap(this).getEnforceSSL() /** * Whether this bucket should send notifications to Amazon EventBridge or not. @@ -1043,7 +1043,7 @@ public interface BucketProps { * * [Documentation](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazon-s3-policy-keys.html#example-object-tls-version) */ - override fun minimumTlsVersion(): Number? = unwrap(this).getMinimumTLSVersion() + override fun minimumTLSVersion(): Number? = unwrap(this).getMinimumTLSVersion() /** * The role to be used by the notifications handler. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/s3/deployment/BucketDeployment.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/s3/deployment/BucketDeployment.kt index 30a3229038..1af3f85260 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/s3/deployment/BucketDeployment.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/s3/deployment/BucketDeployment.kt @@ -92,6 +92,12 @@ public open class BucketDeployment( */ public open fun deployedBucket(): IBucket = unwrap(this).getDeployedBucket().let(IBucket::wrap) + /** + * Execution role of the Lambda function behind the custom CloudFormation resource of type + * `Custom::CDKBucketDeployment`. + */ + public open fun handlerRole(): IRole = unwrap(this).getHandlerRole().let(IRole::wrap) + /** * The object keys for the sources deployed to the S3 bucket. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/s3/deployment/DeployTimeSubstitutedFile.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/s3/deployment/DeployTimeSubstitutedFile.kt index 5ad40a7433..85f537df94 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/s3/deployment/DeployTimeSubstitutedFile.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/s3/deployment/DeployTimeSubstitutedFile.kt @@ -18,7 +18,6 @@ import software.constructs.Construct as SoftwareConstructsConstruct * Example: * * ``` - * import io.cloudshiftdev.awscdk.services.iam.*; * import io.cloudshiftdev.awscdk.services.lambda.*; * Function myLambdaFunction; * Bucket destinationBucket; diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/s3/deployment/DeployTimeSubstitutedFileProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/s3/deployment/DeployTimeSubstitutedFileProps.kt index dd98c75b66..fa97a76ec5 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/s3/deployment/DeployTimeSubstitutedFileProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/s3/deployment/DeployTimeSubstitutedFileProps.kt @@ -15,7 +15,6 @@ import kotlin.collections.Map * Example: * * ``` - * import io.cloudshiftdev.awscdk.services.iam.*; * import io.cloudshiftdev.awscdk.services.lambda.*; * Function myLambdaFunction; * Bucket destinationBucket; diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnAppImageConfig.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnAppImageConfig.kt index 82f16afda3..fdd49229b5 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnAppImageConfig.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnAppImageConfig.kt @@ -37,6 +37,16 @@ import software.constructs.Construct as SoftwareConstructsConstruct * "MyCfnAppImageConfig") * .appImageConfigName("appImageConfigName") * // the properties below are optional + * .codeEditorAppImageConfig(CodeEditorAppImageConfigProperty.builder() + * .containerConfig(ContainerConfigProperty.builder() + * .containerArguments(List.of("containerArguments")) + * .containerEntrypoint(List.of("containerEntrypoint")) + * .containerEnvironmentVariables(List.of(CustomImageContainerEnvironmentVariableProperty.builder() + * .key("key") + * .value("value") + * .build())) + * .build()) + * .build()) * .jupyterLabAppImageConfig(JupyterLabAppImageConfigProperty.builder() * .containerConfig(ContainerConfigProperty.builder() * .containerArguments(List.of("containerArguments")) @@ -106,6 +116,38 @@ public open class CfnAppImageConfig( */ public open fun attrAppImageConfigArn(): String = unwrap(this).getAttrAppImageConfigArn() + /** + * The configuration for the file system and the runtime, such as the environment variables and + * entry point. + */ + public open fun codeEditorAppImageConfig(): Any? = unwrap(this).getCodeEditorAppImageConfig() + + /** + * The configuration for the file system and the runtime, such as the environment variables and + * entry point. + */ + public open fun codeEditorAppImageConfig(`value`: IResolvable) { + unwrap(this).setCodeEditorAppImageConfig(`value`.let(IResolvable::unwrap)) + } + + /** + * The configuration for the file system and the runtime, such as the environment variables and + * entry point. + */ + public open fun codeEditorAppImageConfig(`value`: CodeEditorAppImageConfigProperty) { + unwrap(this).setCodeEditorAppImageConfig(`value`.let(CodeEditorAppImageConfigProperty::unwrap)) + } + + /** + * The configuration for the file system and the runtime, such as the environment variables and + * entry point. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("013839b58756f7720ba02fceb4e6bc0007c80d7b23465c1cadf0a819967e14ef") + public open + fun codeEditorAppImageConfig(`value`: CodeEditorAppImageConfigProperty.Builder.() -> Unit): + Unit = codeEditorAppImageConfig(CodeEditorAppImageConfigProperty(`value`)) + /** * Examines the CloudFormation resource and discloses attributes. * @@ -213,6 +255,39 @@ public open class CfnAppImageConfig( */ public fun appImageConfigName(appImageConfigName: String) + /** + * The configuration for the file system and the runtime, such as the environment variables and + * entry point. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-appimageconfig.html#cfn-sagemaker-appimageconfig-codeeditorappimageconfig) + * @param codeEditorAppImageConfig The configuration for the file system and the runtime, such + * as the environment variables and entry point. + */ + public fun codeEditorAppImageConfig(codeEditorAppImageConfig: IResolvable) + + /** + * The configuration for the file system and the runtime, such as the environment variables and + * entry point. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-appimageconfig.html#cfn-sagemaker-appimageconfig-codeeditorappimageconfig) + * @param codeEditorAppImageConfig The configuration for the file system and the runtime, such + * as the environment variables and entry point. + */ + public fun codeEditorAppImageConfig(codeEditorAppImageConfig: CodeEditorAppImageConfigProperty) + + /** + * The configuration for the file system and the runtime, such as the environment variables and + * entry point. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-appimageconfig.html#cfn-sagemaker-appimageconfig-codeeditorappimageconfig) + * @param codeEditorAppImageConfig The configuration for the file system and the runtime, such + * as the environment variables and entry point. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("83cfe22a25b3b1ea97aee15f2d2e75fa7b25995790cc96d1ed49a2df4d9ebb13") + public + fun codeEditorAppImageConfig(codeEditorAppImageConfig: CodeEditorAppImageConfigProperty.Builder.() -> Unit) + /** * The configuration for the file system and the runtime, such as the environment variables and * entry point. @@ -320,6 +395,45 @@ public open class CfnAppImageConfig( cdkBuilder.appImageConfigName(appImageConfigName) } + /** + * The configuration for the file system and the runtime, such as the environment variables and + * entry point. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-appimageconfig.html#cfn-sagemaker-appimageconfig-codeeditorappimageconfig) + * @param codeEditorAppImageConfig The configuration for the file system and the runtime, such + * as the environment variables and entry point. + */ + override fun codeEditorAppImageConfig(codeEditorAppImageConfig: IResolvable) { + cdkBuilder.codeEditorAppImageConfig(codeEditorAppImageConfig.let(IResolvable::unwrap)) + } + + /** + * The configuration for the file system and the runtime, such as the environment variables and + * entry point. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-appimageconfig.html#cfn-sagemaker-appimageconfig-codeeditorappimageconfig) + * @param codeEditorAppImageConfig The configuration for the file system and the runtime, such + * as the environment variables and entry point. + */ + override + fun codeEditorAppImageConfig(codeEditorAppImageConfig: CodeEditorAppImageConfigProperty) { + cdkBuilder.codeEditorAppImageConfig(codeEditorAppImageConfig.let(CodeEditorAppImageConfigProperty::unwrap)) + } + + /** + * The configuration for the file system and the runtime, such as the environment variables and + * entry point. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-appimageconfig.html#cfn-sagemaker-appimageconfig-codeeditorappimageconfig) + * @param codeEditorAppImageConfig The configuration for the file system and the runtime, such + * as the environment variables and entry point. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("83cfe22a25b3b1ea97aee15f2d2e75fa7b25995790cc96d1ed49a2df4d9ebb13") + override + fun codeEditorAppImageConfig(codeEditorAppImageConfig: CodeEditorAppImageConfigProperty.Builder.() -> Unit): + Unit = codeEditorAppImageConfig(CodeEditorAppImageConfigProperty(codeEditorAppImageConfig)) + /** * The configuration for the file system and the runtime, such as the environment variables and * entry point. @@ -446,6 +560,126 @@ public open class CfnAppImageConfig( software.amazon.awscdk.services.sagemaker.CfnAppImageConfig } + /** + * The configuration for the file system and kernels in a SageMaker image running as a Code Editor + * app. + * + * The `FileSystemConfig` object is not supported. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.sagemaker.*; + * CodeEditorAppImageConfigProperty codeEditorAppImageConfigProperty = + * CodeEditorAppImageConfigProperty.builder() + * .containerConfig(ContainerConfigProperty.builder() + * .containerArguments(List.of("containerArguments")) + * .containerEntrypoint(List.of("containerEntrypoint")) + * .containerEnvironmentVariables(List.of(CustomImageContainerEnvironmentVariableProperty.builder() + * .key("key") + * .value("value") + * .build())) + * .build()) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-appimageconfig-codeeditorappimageconfig.html) + */ + public interface CodeEditorAppImageConfigProperty { + /** + * The container configuration for a SageMaker image. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-appimageconfig-codeeditorappimageconfig.html#cfn-sagemaker-appimageconfig-codeeditorappimageconfig-containerconfig) + */ + public fun containerConfig(): Any? = unwrap(this).getContainerConfig() + + /** + * A builder for [CodeEditorAppImageConfigProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param containerConfig The container configuration for a SageMaker image. + */ + public fun containerConfig(containerConfig: IResolvable) + + /** + * @param containerConfig The container configuration for a SageMaker image. + */ + public fun containerConfig(containerConfig: ContainerConfigProperty) + + /** + * @param containerConfig The container configuration for a SageMaker image. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("c8a4b1e075a734ba822eee820ebc5611f9f1d7bd4156f321571209bfc92ef17d") + public fun containerConfig(containerConfig: ContainerConfigProperty.Builder.() -> Unit) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.sagemaker.CfnAppImageConfig.CodeEditorAppImageConfigProperty.Builder + = + software.amazon.awscdk.services.sagemaker.CfnAppImageConfig.CodeEditorAppImageConfigProperty.builder() + + /** + * @param containerConfig The container configuration for a SageMaker image. + */ + override fun containerConfig(containerConfig: IResolvable) { + cdkBuilder.containerConfig(containerConfig.let(IResolvable::unwrap)) + } + + /** + * @param containerConfig The container configuration for a SageMaker image. + */ + override fun containerConfig(containerConfig: ContainerConfigProperty) { + cdkBuilder.containerConfig(containerConfig.let(ContainerConfigProperty::unwrap)) + } + + /** + * @param containerConfig The container configuration for a SageMaker image. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("c8a4b1e075a734ba822eee820ebc5611f9f1d7bd4156f321571209bfc92ef17d") + override fun containerConfig(containerConfig: ContainerConfigProperty.Builder.() -> Unit): + Unit = containerConfig(ContainerConfigProperty(containerConfig)) + + public fun build(): + software.amazon.awscdk.services.sagemaker.CfnAppImageConfig.CodeEditorAppImageConfigProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.sagemaker.CfnAppImageConfig.CodeEditorAppImageConfigProperty, + ) : CdkObject(cdkObject), CodeEditorAppImageConfigProperty { + /** + * The container configuration for a SageMaker image. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-appimageconfig-codeeditorappimageconfig.html#cfn-sagemaker-appimageconfig-codeeditorappimageconfig-containerconfig) + */ + override fun containerConfig(): Any? = unwrap(this).getContainerConfig() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CodeEditorAppImageConfigProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.sagemaker.CfnAppImageConfig.CodeEditorAppImageConfigProperty): + CodeEditorAppImageConfigProperty = CdkObjectWrappers.wrap(cdkObject) as? + CodeEditorAppImageConfigProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: CodeEditorAppImageConfigProperty): + software.amazon.awscdk.services.sagemaker.CfnAppImageConfig.CodeEditorAppImageConfigProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.sagemaker.CfnAppImageConfig.CodeEditorAppImageConfigProperty + } + } + /** * The configuration used to run the application image container. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnAppImageConfigProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnAppImageConfigProps.kt index f01f986fc4..ca75378e7c 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnAppImageConfigProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnAppImageConfigProps.kt @@ -25,6 +25,16 @@ import kotlin.jvm.JvmName * CfnAppImageConfigProps cfnAppImageConfigProps = CfnAppImageConfigProps.builder() * .appImageConfigName("appImageConfigName") * // the properties below are optional + * .codeEditorAppImageConfig(CodeEditorAppImageConfigProperty.builder() + * .containerConfig(ContainerConfigProperty.builder() + * .containerArguments(List.of("containerArguments")) + * .containerEntrypoint(List.of("containerEntrypoint")) + * .containerEnvironmentVariables(List.of(CustomImageContainerEnvironmentVariableProperty.builder() + * .key("key") + * .value("value") + * .build())) + * .build()) + * .build()) * .jupyterLabAppImageConfig(JupyterLabAppImageConfigProperty.builder() * .containerConfig(ContainerConfigProperty.builder() * .containerArguments(List.of("containerArguments")) @@ -67,6 +77,14 @@ public interface CfnAppImageConfigProps { */ public fun appImageConfigName(): String + /** + * The configuration for the file system and the runtime, such as the environment variables and + * entry point. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-appimageconfig.html#cfn-sagemaker-appimageconfig-codeeditorappimageconfig) + */ + public fun codeEditorAppImageConfig(): Any? = unwrap(this).getCodeEditorAppImageConfig() + /** * The configuration for the file system and the runtime, such as the environment variables and * entry point. @@ -104,6 +122,28 @@ public interface CfnAppImageConfigProps { */ public fun appImageConfigName(appImageConfigName: String) + /** + * @param codeEditorAppImageConfig The configuration for the file system and the runtime, such + * as the environment variables and entry point. + */ + public fun codeEditorAppImageConfig(codeEditorAppImageConfig: IResolvable) + + /** + * @param codeEditorAppImageConfig The configuration for the file system and the runtime, such + * as the environment variables and entry point. + */ + public + fun codeEditorAppImageConfig(codeEditorAppImageConfig: CfnAppImageConfig.CodeEditorAppImageConfigProperty) + + /** + * @param codeEditorAppImageConfig The configuration for the file system and the runtime, such + * as the environment variables and entry point. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("ead6929d53cfc02b7c6c2dc4e8dc4acc28ee9e73b935d6ebe06e39fdd5a80a1c") + public + fun codeEditorAppImageConfig(codeEditorAppImageConfig: CfnAppImageConfig.CodeEditorAppImageConfigProperty.Builder.() -> Unit) + /** * @param jupyterLabAppImageConfig The configuration for the file system and the runtime, such * as the environment variables and entry point. @@ -177,6 +217,34 @@ public interface CfnAppImageConfigProps { cdkBuilder.appImageConfigName(appImageConfigName) } + /** + * @param codeEditorAppImageConfig The configuration for the file system and the runtime, such + * as the environment variables and entry point. + */ + override fun codeEditorAppImageConfig(codeEditorAppImageConfig: IResolvable) { + cdkBuilder.codeEditorAppImageConfig(codeEditorAppImageConfig.let(IResolvable::unwrap)) + } + + /** + * @param codeEditorAppImageConfig The configuration for the file system and the runtime, such + * as the environment variables and entry point. + */ + override + fun codeEditorAppImageConfig(codeEditorAppImageConfig: CfnAppImageConfig.CodeEditorAppImageConfigProperty) { + cdkBuilder.codeEditorAppImageConfig(codeEditorAppImageConfig.let(CfnAppImageConfig.CodeEditorAppImageConfigProperty::unwrap)) + } + + /** + * @param codeEditorAppImageConfig The configuration for the file system and the runtime, such + * as the environment variables and entry point. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("ead6929d53cfc02b7c6c2dc4e8dc4acc28ee9e73b935d6ebe06e39fdd5a80a1c") + override + fun codeEditorAppImageConfig(codeEditorAppImageConfig: CfnAppImageConfig.CodeEditorAppImageConfigProperty.Builder.() -> Unit): + Unit = + codeEditorAppImageConfig(CfnAppImageConfig.CodeEditorAppImageConfigProperty(codeEditorAppImageConfig)) + /** * @param jupyterLabAppImageConfig The configuration for the file system and the runtime, such * as the environment variables and entry point. @@ -267,6 +335,14 @@ public interface CfnAppImageConfigProps { */ override fun appImageConfigName(): String = unwrap(this).getAppImageConfigName() + /** + * The configuration for the file system and the runtime, such as the environment variables and + * entry point. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-appimageconfig.html#cfn-sagemaker-appimageconfig-codeeditorappimageconfig) + */ + override fun codeEditorAppImageConfig(): Any? = unwrap(this).getCodeEditorAppImageConfig() + /** * The configuration for the file system and the runtime, such as the environment variables and * entry point. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnDomain.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnDomain.kt index 79185e65be..184beca71e 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnDomain.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnDomain.kt @@ -75,6 +75,12 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .executionRole("executionRole") * // the properties below are optional * .codeEditorAppSettings(CodeEditorAppSettingsProperty.builder() + * .customImages(List.of(CustomImageProperty.builder() + * .appImageConfigName("appImageConfigName") + * .imageName("imageName") + * // the properties below are optional + * .imageVersionNumber(123) + * .build())) * .defaultResourceSpec(ResourceSpecProperty.builder() * .instanceType("instanceType") * .lifecycleConfigArn("lifecycleConfigArn") @@ -1034,6 +1040,12 @@ public open class CfnDomain( * import io.cloudshiftdev.awscdk.services.sagemaker.*; * CodeEditorAppSettingsProperty codeEditorAppSettingsProperty = * CodeEditorAppSettingsProperty.builder() + * .customImages(List.of(CustomImageProperty.builder() + * .appImageConfigName("appImageConfigName") + * .imageName("imageName") + * // the properties below are optional + * .imageVersionNumber(123) + * .build())) * .defaultResourceSpec(ResourceSpecProperty.builder() * .instanceType("instanceType") * .lifecycleConfigArn("lifecycleConfigArn") @@ -1047,6 +1059,13 @@ public open class CfnDomain( * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-domain-codeeditorappsettings.html) */ public interface CodeEditorAppSettingsProperty { + /** + * A list of custom SageMaker images that are configured to run as a Code Editor app. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-domain-codeeditorappsettings.html#cfn-sagemaker-domain-codeeditorappsettings-customimages) + */ + public fun customImages(): Any? = unwrap(this).getCustomImages() + /** * The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image * used by the Code Editor app. @@ -1068,6 +1087,24 @@ public open class CfnDomain( */ @CdkDslMarker public interface Builder { + /** + * @param customImages A list of custom SageMaker images that are configured to run as a Code + * Editor app. + */ + public fun customImages(customImages: IResolvable) + + /** + * @param customImages A list of custom SageMaker images that are configured to run as a Code + * Editor app. + */ + public fun customImages(customImages: List) + + /** + * @param customImages A list of custom SageMaker images that are configured to run as a Code + * Editor app. + */ + public fun customImages(vararg customImages: Any) + /** * @param defaultResourceSpec The default instance type and the Amazon Resource Name (ARN) of * the default SageMaker image used by the Code Editor app. @@ -1107,6 +1144,29 @@ public open class CfnDomain( = software.amazon.awscdk.services.sagemaker.CfnDomain.CodeEditorAppSettingsProperty.builder() + /** + * @param customImages A list of custom SageMaker images that are configured to run as a Code + * Editor app. + */ + override fun customImages(customImages: IResolvable) { + cdkBuilder.customImages(customImages.let(IResolvable::unwrap)) + } + + /** + * @param customImages A list of custom SageMaker images that are configured to run as a Code + * Editor app. + */ + override fun customImages(customImages: List) { + cdkBuilder.customImages(customImages.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param customImages A list of custom SageMaker images that are configured to run as a Code + * Editor app. + */ + override fun customImages(vararg customImages: Any): Unit = + customImages(customImages.toList()) + /** * @param defaultResourceSpec The default instance type and the Amazon Resource Name (ARN) of * the default SageMaker image used by the Code Editor app. @@ -1156,6 +1216,13 @@ public open class CfnDomain( private class Wrapper( cdkObject: software.amazon.awscdk.services.sagemaker.CfnDomain.CodeEditorAppSettingsProperty, ) : CdkObject(cdkObject), CodeEditorAppSettingsProperty { + /** + * A list of custom SageMaker images that are configured to run as a Code Editor app. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-domain-codeeditorappsettings.html#cfn-sagemaker-domain-codeeditorappsettings-customimages) + */ + override fun customImages(): Any? = unwrap(this).getCustomImages() + /** * The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image * used by the Code Editor app. @@ -4155,6 +4222,12 @@ public open class CfnDomain( * .executionRole("executionRole") * // the properties below are optional * .codeEditorAppSettings(CodeEditorAppSettingsProperty.builder() + * .customImages(List.of(CustomImageProperty.builder() + * .appImageConfigName("appImageConfigName") + * .imageName("imageName") + * // the properties below are optional + * .imageVersionNumber(123) + * .build())) * .defaultResourceSpec(ResourceSpecProperty.builder() * .instanceType("instanceType") * .lifecycleConfigArn("lifecycleConfigArn") diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnDomainProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnDomainProps.kt index 2bfe457761..8107e5cf02 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnDomainProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnDomainProps.kt @@ -28,6 +28,12 @@ import kotlin.jvm.JvmName * .executionRole("executionRole") * // the properties below are optional * .codeEditorAppSettings(CodeEditorAppSettingsProperty.builder() + * .customImages(List.of(CustomImageProperty.builder() + * .appImageConfigName("appImageConfigName") + * .imageName("imageName") + * // the properties below are optional + * .imageVersionNumber(123) + * .build())) * .defaultResourceSpec(ResourceSpecProperty.builder() * .instanceType("instanceType") * .lifecycleConfigArn("lifecycleConfigArn") diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnFeatureGroup.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnFeatureGroup.kt index 0e813b7c8f..c14621fe86 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnFeatureGroup.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnFeatureGroup.kt @@ -897,7 +897,7 @@ public open class CfnFeatureGroup( * * The name: * - * * Must start and end with an alphanumeric character. + * * Must start with an alphanumeric character. * * Can only include alphanumeric characters, underscores, and hyphens. Spaces are not allowed. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-featuregroup-featuredefinition.html#cfn-sagemaker-featuregroup-featuredefinition-featurename) @@ -925,7 +925,7 @@ public open class CfnFeatureGroup( * * The name: * - * * Must start and end with an alphanumeric character. + * * Must start with an alphanumeric character. * * Can only include alphanumeric characters, underscores, and hyphens. Spaces are not * allowed. */ @@ -951,7 +951,7 @@ public open class CfnFeatureGroup( * * The name: * - * * Must start and end with an alphanumeric character. + * * Must start with an alphanumeric character. * * Can only include alphanumeric characters, underscores, and hyphens. Spaces are not * allowed. */ @@ -983,7 +983,7 @@ public open class CfnFeatureGroup( * * The name: * - * * Must start and end with an alphanumeric character. + * * Must start with an alphanumeric character. * * Can only include alphanumeric characters, underscores, and hyphens. Spaces are not * allowed. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnModel.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnModel.kt index 86a0019068..36f2de1a3a 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnModel.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnModel.kt @@ -949,8 +949,9 @@ public open class CfnModel( /** * The environment variables to set in the Docker container. * - * Each key and value in the `Environment` string to string map can have length of up to 1024. - * We support up to 16 entries in the map. + * The maximum length of each key and value in the `Environment` map is 1024 bytes. The maximum + * length of all keys and values in the map, combined, is 32 KB. If you pass multiple containers to + * a `CreateModel` request, then the maximum length of all of their maps, combined, is also 32 KB. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-containerdefinition.html#cfn-sagemaker-model-containerdefinition-environment) */ @@ -1088,8 +1089,10 @@ public open class CfnModel( /** * @param environment The environment variables to set in the Docker container. - * Each key and value in the `Environment` string to string map can have length of up to 1024. - * We support up to 16 entries in the map. + * The maximum length of each key and value in the `Environment` map is 1024 bytes. The + * maximum length of all keys and values in the map, combined, is 32 KB. If you pass multiple + * containers to a `CreateModel` request, then the maximum length of all of their maps, combined, + * is also 32 KB. */ public fun environment(environment: Any) @@ -1270,8 +1273,10 @@ public open class CfnModel( /** * @param environment The environment variables to set in the Docker container. - * Each key and value in the `Environment` string to string map can have length of up to 1024. - * We support up to 16 entries in the map. + * The maximum length of each key and value in the `Environment` map is 1024 bytes. The + * maximum length of all keys and values in the map, combined, is 32 KB. If you pass multiple + * containers to a `CreateModel` request, then the maximum length of all of their maps, combined, + * is also 32 KB. */ override fun environment(environment: Any) { cdkBuilder.environment(environment) @@ -1482,8 +1487,10 @@ public open class CfnModel( /** * The environment variables to set in the Docker container. * - * Each key and value in the `Environment` string to string map can have length of up to 1024. - * We support up to 16 entries in the map. + * The maximum length of each key and value in the `Environment` map is 1024 bytes. The + * maximum length of all keys and values in the map, combined, is 32 KB. If you pass multiple + * containers to a `CreateModel` request, then the maximum length of all of their maps, combined, + * is also 32 KB. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-containerdefinition.html#cfn-sagemaker-model-containerdefinition-environment) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnUserProfile.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnUserProfile.kt index 02da5ea00d..821683c0dd 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnUserProfile.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnUserProfile.kt @@ -59,6 +59,12 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .build())) * .userSettings(UserSettingsProperty.builder() * .codeEditorAppSettings(CodeEditorAppSettingsProperty.builder() + * .customImages(List.of(CustomImageProperty.builder() + * .appImageConfigName("appImageConfigName") + * .imageName("imageName") + * // the properties below are optional + * .imageVersionNumber(123) + * .build())) * .defaultResourceSpec(ResourceSpecProperty.builder() * .instanceType("instanceType") * .sageMakerImageArn("sageMakerImageArn") @@ -535,6 +541,12 @@ public open class CfnUserProfile( * import io.cloudshiftdev.awscdk.services.sagemaker.*; * CodeEditorAppSettingsProperty codeEditorAppSettingsProperty = * CodeEditorAppSettingsProperty.builder() + * .customImages(List.of(CustomImageProperty.builder() + * .appImageConfigName("appImageConfigName") + * .imageName("imageName") + * // the properties below are optional + * .imageVersionNumber(123) + * .build())) * .defaultResourceSpec(ResourceSpecProperty.builder() * .instanceType("instanceType") * .sageMakerImageArn("sageMakerImageArn") @@ -547,6 +559,13 @@ public open class CfnUserProfile( * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-userprofile-codeeditorappsettings.html) */ public interface CodeEditorAppSettingsProperty { + /** + * A list of custom SageMaker images that are configured to run as a Code Editor app. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-userprofile-codeeditorappsettings.html#cfn-sagemaker-userprofile-codeeditorappsettings-customimages) + */ + public fun customImages(): Any? = unwrap(this).getCustomImages() + /** * The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image * used by the Code Editor app. @@ -568,6 +587,24 @@ public open class CfnUserProfile( */ @CdkDslMarker public interface Builder { + /** + * @param customImages A list of custom SageMaker images that are configured to run as a Code + * Editor app. + */ + public fun customImages(customImages: IResolvable) + + /** + * @param customImages A list of custom SageMaker images that are configured to run as a Code + * Editor app. + */ + public fun customImages(customImages: List) + + /** + * @param customImages A list of custom SageMaker images that are configured to run as a Code + * Editor app. + */ + public fun customImages(vararg customImages: Any) + /** * @param defaultResourceSpec The default instance type and the Amazon Resource Name (ARN) of * the default SageMaker image used by the Code Editor app. @@ -607,6 +644,29 @@ public open class CfnUserProfile( = software.amazon.awscdk.services.sagemaker.CfnUserProfile.CodeEditorAppSettingsProperty.builder() + /** + * @param customImages A list of custom SageMaker images that are configured to run as a Code + * Editor app. + */ + override fun customImages(customImages: IResolvable) { + cdkBuilder.customImages(customImages.let(IResolvable::unwrap)) + } + + /** + * @param customImages A list of custom SageMaker images that are configured to run as a Code + * Editor app. + */ + override fun customImages(customImages: List) { + cdkBuilder.customImages(customImages.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param customImages A list of custom SageMaker images that are configured to run as a Code + * Editor app. + */ + override fun customImages(vararg customImages: Any): Unit = + customImages(customImages.toList()) + /** * @param defaultResourceSpec The default instance type and the Amazon Resource Name (ARN) of * the default SageMaker image used by the Code Editor app. @@ -656,6 +716,13 @@ public open class CfnUserProfile( private class Wrapper( cdkObject: software.amazon.awscdk.services.sagemaker.CfnUserProfile.CodeEditorAppSettingsProperty, ) : CdkObject(cdkObject), CodeEditorAppSettingsProperty { + /** + * A list of custom SageMaker images that are configured to run as a Code Editor app. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-userprofile-codeeditorappsettings.html#cfn-sagemaker-userprofile-codeeditorappsettings-customimages) + */ + override fun customImages(): Any? = unwrap(this).getCustomImages() + /** * The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image * used by the Code Editor app. @@ -2605,6 +2672,12 @@ public open class CfnUserProfile( * import io.cloudshiftdev.awscdk.services.sagemaker.*; * UserSettingsProperty userSettingsProperty = UserSettingsProperty.builder() * .codeEditorAppSettings(CodeEditorAppSettingsProperty.builder() + * .customImages(List.of(CustomImageProperty.builder() + * .appImageConfigName("appImageConfigName") + * .imageName("imageName") + * // the properties below are optional + * .imageVersionNumber(123) + * .build())) * .defaultResourceSpec(ResourceSpecProperty.builder() * .instanceType("instanceType") * .sageMakerImageArn("sageMakerImageArn") diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnUserProfileProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnUserProfileProps.kt index a34807004d..7967e320a7 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnUserProfileProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sagemaker/CfnUserProfileProps.kt @@ -34,6 +34,12 @@ import kotlin.jvm.JvmName * .build())) * .userSettings(UserSettingsProperty.builder() * .codeEditorAppSettings(CodeEditorAppSettingsProperty.builder() + * .customImages(List.of(CustomImageProperty.builder() + * .appImageConfigName("appImageConfigName") + * .imageName("imageName") + * // the properties below are optional + * .imageVersionNumber(123) + * .build())) * .defaultResourceSpec(ResourceSpecProperty.builder() * .instanceType("instanceType") * .sageMakerImageArn("sageMakerImageArn") diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securityhub/CfnAutomationRule.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securityhub/CfnAutomationRule.kt index 08f34b42fb..65a66987ac 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securityhub/CfnAutomationRule.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securityhub/CfnAutomationRule.kt @@ -1751,9 +1751,15 @@ public open class CfnAutomationRule( /** * A timestamp that indicates when this finding record was created. * - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The value - * cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. * @@ -1789,9 +1795,15 @@ public open class CfnAutomationRule( * A timestamp that indicates when the potential security issue captured by a finding was first * observed by the security findings product. * - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The value - * cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. * @@ -1821,9 +1833,15 @@ public open class CfnAutomationRule( * A timestamp that indicates when the potential security issue captured by a finding was most * recently observed by the security findings product. * - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The value - * cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. * @@ -1843,9 +1861,15 @@ public open class CfnAutomationRule( /** * The timestamp of when the note was updated. * - * Uses the date-time format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://www.rfc-editor.org/rfc/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. * @@ -2014,9 +2038,15 @@ public open class CfnAutomationRule( /** * A timestamp that indicates when the finding record was most recently updated. * - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The value - * cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. * @@ -2220,9 +2250,16 @@ public open class CfnAutomationRule( /** * @param createdAt A timestamp that indicates when this finding record was created. - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. */ @@ -2230,9 +2267,16 @@ public open class CfnAutomationRule( /** * @param createdAt A timestamp that indicates when this finding record was created. - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. */ @@ -2240,9 +2284,16 @@ public open class CfnAutomationRule( /** * @param createdAt A timestamp that indicates when this finding record was created. - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. */ @@ -2308,9 +2359,16 @@ public open class CfnAutomationRule( /** * @param firstObservedAt A timestamp that indicates when the potential security issue * captured by a finding was first observed by the security findings product. - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. */ @@ -2319,9 +2377,16 @@ public open class CfnAutomationRule( /** * @param firstObservedAt A timestamp that indicates when the potential security issue * captured by a finding was first observed by the security findings product. - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. */ @@ -2330,9 +2395,16 @@ public open class CfnAutomationRule( /** * @param firstObservedAt A timestamp that indicates when the potential security issue * captured by a finding was first observed by the security findings product. - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. */ @@ -2380,9 +2452,16 @@ public open class CfnAutomationRule( /** * @param lastObservedAt A timestamp that indicates when the potential security issue captured * by a finding was most recently observed by the security findings product. - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. */ @@ -2391,9 +2470,16 @@ public open class CfnAutomationRule( /** * @param lastObservedAt A timestamp that indicates when the potential security issue captured * by a finding was most recently observed by the security findings product. - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. */ @@ -2402,9 +2488,16 @@ public open class CfnAutomationRule( /** * @param lastObservedAt A timestamp that indicates when the potential security issue captured * by a finding was most recently observed by the security findings product. - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. */ @@ -2430,9 +2523,16 @@ public open class CfnAutomationRule( /** * @param noteUpdatedAt The timestamp of when the note was updated. - * Uses the date-time format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://www.rfc-editor.org/rfc/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. */ @@ -2440,9 +2540,16 @@ public open class CfnAutomationRule( /** * @param noteUpdatedAt The timestamp of when the note was updated. - * Uses the date-time format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://www.rfc-editor.org/rfc/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. */ @@ -2450,9 +2557,16 @@ public open class CfnAutomationRule( /** * @param noteUpdatedAt The timestamp of when the note was updated. - * Uses the date-time format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://www.rfc-editor.org/rfc/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. */ @@ -2806,9 +2920,16 @@ public open class CfnAutomationRule( /** * @param updatedAt A timestamp that indicates when the finding record was most recently * updated. - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. */ @@ -2817,9 +2938,16 @@ public open class CfnAutomationRule( /** * @param updatedAt A timestamp that indicates when the finding record was most recently * updated. - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. */ @@ -2828,9 +2956,16 @@ public open class CfnAutomationRule( /** * @param updatedAt A timestamp that indicates when the finding record was most recently * updated. - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. */ @@ -3095,9 +3230,16 @@ public open class CfnAutomationRule( /** * @param createdAt A timestamp that indicates when this finding record was created. - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. */ @@ -3107,9 +3249,16 @@ public open class CfnAutomationRule( /** * @param createdAt A timestamp that indicates when this finding record was created. - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. */ @@ -3119,9 +3268,16 @@ public open class CfnAutomationRule( /** * @param createdAt A timestamp that indicates when this finding record was created. - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. */ @@ -3195,9 +3351,16 @@ public open class CfnAutomationRule( /** * @param firstObservedAt A timestamp that indicates when the potential security issue * captured by a finding was first observed by the security findings product. - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. */ @@ -3208,9 +3371,16 @@ public open class CfnAutomationRule( /** * @param firstObservedAt A timestamp that indicates when the potential security issue * captured by a finding was first observed by the security findings product. - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. */ @@ -3221,9 +3391,16 @@ public open class CfnAutomationRule( /** * @param firstObservedAt A timestamp that indicates when the potential security issue * captured by a finding was first observed by the security findings product. - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. */ @@ -3280,9 +3457,16 @@ public open class CfnAutomationRule( /** * @param lastObservedAt A timestamp that indicates when the potential security issue captured * by a finding was most recently observed by the security findings product. - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. */ @@ -3293,9 +3477,16 @@ public open class CfnAutomationRule( /** * @param lastObservedAt A timestamp that indicates when the potential security issue captured * by a finding was most recently observed by the security findings product. - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. */ @@ -3306,9 +3497,16 @@ public open class CfnAutomationRule( /** * @param lastObservedAt A timestamp that indicates when the potential security issue captured * by a finding was most recently observed by the security findings product. - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. */ @@ -3339,9 +3537,16 @@ public open class CfnAutomationRule( /** * @param noteUpdatedAt The timestamp of when the note was updated. - * Uses the date-time format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://www.rfc-editor.org/rfc/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. */ @@ -3351,9 +3556,16 @@ public open class CfnAutomationRule( /** * @param noteUpdatedAt The timestamp of when the note was updated. - * Uses the date-time format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://www.rfc-editor.org/rfc/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. */ @@ -3363,9 +3575,16 @@ public open class CfnAutomationRule( /** * @param noteUpdatedAt The timestamp of when the note was updated. - * Uses the date-time format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://www.rfc-editor.org/rfc/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. */ @@ -3793,9 +4012,16 @@ public open class CfnAutomationRule( /** * @param updatedAt A timestamp that indicates when the finding record was most recently * updated. - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. */ @@ -3806,9 +4032,16 @@ public open class CfnAutomationRule( /** * @param updatedAt A timestamp that indicates when the finding record was most recently * updated. - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. */ @@ -3819,9 +4052,16 @@ public open class CfnAutomationRule( /** * @param updatedAt A timestamp that indicates when the finding record was most recently * updated. - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. */ @@ -3986,9 +4226,16 @@ public open class CfnAutomationRule( /** * A timestamp that indicates when this finding record was created. * - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. * @@ -4025,9 +4272,16 @@ public open class CfnAutomationRule( * A timestamp that indicates when the potential security issue captured by a finding was * first observed by the security findings product. * - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. * @@ -4057,9 +4311,16 @@ public open class CfnAutomationRule( * A timestamp that indicates when the potential security issue captured by a finding was most * recently observed by the security findings product. * - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. * @@ -4079,9 +4340,16 @@ public open class CfnAutomationRule( /** * The timestamp of when the note was updated. * - * Uses the date-time format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://www.rfc-editor.org/rfc/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. * @@ -4250,9 +4518,16 @@ public open class CfnAutomationRule( /** * A timestamp that indicates when the finding record was most recently updated. * - * Uses the `date-time` format specified in [RFC 3339 section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc3339#section-5.6) . The - * value cannot contain spaces. For example, `2020-03-22T13:22:13.933Z` . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * Array Members: Minimum number of 1 item. Maximum number of 20 items. * @@ -4339,10 +4614,15 @@ public open class CfnAutomationRule( /** * A timestamp that provides the end date for the date filter. * - * A correctly formatted example is `2020-05-21T20:16:34.724Z` . The value cannot contain - * spaces, and date and time should be separated by `T` . For more information, see [RFC 3339 - * section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://www.rfc-editor.org/rfc/rfc3339#section-5.6) . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` ) * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrule-datefilter.html#cfn-securityhub-automationrule-datefilter-end) */ @@ -4351,10 +4631,15 @@ public open class CfnAutomationRule( /** * A timestamp that provides the start date for the date filter. * - * A correctly formatted example is `2020-05-21T20:16:34.724Z` . The value cannot contain - * spaces, and date and time should be separated by `T` . For more information, see [RFC 3339 - * section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://www.rfc-editor.org/rfc/rfc3339#section-5.6) . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` ) * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrule-datefilter.html#cfn-securityhub-automationrule-datefilter-start) */ @@ -4384,19 +4669,31 @@ public open class CfnAutomationRule( /** * @param end A timestamp that provides the end date for the date filter. - * A correctly formatted example is `2020-05-21T20:16:34.724Z` . The value cannot contain - * spaces, and date and time should be separated by `T` . For more information, see [RFC 3339 - * section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://www.rfc-editor.org/rfc/rfc3339#section-5.6) . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) */ public fun end(end: String) /** * @param start A timestamp that provides the start date for the date filter. - * A correctly formatted example is `2020-05-21T20:16:34.724Z` . The value cannot contain - * spaces, and date and time should be separated by `T` . For more information, see [RFC 3339 - * section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://www.rfc-editor.org/rfc/rfc3339#section-5.6) . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) */ public fun start(start: String) } @@ -4430,10 +4727,16 @@ public open class CfnAutomationRule( /** * @param end A timestamp that provides the end date for the date filter. - * A correctly formatted example is `2020-05-21T20:16:34.724Z` . The value cannot contain - * spaces, and date and time should be separated by `T` . For more information, see [RFC 3339 - * section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://www.rfc-editor.org/rfc/rfc3339#section-5.6) . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) */ override fun end(end: String) { cdkBuilder.end(end) @@ -4441,10 +4744,16 @@ public open class CfnAutomationRule( /** * @param start A timestamp that provides the start date for the date filter. - * A correctly formatted example is `2020-05-21T20:16:34.724Z` . The value cannot contain - * spaces, and date and time should be separated by `T` . For more information, see [RFC 3339 - * section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://www.rfc-editor.org/rfc/rfc3339#section-5.6) . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) */ override fun start(start: String) { cdkBuilder.start(start) @@ -4468,10 +4777,16 @@ public open class CfnAutomationRule( /** * A timestamp that provides the end date for the date filter. * - * A correctly formatted example is `2020-05-21T20:16:34.724Z` . The value cannot contain - * spaces, and date and time should be separated by `T` . For more information, see [RFC 3339 - * section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://www.rfc-editor.org/rfc/rfc3339#section-5.6) . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrule-datefilter.html#cfn-securityhub-automationrule-datefilter-end) */ @@ -4480,10 +4795,16 @@ public open class CfnAutomationRule( /** * A timestamp that provides the start date for the date filter. * - * A correctly formatted example is `2020-05-21T20:16:34.724Z` . The value cannot contain - * spaces, and date and time should be separated by `T` . For more information, see [RFC 3339 - * section 5.6, Internet Date/Time - * Format](https://docs.aws.amazon.com/https://www.rfc-editor.org/rfc/rfc3339#section-5.6) . + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrule-datefilter.html#cfn-securityhub-automationrule-datefilter-start) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securityhub/CfnDelegatedAdmin.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securityhub/CfnDelegatedAdmin.kt new file mode 100644 index 0000000000..5246624968 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securityhub/CfnDelegatedAdmin.kt @@ -0,0 +1,162 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.securityhub + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import kotlin.String +import kotlin.Unit +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * The `AWS::SecurityHub::DelegatedAdmin` resource designates the delegated AWS Security Hub + * administrator account for an organization. + * + * You must enable the integration between Security Hub and AWS Organizations before you can + * designate a delegated Security Hub administrator. Only the management account for an organization + * can designate the delegated Security Hub administrator account. For more information, see + * [Designating the delegated Security Hub + * administrator](https://docs.aws.amazon.com/securityhub/latest/userguide/designate-orgs-admin-account.html#designate-admin-instructions) + * in the *AWS Security Hub User Guide* . + * + * To change the delegated administrator account, remove the current delegated administrator + * account, and then designate the new account. + * + * To designate multiple delegated administrators in different organizations and AWS Regions , we + * recommend using [AWS CloudFormation + * mappings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/mappings-section-structure.html) + * . + * + * Tags aren't supported for this resource. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.securityhub.*; + * CfnDelegatedAdmin cfnDelegatedAdmin = CfnDelegatedAdmin.Builder.create(this, + * "MyCfnDelegatedAdmin") + * .adminAccountId("adminAccountId") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-delegatedadmin.html) + */ +public open class CfnDelegatedAdmin( + cdkObject: software.amazon.awscdk.services.securityhub.CfnDelegatedAdmin, +) : CfnResource(cdkObject), IInspectable { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnDelegatedAdminProps, + ) : + this(software.amazon.awscdk.services.securityhub.CfnDelegatedAdmin(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnDelegatedAdminProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnDelegatedAdminProps.Builder.() -> Unit, + ) : this(scope, id, CfnDelegatedAdminProps(props) + ) + + /** + * The AWS account identifier of the account to designate as the Security Hub administrator + * account. + */ + public open fun adminAccountId(): String = unwrap(this).getAdminAccountId() + + /** + * The AWS account identifier of the account to designate as the Security Hub administrator + * account. + */ + public open fun adminAccountId(`value`: String) { + unwrap(this).setAdminAccountId(`value`) + } + + /** + * The ID of the delegated Security Hub administrator account, in the format of `accountID/Region` + * . + */ + public open fun attrDelegatedAdminIdentifier(): String = + unwrap(this).getAttrDelegatedAdminIdentifier() + + /** + * Whether the delegated Security Hub administrator is set for the organization. + */ + public open fun attrStatus(): String = unwrap(this).getAttrStatus() + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.securityhub.CfnDelegatedAdmin]. + */ + @CdkDslMarker + public interface Builder { + /** + * The AWS account identifier of the account to designate as the Security Hub administrator + * account. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-delegatedadmin.html#cfn-securityhub-delegatedadmin-adminaccountid) + * @param adminAccountId The AWS account identifier of the account to designate as the Security + * Hub administrator account. + */ + public fun adminAccountId(adminAccountId: String) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.services.securityhub.CfnDelegatedAdmin.Builder = + software.amazon.awscdk.services.securityhub.CfnDelegatedAdmin.Builder.create(scope, id) + + /** + * The AWS account identifier of the account to designate as the Security Hub administrator + * account. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-delegatedadmin.html#cfn-securityhub-delegatedadmin-adminaccountid) + * @param adminAccountId The AWS account identifier of the account to designate as the Security + * Hub administrator account. + */ + override fun adminAccountId(adminAccountId: String) { + cdkBuilder.adminAccountId(adminAccountId) + } + + public fun build(): software.amazon.awscdk.services.securityhub.CfnDelegatedAdmin = + cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.securityhub.CfnDelegatedAdmin.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnDelegatedAdmin { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnDelegatedAdmin(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.securityhub.CfnDelegatedAdmin): + CfnDelegatedAdmin = CfnDelegatedAdmin(cdkObject) + + internal fun unwrap(wrapped: CfnDelegatedAdmin): + software.amazon.awscdk.services.securityhub.CfnDelegatedAdmin = wrapped.cdkObject as + software.amazon.awscdk.services.securityhub.CfnDelegatedAdmin + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securityhub/CfnDelegatedAdminProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securityhub/CfnDelegatedAdminProps.kt new file mode 100644 index 0000000000..93f58f1f1e --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securityhub/CfnDelegatedAdminProps.kt @@ -0,0 +1,92 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.securityhub + +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.String +import kotlin.Unit + +/** + * Properties for defining a `CfnDelegatedAdmin`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.securityhub.*; + * CfnDelegatedAdminProps cfnDelegatedAdminProps = CfnDelegatedAdminProps.builder() + * .adminAccountId("adminAccountId") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-delegatedadmin.html) + */ +public interface CfnDelegatedAdminProps { + /** + * The AWS account identifier of the account to designate as the Security Hub administrator + * account. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-delegatedadmin.html#cfn-securityhub-delegatedadmin-adminaccountid) + */ + public fun adminAccountId(): String + + /** + * A builder for [CfnDelegatedAdminProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param adminAccountId The AWS account identifier of the account to designate as the Security + * Hub administrator account. + */ + public fun adminAccountId(adminAccountId: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.securityhub.CfnDelegatedAdminProps.Builder = + software.amazon.awscdk.services.securityhub.CfnDelegatedAdminProps.builder() + + /** + * @param adminAccountId The AWS account identifier of the account to designate as the Security + * Hub administrator account. + */ + override fun adminAccountId(adminAccountId: String) { + cdkBuilder.adminAccountId(adminAccountId) + } + + public fun build(): software.amazon.awscdk.services.securityhub.CfnDelegatedAdminProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.securityhub.CfnDelegatedAdminProps, + ) : CdkObject(cdkObject), CfnDelegatedAdminProps { + /** + * The AWS account identifier of the account to designate as the Security Hub administrator + * account. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-delegatedadmin.html#cfn-securityhub-delegatedadmin-adminaccountid) + */ + override fun adminAccountId(): String = unwrap(this).getAdminAccountId() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnDelegatedAdminProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.securityhub.CfnDelegatedAdminProps): + CfnDelegatedAdminProps = CdkObjectWrappers.wrap(cdkObject) as? CfnDelegatedAdminProps ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnDelegatedAdminProps): + software.amazon.awscdk.services.securityhub.CfnDelegatedAdminProps = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.securityhub.CfnDelegatedAdminProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securityhub/CfnInsight.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securityhub/CfnInsight.kt new file mode 100644 index 0000000000..729fbf6eea --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securityhub/CfnInsight.kt @@ -0,0 +1,9469 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.securityhub + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.Boolean +import kotlin.Number +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.jvm.JvmName +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * The `AWS::SecurityHub::Insight` resource creates a custom insight in AWS Security Hub . + * + * An insight is a collection of findings that relate to a security issue that requires attention or + * remediation. For more information, see [Insights in AWS Security + * Hub](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-insights.html) in the *AWS + * Security Hub User Guide* . + * + * Tags aren't supported for this resource. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.securityhub.*; + * CfnInsight cfnInsight = CfnInsight.Builder.create(this, "MyCfnInsight") + * .filters(AwsSecurityFindingFiltersProperty.builder() + * .awsAccountId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .awsAccountName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .companyName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .complianceAssociatedStandardsId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .complianceSecurityControlId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .complianceSecurityControlParametersName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .complianceSecurityControlParametersValue(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .complianceStatus(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .confidence(List.of(NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build())) + * .createdAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .criticality(List.of(NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build())) + * .description(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .findingProviderFieldsConfidence(List.of(NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build())) + * .findingProviderFieldsCriticality(List.of(NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build())) + * .findingProviderFieldsRelatedFindingsId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .findingProviderFieldsRelatedFindingsProductArn(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .findingProviderFieldsSeverityLabel(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .findingProviderFieldsSeverityOriginal(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .findingProviderFieldsTypes(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .firstObservedAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .generatorId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .id(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .keyword(List.of(KeywordFilterProperty.builder() + * .value("value") + * .build())) + * .lastObservedAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .malwareName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .malwarePath(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .malwareState(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .malwareType(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .networkDestinationDomain(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .networkDestinationIpV4(List.of(IpFilterProperty.builder() + * .cidr("cidr") + * .build())) + * .networkDestinationIpV6(List.of(IpFilterProperty.builder() + * .cidr("cidr") + * .build())) + * .networkDestinationPort(List.of(NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build())) + * .networkDirection(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .networkProtocol(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .networkSourceDomain(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .networkSourceIpV4(List.of(IpFilterProperty.builder() + * .cidr("cidr") + * .build())) + * .networkSourceIpV6(List.of(IpFilterProperty.builder() + * .cidr("cidr") + * .build())) + * .networkSourceMac(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .networkSourcePort(List.of(NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build())) + * .noteText(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .noteUpdatedAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .noteUpdatedBy(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .processLaunchedAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .processName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .processParentPid(List.of(NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build())) + * .processPath(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .processPid(List.of(NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build())) + * .processTerminatedAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .productArn(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .productFields(List.of(MapFilterProperty.builder() + * .comparison("comparison") + * .key("key") + * .value("value") + * .build())) + * .productName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .recommendationText(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .recordState(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .region(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .relatedFindingsId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .relatedFindingsProductArn(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceApplicationArn(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceApplicationName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsEc2InstanceIamInstanceProfileArn(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsEc2InstanceImageId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsEc2InstanceIpV4Addresses(List.of(IpFilterProperty.builder() + * .cidr("cidr") + * .build())) + * .resourceAwsEc2InstanceIpV6Addresses(List.of(IpFilterProperty.builder() + * .cidr("cidr") + * .build())) + * .resourceAwsEc2InstanceKeyName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsEc2InstanceLaunchedAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .resourceAwsEc2InstanceSubnetId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsEc2InstanceType(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsEc2InstanceVpcId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsIamAccessKeyCreatedAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .resourceAwsIamAccessKeyPrincipalName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsIamAccessKeyStatus(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsIamAccessKeyUserName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsIamUserUserName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsS3BucketOwnerId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsS3BucketOwnerName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceContainerImageId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceContainerImageName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceContainerLaunchedAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .resourceContainerName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceDetailsOther(List.of(MapFilterProperty.builder() + * .comparison("comparison") + * .key("key") + * .value("value") + * .build())) + * .resourceId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourcePartition(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceRegion(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceTags(List.of(MapFilterProperty.builder() + * .comparison("comparison") + * .key("key") + * .value("value") + * .build())) + * .resourceType(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .sample(List.of(BooleanFilterProperty.builder() + * .value(false) + * .build())) + * .severityLabel(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .severityNormalized(List.of(NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build())) + * .severityProduct(List.of(NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build())) + * .sourceUrl(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .threatIntelIndicatorCategory(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .threatIntelIndicatorLastObservedAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .threatIntelIndicatorSource(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .threatIntelIndicatorSourceUrl(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .threatIntelIndicatorType(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .threatIntelIndicatorValue(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .title(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .type(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .updatedAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .userDefinedFields(List.of(MapFilterProperty.builder() + * .comparison("comparison") + * .key("key") + * .value("value") + * .build())) + * .verificationState(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .vulnerabilitiesExploitAvailable(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .vulnerabilitiesFixAvailable(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .workflowState(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .workflowStatus(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .build()) + * .groupByAttribute("groupByAttribute") + * .name("name") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-insight.html) + */ +public open class CfnInsight( + cdkObject: software.amazon.awscdk.services.securityhub.CfnInsight, +) : CfnResource(cdkObject), IInspectable { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnInsightProps, + ) : + this(software.amazon.awscdk.services.securityhub.CfnInsight(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnInsightProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnInsightProps.Builder.() -> Unit, + ) : this(scope, id, CfnInsightProps(props) + ) + + /** + * The ARN of a Security Hub insight. + */ + public open fun attrInsightArn(): String = unwrap(this).getAttrInsightArn() + + /** + * One or more attributes used to filter the findings included in the insight. + */ + public open fun filters(): Any = unwrap(this).getFilters() + + /** + * One or more attributes used to filter the findings included in the insight. + */ + public open fun filters(`value`: IResolvable) { + unwrap(this).setFilters(`value`.let(IResolvable::unwrap)) + } + + /** + * One or more attributes used to filter the findings included in the insight. + */ + public open fun filters(`value`: AwsSecurityFindingFiltersProperty) { + unwrap(this).setFilters(`value`.let(AwsSecurityFindingFiltersProperty::unwrap)) + } + + /** + * One or more attributes used to filter the findings included in the insight. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("79ba4cbb2cf979d4303de3b95706e52979e21b68c67ac2dae676c3b698aa9eba") + public open fun filters(`value`: AwsSecurityFindingFiltersProperty.Builder.() -> Unit): Unit = + filters(AwsSecurityFindingFiltersProperty(`value`)) + + /** + * The grouping attribute for the insight's findings. + */ + public open fun groupByAttribute(): String = unwrap(this).getGroupByAttribute() + + /** + * The grouping attribute for the insight's findings. + */ + public open fun groupByAttribute(`value`: String) { + unwrap(this).setGroupByAttribute(`value`) + } + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * The name of a Security Hub insight. + */ + public open fun name(): String = unwrap(this).getName() + + /** + * The name of a Security Hub insight. + */ + public open fun name(`value`: String) { + unwrap(this).setName(`value`) + } + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.securityhub.CfnInsight]. + */ + @CdkDslMarker + public interface Builder { + /** + * One or more attributes used to filter the findings included in the insight. + * + * The insight only includes findings that match the criteria defined in the filters. You can + * filter by up to ten finding attributes. For each attribute, you can provide up to 20 filter + * values. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-insight.html#cfn-securityhub-insight-filters) + * @param filters One or more attributes used to filter the findings included in the insight. + */ + public fun filters(filters: IResolvable) + + /** + * One or more attributes used to filter the findings included in the insight. + * + * The insight only includes findings that match the criteria defined in the filters. You can + * filter by up to ten finding attributes. For each attribute, you can provide up to 20 filter + * values. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-insight.html#cfn-securityhub-insight-filters) + * @param filters One or more attributes used to filter the findings included in the insight. + */ + public fun filters(filters: AwsSecurityFindingFiltersProperty) + + /** + * One or more attributes used to filter the findings included in the insight. + * + * The insight only includes findings that match the criteria defined in the filters. You can + * filter by up to ten finding attributes. For each attribute, you can provide up to 20 filter + * values. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-insight.html#cfn-securityhub-insight-filters) + * @param filters One or more attributes used to filter the findings included in the insight. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("fb05f6193618d38eb08895a169a3cfc00259ecbde309827a14500dbecaaf2280") + public fun filters(filters: AwsSecurityFindingFiltersProperty.Builder.() -> Unit) + + /** + * The grouping attribute for the insight's findings. + * + * Indicates how to group the matching findings, and identifies the type of item that the + * insight applies to. For example, if an insight is grouped by resource identifier, then the + * insight produces a list of resource identifiers. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-insight.html#cfn-securityhub-insight-groupbyattribute) + * @param groupByAttribute The grouping attribute for the insight's findings. + */ + public fun groupByAttribute(groupByAttribute: String) + + /** + * The name of a Security Hub insight. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-insight.html#cfn-securityhub-insight-name) + * @param name The name of a Security Hub insight. + */ + public fun name(name: String) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.services.securityhub.CfnInsight.Builder = + software.amazon.awscdk.services.securityhub.CfnInsight.Builder.create(scope, id) + + /** + * One or more attributes used to filter the findings included in the insight. + * + * The insight only includes findings that match the criteria defined in the filters. You can + * filter by up to ten finding attributes. For each attribute, you can provide up to 20 filter + * values. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-insight.html#cfn-securityhub-insight-filters) + * @param filters One or more attributes used to filter the findings included in the insight. + */ + override fun filters(filters: IResolvable) { + cdkBuilder.filters(filters.let(IResolvable::unwrap)) + } + + /** + * One or more attributes used to filter the findings included in the insight. + * + * The insight only includes findings that match the criteria defined in the filters. You can + * filter by up to ten finding attributes. For each attribute, you can provide up to 20 filter + * values. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-insight.html#cfn-securityhub-insight-filters) + * @param filters One or more attributes used to filter the findings included in the insight. + */ + override fun filters(filters: AwsSecurityFindingFiltersProperty) { + cdkBuilder.filters(filters.let(AwsSecurityFindingFiltersProperty::unwrap)) + } + + /** + * One or more attributes used to filter the findings included in the insight. + * + * The insight only includes findings that match the criteria defined in the filters. You can + * filter by up to ten finding attributes. For each attribute, you can provide up to 20 filter + * values. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-insight.html#cfn-securityhub-insight-filters) + * @param filters One or more attributes used to filter the findings included in the insight. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("fb05f6193618d38eb08895a169a3cfc00259ecbde309827a14500dbecaaf2280") + override fun filters(filters: AwsSecurityFindingFiltersProperty.Builder.() -> Unit): Unit = + filters(AwsSecurityFindingFiltersProperty(filters)) + + /** + * The grouping attribute for the insight's findings. + * + * Indicates how to group the matching findings, and identifies the type of item that the + * insight applies to. For example, if an insight is grouped by resource identifier, then the + * insight produces a list of resource identifiers. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-insight.html#cfn-securityhub-insight-groupbyattribute) + * @param groupByAttribute The grouping attribute for the insight's findings. + */ + override fun groupByAttribute(groupByAttribute: String) { + cdkBuilder.groupByAttribute(groupByAttribute) + } + + /** + * The name of a Security Hub insight. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-insight.html#cfn-securityhub-insight-name) + * @param name The name of a Security Hub insight. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + public fun build(): software.amazon.awscdk.services.securityhub.CfnInsight = cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.securityhub.CfnInsight.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnInsight { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnInsight(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.securityhub.CfnInsight): CfnInsight + = CfnInsight(cdkObject) + + internal fun unwrap(wrapped: CfnInsight): software.amazon.awscdk.services.securityhub.CfnInsight + = wrapped.cdkObject as software.amazon.awscdk.services.securityhub.CfnInsight + } + + /** + * A collection of filters that are applied to all active findings aggregated by AWS Security Hub + * . + * + * You can filter by up to ten finding attributes. For each attribute, you can provide up to 20 + * filter values. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.securityhub.*; + * AwsSecurityFindingFiltersProperty awsSecurityFindingFiltersProperty = + * AwsSecurityFindingFiltersProperty.builder() + * .awsAccountId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .awsAccountName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .companyName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .complianceAssociatedStandardsId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .complianceSecurityControlId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .complianceSecurityControlParametersName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .complianceSecurityControlParametersValue(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .complianceStatus(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .confidence(List.of(NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build())) + * .createdAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .criticality(List.of(NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build())) + * .description(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .findingProviderFieldsConfidence(List.of(NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build())) + * .findingProviderFieldsCriticality(List.of(NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build())) + * .findingProviderFieldsRelatedFindingsId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .findingProviderFieldsRelatedFindingsProductArn(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .findingProviderFieldsSeverityLabel(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .findingProviderFieldsSeverityOriginal(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .findingProviderFieldsTypes(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .firstObservedAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .generatorId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .id(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .keyword(List.of(KeywordFilterProperty.builder() + * .value("value") + * .build())) + * .lastObservedAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .malwareName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .malwarePath(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .malwareState(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .malwareType(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .networkDestinationDomain(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .networkDestinationIpV4(List.of(IpFilterProperty.builder() + * .cidr("cidr") + * .build())) + * .networkDestinationIpV6(List.of(IpFilterProperty.builder() + * .cidr("cidr") + * .build())) + * .networkDestinationPort(List.of(NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build())) + * .networkDirection(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .networkProtocol(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .networkSourceDomain(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .networkSourceIpV4(List.of(IpFilterProperty.builder() + * .cidr("cidr") + * .build())) + * .networkSourceIpV6(List.of(IpFilterProperty.builder() + * .cidr("cidr") + * .build())) + * .networkSourceMac(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .networkSourcePort(List.of(NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build())) + * .noteText(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .noteUpdatedAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .noteUpdatedBy(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .processLaunchedAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .processName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .processParentPid(List.of(NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build())) + * .processPath(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .processPid(List.of(NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build())) + * .processTerminatedAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .productArn(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .productFields(List.of(MapFilterProperty.builder() + * .comparison("comparison") + * .key("key") + * .value("value") + * .build())) + * .productName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .recommendationText(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .recordState(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .region(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .relatedFindingsId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .relatedFindingsProductArn(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceApplicationArn(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceApplicationName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsEc2InstanceIamInstanceProfileArn(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsEc2InstanceImageId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsEc2InstanceIpV4Addresses(List.of(IpFilterProperty.builder() + * .cidr("cidr") + * .build())) + * .resourceAwsEc2InstanceIpV6Addresses(List.of(IpFilterProperty.builder() + * .cidr("cidr") + * .build())) + * .resourceAwsEc2InstanceKeyName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsEc2InstanceLaunchedAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .resourceAwsEc2InstanceSubnetId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsEc2InstanceType(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsEc2InstanceVpcId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsIamAccessKeyCreatedAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .resourceAwsIamAccessKeyPrincipalName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsIamAccessKeyStatus(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsIamAccessKeyUserName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsIamUserUserName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsS3BucketOwnerId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsS3BucketOwnerName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceContainerImageId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceContainerImageName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceContainerLaunchedAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .resourceContainerName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceDetailsOther(List.of(MapFilterProperty.builder() + * .comparison("comparison") + * .key("key") + * .value("value") + * .build())) + * .resourceId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourcePartition(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceRegion(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceTags(List.of(MapFilterProperty.builder() + * .comparison("comparison") + * .key("key") + * .value("value") + * .build())) + * .resourceType(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .sample(List.of(BooleanFilterProperty.builder() + * .value(false) + * .build())) + * .severityLabel(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .severityNormalized(List.of(NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build())) + * .severityProduct(List.of(NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build())) + * .sourceUrl(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .threatIntelIndicatorCategory(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .threatIntelIndicatorLastObservedAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .threatIntelIndicatorSource(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .threatIntelIndicatorSourceUrl(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .threatIntelIndicatorType(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .threatIntelIndicatorValue(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .title(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .type(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .updatedAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .userDefinedFields(List.of(MapFilterProperty.builder() + * .comparison("comparison") + * .key("key") + * .value("value") + * .build())) + * .verificationState(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .vulnerabilitiesExploitAvailable(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .vulnerabilitiesFixAvailable(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .workflowState(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .workflowStatus(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html) + */ + public interface AwsSecurityFindingFiltersProperty { + /** + * The AWS account ID in which a finding is generated. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-awsaccountid) + */ + public fun awsAccountId(): Any? = unwrap(this).getAwsAccountId() + + /** + * The name of the AWS account in which a finding is generated. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-awsaccountname) + */ + public fun awsAccountName(): Any? = unwrap(this).getAwsAccountName() + + /** + * The name of the findings provider (company) that owns the solution (product) that generates + * findings. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-companyname) + */ + public fun companyName(): Any? = unwrap(this).getCompanyName() + + /** + * The unique identifier of a standard in which a control is enabled. + * + * This field consists of the resource portion of the Amazon Resource Name (ARN) returned for a + * standard in the + * [DescribeStandards](https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_DescribeStandards.html) + * API response. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-complianceassociatedstandardsid) + */ + public fun complianceAssociatedStandardsId(): Any? = + unwrap(this).getComplianceAssociatedStandardsId() + + /** + * The unique identifier of a control across standards. + * + * Values for this field typically consist of an AWS service and a number, such as APIGateway.5. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-compliancesecuritycontrolid) + */ + public fun complianceSecurityControlId(): Any? = unwrap(this).getComplianceSecurityControlId() + + /** + * The name of a security control parameter. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-compliancesecuritycontrolparametersname) + */ + public fun complianceSecurityControlParametersName(): Any? = + unwrap(this).getComplianceSecurityControlParametersName() + + /** + * The current value of a security control parameter. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-compliancesecuritycontrolparametersvalue) + */ + public fun complianceSecurityControlParametersValue(): Any? = + unwrap(this).getComplianceSecurityControlParametersValue() + + /** + * Exclusive to findings that are generated as the result of a check run against a specific rule + * in a supported standard, such as CIS AWS Foundations. + * + * Contains security standard-related finding details. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-compliancestatus) + */ + public fun complianceStatus(): Any? = unwrap(this).getComplianceStatus() + + /** + * A finding's confidence. + * + * Confidence is defined as the likelihood that a finding accurately identifies the behavior or + * issue that it was intended to identify. + * + * Confidence is scored on a 0-100 basis using a ratio scale, where 0 means zero percent + * confidence and 100 means 100 percent confidence. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-confidence) + */ + public fun confidence(): Any? = unwrap(this).getConfidence() + + /** + * A timestamp that indicates when the security findings provider created the potential security + * issue that a finding reflects. + * + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` ) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-createdat) + */ + public fun createdAt(): Any? = unwrap(this).getCreatedAt() + + /** + * The level of importance assigned to the resources associated with the finding. + * + * A score of 0 means that the underlying resources have no criticality, and a score of 100 is + * reserved for the most critical resources. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-criticality) + */ + public fun criticality(): Any? = unwrap(this).getCriticality() + + /** + * A finding's description. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-description) + */ + public fun description(): Any? = unwrap(this).getDescription() + + /** + * The finding provider value for the finding confidence. + * + * Confidence is defined as the likelihood that a finding accurately identifies the behavior or + * issue that it was intended to identify. + * + * Confidence is scored on a 0-100 basis using a ratio scale, where 0 means zero percent + * confidence and 100 means 100 percent confidence. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-findingproviderfieldsconfidence) + */ + public fun findingProviderFieldsConfidence(): Any? = + unwrap(this).getFindingProviderFieldsConfidence() + + /** + * The finding provider value for the level of importance assigned to the resources associated + * with the findings. + * + * A score of 0 means that the underlying resources have no criticality, and a score of 100 is + * reserved for the most critical resources. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-findingproviderfieldscriticality) + */ + public fun findingProviderFieldsCriticality(): Any? = + unwrap(this).getFindingProviderFieldsCriticality() + + /** + * The finding identifier of a related finding that is identified by the finding provider. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-findingproviderfieldsrelatedfindingsid) + */ + public fun findingProviderFieldsRelatedFindingsId(): Any? = + unwrap(this).getFindingProviderFieldsRelatedFindingsId() + + /** + * The ARN of the solution that generated a related finding that is identified by the finding + * provider. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-findingproviderfieldsrelatedfindingsproductarn) + */ + public fun findingProviderFieldsRelatedFindingsProductArn(): Any? = + unwrap(this).getFindingProviderFieldsRelatedFindingsProductArn() + + /** + * The finding provider value for the severity label. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-findingproviderfieldsseveritylabel) + */ + public fun findingProviderFieldsSeverityLabel(): Any? = + unwrap(this).getFindingProviderFieldsSeverityLabel() + + /** + * The finding provider's original value for the severity. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-findingproviderfieldsseverityoriginal) + */ + public fun findingProviderFieldsSeverityOriginal(): Any? = + unwrap(this).getFindingProviderFieldsSeverityOriginal() + + /** + * One or more finding types that the finding provider assigned to the finding. + * + * Uses the format of `namespace/category/classifier` that classify a finding. + * + * Valid namespace values are: Software and Configuration Checks | TTPs | Effects | Unusual + * Behaviors | Sensitive Data Identifications + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-findingproviderfieldstypes) + */ + public fun findingProviderFieldsTypes(): Any? = unwrap(this).getFindingProviderFieldsTypes() + + /** + * A timestamp that indicates when the security findings provider first observed the potential + * security issue that a finding captured. + * + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` ) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-firstobservedat) + */ + public fun firstObservedAt(): Any? = unwrap(this).getFirstObservedAt() + + /** + * The identifier for the solution-specific component (a discrete unit of logic) that generated + * a finding. + * + * In various security findings providers' solutions, this generator can be called a rule, a + * check, a detector, a plugin, etc. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-generatorid) + */ + public fun generatorId(): Any? = unwrap(this).getGeneratorId() + + /** + * The security findings provider-specific identifier for a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-id) + */ + public fun id(): Any? = unwrap(this).getId() + + /** + * This field is deprecated. + * + * A keyword for a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-keyword) + */ + public fun keyword(): Any? = unwrap(this).getKeyword() + + /** + * A timestamp that indicates when the security findings provider most recently observed the + * potential security issue that a finding captured. + * + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` ) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-lastobservedat) + */ + public fun lastObservedAt(): Any? = unwrap(this).getLastObservedAt() + + /** + * The name of the malware that was observed. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-malwarename) + */ + public fun malwareName(): Any? = unwrap(this).getMalwareName() + + /** + * The filesystem path of the malware that was observed. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-malwarepath) + */ + public fun malwarePath(): Any? = unwrap(this).getMalwarePath() + + /** + * The state of the malware that was observed. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-malwarestate) + */ + public fun malwareState(): Any? = unwrap(this).getMalwareState() + + /** + * The type of the malware that was observed. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-malwaretype) + */ + public fun malwareType(): Any? = unwrap(this).getMalwareType() + + /** + * The destination domain of network-related information about a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-networkdestinationdomain) + */ + public fun networkDestinationDomain(): Any? = unwrap(this).getNetworkDestinationDomain() + + /** + * The destination IPv4 address of network-related information about a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-networkdestinationipv4) + */ + public fun networkDestinationIpV4(): Any? = unwrap(this).getNetworkDestinationIpV4() + + /** + * The destination IPv6 address of network-related information about a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-networkdestinationipv6) + */ + public fun networkDestinationIpV6(): Any? = unwrap(this).getNetworkDestinationIpV6() + + /** + * The destination port of network-related information about a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-networkdestinationport) + */ + public fun networkDestinationPort(): Any? = unwrap(this).getNetworkDestinationPort() + + /** + * Indicates the direction of network traffic associated with a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-networkdirection) + */ + public fun networkDirection(): Any? = unwrap(this).getNetworkDirection() + + /** + * The protocol of network-related information about a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-networkprotocol) + */ + public fun networkProtocol(): Any? = unwrap(this).getNetworkProtocol() + + /** + * The source domain of network-related information about a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-networksourcedomain) + */ + public fun networkSourceDomain(): Any? = unwrap(this).getNetworkSourceDomain() + + /** + * The source IPv4 address of network-related information about a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-networksourceipv4) + */ + public fun networkSourceIpV4(): Any? = unwrap(this).getNetworkSourceIpV4() + + /** + * The source IPv6 address of network-related information about a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-networksourceipv6) + */ + public fun networkSourceIpV6(): Any? = unwrap(this).getNetworkSourceIpV6() + + /** + * The source media access control (MAC) address of network-related information about a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-networksourcemac) + */ + public fun networkSourceMac(): Any? = unwrap(this).getNetworkSourceMac() + + /** + * The source port of network-related information about a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-networksourceport) + */ + public fun networkSourcePort(): Any? = unwrap(this).getNetworkSourcePort() + + /** + * The text of a note. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-notetext) + */ + public fun noteText(): Any? = unwrap(this).getNoteText() + + /** + * The timestamp of when the note was updated. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-noteupdatedat) + */ + public fun noteUpdatedAt(): Any? = unwrap(this).getNoteUpdatedAt() + + /** + * The principal that created a note. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-noteupdatedby) + */ + public fun noteUpdatedBy(): Any? = unwrap(this).getNoteUpdatedBy() + + /** + * A timestamp that identifies when the process was launched. + * + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` ) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-processlaunchedat) + */ + public fun processLaunchedAt(): Any? = unwrap(this).getProcessLaunchedAt() + + /** + * The name of the process. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-processname) + */ + public fun processName(): Any? = unwrap(this).getProcessName() + + /** + * The parent process ID. + * + * This field accepts positive integers between `O` and `2147483647` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-processparentpid) + */ + public fun processParentPid(): Any? = unwrap(this).getProcessParentPid() + + /** + * The path to the process executable. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-processpath) + */ + public fun processPath(): Any? = unwrap(this).getProcessPath() + + /** + * The process ID. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-processpid) + */ + public fun processPid(): Any? = unwrap(this).getProcessPid() + + /** + * A timestamp that identifies when the process was terminated. + * + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` ) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-processterminatedat) + */ + public fun processTerminatedAt(): Any? = unwrap(this).getProcessTerminatedAt() + + /** + * The ARN generated by Security Hub that uniquely identifies a third-party company (security + * findings provider) after this provider's product (solution that generates findings) is + * registered with Security Hub. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-productarn) + */ + public fun productArn(): Any? = unwrap(this).getProductArn() + + /** + * A data type where security findings providers can include additional solution-specific + * details that aren't part of the defined `AwsSecurityFinding` format. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-productfields) + */ + public fun productFields(): Any? = unwrap(this).getProductFields() + + /** + * The name of the solution (product) that generates findings. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-productname) + */ + public fun productName(): Any? = unwrap(this).getProductName() + + /** + * The recommendation of what to do about the issue described in a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-recommendationtext) + */ + public fun recommendationText(): Any? = unwrap(this).getRecommendationText() + + /** + * The updated record state for the finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-recordstate) + */ + public fun recordState(): Any? = unwrap(this).getRecordState() + + /** + * The Region from which the finding was generated. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-region) + */ + public fun region(): Any? = unwrap(this).getRegion() + + /** + * The solution-generated identifier for a related finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-relatedfindingsid) + */ + public fun relatedFindingsId(): Any? = unwrap(this).getRelatedFindingsId() + + /** + * The ARN of the solution that generated a related finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-relatedfindingsproductarn) + */ + public fun relatedFindingsProductArn(): Any? = unwrap(this).getRelatedFindingsProductArn() + + /** + * The ARN of the application that is related to a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceapplicationarn) + */ + public fun resourceApplicationArn(): Any? = unwrap(this).getResourceApplicationArn() + + /** + * The name of the application that is related to a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceapplicationname) + */ + public fun resourceApplicationName(): Any? = unwrap(this).getResourceApplicationName() + + /** + * The IAM profile ARN of the instance. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawsec2instanceiaminstanceprofilearn) + */ + public fun resourceAwsEc2InstanceIamInstanceProfileArn(): Any? = + unwrap(this).getResourceAwsEc2InstanceIamInstanceProfileArn() + + /** + * The Amazon Machine Image (AMI) ID of the instance. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawsec2instanceimageid) + */ + public fun resourceAwsEc2InstanceImageId(): Any? = + unwrap(this).getResourceAwsEc2InstanceImageId() + + /** + * The IPv4 addresses associated with the instance. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawsec2instanceipv4addresses) + */ + public fun resourceAwsEc2InstanceIpV4Addresses(): Any? = + unwrap(this).getResourceAwsEc2InstanceIpV4Addresses() + + /** + * The IPv6 addresses associated with the instance. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawsec2instanceipv6addresses) + */ + public fun resourceAwsEc2InstanceIpV6Addresses(): Any? = + unwrap(this).getResourceAwsEc2InstanceIpV6Addresses() + + /** + * The key name associated with the instance. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawsec2instancekeyname) + */ + public fun resourceAwsEc2InstanceKeyName(): Any? = + unwrap(this).getResourceAwsEc2InstanceKeyName() + + /** + * The date and time the instance was launched. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawsec2instancelaunchedat) + */ + public fun resourceAwsEc2InstanceLaunchedAt(): Any? = + unwrap(this).getResourceAwsEc2InstanceLaunchedAt() + + /** + * The identifier of the subnet that the instance was launched in. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawsec2instancesubnetid) + */ + public fun resourceAwsEc2InstanceSubnetId(): Any? = + unwrap(this).getResourceAwsEc2InstanceSubnetId() + + /** + * The instance type of the instance. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawsec2instancetype) + */ + public fun resourceAwsEc2InstanceType(): Any? = unwrap(this).getResourceAwsEc2InstanceType() + + /** + * The identifier of the VPC that the instance was launched in. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawsec2instancevpcid) + */ + public fun resourceAwsEc2InstanceVpcId(): Any? = unwrap(this).getResourceAwsEc2InstanceVpcId() + + /** + * The creation date/time of the IAM access key related to a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawsiamaccesskeycreatedat) + */ + public fun resourceAwsIamAccessKeyCreatedAt(): Any? = + unwrap(this).getResourceAwsIamAccessKeyCreatedAt() + + /** + * The name of the principal that is associated with an IAM access key. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawsiamaccesskeyprincipalname) + */ + public fun resourceAwsIamAccessKeyPrincipalName(): Any? = + unwrap(this).getResourceAwsIamAccessKeyPrincipalName() + + /** + * The status of the IAM access key related to a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawsiamaccesskeystatus) + */ + public fun resourceAwsIamAccessKeyStatus(): Any? = + unwrap(this).getResourceAwsIamAccessKeyStatus() + + /** + * This field is deprecated. + * + * The username associated with the IAM access key related to a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawsiamaccesskeyusername) + */ + public fun resourceAwsIamAccessKeyUserName(): Any? = + unwrap(this).getResourceAwsIamAccessKeyUserName() + + /** + * The name of an IAM user. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawsiamuserusername) + */ + public fun resourceAwsIamUserUserName(): Any? = unwrap(this).getResourceAwsIamUserUserName() + + /** + * The canonical user ID of the owner of the S3 bucket. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawss3bucketownerid) + */ + public fun resourceAwsS3BucketOwnerId(): Any? = unwrap(this).getResourceAwsS3BucketOwnerId() + + /** + * The display name of the owner of the S3 bucket. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawss3bucketownername) + */ + public fun resourceAwsS3BucketOwnerName(): Any? = unwrap(this).getResourceAwsS3BucketOwnerName() + + /** + * The identifier of the image related to a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourcecontainerimageid) + */ + public fun resourceContainerImageId(): Any? = unwrap(this).getResourceContainerImageId() + + /** + * The name of the image related to a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourcecontainerimagename) + */ + public fun resourceContainerImageName(): Any? = unwrap(this).getResourceContainerImageName() + + /** + * A timestamp that identifies when the container was started. + * + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` ) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourcecontainerlaunchedat) + */ + public fun resourceContainerLaunchedAt(): Any? = unwrap(this).getResourceContainerLaunchedAt() + + /** + * The name of the container related to a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourcecontainername) + */ + public fun resourceContainerName(): Any? = unwrap(this).getResourceContainerName() + + /** + * The details of a resource that doesn't have a specific subfield for the resource type + * defined. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourcedetailsother) + */ + public fun resourceDetailsOther(): Any? = unwrap(this).getResourceDetailsOther() + + /** + * The canonical identifier for the given resource type. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceid) + */ + public fun resourceId(): Any? = unwrap(this).getResourceId() + + /** + * The canonical AWS partition name that the Region is assigned to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourcepartition) + */ + public fun resourcePartition(): Any? = unwrap(this).getResourcePartition() + + /** + * The canonical AWS external Region name where this resource is located. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceregion) + */ + public fun resourceRegion(): Any? = unwrap(this).getResourceRegion() + + /** + * A list of AWS tags associated with a resource at the time the finding was processed. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourcetags) + */ + public fun resourceTags(): Any? = unwrap(this).getResourceTags() + + /** + * Specifies the type of the resource that details are provided for. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourcetype) + */ + public fun resourceType(): Any? = unwrap(this).getResourceType() + + /** + * Indicates whether or not sample findings are included in the filter results. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-sample) + */ + public fun sample(): Any? = unwrap(this).getSample() + + /** + * The label of a finding's severity. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-severitylabel) + */ + public fun severityLabel(): Any? = unwrap(this).getSeverityLabel() + + /** + * Deprecated. The normalized severity of a finding. Instead of providing `Normalized` , provide + * `Label` . + * + * If you provide `Label` and do not provide `Normalized` , then `Normalized` is set + * automatically as follows. + * + * * `INFORMATIONAL` - 0 + * * `LOW` - 1 + * * `MEDIUM` - 40 + * * `HIGH` - 70 + * * `CRITICAL` - 90 + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-severitynormalized) + */ + public fun severityNormalized(): Any? = unwrap(this).getSeverityNormalized() + + /** + * Deprecated. This attribute isn't included in findings. Instead of providing `Product` , + * provide `Original` . + * + * The native severity as defined by the AWS service or integrated partner product that + * generated the finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-severityproduct) + */ + public fun severityProduct(): Any? = unwrap(this).getSeverityProduct() + + /** + * A URL that links to a page about the current finding in the security findings provider's + * solution. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-sourceurl) + */ + public fun sourceUrl(): Any? = unwrap(this).getSourceUrl() + + /** + * The category of a threat intelligence indicator. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-threatintelindicatorcategory) + */ + public fun threatIntelIndicatorCategory(): Any? = unwrap(this).getThreatIntelIndicatorCategory() + + /** + * A timestamp that identifies the last observation of a threat intelligence indicator. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-threatintelindicatorlastobservedat) + */ + public fun threatIntelIndicatorLastObservedAt(): Any? = + unwrap(this).getThreatIntelIndicatorLastObservedAt() + + /** + * The source of the threat intelligence. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-threatintelindicatorsource) + */ + public fun threatIntelIndicatorSource(): Any? = unwrap(this).getThreatIntelIndicatorSource() + + /** + * The URL for more details from the source of the threat intelligence. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-threatintelindicatorsourceurl) + */ + public fun threatIntelIndicatorSourceUrl(): Any? = + unwrap(this).getThreatIntelIndicatorSourceUrl() + + /** + * The type of a threat intelligence indicator. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-threatintelindicatortype) + */ + public fun threatIntelIndicatorType(): Any? = unwrap(this).getThreatIntelIndicatorType() + + /** + * The value of a threat intelligence indicator. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-threatintelindicatorvalue) + */ + public fun threatIntelIndicatorValue(): Any? = unwrap(this).getThreatIntelIndicatorValue() + + /** + * A finding's title. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-title) + */ + public fun title(): Any? = unwrap(this).getTitle() + + /** + * A finding type in the format of `namespace/category/classifier` that classifies a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-type) + */ + public fun type(): Any? = unwrap(this).getType() + + /** + * A timestamp that indicates when the security findings provider last updated the finding + * record. + * + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` ) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-updatedat) + */ + public fun updatedAt(): Any? = unwrap(this).getUpdatedAt() + + /** + * A list of name/value string pairs associated with the finding. + * + * These are custom, user-defined fields added to a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-userdefinedfields) + */ + public fun userDefinedFields(): Any? = unwrap(this).getUserDefinedFields() + + /** + * The veracity of a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-verificationstate) + */ + public fun verificationState(): Any? = unwrap(this).getVerificationState() + + /** + * Indicates whether a software vulnerability in your environment has a known exploit. + * + * You can filter findings by this field only if you use Security Hub and Amazon Inspector. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-vulnerabilitiesexploitavailable) + */ + public fun vulnerabilitiesExploitAvailable(): Any? = + unwrap(this).getVulnerabilitiesExploitAvailable() + + /** + * Indicates whether a vulnerability is fixed in a newer version of the affected software + * packages. + * + * You can filter findings by this field only if you use Security Hub and Amazon Inspector. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-vulnerabilitiesfixavailable) + */ + public fun vulnerabilitiesFixAvailable(): Any? = unwrap(this).getVulnerabilitiesFixAvailable() + + /** + * The workflow state of a finding. + * + * Note that this field is deprecated. To search for a finding based on its workflow status, use + * `WorkflowStatus` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-workflowstate) + */ + public fun workflowState(): Any? = unwrap(this).getWorkflowState() + + /** + * The status of the investigation into a finding. Allowed values are the following. + * + * * `NEW` - The initial state of a finding, before it is reviewed. + * + * Security Hub also resets the workflow status from `NOTIFIED` or `RESOLVED` to `NEW` in the + * following cases: + * + * * `RecordState` changes from `ARCHIVED` to `ACTIVE` . + * * `Compliance.Status` changes from `PASSED` to either `WARNING` , `FAILED` , or + * `NOT_AVAILABLE` . + * * `NOTIFIED` - Indicates that the resource owner has been notified about the security issue. + * Used when the initial reviewer is not the resource owner, and needs intervention from the + * resource owner. + * + * If one of the following occurs, the workflow status is changed automatically from `NOTIFIED` + * to `NEW` : + * + * * `RecordState` changes from `ARCHIVED` to `ACTIVE` . + * * `Compliance.Status` changes from `PASSED` to `FAILED` , `WARNING` , or `NOT_AVAILABLE` . + * * `SUPPRESSED` - Indicates that you reviewed the finding and do not believe that any action + * is needed. + * + * The workflow status of a `SUPPRESSED` finding does not change if `RecordState` changes from + * `ARCHIVED` to `ACTIVE` . + * + * * `RESOLVED` - The finding was reviewed and remediated and is now considered resolved. + * + * The finding remains `RESOLVED` unless one of the following occurs: + * + * * `RecordState` changes from `ARCHIVED` to `ACTIVE` . + * * `Compliance.Status` changes from `PASSED` to `FAILED` , `WARNING` , or `NOT_AVAILABLE` . + * + * In those cases, the workflow status is automatically reset to `NEW` . + * + * For findings from controls, if `Compliance.Status` is `PASSED` , then Security Hub + * automatically sets the workflow status to `RESOLVED` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-workflowstatus) + */ + public fun workflowStatus(): Any? = unwrap(this).getWorkflowStatus() + + /** + * A builder for [AwsSecurityFindingFiltersProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param awsAccountId The AWS account ID in which a finding is generated. + */ + public fun awsAccountId(awsAccountId: IResolvable) + + /** + * @param awsAccountId The AWS account ID in which a finding is generated. + */ + public fun awsAccountId(awsAccountId: List) + + /** + * @param awsAccountId The AWS account ID in which a finding is generated. + */ + public fun awsAccountId(vararg awsAccountId: Any) + + /** + * @param awsAccountName The name of the AWS account in which a finding is generated. + */ + public fun awsAccountName(awsAccountName: IResolvable) + + /** + * @param awsAccountName The name of the AWS account in which a finding is generated. + */ + public fun awsAccountName(awsAccountName: List) + + /** + * @param awsAccountName The name of the AWS account in which a finding is generated. + */ + public fun awsAccountName(vararg awsAccountName: Any) + + /** + * @param companyName The name of the findings provider (company) that owns the solution + * (product) that generates findings. + */ + public fun companyName(companyName: IResolvable) + + /** + * @param companyName The name of the findings provider (company) that owns the solution + * (product) that generates findings. + */ + public fun companyName(companyName: List) + + /** + * @param companyName The name of the findings provider (company) that owns the solution + * (product) that generates findings. + */ + public fun companyName(vararg companyName: Any) + + /** + * @param complianceAssociatedStandardsId The unique identifier of a standard in which a + * control is enabled. + * This field consists of the resource portion of the Amazon Resource Name (ARN) returned for + * a standard in the + * [DescribeStandards](https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_DescribeStandards.html) + * API response. + */ + public fun complianceAssociatedStandardsId(complianceAssociatedStandardsId: IResolvable) + + /** + * @param complianceAssociatedStandardsId The unique identifier of a standard in which a + * control is enabled. + * This field consists of the resource portion of the Amazon Resource Name (ARN) returned for + * a standard in the + * [DescribeStandards](https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_DescribeStandards.html) + * API response. + */ + public fun complianceAssociatedStandardsId(complianceAssociatedStandardsId: List) + + /** + * @param complianceAssociatedStandardsId The unique identifier of a standard in which a + * control is enabled. + * This field consists of the resource portion of the Amazon Resource Name (ARN) returned for + * a standard in the + * [DescribeStandards](https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_DescribeStandards.html) + * API response. + */ + public fun complianceAssociatedStandardsId(vararg complianceAssociatedStandardsId: Any) + + /** + * @param complianceSecurityControlId The unique identifier of a control across standards. + * Values for this field typically consist of an AWS service and a number, such as + * APIGateway.5. + */ + public fun complianceSecurityControlId(complianceSecurityControlId: IResolvable) + + /** + * @param complianceSecurityControlId The unique identifier of a control across standards. + * Values for this field typically consist of an AWS service and a number, such as + * APIGateway.5. + */ + public fun complianceSecurityControlId(complianceSecurityControlId: List) + + /** + * @param complianceSecurityControlId The unique identifier of a control across standards. + * Values for this field typically consist of an AWS service and a number, such as + * APIGateway.5. + */ + public fun complianceSecurityControlId(vararg complianceSecurityControlId: Any) + + /** + * @param complianceSecurityControlParametersName The name of a security control parameter. + */ + public + fun complianceSecurityControlParametersName(complianceSecurityControlParametersName: IResolvable) + + /** + * @param complianceSecurityControlParametersName The name of a security control parameter. + */ + public + fun complianceSecurityControlParametersName(complianceSecurityControlParametersName: List) + + /** + * @param complianceSecurityControlParametersName The name of a security control parameter. + */ + public fun complianceSecurityControlParametersName(vararg + complianceSecurityControlParametersName: Any) + + /** + * @param complianceSecurityControlParametersValue The current value of a security control + * parameter. + */ + public + fun complianceSecurityControlParametersValue(complianceSecurityControlParametersValue: IResolvable) + + /** + * @param complianceSecurityControlParametersValue The current value of a security control + * parameter. + */ + public + fun complianceSecurityControlParametersValue(complianceSecurityControlParametersValue: List) + + /** + * @param complianceSecurityControlParametersValue The current value of a security control + * parameter. + */ + public fun complianceSecurityControlParametersValue(vararg + complianceSecurityControlParametersValue: Any) + + /** + * @param complianceStatus Exclusive to findings that are generated as the result of a check + * run against a specific rule in a supported standard, such as CIS AWS Foundations. + * Contains security standard-related finding details. + */ + public fun complianceStatus(complianceStatus: IResolvable) + + /** + * @param complianceStatus Exclusive to findings that are generated as the result of a check + * run against a specific rule in a supported standard, such as CIS AWS Foundations. + * Contains security standard-related finding details. + */ + public fun complianceStatus(complianceStatus: List) + + /** + * @param complianceStatus Exclusive to findings that are generated as the result of a check + * run against a specific rule in a supported standard, such as CIS AWS Foundations. + * Contains security standard-related finding details. + */ + public fun complianceStatus(vararg complianceStatus: Any) + + /** + * @param confidence A finding's confidence. + * Confidence is defined as the likelihood that a finding accurately identifies the behavior + * or issue that it was intended to identify. + * + * Confidence is scored on a 0-100 basis using a ratio scale, where 0 means zero percent + * confidence and 100 means 100 percent confidence. + */ + public fun confidence(confidence: IResolvable) + + /** + * @param confidence A finding's confidence. + * Confidence is defined as the likelihood that a finding accurately identifies the behavior + * or issue that it was intended to identify. + * + * Confidence is scored on a 0-100 basis using a ratio scale, where 0 means zero percent + * confidence and 100 means 100 percent confidence. + */ + public fun confidence(confidence: List) + + /** + * @param confidence A finding's confidence. + * Confidence is defined as the likelihood that a finding accurately identifies the behavior + * or issue that it was intended to identify. + * + * Confidence is scored on a 0-100 basis using a ratio scale, where 0 means zero percent + * confidence and 100 means 100 percent confidence. + */ + public fun confidence(vararg confidence: Any) + + /** + * @param createdAt A timestamp that indicates when the security findings provider created the + * potential security issue that a finding reflects. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + public fun createdAt(createdAt: IResolvable) + + /** + * @param createdAt A timestamp that indicates when the security findings provider created the + * potential security issue that a finding reflects. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + public fun createdAt(createdAt: List) + + /** + * @param createdAt A timestamp that indicates when the security findings provider created the + * potential security issue that a finding reflects. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + public fun createdAt(vararg createdAt: Any) + + /** + * @param criticality The level of importance assigned to the resources associated with the + * finding. + * A score of 0 means that the underlying resources have no criticality, and a score of 100 is + * reserved for the most critical resources. + */ + public fun criticality(criticality: IResolvable) + + /** + * @param criticality The level of importance assigned to the resources associated with the + * finding. + * A score of 0 means that the underlying resources have no criticality, and a score of 100 is + * reserved for the most critical resources. + */ + public fun criticality(criticality: List) + + /** + * @param criticality The level of importance assigned to the resources associated with the + * finding. + * A score of 0 means that the underlying resources have no criticality, and a score of 100 is + * reserved for the most critical resources. + */ + public fun criticality(vararg criticality: Any) + + /** + * @param description A finding's description. + */ + public fun description(description: IResolvable) + + /** + * @param description A finding's description. + */ + public fun description(description: List) + + /** + * @param description A finding's description. + */ + public fun description(vararg description: Any) + + /** + * @param findingProviderFieldsConfidence The finding provider value for the finding + * confidence. + * Confidence is defined as the likelihood that a finding accurately identifies the behavior + * or issue that it was intended to identify. + * + * Confidence is scored on a 0-100 basis using a ratio scale, where 0 means zero percent + * confidence and 100 means 100 percent confidence. + */ + public fun findingProviderFieldsConfidence(findingProviderFieldsConfidence: IResolvable) + + /** + * @param findingProviderFieldsConfidence The finding provider value for the finding + * confidence. + * Confidence is defined as the likelihood that a finding accurately identifies the behavior + * or issue that it was intended to identify. + * + * Confidence is scored on a 0-100 basis using a ratio scale, where 0 means zero percent + * confidence and 100 means 100 percent confidence. + */ + public fun findingProviderFieldsConfidence(findingProviderFieldsConfidence: List) + + /** + * @param findingProviderFieldsConfidence The finding provider value for the finding + * confidence. + * Confidence is defined as the likelihood that a finding accurately identifies the behavior + * or issue that it was intended to identify. + * + * Confidence is scored on a 0-100 basis using a ratio scale, where 0 means zero percent + * confidence and 100 means 100 percent confidence. + */ + public fun findingProviderFieldsConfidence(vararg findingProviderFieldsConfidence: Any) + + /** + * @param findingProviderFieldsCriticality The finding provider value for the level of + * importance assigned to the resources associated with the findings. + * A score of 0 means that the underlying resources have no criticality, and a score of 100 is + * reserved for the most critical resources. + */ + public fun findingProviderFieldsCriticality(findingProviderFieldsCriticality: IResolvable) + + /** + * @param findingProviderFieldsCriticality The finding provider value for the level of + * importance assigned to the resources associated with the findings. + * A score of 0 means that the underlying resources have no criticality, and a score of 100 is + * reserved for the most critical resources. + */ + public fun findingProviderFieldsCriticality(findingProviderFieldsCriticality: List) + + /** + * @param findingProviderFieldsCriticality The finding provider value for the level of + * importance assigned to the resources associated with the findings. + * A score of 0 means that the underlying resources have no criticality, and a score of 100 is + * reserved for the most critical resources. + */ + public fun findingProviderFieldsCriticality(vararg findingProviderFieldsCriticality: Any) + + /** + * @param findingProviderFieldsRelatedFindingsId The finding identifier of a related finding + * that is identified by the finding provider. + */ + public + fun findingProviderFieldsRelatedFindingsId(findingProviderFieldsRelatedFindingsId: IResolvable) + + /** + * @param findingProviderFieldsRelatedFindingsId The finding identifier of a related finding + * that is identified by the finding provider. + */ + public + fun findingProviderFieldsRelatedFindingsId(findingProviderFieldsRelatedFindingsId: List) + + /** + * @param findingProviderFieldsRelatedFindingsId The finding identifier of a related finding + * that is identified by the finding provider. + */ + public fun findingProviderFieldsRelatedFindingsId(vararg + findingProviderFieldsRelatedFindingsId: Any) + + /** + * @param findingProviderFieldsRelatedFindingsProductArn The ARN of the solution that + * generated a related finding that is identified by the finding provider. + */ + public + fun findingProviderFieldsRelatedFindingsProductArn(findingProviderFieldsRelatedFindingsProductArn: IResolvable) + + /** + * @param findingProviderFieldsRelatedFindingsProductArn The ARN of the solution that + * generated a related finding that is identified by the finding provider. + */ + public + fun findingProviderFieldsRelatedFindingsProductArn(findingProviderFieldsRelatedFindingsProductArn: List) + + /** + * @param findingProviderFieldsRelatedFindingsProductArn The ARN of the solution that + * generated a related finding that is identified by the finding provider. + */ + public fun findingProviderFieldsRelatedFindingsProductArn(vararg + findingProviderFieldsRelatedFindingsProductArn: Any) + + /** + * @param findingProviderFieldsSeverityLabel The finding provider value for the severity + * label. + */ + public fun findingProviderFieldsSeverityLabel(findingProviderFieldsSeverityLabel: IResolvable) + + /** + * @param findingProviderFieldsSeverityLabel The finding provider value for the severity + * label. + */ + public fun findingProviderFieldsSeverityLabel(findingProviderFieldsSeverityLabel: List) + + /** + * @param findingProviderFieldsSeverityLabel The finding provider value for the severity + * label. + */ + public fun findingProviderFieldsSeverityLabel(vararg findingProviderFieldsSeverityLabel: Any) + + /** + * @param findingProviderFieldsSeverityOriginal The finding provider's original value for the + * severity. + */ + public + fun findingProviderFieldsSeverityOriginal(findingProviderFieldsSeverityOriginal: IResolvable) + + /** + * @param findingProviderFieldsSeverityOriginal The finding provider's original value for the + * severity. + */ + public + fun findingProviderFieldsSeverityOriginal(findingProviderFieldsSeverityOriginal: List) + + /** + * @param findingProviderFieldsSeverityOriginal The finding provider's original value for the + * severity. + */ + public fun findingProviderFieldsSeverityOriginal(vararg + findingProviderFieldsSeverityOriginal: Any) + + /** + * @param findingProviderFieldsTypes One or more finding types that the finding provider + * assigned to the finding. + * Uses the format of `namespace/category/classifier` that classify a finding. + * + * Valid namespace values are: Software and Configuration Checks | TTPs | Effects | Unusual + * Behaviors | Sensitive Data Identifications + */ + public fun findingProviderFieldsTypes(findingProviderFieldsTypes: IResolvable) + + /** + * @param findingProviderFieldsTypes One or more finding types that the finding provider + * assigned to the finding. + * Uses the format of `namespace/category/classifier` that classify a finding. + * + * Valid namespace values are: Software and Configuration Checks | TTPs | Effects | Unusual + * Behaviors | Sensitive Data Identifications + */ + public fun findingProviderFieldsTypes(findingProviderFieldsTypes: List) + + /** + * @param findingProviderFieldsTypes One or more finding types that the finding provider + * assigned to the finding. + * Uses the format of `namespace/category/classifier` that classify a finding. + * + * Valid namespace values are: Software and Configuration Checks | TTPs | Effects | Unusual + * Behaviors | Sensitive Data Identifications + */ + public fun findingProviderFieldsTypes(vararg findingProviderFieldsTypes: Any) + + /** + * @param firstObservedAt A timestamp that indicates when the security findings provider first + * observed the potential security issue that a finding captured. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + public fun firstObservedAt(firstObservedAt: IResolvable) + + /** + * @param firstObservedAt A timestamp that indicates when the security findings provider first + * observed the potential security issue that a finding captured. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + public fun firstObservedAt(firstObservedAt: List) + + /** + * @param firstObservedAt A timestamp that indicates when the security findings provider first + * observed the potential security issue that a finding captured. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + public fun firstObservedAt(vararg firstObservedAt: Any) + + /** + * @param generatorId The identifier for the solution-specific component (a discrete unit of + * logic) that generated a finding. + * In various security findings providers' solutions, this generator can be called a rule, a + * check, a detector, a plugin, etc. + */ + public fun generatorId(generatorId: IResolvable) + + /** + * @param generatorId The identifier for the solution-specific component (a discrete unit of + * logic) that generated a finding. + * In various security findings providers' solutions, this generator can be called a rule, a + * check, a detector, a plugin, etc. + */ + public fun generatorId(generatorId: List) + + /** + * @param generatorId The identifier for the solution-specific component (a discrete unit of + * logic) that generated a finding. + * In various security findings providers' solutions, this generator can be called a rule, a + * check, a detector, a plugin, etc. + */ + public fun generatorId(vararg generatorId: Any) + + /** + * @param id The security findings provider-specific identifier for a finding. + */ + public fun id(id: IResolvable) + + /** + * @param id The security findings provider-specific identifier for a finding. + */ + public fun id(id: List) + + /** + * @param id The security findings provider-specific identifier for a finding. + */ + public fun id(vararg id: Any) + + /** + * @param keyword This field is deprecated. + * A keyword for a finding. + */ + public fun keyword(keyword: IResolvable) + + /** + * @param keyword This field is deprecated. + * A keyword for a finding. + */ + public fun keyword(keyword: List) + + /** + * @param keyword This field is deprecated. + * A keyword for a finding. + */ + public fun keyword(vararg keyword: Any) + + /** + * @param lastObservedAt A timestamp that indicates when the security findings provider most + * recently observed the potential security issue that a finding captured. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + public fun lastObservedAt(lastObservedAt: IResolvable) + + /** + * @param lastObservedAt A timestamp that indicates when the security findings provider most + * recently observed the potential security issue that a finding captured. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + public fun lastObservedAt(lastObservedAt: List) + + /** + * @param lastObservedAt A timestamp that indicates when the security findings provider most + * recently observed the potential security issue that a finding captured. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + public fun lastObservedAt(vararg lastObservedAt: Any) + + /** + * @param malwareName The name of the malware that was observed. + */ + public fun malwareName(malwareName: IResolvable) + + /** + * @param malwareName The name of the malware that was observed. + */ + public fun malwareName(malwareName: List) + + /** + * @param malwareName The name of the malware that was observed. + */ + public fun malwareName(vararg malwareName: Any) + + /** + * @param malwarePath The filesystem path of the malware that was observed. + */ + public fun malwarePath(malwarePath: IResolvable) + + /** + * @param malwarePath The filesystem path of the malware that was observed. + */ + public fun malwarePath(malwarePath: List) + + /** + * @param malwarePath The filesystem path of the malware that was observed. + */ + public fun malwarePath(vararg malwarePath: Any) + + /** + * @param malwareState The state of the malware that was observed. + */ + public fun malwareState(malwareState: IResolvable) + + /** + * @param malwareState The state of the malware that was observed. + */ + public fun malwareState(malwareState: List) + + /** + * @param malwareState The state of the malware that was observed. + */ + public fun malwareState(vararg malwareState: Any) + + /** + * @param malwareType The type of the malware that was observed. + */ + public fun malwareType(malwareType: IResolvable) + + /** + * @param malwareType The type of the malware that was observed. + */ + public fun malwareType(malwareType: List) + + /** + * @param malwareType The type of the malware that was observed. + */ + public fun malwareType(vararg malwareType: Any) + + /** + * @param networkDestinationDomain The destination domain of network-related information about + * a finding. + */ + public fun networkDestinationDomain(networkDestinationDomain: IResolvable) + + /** + * @param networkDestinationDomain The destination domain of network-related information about + * a finding. + */ + public fun networkDestinationDomain(networkDestinationDomain: List) + + /** + * @param networkDestinationDomain The destination domain of network-related information about + * a finding. + */ + public fun networkDestinationDomain(vararg networkDestinationDomain: Any) + + /** + * @param networkDestinationIpV4 The destination IPv4 address of network-related information + * about a finding. + */ + public fun networkDestinationIpV4(networkDestinationIpV4: IResolvable) + + /** + * @param networkDestinationIpV4 The destination IPv4 address of network-related information + * about a finding. + */ + public fun networkDestinationIpV4(networkDestinationIpV4: List) + + /** + * @param networkDestinationIpV4 The destination IPv4 address of network-related information + * about a finding. + */ + public fun networkDestinationIpV4(vararg networkDestinationIpV4: Any) + + /** + * @param networkDestinationIpV6 The destination IPv6 address of network-related information + * about a finding. + */ + public fun networkDestinationIpV6(networkDestinationIpV6: IResolvable) + + /** + * @param networkDestinationIpV6 The destination IPv6 address of network-related information + * about a finding. + */ + public fun networkDestinationIpV6(networkDestinationIpV6: List) + + /** + * @param networkDestinationIpV6 The destination IPv6 address of network-related information + * about a finding. + */ + public fun networkDestinationIpV6(vararg networkDestinationIpV6: Any) + + /** + * @param networkDestinationPort The destination port of network-related information about a + * finding. + */ + public fun networkDestinationPort(networkDestinationPort: IResolvable) + + /** + * @param networkDestinationPort The destination port of network-related information about a + * finding. + */ + public fun networkDestinationPort(networkDestinationPort: List) + + /** + * @param networkDestinationPort The destination port of network-related information about a + * finding. + */ + public fun networkDestinationPort(vararg networkDestinationPort: Any) + + /** + * @param networkDirection Indicates the direction of network traffic associated with a + * finding. + */ + public fun networkDirection(networkDirection: IResolvable) + + /** + * @param networkDirection Indicates the direction of network traffic associated with a + * finding. + */ + public fun networkDirection(networkDirection: List) + + /** + * @param networkDirection Indicates the direction of network traffic associated with a + * finding. + */ + public fun networkDirection(vararg networkDirection: Any) + + /** + * @param networkProtocol The protocol of network-related information about a finding. + */ + public fun networkProtocol(networkProtocol: IResolvable) + + /** + * @param networkProtocol The protocol of network-related information about a finding. + */ + public fun networkProtocol(networkProtocol: List) + + /** + * @param networkProtocol The protocol of network-related information about a finding. + */ + public fun networkProtocol(vararg networkProtocol: Any) + + /** + * @param networkSourceDomain The source domain of network-related information about a + * finding. + */ + public fun networkSourceDomain(networkSourceDomain: IResolvable) + + /** + * @param networkSourceDomain The source domain of network-related information about a + * finding. + */ + public fun networkSourceDomain(networkSourceDomain: List) + + /** + * @param networkSourceDomain The source domain of network-related information about a + * finding. + */ + public fun networkSourceDomain(vararg networkSourceDomain: Any) + + /** + * @param networkSourceIpV4 The source IPv4 address of network-related information about a + * finding. + */ + public fun networkSourceIpV4(networkSourceIpV4: IResolvable) + + /** + * @param networkSourceIpV4 The source IPv4 address of network-related information about a + * finding. + */ + public fun networkSourceIpV4(networkSourceIpV4: List) + + /** + * @param networkSourceIpV4 The source IPv4 address of network-related information about a + * finding. + */ + public fun networkSourceIpV4(vararg networkSourceIpV4: Any) + + /** + * @param networkSourceIpV6 The source IPv6 address of network-related information about a + * finding. + */ + public fun networkSourceIpV6(networkSourceIpV6: IResolvable) + + /** + * @param networkSourceIpV6 The source IPv6 address of network-related information about a + * finding. + */ + public fun networkSourceIpV6(networkSourceIpV6: List) + + /** + * @param networkSourceIpV6 The source IPv6 address of network-related information about a + * finding. + */ + public fun networkSourceIpV6(vararg networkSourceIpV6: Any) + + /** + * @param networkSourceMac The source media access control (MAC) address of network-related + * information about a finding. + */ + public fun networkSourceMac(networkSourceMac: IResolvable) + + /** + * @param networkSourceMac The source media access control (MAC) address of network-related + * information about a finding. + */ + public fun networkSourceMac(networkSourceMac: List) + + /** + * @param networkSourceMac The source media access control (MAC) address of network-related + * information about a finding. + */ + public fun networkSourceMac(vararg networkSourceMac: Any) + + /** + * @param networkSourcePort The source port of network-related information about a finding. + */ + public fun networkSourcePort(networkSourcePort: IResolvable) + + /** + * @param networkSourcePort The source port of network-related information about a finding. + */ + public fun networkSourcePort(networkSourcePort: List) + + /** + * @param networkSourcePort The source port of network-related information about a finding. + */ + public fun networkSourcePort(vararg networkSourcePort: Any) + + /** + * @param noteText The text of a note. + */ + public fun noteText(noteText: IResolvable) + + /** + * @param noteText The text of a note. + */ + public fun noteText(noteText: List) + + /** + * @param noteText The text of a note. + */ + public fun noteText(vararg noteText: Any) + + /** + * @param noteUpdatedAt The timestamp of when the note was updated. + */ + public fun noteUpdatedAt(noteUpdatedAt: IResolvable) + + /** + * @param noteUpdatedAt The timestamp of when the note was updated. + */ + public fun noteUpdatedAt(noteUpdatedAt: List) + + /** + * @param noteUpdatedAt The timestamp of when the note was updated. + */ + public fun noteUpdatedAt(vararg noteUpdatedAt: Any) + + /** + * @param noteUpdatedBy The principal that created a note. + */ + public fun noteUpdatedBy(noteUpdatedBy: IResolvable) + + /** + * @param noteUpdatedBy The principal that created a note. + */ + public fun noteUpdatedBy(noteUpdatedBy: List) + + /** + * @param noteUpdatedBy The principal that created a note. + */ + public fun noteUpdatedBy(vararg noteUpdatedBy: Any) + + /** + * @param processLaunchedAt A timestamp that identifies when the process was launched. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + public fun processLaunchedAt(processLaunchedAt: IResolvable) + + /** + * @param processLaunchedAt A timestamp that identifies when the process was launched. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + public fun processLaunchedAt(processLaunchedAt: List) + + /** + * @param processLaunchedAt A timestamp that identifies when the process was launched. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + public fun processLaunchedAt(vararg processLaunchedAt: Any) + + /** + * @param processName The name of the process. + */ + public fun processName(processName: IResolvable) + + /** + * @param processName The name of the process. + */ + public fun processName(processName: List) + + /** + * @param processName The name of the process. + */ + public fun processName(vararg processName: Any) + + /** + * @param processParentPid The parent process ID. + * This field accepts positive integers between `O` and `2147483647` . + */ + public fun processParentPid(processParentPid: IResolvable) + + /** + * @param processParentPid The parent process ID. + * This field accepts positive integers between `O` and `2147483647` . + */ + public fun processParentPid(processParentPid: List) + + /** + * @param processParentPid The parent process ID. + * This field accepts positive integers between `O` and `2147483647` . + */ + public fun processParentPid(vararg processParentPid: Any) + + /** + * @param processPath The path to the process executable. + */ + public fun processPath(processPath: IResolvable) + + /** + * @param processPath The path to the process executable. + */ + public fun processPath(processPath: List) + + /** + * @param processPath The path to the process executable. + */ + public fun processPath(vararg processPath: Any) + + /** + * @param processPid The process ID. + */ + public fun processPid(processPid: IResolvable) + + /** + * @param processPid The process ID. + */ + public fun processPid(processPid: List) + + /** + * @param processPid The process ID. + */ + public fun processPid(vararg processPid: Any) + + /** + * @param processTerminatedAt A timestamp that identifies when the process was terminated. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + public fun processTerminatedAt(processTerminatedAt: IResolvable) + + /** + * @param processTerminatedAt A timestamp that identifies when the process was terminated. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + public fun processTerminatedAt(processTerminatedAt: List) + + /** + * @param processTerminatedAt A timestamp that identifies when the process was terminated. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + public fun processTerminatedAt(vararg processTerminatedAt: Any) + + /** + * @param productArn The ARN generated by Security Hub that uniquely identifies a third-party + * company (security findings provider) after this provider's product (solution that generates + * findings) is registered with Security Hub. + */ + public fun productArn(productArn: IResolvable) + + /** + * @param productArn The ARN generated by Security Hub that uniquely identifies a third-party + * company (security findings provider) after this provider's product (solution that generates + * findings) is registered with Security Hub. + */ + public fun productArn(productArn: List) + + /** + * @param productArn The ARN generated by Security Hub that uniquely identifies a third-party + * company (security findings provider) after this provider's product (solution that generates + * findings) is registered with Security Hub. + */ + public fun productArn(vararg productArn: Any) + + /** + * @param productFields A data type where security findings providers can include additional + * solution-specific details that aren't part of the defined `AwsSecurityFinding` format. + */ + public fun productFields(productFields: IResolvable) + + /** + * @param productFields A data type where security findings providers can include additional + * solution-specific details that aren't part of the defined `AwsSecurityFinding` format. + */ + public fun productFields(productFields: List) + + /** + * @param productFields A data type where security findings providers can include additional + * solution-specific details that aren't part of the defined `AwsSecurityFinding` format. + */ + public fun productFields(vararg productFields: Any) + + /** + * @param productName The name of the solution (product) that generates findings. + */ + public fun productName(productName: IResolvable) + + /** + * @param productName The name of the solution (product) that generates findings. + */ + public fun productName(productName: List) + + /** + * @param productName The name of the solution (product) that generates findings. + */ + public fun productName(vararg productName: Any) + + /** + * @param recommendationText The recommendation of what to do about the issue described in a + * finding. + */ + public fun recommendationText(recommendationText: IResolvable) + + /** + * @param recommendationText The recommendation of what to do about the issue described in a + * finding. + */ + public fun recommendationText(recommendationText: List) + + /** + * @param recommendationText The recommendation of what to do about the issue described in a + * finding. + */ + public fun recommendationText(vararg recommendationText: Any) + + /** + * @param recordState The updated record state for the finding. + */ + public fun recordState(recordState: IResolvable) + + /** + * @param recordState The updated record state for the finding. + */ + public fun recordState(recordState: List) + + /** + * @param recordState The updated record state for the finding. + */ + public fun recordState(vararg recordState: Any) + + /** + * @param region The Region from which the finding was generated. + */ + public fun region(region: IResolvable) + + /** + * @param region The Region from which the finding was generated. + */ + public fun region(region: List) + + /** + * @param region The Region from which the finding was generated. + */ + public fun region(vararg region: Any) + + /** + * @param relatedFindingsId The solution-generated identifier for a related finding. + */ + public fun relatedFindingsId(relatedFindingsId: IResolvable) + + /** + * @param relatedFindingsId The solution-generated identifier for a related finding. + */ + public fun relatedFindingsId(relatedFindingsId: List) + + /** + * @param relatedFindingsId The solution-generated identifier for a related finding. + */ + public fun relatedFindingsId(vararg relatedFindingsId: Any) + + /** + * @param relatedFindingsProductArn The ARN of the solution that generated a related finding. + */ + public fun relatedFindingsProductArn(relatedFindingsProductArn: IResolvable) + + /** + * @param relatedFindingsProductArn The ARN of the solution that generated a related finding. + */ + public fun relatedFindingsProductArn(relatedFindingsProductArn: List) + + /** + * @param relatedFindingsProductArn The ARN of the solution that generated a related finding. + */ + public fun relatedFindingsProductArn(vararg relatedFindingsProductArn: Any) + + /** + * @param resourceApplicationArn The ARN of the application that is related to a finding. + */ + public fun resourceApplicationArn(resourceApplicationArn: IResolvable) + + /** + * @param resourceApplicationArn The ARN of the application that is related to a finding. + */ + public fun resourceApplicationArn(resourceApplicationArn: List) + + /** + * @param resourceApplicationArn The ARN of the application that is related to a finding. + */ + public fun resourceApplicationArn(vararg resourceApplicationArn: Any) + + /** + * @param resourceApplicationName The name of the application that is related to a finding. + */ + public fun resourceApplicationName(resourceApplicationName: IResolvable) + + /** + * @param resourceApplicationName The name of the application that is related to a finding. + */ + public fun resourceApplicationName(resourceApplicationName: List) + + /** + * @param resourceApplicationName The name of the application that is related to a finding. + */ + public fun resourceApplicationName(vararg resourceApplicationName: Any) + + /** + * @param resourceAwsEc2InstanceIamInstanceProfileArn The IAM profile ARN of the instance. + */ + public + fun resourceAwsEc2InstanceIamInstanceProfileArn(resourceAwsEc2InstanceIamInstanceProfileArn: IResolvable) + + /** + * @param resourceAwsEc2InstanceIamInstanceProfileArn The IAM profile ARN of the instance. + */ + public + fun resourceAwsEc2InstanceIamInstanceProfileArn(resourceAwsEc2InstanceIamInstanceProfileArn: List) + + /** + * @param resourceAwsEc2InstanceIamInstanceProfileArn The IAM profile ARN of the instance. + */ + public fun resourceAwsEc2InstanceIamInstanceProfileArn(vararg + resourceAwsEc2InstanceIamInstanceProfileArn: Any) + + /** + * @param resourceAwsEc2InstanceImageId The Amazon Machine Image (AMI) ID of the instance. + */ + public fun resourceAwsEc2InstanceImageId(resourceAwsEc2InstanceImageId: IResolvable) + + /** + * @param resourceAwsEc2InstanceImageId The Amazon Machine Image (AMI) ID of the instance. + */ + public fun resourceAwsEc2InstanceImageId(resourceAwsEc2InstanceImageId: List) + + /** + * @param resourceAwsEc2InstanceImageId The Amazon Machine Image (AMI) ID of the instance. + */ + public fun resourceAwsEc2InstanceImageId(vararg resourceAwsEc2InstanceImageId: Any) + + /** + * @param resourceAwsEc2InstanceIpV4Addresses The IPv4 addresses associated with the instance. + */ + public + fun resourceAwsEc2InstanceIpV4Addresses(resourceAwsEc2InstanceIpV4Addresses: IResolvable) + + /** + * @param resourceAwsEc2InstanceIpV4Addresses The IPv4 addresses associated with the instance. + */ + public fun resourceAwsEc2InstanceIpV4Addresses(resourceAwsEc2InstanceIpV4Addresses: List) + + /** + * @param resourceAwsEc2InstanceIpV4Addresses The IPv4 addresses associated with the instance. + */ + public fun resourceAwsEc2InstanceIpV4Addresses(vararg + resourceAwsEc2InstanceIpV4Addresses: Any) + + /** + * @param resourceAwsEc2InstanceIpV6Addresses The IPv6 addresses associated with the instance. + */ + public + fun resourceAwsEc2InstanceIpV6Addresses(resourceAwsEc2InstanceIpV6Addresses: IResolvable) + + /** + * @param resourceAwsEc2InstanceIpV6Addresses The IPv6 addresses associated with the instance. + */ + public fun resourceAwsEc2InstanceIpV6Addresses(resourceAwsEc2InstanceIpV6Addresses: List) + + /** + * @param resourceAwsEc2InstanceIpV6Addresses The IPv6 addresses associated with the instance. + */ + public fun resourceAwsEc2InstanceIpV6Addresses(vararg + resourceAwsEc2InstanceIpV6Addresses: Any) + + /** + * @param resourceAwsEc2InstanceKeyName The key name associated with the instance. + */ + public fun resourceAwsEc2InstanceKeyName(resourceAwsEc2InstanceKeyName: IResolvable) + + /** + * @param resourceAwsEc2InstanceKeyName The key name associated with the instance. + */ + public fun resourceAwsEc2InstanceKeyName(resourceAwsEc2InstanceKeyName: List) + + /** + * @param resourceAwsEc2InstanceKeyName The key name associated with the instance. + */ + public fun resourceAwsEc2InstanceKeyName(vararg resourceAwsEc2InstanceKeyName: Any) + + /** + * @param resourceAwsEc2InstanceLaunchedAt The date and time the instance was launched. + */ + public fun resourceAwsEc2InstanceLaunchedAt(resourceAwsEc2InstanceLaunchedAt: IResolvable) + + /** + * @param resourceAwsEc2InstanceLaunchedAt The date and time the instance was launched. + */ + public fun resourceAwsEc2InstanceLaunchedAt(resourceAwsEc2InstanceLaunchedAt: List) + + /** + * @param resourceAwsEc2InstanceLaunchedAt The date and time the instance was launched. + */ + public fun resourceAwsEc2InstanceLaunchedAt(vararg resourceAwsEc2InstanceLaunchedAt: Any) + + /** + * @param resourceAwsEc2InstanceSubnetId The identifier of the subnet that the instance was + * launched in. + */ + public fun resourceAwsEc2InstanceSubnetId(resourceAwsEc2InstanceSubnetId: IResolvable) + + /** + * @param resourceAwsEc2InstanceSubnetId The identifier of the subnet that the instance was + * launched in. + */ + public fun resourceAwsEc2InstanceSubnetId(resourceAwsEc2InstanceSubnetId: List) + + /** + * @param resourceAwsEc2InstanceSubnetId The identifier of the subnet that the instance was + * launched in. + */ + public fun resourceAwsEc2InstanceSubnetId(vararg resourceAwsEc2InstanceSubnetId: Any) + + /** + * @param resourceAwsEc2InstanceType The instance type of the instance. + */ + public fun resourceAwsEc2InstanceType(resourceAwsEc2InstanceType: IResolvable) + + /** + * @param resourceAwsEc2InstanceType The instance type of the instance. + */ + public fun resourceAwsEc2InstanceType(resourceAwsEc2InstanceType: List) + + /** + * @param resourceAwsEc2InstanceType The instance type of the instance. + */ + public fun resourceAwsEc2InstanceType(vararg resourceAwsEc2InstanceType: Any) + + /** + * @param resourceAwsEc2InstanceVpcId The identifier of the VPC that the instance was launched + * in. + */ + public fun resourceAwsEc2InstanceVpcId(resourceAwsEc2InstanceVpcId: IResolvable) + + /** + * @param resourceAwsEc2InstanceVpcId The identifier of the VPC that the instance was launched + * in. + */ + public fun resourceAwsEc2InstanceVpcId(resourceAwsEc2InstanceVpcId: List) + + /** + * @param resourceAwsEc2InstanceVpcId The identifier of the VPC that the instance was launched + * in. + */ + public fun resourceAwsEc2InstanceVpcId(vararg resourceAwsEc2InstanceVpcId: Any) + + /** + * @param resourceAwsIamAccessKeyCreatedAt The creation date/time of the IAM access key + * related to a finding. + */ + public fun resourceAwsIamAccessKeyCreatedAt(resourceAwsIamAccessKeyCreatedAt: IResolvable) + + /** + * @param resourceAwsIamAccessKeyCreatedAt The creation date/time of the IAM access key + * related to a finding. + */ + public fun resourceAwsIamAccessKeyCreatedAt(resourceAwsIamAccessKeyCreatedAt: List) + + /** + * @param resourceAwsIamAccessKeyCreatedAt The creation date/time of the IAM access key + * related to a finding. + */ + public fun resourceAwsIamAccessKeyCreatedAt(vararg resourceAwsIamAccessKeyCreatedAt: Any) + + /** + * @param resourceAwsIamAccessKeyPrincipalName The name of the principal that is associated + * with an IAM access key. + */ + public + fun resourceAwsIamAccessKeyPrincipalName(resourceAwsIamAccessKeyPrincipalName: IResolvable) + + /** + * @param resourceAwsIamAccessKeyPrincipalName The name of the principal that is associated + * with an IAM access key. + */ + public + fun resourceAwsIamAccessKeyPrincipalName(resourceAwsIamAccessKeyPrincipalName: List) + + /** + * @param resourceAwsIamAccessKeyPrincipalName The name of the principal that is associated + * with an IAM access key. + */ + public fun resourceAwsIamAccessKeyPrincipalName(vararg + resourceAwsIamAccessKeyPrincipalName: Any) + + /** + * @param resourceAwsIamAccessKeyStatus The status of the IAM access key related to a finding. + */ + public fun resourceAwsIamAccessKeyStatus(resourceAwsIamAccessKeyStatus: IResolvable) + + /** + * @param resourceAwsIamAccessKeyStatus The status of the IAM access key related to a finding. + */ + public fun resourceAwsIamAccessKeyStatus(resourceAwsIamAccessKeyStatus: List) + + /** + * @param resourceAwsIamAccessKeyStatus The status of the IAM access key related to a finding. + */ + public fun resourceAwsIamAccessKeyStatus(vararg resourceAwsIamAccessKeyStatus: Any) + + /** + * @param resourceAwsIamAccessKeyUserName This field is deprecated. + * The username associated with the IAM access key related to a finding. + */ + public fun resourceAwsIamAccessKeyUserName(resourceAwsIamAccessKeyUserName: IResolvable) + + /** + * @param resourceAwsIamAccessKeyUserName This field is deprecated. + * The username associated with the IAM access key related to a finding. + */ + public fun resourceAwsIamAccessKeyUserName(resourceAwsIamAccessKeyUserName: List) + + /** + * @param resourceAwsIamAccessKeyUserName This field is deprecated. + * The username associated with the IAM access key related to a finding. + */ + public fun resourceAwsIamAccessKeyUserName(vararg resourceAwsIamAccessKeyUserName: Any) + + /** + * @param resourceAwsIamUserUserName The name of an IAM user. + */ + public fun resourceAwsIamUserUserName(resourceAwsIamUserUserName: IResolvable) + + /** + * @param resourceAwsIamUserUserName The name of an IAM user. + */ + public fun resourceAwsIamUserUserName(resourceAwsIamUserUserName: List) + + /** + * @param resourceAwsIamUserUserName The name of an IAM user. + */ + public fun resourceAwsIamUserUserName(vararg resourceAwsIamUserUserName: Any) + + /** + * @param resourceAwsS3BucketOwnerId The canonical user ID of the owner of the S3 bucket. + */ + public fun resourceAwsS3BucketOwnerId(resourceAwsS3BucketOwnerId: IResolvable) + + /** + * @param resourceAwsS3BucketOwnerId The canonical user ID of the owner of the S3 bucket. + */ + public fun resourceAwsS3BucketOwnerId(resourceAwsS3BucketOwnerId: List) + + /** + * @param resourceAwsS3BucketOwnerId The canonical user ID of the owner of the S3 bucket. + */ + public fun resourceAwsS3BucketOwnerId(vararg resourceAwsS3BucketOwnerId: Any) + + /** + * @param resourceAwsS3BucketOwnerName The display name of the owner of the S3 bucket. + */ + public fun resourceAwsS3BucketOwnerName(resourceAwsS3BucketOwnerName: IResolvable) + + /** + * @param resourceAwsS3BucketOwnerName The display name of the owner of the S3 bucket. + */ + public fun resourceAwsS3BucketOwnerName(resourceAwsS3BucketOwnerName: List) + + /** + * @param resourceAwsS3BucketOwnerName The display name of the owner of the S3 bucket. + */ + public fun resourceAwsS3BucketOwnerName(vararg resourceAwsS3BucketOwnerName: Any) + + /** + * @param resourceContainerImageId The identifier of the image related to a finding. + */ + public fun resourceContainerImageId(resourceContainerImageId: IResolvable) + + /** + * @param resourceContainerImageId The identifier of the image related to a finding. + */ + public fun resourceContainerImageId(resourceContainerImageId: List) + + /** + * @param resourceContainerImageId The identifier of the image related to a finding. + */ + public fun resourceContainerImageId(vararg resourceContainerImageId: Any) + + /** + * @param resourceContainerImageName The name of the image related to a finding. + */ + public fun resourceContainerImageName(resourceContainerImageName: IResolvable) + + /** + * @param resourceContainerImageName The name of the image related to a finding. + */ + public fun resourceContainerImageName(resourceContainerImageName: List) + + /** + * @param resourceContainerImageName The name of the image related to a finding. + */ + public fun resourceContainerImageName(vararg resourceContainerImageName: Any) + + /** + * @param resourceContainerLaunchedAt A timestamp that identifies when the container was + * started. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + public fun resourceContainerLaunchedAt(resourceContainerLaunchedAt: IResolvable) + + /** + * @param resourceContainerLaunchedAt A timestamp that identifies when the container was + * started. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + public fun resourceContainerLaunchedAt(resourceContainerLaunchedAt: List) + + /** + * @param resourceContainerLaunchedAt A timestamp that identifies when the container was + * started. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + public fun resourceContainerLaunchedAt(vararg resourceContainerLaunchedAt: Any) + + /** + * @param resourceContainerName The name of the container related to a finding. + */ + public fun resourceContainerName(resourceContainerName: IResolvable) + + /** + * @param resourceContainerName The name of the container related to a finding. + */ + public fun resourceContainerName(resourceContainerName: List) + + /** + * @param resourceContainerName The name of the container related to a finding. + */ + public fun resourceContainerName(vararg resourceContainerName: Any) + + /** + * @param resourceDetailsOther The details of a resource that doesn't have a specific subfield + * for the resource type defined. + */ + public fun resourceDetailsOther(resourceDetailsOther: IResolvable) + + /** + * @param resourceDetailsOther The details of a resource that doesn't have a specific subfield + * for the resource type defined. + */ + public fun resourceDetailsOther(resourceDetailsOther: List) + + /** + * @param resourceDetailsOther The details of a resource that doesn't have a specific subfield + * for the resource type defined. + */ + public fun resourceDetailsOther(vararg resourceDetailsOther: Any) + + /** + * @param resourceId The canonical identifier for the given resource type. + */ + public fun resourceId(resourceId: IResolvable) + + /** + * @param resourceId The canonical identifier for the given resource type. + */ + public fun resourceId(resourceId: List) + + /** + * @param resourceId The canonical identifier for the given resource type. + */ + public fun resourceId(vararg resourceId: Any) + + /** + * @param resourcePartition The canonical AWS partition name that the Region is assigned to. + */ + public fun resourcePartition(resourcePartition: IResolvable) + + /** + * @param resourcePartition The canonical AWS partition name that the Region is assigned to. + */ + public fun resourcePartition(resourcePartition: List) + + /** + * @param resourcePartition The canonical AWS partition name that the Region is assigned to. + */ + public fun resourcePartition(vararg resourcePartition: Any) + + /** + * @param resourceRegion The canonical AWS external Region name where this resource is + * located. + */ + public fun resourceRegion(resourceRegion: IResolvable) + + /** + * @param resourceRegion The canonical AWS external Region name where this resource is + * located. + */ + public fun resourceRegion(resourceRegion: List) + + /** + * @param resourceRegion The canonical AWS external Region name where this resource is + * located. + */ + public fun resourceRegion(vararg resourceRegion: Any) + + /** + * @param resourceTags A list of AWS tags associated with a resource at the time the finding + * was processed. + */ + public fun resourceTags(resourceTags: IResolvable) + + /** + * @param resourceTags A list of AWS tags associated with a resource at the time the finding + * was processed. + */ + public fun resourceTags(resourceTags: List) + + /** + * @param resourceTags A list of AWS tags associated with a resource at the time the finding + * was processed. + */ + public fun resourceTags(vararg resourceTags: Any) + + /** + * @param resourceType Specifies the type of the resource that details are provided for. + */ + public fun resourceType(resourceType: IResolvable) + + /** + * @param resourceType Specifies the type of the resource that details are provided for. + */ + public fun resourceType(resourceType: List) + + /** + * @param resourceType Specifies the type of the resource that details are provided for. + */ + public fun resourceType(vararg resourceType: Any) + + /** + * @param sample Indicates whether or not sample findings are included in the filter results. + */ + public fun sample(sample: IResolvable) + + /** + * @param sample Indicates whether or not sample findings are included in the filter results. + */ + public fun sample(sample: List) + + /** + * @param sample Indicates whether or not sample findings are included in the filter results. + */ + public fun sample(vararg sample: Any) + + /** + * @param severityLabel The label of a finding's severity. + */ + public fun severityLabel(severityLabel: IResolvable) + + /** + * @param severityLabel The label of a finding's severity. + */ + public fun severityLabel(severityLabel: List) + + /** + * @param severityLabel The label of a finding's severity. + */ + public fun severityLabel(vararg severityLabel: Any) + + /** + * @param severityNormalized Deprecated. The normalized severity of a finding. Instead of + * providing `Normalized` , provide `Label` . + * If you provide `Label` and do not provide `Normalized` , then `Normalized` is set + * automatically as follows. + * + * * `INFORMATIONAL` - 0 + * * `LOW` - 1 + * * `MEDIUM` - 40 + * * `HIGH` - 70 + * * `CRITICAL` - 90 + */ + public fun severityNormalized(severityNormalized: IResolvable) + + /** + * @param severityNormalized Deprecated. The normalized severity of a finding. Instead of + * providing `Normalized` , provide `Label` . + * If you provide `Label` and do not provide `Normalized` , then `Normalized` is set + * automatically as follows. + * + * * `INFORMATIONAL` - 0 + * * `LOW` - 1 + * * `MEDIUM` - 40 + * * `HIGH` - 70 + * * `CRITICAL` - 90 + */ + public fun severityNormalized(severityNormalized: List) + + /** + * @param severityNormalized Deprecated. The normalized severity of a finding. Instead of + * providing `Normalized` , provide `Label` . + * If you provide `Label` and do not provide `Normalized` , then `Normalized` is set + * automatically as follows. + * + * * `INFORMATIONAL` - 0 + * * `LOW` - 1 + * * `MEDIUM` - 40 + * * `HIGH` - 70 + * * `CRITICAL` - 90 + */ + public fun severityNormalized(vararg severityNormalized: Any) + + /** + * @param severityProduct Deprecated. This attribute isn't included in findings. Instead of + * providing `Product` , provide `Original` . + * The native severity as defined by the AWS service or integrated partner product that + * generated the finding. + */ + public fun severityProduct(severityProduct: IResolvable) + + /** + * @param severityProduct Deprecated. This attribute isn't included in findings. Instead of + * providing `Product` , provide `Original` . + * The native severity as defined by the AWS service or integrated partner product that + * generated the finding. + */ + public fun severityProduct(severityProduct: List) + + /** + * @param severityProduct Deprecated. This attribute isn't included in findings. Instead of + * providing `Product` , provide `Original` . + * The native severity as defined by the AWS service or integrated partner product that + * generated the finding. + */ + public fun severityProduct(vararg severityProduct: Any) + + /** + * @param sourceUrl A URL that links to a page about the current finding in the security + * findings provider's solution. + */ + public fun sourceUrl(sourceUrl: IResolvable) + + /** + * @param sourceUrl A URL that links to a page about the current finding in the security + * findings provider's solution. + */ + public fun sourceUrl(sourceUrl: List) + + /** + * @param sourceUrl A URL that links to a page about the current finding in the security + * findings provider's solution. + */ + public fun sourceUrl(vararg sourceUrl: Any) + + /** + * @param threatIntelIndicatorCategory The category of a threat intelligence indicator. + */ + public fun threatIntelIndicatorCategory(threatIntelIndicatorCategory: IResolvable) + + /** + * @param threatIntelIndicatorCategory The category of a threat intelligence indicator. + */ + public fun threatIntelIndicatorCategory(threatIntelIndicatorCategory: List) + + /** + * @param threatIntelIndicatorCategory The category of a threat intelligence indicator. + */ + public fun threatIntelIndicatorCategory(vararg threatIntelIndicatorCategory: Any) + + /** + * @param threatIntelIndicatorLastObservedAt A timestamp that identifies the last observation + * of a threat intelligence indicator. + */ + public fun threatIntelIndicatorLastObservedAt(threatIntelIndicatorLastObservedAt: IResolvable) + + /** + * @param threatIntelIndicatorLastObservedAt A timestamp that identifies the last observation + * of a threat intelligence indicator. + */ + public fun threatIntelIndicatorLastObservedAt(threatIntelIndicatorLastObservedAt: List) + + /** + * @param threatIntelIndicatorLastObservedAt A timestamp that identifies the last observation + * of a threat intelligence indicator. + */ + public fun threatIntelIndicatorLastObservedAt(vararg threatIntelIndicatorLastObservedAt: Any) + + /** + * @param threatIntelIndicatorSource The source of the threat intelligence. + */ + public fun threatIntelIndicatorSource(threatIntelIndicatorSource: IResolvable) + + /** + * @param threatIntelIndicatorSource The source of the threat intelligence. + */ + public fun threatIntelIndicatorSource(threatIntelIndicatorSource: List) + + /** + * @param threatIntelIndicatorSource The source of the threat intelligence. + */ + public fun threatIntelIndicatorSource(vararg threatIntelIndicatorSource: Any) + + /** + * @param threatIntelIndicatorSourceUrl The URL for more details from the source of the threat + * intelligence. + */ + public fun threatIntelIndicatorSourceUrl(threatIntelIndicatorSourceUrl: IResolvable) + + /** + * @param threatIntelIndicatorSourceUrl The URL for more details from the source of the threat + * intelligence. + */ + public fun threatIntelIndicatorSourceUrl(threatIntelIndicatorSourceUrl: List) + + /** + * @param threatIntelIndicatorSourceUrl The URL for more details from the source of the threat + * intelligence. + */ + public fun threatIntelIndicatorSourceUrl(vararg threatIntelIndicatorSourceUrl: Any) + + /** + * @param threatIntelIndicatorType The type of a threat intelligence indicator. + */ + public fun threatIntelIndicatorType(threatIntelIndicatorType: IResolvable) + + /** + * @param threatIntelIndicatorType The type of a threat intelligence indicator. + */ + public fun threatIntelIndicatorType(threatIntelIndicatorType: List) + + /** + * @param threatIntelIndicatorType The type of a threat intelligence indicator. + */ + public fun threatIntelIndicatorType(vararg threatIntelIndicatorType: Any) + + /** + * @param threatIntelIndicatorValue The value of a threat intelligence indicator. + */ + public fun threatIntelIndicatorValue(threatIntelIndicatorValue: IResolvable) + + /** + * @param threatIntelIndicatorValue The value of a threat intelligence indicator. + */ + public fun threatIntelIndicatorValue(threatIntelIndicatorValue: List) + + /** + * @param threatIntelIndicatorValue The value of a threat intelligence indicator. + */ + public fun threatIntelIndicatorValue(vararg threatIntelIndicatorValue: Any) + + /** + * @param title A finding's title. + */ + public fun title(title: IResolvable) + + /** + * @param title A finding's title. + */ + public fun title(title: List) + + /** + * @param title A finding's title. + */ + public fun title(vararg title: Any) + + /** + * @param type A finding type in the format of `namespace/category/classifier` that classifies + * a finding. + */ + public fun type(type: IResolvable) + + /** + * @param type A finding type in the format of `namespace/category/classifier` that classifies + * a finding. + */ + public fun type(type: List) + + /** + * @param type A finding type in the format of `namespace/category/classifier` that classifies + * a finding. + */ + public fun type(vararg type: Any) + + /** + * @param updatedAt A timestamp that indicates when the security findings provider last + * updated the finding record. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + public fun updatedAt(updatedAt: IResolvable) + + /** + * @param updatedAt A timestamp that indicates when the security findings provider last + * updated the finding record. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + public fun updatedAt(updatedAt: List) + + /** + * @param updatedAt A timestamp that indicates when the security findings provider last + * updated the finding record. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + public fun updatedAt(vararg updatedAt: Any) + + /** + * @param userDefinedFields A list of name/value string pairs associated with the finding. + * These are custom, user-defined fields added to a finding. + */ + public fun userDefinedFields(userDefinedFields: IResolvable) + + /** + * @param userDefinedFields A list of name/value string pairs associated with the finding. + * These are custom, user-defined fields added to a finding. + */ + public fun userDefinedFields(userDefinedFields: List) + + /** + * @param userDefinedFields A list of name/value string pairs associated with the finding. + * These are custom, user-defined fields added to a finding. + */ + public fun userDefinedFields(vararg userDefinedFields: Any) + + /** + * @param verificationState The veracity of a finding. + */ + public fun verificationState(verificationState: IResolvable) + + /** + * @param verificationState The veracity of a finding. + */ + public fun verificationState(verificationState: List) + + /** + * @param verificationState The veracity of a finding. + */ + public fun verificationState(vararg verificationState: Any) + + /** + * @param vulnerabilitiesExploitAvailable Indicates whether a software vulnerability in your + * environment has a known exploit. + * You can filter findings by this field only if you use Security Hub and Amazon Inspector. + */ + public fun vulnerabilitiesExploitAvailable(vulnerabilitiesExploitAvailable: IResolvable) + + /** + * @param vulnerabilitiesExploitAvailable Indicates whether a software vulnerability in your + * environment has a known exploit. + * You can filter findings by this field only if you use Security Hub and Amazon Inspector. + */ + public fun vulnerabilitiesExploitAvailable(vulnerabilitiesExploitAvailable: List) + + /** + * @param vulnerabilitiesExploitAvailable Indicates whether a software vulnerability in your + * environment has a known exploit. + * You can filter findings by this field only if you use Security Hub and Amazon Inspector. + */ + public fun vulnerabilitiesExploitAvailable(vararg vulnerabilitiesExploitAvailable: Any) + + /** + * @param vulnerabilitiesFixAvailable Indicates whether a vulnerability is fixed in a newer + * version of the affected software packages. + * You can filter findings by this field only if you use Security Hub and Amazon Inspector. + */ + public fun vulnerabilitiesFixAvailable(vulnerabilitiesFixAvailable: IResolvable) + + /** + * @param vulnerabilitiesFixAvailable Indicates whether a vulnerability is fixed in a newer + * version of the affected software packages. + * You can filter findings by this field only if you use Security Hub and Amazon Inspector. + */ + public fun vulnerabilitiesFixAvailable(vulnerabilitiesFixAvailable: List) + + /** + * @param vulnerabilitiesFixAvailable Indicates whether a vulnerability is fixed in a newer + * version of the affected software packages. + * You can filter findings by this field only if you use Security Hub and Amazon Inspector. + */ + public fun vulnerabilitiesFixAvailable(vararg vulnerabilitiesFixAvailable: Any) + + /** + * @param workflowState The workflow state of a finding. + * Note that this field is deprecated. To search for a finding based on its workflow status, + * use `WorkflowStatus` . + */ + public fun workflowState(workflowState: IResolvable) + + /** + * @param workflowState The workflow state of a finding. + * Note that this field is deprecated. To search for a finding based on its workflow status, + * use `WorkflowStatus` . + */ + public fun workflowState(workflowState: List) + + /** + * @param workflowState The workflow state of a finding. + * Note that this field is deprecated. To search for a finding based on its workflow status, + * use `WorkflowStatus` . + */ + public fun workflowState(vararg workflowState: Any) + + /** + * @param workflowStatus The status of the investigation into a finding. Allowed values are + * the following. + * * `NEW` - The initial state of a finding, before it is reviewed. + * + * Security Hub also resets the workflow status from `NOTIFIED` or `RESOLVED` to `NEW` in the + * following cases: + * + * * `RecordState` changes from `ARCHIVED` to `ACTIVE` . + * * `Compliance.Status` changes from `PASSED` to either `WARNING` , `FAILED` , or + * `NOT_AVAILABLE` . + * * `NOTIFIED` - Indicates that the resource owner has been notified about the security + * issue. Used when the initial reviewer is not the resource owner, and needs intervention from + * the resource owner. + * + * If one of the following occurs, the workflow status is changed automatically from + * `NOTIFIED` to `NEW` : + * + * * `RecordState` changes from `ARCHIVED` to `ACTIVE` . + * * `Compliance.Status` changes from `PASSED` to `FAILED` , `WARNING` , or `NOT_AVAILABLE` . + * * `SUPPRESSED` - Indicates that you reviewed the finding and do not believe that any action + * is needed. + * + * The workflow status of a `SUPPRESSED` finding does not change if `RecordState` changes from + * `ARCHIVED` to `ACTIVE` . + * + * * `RESOLVED` - The finding was reviewed and remediated and is now considered resolved. + * + * The finding remains `RESOLVED` unless one of the following occurs: + * + * * `RecordState` changes from `ARCHIVED` to `ACTIVE` . + * * `Compliance.Status` changes from `PASSED` to `FAILED` , `WARNING` , or `NOT_AVAILABLE` . + * + * In those cases, the workflow status is automatically reset to `NEW` . + * + * For findings from controls, if `Compliance.Status` is `PASSED` , then Security Hub + * automatically sets the workflow status to `RESOLVED` . + */ + public fun workflowStatus(workflowStatus: IResolvable) + + /** + * @param workflowStatus The status of the investigation into a finding. Allowed values are + * the following. + * * `NEW` - The initial state of a finding, before it is reviewed. + * + * Security Hub also resets the workflow status from `NOTIFIED` or `RESOLVED` to `NEW` in the + * following cases: + * + * * `RecordState` changes from `ARCHIVED` to `ACTIVE` . + * * `Compliance.Status` changes from `PASSED` to either `WARNING` , `FAILED` , or + * `NOT_AVAILABLE` . + * * `NOTIFIED` - Indicates that the resource owner has been notified about the security + * issue. Used when the initial reviewer is not the resource owner, and needs intervention from + * the resource owner. + * + * If one of the following occurs, the workflow status is changed automatically from + * `NOTIFIED` to `NEW` : + * + * * `RecordState` changes from `ARCHIVED` to `ACTIVE` . + * * `Compliance.Status` changes from `PASSED` to `FAILED` , `WARNING` , or `NOT_AVAILABLE` . + * * `SUPPRESSED` - Indicates that you reviewed the finding and do not believe that any action + * is needed. + * + * The workflow status of a `SUPPRESSED` finding does not change if `RecordState` changes from + * `ARCHIVED` to `ACTIVE` . + * + * * `RESOLVED` - The finding was reviewed and remediated and is now considered resolved. + * + * The finding remains `RESOLVED` unless one of the following occurs: + * + * * `RecordState` changes from `ARCHIVED` to `ACTIVE` . + * * `Compliance.Status` changes from `PASSED` to `FAILED` , `WARNING` , or `NOT_AVAILABLE` . + * + * In those cases, the workflow status is automatically reset to `NEW` . + * + * For findings from controls, if `Compliance.Status` is `PASSED` , then Security Hub + * automatically sets the workflow status to `RESOLVED` . + */ + public fun workflowStatus(workflowStatus: List) + + /** + * @param workflowStatus The status of the investigation into a finding. Allowed values are + * the following. + * * `NEW` - The initial state of a finding, before it is reviewed. + * + * Security Hub also resets the workflow status from `NOTIFIED` or `RESOLVED` to `NEW` in the + * following cases: + * + * * `RecordState` changes from `ARCHIVED` to `ACTIVE` . + * * `Compliance.Status` changes from `PASSED` to either `WARNING` , `FAILED` , or + * `NOT_AVAILABLE` . + * * `NOTIFIED` - Indicates that the resource owner has been notified about the security + * issue. Used when the initial reviewer is not the resource owner, and needs intervention from + * the resource owner. + * + * If one of the following occurs, the workflow status is changed automatically from + * `NOTIFIED` to `NEW` : + * + * * `RecordState` changes from `ARCHIVED` to `ACTIVE` . + * * `Compliance.Status` changes from `PASSED` to `FAILED` , `WARNING` , or `NOT_AVAILABLE` . + * * `SUPPRESSED` - Indicates that you reviewed the finding and do not believe that any action + * is needed. + * + * The workflow status of a `SUPPRESSED` finding does not change if `RecordState` changes from + * `ARCHIVED` to `ACTIVE` . + * + * * `RESOLVED` - The finding was reviewed and remediated and is now considered resolved. + * + * The finding remains `RESOLVED` unless one of the following occurs: + * + * * `RecordState` changes from `ARCHIVED` to `ACTIVE` . + * * `Compliance.Status` changes from `PASSED` to `FAILED` , `WARNING` , or `NOT_AVAILABLE` . + * + * In those cases, the workflow status is automatically reset to `NEW` . + * + * For findings from controls, if `Compliance.Status` is `PASSED` , then Security Hub + * automatically sets the workflow status to `RESOLVED` . + */ + public fun workflowStatus(vararg workflowStatus: Any) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.securityhub.CfnInsight.AwsSecurityFindingFiltersProperty.Builder + = + software.amazon.awscdk.services.securityhub.CfnInsight.AwsSecurityFindingFiltersProperty.builder() + + /** + * @param awsAccountId The AWS account ID in which a finding is generated. + */ + override fun awsAccountId(awsAccountId: IResolvable) { + cdkBuilder.awsAccountId(awsAccountId.let(IResolvable::unwrap)) + } + + /** + * @param awsAccountId The AWS account ID in which a finding is generated. + */ + override fun awsAccountId(awsAccountId: List) { + cdkBuilder.awsAccountId(awsAccountId.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param awsAccountId The AWS account ID in which a finding is generated. + */ + override fun awsAccountId(vararg awsAccountId: Any): Unit = + awsAccountId(awsAccountId.toList()) + + /** + * @param awsAccountName The name of the AWS account in which a finding is generated. + */ + override fun awsAccountName(awsAccountName: IResolvable) { + cdkBuilder.awsAccountName(awsAccountName.let(IResolvable::unwrap)) + } + + /** + * @param awsAccountName The name of the AWS account in which a finding is generated. + */ + override fun awsAccountName(awsAccountName: List) { + cdkBuilder.awsAccountName(awsAccountName.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param awsAccountName The name of the AWS account in which a finding is generated. + */ + override fun awsAccountName(vararg awsAccountName: Any): Unit = + awsAccountName(awsAccountName.toList()) + + /** + * @param companyName The name of the findings provider (company) that owns the solution + * (product) that generates findings. + */ + override fun companyName(companyName: IResolvable) { + cdkBuilder.companyName(companyName.let(IResolvable::unwrap)) + } + + /** + * @param companyName The name of the findings provider (company) that owns the solution + * (product) that generates findings. + */ + override fun companyName(companyName: List) { + cdkBuilder.companyName(companyName.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param companyName The name of the findings provider (company) that owns the solution + * (product) that generates findings. + */ + override fun companyName(vararg companyName: Any): Unit = companyName(companyName.toList()) + + /** + * @param complianceAssociatedStandardsId The unique identifier of a standard in which a + * control is enabled. + * This field consists of the resource portion of the Amazon Resource Name (ARN) returned for + * a standard in the + * [DescribeStandards](https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_DescribeStandards.html) + * API response. + */ + override fun complianceAssociatedStandardsId(complianceAssociatedStandardsId: IResolvable) { + cdkBuilder.complianceAssociatedStandardsId(complianceAssociatedStandardsId.let(IResolvable::unwrap)) + } + + /** + * @param complianceAssociatedStandardsId The unique identifier of a standard in which a + * control is enabled. + * This field consists of the resource portion of the Amazon Resource Name (ARN) returned for + * a standard in the + * [DescribeStandards](https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_DescribeStandards.html) + * API response. + */ + override fun complianceAssociatedStandardsId(complianceAssociatedStandardsId: List) { + cdkBuilder.complianceAssociatedStandardsId(complianceAssociatedStandardsId.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param complianceAssociatedStandardsId The unique identifier of a standard in which a + * control is enabled. + * This field consists of the resource portion of the Amazon Resource Name (ARN) returned for + * a standard in the + * [DescribeStandards](https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_DescribeStandards.html) + * API response. + */ + override fun complianceAssociatedStandardsId(vararg complianceAssociatedStandardsId: Any): + Unit = complianceAssociatedStandardsId(complianceAssociatedStandardsId.toList()) + + /** + * @param complianceSecurityControlId The unique identifier of a control across standards. + * Values for this field typically consist of an AWS service and a number, such as + * APIGateway.5. + */ + override fun complianceSecurityControlId(complianceSecurityControlId: IResolvable) { + cdkBuilder.complianceSecurityControlId(complianceSecurityControlId.let(IResolvable::unwrap)) + } + + /** + * @param complianceSecurityControlId The unique identifier of a control across standards. + * Values for this field typically consist of an AWS service and a number, such as + * APIGateway.5. + */ + override fun complianceSecurityControlId(complianceSecurityControlId: List) { + cdkBuilder.complianceSecurityControlId(complianceSecurityControlId.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param complianceSecurityControlId The unique identifier of a control across standards. + * Values for this field typically consist of an AWS service and a number, such as + * APIGateway.5. + */ + override fun complianceSecurityControlId(vararg complianceSecurityControlId: Any): Unit = + complianceSecurityControlId(complianceSecurityControlId.toList()) + + /** + * @param complianceSecurityControlParametersName The name of a security control parameter. + */ + override + fun complianceSecurityControlParametersName(complianceSecurityControlParametersName: IResolvable) { + cdkBuilder.complianceSecurityControlParametersName(complianceSecurityControlParametersName.let(IResolvable::unwrap)) + } + + /** + * @param complianceSecurityControlParametersName The name of a security control parameter. + */ + override + fun complianceSecurityControlParametersName(complianceSecurityControlParametersName: List) { + cdkBuilder.complianceSecurityControlParametersName(complianceSecurityControlParametersName.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param complianceSecurityControlParametersName The name of a security control parameter. + */ + override fun complianceSecurityControlParametersName(vararg + complianceSecurityControlParametersName: Any): Unit = + complianceSecurityControlParametersName(complianceSecurityControlParametersName.toList()) + + /** + * @param complianceSecurityControlParametersValue The current value of a security control + * parameter. + */ + override + fun complianceSecurityControlParametersValue(complianceSecurityControlParametersValue: IResolvable) { + cdkBuilder.complianceSecurityControlParametersValue(complianceSecurityControlParametersValue.let(IResolvable::unwrap)) + } + + /** + * @param complianceSecurityControlParametersValue The current value of a security control + * parameter. + */ + override + fun complianceSecurityControlParametersValue(complianceSecurityControlParametersValue: List) { + cdkBuilder.complianceSecurityControlParametersValue(complianceSecurityControlParametersValue.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param complianceSecurityControlParametersValue The current value of a security control + * parameter. + */ + override fun complianceSecurityControlParametersValue(vararg + complianceSecurityControlParametersValue: Any): Unit = + complianceSecurityControlParametersValue(complianceSecurityControlParametersValue.toList()) + + /** + * @param complianceStatus Exclusive to findings that are generated as the result of a check + * run against a specific rule in a supported standard, such as CIS AWS Foundations. + * Contains security standard-related finding details. + */ + override fun complianceStatus(complianceStatus: IResolvable) { + cdkBuilder.complianceStatus(complianceStatus.let(IResolvable::unwrap)) + } + + /** + * @param complianceStatus Exclusive to findings that are generated as the result of a check + * run against a specific rule in a supported standard, such as CIS AWS Foundations. + * Contains security standard-related finding details. + */ + override fun complianceStatus(complianceStatus: List) { + cdkBuilder.complianceStatus(complianceStatus.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param complianceStatus Exclusive to findings that are generated as the result of a check + * run against a specific rule in a supported standard, such as CIS AWS Foundations. + * Contains security standard-related finding details. + */ + override fun complianceStatus(vararg complianceStatus: Any): Unit = + complianceStatus(complianceStatus.toList()) + + /** + * @param confidence A finding's confidence. + * Confidence is defined as the likelihood that a finding accurately identifies the behavior + * or issue that it was intended to identify. + * + * Confidence is scored on a 0-100 basis using a ratio scale, where 0 means zero percent + * confidence and 100 means 100 percent confidence. + */ + override fun confidence(confidence: IResolvable) { + cdkBuilder.confidence(confidence.let(IResolvable::unwrap)) + } + + /** + * @param confidence A finding's confidence. + * Confidence is defined as the likelihood that a finding accurately identifies the behavior + * or issue that it was intended to identify. + * + * Confidence is scored on a 0-100 basis using a ratio scale, where 0 means zero percent + * confidence and 100 means 100 percent confidence. + */ + override fun confidence(confidence: List) { + cdkBuilder.confidence(confidence.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param confidence A finding's confidence. + * Confidence is defined as the likelihood that a finding accurately identifies the behavior + * or issue that it was intended to identify. + * + * Confidence is scored on a 0-100 basis using a ratio scale, where 0 means zero percent + * confidence and 100 means 100 percent confidence. + */ + override fun confidence(vararg confidence: Any): Unit = confidence(confidence.toList()) + + /** + * @param createdAt A timestamp that indicates when the security findings provider created the + * potential security issue that a finding reflects. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + override fun createdAt(createdAt: IResolvable) { + cdkBuilder.createdAt(createdAt.let(IResolvable::unwrap)) + } + + /** + * @param createdAt A timestamp that indicates when the security findings provider created the + * potential security issue that a finding reflects. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + override fun createdAt(createdAt: List) { + cdkBuilder.createdAt(createdAt.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param createdAt A timestamp that indicates when the security findings provider created the + * potential security issue that a finding reflects. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + override fun createdAt(vararg createdAt: Any): Unit = createdAt(createdAt.toList()) + + /** + * @param criticality The level of importance assigned to the resources associated with the + * finding. + * A score of 0 means that the underlying resources have no criticality, and a score of 100 is + * reserved for the most critical resources. + */ + override fun criticality(criticality: IResolvable) { + cdkBuilder.criticality(criticality.let(IResolvable::unwrap)) + } + + /** + * @param criticality The level of importance assigned to the resources associated with the + * finding. + * A score of 0 means that the underlying resources have no criticality, and a score of 100 is + * reserved for the most critical resources. + */ + override fun criticality(criticality: List) { + cdkBuilder.criticality(criticality.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param criticality The level of importance assigned to the resources associated with the + * finding. + * A score of 0 means that the underlying resources have no criticality, and a score of 100 is + * reserved for the most critical resources. + */ + override fun criticality(vararg criticality: Any): Unit = criticality(criticality.toList()) + + /** + * @param description A finding's description. + */ + override fun description(description: IResolvable) { + cdkBuilder.description(description.let(IResolvable::unwrap)) + } + + /** + * @param description A finding's description. + */ + override fun description(description: List) { + cdkBuilder.description(description.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param description A finding's description. + */ + override fun description(vararg description: Any): Unit = description(description.toList()) + + /** + * @param findingProviderFieldsConfidence The finding provider value for the finding + * confidence. + * Confidence is defined as the likelihood that a finding accurately identifies the behavior + * or issue that it was intended to identify. + * + * Confidence is scored on a 0-100 basis using a ratio scale, where 0 means zero percent + * confidence and 100 means 100 percent confidence. + */ + override fun findingProviderFieldsConfidence(findingProviderFieldsConfidence: IResolvable) { + cdkBuilder.findingProviderFieldsConfidence(findingProviderFieldsConfidence.let(IResolvable::unwrap)) + } + + /** + * @param findingProviderFieldsConfidence The finding provider value for the finding + * confidence. + * Confidence is defined as the likelihood that a finding accurately identifies the behavior + * or issue that it was intended to identify. + * + * Confidence is scored on a 0-100 basis using a ratio scale, where 0 means zero percent + * confidence and 100 means 100 percent confidence. + */ + override fun findingProviderFieldsConfidence(findingProviderFieldsConfidence: List) { + cdkBuilder.findingProviderFieldsConfidence(findingProviderFieldsConfidence.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param findingProviderFieldsConfidence The finding provider value for the finding + * confidence. + * Confidence is defined as the likelihood that a finding accurately identifies the behavior + * or issue that it was intended to identify. + * + * Confidence is scored on a 0-100 basis using a ratio scale, where 0 means zero percent + * confidence and 100 means 100 percent confidence. + */ + override fun findingProviderFieldsConfidence(vararg findingProviderFieldsConfidence: Any): + Unit = findingProviderFieldsConfidence(findingProviderFieldsConfidence.toList()) + + /** + * @param findingProviderFieldsCriticality The finding provider value for the level of + * importance assigned to the resources associated with the findings. + * A score of 0 means that the underlying resources have no criticality, and a score of 100 is + * reserved for the most critical resources. + */ + override fun findingProviderFieldsCriticality(findingProviderFieldsCriticality: IResolvable) { + cdkBuilder.findingProviderFieldsCriticality(findingProviderFieldsCriticality.let(IResolvable::unwrap)) + } + + /** + * @param findingProviderFieldsCriticality The finding provider value for the level of + * importance assigned to the resources associated with the findings. + * A score of 0 means that the underlying resources have no criticality, and a score of 100 is + * reserved for the most critical resources. + */ + override fun findingProviderFieldsCriticality(findingProviderFieldsCriticality: List) { + cdkBuilder.findingProviderFieldsCriticality(findingProviderFieldsCriticality.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param findingProviderFieldsCriticality The finding provider value for the level of + * importance assigned to the resources associated with the findings. + * A score of 0 means that the underlying resources have no criticality, and a score of 100 is + * reserved for the most critical resources. + */ + override fun findingProviderFieldsCriticality(vararg findingProviderFieldsCriticality: Any): + Unit = findingProviderFieldsCriticality(findingProviderFieldsCriticality.toList()) + + /** + * @param findingProviderFieldsRelatedFindingsId The finding identifier of a related finding + * that is identified by the finding provider. + */ + override + fun findingProviderFieldsRelatedFindingsId(findingProviderFieldsRelatedFindingsId: IResolvable) { + cdkBuilder.findingProviderFieldsRelatedFindingsId(findingProviderFieldsRelatedFindingsId.let(IResolvable::unwrap)) + } + + /** + * @param findingProviderFieldsRelatedFindingsId The finding identifier of a related finding + * that is identified by the finding provider. + */ + override + fun findingProviderFieldsRelatedFindingsId(findingProviderFieldsRelatedFindingsId: List) { + cdkBuilder.findingProviderFieldsRelatedFindingsId(findingProviderFieldsRelatedFindingsId.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param findingProviderFieldsRelatedFindingsId The finding identifier of a related finding + * that is identified by the finding provider. + */ + override fun findingProviderFieldsRelatedFindingsId(vararg + findingProviderFieldsRelatedFindingsId: Any): Unit = + findingProviderFieldsRelatedFindingsId(findingProviderFieldsRelatedFindingsId.toList()) + + /** + * @param findingProviderFieldsRelatedFindingsProductArn The ARN of the solution that + * generated a related finding that is identified by the finding provider. + */ + override + fun findingProviderFieldsRelatedFindingsProductArn(findingProviderFieldsRelatedFindingsProductArn: IResolvable) { + cdkBuilder.findingProviderFieldsRelatedFindingsProductArn(findingProviderFieldsRelatedFindingsProductArn.let(IResolvable::unwrap)) + } + + /** + * @param findingProviderFieldsRelatedFindingsProductArn The ARN of the solution that + * generated a related finding that is identified by the finding provider. + */ + override + fun findingProviderFieldsRelatedFindingsProductArn(findingProviderFieldsRelatedFindingsProductArn: List) { + cdkBuilder.findingProviderFieldsRelatedFindingsProductArn(findingProviderFieldsRelatedFindingsProductArn.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param findingProviderFieldsRelatedFindingsProductArn The ARN of the solution that + * generated a related finding that is identified by the finding provider. + */ + override fun findingProviderFieldsRelatedFindingsProductArn(vararg + findingProviderFieldsRelatedFindingsProductArn: Any): Unit = + findingProviderFieldsRelatedFindingsProductArn(findingProviderFieldsRelatedFindingsProductArn.toList()) + + /** + * @param findingProviderFieldsSeverityLabel The finding provider value for the severity + * label. + */ + override + fun findingProviderFieldsSeverityLabel(findingProviderFieldsSeverityLabel: IResolvable) { + cdkBuilder.findingProviderFieldsSeverityLabel(findingProviderFieldsSeverityLabel.let(IResolvable::unwrap)) + } + + /** + * @param findingProviderFieldsSeverityLabel The finding provider value for the severity + * label. + */ + override + fun findingProviderFieldsSeverityLabel(findingProviderFieldsSeverityLabel: List) { + cdkBuilder.findingProviderFieldsSeverityLabel(findingProviderFieldsSeverityLabel.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param findingProviderFieldsSeverityLabel The finding provider value for the severity + * label. + */ + override fun findingProviderFieldsSeverityLabel(vararg + findingProviderFieldsSeverityLabel: Any): Unit = + findingProviderFieldsSeverityLabel(findingProviderFieldsSeverityLabel.toList()) + + /** + * @param findingProviderFieldsSeverityOriginal The finding provider's original value for the + * severity. + */ + override + fun findingProviderFieldsSeverityOriginal(findingProviderFieldsSeverityOriginal: IResolvable) { + cdkBuilder.findingProviderFieldsSeverityOriginal(findingProviderFieldsSeverityOriginal.let(IResolvable::unwrap)) + } + + /** + * @param findingProviderFieldsSeverityOriginal The finding provider's original value for the + * severity. + */ + override + fun findingProviderFieldsSeverityOriginal(findingProviderFieldsSeverityOriginal: List) { + cdkBuilder.findingProviderFieldsSeverityOriginal(findingProviderFieldsSeverityOriginal.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param findingProviderFieldsSeverityOriginal The finding provider's original value for the + * severity. + */ + override fun findingProviderFieldsSeverityOriginal(vararg + findingProviderFieldsSeverityOriginal: Any): Unit = + findingProviderFieldsSeverityOriginal(findingProviderFieldsSeverityOriginal.toList()) + + /** + * @param findingProviderFieldsTypes One or more finding types that the finding provider + * assigned to the finding. + * Uses the format of `namespace/category/classifier` that classify a finding. + * + * Valid namespace values are: Software and Configuration Checks | TTPs | Effects | Unusual + * Behaviors | Sensitive Data Identifications + */ + override fun findingProviderFieldsTypes(findingProviderFieldsTypes: IResolvable) { + cdkBuilder.findingProviderFieldsTypes(findingProviderFieldsTypes.let(IResolvable::unwrap)) + } + + /** + * @param findingProviderFieldsTypes One or more finding types that the finding provider + * assigned to the finding. + * Uses the format of `namespace/category/classifier` that classify a finding. + * + * Valid namespace values are: Software and Configuration Checks | TTPs | Effects | Unusual + * Behaviors | Sensitive Data Identifications + */ + override fun findingProviderFieldsTypes(findingProviderFieldsTypes: List) { + cdkBuilder.findingProviderFieldsTypes(findingProviderFieldsTypes.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param findingProviderFieldsTypes One or more finding types that the finding provider + * assigned to the finding. + * Uses the format of `namespace/category/classifier` that classify a finding. + * + * Valid namespace values are: Software and Configuration Checks | TTPs | Effects | Unusual + * Behaviors | Sensitive Data Identifications + */ + override fun findingProviderFieldsTypes(vararg findingProviderFieldsTypes: Any): Unit = + findingProviderFieldsTypes(findingProviderFieldsTypes.toList()) + + /** + * @param firstObservedAt A timestamp that indicates when the security findings provider first + * observed the potential security issue that a finding captured. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + override fun firstObservedAt(firstObservedAt: IResolvable) { + cdkBuilder.firstObservedAt(firstObservedAt.let(IResolvable::unwrap)) + } + + /** + * @param firstObservedAt A timestamp that indicates when the security findings provider first + * observed the potential security issue that a finding captured. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + override fun firstObservedAt(firstObservedAt: List) { + cdkBuilder.firstObservedAt(firstObservedAt.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param firstObservedAt A timestamp that indicates when the security findings provider first + * observed the potential security issue that a finding captured. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + override fun firstObservedAt(vararg firstObservedAt: Any): Unit = + firstObservedAt(firstObservedAt.toList()) + + /** + * @param generatorId The identifier for the solution-specific component (a discrete unit of + * logic) that generated a finding. + * In various security findings providers' solutions, this generator can be called a rule, a + * check, a detector, a plugin, etc. + */ + override fun generatorId(generatorId: IResolvable) { + cdkBuilder.generatorId(generatorId.let(IResolvable::unwrap)) + } + + /** + * @param generatorId The identifier for the solution-specific component (a discrete unit of + * logic) that generated a finding. + * In various security findings providers' solutions, this generator can be called a rule, a + * check, a detector, a plugin, etc. + */ + override fun generatorId(generatorId: List) { + cdkBuilder.generatorId(generatorId.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param generatorId The identifier for the solution-specific component (a discrete unit of + * logic) that generated a finding. + * In various security findings providers' solutions, this generator can be called a rule, a + * check, a detector, a plugin, etc. + */ + override fun generatorId(vararg generatorId: Any): Unit = generatorId(generatorId.toList()) + + /** + * @param id The security findings provider-specific identifier for a finding. + */ + override fun id(id: IResolvable) { + cdkBuilder.id(id.let(IResolvable::unwrap)) + } + + /** + * @param id The security findings provider-specific identifier for a finding. + */ + override fun id(id: List) { + cdkBuilder.id(id.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param id The security findings provider-specific identifier for a finding. + */ + override fun id(vararg id: Any): Unit = id(id.toList()) + + /** + * @param keyword This field is deprecated. + * A keyword for a finding. + */ + override fun keyword(keyword: IResolvable) { + cdkBuilder.keyword(keyword.let(IResolvable::unwrap)) + } + + /** + * @param keyword This field is deprecated. + * A keyword for a finding. + */ + override fun keyword(keyword: List) { + cdkBuilder.keyword(keyword.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param keyword This field is deprecated. + * A keyword for a finding. + */ + override fun keyword(vararg keyword: Any): Unit = keyword(keyword.toList()) + + /** + * @param lastObservedAt A timestamp that indicates when the security findings provider most + * recently observed the potential security issue that a finding captured. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + override fun lastObservedAt(lastObservedAt: IResolvable) { + cdkBuilder.lastObservedAt(lastObservedAt.let(IResolvable::unwrap)) + } + + /** + * @param lastObservedAt A timestamp that indicates when the security findings provider most + * recently observed the potential security issue that a finding captured. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + override fun lastObservedAt(lastObservedAt: List) { + cdkBuilder.lastObservedAt(lastObservedAt.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param lastObservedAt A timestamp that indicates when the security findings provider most + * recently observed the potential security issue that a finding captured. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + override fun lastObservedAt(vararg lastObservedAt: Any): Unit = + lastObservedAt(lastObservedAt.toList()) + + /** + * @param malwareName The name of the malware that was observed. + */ + override fun malwareName(malwareName: IResolvable) { + cdkBuilder.malwareName(malwareName.let(IResolvable::unwrap)) + } + + /** + * @param malwareName The name of the malware that was observed. + */ + override fun malwareName(malwareName: List) { + cdkBuilder.malwareName(malwareName.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param malwareName The name of the malware that was observed. + */ + override fun malwareName(vararg malwareName: Any): Unit = malwareName(malwareName.toList()) + + /** + * @param malwarePath The filesystem path of the malware that was observed. + */ + override fun malwarePath(malwarePath: IResolvable) { + cdkBuilder.malwarePath(malwarePath.let(IResolvable::unwrap)) + } + + /** + * @param malwarePath The filesystem path of the malware that was observed. + */ + override fun malwarePath(malwarePath: List) { + cdkBuilder.malwarePath(malwarePath.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param malwarePath The filesystem path of the malware that was observed. + */ + override fun malwarePath(vararg malwarePath: Any): Unit = malwarePath(malwarePath.toList()) + + /** + * @param malwareState The state of the malware that was observed. + */ + override fun malwareState(malwareState: IResolvable) { + cdkBuilder.malwareState(malwareState.let(IResolvable::unwrap)) + } + + /** + * @param malwareState The state of the malware that was observed. + */ + override fun malwareState(malwareState: List) { + cdkBuilder.malwareState(malwareState.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param malwareState The state of the malware that was observed. + */ + override fun malwareState(vararg malwareState: Any): Unit = + malwareState(malwareState.toList()) + + /** + * @param malwareType The type of the malware that was observed. + */ + override fun malwareType(malwareType: IResolvable) { + cdkBuilder.malwareType(malwareType.let(IResolvable::unwrap)) + } + + /** + * @param malwareType The type of the malware that was observed. + */ + override fun malwareType(malwareType: List) { + cdkBuilder.malwareType(malwareType.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param malwareType The type of the malware that was observed. + */ + override fun malwareType(vararg malwareType: Any): Unit = malwareType(malwareType.toList()) + + /** + * @param networkDestinationDomain The destination domain of network-related information about + * a finding. + */ + override fun networkDestinationDomain(networkDestinationDomain: IResolvable) { + cdkBuilder.networkDestinationDomain(networkDestinationDomain.let(IResolvable::unwrap)) + } + + /** + * @param networkDestinationDomain The destination domain of network-related information about + * a finding. + */ + override fun networkDestinationDomain(networkDestinationDomain: List) { + cdkBuilder.networkDestinationDomain(networkDestinationDomain.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param networkDestinationDomain The destination domain of network-related information about + * a finding. + */ + override fun networkDestinationDomain(vararg networkDestinationDomain: Any): Unit = + networkDestinationDomain(networkDestinationDomain.toList()) + + /** + * @param networkDestinationIpV4 The destination IPv4 address of network-related information + * about a finding. + */ + override fun networkDestinationIpV4(networkDestinationIpV4: IResolvable) { + cdkBuilder.networkDestinationIpV4(networkDestinationIpV4.let(IResolvable::unwrap)) + } + + /** + * @param networkDestinationIpV4 The destination IPv4 address of network-related information + * about a finding. + */ + override fun networkDestinationIpV4(networkDestinationIpV4: List) { + cdkBuilder.networkDestinationIpV4(networkDestinationIpV4.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param networkDestinationIpV4 The destination IPv4 address of network-related information + * about a finding. + */ + override fun networkDestinationIpV4(vararg networkDestinationIpV4: Any): Unit = + networkDestinationIpV4(networkDestinationIpV4.toList()) + + /** + * @param networkDestinationIpV6 The destination IPv6 address of network-related information + * about a finding. + */ + override fun networkDestinationIpV6(networkDestinationIpV6: IResolvable) { + cdkBuilder.networkDestinationIpV6(networkDestinationIpV6.let(IResolvable::unwrap)) + } + + /** + * @param networkDestinationIpV6 The destination IPv6 address of network-related information + * about a finding. + */ + override fun networkDestinationIpV6(networkDestinationIpV6: List) { + cdkBuilder.networkDestinationIpV6(networkDestinationIpV6.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param networkDestinationIpV6 The destination IPv6 address of network-related information + * about a finding. + */ + override fun networkDestinationIpV6(vararg networkDestinationIpV6: Any): Unit = + networkDestinationIpV6(networkDestinationIpV6.toList()) + + /** + * @param networkDestinationPort The destination port of network-related information about a + * finding. + */ + override fun networkDestinationPort(networkDestinationPort: IResolvable) { + cdkBuilder.networkDestinationPort(networkDestinationPort.let(IResolvable::unwrap)) + } + + /** + * @param networkDestinationPort The destination port of network-related information about a + * finding. + */ + override fun networkDestinationPort(networkDestinationPort: List) { + cdkBuilder.networkDestinationPort(networkDestinationPort.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param networkDestinationPort The destination port of network-related information about a + * finding. + */ + override fun networkDestinationPort(vararg networkDestinationPort: Any): Unit = + networkDestinationPort(networkDestinationPort.toList()) + + /** + * @param networkDirection Indicates the direction of network traffic associated with a + * finding. + */ + override fun networkDirection(networkDirection: IResolvable) { + cdkBuilder.networkDirection(networkDirection.let(IResolvable::unwrap)) + } + + /** + * @param networkDirection Indicates the direction of network traffic associated with a + * finding. + */ + override fun networkDirection(networkDirection: List) { + cdkBuilder.networkDirection(networkDirection.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param networkDirection Indicates the direction of network traffic associated with a + * finding. + */ + override fun networkDirection(vararg networkDirection: Any): Unit = + networkDirection(networkDirection.toList()) + + /** + * @param networkProtocol The protocol of network-related information about a finding. + */ + override fun networkProtocol(networkProtocol: IResolvable) { + cdkBuilder.networkProtocol(networkProtocol.let(IResolvable::unwrap)) + } + + /** + * @param networkProtocol The protocol of network-related information about a finding. + */ + override fun networkProtocol(networkProtocol: List) { + cdkBuilder.networkProtocol(networkProtocol.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param networkProtocol The protocol of network-related information about a finding. + */ + override fun networkProtocol(vararg networkProtocol: Any): Unit = + networkProtocol(networkProtocol.toList()) + + /** + * @param networkSourceDomain The source domain of network-related information about a + * finding. + */ + override fun networkSourceDomain(networkSourceDomain: IResolvable) { + cdkBuilder.networkSourceDomain(networkSourceDomain.let(IResolvable::unwrap)) + } + + /** + * @param networkSourceDomain The source domain of network-related information about a + * finding. + */ + override fun networkSourceDomain(networkSourceDomain: List) { + cdkBuilder.networkSourceDomain(networkSourceDomain.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param networkSourceDomain The source domain of network-related information about a + * finding. + */ + override fun networkSourceDomain(vararg networkSourceDomain: Any): Unit = + networkSourceDomain(networkSourceDomain.toList()) + + /** + * @param networkSourceIpV4 The source IPv4 address of network-related information about a + * finding. + */ + override fun networkSourceIpV4(networkSourceIpV4: IResolvable) { + cdkBuilder.networkSourceIpV4(networkSourceIpV4.let(IResolvable::unwrap)) + } + + /** + * @param networkSourceIpV4 The source IPv4 address of network-related information about a + * finding. + */ + override fun networkSourceIpV4(networkSourceIpV4: List) { + cdkBuilder.networkSourceIpV4(networkSourceIpV4.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param networkSourceIpV4 The source IPv4 address of network-related information about a + * finding. + */ + override fun networkSourceIpV4(vararg networkSourceIpV4: Any): Unit = + networkSourceIpV4(networkSourceIpV4.toList()) + + /** + * @param networkSourceIpV6 The source IPv6 address of network-related information about a + * finding. + */ + override fun networkSourceIpV6(networkSourceIpV6: IResolvable) { + cdkBuilder.networkSourceIpV6(networkSourceIpV6.let(IResolvable::unwrap)) + } + + /** + * @param networkSourceIpV6 The source IPv6 address of network-related information about a + * finding. + */ + override fun networkSourceIpV6(networkSourceIpV6: List) { + cdkBuilder.networkSourceIpV6(networkSourceIpV6.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param networkSourceIpV6 The source IPv6 address of network-related information about a + * finding. + */ + override fun networkSourceIpV6(vararg networkSourceIpV6: Any): Unit = + networkSourceIpV6(networkSourceIpV6.toList()) + + /** + * @param networkSourceMac The source media access control (MAC) address of network-related + * information about a finding. + */ + override fun networkSourceMac(networkSourceMac: IResolvable) { + cdkBuilder.networkSourceMac(networkSourceMac.let(IResolvable::unwrap)) + } + + /** + * @param networkSourceMac The source media access control (MAC) address of network-related + * information about a finding. + */ + override fun networkSourceMac(networkSourceMac: List) { + cdkBuilder.networkSourceMac(networkSourceMac.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param networkSourceMac The source media access control (MAC) address of network-related + * information about a finding. + */ + override fun networkSourceMac(vararg networkSourceMac: Any): Unit = + networkSourceMac(networkSourceMac.toList()) + + /** + * @param networkSourcePort The source port of network-related information about a finding. + */ + override fun networkSourcePort(networkSourcePort: IResolvable) { + cdkBuilder.networkSourcePort(networkSourcePort.let(IResolvable::unwrap)) + } + + /** + * @param networkSourcePort The source port of network-related information about a finding. + */ + override fun networkSourcePort(networkSourcePort: List) { + cdkBuilder.networkSourcePort(networkSourcePort.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param networkSourcePort The source port of network-related information about a finding. + */ + override fun networkSourcePort(vararg networkSourcePort: Any): Unit = + networkSourcePort(networkSourcePort.toList()) + + /** + * @param noteText The text of a note. + */ + override fun noteText(noteText: IResolvable) { + cdkBuilder.noteText(noteText.let(IResolvable::unwrap)) + } + + /** + * @param noteText The text of a note. + */ + override fun noteText(noteText: List) { + cdkBuilder.noteText(noteText.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param noteText The text of a note. + */ + override fun noteText(vararg noteText: Any): Unit = noteText(noteText.toList()) + + /** + * @param noteUpdatedAt The timestamp of when the note was updated. + */ + override fun noteUpdatedAt(noteUpdatedAt: IResolvable) { + cdkBuilder.noteUpdatedAt(noteUpdatedAt.let(IResolvable::unwrap)) + } + + /** + * @param noteUpdatedAt The timestamp of when the note was updated. + */ + override fun noteUpdatedAt(noteUpdatedAt: List) { + cdkBuilder.noteUpdatedAt(noteUpdatedAt.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param noteUpdatedAt The timestamp of when the note was updated. + */ + override fun noteUpdatedAt(vararg noteUpdatedAt: Any): Unit = + noteUpdatedAt(noteUpdatedAt.toList()) + + /** + * @param noteUpdatedBy The principal that created a note. + */ + override fun noteUpdatedBy(noteUpdatedBy: IResolvable) { + cdkBuilder.noteUpdatedBy(noteUpdatedBy.let(IResolvable::unwrap)) + } + + /** + * @param noteUpdatedBy The principal that created a note. + */ + override fun noteUpdatedBy(noteUpdatedBy: List) { + cdkBuilder.noteUpdatedBy(noteUpdatedBy.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param noteUpdatedBy The principal that created a note. + */ + override fun noteUpdatedBy(vararg noteUpdatedBy: Any): Unit = + noteUpdatedBy(noteUpdatedBy.toList()) + + /** + * @param processLaunchedAt A timestamp that identifies when the process was launched. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + override fun processLaunchedAt(processLaunchedAt: IResolvable) { + cdkBuilder.processLaunchedAt(processLaunchedAt.let(IResolvable::unwrap)) + } + + /** + * @param processLaunchedAt A timestamp that identifies when the process was launched. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + override fun processLaunchedAt(processLaunchedAt: List) { + cdkBuilder.processLaunchedAt(processLaunchedAt.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param processLaunchedAt A timestamp that identifies when the process was launched. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + override fun processLaunchedAt(vararg processLaunchedAt: Any): Unit = + processLaunchedAt(processLaunchedAt.toList()) + + /** + * @param processName The name of the process. + */ + override fun processName(processName: IResolvable) { + cdkBuilder.processName(processName.let(IResolvable::unwrap)) + } + + /** + * @param processName The name of the process. + */ + override fun processName(processName: List) { + cdkBuilder.processName(processName.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param processName The name of the process. + */ + override fun processName(vararg processName: Any): Unit = processName(processName.toList()) + + /** + * @param processParentPid The parent process ID. + * This field accepts positive integers between `O` and `2147483647` . + */ + override fun processParentPid(processParentPid: IResolvable) { + cdkBuilder.processParentPid(processParentPid.let(IResolvable::unwrap)) + } + + /** + * @param processParentPid The parent process ID. + * This field accepts positive integers between `O` and `2147483647` . + */ + override fun processParentPid(processParentPid: List) { + cdkBuilder.processParentPid(processParentPid.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param processParentPid The parent process ID. + * This field accepts positive integers between `O` and `2147483647` . + */ + override fun processParentPid(vararg processParentPid: Any): Unit = + processParentPid(processParentPid.toList()) + + /** + * @param processPath The path to the process executable. + */ + override fun processPath(processPath: IResolvable) { + cdkBuilder.processPath(processPath.let(IResolvable::unwrap)) + } + + /** + * @param processPath The path to the process executable. + */ + override fun processPath(processPath: List) { + cdkBuilder.processPath(processPath.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param processPath The path to the process executable. + */ + override fun processPath(vararg processPath: Any): Unit = processPath(processPath.toList()) + + /** + * @param processPid The process ID. + */ + override fun processPid(processPid: IResolvable) { + cdkBuilder.processPid(processPid.let(IResolvable::unwrap)) + } + + /** + * @param processPid The process ID. + */ + override fun processPid(processPid: List) { + cdkBuilder.processPid(processPid.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param processPid The process ID. + */ + override fun processPid(vararg processPid: Any): Unit = processPid(processPid.toList()) + + /** + * @param processTerminatedAt A timestamp that identifies when the process was terminated. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + override fun processTerminatedAt(processTerminatedAt: IResolvable) { + cdkBuilder.processTerminatedAt(processTerminatedAt.let(IResolvable::unwrap)) + } + + /** + * @param processTerminatedAt A timestamp that identifies when the process was terminated. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + override fun processTerminatedAt(processTerminatedAt: List) { + cdkBuilder.processTerminatedAt(processTerminatedAt.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param processTerminatedAt A timestamp that identifies when the process was terminated. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + override fun processTerminatedAt(vararg processTerminatedAt: Any): Unit = + processTerminatedAt(processTerminatedAt.toList()) + + /** + * @param productArn The ARN generated by Security Hub that uniquely identifies a third-party + * company (security findings provider) after this provider's product (solution that generates + * findings) is registered with Security Hub. + */ + override fun productArn(productArn: IResolvable) { + cdkBuilder.productArn(productArn.let(IResolvable::unwrap)) + } + + /** + * @param productArn The ARN generated by Security Hub that uniquely identifies a third-party + * company (security findings provider) after this provider's product (solution that generates + * findings) is registered with Security Hub. + */ + override fun productArn(productArn: List) { + cdkBuilder.productArn(productArn.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param productArn The ARN generated by Security Hub that uniquely identifies a third-party + * company (security findings provider) after this provider's product (solution that generates + * findings) is registered with Security Hub. + */ + override fun productArn(vararg productArn: Any): Unit = productArn(productArn.toList()) + + /** + * @param productFields A data type where security findings providers can include additional + * solution-specific details that aren't part of the defined `AwsSecurityFinding` format. + */ + override fun productFields(productFields: IResolvable) { + cdkBuilder.productFields(productFields.let(IResolvable::unwrap)) + } + + /** + * @param productFields A data type where security findings providers can include additional + * solution-specific details that aren't part of the defined `AwsSecurityFinding` format. + */ + override fun productFields(productFields: List) { + cdkBuilder.productFields(productFields.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param productFields A data type where security findings providers can include additional + * solution-specific details that aren't part of the defined `AwsSecurityFinding` format. + */ + override fun productFields(vararg productFields: Any): Unit = + productFields(productFields.toList()) + + /** + * @param productName The name of the solution (product) that generates findings. + */ + override fun productName(productName: IResolvable) { + cdkBuilder.productName(productName.let(IResolvable::unwrap)) + } + + /** + * @param productName The name of the solution (product) that generates findings. + */ + override fun productName(productName: List) { + cdkBuilder.productName(productName.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param productName The name of the solution (product) that generates findings. + */ + override fun productName(vararg productName: Any): Unit = productName(productName.toList()) + + /** + * @param recommendationText The recommendation of what to do about the issue described in a + * finding. + */ + override fun recommendationText(recommendationText: IResolvable) { + cdkBuilder.recommendationText(recommendationText.let(IResolvable::unwrap)) + } + + /** + * @param recommendationText The recommendation of what to do about the issue described in a + * finding. + */ + override fun recommendationText(recommendationText: List) { + cdkBuilder.recommendationText(recommendationText.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param recommendationText The recommendation of what to do about the issue described in a + * finding. + */ + override fun recommendationText(vararg recommendationText: Any): Unit = + recommendationText(recommendationText.toList()) + + /** + * @param recordState The updated record state for the finding. + */ + override fun recordState(recordState: IResolvable) { + cdkBuilder.recordState(recordState.let(IResolvable::unwrap)) + } + + /** + * @param recordState The updated record state for the finding. + */ + override fun recordState(recordState: List) { + cdkBuilder.recordState(recordState.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param recordState The updated record state for the finding. + */ + override fun recordState(vararg recordState: Any): Unit = recordState(recordState.toList()) + + /** + * @param region The Region from which the finding was generated. + */ + override fun region(region: IResolvable) { + cdkBuilder.region(region.let(IResolvable::unwrap)) + } + + /** + * @param region The Region from which the finding was generated. + */ + override fun region(region: List) { + cdkBuilder.region(region.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param region The Region from which the finding was generated. + */ + override fun region(vararg region: Any): Unit = region(region.toList()) + + /** + * @param relatedFindingsId The solution-generated identifier for a related finding. + */ + override fun relatedFindingsId(relatedFindingsId: IResolvable) { + cdkBuilder.relatedFindingsId(relatedFindingsId.let(IResolvable::unwrap)) + } + + /** + * @param relatedFindingsId The solution-generated identifier for a related finding. + */ + override fun relatedFindingsId(relatedFindingsId: List) { + cdkBuilder.relatedFindingsId(relatedFindingsId.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param relatedFindingsId The solution-generated identifier for a related finding. + */ + override fun relatedFindingsId(vararg relatedFindingsId: Any): Unit = + relatedFindingsId(relatedFindingsId.toList()) + + /** + * @param relatedFindingsProductArn The ARN of the solution that generated a related finding. + */ + override fun relatedFindingsProductArn(relatedFindingsProductArn: IResolvable) { + cdkBuilder.relatedFindingsProductArn(relatedFindingsProductArn.let(IResolvable::unwrap)) + } + + /** + * @param relatedFindingsProductArn The ARN of the solution that generated a related finding. + */ + override fun relatedFindingsProductArn(relatedFindingsProductArn: List) { + cdkBuilder.relatedFindingsProductArn(relatedFindingsProductArn.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param relatedFindingsProductArn The ARN of the solution that generated a related finding. + */ + override fun relatedFindingsProductArn(vararg relatedFindingsProductArn: Any): Unit = + relatedFindingsProductArn(relatedFindingsProductArn.toList()) + + /** + * @param resourceApplicationArn The ARN of the application that is related to a finding. + */ + override fun resourceApplicationArn(resourceApplicationArn: IResolvable) { + cdkBuilder.resourceApplicationArn(resourceApplicationArn.let(IResolvable::unwrap)) + } + + /** + * @param resourceApplicationArn The ARN of the application that is related to a finding. + */ + override fun resourceApplicationArn(resourceApplicationArn: List) { + cdkBuilder.resourceApplicationArn(resourceApplicationArn.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param resourceApplicationArn The ARN of the application that is related to a finding. + */ + override fun resourceApplicationArn(vararg resourceApplicationArn: Any): Unit = + resourceApplicationArn(resourceApplicationArn.toList()) + + /** + * @param resourceApplicationName The name of the application that is related to a finding. + */ + override fun resourceApplicationName(resourceApplicationName: IResolvable) { + cdkBuilder.resourceApplicationName(resourceApplicationName.let(IResolvable::unwrap)) + } + + /** + * @param resourceApplicationName The name of the application that is related to a finding. + */ + override fun resourceApplicationName(resourceApplicationName: List) { + cdkBuilder.resourceApplicationName(resourceApplicationName.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param resourceApplicationName The name of the application that is related to a finding. + */ + override fun resourceApplicationName(vararg resourceApplicationName: Any): Unit = + resourceApplicationName(resourceApplicationName.toList()) + + /** + * @param resourceAwsEc2InstanceIamInstanceProfileArn The IAM profile ARN of the instance. + */ + override + fun resourceAwsEc2InstanceIamInstanceProfileArn(resourceAwsEc2InstanceIamInstanceProfileArn: IResolvable) { + cdkBuilder.resourceAwsEc2InstanceIamInstanceProfileArn(resourceAwsEc2InstanceIamInstanceProfileArn.let(IResolvable::unwrap)) + } + + /** + * @param resourceAwsEc2InstanceIamInstanceProfileArn The IAM profile ARN of the instance. + */ + override + fun resourceAwsEc2InstanceIamInstanceProfileArn(resourceAwsEc2InstanceIamInstanceProfileArn: List) { + cdkBuilder.resourceAwsEc2InstanceIamInstanceProfileArn(resourceAwsEc2InstanceIamInstanceProfileArn.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param resourceAwsEc2InstanceIamInstanceProfileArn The IAM profile ARN of the instance. + */ + override fun resourceAwsEc2InstanceIamInstanceProfileArn(vararg + resourceAwsEc2InstanceIamInstanceProfileArn: Any): Unit = + resourceAwsEc2InstanceIamInstanceProfileArn(resourceAwsEc2InstanceIamInstanceProfileArn.toList()) + + /** + * @param resourceAwsEc2InstanceImageId The Amazon Machine Image (AMI) ID of the instance. + */ + override fun resourceAwsEc2InstanceImageId(resourceAwsEc2InstanceImageId: IResolvable) { + cdkBuilder.resourceAwsEc2InstanceImageId(resourceAwsEc2InstanceImageId.let(IResolvable::unwrap)) + } + + /** + * @param resourceAwsEc2InstanceImageId The Amazon Machine Image (AMI) ID of the instance. + */ + override fun resourceAwsEc2InstanceImageId(resourceAwsEc2InstanceImageId: List) { + cdkBuilder.resourceAwsEc2InstanceImageId(resourceAwsEc2InstanceImageId.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param resourceAwsEc2InstanceImageId The Amazon Machine Image (AMI) ID of the instance. + */ + override fun resourceAwsEc2InstanceImageId(vararg resourceAwsEc2InstanceImageId: Any): Unit = + resourceAwsEc2InstanceImageId(resourceAwsEc2InstanceImageId.toList()) + + /** + * @param resourceAwsEc2InstanceIpV4Addresses The IPv4 addresses associated with the instance. + */ + override + fun resourceAwsEc2InstanceIpV4Addresses(resourceAwsEc2InstanceIpV4Addresses: IResolvable) { + cdkBuilder.resourceAwsEc2InstanceIpV4Addresses(resourceAwsEc2InstanceIpV4Addresses.let(IResolvable::unwrap)) + } + + /** + * @param resourceAwsEc2InstanceIpV4Addresses The IPv4 addresses associated with the instance. + */ + override + fun resourceAwsEc2InstanceIpV4Addresses(resourceAwsEc2InstanceIpV4Addresses: List) { + cdkBuilder.resourceAwsEc2InstanceIpV4Addresses(resourceAwsEc2InstanceIpV4Addresses.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param resourceAwsEc2InstanceIpV4Addresses The IPv4 addresses associated with the instance. + */ + override fun resourceAwsEc2InstanceIpV4Addresses(vararg + resourceAwsEc2InstanceIpV4Addresses: Any): Unit = + resourceAwsEc2InstanceIpV4Addresses(resourceAwsEc2InstanceIpV4Addresses.toList()) + + /** + * @param resourceAwsEc2InstanceIpV6Addresses The IPv6 addresses associated with the instance. + */ + override + fun resourceAwsEc2InstanceIpV6Addresses(resourceAwsEc2InstanceIpV6Addresses: IResolvable) { + cdkBuilder.resourceAwsEc2InstanceIpV6Addresses(resourceAwsEc2InstanceIpV6Addresses.let(IResolvable::unwrap)) + } + + /** + * @param resourceAwsEc2InstanceIpV6Addresses The IPv6 addresses associated with the instance. + */ + override + fun resourceAwsEc2InstanceIpV6Addresses(resourceAwsEc2InstanceIpV6Addresses: List) { + cdkBuilder.resourceAwsEc2InstanceIpV6Addresses(resourceAwsEc2InstanceIpV6Addresses.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param resourceAwsEc2InstanceIpV6Addresses The IPv6 addresses associated with the instance. + */ + override fun resourceAwsEc2InstanceIpV6Addresses(vararg + resourceAwsEc2InstanceIpV6Addresses: Any): Unit = + resourceAwsEc2InstanceIpV6Addresses(resourceAwsEc2InstanceIpV6Addresses.toList()) + + /** + * @param resourceAwsEc2InstanceKeyName The key name associated with the instance. + */ + override fun resourceAwsEc2InstanceKeyName(resourceAwsEc2InstanceKeyName: IResolvable) { + cdkBuilder.resourceAwsEc2InstanceKeyName(resourceAwsEc2InstanceKeyName.let(IResolvable::unwrap)) + } + + /** + * @param resourceAwsEc2InstanceKeyName The key name associated with the instance. + */ + override fun resourceAwsEc2InstanceKeyName(resourceAwsEc2InstanceKeyName: List) { + cdkBuilder.resourceAwsEc2InstanceKeyName(resourceAwsEc2InstanceKeyName.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param resourceAwsEc2InstanceKeyName The key name associated with the instance. + */ + override fun resourceAwsEc2InstanceKeyName(vararg resourceAwsEc2InstanceKeyName: Any): Unit = + resourceAwsEc2InstanceKeyName(resourceAwsEc2InstanceKeyName.toList()) + + /** + * @param resourceAwsEc2InstanceLaunchedAt The date and time the instance was launched. + */ + override fun resourceAwsEc2InstanceLaunchedAt(resourceAwsEc2InstanceLaunchedAt: IResolvable) { + cdkBuilder.resourceAwsEc2InstanceLaunchedAt(resourceAwsEc2InstanceLaunchedAt.let(IResolvable::unwrap)) + } + + /** + * @param resourceAwsEc2InstanceLaunchedAt The date and time the instance was launched. + */ + override fun resourceAwsEc2InstanceLaunchedAt(resourceAwsEc2InstanceLaunchedAt: List) { + cdkBuilder.resourceAwsEc2InstanceLaunchedAt(resourceAwsEc2InstanceLaunchedAt.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param resourceAwsEc2InstanceLaunchedAt The date and time the instance was launched. + */ + override fun resourceAwsEc2InstanceLaunchedAt(vararg resourceAwsEc2InstanceLaunchedAt: Any): + Unit = resourceAwsEc2InstanceLaunchedAt(resourceAwsEc2InstanceLaunchedAt.toList()) + + /** + * @param resourceAwsEc2InstanceSubnetId The identifier of the subnet that the instance was + * launched in. + */ + override fun resourceAwsEc2InstanceSubnetId(resourceAwsEc2InstanceSubnetId: IResolvable) { + cdkBuilder.resourceAwsEc2InstanceSubnetId(resourceAwsEc2InstanceSubnetId.let(IResolvable::unwrap)) + } + + /** + * @param resourceAwsEc2InstanceSubnetId The identifier of the subnet that the instance was + * launched in. + */ + override fun resourceAwsEc2InstanceSubnetId(resourceAwsEc2InstanceSubnetId: List) { + cdkBuilder.resourceAwsEc2InstanceSubnetId(resourceAwsEc2InstanceSubnetId.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param resourceAwsEc2InstanceSubnetId The identifier of the subnet that the instance was + * launched in. + */ + override fun resourceAwsEc2InstanceSubnetId(vararg resourceAwsEc2InstanceSubnetId: Any): Unit + = resourceAwsEc2InstanceSubnetId(resourceAwsEc2InstanceSubnetId.toList()) + + /** + * @param resourceAwsEc2InstanceType The instance type of the instance. + */ + override fun resourceAwsEc2InstanceType(resourceAwsEc2InstanceType: IResolvable) { + cdkBuilder.resourceAwsEc2InstanceType(resourceAwsEc2InstanceType.let(IResolvable::unwrap)) + } + + /** + * @param resourceAwsEc2InstanceType The instance type of the instance. + */ + override fun resourceAwsEc2InstanceType(resourceAwsEc2InstanceType: List) { + cdkBuilder.resourceAwsEc2InstanceType(resourceAwsEc2InstanceType.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param resourceAwsEc2InstanceType The instance type of the instance. + */ + override fun resourceAwsEc2InstanceType(vararg resourceAwsEc2InstanceType: Any): Unit = + resourceAwsEc2InstanceType(resourceAwsEc2InstanceType.toList()) + + /** + * @param resourceAwsEc2InstanceVpcId The identifier of the VPC that the instance was launched + * in. + */ + override fun resourceAwsEc2InstanceVpcId(resourceAwsEc2InstanceVpcId: IResolvable) { + cdkBuilder.resourceAwsEc2InstanceVpcId(resourceAwsEc2InstanceVpcId.let(IResolvable::unwrap)) + } + + /** + * @param resourceAwsEc2InstanceVpcId The identifier of the VPC that the instance was launched + * in. + */ + override fun resourceAwsEc2InstanceVpcId(resourceAwsEc2InstanceVpcId: List) { + cdkBuilder.resourceAwsEc2InstanceVpcId(resourceAwsEc2InstanceVpcId.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param resourceAwsEc2InstanceVpcId The identifier of the VPC that the instance was launched + * in. + */ + override fun resourceAwsEc2InstanceVpcId(vararg resourceAwsEc2InstanceVpcId: Any): Unit = + resourceAwsEc2InstanceVpcId(resourceAwsEc2InstanceVpcId.toList()) + + /** + * @param resourceAwsIamAccessKeyCreatedAt The creation date/time of the IAM access key + * related to a finding. + */ + override fun resourceAwsIamAccessKeyCreatedAt(resourceAwsIamAccessKeyCreatedAt: IResolvable) { + cdkBuilder.resourceAwsIamAccessKeyCreatedAt(resourceAwsIamAccessKeyCreatedAt.let(IResolvable::unwrap)) + } + + /** + * @param resourceAwsIamAccessKeyCreatedAt The creation date/time of the IAM access key + * related to a finding. + */ + override fun resourceAwsIamAccessKeyCreatedAt(resourceAwsIamAccessKeyCreatedAt: List) { + cdkBuilder.resourceAwsIamAccessKeyCreatedAt(resourceAwsIamAccessKeyCreatedAt.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param resourceAwsIamAccessKeyCreatedAt The creation date/time of the IAM access key + * related to a finding. + */ + override fun resourceAwsIamAccessKeyCreatedAt(vararg resourceAwsIamAccessKeyCreatedAt: Any): + Unit = resourceAwsIamAccessKeyCreatedAt(resourceAwsIamAccessKeyCreatedAt.toList()) + + /** + * @param resourceAwsIamAccessKeyPrincipalName The name of the principal that is associated + * with an IAM access key. + */ + override + fun resourceAwsIamAccessKeyPrincipalName(resourceAwsIamAccessKeyPrincipalName: IResolvable) { + cdkBuilder.resourceAwsIamAccessKeyPrincipalName(resourceAwsIamAccessKeyPrincipalName.let(IResolvable::unwrap)) + } + + /** + * @param resourceAwsIamAccessKeyPrincipalName The name of the principal that is associated + * with an IAM access key. + */ + override + fun resourceAwsIamAccessKeyPrincipalName(resourceAwsIamAccessKeyPrincipalName: List) { + cdkBuilder.resourceAwsIamAccessKeyPrincipalName(resourceAwsIamAccessKeyPrincipalName.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param resourceAwsIamAccessKeyPrincipalName The name of the principal that is associated + * with an IAM access key. + */ + override fun resourceAwsIamAccessKeyPrincipalName(vararg + resourceAwsIamAccessKeyPrincipalName: Any): Unit = + resourceAwsIamAccessKeyPrincipalName(resourceAwsIamAccessKeyPrincipalName.toList()) + + /** + * @param resourceAwsIamAccessKeyStatus The status of the IAM access key related to a finding. + */ + override fun resourceAwsIamAccessKeyStatus(resourceAwsIamAccessKeyStatus: IResolvable) { + cdkBuilder.resourceAwsIamAccessKeyStatus(resourceAwsIamAccessKeyStatus.let(IResolvable::unwrap)) + } + + /** + * @param resourceAwsIamAccessKeyStatus The status of the IAM access key related to a finding. + */ + override fun resourceAwsIamAccessKeyStatus(resourceAwsIamAccessKeyStatus: List) { + cdkBuilder.resourceAwsIamAccessKeyStatus(resourceAwsIamAccessKeyStatus.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param resourceAwsIamAccessKeyStatus The status of the IAM access key related to a finding. + */ + override fun resourceAwsIamAccessKeyStatus(vararg resourceAwsIamAccessKeyStatus: Any): Unit = + resourceAwsIamAccessKeyStatus(resourceAwsIamAccessKeyStatus.toList()) + + /** + * @param resourceAwsIamAccessKeyUserName This field is deprecated. + * The username associated with the IAM access key related to a finding. + */ + override fun resourceAwsIamAccessKeyUserName(resourceAwsIamAccessKeyUserName: IResolvable) { + cdkBuilder.resourceAwsIamAccessKeyUserName(resourceAwsIamAccessKeyUserName.let(IResolvable::unwrap)) + } + + /** + * @param resourceAwsIamAccessKeyUserName This field is deprecated. + * The username associated with the IAM access key related to a finding. + */ + override fun resourceAwsIamAccessKeyUserName(resourceAwsIamAccessKeyUserName: List) { + cdkBuilder.resourceAwsIamAccessKeyUserName(resourceAwsIamAccessKeyUserName.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param resourceAwsIamAccessKeyUserName This field is deprecated. + * The username associated with the IAM access key related to a finding. + */ + override fun resourceAwsIamAccessKeyUserName(vararg resourceAwsIamAccessKeyUserName: Any): + Unit = resourceAwsIamAccessKeyUserName(resourceAwsIamAccessKeyUserName.toList()) + + /** + * @param resourceAwsIamUserUserName The name of an IAM user. + */ + override fun resourceAwsIamUserUserName(resourceAwsIamUserUserName: IResolvable) { + cdkBuilder.resourceAwsIamUserUserName(resourceAwsIamUserUserName.let(IResolvable::unwrap)) + } + + /** + * @param resourceAwsIamUserUserName The name of an IAM user. + */ + override fun resourceAwsIamUserUserName(resourceAwsIamUserUserName: List) { + cdkBuilder.resourceAwsIamUserUserName(resourceAwsIamUserUserName.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param resourceAwsIamUserUserName The name of an IAM user. + */ + override fun resourceAwsIamUserUserName(vararg resourceAwsIamUserUserName: Any): Unit = + resourceAwsIamUserUserName(resourceAwsIamUserUserName.toList()) + + /** + * @param resourceAwsS3BucketOwnerId The canonical user ID of the owner of the S3 bucket. + */ + override fun resourceAwsS3BucketOwnerId(resourceAwsS3BucketOwnerId: IResolvable) { + cdkBuilder.resourceAwsS3BucketOwnerId(resourceAwsS3BucketOwnerId.let(IResolvable::unwrap)) + } + + /** + * @param resourceAwsS3BucketOwnerId The canonical user ID of the owner of the S3 bucket. + */ + override fun resourceAwsS3BucketOwnerId(resourceAwsS3BucketOwnerId: List) { + cdkBuilder.resourceAwsS3BucketOwnerId(resourceAwsS3BucketOwnerId.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param resourceAwsS3BucketOwnerId The canonical user ID of the owner of the S3 bucket. + */ + override fun resourceAwsS3BucketOwnerId(vararg resourceAwsS3BucketOwnerId: Any): Unit = + resourceAwsS3BucketOwnerId(resourceAwsS3BucketOwnerId.toList()) + + /** + * @param resourceAwsS3BucketOwnerName The display name of the owner of the S3 bucket. + */ + override fun resourceAwsS3BucketOwnerName(resourceAwsS3BucketOwnerName: IResolvable) { + cdkBuilder.resourceAwsS3BucketOwnerName(resourceAwsS3BucketOwnerName.let(IResolvable::unwrap)) + } + + /** + * @param resourceAwsS3BucketOwnerName The display name of the owner of the S3 bucket. + */ + override fun resourceAwsS3BucketOwnerName(resourceAwsS3BucketOwnerName: List) { + cdkBuilder.resourceAwsS3BucketOwnerName(resourceAwsS3BucketOwnerName.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param resourceAwsS3BucketOwnerName The display name of the owner of the S3 bucket. + */ + override fun resourceAwsS3BucketOwnerName(vararg resourceAwsS3BucketOwnerName: Any): Unit = + resourceAwsS3BucketOwnerName(resourceAwsS3BucketOwnerName.toList()) + + /** + * @param resourceContainerImageId The identifier of the image related to a finding. + */ + override fun resourceContainerImageId(resourceContainerImageId: IResolvable) { + cdkBuilder.resourceContainerImageId(resourceContainerImageId.let(IResolvable::unwrap)) + } + + /** + * @param resourceContainerImageId The identifier of the image related to a finding. + */ + override fun resourceContainerImageId(resourceContainerImageId: List) { + cdkBuilder.resourceContainerImageId(resourceContainerImageId.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param resourceContainerImageId The identifier of the image related to a finding. + */ + override fun resourceContainerImageId(vararg resourceContainerImageId: Any): Unit = + resourceContainerImageId(resourceContainerImageId.toList()) + + /** + * @param resourceContainerImageName The name of the image related to a finding. + */ + override fun resourceContainerImageName(resourceContainerImageName: IResolvable) { + cdkBuilder.resourceContainerImageName(resourceContainerImageName.let(IResolvable::unwrap)) + } + + /** + * @param resourceContainerImageName The name of the image related to a finding. + */ + override fun resourceContainerImageName(resourceContainerImageName: List) { + cdkBuilder.resourceContainerImageName(resourceContainerImageName.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param resourceContainerImageName The name of the image related to a finding. + */ + override fun resourceContainerImageName(vararg resourceContainerImageName: Any): Unit = + resourceContainerImageName(resourceContainerImageName.toList()) + + /** + * @param resourceContainerLaunchedAt A timestamp that identifies when the container was + * started. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + override fun resourceContainerLaunchedAt(resourceContainerLaunchedAt: IResolvable) { + cdkBuilder.resourceContainerLaunchedAt(resourceContainerLaunchedAt.let(IResolvable::unwrap)) + } + + /** + * @param resourceContainerLaunchedAt A timestamp that identifies when the container was + * started. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + override fun resourceContainerLaunchedAt(resourceContainerLaunchedAt: List) { + cdkBuilder.resourceContainerLaunchedAt(resourceContainerLaunchedAt.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param resourceContainerLaunchedAt A timestamp that identifies when the container was + * started. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + override fun resourceContainerLaunchedAt(vararg resourceContainerLaunchedAt: Any): Unit = + resourceContainerLaunchedAt(resourceContainerLaunchedAt.toList()) + + /** + * @param resourceContainerName The name of the container related to a finding. + */ + override fun resourceContainerName(resourceContainerName: IResolvable) { + cdkBuilder.resourceContainerName(resourceContainerName.let(IResolvable::unwrap)) + } + + /** + * @param resourceContainerName The name of the container related to a finding. + */ + override fun resourceContainerName(resourceContainerName: List) { + cdkBuilder.resourceContainerName(resourceContainerName.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param resourceContainerName The name of the container related to a finding. + */ + override fun resourceContainerName(vararg resourceContainerName: Any): Unit = + resourceContainerName(resourceContainerName.toList()) + + /** + * @param resourceDetailsOther The details of a resource that doesn't have a specific subfield + * for the resource type defined. + */ + override fun resourceDetailsOther(resourceDetailsOther: IResolvable) { + cdkBuilder.resourceDetailsOther(resourceDetailsOther.let(IResolvable::unwrap)) + } + + /** + * @param resourceDetailsOther The details of a resource that doesn't have a specific subfield + * for the resource type defined. + */ + override fun resourceDetailsOther(resourceDetailsOther: List) { + cdkBuilder.resourceDetailsOther(resourceDetailsOther.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param resourceDetailsOther The details of a resource that doesn't have a specific subfield + * for the resource type defined. + */ + override fun resourceDetailsOther(vararg resourceDetailsOther: Any): Unit = + resourceDetailsOther(resourceDetailsOther.toList()) + + /** + * @param resourceId The canonical identifier for the given resource type. + */ + override fun resourceId(resourceId: IResolvable) { + cdkBuilder.resourceId(resourceId.let(IResolvable::unwrap)) + } + + /** + * @param resourceId The canonical identifier for the given resource type. + */ + override fun resourceId(resourceId: List) { + cdkBuilder.resourceId(resourceId.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param resourceId The canonical identifier for the given resource type. + */ + override fun resourceId(vararg resourceId: Any): Unit = resourceId(resourceId.toList()) + + /** + * @param resourcePartition The canonical AWS partition name that the Region is assigned to. + */ + override fun resourcePartition(resourcePartition: IResolvable) { + cdkBuilder.resourcePartition(resourcePartition.let(IResolvable::unwrap)) + } + + /** + * @param resourcePartition The canonical AWS partition name that the Region is assigned to. + */ + override fun resourcePartition(resourcePartition: List) { + cdkBuilder.resourcePartition(resourcePartition.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param resourcePartition The canonical AWS partition name that the Region is assigned to. + */ + override fun resourcePartition(vararg resourcePartition: Any): Unit = + resourcePartition(resourcePartition.toList()) + + /** + * @param resourceRegion The canonical AWS external Region name where this resource is + * located. + */ + override fun resourceRegion(resourceRegion: IResolvable) { + cdkBuilder.resourceRegion(resourceRegion.let(IResolvable::unwrap)) + } + + /** + * @param resourceRegion The canonical AWS external Region name where this resource is + * located. + */ + override fun resourceRegion(resourceRegion: List) { + cdkBuilder.resourceRegion(resourceRegion.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param resourceRegion The canonical AWS external Region name where this resource is + * located. + */ + override fun resourceRegion(vararg resourceRegion: Any): Unit = + resourceRegion(resourceRegion.toList()) + + /** + * @param resourceTags A list of AWS tags associated with a resource at the time the finding + * was processed. + */ + override fun resourceTags(resourceTags: IResolvable) { + cdkBuilder.resourceTags(resourceTags.let(IResolvable::unwrap)) + } + + /** + * @param resourceTags A list of AWS tags associated with a resource at the time the finding + * was processed. + */ + override fun resourceTags(resourceTags: List) { + cdkBuilder.resourceTags(resourceTags.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param resourceTags A list of AWS tags associated with a resource at the time the finding + * was processed. + */ + override fun resourceTags(vararg resourceTags: Any): Unit = + resourceTags(resourceTags.toList()) + + /** + * @param resourceType Specifies the type of the resource that details are provided for. + */ + override fun resourceType(resourceType: IResolvable) { + cdkBuilder.resourceType(resourceType.let(IResolvable::unwrap)) + } + + /** + * @param resourceType Specifies the type of the resource that details are provided for. + */ + override fun resourceType(resourceType: List) { + cdkBuilder.resourceType(resourceType.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param resourceType Specifies the type of the resource that details are provided for. + */ + override fun resourceType(vararg resourceType: Any): Unit = + resourceType(resourceType.toList()) + + /** + * @param sample Indicates whether or not sample findings are included in the filter results. + */ + override fun sample(sample: IResolvable) { + cdkBuilder.sample(sample.let(IResolvable::unwrap)) + } + + /** + * @param sample Indicates whether or not sample findings are included in the filter results. + */ + override fun sample(sample: List) { + cdkBuilder.sample(sample.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param sample Indicates whether or not sample findings are included in the filter results. + */ + override fun sample(vararg sample: Any): Unit = sample(sample.toList()) + + /** + * @param severityLabel The label of a finding's severity. + */ + override fun severityLabel(severityLabel: IResolvable) { + cdkBuilder.severityLabel(severityLabel.let(IResolvable::unwrap)) + } + + /** + * @param severityLabel The label of a finding's severity. + */ + override fun severityLabel(severityLabel: List) { + cdkBuilder.severityLabel(severityLabel.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param severityLabel The label of a finding's severity. + */ + override fun severityLabel(vararg severityLabel: Any): Unit = + severityLabel(severityLabel.toList()) + + /** + * @param severityNormalized Deprecated. The normalized severity of a finding. Instead of + * providing `Normalized` , provide `Label` . + * If you provide `Label` and do not provide `Normalized` , then `Normalized` is set + * automatically as follows. + * + * * `INFORMATIONAL` - 0 + * * `LOW` - 1 + * * `MEDIUM` - 40 + * * `HIGH` - 70 + * * `CRITICAL` - 90 + */ + override fun severityNormalized(severityNormalized: IResolvable) { + cdkBuilder.severityNormalized(severityNormalized.let(IResolvable::unwrap)) + } + + /** + * @param severityNormalized Deprecated. The normalized severity of a finding. Instead of + * providing `Normalized` , provide `Label` . + * If you provide `Label` and do not provide `Normalized` , then `Normalized` is set + * automatically as follows. + * + * * `INFORMATIONAL` - 0 + * * `LOW` - 1 + * * `MEDIUM` - 40 + * * `HIGH` - 70 + * * `CRITICAL` - 90 + */ + override fun severityNormalized(severityNormalized: List) { + cdkBuilder.severityNormalized(severityNormalized.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param severityNormalized Deprecated. The normalized severity of a finding. Instead of + * providing `Normalized` , provide `Label` . + * If you provide `Label` and do not provide `Normalized` , then `Normalized` is set + * automatically as follows. + * + * * `INFORMATIONAL` - 0 + * * `LOW` - 1 + * * `MEDIUM` - 40 + * * `HIGH` - 70 + * * `CRITICAL` - 90 + */ + override fun severityNormalized(vararg severityNormalized: Any): Unit = + severityNormalized(severityNormalized.toList()) + + /** + * @param severityProduct Deprecated. This attribute isn't included in findings. Instead of + * providing `Product` , provide `Original` . + * The native severity as defined by the AWS service or integrated partner product that + * generated the finding. + */ + override fun severityProduct(severityProduct: IResolvable) { + cdkBuilder.severityProduct(severityProduct.let(IResolvable::unwrap)) + } + + /** + * @param severityProduct Deprecated. This attribute isn't included in findings. Instead of + * providing `Product` , provide `Original` . + * The native severity as defined by the AWS service or integrated partner product that + * generated the finding. + */ + override fun severityProduct(severityProduct: List) { + cdkBuilder.severityProduct(severityProduct.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param severityProduct Deprecated. This attribute isn't included in findings. Instead of + * providing `Product` , provide `Original` . + * The native severity as defined by the AWS service or integrated partner product that + * generated the finding. + */ + override fun severityProduct(vararg severityProduct: Any): Unit = + severityProduct(severityProduct.toList()) + + /** + * @param sourceUrl A URL that links to a page about the current finding in the security + * findings provider's solution. + */ + override fun sourceUrl(sourceUrl: IResolvable) { + cdkBuilder.sourceUrl(sourceUrl.let(IResolvable::unwrap)) + } + + /** + * @param sourceUrl A URL that links to a page about the current finding in the security + * findings provider's solution. + */ + override fun sourceUrl(sourceUrl: List) { + cdkBuilder.sourceUrl(sourceUrl.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param sourceUrl A URL that links to a page about the current finding in the security + * findings provider's solution. + */ + override fun sourceUrl(vararg sourceUrl: Any): Unit = sourceUrl(sourceUrl.toList()) + + /** + * @param threatIntelIndicatorCategory The category of a threat intelligence indicator. + */ + override fun threatIntelIndicatorCategory(threatIntelIndicatorCategory: IResolvable) { + cdkBuilder.threatIntelIndicatorCategory(threatIntelIndicatorCategory.let(IResolvable::unwrap)) + } + + /** + * @param threatIntelIndicatorCategory The category of a threat intelligence indicator. + */ + override fun threatIntelIndicatorCategory(threatIntelIndicatorCategory: List) { + cdkBuilder.threatIntelIndicatorCategory(threatIntelIndicatorCategory.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param threatIntelIndicatorCategory The category of a threat intelligence indicator. + */ + override fun threatIntelIndicatorCategory(vararg threatIntelIndicatorCategory: Any): Unit = + threatIntelIndicatorCategory(threatIntelIndicatorCategory.toList()) + + /** + * @param threatIntelIndicatorLastObservedAt A timestamp that identifies the last observation + * of a threat intelligence indicator. + */ + override + fun threatIntelIndicatorLastObservedAt(threatIntelIndicatorLastObservedAt: IResolvable) { + cdkBuilder.threatIntelIndicatorLastObservedAt(threatIntelIndicatorLastObservedAt.let(IResolvable::unwrap)) + } + + /** + * @param threatIntelIndicatorLastObservedAt A timestamp that identifies the last observation + * of a threat intelligence indicator. + */ + override + fun threatIntelIndicatorLastObservedAt(threatIntelIndicatorLastObservedAt: List) { + cdkBuilder.threatIntelIndicatorLastObservedAt(threatIntelIndicatorLastObservedAt.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param threatIntelIndicatorLastObservedAt A timestamp that identifies the last observation + * of a threat intelligence indicator. + */ + override fun threatIntelIndicatorLastObservedAt(vararg + threatIntelIndicatorLastObservedAt: Any): Unit = + threatIntelIndicatorLastObservedAt(threatIntelIndicatorLastObservedAt.toList()) + + /** + * @param threatIntelIndicatorSource The source of the threat intelligence. + */ + override fun threatIntelIndicatorSource(threatIntelIndicatorSource: IResolvable) { + cdkBuilder.threatIntelIndicatorSource(threatIntelIndicatorSource.let(IResolvable::unwrap)) + } + + /** + * @param threatIntelIndicatorSource The source of the threat intelligence. + */ + override fun threatIntelIndicatorSource(threatIntelIndicatorSource: List) { + cdkBuilder.threatIntelIndicatorSource(threatIntelIndicatorSource.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param threatIntelIndicatorSource The source of the threat intelligence. + */ + override fun threatIntelIndicatorSource(vararg threatIntelIndicatorSource: Any): Unit = + threatIntelIndicatorSource(threatIntelIndicatorSource.toList()) + + /** + * @param threatIntelIndicatorSourceUrl The URL for more details from the source of the threat + * intelligence. + */ + override fun threatIntelIndicatorSourceUrl(threatIntelIndicatorSourceUrl: IResolvable) { + cdkBuilder.threatIntelIndicatorSourceUrl(threatIntelIndicatorSourceUrl.let(IResolvable::unwrap)) + } + + /** + * @param threatIntelIndicatorSourceUrl The URL for more details from the source of the threat + * intelligence. + */ + override fun threatIntelIndicatorSourceUrl(threatIntelIndicatorSourceUrl: List) { + cdkBuilder.threatIntelIndicatorSourceUrl(threatIntelIndicatorSourceUrl.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param threatIntelIndicatorSourceUrl The URL for more details from the source of the threat + * intelligence. + */ + override fun threatIntelIndicatorSourceUrl(vararg threatIntelIndicatorSourceUrl: Any): Unit = + threatIntelIndicatorSourceUrl(threatIntelIndicatorSourceUrl.toList()) + + /** + * @param threatIntelIndicatorType The type of a threat intelligence indicator. + */ + override fun threatIntelIndicatorType(threatIntelIndicatorType: IResolvable) { + cdkBuilder.threatIntelIndicatorType(threatIntelIndicatorType.let(IResolvable::unwrap)) + } + + /** + * @param threatIntelIndicatorType The type of a threat intelligence indicator. + */ + override fun threatIntelIndicatorType(threatIntelIndicatorType: List) { + cdkBuilder.threatIntelIndicatorType(threatIntelIndicatorType.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param threatIntelIndicatorType The type of a threat intelligence indicator. + */ + override fun threatIntelIndicatorType(vararg threatIntelIndicatorType: Any): Unit = + threatIntelIndicatorType(threatIntelIndicatorType.toList()) + + /** + * @param threatIntelIndicatorValue The value of a threat intelligence indicator. + */ + override fun threatIntelIndicatorValue(threatIntelIndicatorValue: IResolvable) { + cdkBuilder.threatIntelIndicatorValue(threatIntelIndicatorValue.let(IResolvable::unwrap)) + } + + /** + * @param threatIntelIndicatorValue The value of a threat intelligence indicator. + */ + override fun threatIntelIndicatorValue(threatIntelIndicatorValue: List) { + cdkBuilder.threatIntelIndicatorValue(threatIntelIndicatorValue.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param threatIntelIndicatorValue The value of a threat intelligence indicator. + */ + override fun threatIntelIndicatorValue(vararg threatIntelIndicatorValue: Any): Unit = + threatIntelIndicatorValue(threatIntelIndicatorValue.toList()) + + /** + * @param title A finding's title. + */ + override fun title(title: IResolvable) { + cdkBuilder.title(title.let(IResolvable::unwrap)) + } + + /** + * @param title A finding's title. + */ + override fun title(title: List) { + cdkBuilder.title(title.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param title A finding's title. + */ + override fun title(vararg title: Any): Unit = title(title.toList()) + + /** + * @param type A finding type in the format of `namespace/category/classifier` that classifies + * a finding. + */ + override fun type(type: IResolvable) { + cdkBuilder.type(type.let(IResolvable::unwrap)) + } + + /** + * @param type A finding type in the format of `namespace/category/classifier` that classifies + * a finding. + */ + override fun type(type: List) { + cdkBuilder.type(type.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param type A finding type in the format of `namespace/category/classifier` that classifies + * a finding. + */ + override fun type(vararg type: Any): Unit = type(type.toList()) + + /** + * @param updatedAt A timestamp that indicates when the security findings provider last + * updated the finding record. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + override fun updatedAt(updatedAt: IResolvable) { + cdkBuilder.updatedAt(updatedAt.let(IResolvable::unwrap)) + } + + /** + * @param updatedAt A timestamp that indicates when the security findings provider last + * updated the finding record. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + override fun updatedAt(updatedAt: List) { + cdkBuilder.updatedAt(updatedAt.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param updatedAt A timestamp that indicates when the security findings provider last + * updated the finding record. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + override fun updatedAt(vararg updatedAt: Any): Unit = updatedAt(updatedAt.toList()) + + /** + * @param userDefinedFields A list of name/value string pairs associated with the finding. + * These are custom, user-defined fields added to a finding. + */ + override fun userDefinedFields(userDefinedFields: IResolvable) { + cdkBuilder.userDefinedFields(userDefinedFields.let(IResolvable::unwrap)) + } + + /** + * @param userDefinedFields A list of name/value string pairs associated with the finding. + * These are custom, user-defined fields added to a finding. + */ + override fun userDefinedFields(userDefinedFields: List) { + cdkBuilder.userDefinedFields(userDefinedFields.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param userDefinedFields A list of name/value string pairs associated with the finding. + * These are custom, user-defined fields added to a finding. + */ + override fun userDefinedFields(vararg userDefinedFields: Any): Unit = + userDefinedFields(userDefinedFields.toList()) + + /** + * @param verificationState The veracity of a finding. + */ + override fun verificationState(verificationState: IResolvable) { + cdkBuilder.verificationState(verificationState.let(IResolvable::unwrap)) + } + + /** + * @param verificationState The veracity of a finding. + */ + override fun verificationState(verificationState: List) { + cdkBuilder.verificationState(verificationState.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param verificationState The veracity of a finding. + */ + override fun verificationState(vararg verificationState: Any): Unit = + verificationState(verificationState.toList()) + + /** + * @param vulnerabilitiesExploitAvailable Indicates whether a software vulnerability in your + * environment has a known exploit. + * You can filter findings by this field only if you use Security Hub and Amazon Inspector. + */ + override fun vulnerabilitiesExploitAvailable(vulnerabilitiesExploitAvailable: IResolvable) { + cdkBuilder.vulnerabilitiesExploitAvailable(vulnerabilitiesExploitAvailable.let(IResolvable::unwrap)) + } + + /** + * @param vulnerabilitiesExploitAvailable Indicates whether a software vulnerability in your + * environment has a known exploit. + * You can filter findings by this field only if you use Security Hub and Amazon Inspector. + */ + override fun vulnerabilitiesExploitAvailable(vulnerabilitiesExploitAvailable: List) { + cdkBuilder.vulnerabilitiesExploitAvailable(vulnerabilitiesExploitAvailable.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param vulnerabilitiesExploitAvailable Indicates whether a software vulnerability in your + * environment has a known exploit. + * You can filter findings by this field only if you use Security Hub and Amazon Inspector. + */ + override fun vulnerabilitiesExploitAvailable(vararg vulnerabilitiesExploitAvailable: Any): + Unit = vulnerabilitiesExploitAvailable(vulnerabilitiesExploitAvailable.toList()) + + /** + * @param vulnerabilitiesFixAvailable Indicates whether a vulnerability is fixed in a newer + * version of the affected software packages. + * You can filter findings by this field only if you use Security Hub and Amazon Inspector. + */ + override fun vulnerabilitiesFixAvailable(vulnerabilitiesFixAvailable: IResolvable) { + cdkBuilder.vulnerabilitiesFixAvailable(vulnerabilitiesFixAvailable.let(IResolvable::unwrap)) + } + + /** + * @param vulnerabilitiesFixAvailable Indicates whether a vulnerability is fixed in a newer + * version of the affected software packages. + * You can filter findings by this field only if you use Security Hub and Amazon Inspector. + */ + override fun vulnerabilitiesFixAvailable(vulnerabilitiesFixAvailable: List) { + cdkBuilder.vulnerabilitiesFixAvailable(vulnerabilitiesFixAvailable.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param vulnerabilitiesFixAvailable Indicates whether a vulnerability is fixed in a newer + * version of the affected software packages. + * You can filter findings by this field only if you use Security Hub and Amazon Inspector. + */ + override fun vulnerabilitiesFixAvailable(vararg vulnerabilitiesFixAvailable: Any): Unit = + vulnerabilitiesFixAvailable(vulnerabilitiesFixAvailable.toList()) + + /** + * @param workflowState The workflow state of a finding. + * Note that this field is deprecated. To search for a finding based on its workflow status, + * use `WorkflowStatus` . + */ + override fun workflowState(workflowState: IResolvable) { + cdkBuilder.workflowState(workflowState.let(IResolvable::unwrap)) + } + + /** + * @param workflowState The workflow state of a finding. + * Note that this field is deprecated. To search for a finding based on its workflow status, + * use `WorkflowStatus` . + */ + override fun workflowState(workflowState: List) { + cdkBuilder.workflowState(workflowState.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param workflowState The workflow state of a finding. + * Note that this field is deprecated. To search for a finding based on its workflow status, + * use `WorkflowStatus` . + */ + override fun workflowState(vararg workflowState: Any): Unit = + workflowState(workflowState.toList()) + + /** + * @param workflowStatus The status of the investigation into a finding. Allowed values are + * the following. + * * `NEW` - The initial state of a finding, before it is reviewed. + * + * Security Hub also resets the workflow status from `NOTIFIED` or `RESOLVED` to `NEW` in the + * following cases: + * + * * `RecordState` changes from `ARCHIVED` to `ACTIVE` . + * * `Compliance.Status` changes from `PASSED` to either `WARNING` , `FAILED` , or + * `NOT_AVAILABLE` . + * * `NOTIFIED` - Indicates that the resource owner has been notified about the security + * issue. Used when the initial reviewer is not the resource owner, and needs intervention from + * the resource owner. + * + * If one of the following occurs, the workflow status is changed automatically from + * `NOTIFIED` to `NEW` : + * + * * `RecordState` changes from `ARCHIVED` to `ACTIVE` . + * * `Compliance.Status` changes from `PASSED` to `FAILED` , `WARNING` , or `NOT_AVAILABLE` . + * * `SUPPRESSED` - Indicates that you reviewed the finding and do not believe that any action + * is needed. + * + * The workflow status of a `SUPPRESSED` finding does not change if `RecordState` changes from + * `ARCHIVED` to `ACTIVE` . + * + * * `RESOLVED` - The finding was reviewed and remediated and is now considered resolved. + * + * The finding remains `RESOLVED` unless one of the following occurs: + * + * * `RecordState` changes from `ARCHIVED` to `ACTIVE` . + * * `Compliance.Status` changes from `PASSED` to `FAILED` , `WARNING` , or `NOT_AVAILABLE` . + * + * In those cases, the workflow status is automatically reset to `NEW` . + * + * For findings from controls, if `Compliance.Status` is `PASSED` , then Security Hub + * automatically sets the workflow status to `RESOLVED` . + */ + override fun workflowStatus(workflowStatus: IResolvable) { + cdkBuilder.workflowStatus(workflowStatus.let(IResolvable::unwrap)) + } + + /** + * @param workflowStatus The status of the investigation into a finding. Allowed values are + * the following. + * * `NEW` - The initial state of a finding, before it is reviewed. + * + * Security Hub also resets the workflow status from `NOTIFIED` or `RESOLVED` to `NEW` in the + * following cases: + * + * * `RecordState` changes from `ARCHIVED` to `ACTIVE` . + * * `Compliance.Status` changes from `PASSED` to either `WARNING` , `FAILED` , or + * `NOT_AVAILABLE` . + * * `NOTIFIED` - Indicates that the resource owner has been notified about the security + * issue. Used when the initial reviewer is not the resource owner, and needs intervention from + * the resource owner. + * + * If one of the following occurs, the workflow status is changed automatically from + * `NOTIFIED` to `NEW` : + * + * * `RecordState` changes from `ARCHIVED` to `ACTIVE` . + * * `Compliance.Status` changes from `PASSED` to `FAILED` , `WARNING` , or `NOT_AVAILABLE` . + * * `SUPPRESSED` - Indicates that you reviewed the finding and do not believe that any action + * is needed. + * + * The workflow status of a `SUPPRESSED` finding does not change if `RecordState` changes from + * `ARCHIVED` to `ACTIVE` . + * + * * `RESOLVED` - The finding was reviewed and remediated and is now considered resolved. + * + * The finding remains `RESOLVED` unless one of the following occurs: + * + * * `RecordState` changes from `ARCHIVED` to `ACTIVE` . + * * `Compliance.Status` changes from `PASSED` to `FAILED` , `WARNING` , or `NOT_AVAILABLE` . + * + * In those cases, the workflow status is automatically reset to `NEW` . + * + * For findings from controls, if `Compliance.Status` is `PASSED` , then Security Hub + * automatically sets the workflow status to `RESOLVED` . + */ + override fun workflowStatus(workflowStatus: List) { + cdkBuilder.workflowStatus(workflowStatus.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param workflowStatus The status of the investigation into a finding. Allowed values are + * the following. + * * `NEW` - The initial state of a finding, before it is reviewed. + * + * Security Hub also resets the workflow status from `NOTIFIED` or `RESOLVED` to `NEW` in the + * following cases: + * + * * `RecordState` changes from `ARCHIVED` to `ACTIVE` . + * * `Compliance.Status` changes from `PASSED` to either `WARNING` , `FAILED` , or + * `NOT_AVAILABLE` . + * * `NOTIFIED` - Indicates that the resource owner has been notified about the security + * issue. Used when the initial reviewer is not the resource owner, and needs intervention from + * the resource owner. + * + * If one of the following occurs, the workflow status is changed automatically from + * `NOTIFIED` to `NEW` : + * + * * `RecordState` changes from `ARCHIVED` to `ACTIVE` . + * * `Compliance.Status` changes from `PASSED` to `FAILED` , `WARNING` , or `NOT_AVAILABLE` . + * * `SUPPRESSED` - Indicates that you reviewed the finding and do not believe that any action + * is needed. + * + * The workflow status of a `SUPPRESSED` finding does not change if `RecordState` changes from + * `ARCHIVED` to `ACTIVE` . + * + * * `RESOLVED` - The finding was reviewed and remediated and is now considered resolved. + * + * The finding remains `RESOLVED` unless one of the following occurs: + * + * * `RecordState` changes from `ARCHIVED` to `ACTIVE` . + * * `Compliance.Status` changes from `PASSED` to `FAILED` , `WARNING` , or `NOT_AVAILABLE` . + * + * In those cases, the workflow status is automatically reset to `NEW` . + * + * For findings from controls, if `Compliance.Status` is `PASSED` , then Security Hub + * automatically sets the workflow status to `RESOLVED` . + */ + override fun workflowStatus(vararg workflowStatus: Any): Unit = + workflowStatus(workflowStatus.toList()) + + public fun build(): + software.amazon.awscdk.services.securityhub.CfnInsight.AwsSecurityFindingFiltersProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.securityhub.CfnInsight.AwsSecurityFindingFiltersProperty, + ) : CdkObject(cdkObject), AwsSecurityFindingFiltersProperty { + /** + * The AWS account ID in which a finding is generated. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-awsaccountid) + */ + override fun awsAccountId(): Any? = unwrap(this).getAwsAccountId() + + /** + * The name of the AWS account in which a finding is generated. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-awsaccountname) + */ + override fun awsAccountName(): Any? = unwrap(this).getAwsAccountName() + + /** + * The name of the findings provider (company) that owns the solution (product) that generates + * findings. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-companyname) + */ + override fun companyName(): Any? = unwrap(this).getCompanyName() + + /** + * The unique identifier of a standard in which a control is enabled. + * + * This field consists of the resource portion of the Amazon Resource Name (ARN) returned for + * a standard in the + * [DescribeStandards](https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_DescribeStandards.html) + * API response. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-complianceassociatedstandardsid) + */ + override fun complianceAssociatedStandardsId(): Any? = + unwrap(this).getComplianceAssociatedStandardsId() + + /** + * The unique identifier of a control across standards. + * + * Values for this field typically consist of an AWS service and a number, such as + * APIGateway.5. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-compliancesecuritycontrolid) + */ + override fun complianceSecurityControlId(): Any? = + unwrap(this).getComplianceSecurityControlId() + + /** + * The name of a security control parameter. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-compliancesecuritycontrolparametersname) + */ + override fun complianceSecurityControlParametersName(): Any? = + unwrap(this).getComplianceSecurityControlParametersName() + + /** + * The current value of a security control parameter. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-compliancesecuritycontrolparametersvalue) + */ + override fun complianceSecurityControlParametersValue(): Any? = + unwrap(this).getComplianceSecurityControlParametersValue() + + /** + * Exclusive to findings that are generated as the result of a check run against a specific + * rule in a supported standard, such as CIS AWS Foundations. + * + * Contains security standard-related finding details. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-compliancestatus) + */ + override fun complianceStatus(): Any? = unwrap(this).getComplianceStatus() + + /** + * A finding's confidence. + * + * Confidence is defined as the likelihood that a finding accurately identifies the behavior + * or issue that it was intended to identify. + * + * Confidence is scored on a 0-100 basis using a ratio scale, where 0 means zero percent + * confidence and 100 means 100 percent confidence. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-confidence) + */ + override fun confidence(): Any? = unwrap(this).getConfidence() + + /** + * A timestamp that indicates when the security findings provider created the potential + * security issue that a finding reflects. + * + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-createdat) + */ + override fun createdAt(): Any? = unwrap(this).getCreatedAt() + + /** + * The level of importance assigned to the resources associated with the finding. + * + * A score of 0 means that the underlying resources have no criticality, and a score of 100 is + * reserved for the most critical resources. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-criticality) + */ + override fun criticality(): Any? = unwrap(this).getCriticality() + + /** + * A finding's description. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-description) + */ + override fun description(): Any? = unwrap(this).getDescription() + + /** + * The finding provider value for the finding confidence. + * + * Confidence is defined as the likelihood that a finding accurately identifies the behavior + * or issue that it was intended to identify. + * + * Confidence is scored on a 0-100 basis using a ratio scale, where 0 means zero percent + * confidence and 100 means 100 percent confidence. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-findingproviderfieldsconfidence) + */ + override fun findingProviderFieldsConfidence(): Any? = + unwrap(this).getFindingProviderFieldsConfidence() + + /** + * The finding provider value for the level of importance assigned to the resources associated + * with the findings. + * + * A score of 0 means that the underlying resources have no criticality, and a score of 100 is + * reserved for the most critical resources. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-findingproviderfieldscriticality) + */ + override fun findingProviderFieldsCriticality(): Any? = + unwrap(this).getFindingProviderFieldsCriticality() + + /** + * The finding identifier of a related finding that is identified by the finding provider. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-findingproviderfieldsrelatedfindingsid) + */ + override fun findingProviderFieldsRelatedFindingsId(): Any? = + unwrap(this).getFindingProviderFieldsRelatedFindingsId() + + /** + * The ARN of the solution that generated a related finding that is identified by the finding + * provider. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-findingproviderfieldsrelatedfindingsproductarn) + */ + override fun findingProviderFieldsRelatedFindingsProductArn(): Any? = + unwrap(this).getFindingProviderFieldsRelatedFindingsProductArn() + + /** + * The finding provider value for the severity label. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-findingproviderfieldsseveritylabel) + */ + override fun findingProviderFieldsSeverityLabel(): Any? = + unwrap(this).getFindingProviderFieldsSeverityLabel() + + /** + * The finding provider's original value for the severity. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-findingproviderfieldsseverityoriginal) + */ + override fun findingProviderFieldsSeverityOriginal(): Any? = + unwrap(this).getFindingProviderFieldsSeverityOriginal() + + /** + * One or more finding types that the finding provider assigned to the finding. + * + * Uses the format of `namespace/category/classifier` that classify a finding. + * + * Valid namespace values are: Software and Configuration Checks | TTPs | Effects | Unusual + * Behaviors | Sensitive Data Identifications + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-findingproviderfieldstypes) + */ + override fun findingProviderFieldsTypes(): Any? = unwrap(this).getFindingProviderFieldsTypes() + + /** + * A timestamp that indicates when the security findings provider first observed the potential + * security issue that a finding captured. + * + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-firstobservedat) + */ + override fun firstObservedAt(): Any? = unwrap(this).getFirstObservedAt() + + /** + * The identifier for the solution-specific component (a discrete unit of logic) that + * generated a finding. + * + * In various security findings providers' solutions, this generator can be called a rule, a + * check, a detector, a plugin, etc. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-generatorid) + */ + override fun generatorId(): Any? = unwrap(this).getGeneratorId() + + /** + * The security findings provider-specific identifier for a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-id) + */ + override fun id(): Any? = unwrap(this).getId() + + /** + * This field is deprecated. + * + * A keyword for a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-keyword) + */ + override fun keyword(): Any? = unwrap(this).getKeyword() + + /** + * A timestamp that indicates when the security findings provider most recently observed the + * potential security issue that a finding captured. + * + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-lastobservedat) + */ + override fun lastObservedAt(): Any? = unwrap(this).getLastObservedAt() + + /** + * The name of the malware that was observed. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-malwarename) + */ + override fun malwareName(): Any? = unwrap(this).getMalwareName() + + /** + * The filesystem path of the malware that was observed. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-malwarepath) + */ + override fun malwarePath(): Any? = unwrap(this).getMalwarePath() + + /** + * The state of the malware that was observed. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-malwarestate) + */ + override fun malwareState(): Any? = unwrap(this).getMalwareState() + + /** + * The type of the malware that was observed. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-malwaretype) + */ + override fun malwareType(): Any? = unwrap(this).getMalwareType() + + /** + * The destination domain of network-related information about a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-networkdestinationdomain) + */ + override fun networkDestinationDomain(): Any? = unwrap(this).getNetworkDestinationDomain() + + /** + * The destination IPv4 address of network-related information about a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-networkdestinationipv4) + */ + override fun networkDestinationIpV4(): Any? = unwrap(this).getNetworkDestinationIpV4() + + /** + * The destination IPv6 address of network-related information about a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-networkdestinationipv6) + */ + override fun networkDestinationIpV6(): Any? = unwrap(this).getNetworkDestinationIpV6() + + /** + * The destination port of network-related information about a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-networkdestinationport) + */ + override fun networkDestinationPort(): Any? = unwrap(this).getNetworkDestinationPort() + + /** + * Indicates the direction of network traffic associated with a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-networkdirection) + */ + override fun networkDirection(): Any? = unwrap(this).getNetworkDirection() + + /** + * The protocol of network-related information about a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-networkprotocol) + */ + override fun networkProtocol(): Any? = unwrap(this).getNetworkProtocol() + + /** + * The source domain of network-related information about a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-networksourcedomain) + */ + override fun networkSourceDomain(): Any? = unwrap(this).getNetworkSourceDomain() + + /** + * The source IPv4 address of network-related information about a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-networksourceipv4) + */ + override fun networkSourceIpV4(): Any? = unwrap(this).getNetworkSourceIpV4() + + /** + * The source IPv6 address of network-related information about a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-networksourceipv6) + */ + override fun networkSourceIpV6(): Any? = unwrap(this).getNetworkSourceIpV6() + + /** + * The source media access control (MAC) address of network-related information about a + * finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-networksourcemac) + */ + override fun networkSourceMac(): Any? = unwrap(this).getNetworkSourceMac() + + /** + * The source port of network-related information about a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-networksourceport) + */ + override fun networkSourcePort(): Any? = unwrap(this).getNetworkSourcePort() + + /** + * The text of a note. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-notetext) + */ + override fun noteText(): Any? = unwrap(this).getNoteText() + + /** + * The timestamp of when the note was updated. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-noteupdatedat) + */ + override fun noteUpdatedAt(): Any? = unwrap(this).getNoteUpdatedAt() + + /** + * The principal that created a note. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-noteupdatedby) + */ + override fun noteUpdatedBy(): Any? = unwrap(this).getNoteUpdatedBy() + + /** + * A timestamp that identifies when the process was launched. + * + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-processlaunchedat) + */ + override fun processLaunchedAt(): Any? = unwrap(this).getProcessLaunchedAt() + + /** + * The name of the process. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-processname) + */ + override fun processName(): Any? = unwrap(this).getProcessName() + + /** + * The parent process ID. + * + * This field accepts positive integers between `O` and `2147483647` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-processparentpid) + */ + override fun processParentPid(): Any? = unwrap(this).getProcessParentPid() + + /** + * The path to the process executable. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-processpath) + */ + override fun processPath(): Any? = unwrap(this).getProcessPath() + + /** + * The process ID. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-processpid) + */ + override fun processPid(): Any? = unwrap(this).getProcessPid() + + /** + * A timestamp that identifies when the process was terminated. + * + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-processterminatedat) + */ + override fun processTerminatedAt(): Any? = unwrap(this).getProcessTerminatedAt() + + /** + * The ARN generated by Security Hub that uniquely identifies a third-party company (security + * findings provider) after this provider's product (solution that generates findings) is + * registered with Security Hub. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-productarn) + */ + override fun productArn(): Any? = unwrap(this).getProductArn() + + /** + * A data type where security findings providers can include additional solution-specific + * details that aren't part of the defined `AwsSecurityFinding` format. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-productfields) + */ + override fun productFields(): Any? = unwrap(this).getProductFields() + + /** + * The name of the solution (product) that generates findings. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-productname) + */ + override fun productName(): Any? = unwrap(this).getProductName() + + /** + * The recommendation of what to do about the issue described in a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-recommendationtext) + */ + override fun recommendationText(): Any? = unwrap(this).getRecommendationText() + + /** + * The updated record state for the finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-recordstate) + */ + override fun recordState(): Any? = unwrap(this).getRecordState() + + /** + * The Region from which the finding was generated. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-region) + */ + override fun region(): Any? = unwrap(this).getRegion() + + /** + * The solution-generated identifier for a related finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-relatedfindingsid) + */ + override fun relatedFindingsId(): Any? = unwrap(this).getRelatedFindingsId() + + /** + * The ARN of the solution that generated a related finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-relatedfindingsproductarn) + */ + override fun relatedFindingsProductArn(): Any? = unwrap(this).getRelatedFindingsProductArn() + + /** + * The ARN of the application that is related to a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceapplicationarn) + */ + override fun resourceApplicationArn(): Any? = unwrap(this).getResourceApplicationArn() + + /** + * The name of the application that is related to a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceapplicationname) + */ + override fun resourceApplicationName(): Any? = unwrap(this).getResourceApplicationName() + + /** + * The IAM profile ARN of the instance. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawsec2instanceiaminstanceprofilearn) + */ + override fun resourceAwsEc2InstanceIamInstanceProfileArn(): Any? = + unwrap(this).getResourceAwsEc2InstanceIamInstanceProfileArn() + + /** + * The Amazon Machine Image (AMI) ID of the instance. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawsec2instanceimageid) + */ + override fun resourceAwsEc2InstanceImageId(): Any? = + unwrap(this).getResourceAwsEc2InstanceImageId() + + /** + * The IPv4 addresses associated with the instance. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawsec2instanceipv4addresses) + */ + override fun resourceAwsEc2InstanceIpV4Addresses(): Any? = + unwrap(this).getResourceAwsEc2InstanceIpV4Addresses() + + /** + * The IPv6 addresses associated with the instance. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawsec2instanceipv6addresses) + */ + override fun resourceAwsEc2InstanceIpV6Addresses(): Any? = + unwrap(this).getResourceAwsEc2InstanceIpV6Addresses() + + /** + * The key name associated with the instance. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawsec2instancekeyname) + */ + override fun resourceAwsEc2InstanceKeyName(): Any? = + unwrap(this).getResourceAwsEc2InstanceKeyName() + + /** + * The date and time the instance was launched. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawsec2instancelaunchedat) + */ + override fun resourceAwsEc2InstanceLaunchedAt(): Any? = + unwrap(this).getResourceAwsEc2InstanceLaunchedAt() + + /** + * The identifier of the subnet that the instance was launched in. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawsec2instancesubnetid) + */ + override fun resourceAwsEc2InstanceSubnetId(): Any? = + unwrap(this).getResourceAwsEc2InstanceSubnetId() + + /** + * The instance type of the instance. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawsec2instancetype) + */ + override fun resourceAwsEc2InstanceType(): Any? = unwrap(this).getResourceAwsEc2InstanceType() + + /** + * The identifier of the VPC that the instance was launched in. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawsec2instancevpcid) + */ + override fun resourceAwsEc2InstanceVpcId(): Any? = + unwrap(this).getResourceAwsEc2InstanceVpcId() + + /** + * The creation date/time of the IAM access key related to a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawsiamaccesskeycreatedat) + */ + override fun resourceAwsIamAccessKeyCreatedAt(): Any? = + unwrap(this).getResourceAwsIamAccessKeyCreatedAt() + + /** + * The name of the principal that is associated with an IAM access key. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawsiamaccesskeyprincipalname) + */ + override fun resourceAwsIamAccessKeyPrincipalName(): Any? = + unwrap(this).getResourceAwsIamAccessKeyPrincipalName() + + /** + * The status of the IAM access key related to a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawsiamaccesskeystatus) + */ + override fun resourceAwsIamAccessKeyStatus(): Any? = + unwrap(this).getResourceAwsIamAccessKeyStatus() + + /** + * This field is deprecated. + * + * The username associated with the IAM access key related to a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawsiamaccesskeyusername) + */ + override fun resourceAwsIamAccessKeyUserName(): Any? = + unwrap(this).getResourceAwsIamAccessKeyUserName() + + /** + * The name of an IAM user. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawsiamuserusername) + */ + override fun resourceAwsIamUserUserName(): Any? = unwrap(this).getResourceAwsIamUserUserName() + + /** + * The canonical user ID of the owner of the S3 bucket. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawss3bucketownerid) + */ + override fun resourceAwsS3BucketOwnerId(): Any? = unwrap(this).getResourceAwsS3BucketOwnerId() + + /** + * The display name of the owner of the S3 bucket. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceawss3bucketownername) + */ + override fun resourceAwsS3BucketOwnerName(): Any? = + unwrap(this).getResourceAwsS3BucketOwnerName() + + /** + * The identifier of the image related to a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourcecontainerimageid) + */ + override fun resourceContainerImageId(): Any? = unwrap(this).getResourceContainerImageId() + + /** + * The name of the image related to a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourcecontainerimagename) + */ + override fun resourceContainerImageName(): Any? = unwrap(this).getResourceContainerImageName() + + /** + * A timestamp that identifies when the container was started. + * + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourcecontainerlaunchedat) + */ + override fun resourceContainerLaunchedAt(): Any? = + unwrap(this).getResourceContainerLaunchedAt() + + /** + * The name of the container related to a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourcecontainername) + */ + override fun resourceContainerName(): Any? = unwrap(this).getResourceContainerName() + + /** + * The details of a resource that doesn't have a specific subfield for the resource type + * defined. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourcedetailsother) + */ + override fun resourceDetailsOther(): Any? = unwrap(this).getResourceDetailsOther() + + /** + * The canonical identifier for the given resource type. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceid) + */ + override fun resourceId(): Any? = unwrap(this).getResourceId() + + /** + * The canonical AWS partition name that the Region is assigned to. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourcepartition) + */ + override fun resourcePartition(): Any? = unwrap(this).getResourcePartition() + + /** + * The canonical AWS external Region name where this resource is located. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourceregion) + */ + override fun resourceRegion(): Any? = unwrap(this).getResourceRegion() + + /** + * A list of AWS tags associated with a resource at the time the finding was processed. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourcetags) + */ + override fun resourceTags(): Any? = unwrap(this).getResourceTags() + + /** + * Specifies the type of the resource that details are provided for. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-resourcetype) + */ + override fun resourceType(): Any? = unwrap(this).getResourceType() + + /** + * Indicates whether or not sample findings are included in the filter results. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-sample) + */ + override fun sample(): Any? = unwrap(this).getSample() + + /** + * The label of a finding's severity. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-severitylabel) + */ + override fun severityLabel(): Any? = unwrap(this).getSeverityLabel() + + /** + * Deprecated. The normalized severity of a finding. Instead of providing `Normalized` , + * provide `Label` . + * + * If you provide `Label` and do not provide `Normalized` , then `Normalized` is set + * automatically as follows. + * + * * `INFORMATIONAL` - 0 + * * `LOW` - 1 + * * `MEDIUM` - 40 + * * `HIGH` - 70 + * * `CRITICAL` - 90 + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-severitynormalized) + */ + override fun severityNormalized(): Any? = unwrap(this).getSeverityNormalized() + + /** + * Deprecated. This attribute isn't included in findings. Instead of providing `Product` , + * provide `Original` . + * + * The native severity as defined by the AWS service or integrated partner product that + * generated the finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-severityproduct) + */ + override fun severityProduct(): Any? = unwrap(this).getSeverityProduct() + + /** + * A URL that links to a page about the current finding in the security findings provider's + * solution. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-sourceurl) + */ + override fun sourceUrl(): Any? = unwrap(this).getSourceUrl() + + /** + * The category of a threat intelligence indicator. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-threatintelindicatorcategory) + */ + override fun threatIntelIndicatorCategory(): Any? = + unwrap(this).getThreatIntelIndicatorCategory() + + /** + * A timestamp that identifies the last observation of a threat intelligence indicator. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-threatintelindicatorlastobservedat) + */ + override fun threatIntelIndicatorLastObservedAt(): Any? = + unwrap(this).getThreatIntelIndicatorLastObservedAt() + + /** + * The source of the threat intelligence. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-threatintelindicatorsource) + */ + override fun threatIntelIndicatorSource(): Any? = unwrap(this).getThreatIntelIndicatorSource() + + /** + * The URL for more details from the source of the threat intelligence. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-threatintelindicatorsourceurl) + */ + override fun threatIntelIndicatorSourceUrl(): Any? = + unwrap(this).getThreatIntelIndicatorSourceUrl() + + /** + * The type of a threat intelligence indicator. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-threatintelindicatortype) + */ + override fun threatIntelIndicatorType(): Any? = unwrap(this).getThreatIntelIndicatorType() + + /** + * The value of a threat intelligence indicator. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-threatintelindicatorvalue) + */ + override fun threatIntelIndicatorValue(): Any? = unwrap(this).getThreatIntelIndicatorValue() + + /** + * A finding's title. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-title) + */ + override fun title(): Any? = unwrap(this).getTitle() + + /** + * A finding type in the format of `namespace/category/classifier` that classifies a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-type) + */ + override fun type(): Any? = unwrap(this).getType() + + /** + * A timestamp that indicates when the security findings provider last updated the finding + * record. + * + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-updatedat) + */ + override fun updatedAt(): Any? = unwrap(this).getUpdatedAt() + + /** + * A list of name/value string pairs associated with the finding. + * + * These are custom, user-defined fields added to a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-userdefinedfields) + */ + override fun userDefinedFields(): Any? = unwrap(this).getUserDefinedFields() + + /** + * The veracity of a finding. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-verificationstate) + */ + override fun verificationState(): Any? = unwrap(this).getVerificationState() + + /** + * Indicates whether a software vulnerability in your environment has a known exploit. + * + * You can filter findings by this field only if you use Security Hub and Amazon Inspector. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-vulnerabilitiesexploitavailable) + */ + override fun vulnerabilitiesExploitAvailable(): Any? = + unwrap(this).getVulnerabilitiesExploitAvailable() + + /** + * Indicates whether a vulnerability is fixed in a newer version of the affected software + * packages. + * + * You can filter findings by this field only if you use Security Hub and Amazon Inspector. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-vulnerabilitiesfixavailable) + */ + override fun vulnerabilitiesFixAvailable(): Any? = + unwrap(this).getVulnerabilitiesFixAvailable() + + /** + * The workflow state of a finding. + * + * Note that this field is deprecated. To search for a finding based on its workflow status, + * use `WorkflowStatus` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-workflowstate) + */ + override fun workflowState(): Any? = unwrap(this).getWorkflowState() + + /** + * The status of the investigation into a finding. Allowed values are the following. + * + * * `NEW` - The initial state of a finding, before it is reviewed. + * + * Security Hub also resets the workflow status from `NOTIFIED` or `RESOLVED` to `NEW` in the + * following cases: + * + * * `RecordState` changes from `ARCHIVED` to `ACTIVE` . + * * `Compliance.Status` changes from `PASSED` to either `WARNING` , `FAILED` , or + * `NOT_AVAILABLE` . + * * `NOTIFIED` - Indicates that the resource owner has been notified about the security + * issue. Used when the initial reviewer is not the resource owner, and needs intervention from + * the resource owner. + * + * If one of the following occurs, the workflow status is changed automatically from + * `NOTIFIED` to `NEW` : + * + * * `RecordState` changes from `ARCHIVED` to `ACTIVE` . + * * `Compliance.Status` changes from `PASSED` to `FAILED` , `WARNING` , or `NOT_AVAILABLE` . + * * `SUPPRESSED` - Indicates that you reviewed the finding and do not believe that any action + * is needed. + * + * The workflow status of a `SUPPRESSED` finding does not change if `RecordState` changes from + * `ARCHIVED` to `ACTIVE` . + * + * * `RESOLVED` - The finding was reviewed and remediated and is now considered resolved. + * + * The finding remains `RESOLVED` unless one of the following occurs: + * + * * `RecordState` changes from `ARCHIVED` to `ACTIVE` . + * * `Compliance.Status` changes from `PASSED` to `FAILED` , `WARNING` , or `NOT_AVAILABLE` . + * + * In those cases, the workflow status is automatically reset to `NEW` . + * + * For findings from controls, if `Compliance.Status` is `PASSED` , then Security Hub + * automatically sets the workflow status to `RESOLVED` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-awssecurityfindingfilters.html#cfn-securityhub-insight-awssecurityfindingfilters-workflowstatus) + */ + override fun workflowStatus(): Any? = unwrap(this).getWorkflowStatus() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): + AwsSecurityFindingFiltersProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.securityhub.CfnInsight.AwsSecurityFindingFiltersProperty): + AwsSecurityFindingFiltersProperty = CdkObjectWrappers.wrap(cdkObject) as? + AwsSecurityFindingFiltersProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: AwsSecurityFindingFiltersProperty): + software.amazon.awscdk.services.securityhub.CfnInsight.AwsSecurityFindingFiltersProperty = + (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.securityhub.CfnInsight.AwsSecurityFindingFiltersProperty + } + } + + /** + * Boolean filter for querying findings. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.securityhub.*; + * BooleanFilterProperty booleanFilterProperty = BooleanFilterProperty.builder() + * .value(false) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-booleanfilter.html) + */ + public interface BooleanFilterProperty { + /** + * The value of the boolean. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-booleanfilter.html#cfn-securityhub-insight-booleanfilter-value) + */ + public fun `value`(): Any + + /** + * A builder for [BooleanFilterProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param value The value of the boolean. + */ + public fun `value`(`value`: Boolean) + + /** + * @param value The value of the boolean. + */ + public fun `value`(`value`: IResolvable) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.securityhub.CfnInsight.BooleanFilterProperty.Builder = + software.amazon.awscdk.services.securityhub.CfnInsight.BooleanFilterProperty.builder() + + /** + * @param value The value of the boolean. + */ + override fun `value`(`value`: Boolean) { + cdkBuilder.`value`(`value`) + } + + /** + * @param value The value of the boolean. + */ + override fun `value`(`value`: IResolvable) { + cdkBuilder.`value`(`value`.let(IResolvable::unwrap)) + } + + public fun build(): + software.amazon.awscdk.services.securityhub.CfnInsight.BooleanFilterProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.securityhub.CfnInsight.BooleanFilterProperty, + ) : CdkObject(cdkObject), BooleanFilterProperty { + /** + * The value of the boolean. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-booleanfilter.html#cfn-securityhub-insight-booleanfilter-value) + */ + override fun `value`(): Any = unwrap(this).getValue() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): BooleanFilterProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.securityhub.CfnInsight.BooleanFilterProperty): + BooleanFilterProperty = CdkObjectWrappers.wrap(cdkObject) as? BooleanFilterProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: BooleanFilterProperty): + software.amazon.awscdk.services.securityhub.CfnInsight.BooleanFilterProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.securityhub.CfnInsight.BooleanFilterProperty + } + } + + /** + * A date filter for querying findings. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.securityhub.*; + * DateFilterProperty dateFilterProperty = DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-datefilter.html) + */ + public interface DateFilterProperty { + /** + * A date range for the date filter. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-datefilter.html#cfn-securityhub-insight-datefilter-daterange) + */ + public fun dateRange(): Any? = unwrap(this).getDateRange() + + /** + * A timestamp that provides the end date for the date filter. + * + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` ) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-datefilter.html#cfn-securityhub-insight-datefilter-end) + */ + public fun end(): String? = unwrap(this).getEnd() + + /** + * A timestamp that provides the start date for the date filter. + * + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` ) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-datefilter.html#cfn-securityhub-insight-datefilter-start) + */ + public fun start(): String? = unwrap(this).getStart() + + /** + * A builder for [DateFilterProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param dateRange A date range for the date filter. + */ + public fun dateRange(dateRange: IResolvable) + + /** + * @param dateRange A date range for the date filter. + */ + public fun dateRange(dateRange: DateRangeProperty) + + /** + * @param dateRange A date range for the date filter. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("cd5be85859ee59042cb459b07d8cfd5750360047d991f4b0dc9c5c267e16a0c9") + public fun dateRange(dateRange: DateRangeProperty.Builder.() -> Unit) + + /** + * @param end A timestamp that provides the end date for the date filter. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + public fun end(end: String) + + /** + * @param start A timestamp that provides the start date for the date filter. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + public fun start(start: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.securityhub.CfnInsight.DateFilterProperty.Builder = + software.amazon.awscdk.services.securityhub.CfnInsight.DateFilterProperty.builder() + + /** + * @param dateRange A date range for the date filter. + */ + override fun dateRange(dateRange: IResolvable) { + cdkBuilder.dateRange(dateRange.let(IResolvable::unwrap)) + } + + /** + * @param dateRange A date range for the date filter. + */ + override fun dateRange(dateRange: DateRangeProperty) { + cdkBuilder.dateRange(dateRange.let(DateRangeProperty::unwrap)) + } + + /** + * @param dateRange A date range for the date filter. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("cd5be85859ee59042cb459b07d8cfd5750360047d991f4b0dc9c5c267e16a0c9") + override fun dateRange(dateRange: DateRangeProperty.Builder.() -> Unit): Unit = + dateRange(DateRangeProperty(dateRange)) + + /** + * @param end A timestamp that provides the end date for the date filter. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + override fun end(end: String) { + cdkBuilder.end(end) + } + + /** + * @param start A timestamp that provides the start date for the date filter. + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + */ + override fun start(start: String) { + cdkBuilder.start(start) + } + + public fun build(): software.amazon.awscdk.services.securityhub.CfnInsight.DateFilterProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.securityhub.CfnInsight.DateFilterProperty, + ) : CdkObject(cdkObject), DateFilterProperty { + /** + * A date range for the date filter. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-datefilter.html#cfn-securityhub-insight-datefilter-daterange) + */ + override fun dateRange(): Any? = unwrap(this).getDateRange() + + /** + * A timestamp that provides the end date for the date filter. + * + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-datefilter.html#cfn-securityhub-insight-datefilter-end) + */ + override fun end(): String? = unwrap(this).getEnd() + + /** + * A timestamp that provides the start date for the date filter. + * + * This field accepts only the specified formats. Timestamps can end with `Z` or `("+" / "-") + * time-hour [":" time-minute]` . The time-secfrac after seconds is limited to a maximum of 9 + * digits. The offset is bounded by +/-18:00. Here are valid timestamp formats with examples: + * + * * `YYYY-MM-DDTHH:MM:SSZ` (for example, `2019-01-31T23:00:00Z` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmmZ` (for example, `2019-01-31T23:00:00.123456789Z` ) + * * `YYYY-MM-DDTHH:MM:SS+HH:MM` (for example, `2024-01-04T15:25:10+17:59` ) + * * `YYYY-MM-DDTHH:MM:SS-HHMM` (for example, `2024-01-04T15:25:10-1759` ) + * * `YYYY-MM-DDTHH:MM:SS.mmmmmmmmm+HH:MM` (for example, `2024-01-04T15:25:10.123456789+17:59` + * ) + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-datefilter.html#cfn-securityhub-insight-datefilter-start) + */ + override fun start(): String? = unwrap(this).getStart() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): DateFilterProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.securityhub.CfnInsight.DateFilterProperty): + DateFilterProperty = CdkObjectWrappers.wrap(cdkObject) as? DateFilterProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: DateFilterProperty): + software.amazon.awscdk.services.securityhub.CfnInsight.DateFilterProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.securityhub.CfnInsight.DateFilterProperty + } + } + + /** + * A date range for the date filter. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.securityhub.*; + * DateRangeProperty dateRangeProperty = DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-daterange.html) + */ + public interface DateRangeProperty { + /** + * A date range unit for the date filter. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-daterange.html#cfn-securityhub-insight-daterange-unit) + */ + public fun unit(): String + + /** + * A date range value for the date filter. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-daterange.html#cfn-securityhub-insight-daterange-value) + */ + public fun `value`(): Number + + /** + * A builder for [DateRangeProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param unit A date range unit for the date filter. + */ + public fun unit(unit: String) + + /** + * @param value A date range value for the date filter. + */ + public fun `value`(`value`: Number) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.securityhub.CfnInsight.DateRangeProperty.Builder = + software.amazon.awscdk.services.securityhub.CfnInsight.DateRangeProperty.builder() + + /** + * @param unit A date range unit for the date filter. + */ + override fun unit(unit: String) { + cdkBuilder.unit(unit) + } + + /** + * @param value A date range value for the date filter. + */ + override fun `value`(`value`: Number) { + cdkBuilder.`value`(`value`) + } + + public fun build(): software.amazon.awscdk.services.securityhub.CfnInsight.DateRangeProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.securityhub.CfnInsight.DateRangeProperty, + ) : CdkObject(cdkObject), DateRangeProperty { + /** + * A date range unit for the date filter. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-daterange.html#cfn-securityhub-insight-daterange-unit) + */ + override fun unit(): String = unwrap(this).getUnit() + + /** + * A date range value for the date filter. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-daterange.html#cfn-securityhub-insight-daterange-value) + */ + override fun `value`(): Number = unwrap(this).getValue() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): DateRangeProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.securityhub.CfnInsight.DateRangeProperty): + DateRangeProperty = CdkObjectWrappers.wrap(cdkObject) as? DateRangeProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: DateRangeProperty): + software.amazon.awscdk.services.securityhub.CfnInsight.DateRangeProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.securityhub.CfnInsight.DateRangeProperty + } + } + + /** + * The IP filter for querying findings. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.securityhub.*; + * IpFilterProperty ipFilterProperty = IpFilterProperty.builder() + * .cidr("cidr") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-ipfilter.html) + */ + public interface IpFilterProperty { + /** + * A finding's CIDR value. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-ipfilter.html#cfn-securityhub-insight-ipfilter-cidr) + */ + public fun cidr(): String + + /** + * A builder for [IpFilterProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param cidr A finding's CIDR value. + */ + public fun cidr(cidr: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.securityhub.CfnInsight.IpFilterProperty.Builder = + software.amazon.awscdk.services.securityhub.CfnInsight.IpFilterProperty.builder() + + /** + * @param cidr A finding's CIDR value. + */ + override fun cidr(cidr: String) { + cdkBuilder.cidr(cidr) + } + + public fun build(): software.amazon.awscdk.services.securityhub.CfnInsight.IpFilterProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.securityhub.CfnInsight.IpFilterProperty, + ) : CdkObject(cdkObject), IpFilterProperty { + /** + * A finding's CIDR value. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-ipfilter.html#cfn-securityhub-insight-ipfilter-cidr) + */ + override fun cidr(): String = unwrap(this).getCidr() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): IpFilterProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.securityhub.CfnInsight.IpFilterProperty): + IpFilterProperty = CdkObjectWrappers.wrap(cdkObject) as? IpFilterProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: IpFilterProperty): + software.amazon.awscdk.services.securityhub.CfnInsight.IpFilterProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.securityhub.CfnInsight.IpFilterProperty + } + } + + /** + * A keyword filter for querying findings. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.securityhub.*; + * KeywordFilterProperty keywordFilterProperty = KeywordFilterProperty.builder() + * .value("value") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-keywordfilter.html) + */ + public interface KeywordFilterProperty { + /** + * A value for the keyword. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-keywordfilter.html#cfn-securityhub-insight-keywordfilter-value) + */ + public fun `value`(): String + + /** + * A builder for [KeywordFilterProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param value A value for the keyword. + */ + public fun `value`(`value`: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.securityhub.CfnInsight.KeywordFilterProperty.Builder = + software.amazon.awscdk.services.securityhub.CfnInsight.KeywordFilterProperty.builder() + + /** + * @param value A value for the keyword. + */ + override fun `value`(`value`: String) { + cdkBuilder.`value`(`value`) + } + + public fun build(): + software.amazon.awscdk.services.securityhub.CfnInsight.KeywordFilterProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.securityhub.CfnInsight.KeywordFilterProperty, + ) : CdkObject(cdkObject), KeywordFilterProperty { + /** + * A value for the keyword. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-keywordfilter.html#cfn-securityhub-insight-keywordfilter-value) + */ + override fun `value`(): String = unwrap(this).getValue() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): KeywordFilterProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.securityhub.CfnInsight.KeywordFilterProperty): + KeywordFilterProperty = CdkObjectWrappers.wrap(cdkObject) as? KeywordFilterProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: KeywordFilterProperty): + software.amazon.awscdk.services.securityhub.CfnInsight.KeywordFilterProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.securityhub.CfnInsight.KeywordFilterProperty + } + } + + /** + * A map filter for filtering AWS Security Hub findings. + * + * Each map filter provides the field to check for, the value to check for, and the comparison + * operator. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.securityhub.*; + * MapFilterProperty mapFilterProperty = MapFilterProperty.builder() + * .comparison("comparison") + * .key("key") + * .value("value") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-mapfilter.html) + */ + public interface MapFilterProperty { + /** + * The condition to apply to the key value when filtering Security Hub findings with a map + * filter. + * + * To search for values that have the filter value, use one of the following comparison + * operators: + * + * * To search for values that include the filter value, use `CONTAINS` . For example, for the + * `ResourceTags` field, the filter `Department CONTAINS Security` matches findings that include + * the value `Security` for the `Department` tag. In the same example, a finding with a value of + * `Security team` for the `Department` tag is a match. + * * To search for values that exactly match the filter value, use `EQUALS` . For example, for + * the `ResourceTags` field, the filter `Department EQUALS Security` matches findings that have the + * value `Security` for the `Department` tag. + * + * `CONTAINS` and `EQUALS` filters on the same field are joined by `OR` . A finding matches if + * it matches any one of those filters. For example, the filters `Department CONTAINS Security OR + * Department CONTAINS Finance` match a finding that includes either `Security` , `Finance` , or + * both values. + * + * To search for values that don't have the filter value, use one of the following comparison + * operators: + * + * * To search for values that exclude the filter value, use `NOT_CONTAINS` . For example, for + * the `ResourceTags` field, the filter `Department NOT_CONTAINS Finance` matches findings that + * exclude the value `Finance` for the `Department` tag. + * * To search for values other than the filter value, use `NOT_EQUALS` . For example, for the + * `ResourceTags` field, the filter `Department NOT_EQUALS Finance` matches findings that don’t + * have the value `Finance` for the `Department` tag. + * + * `NOT_CONTAINS` and `NOT_EQUALS` filters on the same field are joined by `AND` . A finding + * matches only if it matches all of those filters. For example, the filters `Department + * NOT_CONTAINS Security AND Department NOT_CONTAINS Finance` match a finding that excludes both + * the `Security` and `Finance` values. + * + * `CONTAINS` filters can only be used with other `CONTAINS` filters. `NOT_CONTAINS` filters can + * only be used with other `NOT_CONTAINS` filters. + * + * You can’t have both a `CONTAINS` filter and a `NOT_CONTAINS` filter on the same field. + * Similarly, you can’t have both an `EQUALS` filter and a `NOT_EQUALS` filter on the same field. + * Combining filters in this way returns an error. + * + * `CONTAINS` and `NOT_CONTAINS` operators can be used only with automation rules. For more + * information, see [Automation + * rules](https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html) in the + * *AWS Security Hub User Guide* . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-mapfilter.html#cfn-securityhub-insight-mapfilter-comparison) + */ + public fun comparison(): String + + /** + * The key of the map filter. + * + * For example, for `ResourceTags` , `Key` identifies the name of the tag. For + * `UserDefinedFields` , `Key` is the name of the field. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-mapfilter.html#cfn-securityhub-insight-mapfilter-key) + */ + public fun key(): String + + /** + * The value for the key in the map filter. + * + * Filter values are case sensitive. For example, one of the values for a tag called + * `Department` might be `Security` . If you provide `security` as the filter value, then there's + * no match. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-mapfilter.html#cfn-securityhub-insight-mapfilter-value) + */ + public fun `value`(): String + + /** + * A builder for [MapFilterProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param comparison The condition to apply to the key value when filtering Security Hub + * findings with a map filter. + * To search for values that have the filter value, use one of the following comparison + * operators: + * + * * To search for values that include the filter value, use `CONTAINS` . For example, for the + * `ResourceTags` field, the filter `Department CONTAINS Security` matches findings that include + * the value `Security` for the `Department` tag. In the same example, a finding with a value of + * `Security team` for the `Department` tag is a match. + * * To search for values that exactly match the filter value, use `EQUALS` . For example, for + * the `ResourceTags` field, the filter `Department EQUALS Security` matches findings that have + * the value `Security` for the `Department` tag. + * + * `CONTAINS` and `EQUALS` filters on the same field are joined by `OR` . A finding matches if + * it matches any one of those filters. For example, the filters `Department CONTAINS Security OR + * Department CONTAINS Finance` match a finding that includes either `Security` , `Finance` , or + * both values. + * + * To search for values that don't have the filter value, use one of the following comparison + * operators: + * + * * To search for values that exclude the filter value, use `NOT_CONTAINS` . For example, for + * the `ResourceTags` field, the filter `Department NOT_CONTAINS Finance` matches findings that + * exclude the value `Finance` for the `Department` tag. + * * To search for values other than the filter value, use `NOT_EQUALS` . For example, for the + * `ResourceTags` field, the filter `Department NOT_EQUALS Finance` matches findings that don’t + * have the value `Finance` for the `Department` tag. + * + * `NOT_CONTAINS` and `NOT_EQUALS` filters on the same field are joined by `AND` . A finding + * matches only if it matches all of those filters. For example, the filters `Department + * NOT_CONTAINS Security AND Department NOT_CONTAINS Finance` match a finding that excludes both + * the `Security` and `Finance` values. + * + * `CONTAINS` filters can only be used with other `CONTAINS` filters. `NOT_CONTAINS` filters + * can only be used with other `NOT_CONTAINS` filters. + * + * You can’t have both a `CONTAINS` filter and a `NOT_CONTAINS` filter on the same field. + * Similarly, you can’t have both an `EQUALS` filter and a `NOT_EQUALS` filter on the same field. + * Combining filters in this way returns an error. + * + * `CONTAINS` and `NOT_CONTAINS` operators can be used only with automation rules. For more + * information, see [Automation + * rules](https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html) in the + * *AWS Security Hub User Guide* . + */ + public fun comparison(comparison: String) + + /** + * @param key The key of the map filter. + * For example, for `ResourceTags` , `Key` identifies the name of the tag. For + * `UserDefinedFields` , `Key` is the name of the field. + */ + public fun key(key: String) + + /** + * @param value The value for the key in the map filter. + * Filter values are case sensitive. For example, one of the values for a tag called + * `Department` might be `Security` . If you provide `security` as the filter value, then there's + * no match. + */ + public fun `value`(`value`: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.securityhub.CfnInsight.MapFilterProperty.Builder = + software.amazon.awscdk.services.securityhub.CfnInsight.MapFilterProperty.builder() + + /** + * @param comparison The condition to apply to the key value when filtering Security Hub + * findings with a map filter. + * To search for values that have the filter value, use one of the following comparison + * operators: + * + * * To search for values that include the filter value, use `CONTAINS` . For example, for the + * `ResourceTags` field, the filter `Department CONTAINS Security` matches findings that include + * the value `Security` for the `Department` tag. In the same example, a finding with a value of + * `Security team` for the `Department` tag is a match. + * * To search for values that exactly match the filter value, use `EQUALS` . For example, for + * the `ResourceTags` field, the filter `Department EQUALS Security` matches findings that have + * the value `Security` for the `Department` tag. + * + * `CONTAINS` and `EQUALS` filters on the same field are joined by `OR` . A finding matches if + * it matches any one of those filters. For example, the filters `Department CONTAINS Security OR + * Department CONTAINS Finance` match a finding that includes either `Security` , `Finance` , or + * both values. + * + * To search for values that don't have the filter value, use one of the following comparison + * operators: + * + * * To search for values that exclude the filter value, use `NOT_CONTAINS` . For example, for + * the `ResourceTags` field, the filter `Department NOT_CONTAINS Finance` matches findings that + * exclude the value `Finance` for the `Department` tag. + * * To search for values other than the filter value, use `NOT_EQUALS` . For example, for the + * `ResourceTags` field, the filter `Department NOT_EQUALS Finance` matches findings that don’t + * have the value `Finance` for the `Department` tag. + * + * `NOT_CONTAINS` and `NOT_EQUALS` filters on the same field are joined by `AND` . A finding + * matches only if it matches all of those filters. For example, the filters `Department + * NOT_CONTAINS Security AND Department NOT_CONTAINS Finance` match a finding that excludes both + * the `Security` and `Finance` values. + * + * `CONTAINS` filters can only be used with other `CONTAINS` filters. `NOT_CONTAINS` filters + * can only be used with other `NOT_CONTAINS` filters. + * + * You can’t have both a `CONTAINS` filter and a `NOT_CONTAINS` filter on the same field. + * Similarly, you can’t have both an `EQUALS` filter and a `NOT_EQUALS` filter on the same field. + * Combining filters in this way returns an error. + * + * `CONTAINS` and `NOT_CONTAINS` operators can be used only with automation rules. For more + * information, see [Automation + * rules](https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html) in the + * *AWS Security Hub User Guide* . + */ + override fun comparison(comparison: String) { + cdkBuilder.comparison(comparison) + } + + /** + * @param key The key of the map filter. + * For example, for `ResourceTags` , `Key` identifies the name of the tag. For + * `UserDefinedFields` , `Key` is the name of the field. + */ + override fun key(key: String) { + cdkBuilder.key(key) + } + + /** + * @param value The value for the key in the map filter. + * Filter values are case sensitive. For example, one of the values for a tag called + * `Department` might be `Security` . If you provide `security` as the filter value, then there's + * no match. + */ + override fun `value`(`value`: String) { + cdkBuilder.`value`(`value`) + } + + public fun build(): software.amazon.awscdk.services.securityhub.CfnInsight.MapFilterProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.securityhub.CfnInsight.MapFilterProperty, + ) : CdkObject(cdkObject), MapFilterProperty { + /** + * The condition to apply to the key value when filtering Security Hub findings with a map + * filter. + * + * To search for values that have the filter value, use one of the following comparison + * operators: + * + * * To search for values that include the filter value, use `CONTAINS` . For example, for the + * `ResourceTags` field, the filter `Department CONTAINS Security` matches findings that include + * the value `Security` for the `Department` tag. In the same example, a finding with a value of + * `Security team` for the `Department` tag is a match. + * * To search for values that exactly match the filter value, use `EQUALS` . For example, for + * the `ResourceTags` field, the filter `Department EQUALS Security` matches findings that have + * the value `Security` for the `Department` tag. + * + * `CONTAINS` and `EQUALS` filters on the same field are joined by `OR` . A finding matches if + * it matches any one of those filters. For example, the filters `Department CONTAINS Security OR + * Department CONTAINS Finance` match a finding that includes either `Security` , `Finance` , or + * both values. + * + * To search for values that don't have the filter value, use one of the following comparison + * operators: + * + * * To search for values that exclude the filter value, use `NOT_CONTAINS` . For example, for + * the `ResourceTags` field, the filter `Department NOT_CONTAINS Finance` matches findings that + * exclude the value `Finance` for the `Department` tag. + * * To search for values other than the filter value, use `NOT_EQUALS` . For example, for the + * `ResourceTags` field, the filter `Department NOT_EQUALS Finance` matches findings that don’t + * have the value `Finance` for the `Department` tag. + * + * `NOT_CONTAINS` and `NOT_EQUALS` filters on the same field are joined by `AND` . A finding + * matches only if it matches all of those filters. For example, the filters `Department + * NOT_CONTAINS Security AND Department NOT_CONTAINS Finance` match a finding that excludes both + * the `Security` and `Finance` values. + * + * `CONTAINS` filters can only be used with other `CONTAINS` filters. `NOT_CONTAINS` filters + * can only be used with other `NOT_CONTAINS` filters. + * + * You can’t have both a `CONTAINS` filter and a `NOT_CONTAINS` filter on the same field. + * Similarly, you can’t have both an `EQUALS` filter and a `NOT_EQUALS` filter on the same field. + * Combining filters in this way returns an error. + * + * `CONTAINS` and `NOT_CONTAINS` operators can be used only with automation rules. For more + * information, see [Automation + * rules](https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html) in the + * *AWS Security Hub User Guide* . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-mapfilter.html#cfn-securityhub-insight-mapfilter-comparison) + */ + override fun comparison(): String = unwrap(this).getComparison() + + /** + * The key of the map filter. + * + * For example, for `ResourceTags` , `Key` identifies the name of the tag. For + * `UserDefinedFields` , `Key` is the name of the field. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-mapfilter.html#cfn-securityhub-insight-mapfilter-key) + */ + override fun key(): String = unwrap(this).getKey() + + /** + * The value for the key in the map filter. + * + * Filter values are case sensitive. For example, one of the values for a tag called + * `Department` might be `Security` . If you provide `security` as the filter value, then there's + * no match. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-mapfilter.html#cfn-securityhub-insight-mapfilter-value) + */ + override fun `value`(): String = unwrap(this).getValue() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): MapFilterProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.securityhub.CfnInsight.MapFilterProperty): + MapFilterProperty = CdkObjectWrappers.wrap(cdkObject) as? MapFilterProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: MapFilterProperty): + software.amazon.awscdk.services.securityhub.CfnInsight.MapFilterProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.securityhub.CfnInsight.MapFilterProperty + } + } + + /** + * A number filter for querying findings. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.securityhub.*; + * NumberFilterProperty numberFilterProperty = NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-numberfilter.html) + */ + public interface NumberFilterProperty { + /** + * The equal-to condition to be applied to a single field when querying for findings. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-numberfilter.html#cfn-securityhub-insight-numberfilter-eq) + */ + public fun eq(): Number? = unwrap(this).getEq() + + /** + * The greater-than-equal condition to be applied to a single field when querying for findings. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-numberfilter.html#cfn-securityhub-insight-numberfilter-gte) + */ + public fun gte(): Number? = unwrap(this).getGte() + + /** + * The less-than-equal condition to be applied to a single field when querying for findings. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-numberfilter.html#cfn-securityhub-insight-numberfilter-lte) + */ + public fun lte(): Number? = unwrap(this).getLte() + + /** + * A builder for [NumberFilterProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param eq The equal-to condition to be applied to a single field when querying for + * findings. + */ + public fun eq(eq: Number) + + /** + * @param gte The greater-than-equal condition to be applied to a single field when querying + * for findings. + */ + public fun gte(gte: Number) + + /** + * @param lte The less-than-equal condition to be applied to a single field when querying for + * findings. + */ + public fun lte(lte: Number) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.securityhub.CfnInsight.NumberFilterProperty.Builder = + software.amazon.awscdk.services.securityhub.CfnInsight.NumberFilterProperty.builder() + + /** + * @param eq The equal-to condition to be applied to a single field when querying for + * findings. + */ + override fun eq(eq: Number) { + cdkBuilder.eq(eq) + } + + /** + * @param gte The greater-than-equal condition to be applied to a single field when querying + * for findings. + */ + override fun gte(gte: Number) { + cdkBuilder.gte(gte) + } + + /** + * @param lte The less-than-equal condition to be applied to a single field when querying for + * findings. + */ + override fun lte(lte: Number) { + cdkBuilder.lte(lte) + } + + public fun build(): + software.amazon.awscdk.services.securityhub.CfnInsight.NumberFilterProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.securityhub.CfnInsight.NumberFilterProperty, + ) : CdkObject(cdkObject), NumberFilterProperty { + /** + * The equal-to condition to be applied to a single field when querying for findings. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-numberfilter.html#cfn-securityhub-insight-numberfilter-eq) + */ + override fun eq(): Number? = unwrap(this).getEq() + + /** + * The greater-than-equal condition to be applied to a single field when querying for + * findings. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-numberfilter.html#cfn-securityhub-insight-numberfilter-gte) + */ + override fun gte(): Number? = unwrap(this).getGte() + + /** + * The less-than-equal condition to be applied to a single field when querying for findings. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-numberfilter.html#cfn-securityhub-insight-numberfilter-lte) + */ + override fun lte(): Number? = unwrap(this).getLte() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): NumberFilterProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.securityhub.CfnInsight.NumberFilterProperty): + NumberFilterProperty = CdkObjectWrappers.wrap(cdkObject) as? NumberFilterProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: NumberFilterProperty): + software.amazon.awscdk.services.securityhub.CfnInsight.NumberFilterProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.securityhub.CfnInsight.NumberFilterProperty + } + } + + /** + * A string filter for filtering AWS Security Hub findings. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.securityhub.*; + * StringFilterProperty stringFilterProperty = StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-stringfilter.html) + */ + public interface StringFilterProperty { + /** + * The condition to apply to a string value when filtering Security Hub findings. + * + * To search for values that have the filter value, use one of the following comparison + * operators: + * + * * To search for values that include the filter value, use `CONTAINS` . For example, the + * filter `Title CONTAINS CloudFront` matches findings that have a `Title` that includes the string + * CloudFront. + * * To search for values that exactly match the filter value, use `EQUALS` . For example, the + * filter `AwsAccountId EQUALS 123456789012` only matches findings that have an account ID of + * `123456789012` . + * * To search for values that start with the filter value, use `PREFIX` . For example, the + * filter `ResourceRegion PREFIX us` matches findings that have a `ResourceRegion` that starts with + * `us` . A `ResourceRegion` that starts with a different value, such as `af` , `ap` , or `ca` , + * doesn't match. + * + * `CONTAINS` , `EQUALS` , and `PREFIX` filters on the same field are joined by `OR` . A finding + * matches if it matches any one of those filters. For example, the filters `Title CONTAINS + * CloudFront OR Title CONTAINS CloudWatch` match a finding that includes either `CloudFront` , + * `CloudWatch` , or both strings in the title. + * + * To search for values that don’t have the filter value, use one of the following comparison + * operators: + * + * * To search for values that exclude the filter value, use `NOT_CONTAINS` . For example, the + * filter `Title NOT_CONTAINS CloudFront` matches findings that have a `Title` that excludes the + * string CloudFront. + * * To search for values other than the filter value, use `NOT_EQUALS` . For example, the + * filter `AwsAccountId NOT_EQUALS 123456789012` only matches findings that have an account ID + * other than `123456789012` . + * * To search for values that don't start with the filter value, use `PREFIX_NOT_EQUALS` . For + * example, the filter `ResourceRegion PREFIX_NOT_EQUALS us` matches findings with a + * `ResourceRegion` that starts with a value other than `us` . + * + * `NOT_CONTAINS` , `NOT_EQUALS` , and `PREFIX_NOT_EQUALS` filters on the same field are joined + * by `AND` . A finding matches only if it matches all of those filters. For example, the filters + * `Title NOT_CONTAINS CloudFront AND Title NOT_CONTAINS CloudWatch` match a finding that excludes + * both `CloudFront` and `CloudWatch` in the title. + * + * You can’t have both a `CONTAINS` filter and a `NOT_CONTAINS` filter on the same field. + * Similarly, you can't provide both an `EQUALS` filter and a `NOT_EQUALS` or `PREFIX_NOT_EQUALS` + * filter on the same field. Combining filters in this way returns an error. `CONTAINS` filters can + * only be used with other `CONTAINS` filters. `NOT_CONTAINS` filters can only be used with other + * `NOT_CONTAINS` filters. + * + * You can combine `PREFIX` filters with `NOT_EQUALS` or `PREFIX_NOT_EQUALS` filters for the + * same field. Security Hub first processes the `PREFIX` filters, and then the `NOT_EQUALS` or + * `PREFIX_NOT_EQUALS` filters. + * + * For example, for the following filters, Security Hub first identifies findings that have + * resource types that start with either `AwsIam` or `AwsEc2` . It then excludes findings that have + * a resource type of `AwsIamPolicy` and findings that have a resource type of + * `AwsEc2NetworkInterface` . + * + * * `ResourceType PREFIX AwsIam` + * * `ResourceType PREFIX AwsEc2` + * * `ResourceType NOT_EQUALS AwsIamPolicy` + * * `ResourceType NOT_EQUALS AwsEc2NetworkInterface` + * + * `CONTAINS` and `NOT_CONTAINS` operators can be used only with automation rules. For more + * information, see [Automation + * rules](https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html) in the + * *AWS Security Hub User Guide* . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-stringfilter.html#cfn-securityhub-insight-stringfilter-comparison) + */ + public fun comparison(): String + + /** + * The string filter value. + * + * Filter values are case sensitive. For example, the product name for control-based findings is + * `Security Hub` . If you provide `security hub` as the filter value, there's no match. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-stringfilter.html#cfn-securityhub-insight-stringfilter-value) + */ + public fun `value`(): String + + /** + * A builder for [StringFilterProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param comparison The condition to apply to a string value when filtering Security Hub + * findings. + * To search for values that have the filter value, use one of the following comparison + * operators: + * + * * To search for values that include the filter value, use `CONTAINS` . For example, the + * filter `Title CONTAINS CloudFront` matches findings that have a `Title` that includes the + * string CloudFront. + * * To search for values that exactly match the filter value, use `EQUALS` . For example, the + * filter `AwsAccountId EQUALS 123456789012` only matches findings that have an account ID of + * `123456789012` . + * * To search for values that start with the filter value, use `PREFIX` . For example, the + * filter `ResourceRegion PREFIX us` matches findings that have a `ResourceRegion` that starts + * with `us` . A `ResourceRegion` that starts with a different value, such as `af` , `ap` , or + * `ca` , doesn't match. + * + * `CONTAINS` , `EQUALS` , and `PREFIX` filters on the same field are joined by `OR` . A + * finding matches if it matches any one of those filters. For example, the filters `Title + * CONTAINS CloudFront OR Title CONTAINS CloudWatch` match a finding that includes either + * `CloudFront` , `CloudWatch` , or both strings in the title. + * + * To search for values that don’t have the filter value, use one of the following comparison + * operators: + * + * * To search for values that exclude the filter value, use `NOT_CONTAINS` . For example, the + * filter `Title NOT_CONTAINS CloudFront` matches findings that have a `Title` that excludes the + * string CloudFront. + * * To search for values other than the filter value, use `NOT_EQUALS` . For example, the + * filter `AwsAccountId NOT_EQUALS 123456789012` only matches findings that have an account ID + * other than `123456789012` . + * * To search for values that don't start with the filter value, use `PREFIX_NOT_EQUALS` . + * For example, the filter `ResourceRegion PREFIX_NOT_EQUALS us` matches findings with a + * `ResourceRegion` that starts with a value other than `us` . + * + * `NOT_CONTAINS` , `NOT_EQUALS` , and `PREFIX_NOT_EQUALS` filters on the same field are + * joined by `AND` . A finding matches only if it matches all of those filters. For example, the + * filters `Title NOT_CONTAINS CloudFront AND Title NOT_CONTAINS CloudWatch` match a finding that + * excludes both `CloudFront` and `CloudWatch` in the title. + * + * You can’t have both a `CONTAINS` filter and a `NOT_CONTAINS` filter on the same field. + * Similarly, you can't provide both an `EQUALS` filter and a `NOT_EQUALS` or `PREFIX_NOT_EQUALS` + * filter on the same field. Combining filters in this way returns an error. `CONTAINS` filters + * can only be used with other `CONTAINS` filters. `NOT_CONTAINS` filters can only be used with + * other `NOT_CONTAINS` filters. + * + * You can combine `PREFIX` filters with `NOT_EQUALS` or `PREFIX_NOT_EQUALS` filters for the + * same field. Security Hub first processes the `PREFIX` filters, and then the `NOT_EQUALS` or + * `PREFIX_NOT_EQUALS` filters. + * + * For example, for the following filters, Security Hub first identifies findings that have + * resource types that start with either `AwsIam` or `AwsEc2` . It then excludes findings that + * have a resource type of `AwsIamPolicy` and findings that have a resource type of + * `AwsEc2NetworkInterface` . + * + * * `ResourceType PREFIX AwsIam` + * * `ResourceType PREFIX AwsEc2` + * * `ResourceType NOT_EQUALS AwsIamPolicy` + * * `ResourceType NOT_EQUALS AwsEc2NetworkInterface` + * + * `CONTAINS` and `NOT_CONTAINS` operators can be used only with automation rules. For more + * information, see [Automation + * rules](https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html) in the + * *AWS Security Hub User Guide* . + */ + public fun comparison(comparison: String) + + /** + * @param value The string filter value. + * Filter values are case sensitive. For example, the product name for control-based findings + * is `Security Hub` . If you provide `security hub` as the filter value, there's no match. + */ + public fun `value`(`value`: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.securityhub.CfnInsight.StringFilterProperty.Builder = + software.amazon.awscdk.services.securityhub.CfnInsight.StringFilterProperty.builder() + + /** + * @param comparison The condition to apply to a string value when filtering Security Hub + * findings. + * To search for values that have the filter value, use one of the following comparison + * operators: + * + * * To search for values that include the filter value, use `CONTAINS` . For example, the + * filter `Title CONTAINS CloudFront` matches findings that have a `Title` that includes the + * string CloudFront. + * * To search for values that exactly match the filter value, use `EQUALS` . For example, the + * filter `AwsAccountId EQUALS 123456789012` only matches findings that have an account ID of + * `123456789012` . + * * To search for values that start with the filter value, use `PREFIX` . For example, the + * filter `ResourceRegion PREFIX us` matches findings that have a `ResourceRegion` that starts + * with `us` . A `ResourceRegion` that starts with a different value, such as `af` , `ap` , or + * `ca` , doesn't match. + * + * `CONTAINS` , `EQUALS` , and `PREFIX` filters on the same field are joined by `OR` . A + * finding matches if it matches any one of those filters. For example, the filters `Title + * CONTAINS CloudFront OR Title CONTAINS CloudWatch` match a finding that includes either + * `CloudFront` , `CloudWatch` , or both strings in the title. + * + * To search for values that don’t have the filter value, use one of the following comparison + * operators: + * + * * To search for values that exclude the filter value, use `NOT_CONTAINS` . For example, the + * filter `Title NOT_CONTAINS CloudFront` matches findings that have a `Title` that excludes the + * string CloudFront. + * * To search for values other than the filter value, use `NOT_EQUALS` . For example, the + * filter `AwsAccountId NOT_EQUALS 123456789012` only matches findings that have an account ID + * other than `123456789012` . + * * To search for values that don't start with the filter value, use `PREFIX_NOT_EQUALS` . + * For example, the filter `ResourceRegion PREFIX_NOT_EQUALS us` matches findings with a + * `ResourceRegion` that starts with a value other than `us` . + * + * `NOT_CONTAINS` , `NOT_EQUALS` , and `PREFIX_NOT_EQUALS` filters on the same field are + * joined by `AND` . A finding matches only if it matches all of those filters. For example, the + * filters `Title NOT_CONTAINS CloudFront AND Title NOT_CONTAINS CloudWatch` match a finding that + * excludes both `CloudFront` and `CloudWatch` in the title. + * + * You can’t have both a `CONTAINS` filter and a `NOT_CONTAINS` filter on the same field. + * Similarly, you can't provide both an `EQUALS` filter and a `NOT_EQUALS` or `PREFIX_NOT_EQUALS` + * filter on the same field. Combining filters in this way returns an error. `CONTAINS` filters + * can only be used with other `CONTAINS` filters. `NOT_CONTAINS` filters can only be used with + * other `NOT_CONTAINS` filters. + * + * You can combine `PREFIX` filters with `NOT_EQUALS` or `PREFIX_NOT_EQUALS` filters for the + * same field. Security Hub first processes the `PREFIX` filters, and then the `NOT_EQUALS` or + * `PREFIX_NOT_EQUALS` filters. + * + * For example, for the following filters, Security Hub first identifies findings that have + * resource types that start with either `AwsIam` or `AwsEc2` . It then excludes findings that + * have a resource type of `AwsIamPolicy` and findings that have a resource type of + * `AwsEc2NetworkInterface` . + * + * * `ResourceType PREFIX AwsIam` + * * `ResourceType PREFIX AwsEc2` + * * `ResourceType NOT_EQUALS AwsIamPolicy` + * * `ResourceType NOT_EQUALS AwsEc2NetworkInterface` + * + * `CONTAINS` and `NOT_CONTAINS` operators can be used only with automation rules. For more + * information, see [Automation + * rules](https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html) in the + * *AWS Security Hub User Guide* . + */ + override fun comparison(comparison: String) { + cdkBuilder.comparison(comparison) + } + + /** + * @param value The string filter value. + * Filter values are case sensitive. For example, the product name for control-based findings + * is `Security Hub` . If you provide `security hub` as the filter value, there's no match. + */ + override fun `value`(`value`: String) { + cdkBuilder.`value`(`value`) + } + + public fun build(): + software.amazon.awscdk.services.securityhub.CfnInsight.StringFilterProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.securityhub.CfnInsight.StringFilterProperty, + ) : CdkObject(cdkObject), StringFilterProperty { + /** + * The condition to apply to a string value when filtering Security Hub findings. + * + * To search for values that have the filter value, use one of the following comparison + * operators: + * + * * To search for values that include the filter value, use `CONTAINS` . For example, the + * filter `Title CONTAINS CloudFront` matches findings that have a `Title` that includes the + * string CloudFront. + * * To search for values that exactly match the filter value, use `EQUALS` . For example, the + * filter `AwsAccountId EQUALS 123456789012` only matches findings that have an account ID of + * `123456789012` . + * * To search for values that start with the filter value, use `PREFIX` . For example, the + * filter `ResourceRegion PREFIX us` matches findings that have a `ResourceRegion` that starts + * with `us` . A `ResourceRegion` that starts with a different value, such as `af` , `ap` , or + * `ca` , doesn't match. + * + * `CONTAINS` , `EQUALS` , and `PREFIX` filters on the same field are joined by `OR` . A + * finding matches if it matches any one of those filters. For example, the filters `Title + * CONTAINS CloudFront OR Title CONTAINS CloudWatch` match a finding that includes either + * `CloudFront` , `CloudWatch` , or both strings in the title. + * + * To search for values that don’t have the filter value, use one of the following comparison + * operators: + * + * * To search for values that exclude the filter value, use `NOT_CONTAINS` . For example, the + * filter `Title NOT_CONTAINS CloudFront` matches findings that have a `Title` that excludes the + * string CloudFront. + * * To search for values other than the filter value, use `NOT_EQUALS` . For example, the + * filter `AwsAccountId NOT_EQUALS 123456789012` only matches findings that have an account ID + * other than `123456789012` . + * * To search for values that don't start with the filter value, use `PREFIX_NOT_EQUALS` . + * For example, the filter `ResourceRegion PREFIX_NOT_EQUALS us` matches findings with a + * `ResourceRegion` that starts with a value other than `us` . + * + * `NOT_CONTAINS` , `NOT_EQUALS` , and `PREFIX_NOT_EQUALS` filters on the same field are + * joined by `AND` . A finding matches only if it matches all of those filters. For example, the + * filters `Title NOT_CONTAINS CloudFront AND Title NOT_CONTAINS CloudWatch` match a finding that + * excludes both `CloudFront` and `CloudWatch` in the title. + * + * You can’t have both a `CONTAINS` filter and a `NOT_CONTAINS` filter on the same field. + * Similarly, you can't provide both an `EQUALS` filter and a `NOT_EQUALS` or `PREFIX_NOT_EQUALS` + * filter on the same field. Combining filters in this way returns an error. `CONTAINS` filters + * can only be used with other `CONTAINS` filters. `NOT_CONTAINS` filters can only be used with + * other `NOT_CONTAINS` filters. + * + * You can combine `PREFIX` filters with `NOT_EQUALS` or `PREFIX_NOT_EQUALS` filters for the + * same field. Security Hub first processes the `PREFIX` filters, and then the `NOT_EQUALS` or + * `PREFIX_NOT_EQUALS` filters. + * + * For example, for the following filters, Security Hub first identifies findings that have + * resource types that start with either `AwsIam` or `AwsEc2` . It then excludes findings that + * have a resource type of `AwsIamPolicy` and findings that have a resource type of + * `AwsEc2NetworkInterface` . + * + * * `ResourceType PREFIX AwsIam` + * * `ResourceType PREFIX AwsEc2` + * * `ResourceType NOT_EQUALS AwsIamPolicy` + * * `ResourceType NOT_EQUALS AwsEc2NetworkInterface` + * + * `CONTAINS` and `NOT_CONTAINS` operators can be used only with automation rules. For more + * information, see [Automation + * rules](https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html) in the + * *AWS Security Hub User Guide* . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-stringfilter.html#cfn-securityhub-insight-stringfilter-comparison) + */ + override fun comparison(): String = unwrap(this).getComparison() + + /** + * The string filter value. + * + * Filter values are case sensitive. For example, the product name for control-based findings + * is `Security Hub` . If you provide `security hub` as the filter value, there's no match. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-stringfilter.html#cfn-securityhub-insight-stringfilter-value) + */ + override fun `value`(): String = unwrap(this).getValue() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): StringFilterProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.securityhub.CfnInsight.StringFilterProperty): + StringFilterProperty = CdkObjectWrappers.wrap(cdkObject) as? StringFilterProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: StringFilterProperty): + software.amazon.awscdk.services.securityhub.CfnInsight.StringFilterProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.securityhub.CfnInsight.StringFilterProperty + } + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securityhub/CfnInsightProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securityhub/CfnInsightProps.kt new file mode 100644 index 0000000000..070f008e67 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securityhub/CfnInsightProps.kt @@ -0,0 +1,677 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.securityhub + +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.jvm.JvmName + +/** + * Properties for defining a `CfnInsight`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.securityhub.*; + * CfnInsightProps cfnInsightProps = CfnInsightProps.builder() + * .filters(AwsSecurityFindingFiltersProperty.builder() + * .awsAccountId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .awsAccountName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .companyName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .complianceAssociatedStandardsId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .complianceSecurityControlId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .complianceSecurityControlParametersName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .complianceSecurityControlParametersValue(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .complianceStatus(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .confidence(List.of(NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build())) + * .createdAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .criticality(List.of(NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build())) + * .description(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .findingProviderFieldsConfidence(List.of(NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build())) + * .findingProviderFieldsCriticality(List.of(NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build())) + * .findingProviderFieldsRelatedFindingsId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .findingProviderFieldsRelatedFindingsProductArn(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .findingProviderFieldsSeverityLabel(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .findingProviderFieldsSeverityOriginal(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .findingProviderFieldsTypes(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .firstObservedAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .generatorId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .id(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .keyword(List.of(KeywordFilterProperty.builder() + * .value("value") + * .build())) + * .lastObservedAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .malwareName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .malwarePath(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .malwareState(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .malwareType(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .networkDestinationDomain(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .networkDestinationIpV4(List.of(IpFilterProperty.builder() + * .cidr("cidr") + * .build())) + * .networkDestinationIpV6(List.of(IpFilterProperty.builder() + * .cidr("cidr") + * .build())) + * .networkDestinationPort(List.of(NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build())) + * .networkDirection(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .networkProtocol(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .networkSourceDomain(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .networkSourceIpV4(List.of(IpFilterProperty.builder() + * .cidr("cidr") + * .build())) + * .networkSourceIpV6(List.of(IpFilterProperty.builder() + * .cidr("cidr") + * .build())) + * .networkSourceMac(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .networkSourcePort(List.of(NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build())) + * .noteText(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .noteUpdatedAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .noteUpdatedBy(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .processLaunchedAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .processName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .processParentPid(List.of(NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build())) + * .processPath(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .processPid(List.of(NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build())) + * .processTerminatedAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .productArn(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .productFields(List.of(MapFilterProperty.builder() + * .comparison("comparison") + * .key("key") + * .value("value") + * .build())) + * .productName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .recommendationText(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .recordState(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .region(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .relatedFindingsId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .relatedFindingsProductArn(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceApplicationArn(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceApplicationName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsEc2InstanceIamInstanceProfileArn(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsEc2InstanceImageId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsEc2InstanceIpV4Addresses(List.of(IpFilterProperty.builder() + * .cidr("cidr") + * .build())) + * .resourceAwsEc2InstanceIpV6Addresses(List.of(IpFilterProperty.builder() + * .cidr("cidr") + * .build())) + * .resourceAwsEc2InstanceKeyName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsEc2InstanceLaunchedAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .resourceAwsEc2InstanceSubnetId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsEc2InstanceType(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsEc2InstanceVpcId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsIamAccessKeyCreatedAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .resourceAwsIamAccessKeyPrincipalName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsIamAccessKeyStatus(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsIamAccessKeyUserName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsIamUserUserName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsS3BucketOwnerId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceAwsS3BucketOwnerName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceContainerImageId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceContainerImageName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceContainerLaunchedAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .resourceContainerName(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceDetailsOther(List.of(MapFilterProperty.builder() + * .comparison("comparison") + * .key("key") + * .value("value") + * .build())) + * .resourceId(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourcePartition(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceRegion(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .resourceTags(List.of(MapFilterProperty.builder() + * .comparison("comparison") + * .key("key") + * .value("value") + * .build())) + * .resourceType(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .sample(List.of(BooleanFilterProperty.builder() + * .value(false) + * .build())) + * .severityLabel(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .severityNormalized(List.of(NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build())) + * .severityProduct(List.of(NumberFilterProperty.builder() + * .eq(123) + * .gte(123) + * .lte(123) + * .build())) + * .sourceUrl(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .threatIntelIndicatorCategory(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .threatIntelIndicatorLastObservedAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .threatIntelIndicatorSource(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .threatIntelIndicatorSourceUrl(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .threatIntelIndicatorType(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .threatIntelIndicatorValue(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .title(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .type(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .updatedAt(List.of(DateFilterProperty.builder() + * .dateRange(DateRangeProperty.builder() + * .unit("unit") + * .value(123) + * .build()) + * .end("end") + * .start("start") + * .build())) + * .userDefinedFields(List.of(MapFilterProperty.builder() + * .comparison("comparison") + * .key("key") + * .value("value") + * .build())) + * .verificationState(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .vulnerabilitiesExploitAvailable(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .vulnerabilitiesFixAvailable(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .workflowState(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .workflowStatus(List.of(StringFilterProperty.builder() + * .comparison("comparison") + * .value("value") + * .build())) + * .build()) + * .groupByAttribute("groupByAttribute") + * .name("name") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-insight.html) + */ +public interface CfnInsightProps { + /** + * One or more attributes used to filter the findings included in the insight. + * + * The insight only includes findings that match the criteria defined in the filters. You can + * filter by up to ten finding attributes. For each attribute, you can provide up to 20 filter + * values. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-insight.html#cfn-securityhub-insight-filters) + */ + public fun filters(): Any + + /** + * The grouping attribute for the insight's findings. + * + * Indicates how to group the matching findings, and identifies the type of item that the insight + * applies to. For example, if an insight is grouped by resource identifier, then the insight + * produces a list of resource identifiers. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-insight.html#cfn-securityhub-insight-groupbyattribute) + */ + public fun groupByAttribute(): String + + /** + * The name of a Security Hub insight. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-insight.html#cfn-securityhub-insight-name) + */ + public fun name(): String + + /** + * A builder for [CfnInsightProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param filters One or more attributes used to filter the findings included in the insight. + * The insight only includes findings that match the criteria defined in the filters. You can + * filter by up to ten finding attributes. For each attribute, you can provide up to 20 filter + * values. + */ + public fun filters(filters: IResolvable) + + /** + * @param filters One or more attributes used to filter the findings included in the insight. + * The insight only includes findings that match the criteria defined in the filters. You can + * filter by up to ten finding attributes. For each attribute, you can provide up to 20 filter + * values. + */ + public fun filters(filters: CfnInsight.AwsSecurityFindingFiltersProperty) + + /** + * @param filters One or more attributes used to filter the findings included in the insight. + * The insight only includes findings that match the criteria defined in the filters. You can + * filter by up to ten finding attributes. For each attribute, you can provide up to 20 filter + * values. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("3b36cb2fd6c3ac67039d7efb5efdde39fba2b58eb87780449f6c6ff7c6d71b95") + public fun filters(filters: CfnInsight.AwsSecurityFindingFiltersProperty.Builder.() -> Unit) + + /** + * @param groupByAttribute The grouping attribute for the insight's findings. + * Indicates how to group the matching findings, and identifies the type of item that the + * insight applies to. For example, if an insight is grouped by resource identifier, then the + * insight produces a list of resource identifiers. + */ + public fun groupByAttribute(groupByAttribute: String) + + /** + * @param name The name of a Security Hub insight. + */ + public fun name(name: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.services.securityhub.CfnInsightProps.Builder = + software.amazon.awscdk.services.securityhub.CfnInsightProps.builder() + + /** + * @param filters One or more attributes used to filter the findings included in the insight. + * The insight only includes findings that match the criteria defined in the filters. You can + * filter by up to ten finding attributes. For each attribute, you can provide up to 20 filter + * values. + */ + override fun filters(filters: IResolvable) { + cdkBuilder.filters(filters.let(IResolvable::unwrap)) + } + + /** + * @param filters One or more attributes used to filter the findings included in the insight. + * The insight only includes findings that match the criteria defined in the filters. You can + * filter by up to ten finding attributes. For each attribute, you can provide up to 20 filter + * values. + */ + override fun filters(filters: CfnInsight.AwsSecurityFindingFiltersProperty) { + cdkBuilder.filters(filters.let(CfnInsight.AwsSecurityFindingFiltersProperty::unwrap)) + } + + /** + * @param filters One or more attributes used to filter the findings included in the insight. + * The insight only includes findings that match the criteria defined in the filters. You can + * filter by up to ten finding attributes. For each attribute, you can provide up to 20 filter + * values. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("3b36cb2fd6c3ac67039d7efb5efdde39fba2b58eb87780449f6c6ff7c6d71b95") + override fun filters(filters: CfnInsight.AwsSecurityFindingFiltersProperty.Builder.() -> Unit): + Unit = filters(CfnInsight.AwsSecurityFindingFiltersProperty(filters)) + + /** + * @param groupByAttribute The grouping attribute for the insight's findings. + * Indicates how to group the matching findings, and identifies the type of item that the + * insight applies to. For example, if an insight is grouped by resource identifier, then the + * insight produces a list of resource identifiers. + */ + override fun groupByAttribute(groupByAttribute: String) { + cdkBuilder.groupByAttribute(groupByAttribute) + } + + /** + * @param name The name of a Security Hub insight. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + public fun build(): software.amazon.awscdk.services.securityhub.CfnInsightProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.securityhub.CfnInsightProps, + ) : CdkObject(cdkObject), CfnInsightProps { + /** + * One or more attributes used to filter the findings included in the insight. + * + * The insight only includes findings that match the criteria defined in the filters. You can + * filter by up to ten finding attributes. For each attribute, you can provide up to 20 filter + * values. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-insight.html#cfn-securityhub-insight-filters) + */ + override fun filters(): Any = unwrap(this).getFilters() + + /** + * The grouping attribute for the insight's findings. + * + * Indicates how to group the matching findings, and identifies the type of item that the + * insight applies to. For example, if an insight is grouped by resource identifier, then the + * insight produces a list of resource identifiers. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-insight.html#cfn-securityhub-insight-groupbyattribute) + */ + override fun groupByAttribute(): String = unwrap(this).getGroupByAttribute() + + /** + * The name of a Security Hub insight. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-insight.html#cfn-securityhub-insight-name) + */ + override fun name(): String = unwrap(this).getName() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnInsightProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.securityhub.CfnInsightProps): + CfnInsightProps = CdkObjectWrappers.wrap(cdkObject) as? CfnInsightProps ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnInsightProps): + software.amazon.awscdk.services.securityhub.CfnInsightProps = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.securityhub.CfnInsightProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securityhub/CfnProductSubscription.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securityhub/CfnProductSubscription.kt new file mode 100644 index 0000000000..d5e493a2e3 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securityhub/CfnProductSubscription.kt @@ -0,0 +1,144 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.securityhub + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import kotlin.String +import kotlin.Unit +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * The `AWS::SecurityHub::ProductSubscription` resource creates a subscription to a third-party + * product that generates findings that you want to receive in AWS Security Hub . + * + * For a list of integrations to third-party products, see [Available third-party partner product + * integrations](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-partner-providers.html) + * in the *AWS Security Hub User Guide* . + * + * To change a product subscription, remove the current product subscription resource, and then + * create a new one. + * + * Tags aren't supported for this resource. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.securityhub.*; + * CfnProductSubscription cfnProductSubscription = CfnProductSubscription.Builder.create(this, + * "MyCfnProductSubscription") + * .productArn("productArn") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-productsubscription.html) + */ +public open class CfnProductSubscription( + cdkObject: software.amazon.awscdk.services.securityhub.CfnProductSubscription, +) : CfnResource(cdkObject), IInspectable { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnProductSubscriptionProps, + ) : + this(software.amazon.awscdk.services.securityhub.CfnProductSubscription(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnProductSubscriptionProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnProductSubscriptionProps.Builder.() -> Unit, + ) : this(scope, id, CfnProductSubscriptionProps(props) + ) + + /** + * The ARN of your subscription to the product to enable integrations for. + */ + public open fun attrProductSubscriptionArn(): String = + unwrap(this).getAttrProductSubscriptionArn() + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * The ARN of the product to enable the integration for. + */ + public open fun productArn(): String = unwrap(this).getProductArn() + + /** + * The ARN of the product to enable the integration for. + */ + public open fun productArn(`value`: String) { + unwrap(this).setProductArn(`value`) + } + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.securityhub.CfnProductSubscription]. + */ + @CdkDslMarker + public interface Builder { + /** + * The ARN of the product to enable the integration for. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-productsubscription.html#cfn-securityhub-productsubscription-productarn) + * @param productArn The ARN of the product to enable the integration for. + */ + public fun productArn(productArn: String) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.securityhub.CfnProductSubscription.Builder = + software.amazon.awscdk.services.securityhub.CfnProductSubscription.Builder.create(scope, id) + + /** + * The ARN of the product to enable the integration for. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-productsubscription.html#cfn-securityhub-productsubscription-productarn) + * @param productArn The ARN of the product to enable the integration for. + */ + override fun productArn(productArn: String) { + cdkBuilder.productArn(productArn) + } + + public fun build(): software.amazon.awscdk.services.securityhub.CfnProductSubscription = + cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.securityhub.CfnProductSubscription.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnProductSubscription { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnProductSubscription(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.securityhub.CfnProductSubscription): + CfnProductSubscription = CfnProductSubscription(cdkObject) + + internal fun unwrap(wrapped: CfnProductSubscription): + software.amazon.awscdk.services.securityhub.CfnProductSubscription = wrapped.cdkObject as + software.amazon.awscdk.services.securityhub.CfnProductSubscription + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securityhub/CfnProductSubscriptionProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securityhub/CfnProductSubscriptionProps.kt new file mode 100644 index 0000000000..2a64350097 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securityhub/CfnProductSubscriptionProps.kt @@ -0,0 +1,89 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.securityhub + +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.String +import kotlin.Unit + +/** + * Properties for defining a `CfnProductSubscription`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.securityhub.*; + * CfnProductSubscriptionProps cfnProductSubscriptionProps = CfnProductSubscriptionProps.builder() + * .productArn("productArn") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-productsubscription.html) + */ +public interface CfnProductSubscriptionProps { + /** + * The ARN of the product to enable the integration for. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-productsubscription.html#cfn-securityhub-productsubscription-productarn) + */ + public fun productArn(): String + + /** + * A builder for [CfnProductSubscriptionProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param productArn The ARN of the product to enable the integration for. + */ + public fun productArn(productArn: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.securityhub.CfnProductSubscriptionProps.Builder = + software.amazon.awscdk.services.securityhub.CfnProductSubscriptionProps.builder() + + /** + * @param productArn The ARN of the product to enable the integration for. + */ + override fun productArn(productArn: String) { + cdkBuilder.productArn(productArn) + } + + public fun build(): software.amazon.awscdk.services.securityhub.CfnProductSubscriptionProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.securityhub.CfnProductSubscriptionProps, + ) : CdkObject(cdkObject), CfnProductSubscriptionProps { + /** + * The ARN of the product to enable the integration for. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-productsubscription.html#cfn-securityhub-productsubscription-productarn) + */ + override fun productArn(): String = unwrap(this).getProductArn() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnProductSubscriptionProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.securityhub.CfnProductSubscriptionProps): + CfnProductSubscriptionProps = CdkObjectWrappers.wrap(cdkObject) as? + CfnProductSubscriptionProps ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnProductSubscriptionProps): + software.amazon.awscdk.services.securityhub.CfnProductSubscriptionProps = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.securityhub.CfnProductSubscriptionProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securitylake/CfnAwsLogSource.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securitylake/CfnAwsLogSource.kt new file mode 100644 index 0000000000..059dab3462 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securitylake/CfnAwsLogSource.kt @@ -0,0 +1,274 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.securitylake + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * Adds a natively supported AWS service as an AWS source. + * + * Enables source types for member accounts in required AWS Regions, based on the parameters you + * specify. You can choose any source type in any Region for either accounts that are part of a trusted + * organization or standalone accounts. Once you add an AWS service as a source, Security Lake starts + * collecting logs and events from it. + * + * + * If you want to create multiple sources using `AWS::SecurityLake::AwsLogSource` , you must use the + * `DependsOn` attribute to create the sources sequentially. With the `DependsOn` attribute you can + * specify that the creation of a specific `AWSLogSource` follows another. When you add a `DependsOn` + * attribute to a resource, that resource is created only after the creation of the resource specified + * in the `DependsOn` attribute. For an example, see [Add AWS log + * sources](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-awslogsource.html#aws-resource-securitylake-awslogsource--examples) + * . + * + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.securitylake.*; + * CfnAwsLogSource cfnAwsLogSource = CfnAwsLogSource.Builder.create(this, "MyCfnAwsLogSource") + * .dataLakeArn("dataLakeArn") + * .sourceName("sourceName") + * .sourceVersion("sourceVersion") + * // the properties below are optional + * .accounts(List.of("accounts")) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-awslogsource.html) + */ +public open class CfnAwsLogSource( + cdkObject: software.amazon.awscdk.services.securitylake.CfnAwsLogSource, +) : CfnResource(cdkObject), IInspectable { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnAwsLogSourceProps, + ) : + this(software.amazon.awscdk.services.securitylake.CfnAwsLogSource(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnAwsLogSourceProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnAwsLogSourceProps.Builder.() -> Unit, + ) : this(scope, id, CfnAwsLogSourceProps(props) + ) + + /** + * Specify the AWS account information where you want to enable Security Lake. + */ + public open fun accounts(): List = unwrap(this).getAccounts() ?: emptyList() + + /** + * Specify the AWS account information where you want to enable Security Lake. + */ + public open fun accounts(`value`: List) { + unwrap(this).setAccounts(`value`) + } + + /** + * Specify the AWS account information where you want to enable Security Lake. + */ + public open fun accounts(vararg `value`: String): Unit = accounts(`value`.toList()) + + /** + * The Amazon Resource Name (ARN) used to create the data lake. + */ + public open fun dataLakeArn(): String = unwrap(this).getDataLakeArn() + + /** + * The Amazon Resource Name (ARN) used to create the data lake. + */ + public open fun dataLakeArn(`value`: String) { + unwrap(this).setDataLakeArn(`value`) + } + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * The name for a AWS source. + */ + public open fun sourceName(): String = unwrap(this).getSourceName() + + /** + * The name for a AWS source. + */ + public open fun sourceName(`value`: String) { + unwrap(this).setSourceName(`value`) + } + + /** + * The version for a AWS source. + */ + public open fun sourceVersion(): String = unwrap(this).getSourceVersion() + + /** + * The version for a AWS source. + */ + public open fun sourceVersion(`value`: String) { + unwrap(this).setSourceVersion(`value`) + } + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.securitylake.CfnAwsLogSource]. + */ + @CdkDslMarker + public interface Builder { + /** + * Specify the AWS account information where you want to enable Security Lake. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-awslogsource.html#cfn-securitylake-awslogsource-accounts) + * @param accounts Specify the AWS account information where you want to enable Security Lake. + */ + public fun accounts(accounts: List) + + /** + * Specify the AWS account information where you want to enable Security Lake. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-awslogsource.html#cfn-securitylake-awslogsource-accounts) + * @param accounts Specify the AWS account information where you want to enable Security Lake. + */ + public fun accounts(vararg accounts: String) + + /** + * The Amazon Resource Name (ARN) used to create the data lake. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-awslogsource.html#cfn-securitylake-awslogsource-datalakearn) + * @param dataLakeArn The Amazon Resource Name (ARN) used to create the data lake. + */ + public fun dataLakeArn(dataLakeArn: String) + + /** + * The name for a AWS source. + * + * This must be a Regionally unique value. For the list of sources supported by Amazon Security + * Lake see [Collecting data from AWS + * services](https://docs.aws.amazon.com//security-lake/latest/userguide/internal-sources.html) in + * the Amazon Security Lake User Guide. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-awslogsource.html#cfn-securitylake-awslogsource-sourcename) + * @param sourceName The name for a AWS source. + */ + public fun sourceName(sourceName: String) + + /** + * The version for a AWS source. + * + * For more details about source versions supported by Amazon Security Lake see [OCSF source + * identification](https://docs.aws.amazon.com//security-lake/latest/userguide/open-cybersecurity-schema-framework.html#ocsf-source-identification) + * in the Amazon Security Lake User Guide. This must be a Regionally unique value. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-awslogsource.html#cfn-securitylake-awslogsource-sourceversion) + * @param sourceVersion The version for a AWS source. + */ + public fun sourceVersion(sourceVersion: String) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.services.securitylake.CfnAwsLogSource.Builder = + software.amazon.awscdk.services.securitylake.CfnAwsLogSource.Builder.create(scope, id) + + /** + * Specify the AWS account information where you want to enable Security Lake. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-awslogsource.html#cfn-securitylake-awslogsource-accounts) + * @param accounts Specify the AWS account information where you want to enable Security Lake. + */ + override fun accounts(accounts: List) { + cdkBuilder.accounts(accounts) + } + + /** + * Specify the AWS account information where you want to enable Security Lake. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-awslogsource.html#cfn-securitylake-awslogsource-accounts) + * @param accounts Specify the AWS account information where you want to enable Security Lake. + */ + override fun accounts(vararg accounts: String): Unit = accounts(accounts.toList()) + + /** + * The Amazon Resource Name (ARN) used to create the data lake. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-awslogsource.html#cfn-securitylake-awslogsource-datalakearn) + * @param dataLakeArn The Amazon Resource Name (ARN) used to create the data lake. + */ + override fun dataLakeArn(dataLakeArn: String) { + cdkBuilder.dataLakeArn(dataLakeArn) + } + + /** + * The name for a AWS source. + * + * This must be a Regionally unique value. For the list of sources supported by Amazon Security + * Lake see [Collecting data from AWS + * services](https://docs.aws.amazon.com//security-lake/latest/userguide/internal-sources.html) in + * the Amazon Security Lake User Guide. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-awslogsource.html#cfn-securitylake-awslogsource-sourcename) + * @param sourceName The name for a AWS source. + */ + override fun sourceName(sourceName: String) { + cdkBuilder.sourceName(sourceName) + } + + /** + * The version for a AWS source. + * + * For more details about source versions supported by Amazon Security Lake see [OCSF source + * identification](https://docs.aws.amazon.com//security-lake/latest/userguide/open-cybersecurity-schema-framework.html#ocsf-source-identification) + * in the Amazon Security Lake User Guide. This must be a Regionally unique value. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-awslogsource.html#cfn-securitylake-awslogsource-sourceversion) + * @param sourceVersion The version for a AWS source. + */ + override fun sourceVersion(sourceVersion: String) { + cdkBuilder.sourceVersion(sourceVersion) + } + + public fun build(): software.amazon.awscdk.services.securitylake.CfnAwsLogSource = + cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.securitylake.CfnAwsLogSource.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnAwsLogSource { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnAwsLogSource(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.securitylake.CfnAwsLogSource): + CfnAwsLogSource = CfnAwsLogSource(cdkObject) + + internal fun unwrap(wrapped: CfnAwsLogSource): + software.amazon.awscdk.services.securitylake.CfnAwsLogSource = wrapped.cdkObject as + software.amazon.awscdk.services.securitylake.CfnAwsLogSource + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securitylake/CfnAwsLogSourceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securitylake/CfnAwsLogSourceProps.kt new file mode 100644 index 0000000000..f6e6932a46 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securitylake/CfnAwsLogSourceProps.kt @@ -0,0 +1,212 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.securitylake + +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.String +import kotlin.Unit +import kotlin.collections.List + +/** + * Properties for defining a `CfnAwsLogSource`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.securitylake.*; + * CfnAwsLogSourceProps cfnAwsLogSourceProps = CfnAwsLogSourceProps.builder() + * .dataLakeArn("dataLakeArn") + * .sourceName("sourceName") + * .sourceVersion("sourceVersion") + * // the properties below are optional + * .accounts(List.of("accounts")) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-awslogsource.html) + */ +public interface CfnAwsLogSourceProps { + /** + * Specify the AWS account information where you want to enable Security Lake. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-awslogsource.html#cfn-securitylake-awslogsource-accounts) + */ + public fun accounts(): List = unwrap(this).getAccounts() ?: emptyList() + + /** + * The Amazon Resource Name (ARN) used to create the data lake. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-awslogsource.html#cfn-securitylake-awslogsource-datalakearn) + */ + public fun dataLakeArn(): String + + /** + * The name for a AWS source. + * + * This must be a Regionally unique value. For the list of sources supported by Amazon Security + * Lake see [Collecting data from AWS + * services](https://docs.aws.amazon.com//security-lake/latest/userguide/internal-sources.html) in + * the Amazon Security Lake User Guide. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-awslogsource.html#cfn-securitylake-awslogsource-sourcename) + */ + public fun sourceName(): String + + /** + * The version for a AWS source. + * + * For more details about source versions supported by Amazon Security Lake see [OCSF source + * identification](https://docs.aws.amazon.com//security-lake/latest/userguide/open-cybersecurity-schema-framework.html#ocsf-source-identification) + * in the Amazon Security Lake User Guide. This must be a Regionally unique value. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-awslogsource.html#cfn-securitylake-awslogsource-sourceversion) + */ + public fun sourceVersion(): String + + /** + * A builder for [CfnAwsLogSourceProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param accounts Specify the AWS account information where you want to enable Security Lake. + */ + public fun accounts(accounts: List) + + /** + * @param accounts Specify the AWS account information where you want to enable Security Lake. + */ + public fun accounts(vararg accounts: String) + + /** + * @param dataLakeArn The Amazon Resource Name (ARN) used to create the data lake. + */ + public fun dataLakeArn(dataLakeArn: String) + + /** + * @param sourceName The name for a AWS source. + * This must be a Regionally unique value. For the list of sources supported by Amazon Security + * Lake see [Collecting data from AWS + * services](https://docs.aws.amazon.com//security-lake/latest/userguide/internal-sources.html) in + * the Amazon Security Lake User Guide. + */ + public fun sourceName(sourceName: String) + + /** + * @param sourceVersion The version for a AWS source. + * For more details about source versions supported by Amazon Security Lake see [OCSF source + * identification](https://docs.aws.amazon.com//security-lake/latest/userguide/open-cybersecurity-schema-framework.html#ocsf-source-identification) + * in the Amazon Security Lake User Guide. This must be a Regionally unique value. + */ + public fun sourceVersion(sourceVersion: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.securitylake.CfnAwsLogSourceProps.Builder = + software.amazon.awscdk.services.securitylake.CfnAwsLogSourceProps.builder() + + /** + * @param accounts Specify the AWS account information where you want to enable Security Lake. + */ + override fun accounts(accounts: List) { + cdkBuilder.accounts(accounts) + } + + /** + * @param accounts Specify the AWS account information where you want to enable Security Lake. + */ + override fun accounts(vararg accounts: String): Unit = accounts(accounts.toList()) + + /** + * @param dataLakeArn The Amazon Resource Name (ARN) used to create the data lake. + */ + override fun dataLakeArn(dataLakeArn: String) { + cdkBuilder.dataLakeArn(dataLakeArn) + } + + /** + * @param sourceName The name for a AWS source. + * This must be a Regionally unique value. For the list of sources supported by Amazon Security + * Lake see [Collecting data from AWS + * services](https://docs.aws.amazon.com//security-lake/latest/userguide/internal-sources.html) in + * the Amazon Security Lake User Guide. + */ + override fun sourceName(sourceName: String) { + cdkBuilder.sourceName(sourceName) + } + + /** + * @param sourceVersion The version for a AWS source. + * For more details about source versions supported by Amazon Security Lake see [OCSF source + * identification](https://docs.aws.amazon.com//security-lake/latest/userguide/open-cybersecurity-schema-framework.html#ocsf-source-identification) + * in the Amazon Security Lake User Guide. This must be a Regionally unique value. + */ + override fun sourceVersion(sourceVersion: String) { + cdkBuilder.sourceVersion(sourceVersion) + } + + public fun build(): software.amazon.awscdk.services.securitylake.CfnAwsLogSourceProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.securitylake.CfnAwsLogSourceProps, + ) : CdkObject(cdkObject), CfnAwsLogSourceProps { + /** + * Specify the AWS account information where you want to enable Security Lake. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-awslogsource.html#cfn-securitylake-awslogsource-accounts) + */ + override fun accounts(): List = unwrap(this).getAccounts() ?: emptyList() + + /** + * The Amazon Resource Name (ARN) used to create the data lake. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-awslogsource.html#cfn-securitylake-awslogsource-datalakearn) + */ + override fun dataLakeArn(): String = unwrap(this).getDataLakeArn() + + /** + * The name for a AWS source. + * + * This must be a Regionally unique value. For the list of sources supported by Amazon Security + * Lake see [Collecting data from AWS + * services](https://docs.aws.amazon.com//security-lake/latest/userguide/internal-sources.html) in + * the Amazon Security Lake User Guide. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-awslogsource.html#cfn-securitylake-awslogsource-sourcename) + */ + override fun sourceName(): String = unwrap(this).getSourceName() + + /** + * The version for a AWS source. + * + * For more details about source versions supported by Amazon Security Lake see [OCSF source + * identification](https://docs.aws.amazon.com//security-lake/latest/userguide/open-cybersecurity-schema-framework.html#ocsf-source-identification) + * in the Amazon Security Lake User Guide. This must be a Regionally unique value. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-awslogsource.html#cfn-securitylake-awslogsource-sourceversion) + */ + override fun sourceVersion(): String = unwrap(this).getSourceVersion() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnAwsLogSourceProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.securitylake.CfnAwsLogSourceProps): + CfnAwsLogSourceProps = CdkObjectWrappers.wrap(cdkObject) as? CfnAwsLogSourceProps ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnAwsLogSourceProps): + software.amazon.awscdk.services.securitylake.CfnAwsLogSourceProps = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.securitylake.CfnAwsLogSourceProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securitylake/CfnDataLake.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securitylake/CfnDataLake.kt new file mode 100644 index 0000000000..c6e43f6479 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securitylake/CfnDataLake.kt @@ -0,0 +1,1281 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.securitylake + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.ITaggableV2 +import io.cloudshiftdev.awscdk.TagManager +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.Number +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.jvm.JvmName +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * Initializes an Amazon Security Lake instance with the provided (or default) configuration. + * + * You can enable Security Lake in AWS Regions with customized settings before enabling log + * collection in Regions. To specify particular Regions, configure these Regions using the + * `configurations` parameter. If you have already enabled Security Lake in a Region when you call this + * command, the command will update the Region if you provide new configuration parameters. If you have + * not already enabled Security Lake in the Region when you call this API, it will set up the data lake + * in the Region with the specified configurations. + * + * When you enable Security Lake , it starts ingesting security data after the `CreateAwsLogSource` + * call. This includes ingesting security data from sources, storing data, and making data accessible + * to subscribers. Security Lake also enables all the existing settings and resources that it stores or + * maintains for your AWS account in the current Region, including security log and event data. For + * more information, see the [Amazon Security Lake User + * Guide](https://docs.aws.amazon.com//security-lake/latest/userguide/what-is-security-lake.html) . + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.securitylake.*; + * CfnDataLake cfnDataLake = CfnDataLake.Builder.create(this, "MyCfnDataLake") + * .encryptionConfiguration(EncryptionConfigurationProperty.builder() + * .kmsKeyId("kmsKeyId") + * .build()) + * .lifecycleConfiguration(LifecycleConfigurationProperty.builder() + * .expiration(ExpirationProperty.builder() + * .days(123) + * .build()) + * .transitions(List.of(TransitionsProperty.builder() + * .days(123) + * .storageClass("storageClass") + * .build())) + * .build()) + * .metaStoreManagerRoleArn("metaStoreManagerRoleArn") + * .replicationConfiguration(ReplicationConfigurationProperty.builder() + * .regions(List.of("regions")) + * .roleArn("roleArn") + * .build()) + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html) + */ +public open class CfnDataLake( + cdkObject: software.amazon.awscdk.services.securitylake.CfnDataLake, +) : CfnResource(cdkObject), IInspectable, ITaggableV2 { + public constructor(scope: CloudshiftdevConstructsConstruct, id: String) : + this(software.amazon.awscdk.services.securitylake.CfnDataLake(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnDataLakeProps, + ) : + this(software.amazon.awscdk.services.securitylake.CfnDataLake(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnDataLakeProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnDataLakeProps.Builder.() -> Unit, + ) : this(scope, id, CfnDataLakeProps(props) + ) + + /** + * The Amazon Resource Name (ARN) of the data lake. + */ + public open fun attrArn(): String = unwrap(this).getAttrArn() + + /** + * The Amazon Resource Name (ARN) of the Amazon S3 bucket. + */ + public open fun attrS3BucketArn(): String = unwrap(this).getAttrS3BucketArn() + + /** + * Tag Manager which manages the tags for this resource. + */ + public override fun cdkTagManager(): TagManager = + unwrap(this).getCdkTagManager().let(TagManager::wrap) + + /** + * Provides encryption details of the Amazon Security Lake object. + */ + public open fun encryptionConfiguration(): Any? = unwrap(this).getEncryptionConfiguration() + + /** + * Provides encryption details of the Amazon Security Lake object. + */ + public open fun encryptionConfiguration(`value`: IResolvable) { + unwrap(this).setEncryptionConfiguration(`value`.let(IResolvable::unwrap)) + } + + /** + * Provides encryption details of the Amazon Security Lake object. + */ + public open fun encryptionConfiguration(`value`: EncryptionConfigurationProperty) { + unwrap(this).setEncryptionConfiguration(`value`.let(EncryptionConfigurationProperty::unwrap)) + } + + /** + * Provides encryption details of the Amazon Security Lake object. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("0295aa22b829e93377cef18a1a56e399a008cac87d15115520f2c05d4dde43d4") + public open + fun encryptionConfiguration(`value`: EncryptionConfigurationProperty.Builder.() -> Unit): Unit + = encryptionConfiguration(EncryptionConfigurationProperty(`value`)) + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * You can customize Security Lake to store data in your preferred AWS Regions for your preferred + * amount of time. + */ + public open fun lifecycleConfiguration(): Any? = unwrap(this).getLifecycleConfiguration() + + /** + * You can customize Security Lake to store data in your preferred AWS Regions for your preferred + * amount of time. + */ + public open fun lifecycleConfiguration(`value`: IResolvable) { + unwrap(this).setLifecycleConfiguration(`value`.let(IResolvable::unwrap)) + } + + /** + * You can customize Security Lake to store data in your preferred AWS Regions for your preferred + * amount of time. + */ + public open fun lifecycleConfiguration(`value`: LifecycleConfigurationProperty) { + unwrap(this).setLifecycleConfiguration(`value`.let(LifecycleConfigurationProperty::unwrap)) + } + + /** + * You can customize Security Lake to store data in your preferred AWS Regions for your preferred + * amount of time. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("481e444e780abe011a68ef87d5b5487bc534212a263c2dfdab987cca06de07fa") + public open + fun lifecycleConfiguration(`value`: LifecycleConfigurationProperty.Builder.() -> Unit): Unit = + lifecycleConfiguration(LifecycleConfigurationProperty(`value`)) + + /** + * The Amazon Resource Name (ARN) used to create and update the AWS Glue table. + */ + public open fun metaStoreManagerRoleArn(): String? = unwrap(this).getMetaStoreManagerRoleArn() + + /** + * The Amazon Resource Name (ARN) used to create and update the AWS Glue table. + */ + public open fun metaStoreManagerRoleArn(`value`: String) { + unwrap(this).setMetaStoreManagerRoleArn(`value`) + } + + /** + * Provides replication details of Amazon Security Lake object. + */ + public open fun replicationConfiguration(): Any? = unwrap(this).getReplicationConfiguration() + + /** + * Provides replication details of Amazon Security Lake object. + */ + public open fun replicationConfiguration(`value`: IResolvable) { + unwrap(this).setReplicationConfiguration(`value`.let(IResolvable::unwrap)) + } + + /** + * Provides replication details of Amazon Security Lake object. + */ + public open fun replicationConfiguration(`value`: ReplicationConfigurationProperty) { + unwrap(this).setReplicationConfiguration(`value`.let(ReplicationConfigurationProperty::unwrap)) + } + + /** + * Provides replication details of Amazon Security Lake object. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("cb02d29eae5a392ee9bafe3080d34ad466b81c4ce7fcb71a3c04ad3eecb94e97") + public open + fun replicationConfiguration(`value`: ReplicationConfigurationProperty.Builder.() -> Unit): + Unit = replicationConfiguration(ReplicationConfigurationProperty(`value`)) + + /** + * An array of objects, one for each tag to associate with the data lake configuration. + */ + public open fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * An array of objects, one for each tag to associate with the data lake configuration. + */ + public open fun tags(`value`: List) { + unwrap(this).setTags(`value`.map(CfnTag::unwrap)) + } + + /** + * An array of objects, one for each tag to associate with the data lake configuration. + */ + public open fun tags(vararg `value`: CfnTag): Unit = tags(`value`.toList()) + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.securitylake.CfnDataLake]. + */ + @CdkDslMarker + public interface Builder { + /** + * Provides encryption details of the Amazon Security Lake object. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-encryptionconfiguration) + * @param encryptionConfiguration Provides encryption details of the Amazon Security Lake + * object. + */ + public fun encryptionConfiguration(encryptionConfiguration: IResolvable) + + /** + * Provides encryption details of the Amazon Security Lake object. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-encryptionconfiguration) + * @param encryptionConfiguration Provides encryption details of the Amazon Security Lake + * object. + */ + public fun encryptionConfiguration(encryptionConfiguration: EncryptionConfigurationProperty) + + /** + * Provides encryption details of the Amazon Security Lake object. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-encryptionconfiguration) + * @param encryptionConfiguration Provides encryption details of the Amazon Security Lake + * object. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("aec6179077b4d24890eaad31533b9f664438db37741d307a46e9cec24484f6a2") + public + fun encryptionConfiguration(encryptionConfiguration: EncryptionConfigurationProperty.Builder.() -> Unit) + + /** + * You can customize Security Lake to store data in your preferred AWS Regions for your + * preferred amount of time. + * + * Lifecycle management can help you comply with different compliance requirements. For more + * details, see [Lifecycle + * management](https://docs.aws.amazon.com//security-lake/latest/userguide/lifecycle-management.html) + * in the Amazon Security Lake User Guide. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-lifecycleconfiguration) + * @param lifecycleConfiguration You can customize Security Lake to store data in your preferred + * AWS Regions for your preferred amount of time. + */ + public fun lifecycleConfiguration(lifecycleConfiguration: IResolvable) + + /** + * You can customize Security Lake to store data in your preferred AWS Regions for your + * preferred amount of time. + * + * Lifecycle management can help you comply with different compliance requirements. For more + * details, see [Lifecycle + * management](https://docs.aws.amazon.com//security-lake/latest/userguide/lifecycle-management.html) + * in the Amazon Security Lake User Guide. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-lifecycleconfiguration) + * @param lifecycleConfiguration You can customize Security Lake to store data in your preferred + * AWS Regions for your preferred amount of time. + */ + public fun lifecycleConfiguration(lifecycleConfiguration: LifecycleConfigurationProperty) + + /** + * You can customize Security Lake to store data in your preferred AWS Regions for your + * preferred amount of time. + * + * Lifecycle management can help you comply with different compliance requirements. For more + * details, see [Lifecycle + * management](https://docs.aws.amazon.com//security-lake/latest/userguide/lifecycle-management.html) + * in the Amazon Security Lake User Guide. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-lifecycleconfiguration) + * @param lifecycleConfiguration You can customize Security Lake to store data in your preferred + * AWS Regions for your preferred amount of time. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("7717584496caa65a45996fc3d9824c3e8628cc29eebd9dee2a71f8ec472ae825") + public + fun lifecycleConfiguration(lifecycleConfiguration: LifecycleConfigurationProperty.Builder.() -> Unit) + + /** + * The Amazon Resource Name (ARN) used to create and update the AWS Glue table. + * + * This table contains partitions generated by the ingestion and normalization of AWS log + * sources and custom sources. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-metastoremanagerrolearn) + * @param metaStoreManagerRoleArn The Amazon Resource Name (ARN) used to create and update the + * AWS Glue table. + */ + public fun metaStoreManagerRoleArn(metaStoreManagerRoleArn: String) + + /** + * Provides replication details of Amazon Security Lake object. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-replicationconfiguration) + * @param replicationConfiguration Provides replication details of Amazon Security Lake object. + */ + public fun replicationConfiguration(replicationConfiguration: IResolvable) + + /** + * Provides replication details of Amazon Security Lake object. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-replicationconfiguration) + * @param replicationConfiguration Provides replication details of Amazon Security Lake object. + */ + public fun replicationConfiguration(replicationConfiguration: ReplicationConfigurationProperty) + + /** + * Provides replication details of Amazon Security Lake object. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-replicationconfiguration) + * @param replicationConfiguration Provides replication details of Amazon Security Lake object. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("2c6b18dd74e43b57599b312d62e2cb46ca3c8139f405dd3610191e41b2ea3312") + public + fun replicationConfiguration(replicationConfiguration: ReplicationConfigurationProperty.Builder.() -> Unit) + + /** + * An array of objects, one for each tag to associate with the data lake configuration. + * + * For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, + * but it can be an empty string. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-tags) + * @param tags An array of objects, one for each tag to associate with the data lake + * configuration. + */ + public fun tags(tags: List) + + /** + * An array of objects, one for each tag to associate with the data lake configuration. + * + * For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, + * but it can be an empty string. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-tags) + * @param tags An array of objects, one for each tag to associate with the data lake + * configuration. + */ + public fun tags(vararg tags: CfnTag) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.services.securitylake.CfnDataLake.Builder = + software.amazon.awscdk.services.securitylake.CfnDataLake.Builder.create(scope, id) + + /** + * Provides encryption details of the Amazon Security Lake object. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-encryptionconfiguration) + * @param encryptionConfiguration Provides encryption details of the Amazon Security Lake + * object. + */ + override fun encryptionConfiguration(encryptionConfiguration: IResolvable) { + cdkBuilder.encryptionConfiguration(encryptionConfiguration.let(IResolvable::unwrap)) + } + + /** + * Provides encryption details of the Amazon Security Lake object. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-encryptionconfiguration) + * @param encryptionConfiguration Provides encryption details of the Amazon Security Lake + * object. + */ + override fun encryptionConfiguration(encryptionConfiguration: EncryptionConfigurationProperty) { + cdkBuilder.encryptionConfiguration(encryptionConfiguration.let(EncryptionConfigurationProperty::unwrap)) + } + + /** + * Provides encryption details of the Amazon Security Lake object. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-encryptionconfiguration) + * @param encryptionConfiguration Provides encryption details of the Amazon Security Lake + * object. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("aec6179077b4d24890eaad31533b9f664438db37741d307a46e9cec24484f6a2") + override + fun encryptionConfiguration(encryptionConfiguration: EncryptionConfigurationProperty.Builder.() -> Unit): + Unit = encryptionConfiguration(EncryptionConfigurationProperty(encryptionConfiguration)) + + /** + * You can customize Security Lake to store data in your preferred AWS Regions for your + * preferred amount of time. + * + * Lifecycle management can help you comply with different compliance requirements. For more + * details, see [Lifecycle + * management](https://docs.aws.amazon.com//security-lake/latest/userguide/lifecycle-management.html) + * in the Amazon Security Lake User Guide. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-lifecycleconfiguration) + * @param lifecycleConfiguration You can customize Security Lake to store data in your preferred + * AWS Regions for your preferred amount of time. + */ + override fun lifecycleConfiguration(lifecycleConfiguration: IResolvable) { + cdkBuilder.lifecycleConfiguration(lifecycleConfiguration.let(IResolvable::unwrap)) + } + + /** + * You can customize Security Lake to store data in your preferred AWS Regions for your + * preferred amount of time. + * + * Lifecycle management can help you comply with different compliance requirements. For more + * details, see [Lifecycle + * management](https://docs.aws.amazon.com//security-lake/latest/userguide/lifecycle-management.html) + * in the Amazon Security Lake User Guide. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-lifecycleconfiguration) + * @param lifecycleConfiguration You can customize Security Lake to store data in your preferred + * AWS Regions for your preferred amount of time. + */ + override fun lifecycleConfiguration(lifecycleConfiguration: LifecycleConfigurationProperty) { + cdkBuilder.lifecycleConfiguration(lifecycleConfiguration.let(LifecycleConfigurationProperty::unwrap)) + } + + /** + * You can customize Security Lake to store data in your preferred AWS Regions for your + * preferred amount of time. + * + * Lifecycle management can help you comply with different compliance requirements. For more + * details, see [Lifecycle + * management](https://docs.aws.amazon.com//security-lake/latest/userguide/lifecycle-management.html) + * in the Amazon Security Lake User Guide. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-lifecycleconfiguration) + * @param lifecycleConfiguration You can customize Security Lake to store data in your preferred + * AWS Regions for your preferred amount of time. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("7717584496caa65a45996fc3d9824c3e8628cc29eebd9dee2a71f8ec472ae825") + override + fun lifecycleConfiguration(lifecycleConfiguration: LifecycleConfigurationProperty.Builder.() -> Unit): + Unit = lifecycleConfiguration(LifecycleConfigurationProperty(lifecycleConfiguration)) + + /** + * The Amazon Resource Name (ARN) used to create and update the AWS Glue table. + * + * This table contains partitions generated by the ingestion and normalization of AWS log + * sources and custom sources. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-metastoremanagerrolearn) + * @param metaStoreManagerRoleArn The Amazon Resource Name (ARN) used to create and update the + * AWS Glue table. + */ + override fun metaStoreManagerRoleArn(metaStoreManagerRoleArn: String) { + cdkBuilder.metaStoreManagerRoleArn(metaStoreManagerRoleArn) + } + + /** + * Provides replication details of Amazon Security Lake object. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-replicationconfiguration) + * @param replicationConfiguration Provides replication details of Amazon Security Lake object. + */ + override fun replicationConfiguration(replicationConfiguration: IResolvable) { + cdkBuilder.replicationConfiguration(replicationConfiguration.let(IResolvable::unwrap)) + } + + /** + * Provides replication details of Amazon Security Lake object. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-replicationconfiguration) + * @param replicationConfiguration Provides replication details of Amazon Security Lake object. + */ + override + fun replicationConfiguration(replicationConfiguration: ReplicationConfigurationProperty) { + cdkBuilder.replicationConfiguration(replicationConfiguration.let(ReplicationConfigurationProperty::unwrap)) + } + + /** + * Provides replication details of Amazon Security Lake object. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-replicationconfiguration) + * @param replicationConfiguration Provides replication details of Amazon Security Lake object. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("2c6b18dd74e43b57599b312d62e2cb46ca3c8139f405dd3610191e41b2ea3312") + override + fun replicationConfiguration(replicationConfiguration: ReplicationConfigurationProperty.Builder.() -> Unit): + Unit = replicationConfiguration(ReplicationConfigurationProperty(replicationConfiguration)) + + /** + * An array of objects, one for each tag to associate with the data lake configuration. + * + * For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, + * but it can be an empty string. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-tags) + * @param tags An array of objects, one for each tag to associate with the data lake + * configuration. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * An array of objects, one for each tag to associate with the data lake configuration. + * + * For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, + * but it can be an empty string. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-tags) + * @param tags An array of objects, one for each tag to associate with the data lake + * configuration. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + public fun build(): software.amazon.awscdk.services.securitylake.CfnDataLake = + cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.securitylake.CfnDataLake.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnDataLake { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnDataLake(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.securitylake.CfnDataLake): + CfnDataLake = CfnDataLake(cdkObject) + + internal fun unwrap(wrapped: CfnDataLake): + software.amazon.awscdk.services.securitylake.CfnDataLake = wrapped.cdkObject as + software.amazon.awscdk.services.securitylake.CfnDataLake + } + + /** + * Provides encryption details of the Amazon Security Lake object. + * + * The AWS shared responsibility model applies to data protection in Amazon Security Lake . As + * described in this model, AWS is responsible for protecting the global infrastructure that runs all + * of the AWS Cloud. You are responsible for maintaining control over your content that is hosted on + * this infrastructure. For more details, see [Data + * protection](https://docs.aws.amazon.com//security-lake/latest/userguide/data-protection.html) in + * the Amazon Security Lake User Guide. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.securitylake.*; + * EncryptionConfigurationProperty encryptionConfigurationProperty = + * EncryptionConfigurationProperty.builder() + * .kmsKeyId("kmsKeyId") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-datalake-encryptionconfiguration.html) + */ + public interface EncryptionConfigurationProperty { + /** + * The ID of KMS encryption key used by Amazon Security Lake to encrypt the Security Lake + * object. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-datalake-encryptionconfiguration.html#cfn-securitylake-datalake-encryptionconfiguration-kmskeyid) + */ + public fun kmsKeyId(): String? = unwrap(this).getKmsKeyId() + + /** + * A builder for [EncryptionConfigurationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param kmsKeyId The ID of KMS encryption key used by Amazon Security Lake to encrypt the + * Security Lake object. + */ + public fun kmsKeyId(kmsKeyId: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.securitylake.CfnDataLake.EncryptionConfigurationProperty.Builder + = + software.amazon.awscdk.services.securitylake.CfnDataLake.EncryptionConfigurationProperty.builder() + + /** + * @param kmsKeyId The ID of KMS encryption key used by Amazon Security Lake to encrypt the + * Security Lake object. + */ + override fun kmsKeyId(kmsKeyId: String) { + cdkBuilder.kmsKeyId(kmsKeyId) + } + + public fun build(): + software.amazon.awscdk.services.securitylake.CfnDataLake.EncryptionConfigurationProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.securitylake.CfnDataLake.EncryptionConfigurationProperty, + ) : CdkObject(cdkObject), EncryptionConfigurationProperty { + /** + * The ID of KMS encryption key used by Amazon Security Lake to encrypt the Security Lake + * object. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-datalake-encryptionconfiguration.html#cfn-securitylake-datalake-encryptionconfiguration-kmskeyid) + */ + override fun kmsKeyId(): String? = unwrap(this).getKmsKeyId() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): EncryptionConfigurationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.securitylake.CfnDataLake.EncryptionConfigurationProperty): + EncryptionConfigurationProperty = CdkObjectWrappers.wrap(cdkObject) as? + EncryptionConfigurationProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: EncryptionConfigurationProperty): + software.amazon.awscdk.services.securitylake.CfnDataLake.EncryptionConfigurationProperty = + (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.securitylake.CfnDataLake.EncryptionConfigurationProperty + } + } + + /** + * Provides data expiration details of the Amazon Security Lake object. + * + * You can specify your preferred Amazon S3 storage class and the time period for S3 objects to + * stay in that storage class before they expire. For more information about Amazon S3 Lifecycle + * configurations, see [Managing your storage + * lifecycle](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) in + * the *Amazon Simple Storage Service User Guide* . + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.securitylake.*; + * ExpirationProperty expirationProperty = ExpirationProperty.builder() + * .days(123) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-datalake-expiration.html) + */ + public interface ExpirationProperty { + /** + * The number of days before data expires in the Amazon Security Lake object. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-datalake-expiration.html#cfn-securitylake-datalake-expiration-days) + */ + public fun days(): Number? = unwrap(this).getDays() + + /** + * A builder for [ExpirationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param days The number of days before data expires in the Amazon Security Lake object. + */ + public fun days(days: Number) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.securitylake.CfnDataLake.ExpirationProperty.Builder = + software.amazon.awscdk.services.securitylake.CfnDataLake.ExpirationProperty.builder() + + /** + * @param days The number of days before data expires in the Amazon Security Lake object. + */ + override fun days(days: Number) { + cdkBuilder.days(days) + } + + public fun build(): + software.amazon.awscdk.services.securitylake.CfnDataLake.ExpirationProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.securitylake.CfnDataLake.ExpirationProperty, + ) : CdkObject(cdkObject), ExpirationProperty { + /** + * The number of days before data expires in the Amazon Security Lake object. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-datalake-expiration.html#cfn-securitylake-datalake-expiration-days) + */ + override fun days(): Number? = unwrap(this).getDays() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): ExpirationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.securitylake.CfnDataLake.ExpirationProperty): + ExpirationProperty = CdkObjectWrappers.wrap(cdkObject) as? ExpirationProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: ExpirationProperty): + software.amazon.awscdk.services.securitylake.CfnDataLake.ExpirationProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.securitylake.CfnDataLake.ExpirationProperty + } + } + + /** + * Provides lifecycle details of Amazon Security Lake object. + * + * To manage your data so that it is stored cost effectively, you can configure retention settings + * for the data. You can specify your preferred Amazon S3 storage class and the time period for + * Amazon S3 objects to stay in that storage class before they transition to a different storage + * class or expire. For more information about Amazon S3 Lifecycle configurations, see [Managing your + * storage + * lifecycle](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) in + * the *Amazon Simple Storage Service User Guide* . + * + * In Security Lake , you specify retention settings at the Region level. For example, you might + * choose to transition all S3 objects in a specific AWS Region to the `S3 Standard-IA` storage class + * 30 days after they're written to the data lake. The default Amazon S3 storage class is S3 + * Standard. + * + * + * Security Lake doesn't support Amazon S3 Object Lock. When the data lake buckets are created, S3 + * Object Lock is disabled by default. Enabling S3 Object Lock with default retention mode interrupts + * the delivery of normalized log data to the data lake. + * + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.securitylake.*; + * LifecycleConfigurationProperty lifecycleConfigurationProperty = + * LifecycleConfigurationProperty.builder() + * .expiration(ExpirationProperty.builder() + * .days(123) + * .build()) + * .transitions(List.of(TransitionsProperty.builder() + * .days(123) + * .storageClass("storageClass") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-datalake-lifecycleconfiguration.html) + */ + public interface LifecycleConfigurationProperty { + /** + * Provides data expiration details of the Amazon Security Lake object. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-datalake-lifecycleconfiguration.html#cfn-securitylake-datalake-lifecycleconfiguration-expiration) + */ + public fun expiration(): Any? = unwrap(this).getExpiration() + + /** + * Provides data storage transition details of Amazon Security Lake object. + * + * By configuring these settings, you can specify your preferred Amazon S3 storage class and the + * time period for S3 objects to stay in that storage class before they transition to a different + * storage class. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-datalake-lifecycleconfiguration.html#cfn-securitylake-datalake-lifecycleconfiguration-transitions) + */ + public fun transitions(): Any? = unwrap(this).getTransitions() + + /** + * A builder for [LifecycleConfigurationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param expiration Provides data expiration details of the Amazon Security Lake object. + */ + public fun expiration(expiration: IResolvable) + + /** + * @param expiration Provides data expiration details of the Amazon Security Lake object. + */ + public fun expiration(expiration: ExpirationProperty) + + /** + * @param expiration Provides data expiration details of the Amazon Security Lake object. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("0e191ac056fa996440f095270b37e7bf36c1ef9b13530acc80d3173766ca7cff") + public fun expiration(expiration: ExpirationProperty.Builder.() -> Unit) + + /** + * @param transitions Provides data storage transition details of Amazon Security Lake object. + * By configuring these settings, you can specify your preferred Amazon S3 storage class and + * the time period for S3 objects to stay in that storage class before they transition to a + * different storage class. + */ + public fun transitions(transitions: IResolvable) + + /** + * @param transitions Provides data storage transition details of Amazon Security Lake object. + * By configuring these settings, you can specify your preferred Amazon S3 storage class and + * the time period for S3 objects to stay in that storage class before they transition to a + * different storage class. + */ + public fun transitions(transitions: List) + + /** + * @param transitions Provides data storage transition details of Amazon Security Lake object. + * By configuring these settings, you can specify your preferred Amazon S3 storage class and + * the time period for S3 objects to stay in that storage class before they transition to a + * different storage class. + */ + public fun transitions(vararg transitions: Any) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.securitylake.CfnDataLake.LifecycleConfigurationProperty.Builder + = + software.amazon.awscdk.services.securitylake.CfnDataLake.LifecycleConfigurationProperty.builder() + + /** + * @param expiration Provides data expiration details of the Amazon Security Lake object. + */ + override fun expiration(expiration: IResolvable) { + cdkBuilder.expiration(expiration.let(IResolvable::unwrap)) + } + + /** + * @param expiration Provides data expiration details of the Amazon Security Lake object. + */ + override fun expiration(expiration: ExpirationProperty) { + cdkBuilder.expiration(expiration.let(ExpirationProperty::unwrap)) + } + + /** + * @param expiration Provides data expiration details of the Amazon Security Lake object. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("0e191ac056fa996440f095270b37e7bf36c1ef9b13530acc80d3173766ca7cff") + override fun expiration(expiration: ExpirationProperty.Builder.() -> Unit): Unit = + expiration(ExpirationProperty(expiration)) + + /** + * @param transitions Provides data storage transition details of Amazon Security Lake object. + * By configuring these settings, you can specify your preferred Amazon S3 storage class and + * the time period for S3 objects to stay in that storage class before they transition to a + * different storage class. + */ + override fun transitions(transitions: IResolvable) { + cdkBuilder.transitions(transitions.let(IResolvable::unwrap)) + } + + /** + * @param transitions Provides data storage transition details of Amazon Security Lake object. + * By configuring these settings, you can specify your preferred Amazon S3 storage class and + * the time period for S3 objects to stay in that storage class before they transition to a + * different storage class. + */ + override fun transitions(transitions: List) { + cdkBuilder.transitions(transitions.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param transitions Provides data storage transition details of Amazon Security Lake object. + * By configuring these settings, you can specify your preferred Amazon S3 storage class and + * the time period for S3 objects to stay in that storage class before they transition to a + * different storage class. + */ + override fun transitions(vararg transitions: Any): Unit = transitions(transitions.toList()) + + public fun build(): + software.amazon.awscdk.services.securitylake.CfnDataLake.LifecycleConfigurationProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.securitylake.CfnDataLake.LifecycleConfigurationProperty, + ) : CdkObject(cdkObject), LifecycleConfigurationProperty { + /** + * Provides data expiration details of the Amazon Security Lake object. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-datalake-lifecycleconfiguration.html#cfn-securitylake-datalake-lifecycleconfiguration-expiration) + */ + override fun expiration(): Any? = unwrap(this).getExpiration() + + /** + * Provides data storage transition details of Amazon Security Lake object. + * + * By configuring these settings, you can specify your preferred Amazon S3 storage class and + * the time period for S3 objects to stay in that storage class before they transition to a + * different storage class. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-datalake-lifecycleconfiguration.html#cfn-securitylake-datalake-lifecycleconfiguration-transitions) + */ + override fun transitions(): Any? = unwrap(this).getTransitions() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): LifecycleConfigurationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.securitylake.CfnDataLake.LifecycleConfigurationProperty): + LifecycleConfigurationProperty = CdkObjectWrappers.wrap(cdkObject) as? + LifecycleConfigurationProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: LifecycleConfigurationProperty): + software.amazon.awscdk.services.securitylake.CfnDataLake.LifecycleConfigurationProperty = + (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.securitylake.CfnDataLake.LifecycleConfigurationProperty + } + } + + /** + * Provides replication configuration details for objects stored in the Amazon Security Lake data + * lake. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.securitylake.*; + * ReplicationConfigurationProperty replicationConfigurationProperty = + * ReplicationConfigurationProperty.builder() + * .regions(List.of("regions")) + * .roleArn("roleArn") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-datalake-replicationconfiguration.html) + */ + public interface ReplicationConfigurationProperty { + /** + * Specifies one or more centralized rollup Regions. + * + * The AWS Region specified in the region parameter of the `CreateDataLake` or `UpdateDataLake` + * operations contributes data to the rollup Region or Regions specified in this parameter. + * + * Replication enables automatic, asynchronous copying of objects across Amazon S3 buckets. S3 + * buckets that are configured for object replication can be owned by the same AWS account or by + * different accounts. You can replicate objects to a single destination bucket or to multiple + * destination buckets. The destination buckets can be in different Regions or within the same + * Region as the source bucket. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-datalake-replicationconfiguration.html#cfn-securitylake-datalake-replicationconfiguration-regions) + */ + public fun regions(): List = unwrap(this).getRegions() ?: emptyList() + + /** + * Replication settings for the Amazon S3 buckets. + * + * This parameter uses the AWS Identity and Access Management (IAM) role you created that is + * managed by Security Lake , to ensure the replication setting is correct. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-datalake-replicationconfiguration.html#cfn-securitylake-datalake-replicationconfiguration-rolearn) + */ + public fun roleArn(): String? = unwrap(this).getRoleArn() + + /** + * A builder for [ReplicationConfigurationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param regions Specifies one or more centralized rollup Regions. + * The AWS Region specified in the region parameter of the `CreateDataLake` or + * `UpdateDataLake` operations contributes data to the rollup Region or Regions specified in this + * parameter. + * + * Replication enables automatic, asynchronous copying of objects across Amazon S3 buckets. S3 + * buckets that are configured for object replication can be owned by the same AWS account or by + * different accounts. You can replicate objects to a single destination bucket or to multiple + * destination buckets. The destination buckets can be in different Regions or within the same + * Region as the source bucket. + */ + public fun regions(regions: List) + + /** + * @param regions Specifies one or more centralized rollup Regions. + * The AWS Region specified in the region parameter of the `CreateDataLake` or + * `UpdateDataLake` operations contributes data to the rollup Region or Regions specified in this + * parameter. + * + * Replication enables automatic, asynchronous copying of objects across Amazon S3 buckets. S3 + * buckets that are configured for object replication can be owned by the same AWS account or by + * different accounts. You can replicate objects to a single destination bucket or to multiple + * destination buckets. The destination buckets can be in different Regions or within the same + * Region as the source bucket. + */ + public fun regions(vararg regions: String) + + /** + * @param roleArn Replication settings for the Amazon S3 buckets. + * This parameter uses the AWS Identity and Access Management (IAM) role you created that is + * managed by Security Lake , to ensure the replication setting is correct. + */ + public fun roleArn(roleArn: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.securitylake.CfnDataLake.ReplicationConfigurationProperty.Builder + = + software.amazon.awscdk.services.securitylake.CfnDataLake.ReplicationConfigurationProperty.builder() + + /** + * @param regions Specifies one or more centralized rollup Regions. + * The AWS Region specified in the region parameter of the `CreateDataLake` or + * `UpdateDataLake` operations contributes data to the rollup Region or Regions specified in this + * parameter. + * + * Replication enables automatic, asynchronous copying of objects across Amazon S3 buckets. S3 + * buckets that are configured for object replication can be owned by the same AWS account or by + * different accounts. You can replicate objects to a single destination bucket or to multiple + * destination buckets. The destination buckets can be in different Regions or within the same + * Region as the source bucket. + */ + override fun regions(regions: List) { + cdkBuilder.regions(regions) + } + + /** + * @param regions Specifies one or more centralized rollup Regions. + * The AWS Region specified in the region parameter of the `CreateDataLake` or + * `UpdateDataLake` operations contributes data to the rollup Region or Regions specified in this + * parameter. + * + * Replication enables automatic, asynchronous copying of objects across Amazon S3 buckets. S3 + * buckets that are configured for object replication can be owned by the same AWS account or by + * different accounts. You can replicate objects to a single destination bucket or to multiple + * destination buckets. The destination buckets can be in different Regions or within the same + * Region as the source bucket. + */ + override fun regions(vararg regions: String): Unit = regions(regions.toList()) + + /** + * @param roleArn Replication settings for the Amazon S3 buckets. + * This parameter uses the AWS Identity and Access Management (IAM) role you created that is + * managed by Security Lake , to ensure the replication setting is correct. + */ + override fun roleArn(roleArn: String) { + cdkBuilder.roleArn(roleArn) + } + + public fun build(): + software.amazon.awscdk.services.securitylake.CfnDataLake.ReplicationConfigurationProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.securitylake.CfnDataLake.ReplicationConfigurationProperty, + ) : CdkObject(cdkObject), ReplicationConfigurationProperty { + /** + * Specifies one or more centralized rollup Regions. + * + * The AWS Region specified in the region parameter of the `CreateDataLake` or + * `UpdateDataLake` operations contributes data to the rollup Region or Regions specified in this + * parameter. + * + * Replication enables automatic, asynchronous copying of objects across Amazon S3 buckets. S3 + * buckets that are configured for object replication can be owned by the same AWS account or by + * different accounts. You can replicate objects to a single destination bucket or to multiple + * destination buckets. The destination buckets can be in different Regions or within the same + * Region as the source bucket. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-datalake-replicationconfiguration.html#cfn-securitylake-datalake-replicationconfiguration-regions) + */ + override fun regions(): List = unwrap(this).getRegions() ?: emptyList() + + /** + * Replication settings for the Amazon S3 buckets. + * + * This parameter uses the AWS Identity and Access Management (IAM) role you created that is + * managed by Security Lake , to ensure the replication setting is correct. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-datalake-replicationconfiguration.html#cfn-securitylake-datalake-replicationconfiguration-rolearn) + */ + override fun roleArn(): String? = unwrap(this).getRoleArn() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): ReplicationConfigurationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.securitylake.CfnDataLake.ReplicationConfigurationProperty): + ReplicationConfigurationProperty = CdkObjectWrappers.wrap(cdkObject) as? + ReplicationConfigurationProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: ReplicationConfigurationProperty): + software.amazon.awscdk.services.securitylake.CfnDataLake.ReplicationConfigurationProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.securitylake.CfnDataLake.ReplicationConfigurationProperty + } + } + + /** + * Provides transition lifecycle details of the Amazon Security Lake object. + * + * For more information about Amazon S3 Lifecycle configurations, see [Managing your storage + * lifecycle](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) in + * the *Amazon Simple Storage Service User Guide* . + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.securitylake.*; + * TransitionsProperty transitionsProperty = TransitionsProperty.builder() + * .days(123) + * .storageClass("storageClass") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-datalake-transitions.html) + */ + public interface TransitionsProperty { + /** + * The number of days before data transitions to a different S3 Storage Class in the Amazon + * Security Lake object. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-datalake-transitions.html#cfn-securitylake-datalake-transitions-days) + */ + public fun days(): Number? = unwrap(this).getDays() + + /** + * The list of storage classes that you can choose from based on the data access, resiliency, + * and cost requirements of your workloads. + * + * The default storage class is S3 Standard. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-datalake-transitions.html#cfn-securitylake-datalake-transitions-storageclass) + */ + public fun storageClass(): String? = unwrap(this).getStorageClass() + + /** + * A builder for [TransitionsProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param days The number of days before data transitions to a different S3 Storage Class in + * the Amazon Security Lake object. + */ + public fun days(days: Number) + + /** + * @param storageClass The list of storage classes that you can choose from based on the data + * access, resiliency, and cost requirements of your workloads. + * The default storage class is S3 Standard. + */ + public fun storageClass(storageClass: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.securitylake.CfnDataLake.TransitionsProperty.Builder = + software.amazon.awscdk.services.securitylake.CfnDataLake.TransitionsProperty.builder() + + /** + * @param days The number of days before data transitions to a different S3 Storage Class in + * the Amazon Security Lake object. + */ + override fun days(days: Number) { + cdkBuilder.days(days) + } + + /** + * @param storageClass The list of storage classes that you can choose from based on the data + * access, resiliency, and cost requirements of your workloads. + * The default storage class is S3 Standard. + */ + override fun storageClass(storageClass: String) { + cdkBuilder.storageClass(storageClass) + } + + public fun build(): + software.amazon.awscdk.services.securitylake.CfnDataLake.TransitionsProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.securitylake.CfnDataLake.TransitionsProperty, + ) : CdkObject(cdkObject), TransitionsProperty { + /** + * The number of days before data transitions to a different S3 Storage Class in the Amazon + * Security Lake object. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-datalake-transitions.html#cfn-securitylake-datalake-transitions-days) + */ + override fun days(): Number? = unwrap(this).getDays() + + /** + * The list of storage classes that you can choose from based on the data access, resiliency, + * and cost requirements of your workloads. + * + * The default storage class is S3 Standard. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-datalake-transitions.html#cfn-securitylake-datalake-transitions-storageclass) + */ + override fun storageClass(): String? = unwrap(this).getStorageClass() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): TransitionsProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.securitylake.CfnDataLake.TransitionsProperty): + TransitionsProperty = CdkObjectWrappers.wrap(cdkObject) as? TransitionsProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: TransitionsProperty): + software.amazon.awscdk.services.securitylake.CfnDataLake.TransitionsProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.securitylake.CfnDataLake.TransitionsProperty + } + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securitylake/CfnDataLakeProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securitylake/CfnDataLakeProps.kt new file mode 100644 index 0000000000..be0879869f --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securitylake/CfnDataLakeProps.kt @@ -0,0 +1,399 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.securitylake + +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.jvm.JvmName + +/** + * Properties for defining a `CfnDataLake`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.securitylake.*; + * CfnDataLakeProps cfnDataLakeProps = CfnDataLakeProps.builder() + * .encryptionConfiguration(EncryptionConfigurationProperty.builder() + * .kmsKeyId("kmsKeyId") + * .build()) + * .lifecycleConfiguration(LifecycleConfigurationProperty.builder() + * .expiration(ExpirationProperty.builder() + * .days(123) + * .build()) + * .transitions(List.of(TransitionsProperty.builder() + * .days(123) + * .storageClass("storageClass") + * .build())) + * .build()) + * .metaStoreManagerRoleArn("metaStoreManagerRoleArn") + * .replicationConfiguration(ReplicationConfigurationProperty.builder() + * .regions(List.of("regions")) + * .roleArn("roleArn") + * .build()) + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html) + */ +public interface CfnDataLakeProps { + /** + * Provides encryption details of the Amazon Security Lake object. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-encryptionconfiguration) + */ + public fun encryptionConfiguration(): Any? = unwrap(this).getEncryptionConfiguration() + + /** + * You can customize Security Lake to store data in your preferred AWS Regions for your preferred + * amount of time. + * + * Lifecycle management can help you comply with different compliance requirements. For more + * details, see [Lifecycle + * management](https://docs.aws.amazon.com//security-lake/latest/userguide/lifecycle-management.html) + * in the Amazon Security Lake User Guide. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-lifecycleconfiguration) + */ + public fun lifecycleConfiguration(): Any? = unwrap(this).getLifecycleConfiguration() + + /** + * The Amazon Resource Name (ARN) used to create and update the AWS Glue table. + * + * This table contains partitions generated by the ingestion and normalization of AWS log sources + * and custom sources. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-metastoremanagerrolearn) + */ + public fun metaStoreManagerRoleArn(): String? = unwrap(this).getMetaStoreManagerRoleArn() + + /** + * Provides replication details of Amazon Security Lake object. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-replicationconfiguration) + */ + public fun replicationConfiguration(): Any? = unwrap(this).getReplicationConfiguration() + + /** + * An array of objects, one for each tag to associate with the data lake configuration. + * + * For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but + * it can be an empty string. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-tags) + */ + public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * A builder for [CfnDataLakeProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param encryptionConfiguration Provides encryption details of the Amazon Security Lake + * object. + */ + public fun encryptionConfiguration(encryptionConfiguration: IResolvable) + + /** + * @param encryptionConfiguration Provides encryption details of the Amazon Security Lake + * object. + */ + public + fun encryptionConfiguration(encryptionConfiguration: CfnDataLake.EncryptionConfigurationProperty) + + /** + * @param encryptionConfiguration Provides encryption details of the Amazon Security Lake + * object. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("a2442f58b3b01717546f85581c27351d34307c1fc218aa20cdbbfa5aed72aef0") + public + fun encryptionConfiguration(encryptionConfiguration: CfnDataLake.EncryptionConfigurationProperty.Builder.() -> Unit) + + /** + * @param lifecycleConfiguration You can customize Security Lake to store data in your preferred + * AWS Regions for your preferred amount of time. + * Lifecycle management can help you comply with different compliance requirements. For more + * details, see [Lifecycle + * management](https://docs.aws.amazon.com//security-lake/latest/userguide/lifecycle-management.html) + * in the Amazon Security Lake User Guide. + */ + public fun lifecycleConfiguration(lifecycleConfiguration: IResolvable) + + /** + * @param lifecycleConfiguration You can customize Security Lake to store data in your preferred + * AWS Regions for your preferred amount of time. + * Lifecycle management can help you comply with different compliance requirements. For more + * details, see [Lifecycle + * management](https://docs.aws.amazon.com//security-lake/latest/userguide/lifecycle-management.html) + * in the Amazon Security Lake User Guide. + */ + public + fun lifecycleConfiguration(lifecycleConfiguration: CfnDataLake.LifecycleConfigurationProperty) + + /** + * @param lifecycleConfiguration You can customize Security Lake to store data in your preferred + * AWS Regions for your preferred amount of time. + * Lifecycle management can help you comply with different compliance requirements. For more + * details, see [Lifecycle + * management](https://docs.aws.amazon.com//security-lake/latest/userguide/lifecycle-management.html) + * in the Amazon Security Lake User Guide. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("39020733219eabebae180a595797416552420ba0991e920504c36fda6c86b2b6") + public + fun lifecycleConfiguration(lifecycleConfiguration: CfnDataLake.LifecycleConfigurationProperty.Builder.() -> Unit) + + /** + * @param metaStoreManagerRoleArn The Amazon Resource Name (ARN) used to create and update the + * AWS Glue table. + * This table contains partitions generated by the ingestion and normalization of AWS log + * sources and custom sources. + */ + public fun metaStoreManagerRoleArn(metaStoreManagerRoleArn: String) + + /** + * @param replicationConfiguration Provides replication details of Amazon Security Lake object. + */ + public fun replicationConfiguration(replicationConfiguration: IResolvable) + + /** + * @param replicationConfiguration Provides replication details of Amazon Security Lake object. + */ + public + fun replicationConfiguration(replicationConfiguration: CfnDataLake.ReplicationConfigurationProperty) + + /** + * @param replicationConfiguration Provides replication details of Amazon Security Lake object. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("c59cae038283dae77140399f42e6a487456dd1ca71bdb37389c3ca252a7bce5e") + public + fun replicationConfiguration(replicationConfiguration: CfnDataLake.ReplicationConfigurationProperty.Builder.() -> Unit) + + /** + * @param tags An array of objects, one for each tag to associate with the data lake + * configuration. + * For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, + * but it can be an empty string. + */ + public fun tags(tags: List) + + /** + * @param tags An array of objects, one for each tag to associate with the data lake + * configuration. + * For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, + * but it can be an empty string. + */ + public fun tags(vararg tags: CfnTag) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.services.securitylake.CfnDataLakeProps.Builder = + software.amazon.awscdk.services.securitylake.CfnDataLakeProps.builder() + + /** + * @param encryptionConfiguration Provides encryption details of the Amazon Security Lake + * object. + */ + override fun encryptionConfiguration(encryptionConfiguration: IResolvable) { + cdkBuilder.encryptionConfiguration(encryptionConfiguration.let(IResolvable::unwrap)) + } + + /** + * @param encryptionConfiguration Provides encryption details of the Amazon Security Lake + * object. + */ + override + fun encryptionConfiguration(encryptionConfiguration: CfnDataLake.EncryptionConfigurationProperty) { + cdkBuilder.encryptionConfiguration(encryptionConfiguration.let(CfnDataLake.EncryptionConfigurationProperty::unwrap)) + } + + /** + * @param encryptionConfiguration Provides encryption details of the Amazon Security Lake + * object. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("a2442f58b3b01717546f85581c27351d34307c1fc218aa20cdbbfa5aed72aef0") + override + fun encryptionConfiguration(encryptionConfiguration: CfnDataLake.EncryptionConfigurationProperty.Builder.() -> Unit): + Unit = + encryptionConfiguration(CfnDataLake.EncryptionConfigurationProperty(encryptionConfiguration)) + + /** + * @param lifecycleConfiguration You can customize Security Lake to store data in your preferred + * AWS Regions for your preferred amount of time. + * Lifecycle management can help you comply with different compliance requirements. For more + * details, see [Lifecycle + * management](https://docs.aws.amazon.com//security-lake/latest/userguide/lifecycle-management.html) + * in the Amazon Security Lake User Guide. + */ + override fun lifecycleConfiguration(lifecycleConfiguration: IResolvable) { + cdkBuilder.lifecycleConfiguration(lifecycleConfiguration.let(IResolvable::unwrap)) + } + + /** + * @param lifecycleConfiguration You can customize Security Lake to store data in your preferred + * AWS Regions for your preferred amount of time. + * Lifecycle management can help you comply with different compliance requirements. For more + * details, see [Lifecycle + * management](https://docs.aws.amazon.com//security-lake/latest/userguide/lifecycle-management.html) + * in the Amazon Security Lake User Guide. + */ + override + fun lifecycleConfiguration(lifecycleConfiguration: CfnDataLake.LifecycleConfigurationProperty) { + cdkBuilder.lifecycleConfiguration(lifecycleConfiguration.let(CfnDataLake.LifecycleConfigurationProperty::unwrap)) + } + + /** + * @param lifecycleConfiguration You can customize Security Lake to store data in your preferred + * AWS Regions for your preferred amount of time. + * Lifecycle management can help you comply with different compliance requirements. For more + * details, see [Lifecycle + * management](https://docs.aws.amazon.com//security-lake/latest/userguide/lifecycle-management.html) + * in the Amazon Security Lake User Guide. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("39020733219eabebae180a595797416552420ba0991e920504c36fda6c86b2b6") + override + fun lifecycleConfiguration(lifecycleConfiguration: CfnDataLake.LifecycleConfigurationProperty.Builder.() -> Unit): + Unit = + lifecycleConfiguration(CfnDataLake.LifecycleConfigurationProperty(lifecycleConfiguration)) + + /** + * @param metaStoreManagerRoleArn The Amazon Resource Name (ARN) used to create and update the + * AWS Glue table. + * This table contains partitions generated by the ingestion and normalization of AWS log + * sources and custom sources. + */ + override fun metaStoreManagerRoleArn(metaStoreManagerRoleArn: String) { + cdkBuilder.metaStoreManagerRoleArn(metaStoreManagerRoleArn) + } + + /** + * @param replicationConfiguration Provides replication details of Amazon Security Lake object. + */ + override fun replicationConfiguration(replicationConfiguration: IResolvable) { + cdkBuilder.replicationConfiguration(replicationConfiguration.let(IResolvable::unwrap)) + } + + /** + * @param replicationConfiguration Provides replication details of Amazon Security Lake object. + */ + override + fun replicationConfiguration(replicationConfiguration: CfnDataLake.ReplicationConfigurationProperty) { + cdkBuilder.replicationConfiguration(replicationConfiguration.let(CfnDataLake.ReplicationConfigurationProperty::unwrap)) + } + + /** + * @param replicationConfiguration Provides replication details of Amazon Security Lake object. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("c59cae038283dae77140399f42e6a487456dd1ca71bdb37389c3ca252a7bce5e") + override + fun replicationConfiguration(replicationConfiguration: CfnDataLake.ReplicationConfigurationProperty.Builder.() -> Unit): + Unit = + replicationConfiguration(CfnDataLake.ReplicationConfigurationProperty(replicationConfiguration)) + + /** + * @param tags An array of objects, one for each tag to associate with the data lake + * configuration. + * For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, + * but it can be an empty string. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * @param tags An array of objects, one for each tag to associate with the data lake + * configuration. + * For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, + * but it can be an empty string. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + public fun build(): software.amazon.awscdk.services.securitylake.CfnDataLakeProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.securitylake.CfnDataLakeProps, + ) : CdkObject(cdkObject), CfnDataLakeProps { + /** + * Provides encryption details of the Amazon Security Lake object. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-encryptionconfiguration) + */ + override fun encryptionConfiguration(): Any? = unwrap(this).getEncryptionConfiguration() + + /** + * You can customize Security Lake to store data in your preferred AWS Regions for your + * preferred amount of time. + * + * Lifecycle management can help you comply with different compliance requirements. For more + * details, see [Lifecycle + * management](https://docs.aws.amazon.com//security-lake/latest/userguide/lifecycle-management.html) + * in the Amazon Security Lake User Guide. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-lifecycleconfiguration) + */ + override fun lifecycleConfiguration(): Any? = unwrap(this).getLifecycleConfiguration() + + /** + * The Amazon Resource Name (ARN) used to create and update the AWS Glue table. + * + * This table contains partitions generated by the ingestion and normalization of AWS log + * sources and custom sources. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-metastoremanagerrolearn) + */ + override fun metaStoreManagerRoleArn(): String? = unwrap(this).getMetaStoreManagerRoleArn() + + /** + * Provides replication details of Amazon Security Lake object. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-replicationconfiguration) + */ + override fun replicationConfiguration(): Any? = unwrap(this).getReplicationConfiguration() + + /** + * An array of objects, one for each tag to associate with the data lake configuration. + * + * For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, + * but it can be an empty string. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html#cfn-securitylake-datalake-tags) + */ + override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnDataLakeProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.securitylake.CfnDataLakeProps): + CfnDataLakeProps = CdkObjectWrappers.wrap(cdkObject) as? CfnDataLakeProps ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnDataLakeProps): + software.amazon.awscdk.services.securitylake.CfnDataLakeProps = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.securitylake.CfnDataLakeProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securitylake/CfnSubscriber.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securitylake/CfnSubscriber.kt new file mode 100644 index 0000000000..f115a5cb68 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securitylake/CfnSubscriber.kt @@ -0,0 +1,1147 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.securitylake + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.ITaggableV2 +import io.cloudshiftdev.awscdk.TagManager +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.jvm.JvmName +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * Creates a subscriber for accounts that are already enabled in Amazon Security Lake. + * + * You can create a subscriber with access to data in the current AWS Region. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.securitylake.*; + * CfnSubscriber cfnSubscriber = CfnSubscriber.Builder.create(this, "MyCfnSubscriber") + * .accessTypes(List.of("accessTypes")) + * .dataLakeArn("dataLakeArn") + * .sources(List.of(SourceProperty.builder() + * .awsLogSource(AwsLogSourceProperty.builder() + * .sourceName("sourceName") + * .sourceVersion("sourceVersion") + * .build()) + * .customLogSource(CustomLogSourceProperty.builder() + * .sourceName("sourceName") + * .sourceVersion("sourceVersion") + * .build()) + * .build())) + * .subscriberIdentity(SubscriberIdentityProperty.builder() + * .externalId("externalId") + * .principal("principal") + * .build()) + * .subscriberName("subscriberName") + * // the properties below are optional + * .subscriberDescription("subscriberDescription") + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html) + */ +public open class CfnSubscriber( + cdkObject: software.amazon.awscdk.services.securitylake.CfnSubscriber, +) : CfnResource(cdkObject), IInspectable, ITaggableV2 { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnSubscriberProps, + ) : + this(software.amazon.awscdk.services.securitylake.CfnSubscriber(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnSubscriberProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnSubscriberProps.Builder.() -> Unit, + ) : this(scope, id, CfnSubscriberProps(props) + ) + + /** + * You can choose to notify subscribers of new objects with an Amazon Simple Queue Service (Amazon + * SQS) queue or through messaging to an HTTPS endpoint provided by the subscriber. + */ + public open fun accessTypes(): List = unwrap(this).getAccessTypes() + + /** + * You can choose to notify subscribers of new objects with an Amazon Simple Queue Service (Amazon + * SQS) queue or through messaging to an HTTPS endpoint provided by the subscriber. + */ + public open fun accessTypes(`value`: List) { + unwrap(this).setAccessTypes(`value`) + } + + /** + * You can choose to notify subscribers of new objects with an Amazon Simple Queue Service (Amazon + * SQS) queue or through messaging to an HTTPS endpoint provided by the subscriber. + */ + public open fun accessTypes(vararg `value`: String): Unit = accessTypes(`value`.toList()) + + /** + * The Amazon Resource Name (ARN) of the Amazon Security Lake subscriber. + */ + public open fun attrResourceShareArn(): String = unwrap(this).getAttrResourceShareArn() + + /** + * The ARN name of the Amazon Security Lake subscriber. + */ + public open fun attrResourceShareName(): String = unwrap(this).getAttrResourceShareName() + + /** + * The Amazon Resource Name (ARN) of the S3 bucket. + */ + public open fun attrS3BucketArn(): String = unwrap(this).getAttrS3BucketArn() + + /** + * The Amazon Resource Name (ARN) of the Security Lake subscriber. + */ + public open fun attrSubscriberArn(): String = unwrap(this).getAttrSubscriberArn() + + /** + * The Amazon Resource Name (ARN) of the role used to create the Security Lake subscriber. + */ + public open fun attrSubscriberRoleArn(): String = unwrap(this).getAttrSubscriberRoleArn() + + /** + * Tag Manager which manages the tags for this resource. + */ + public override fun cdkTagManager(): TagManager = + unwrap(this).getCdkTagManager().let(TagManager::wrap) + + /** + * The Amazon Resource Name (ARN) used to create the data lake. + */ + public open fun dataLakeArn(): String = unwrap(this).getDataLakeArn() + + /** + * The Amazon Resource Name (ARN) used to create the data lake. + */ + public open fun dataLakeArn(`value`: String) { + unwrap(this).setDataLakeArn(`value`) + } + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * Amazon Security Lake supports log and event collection for natively supported AWS services . + */ + public open fun sources(): Any = unwrap(this).getSources() + + /** + * Amazon Security Lake supports log and event collection for natively supported AWS services . + */ + public open fun sources(`value`: IResolvable) { + unwrap(this).setSources(`value`.let(IResolvable::unwrap)) + } + + /** + * Amazon Security Lake supports log and event collection for natively supported AWS services . + */ + public open fun sources(`value`: List) { + unwrap(this).setSources(`value`.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * Amazon Security Lake supports log and event collection for natively supported AWS services . + */ + public open fun sources(vararg `value`: Any): Unit = sources(`value`.toList()) + + /** + * The subscriber descriptions for a subscriber account. + */ + public open fun subscriberDescription(): String? = unwrap(this).getSubscriberDescription() + + /** + * The subscriber descriptions for a subscriber account. + */ + public open fun subscriberDescription(`value`: String) { + unwrap(this).setSubscriberDescription(`value`) + } + + /** + * The AWS identity used to access your data. + */ + public open fun subscriberIdentity(): Any = unwrap(this).getSubscriberIdentity() + + /** + * The AWS identity used to access your data. + */ + public open fun subscriberIdentity(`value`: IResolvable) { + unwrap(this).setSubscriberIdentity(`value`.let(IResolvable::unwrap)) + } + + /** + * The AWS identity used to access your data. + */ + public open fun subscriberIdentity(`value`: SubscriberIdentityProperty) { + unwrap(this).setSubscriberIdentity(`value`.let(SubscriberIdentityProperty::unwrap)) + } + + /** + * The AWS identity used to access your data. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("675f0c0bdfbe8722cd9e2d826b31079e33064511be3c8de541fc1cac524611aa") + public open fun subscriberIdentity(`value`: SubscriberIdentityProperty.Builder.() -> Unit): Unit = + subscriberIdentity(SubscriberIdentityProperty(`value`)) + + /** + * The name of your Amazon Security Lake subscriber account. + */ + public open fun subscriberName(): String = unwrap(this).getSubscriberName() + + /** + * The name of your Amazon Security Lake subscriber account. + */ + public open fun subscriberName(`value`: String) { + unwrap(this).setSubscriberName(`value`) + } + + /** + * An array of objects, one for each tag to associate with the subscriber. + */ + public open fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * An array of objects, one for each tag to associate with the subscriber. + */ + public open fun tags(`value`: List) { + unwrap(this).setTags(`value`.map(CfnTag::unwrap)) + } + + /** + * An array of objects, one for each tag to associate with the subscriber. + */ + public open fun tags(vararg `value`: CfnTag): Unit = tags(`value`.toList()) + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.securitylake.CfnSubscriber]. + */ + @CdkDslMarker + public interface Builder { + /** + * You can choose to notify subscribers of new objects with an Amazon Simple Queue Service + * (Amazon SQS) queue or through messaging to an HTTPS endpoint provided by the subscriber. + * + * Subscribers can consume data by directly querying AWS Lake Formation tables in your Amazon S3 + * bucket through services like Amazon Athena. This subscription type is defined as `LAKEFORMATION` + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-accesstypes) + * @param accessTypes You can choose to notify subscribers of new objects with an Amazon Simple + * Queue Service (Amazon SQS) queue or through messaging to an HTTPS endpoint provided by the + * subscriber. + */ + public fun accessTypes(accessTypes: List) + + /** + * You can choose to notify subscribers of new objects with an Amazon Simple Queue Service + * (Amazon SQS) queue or through messaging to an HTTPS endpoint provided by the subscriber. + * + * Subscribers can consume data by directly querying AWS Lake Formation tables in your Amazon S3 + * bucket through services like Amazon Athena. This subscription type is defined as `LAKEFORMATION` + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-accesstypes) + * @param accessTypes You can choose to notify subscribers of new objects with an Amazon Simple + * Queue Service (Amazon SQS) queue or through messaging to an HTTPS endpoint provided by the + * subscriber. + */ + public fun accessTypes(vararg accessTypes: String) + + /** + * The Amazon Resource Name (ARN) used to create the data lake. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-datalakearn) + * @param dataLakeArn The Amazon Resource Name (ARN) used to create the data lake. + */ + public fun dataLakeArn(dataLakeArn: String) + + /** + * Amazon Security Lake supports log and event collection for natively supported AWS services . + * + * For more information, see the [Amazon Security Lake User + * Guide](https://docs.aws.amazon.com//security-lake/latest/userguide/source-management.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-sources) + * @param sources Amazon Security Lake supports log and event collection for natively supported + * AWS services . + */ + public fun sources(sources: IResolvable) + + /** + * Amazon Security Lake supports log and event collection for natively supported AWS services . + * + * For more information, see the [Amazon Security Lake User + * Guide](https://docs.aws.amazon.com//security-lake/latest/userguide/source-management.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-sources) + * @param sources Amazon Security Lake supports log and event collection for natively supported + * AWS services . + */ + public fun sources(sources: List) + + /** + * Amazon Security Lake supports log and event collection for natively supported AWS services . + * + * For more information, see the [Amazon Security Lake User + * Guide](https://docs.aws.amazon.com//security-lake/latest/userguide/source-management.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-sources) + * @param sources Amazon Security Lake supports log and event collection for natively supported + * AWS services . + */ + public fun sources(vararg sources: Any) + + /** + * The subscriber descriptions for a subscriber account. + * + * The description for a subscriber includes `subscriberName` , `accountID` , `externalID` , and + * `subscriberId` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-subscriberdescription) + * @param subscriberDescription The subscriber descriptions for a subscriber account. + */ + public fun subscriberDescription(subscriberDescription: String) + + /** + * The AWS identity used to access your data. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-subscriberidentity) + * @param subscriberIdentity The AWS identity used to access your data. + */ + public fun subscriberIdentity(subscriberIdentity: IResolvable) + + /** + * The AWS identity used to access your data. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-subscriberidentity) + * @param subscriberIdentity The AWS identity used to access your data. + */ + public fun subscriberIdentity(subscriberIdentity: SubscriberIdentityProperty) + + /** + * The AWS identity used to access your data. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-subscriberidentity) + * @param subscriberIdentity The AWS identity used to access your data. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("b4afabb8d740999272c83d9ce1a1012dcede5cfc2ec4f2bb4704dcdf44f41344") + public fun subscriberIdentity(subscriberIdentity: SubscriberIdentityProperty.Builder.() -> Unit) + + /** + * The name of your Amazon Security Lake subscriber account. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-subscribername) + * @param subscriberName The name of your Amazon Security Lake subscriber account. + */ + public fun subscriberName(subscriberName: String) + + /** + * An array of objects, one for each tag to associate with the subscriber. + * + * For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, + * but it can be an empty string. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-tags) + * @param tags An array of objects, one for each tag to associate with the subscriber. + */ + public fun tags(tags: List) + + /** + * An array of objects, one for each tag to associate with the subscriber. + * + * For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, + * but it can be an empty string. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-tags) + * @param tags An array of objects, one for each tag to associate with the subscriber. + */ + public fun tags(vararg tags: CfnTag) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.services.securitylake.CfnSubscriber.Builder = + software.amazon.awscdk.services.securitylake.CfnSubscriber.Builder.create(scope, id) + + /** + * You can choose to notify subscribers of new objects with an Amazon Simple Queue Service + * (Amazon SQS) queue or through messaging to an HTTPS endpoint provided by the subscriber. + * + * Subscribers can consume data by directly querying AWS Lake Formation tables in your Amazon S3 + * bucket through services like Amazon Athena. This subscription type is defined as `LAKEFORMATION` + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-accesstypes) + * @param accessTypes You can choose to notify subscribers of new objects with an Amazon Simple + * Queue Service (Amazon SQS) queue or through messaging to an HTTPS endpoint provided by the + * subscriber. + */ + override fun accessTypes(accessTypes: List) { + cdkBuilder.accessTypes(accessTypes) + } + + /** + * You can choose to notify subscribers of new objects with an Amazon Simple Queue Service + * (Amazon SQS) queue or through messaging to an HTTPS endpoint provided by the subscriber. + * + * Subscribers can consume data by directly querying AWS Lake Formation tables in your Amazon S3 + * bucket through services like Amazon Athena. This subscription type is defined as `LAKEFORMATION` + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-accesstypes) + * @param accessTypes You can choose to notify subscribers of new objects with an Amazon Simple + * Queue Service (Amazon SQS) queue or through messaging to an HTTPS endpoint provided by the + * subscriber. + */ + override fun accessTypes(vararg accessTypes: String): Unit = accessTypes(accessTypes.toList()) + + /** + * The Amazon Resource Name (ARN) used to create the data lake. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-datalakearn) + * @param dataLakeArn The Amazon Resource Name (ARN) used to create the data lake. + */ + override fun dataLakeArn(dataLakeArn: String) { + cdkBuilder.dataLakeArn(dataLakeArn) + } + + /** + * Amazon Security Lake supports log and event collection for natively supported AWS services . + * + * For more information, see the [Amazon Security Lake User + * Guide](https://docs.aws.amazon.com//security-lake/latest/userguide/source-management.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-sources) + * @param sources Amazon Security Lake supports log and event collection for natively supported + * AWS services . + */ + override fun sources(sources: IResolvable) { + cdkBuilder.sources(sources.let(IResolvable::unwrap)) + } + + /** + * Amazon Security Lake supports log and event collection for natively supported AWS services . + * + * For more information, see the [Amazon Security Lake User + * Guide](https://docs.aws.amazon.com//security-lake/latest/userguide/source-management.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-sources) + * @param sources Amazon Security Lake supports log and event collection for natively supported + * AWS services . + */ + override fun sources(sources: List) { + cdkBuilder.sources(sources.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * Amazon Security Lake supports log and event collection for natively supported AWS services . + * + * For more information, see the [Amazon Security Lake User + * Guide](https://docs.aws.amazon.com//security-lake/latest/userguide/source-management.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-sources) + * @param sources Amazon Security Lake supports log and event collection for natively supported + * AWS services . + */ + override fun sources(vararg sources: Any): Unit = sources(sources.toList()) + + /** + * The subscriber descriptions for a subscriber account. + * + * The description for a subscriber includes `subscriberName` , `accountID` , `externalID` , and + * `subscriberId` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-subscriberdescription) + * @param subscriberDescription The subscriber descriptions for a subscriber account. + */ + override fun subscriberDescription(subscriberDescription: String) { + cdkBuilder.subscriberDescription(subscriberDescription) + } + + /** + * The AWS identity used to access your data. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-subscriberidentity) + * @param subscriberIdentity The AWS identity used to access your data. + */ + override fun subscriberIdentity(subscriberIdentity: IResolvable) { + cdkBuilder.subscriberIdentity(subscriberIdentity.let(IResolvable::unwrap)) + } + + /** + * The AWS identity used to access your data. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-subscriberidentity) + * @param subscriberIdentity The AWS identity used to access your data. + */ + override fun subscriberIdentity(subscriberIdentity: SubscriberIdentityProperty) { + cdkBuilder.subscriberIdentity(subscriberIdentity.let(SubscriberIdentityProperty::unwrap)) + } + + /** + * The AWS identity used to access your data. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-subscriberidentity) + * @param subscriberIdentity The AWS identity used to access your data. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("b4afabb8d740999272c83d9ce1a1012dcede5cfc2ec4f2bb4704dcdf44f41344") + override + fun subscriberIdentity(subscriberIdentity: SubscriberIdentityProperty.Builder.() -> Unit): + Unit = subscriberIdentity(SubscriberIdentityProperty(subscriberIdentity)) + + /** + * The name of your Amazon Security Lake subscriber account. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-subscribername) + * @param subscriberName The name of your Amazon Security Lake subscriber account. + */ + override fun subscriberName(subscriberName: String) { + cdkBuilder.subscriberName(subscriberName) + } + + /** + * An array of objects, one for each tag to associate with the subscriber. + * + * For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, + * but it can be an empty string. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-tags) + * @param tags An array of objects, one for each tag to associate with the subscriber. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * An array of objects, one for each tag to associate with the subscriber. + * + * For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, + * but it can be an empty string. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-tags) + * @param tags An array of objects, one for each tag to associate with the subscriber. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + public fun build(): software.amazon.awscdk.services.securitylake.CfnSubscriber = + cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.securitylake.CfnSubscriber.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnSubscriber { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnSubscriber(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.securitylake.CfnSubscriber): + CfnSubscriber = CfnSubscriber(cdkObject) + + internal fun unwrap(wrapped: CfnSubscriber): + software.amazon.awscdk.services.securitylake.CfnSubscriber = wrapped.cdkObject as + software.amazon.awscdk.services.securitylake.CfnSubscriber + } + + /** + * Adds a natively supported AWS service as an Amazon Security Lake source. + * + * Enables source types for member accounts in required AWS Regions, based on the parameters you + * specify. You can choose any source type in any Region for either accounts that are part of a + * trusted organization or standalone accounts. Once you add an AWS service as a source, Security + * Lake starts collecting logs and events from it. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.securitylake.*; + * AwsLogSourceProperty awsLogSourceProperty = AwsLogSourceProperty.builder() + * .sourceName("sourceName") + * .sourceVersion("sourceVersion") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-subscriber-awslogsource.html) + */ + public interface AwsLogSourceProperty { + /** + * Source name of the natively supported AWS service that is supported as an Amazon Security + * Lake source. + * + * For the list of sources supported by Amazon Security Lake see [Collecting data from AWS + * services](https://docs.aws.amazon.com//security-lake/latest/userguide/internal-sources.html) in + * the Amazon Security Lake User Guide. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-subscriber-awslogsource.html#cfn-securitylake-subscriber-awslogsource-sourcename) + */ + public fun sourceName(): String? = unwrap(this).getSourceName() + + /** + * Source version of the natively supported AWS service that is supported as an Amazon Security + * Lake source. + * + * For more details about source versions supported by Amazon Security Lake see [OCSF source + * identification](https://docs.aws.amazon.com//security-lake/latest/userguide/open-cybersecurity-schema-framework.html#ocsf-source-identification) + * in the Amazon Security Lake User Guide. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-subscriber-awslogsource.html#cfn-securitylake-subscriber-awslogsource-sourceversion) + */ + public fun sourceVersion(): String? = unwrap(this).getSourceVersion() + + /** + * A builder for [AwsLogSourceProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param sourceName Source name of the natively supported AWS service that is supported as an + * Amazon Security Lake source. + * For the list of sources supported by Amazon Security Lake see [Collecting data from AWS + * services](https://docs.aws.amazon.com//security-lake/latest/userguide/internal-sources.html) + * in the Amazon Security Lake User Guide. + */ + public fun sourceName(sourceName: String) + + /** + * @param sourceVersion Source version of the natively supported AWS service that is supported + * as an Amazon Security Lake source. + * For more details about source versions supported by Amazon Security Lake see [OCSF source + * identification](https://docs.aws.amazon.com//security-lake/latest/userguide/open-cybersecurity-schema-framework.html#ocsf-source-identification) + * in the Amazon Security Lake User Guide. + */ + public fun sourceVersion(sourceVersion: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.securitylake.CfnSubscriber.AwsLogSourceProperty.Builder = + software.amazon.awscdk.services.securitylake.CfnSubscriber.AwsLogSourceProperty.builder() + + /** + * @param sourceName Source name of the natively supported AWS service that is supported as an + * Amazon Security Lake source. + * For the list of sources supported by Amazon Security Lake see [Collecting data from AWS + * services](https://docs.aws.amazon.com//security-lake/latest/userguide/internal-sources.html) + * in the Amazon Security Lake User Guide. + */ + override fun sourceName(sourceName: String) { + cdkBuilder.sourceName(sourceName) + } + + /** + * @param sourceVersion Source version of the natively supported AWS service that is supported + * as an Amazon Security Lake source. + * For more details about source versions supported by Amazon Security Lake see [OCSF source + * identification](https://docs.aws.amazon.com//security-lake/latest/userguide/open-cybersecurity-schema-framework.html#ocsf-source-identification) + * in the Amazon Security Lake User Guide. + */ + override fun sourceVersion(sourceVersion: String) { + cdkBuilder.sourceVersion(sourceVersion) + } + + public fun build(): + software.amazon.awscdk.services.securitylake.CfnSubscriber.AwsLogSourceProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.securitylake.CfnSubscriber.AwsLogSourceProperty, + ) : CdkObject(cdkObject), AwsLogSourceProperty { + /** + * Source name of the natively supported AWS service that is supported as an Amazon Security + * Lake source. + * + * For the list of sources supported by Amazon Security Lake see [Collecting data from AWS + * services](https://docs.aws.amazon.com//security-lake/latest/userguide/internal-sources.html) + * in the Amazon Security Lake User Guide. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-subscriber-awslogsource.html#cfn-securitylake-subscriber-awslogsource-sourcename) + */ + override fun sourceName(): String? = unwrap(this).getSourceName() + + /** + * Source version of the natively supported AWS service that is supported as an Amazon + * Security Lake source. + * + * For more details about source versions supported by Amazon Security Lake see [OCSF source + * identification](https://docs.aws.amazon.com//security-lake/latest/userguide/open-cybersecurity-schema-framework.html#ocsf-source-identification) + * in the Amazon Security Lake User Guide. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-subscriber-awslogsource.html#cfn-securitylake-subscriber-awslogsource-sourceversion) + */ + override fun sourceVersion(): String? = unwrap(this).getSourceVersion() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): AwsLogSourceProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.securitylake.CfnSubscriber.AwsLogSourceProperty): + AwsLogSourceProperty = CdkObjectWrappers.wrap(cdkObject) as? AwsLogSourceProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: AwsLogSourceProperty): + software.amazon.awscdk.services.securitylake.CfnSubscriber.AwsLogSourceProperty = (wrapped + as CdkObject).cdkObject as + software.amazon.awscdk.services.securitylake.CfnSubscriber.AwsLogSourceProperty + } + } + + /** + * Third-party custom log source that meets the requirements to be added to Amazon Security Lake . + * + * For more details, see [Custom log + * source](https://docs.aws.amazon.com//security-lake/latest/userguide/custom-sources.html#iam-roles-custom-sources) + * in the *Amazon Security Lake User Guide* . + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.securitylake.*; + * CustomLogSourceProperty customLogSourceProperty = CustomLogSourceProperty.builder() + * .sourceName("sourceName") + * .sourceVersion("sourceVersion") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-subscriber-customlogsource.html) + */ + public interface CustomLogSourceProperty { + /** + * The name of the custom log source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-subscriber-customlogsource.html#cfn-securitylake-subscriber-customlogsource-sourcename) + */ + public fun sourceName(): String? = unwrap(this).getSourceName() + + /** + * The source version of the custom log source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-subscriber-customlogsource.html#cfn-securitylake-subscriber-customlogsource-sourceversion) + */ + public fun sourceVersion(): String? = unwrap(this).getSourceVersion() + + /** + * A builder for [CustomLogSourceProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param sourceName The name of the custom log source. + */ + public fun sourceName(sourceName: String) + + /** + * @param sourceVersion The source version of the custom log source. + */ + public fun sourceVersion(sourceVersion: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.securitylake.CfnSubscriber.CustomLogSourceProperty.Builder + = + software.amazon.awscdk.services.securitylake.CfnSubscriber.CustomLogSourceProperty.builder() + + /** + * @param sourceName The name of the custom log source. + */ + override fun sourceName(sourceName: String) { + cdkBuilder.sourceName(sourceName) + } + + /** + * @param sourceVersion The source version of the custom log source. + */ + override fun sourceVersion(sourceVersion: String) { + cdkBuilder.sourceVersion(sourceVersion) + } + + public fun build(): + software.amazon.awscdk.services.securitylake.CfnSubscriber.CustomLogSourceProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.securitylake.CfnSubscriber.CustomLogSourceProperty, + ) : CdkObject(cdkObject), CustomLogSourceProperty { + /** + * The name of the custom log source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-subscriber-customlogsource.html#cfn-securitylake-subscriber-customlogsource-sourcename) + */ + override fun sourceName(): String? = unwrap(this).getSourceName() + + /** + * The source version of the custom log source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-subscriber-customlogsource.html#cfn-securitylake-subscriber-customlogsource-sourceversion) + */ + override fun sourceVersion(): String? = unwrap(this).getSourceVersion() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CustomLogSourceProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.securitylake.CfnSubscriber.CustomLogSourceProperty): + CustomLogSourceProperty = CdkObjectWrappers.wrap(cdkObject) as? CustomLogSourceProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: CustomLogSourceProperty): + software.amazon.awscdk.services.securitylake.CfnSubscriber.CustomLogSourceProperty = + (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.securitylake.CfnSubscriber.CustomLogSourceProperty + } + } + + /** + * Sources are logs and events generated from a single system that match a specific event class in + * the Open Cybersecurity Schema Framework (OCSF) schema. + * + * Amazon Security Lake can collect logs and events from a variety of sources, including natively + * supported AWS services and third-party custom sources. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.securitylake.*; + * SourceProperty sourceProperty = SourceProperty.builder() + * .awsLogSource(AwsLogSourceProperty.builder() + * .sourceName("sourceName") + * .sourceVersion("sourceVersion") + * .build()) + * .customLogSource(CustomLogSourceProperty.builder() + * .sourceName("sourceName") + * .sourceVersion("sourceVersion") + * .build()) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-subscriber-source.html) + */ + public interface SourceProperty { + /** + * The natively supported AWS service which is used a Amazon Security Lake source to collect + * logs and events from. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-subscriber-source.html#cfn-securitylake-subscriber-source-awslogsource) + */ + public fun awsLogSource(): Any? = unwrap(this).getAwsLogSource() + + /** + * The custom log source AWS which is used a Amazon Security Lake source to collect logs and + * events from. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-subscriber-source.html#cfn-securitylake-subscriber-source-customlogsource) + */ + public fun customLogSource(): Any? = unwrap(this).getCustomLogSource() + + /** + * A builder for [SourceProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param awsLogSource The natively supported AWS service which is used a Amazon Security Lake + * source to collect logs and events from. + */ + public fun awsLogSource(awsLogSource: IResolvable) + + /** + * @param awsLogSource The natively supported AWS service which is used a Amazon Security Lake + * source to collect logs and events from. + */ + public fun awsLogSource(awsLogSource: AwsLogSourceProperty) + + /** + * @param awsLogSource The natively supported AWS service which is used a Amazon Security Lake + * source to collect logs and events from. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("d769dfff0b12a1aacefb6bb4adb2d37278b54ebdd43c4f7337fa054151bb205f") + public fun awsLogSource(awsLogSource: AwsLogSourceProperty.Builder.() -> Unit) + + /** + * @param customLogSource The custom log source AWS which is used a Amazon Security Lake + * source to collect logs and events from. + */ + public fun customLogSource(customLogSource: IResolvable) + + /** + * @param customLogSource The custom log source AWS which is used a Amazon Security Lake + * source to collect logs and events from. + */ + public fun customLogSource(customLogSource: CustomLogSourceProperty) + + /** + * @param customLogSource The custom log source AWS which is used a Amazon Security Lake + * source to collect logs and events from. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("3e01ca4efc11677d5d2186428404d9c638cfd3bacda9d305c9f4b8ab75d4418c") + public fun customLogSource(customLogSource: CustomLogSourceProperty.Builder.() -> Unit) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.securitylake.CfnSubscriber.SourceProperty.Builder = + software.amazon.awscdk.services.securitylake.CfnSubscriber.SourceProperty.builder() + + /** + * @param awsLogSource The natively supported AWS service which is used a Amazon Security Lake + * source to collect logs and events from. + */ + override fun awsLogSource(awsLogSource: IResolvable) { + cdkBuilder.awsLogSource(awsLogSource.let(IResolvable::unwrap)) + } + + /** + * @param awsLogSource The natively supported AWS service which is used a Amazon Security Lake + * source to collect logs and events from. + */ + override fun awsLogSource(awsLogSource: AwsLogSourceProperty) { + cdkBuilder.awsLogSource(awsLogSource.let(AwsLogSourceProperty::unwrap)) + } + + /** + * @param awsLogSource The natively supported AWS service which is used a Amazon Security Lake + * source to collect logs and events from. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("d769dfff0b12a1aacefb6bb4adb2d37278b54ebdd43c4f7337fa054151bb205f") + override fun awsLogSource(awsLogSource: AwsLogSourceProperty.Builder.() -> Unit): Unit = + awsLogSource(AwsLogSourceProperty(awsLogSource)) + + /** + * @param customLogSource The custom log source AWS which is used a Amazon Security Lake + * source to collect logs and events from. + */ + override fun customLogSource(customLogSource: IResolvable) { + cdkBuilder.customLogSource(customLogSource.let(IResolvable::unwrap)) + } + + /** + * @param customLogSource The custom log source AWS which is used a Amazon Security Lake + * source to collect logs and events from. + */ + override fun customLogSource(customLogSource: CustomLogSourceProperty) { + cdkBuilder.customLogSource(customLogSource.let(CustomLogSourceProperty::unwrap)) + } + + /** + * @param customLogSource The custom log source AWS which is used a Amazon Security Lake + * source to collect logs and events from. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("3e01ca4efc11677d5d2186428404d9c638cfd3bacda9d305c9f4b8ab75d4418c") + override fun customLogSource(customLogSource: CustomLogSourceProperty.Builder.() -> Unit): + Unit = customLogSource(CustomLogSourceProperty(customLogSource)) + + public fun build(): software.amazon.awscdk.services.securitylake.CfnSubscriber.SourceProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.securitylake.CfnSubscriber.SourceProperty, + ) : CdkObject(cdkObject), SourceProperty { + /** + * The natively supported AWS service which is used a Amazon Security Lake source to collect + * logs and events from. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-subscriber-source.html#cfn-securitylake-subscriber-source-awslogsource) + */ + override fun awsLogSource(): Any? = unwrap(this).getAwsLogSource() + + /** + * The custom log source AWS which is used a Amazon Security Lake source to collect logs and + * events from. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-subscriber-source.html#cfn-securitylake-subscriber-source-customlogsource) + */ + override fun customLogSource(): Any? = unwrap(this).getCustomLogSource() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): SourceProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.securitylake.CfnSubscriber.SourceProperty): + SourceProperty = CdkObjectWrappers.wrap(cdkObject) as? SourceProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: SourceProperty): + software.amazon.awscdk.services.securitylake.CfnSubscriber.SourceProperty = (wrapped as + CdkObject).cdkObject as + software.amazon.awscdk.services.securitylake.CfnSubscriber.SourceProperty + } + } + + /** + * Specify the AWS account ID and external ID that the subscriber will use to access source data. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.securitylake.*; + * SubscriberIdentityProperty subscriberIdentityProperty = SubscriberIdentityProperty.builder() + * .externalId("externalId") + * .principal("principal") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-subscriber-subscriberidentity.html) + */ + public interface SubscriberIdentityProperty { + /** + * The external ID is a unique identifier that the subscriber provides to you. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-subscriber-subscriberidentity.html#cfn-securitylake-subscriber-subscriberidentity-externalid) + */ + public fun externalId(): String + + /** + * Principals can include accounts, users, roles, federated users, or AWS services. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-subscriber-subscriberidentity.html#cfn-securitylake-subscriber-subscriberidentity-principal) + */ + public fun principal(): String + + /** + * A builder for [SubscriberIdentityProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param externalId The external ID is a unique identifier that the subscriber provides to + * you. + */ + public fun externalId(externalId: String) + + /** + * @param principal Principals can include accounts, users, roles, federated users, or AWS + * services. + */ + public fun principal(principal: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.securitylake.CfnSubscriber.SubscriberIdentityProperty.Builder + = + software.amazon.awscdk.services.securitylake.CfnSubscriber.SubscriberIdentityProperty.builder() + + /** + * @param externalId The external ID is a unique identifier that the subscriber provides to + * you. + */ + override fun externalId(externalId: String) { + cdkBuilder.externalId(externalId) + } + + /** + * @param principal Principals can include accounts, users, roles, federated users, or AWS + * services. + */ + override fun principal(principal: String) { + cdkBuilder.principal(principal) + } + + public fun build(): + software.amazon.awscdk.services.securitylake.CfnSubscriber.SubscriberIdentityProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.securitylake.CfnSubscriber.SubscriberIdentityProperty, + ) : CdkObject(cdkObject), SubscriberIdentityProperty { + /** + * The external ID is a unique identifier that the subscriber provides to you. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-subscriber-subscriberidentity.html#cfn-securitylake-subscriber-subscriberidentity-externalid) + */ + override fun externalId(): String = unwrap(this).getExternalId() + + /** + * Principals can include accounts, users, roles, federated users, or AWS services. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securitylake-subscriber-subscriberidentity.html#cfn-securitylake-subscriber-subscriberidentity-principal) + */ + override fun principal(): String = unwrap(this).getPrincipal() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): SubscriberIdentityProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.securitylake.CfnSubscriber.SubscriberIdentityProperty): + SubscriberIdentityProperty = CdkObjectWrappers.wrap(cdkObject) as? + SubscriberIdentityProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: SubscriberIdentityProperty): + software.amazon.awscdk.services.securitylake.CfnSubscriber.SubscriberIdentityProperty = + (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.securitylake.CfnSubscriber.SubscriberIdentityProperty + } + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securitylake/CfnSubscriberProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securitylake/CfnSubscriberProps.kt new file mode 100644 index 0000000000..dbb5021332 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/securitylake/CfnSubscriberProps.kt @@ -0,0 +1,417 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.securitylake + +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.jvm.JvmName + +/** + * Properties for defining a `CfnSubscriber`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.securitylake.*; + * CfnSubscriberProps cfnSubscriberProps = CfnSubscriberProps.builder() + * .accessTypes(List.of("accessTypes")) + * .dataLakeArn("dataLakeArn") + * .sources(List.of(SourceProperty.builder() + * .awsLogSource(AwsLogSourceProperty.builder() + * .sourceName("sourceName") + * .sourceVersion("sourceVersion") + * .build()) + * .customLogSource(CustomLogSourceProperty.builder() + * .sourceName("sourceName") + * .sourceVersion("sourceVersion") + * .build()) + * .build())) + * .subscriberIdentity(SubscriberIdentityProperty.builder() + * .externalId("externalId") + * .principal("principal") + * .build()) + * .subscriberName("subscriberName") + * // the properties below are optional + * .subscriberDescription("subscriberDescription") + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html) + */ +public interface CfnSubscriberProps { + /** + * You can choose to notify subscribers of new objects with an Amazon Simple Queue Service (Amazon + * SQS) queue or through messaging to an HTTPS endpoint provided by the subscriber. + * + * Subscribers can consume data by directly querying AWS Lake Formation tables in your Amazon S3 + * bucket through services like Amazon Athena. This subscription type is defined as `LAKEFORMATION` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-accesstypes) + */ + public fun accessTypes(): List + + /** + * The Amazon Resource Name (ARN) used to create the data lake. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-datalakearn) + */ + public fun dataLakeArn(): String + + /** + * Amazon Security Lake supports log and event collection for natively supported AWS services . + * + * For more information, see the [Amazon Security Lake User + * Guide](https://docs.aws.amazon.com//security-lake/latest/userguide/source-management.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-sources) + */ + public fun sources(): Any + + /** + * The subscriber descriptions for a subscriber account. + * + * The description for a subscriber includes `subscriberName` , `accountID` , `externalID` , and + * `subscriberId` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-subscriberdescription) + */ + public fun subscriberDescription(): String? = unwrap(this).getSubscriberDescription() + + /** + * The AWS identity used to access your data. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-subscriberidentity) + */ + public fun subscriberIdentity(): Any + + /** + * The name of your Amazon Security Lake subscriber account. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-subscribername) + */ + public fun subscriberName(): String + + /** + * An array of objects, one for each tag to associate with the subscriber. + * + * For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but + * it can be an empty string. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-tags) + */ + public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * A builder for [CfnSubscriberProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param accessTypes You can choose to notify subscribers of new objects with an Amazon Simple + * Queue Service (Amazon SQS) queue or through messaging to an HTTPS endpoint provided by the + * subscriber. + * Subscribers can consume data by directly querying AWS Lake Formation tables in your Amazon S3 + * bucket through services like Amazon Athena. This subscription type is defined as `LAKEFORMATION` + * . + */ + public fun accessTypes(accessTypes: List) + + /** + * @param accessTypes You can choose to notify subscribers of new objects with an Amazon Simple + * Queue Service (Amazon SQS) queue or through messaging to an HTTPS endpoint provided by the + * subscriber. + * Subscribers can consume data by directly querying AWS Lake Formation tables in your Amazon S3 + * bucket through services like Amazon Athena. This subscription type is defined as `LAKEFORMATION` + * . + */ + public fun accessTypes(vararg accessTypes: String) + + /** + * @param dataLakeArn The Amazon Resource Name (ARN) used to create the data lake. + */ + public fun dataLakeArn(dataLakeArn: String) + + /** + * @param sources Amazon Security Lake supports log and event collection for natively supported + * AWS services . + * For more information, see the [Amazon Security Lake User + * Guide](https://docs.aws.amazon.com//security-lake/latest/userguide/source-management.html) . + */ + public fun sources(sources: IResolvable) + + /** + * @param sources Amazon Security Lake supports log and event collection for natively supported + * AWS services . + * For more information, see the [Amazon Security Lake User + * Guide](https://docs.aws.amazon.com//security-lake/latest/userguide/source-management.html) . + */ + public fun sources(sources: List) + + /** + * @param sources Amazon Security Lake supports log and event collection for natively supported + * AWS services . + * For more information, see the [Amazon Security Lake User + * Guide](https://docs.aws.amazon.com//security-lake/latest/userguide/source-management.html) . + */ + public fun sources(vararg sources: Any) + + /** + * @param subscriberDescription The subscriber descriptions for a subscriber account. + * The description for a subscriber includes `subscriberName` , `accountID` , `externalID` , and + * `subscriberId` . + */ + public fun subscriberDescription(subscriberDescription: String) + + /** + * @param subscriberIdentity The AWS identity used to access your data. + */ + public fun subscriberIdentity(subscriberIdentity: IResolvable) + + /** + * @param subscriberIdentity The AWS identity used to access your data. + */ + public fun subscriberIdentity(subscriberIdentity: CfnSubscriber.SubscriberIdentityProperty) + + /** + * @param subscriberIdentity The AWS identity used to access your data. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("12b67a798bf5459f52c798e5fc88fed98d9ea8862f937ed990bedaeb4fe2a19e") + public + fun subscriberIdentity(subscriberIdentity: CfnSubscriber.SubscriberIdentityProperty.Builder.() -> Unit) + + /** + * @param subscriberName The name of your Amazon Security Lake subscriber account. + */ + public fun subscriberName(subscriberName: String) + + /** + * @param tags An array of objects, one for each tag to associate with the subscriber. + * For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, + * but it can be an empty string. + */ + public fun tags(tags: List) + + /** + * @param tags An array of objects, one for each tag to associate with the subscriber. + * For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, + * but it can be an empty string. + */ + public fun tags(vararg tags: CfnTag) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.services.securitylake.CfnSubscriberProps.Builder + = software.amazon.awscdk.services.securitylake.CfnSubscriberProps.builder() + + /** + * @param accessTypes You can choose to notify subscribers of new objects with an Amazon Simple + * Queue Service (Amazon SQS) queue or through messaging to an HTTPS endpoint provided by the + * subscriber. + * Subscribers can consume data by directly querying AWS Lake Formation tables in your Amazon S3 + * bucket through services like Amazon Athena. This subscription type is defined as `LAKEFORMATION` + * . + */ + override fun accessTypes(accessTypes: List) { + cdkBuilder.accessTypes(accessTypes) + } + + /** + * @param accessTypes You can choose to notify subscribers of new objects with an Amazon Simple + * Queue Service (Amazon SQS) queue or through messaging to an HTTPS endpoint provided by the + * subscriber. + * Subscribers can consume data by directly querying AWS Lake Formation tables in your Amazon S3 + * bucket through services like Amazon Athena. This subscription type is defined as `LAKEFORMATION` + * . + */ + override fun accessTypes(vararg accessTypes: String): Unit = accessTypes(accessTypes.toList()) + + /** + * @param dataLakeArn The Amazon Resource Name (ARN) used to create the data lake. + */ + override fun dataLakeArn(dataLakeArn: String) { + cdkBuilder.dataLakeArn(dataLakeArn) + } + + /** + * @param sources Amazon Security Lake supports log and event collection for natively supported + * AWS services . + * For more information, see the [Amazon Security Lake User + * Guide](https://docs.aws.amazon.com//security-lake/latest/userguide/source-management.html) . + */ + override fun sources(sources: IResolvable) { + cdkBuilder.sources(sources.let(IResolvable::unwrap)) + } + + /** + * @param sources Amazon Security Lake supports log and event collection for natively supported + * AWS services . + * For more information, see the [Amazon Security Lake User + * Guide](https://docs.aws.amazon.com//security-lake/latest/userguide/source-management.html) . + */ + override fun sources(sources: List) { + cdkBuilder.sources(sources.map{CdkObjectWrappers.unwrap(it)}) + } + + /** + * @param sources Amazon Security Lake supports log and event collection for natively supported + * AWS services . + * For more information, see the [Amazon Security Lake User + * Guide](https://docs.aws.amazon.com//security-lake/latest/userguide/source-management.html) . + */ + override fun sources(vararg sources: Any): Unit = sources(sources.toList()) + + /** + * @param subscriberDescription The subscriber descriptions for a subscriber account. + * The description for a subscriber includes `subscriberName` , `accountID` , `externalID` , and + * `subscriberId` . + */ + override fun subscriberDescription(subscriberDescription: String) { + cdkBuilder.subscriberDescription(subscriberDescription) + } + + /** + * @param subscriberIdentity The AWS identity used to access your data. + */ + override fun subscriberIdentity(subscriberIdentity: IResolvable) { + cdkBuilder.subscriberIdentity(subscriberIdentity.let(IResolvable::unwrap)) + } + + /** + * @param subscriberIdentity The AWS identity used to access your data. + */ + override fun subscriberIdentity(subscriberIdentity: CfnSubscriber.SubscriberIdentityProperty) { + cdkBuilder.subscriberIdentity(subscriberIdentity.let(CfnSubscriber.SubscriberIdentityProperty::unwrap)) + } + + /** + * @param subscriberIdentity The AWS identity used to access your data. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("12b67a798bf5459f52c798e5fc88fed98d9ea8862f937ed990bedaeb4fe2a19e") + override + fun subscriberIdentity(subscriberIdentity: CfnSubscriber.SubscriberIdentityProperty.Builder.() -> Unit): + Unit = subscriberIdentity(CfnSubscriber.SubscriberIdentityProperty(subscriberIdentity)) + + /** + * @param subscriberName The name of your Amazon Security Lake subscriber account. + */ + override fun subscriberName(subscriberName: String) { + cdkBuilder.subscriberName(subscriberName) + } + + /** + * @param tags An array of objects, one for each tag to associate with the subscriber. + * For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, + * but it can be an empty string. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * @param tags An array of objects, one for each tag to associate with the subscriber. + * For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, + * but it can be an empty string. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + public fun build(): software.amazon.awscdk.services.securitylake.CfnSubscriberProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.securitylake.CfnSubscriberProps, + ) : CdkObject(cdkObject), CfnSubscriberProps { + /** + * You can choose to notify subscribers of new objects with an Amazon Simple Queue Service + * (Amazon SQS) queue or through messaging to an HTTPS endpoint provided by the subscriber. + * + * Subscribers can consume data by directly querying AWS Lake Formation tables in your Amazon S3 + * bucket through services like Amazon Athena. This subscription type is defined as `LAKEFORMATION` + * . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-accesstypes) + */ + override fun accessTypes(): List = unwrap(this).getAccessTypes() + + /** + * The Amazon Resource Name (ARN) used to create the data lake. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-datalakearn) + */ + override fun dataLakeArn(): String = unwrap(this).getDataLakeArn() + + /** + * Amazon Security Lake supports log and event collection for natively supported AWS services . + * + * For more information, see the [Amazon Security Lake User + * Guide](https://docs.aws.amazon.com//security-lake/latest/userguide/source-management.html) . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-sources) + */ + override fun sources(): Any = unwrap(this).getSources() + + /** + * The subscriber descriptions for a subscriber account. + * + * The description for a subscriber includes `subscriberName` , `accountID` , `externalID` , and + * `subscriberId` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-subscriberdescription) + */ + override fun subscriberDescription(): String? = unwrap(this).getSubscriberDescription() + + /** + * The AWS identity used to access your data. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-subscriberidentity) + */ + override fun subscriberIdentity(): Any = unwrap(this).getSubscriberIdentity() + + /** + * The name of your Amazon Security Lake subscriber account. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-subscribername) + */ + override fun subscriberName(): String = unwrap(this).getSubscriberName() + + /** + * An array of objects, one for each tag to associate with the subscriber. + * + * For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, + * but it can be an empty string. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscriber.html#cfn-securitylake-subscriber-tags) + */ + override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnSubscriberProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.securitylake.CfnSubscriberProps): + CfnSubscriberProps = CdkObjectWrappers.wrap(cdkObject) as? CfnSubscriberProps ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnSubscriberProps): + software.amazon.awscdk.services.securitylake.CfnSubscriberProps = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.securitylake.CfnSubscriberProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ses/actions/WorkMail.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ses/actions/WorkMail.kt new file mode 100644 index 0000000000..f6dbb38b55 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ses/actions/WorkMail.kt @@ -0,0 +1,136 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.ses.actions + +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.services.ses.IReceiptRule +import io.cloudshiftdev.awscdk.services.ses.IReceiptRuleAction +import io.cloudshiftdev.awscdk.services.ses.ReceiptRuleActionConfig +import io.cloudshiftdev.awscdk.services.sns.ITopic +import kotlin.String +import kotlin.Unit + +/** + * Integrates an Amazon WorkMail action into a receipt rule set, and optionally publishes a + * notification to Amazon SNS. + * + * Beware that WorkMail should already set up an active `INBOUND_MAIL` rule set + * that includes a WorkMail rule action for this exact purpose. + * This action should be used to customize the behavior of replacement rule set. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.ses.actions.*; + * import io.cloudshiftdev.awscdk.services.sns.*; + * Topic topic; + * WorkMail workMail = WorkMail.Builder.create() + * .organizationArn("organizationArn") + * // the properties below are optional + * .topic(topic) + * .build(); + * ``` + * + * [Documentation](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-action-workmail.html) + */ +public open class WorkMail( + cdkObject: software.amazon.awscdk.services.ses.actions.WorkMail, +) : CdkObject(cdkObject), IReceiptRuleAction { + public constructor(props: WorkMailProps) : + this(software.amazon.awscdk.services.ses.actions.WorkMail(props.let(WorkMailProps::unwrap)) + ) + + public constructor(props: WorkMailProps.Builder.() -> Unit) : this(WorkMailProps(props) + ) + + /** + * Returns the receipt rule action specification. + * + * @param _rule + */ + public override fun bind(rule: IReceiptRule): ReceiptRuleActionConfig = + unwrap(this).bind(rule.let(IReceiptRule::unwrap)).let(ReceiptRuleActionConfig::wrap) + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.ses.actions.WorkMail]. + */ + @CdkDslMarker + public interface Builder { + /** + * The WorkMail organization ARN. + * + * Amazon WorkMail organization ARNs are in the form + * `arn:aws:workmail:region:account_ID:organization/organization_ID` + * + * Example: + * + * ``` + * "arn:aws:workmail:us-east-1:123456789012:organization/m-68755160c4cb4e29a2b2f8fb58f359d7"; + * ``` + * + * @param organizationArn The WorkMail organization ARN. + */ + public fun organizationArn(organizationArn: String) + + /** + * The SNS topic to notify when the WorkMail action is taken. + * + * Default: - no topic will be attached to the action + * + * @param topic The SNS topic to notify when the WorkMail action is taken. + */ + public fun topic(topic: ITopic) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.services.ses.actions.WorkMail.Builder = + software.amazon.awscdk.services.ses.actions.WorkMail.Builder.create() + + /** + * The WorkMail organization ARN. + * + * Amazon WorkMail organization ARNs are in the form + * `arn:aws:workmail:region:account_ID:organization/organization_ID` + * + * Example: + * + * ``` + * "arn:aws:workmail:us-east-1:123456789012:organization/m-68755160c4cb4e29a2b2f8fb58f359d7"; + * ``` + * + * @param organizationArn The WorkMail organization ARN. + */ + override fun organizationArn(organizationArn: String) { + cdkBuilder.organizationArn(organizationArn) + } + + /** + * The SNS topic to notify when the WorkMail action is taken. + * + * Default: - no topic will be attached to the action + * + * @param topic The SNS topic to notify when the WorkMail action is taken. + */ + override fun topic(topic: ITopic) { + cdkBuilder.topic(topic.let(ITopic::unwrap)) + } + + public fun build(): software.amazon.awscdk.services.ses.actions.WorkMail = cdkBuilder.build() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): WorkMail { + val builderImpl = BuilderImpl() + return WorkMail(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.ses.actions.WorkMail): WorkMail = + WorkMail(cdkObject) + + internal fun unwrap(wrapped: WorkMail): software.amazon.awscdk.services.ses.actions.WorkMail = + wrapped.cdkObject as software.amazon.awscdk.services.ses.actions.WorkMail + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ses/actions/WorkMailProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ses/actions/WorkMailProps.kt new file mode 100644 index 0000000000..90b65d747e --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ses/actions/WorkMailProps.kt @@ -0,0 +1,132 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.ses.actions + +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import io.cloudshiftdev.awscdk.services.sns.ITopic +import kotlin.String +import kotlin.Unit + +/** + * Construction properties for a WorkMail action. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.ses.actions.*; + * import io.cloudshiftdev.awscdk.services.sns.*; + * Topic topic; + * WorkMailProps workMailProps = WorkMailProps.builder() + * .organizationArn("organizationArn") + * // the properties below are optional + * .topic(topic) + * .build(); + * ``` + */ +public interface WorkMailProps { + /** + * The WorkMail organization ARN. + * + * Amazon WorkMail organization ARNs are in the form + * `arn:aws:workmail:region:account_ID:organization/organization_ID` + * + * Example: + * + * ``` + * "arn:aws:workmail:us-east-1:123456789012:organization/m-68755160c4cb4e29a2b2f8fb58f359d7"; + * ``` + */ + public fun organizationArn(): String + + /** + * The SNS topic to notify when the WorkMail action is taken. + * + * Default: - no topic will be attached to the action + */ + public fun topic(): ITopic? = unwrap(this).getTopic()?.let(ITopic::wrap) + + /** + * A builder for [WorkMailProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param organizationArn The WorkMail organization ARN. + * Amazon WorkMail organization ARNs are in the form + * `arn:aws:workmail:region:account_ID:organization/organization_ID` + */ + public fun organizationArn(organizationArn: String) + + /** + * @param topic The SNS topic to notify when the WorkMail action is taken. + */ + public fun topic(topic: ITopic) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.services.ses.actions.WorkMailProps.Builder = + software.amazon.awscdk.services.ses.actions.WorkMailProps.builder() + + /** + * @param organizationArn The WorkMail organization ARN. + * Amazon WorkMail organization ARNs are in the form + * `arn:aws:workmail:region:account_ID:organization/organization_ID` + */ + override fun organizationArn(organizationArn: String) { + cdkBuilder.organizationArn(organizationArn) + } + + /** + * @param topic The SNS topic to notify when the WorkMail action is taken. + */ + override fun topic(topic: ITopic) { + cdkBuilder.topic(topic.let(ITopic::unwrap)) + } + + public fun build(): software.amazon.awscdk.services.ses.actions.WorkMailProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.ses.actions.WorkMailProps, + ) : CdkObject(cdkObject), WorkMailProps { + /** + * The WorkMail organization ARN. + * + * Amazon WorkMail organization ARNs are in the form + * `arn:aws:workmail:region:account_ID:organization/organization_ID` + * + * Example: + * + * ``` + * "arn:aws:workmail:us-east-1:123456789012:organization/m-68755160c4cb4e29a2b2f8fb58f359d7"; + * ``` + */ + override fun organizationArn(): String = unwrap(this).getOrganizationArn() + + /** + * The SNS topic to notify when the WorkMail action is taken. + * + * Default: - no topic will be attached to the action + */ + override fun topic(): ITopic? = unwrap(this).getTopic()?.let(ITopic::wrap) + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): WorkMailProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.ses.actions.WorkMailProps): + WorkMailProps = CdkObjectWrappers.wrap(cdkObject) as? WorkMailProps ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: WorkMailProps): + software.amazon.awscdk.services.ses.actions.WorkMailProps = (wrapped as CdkObject).cdkObject + as software.amazon.awscdk.services.ses.actions.WorkMailProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sns/ITopic.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sns/ITopic.kt index 858ac3e4ca..063a985ea5 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sns/ITopic.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sns/ITopic.kt @@ -328,7 +328,7 @@ public interface ITopic : IResource, INotificationRuleTarget { * * @param props */ - public fun metricSmsMonthToDateSpentUsd(): Metric + public fun metricSMSMonthToDateSpentUSD(): Metric /** * The charges you have accrued since the start of the current calendar month for sending SMS @@ -338,7 +338,7 @@ public interface ITopic : IResource, INotificationRuleTarget { * * @param props */ - public fun metricSmsMonthToDateSpentUsd(props: MetricOptions): Metric + public fun metricSMSMonthToDateSpentUSD(props: MetricOptions): Metric /** * The charges you have accrued since the start of the current calendar month for sending SMS @@ -349,8 +349,8 @@ public interface ITopic : IResource, INotificationRuleTarget { * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("1f5bf7d95644305938cdde06436a98bf86c5b1c175ce1e9a467fda47d6a49663") - public fun metricSmsMonthToDateSpentUsd(props: MetricOptions.Builder.() -> Unit): Metric + @JvmName("b75f6b19f7160591b65b78c2e814e4c4d9085fa09cbf36be93ab8ebcf59757ed") + public fun metricSMSMonthToDateSpentUSD(props: MetricOptions.Builder.() -> Unit): Metric /** * The rate of successful SMS message deliveries. @@ -359,7 +359,7 @@ public interface ITopic : IResource, INotificationRuleTarget { * * @param props */ - public fun metricSmsSuccessRate(): Metric + public fun metricSMSSuccessRate(): Metric /** * The rate of successful SMS message deliveries. @@ -368,7 +368,7 @@ public interface ITopic : IResource, INotificationRuleTarget { * * @param props */ - public fun metricSmsSuccessRate(props: MetricOptions): Metric + public fun metricSMSSuccessRate(props: MetricOptions): Metric /** * The rate of successful SMS message deliveries. @@ -378,8 +378,8 @@ public interface ITopic : IResource, INotificationRuleTarget { * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("b3a70fccfc4dc7a51391a3c0d2a1a31549ef7b7227b052d7ecbc0e728be4217e") - public fun metricSmsSuccessRate(props: MetricOptions.Builder.() -> Unit): Metric + @JvmName("111af2ad33e24ca1507cb1296fd551ccb6414bd7dc93a8ad2e286d65fa09c521") + public fun metricSMSSuccessRate(props: MetricOptions.Builder.() -> Unit): Metric /** * The ARN of the topic. @@ -758,7 +758,7 @@ public interface ITopic : IResource, INotificationRuleTarget { * * @param props */ - override fun metricSmsMonthToDateSpentUsd(): Metric = + override fun metricSMSMonthToDateSpentUSD(): Metric = unwrap(this).metricSMSMonthToDateSpentUSD().let(Metric::wrap) /** @@ -769,7 +769,7 @@ public interface ITopic : IResource, INotificationRuleTarget { * * @param props */ - override fun metricSmsMonthToDateSpentUsd(props: MetricOptions): Metric = + override fun metricSMSMonthToDateSpentUSD(props: MetricOptions): Metric = unwrap(this).metricSMSMonthToDateSpentUSD(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -781,9 +781,9 @@ public interface ITopic : IResource, INotificationRuleTarget { * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("1f5bf7d95644305938cdde06436a98bf86c5b1c175ce1e9a467fda47d6a49663") - override fun metricSmsMonthToDateSpentUsd(props: MetricOptions.Builder.() -> Unit): Metric = - metricSmsMonthToDateSpentUsd(MetricOptions(props)) + @JvmName("b75f6b19f7160591b65b78c2e814e4c4d9085fa09cbf36be93ab8ebcf59757ed") + override fun metricSMSMonthToDateSpentUSD(props: MetricOptions.Builder.() -> Unit): Metric = + metricSMSMonthToDateSpentUSD(MetricOptions(props)) /** * The rate of successful SMS message deliveries. @@ -792,7 +792,7 @@ public interface ITopic : IResource, INotificationRuleTarget { * * @param props */ - override fun metricSmsSuccessRate(): Metric = + override fun metricSMSSuccessRate(): Metric = unwrap(this).metricSMSSuccessRate().let(Metric::wrap) /** @@ -802,7 +802,7 @@ public interface ITopic : IResource, INotificationRuleTarget { * * @param props */ - override fun metricSmsSuccessRate(props: MetricOptions): Metric = + override fun metricSMSSuccessRate(props: MetricOptions): Metric = unwrap(this).metricSMSSuccessRate(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -813,9 +813,9 @@ public interface ITopic : IResource, INotificationRuleTarget { * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("b3a70fccfc4dc7a51391a3c0d2a1a31549ef7b7227b052d7ecbc0e728be4217e") - override fun metricSmsSuccessRate(props: MetricOptions.Builder.() -> Unit): Metric = - metricSmsSuccessRate(MetricOptions(props)) + @JvmName("111af2ad33e24ca1507cb1296fd551ccb6414bd7dc93a8ad2e286d65fa09c521") + override fun metricSMSSuccessRate(props: MetricOptions.Builder.() -> Unit): Metric = + metricSMSSuccessRate(MetricOptions(props)) override fun node(): Node = unwrap(this).getNode().let(Node::wrap) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sns/LoggingConfig.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sns/LoggingConfig.kt index 1da7f5fcdb..24cc6038c7 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sns/LoggingConfig.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sns/LoggingConfig.kt @@ -13,8 +13,6 @@ import kotlin.Unit * A logging configuration for delivery status of messages sent from SNS topic to subscribed * endpoints. * - * For more information, see https://docs.aws.amazon.com/sns/latest/dg/sns-topic-attributes.html. - * * Example: * * ``` @@ -27,6 +25,8 @@ import kotlin.Unit * .successFeedbackSampleRate(50) * .build()); * ``` + * + * [Documentation](https://docs.aws.amazon.com/sns/latest/dg/sns-topic-attributes.html.) */ public interface LoggingConfig { /** diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sns/Topic.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sns/Topic.kt index 3337e98393..5fcdaf0080 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sns/Topic.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sns/Topic.kt @@ -123,11 +123,9 @@ public open class Topic( /** * Adds a statement to enforce encryption of data in transit when publishing to the topic. * - * For more information, see - * https://docs.aws.amazon.com/sns/latest/dg/sns-security-best-practices.html#enforce-encryption-data-in-transit. - * * Default: false * + * [Documentation](https://docs.aws.amazon.com/sns/latest/dg/sns-security-best-practices.html#enforce-encryption-data-in-transit.) * @param enforceSsl Adds a statement to enforce encryption of data in transit when publishing * to the topic. */ @@ -145,11 +143,9 @@ public open class Topic( /** * The list of delivery status logging configurations for the topic. * - * For more information, see - * https://docs.aws.amazon.com/sns/latest/dg/sns-topic-attributes.html. - * * Default: None * + * [Documentation](https://docs.aws.amazon.com/sns/latest/dg/sns-topic-attributes.html.) * @param loggingConfigs The list of delivery status logging configurations for the topic. */ public fun loggingConfigs(loggingConfigs: List) @@ -157,11 +153,9 @@ public open class Topic( /** * The list of delivery status logging configurations for the topic. * - * For more information, see - * https://docs.aws.amazon.com/sns/latest/dg/sns-topic-attributes.html. - * * Default: None * + * [Documentation](https://docs.aws.amazon.com/sns/latest/dg/sns-topic-attributes.html.) * @param loggingConfigs The list of delivery status logging configurations for the topic. */ public fun loggingConfigs(vararg loggingConfigs: LoggingConfig) @@ -187,6 +181,20 @@ public open class Topic( */ public fun messageRetentionPeriodInDays(messageRetentionPeriodInDays: Number) + /** + * The signature version corresponds to the hashing algorithm used while creating the signature + * of the notifications, subscription confirmations, or unsubscribe confirmation messages sent by + * Amazon SNS. + * + * Default: 1 + * + * [Documentation](https://docs.aws.amazon.com/sns/latest/dg/sns-verify-signature-of-message.html.) + * @param signatureVersion The signature version corresponds to the hashing algorithm used while + * creating the signature of the notifications, subscription confirmations, or unsubscribe + * confirmation messages sent by Amazon SNS. + */ + public fun signatureVersion(signatureVersion: String) + /** * A name for the topic. * @@ -199,6 +207,16 @@ public open class Topic( * @param topicName A name for the topic. */ public fun topicName(topicName: String) + + /** + * Tracing mode of an Amazon SNS topic. + * + * Default: TracingConfig.PASS_THROUGH + * + * [Documentation](https://docs.aws.amazon.com/sns/latest/dg/sns-active-tracing.html) + * @param tracingConfig Tracing mode of an Amazon SNS topic. + */ + public fun tracingConfig(tracingConfig: TracingConfig) } private class BuilderImpl( @@ -233,11 +251,9 @@ public open class Topic( /** * Adds a statement to enforce encryption of data in transit when publishing to the topic. * - * For more information, see - * https://docs.aws.amazon.com/sns/latest/dg/sns-security-best-practices.html#enforce-encryption-data-in-transit. - * * Default: false * + * [Documentation](https://docs.aws.amazon.com/sns/latest/dg/sns-security-best-practices.html#enforce-encryption-data-in-transit.) * @param enforceSsl Adds a statement to enforce encryption of data in transit when publishing * to the topic. */ @@ -259,11 +275,9 @@ public open class Topic( /** * The list of delivery status logging configurations for the topic. * - * For more information, see - * https://docs.aws.amazon.com/sns/latest/dg/sns-topic-attributes.html. - * * Default: None * + * [Documentation](https://docs.aws.amazon.com/sns/latest/dg/sns-topic-attributes.html.) * @param loggingConfigs The list of delivery status logging configurations for the topic. */ override fun loggingConfigs(loggingConfigs: List) { @@ -273,11 +287,9 @@ public open class Topic( /** * The list of delivery status logging configurations for the topic. * - * For more information, see - * https://docs.aws.amazon.com/sns/latest/dg/sns-topic-attributes.html. - * * Default: None * + * [Documentation](https://docs.aws.amazon.com/sns/latest/dg/sns-topic-attributes.html.) * @param loggingConfigs The list of delivery status logging configurations for the topic. */ override fun loggingConfigs(vararg loggingConfigs: LoggingConfig): Unit = @@ -308,6 +320,22 @@ public open class Topic( cdkBuilder.messageRetentionPeriodInDays(messageRetentionPeriodInDays) } + /** + * The signature version corresponds to the hashing algorithm used while creating the signature + * of the notifications, subscription confirmations, or unsubscribe confirmation messages sent by + * Amazon SNS. + * + * Default: 1 + * + * [Documentation](https://docs.aws.amazon.com/sns/latest/dg/sns-verify-signature-of-message.html.) + * @param signatureVersion The signature version corresponds to the hashing algorithm used while + * creating the signature of the notifications, subscription confirmations, or unsubscribe + * confirmation messages sent by Amazon SNS. + */ + override fun signatureVersion(signatureVersion: String) { + cdkBuilder.signatureVersion(signatureVersion) + } + /** * A name for the topic. * @@ -323,6 +351,18 @@ public open class Topic( cdkBuilder.topicName(topicName) } + /** + * Tracing mode of an Amazon SNS topic. + * + * Default: TracingConfig.PASS_THROUGH + * + * [Documentation](https://docs.aws.amazon.com/sns/latest/dg/sns-active-tracing.html) + * @param tracingConfig Tracing mode of an Amazon SNS topic. + */ + override fun tracingConfig(tracingConfig: TracingConfig) { + cdkBuilder.tracingConfig(tracingConfig.let(TracingConfig::unwrap)) + } + public fun build(): software.amazon.awscdk.services.sns.Topic = cdkBuilder.build() } @@ -335,6 +375,22 @@ public open class Topic( software.amazon.awscdk.services.sns.Topic.fromTopicArn(scope.let(CloudshiftdevConstructsConstruct::unwrap), id, topicArn).let(ITopic::wrap) + public fun fromTopicAttributes( + scope: CloudshiftdevConstructsConstruct, + id: String, + attrs: TopicAttributes, + ): ITopic = + software.amazon.awscdk.services.sns.Topic.fromTopicAttributes(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, attrs.let(TopicAttributes::unwrap)).let(ITopic::wrap) + + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("ccd4be93940ed2899f3dbe3eb0d040594d23421d53c58464b3e85aa9c615c625") + public fun fromTopicAttributes( + scope: CloudshiftdevConstructsConstruct, + id: String, + attrs: TopicAttributes.Builder.() -> Unit, + ): ITopic = fromTopicAttributes(scope, id, TopicAttributes(attrs)) + public operator fun invoke( scope: CloudshiftdevConstructsConstruct, id: String, diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sns/TopicAttributes.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sns/TopicAttributes.kt new file mode 100644 index 0000000000..cf155f6e3a --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sns/TopicAttributes.kt @@ -0,0 +1,114 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.sns + +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Boolean +import kotlin.String +import kotlin.Unit + +/** + * Represents an SNS topic defined outside of this stack. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.sns.*; + * TopicAttributes topicAttributes = TopicAttributes.builder() + * .topicArn("topicArn") + * // the properties below are optional + * .contentBasedDeduplication(false) + * .build(); + * ``` + */ +public interface TopicAttributes { + /** + * Whether content-based deduplication is enabled. + * + * Only applicable for FIFO topics. + * + * Default: false + */ + public fun contentBasedDeduplication(): Boolean? = unwrap(this).getContentBasedDeduplication() + + /** + * The ARN of the SNS topic. + */ + public fun topicArn(): String + + /** + * A builder for [TopicAttributes] + */ + @CdkDslMarker + public interface Builder { + /** + * @param contentBasedDeduplication Whether content-based deduplication is enabled. + * Only applicable for FIFO topics. + */ + public fun contentBasedDeduplication(contentBasedDeduplication: Boolean) + + /** + * @param topicArn The ARN of the SNS topic. + */ + public fun topicArn(topicArn: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: software.amazon.awscdk.services.sns.TopicAttributes.Builder = + software.amazon.awscdk.services.sns.TopicAttributes.builder() + + /** + * @param contentBasedDeduplication Whether content-based deduplication is enabled. + * Only applicable for FIFO topics. + */ + override fun contentBasedDeduplication(contentBasedDeduplication: Boolean) { + cdkBuilder.contentBasedDeduplication(contentBasedDeduplication) + } + + /** + * @param topicArn The ARN of the SNS topic. + */ + override fun topicArn(topicArn: String) { + cdkBuilder.topicArn(topicArn) + } + + public fun build(): software.amazon.awscdk.services.sns.TopicAttributes = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.sns.TopicAttributes, + ) : CdkObject(cdkObject), TopicAttributes { + /** + * Whether content-based deduplication is enabled. + * + * Only applicable for FIFO topics. + * + * Default: false + */ + override fun contentBasedDeduplication(): Boolean? = unwrap(this).getContentBasedDeduplication() + + /** + * The ARN of the SNS topic. + */ + override fun topicArn(): String = unwrap(this).getTopicArn() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): TopicAttributes { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.sns.TopicAttributes): + TopicAttributes = CdkObjectWrappers.wrap(cdkObject) as? TopicAttributes ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: TopicAttributes): + software.amazon.awscdk.services.sns.TopicAttributes = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.sns.TopicAttributes + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sns/TopicBase.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sns/TopicBase.kt index 9da8d34673..b85e429422 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sns/TopicBase.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sns/TopicBase.kt @@ -362,7 +362,7 @@ public abstract class TopicBase( * * @param props */ - public override fun metricSmsMonthToDateSpentUsd(): Metric = + public override fun metricSMSMonthToDateSpentUSD(): Metric = unwrap(this).metricSMSMonthToDateSpentUSD().let(Metric::wrap) /** @@ -373,7 +373,7 @@ public abstract class TopicBase( * * @param props */ - public override fun metricSmsMonthToDateSpentUsd(props: MetricOptions): Metric = + public override fun metricSMSMonthToDateSpentUSD(props: MetricOptions): Metric = unwrap(this).metricSMSMonthToDateSpentUSD(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -385,9 +385,9 @@ public abstract class TopicBase( * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("1f5bf7d95644305938cdde06436a98bf86c5b1c175ce1e9a467fda47d6a49663") - public override fun metricSmsMonthToDateSpentUsd(props: MetricOptions.Builder.() -> Unit): Metric - = metricSmsMonthToDateSpentUsd(MetricOptions(props)) + @JvmName("b75f6b19f7160591b65b78c2e814e4c4d9085fa09cbf36be93ab8ebcf59757ed") + public override fun metricSMSMonthToDateSpentUSD(props: MetricOptions.Builder.() -> Unit): Metric + = metricSMSMonthToDateSpentUSD(MetricOptions(props)) /** * The rate of successful SMS message deliveries. @@ -396,7 +396,7 @@ public abstract class TopicBase( * * @param props */ - public override fun metricSmsSuccessRate(): Metric = + public override fun metricSMSSuccessRate(): Metric = unwrap(this).metricSMSSuccessRate().let(Metric::wrap) /** @@ -406,7 +406,7 @@ public abstract class TopicBase( * * @param props */ - public override fun metricSmsSuccessRate(props: MetricOptions): Metric = + public override fun metricSMSSuccessRate(props: MetricOptions): Metric = unwrap(this).metricSMSSuccessRate(props.let(MetricOptions::unwrap)).let(Metric::wrap) /** @@ -417,9 +417,9 @@ public abstract class TopicBase( * @param props */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") - @JvmName("b3a70fccfc4dc7a51391a3c0d2a1a31549ef7b7227b052d7ecbc0e728be4217e") - public override fun metricSmsSuccessRate(props: MetricOptions.Builder.() -> Unit): Metric = - metricSmsSuccessRate(MetricOptions(props)) + @JvmName("111af2ad33e24ca1507cb1296fd551ccb6414bd7dc93a8ad2e286d65fa09c521") + public override fun metricSMSSuccessRate(props: MetricOptions.Builder.() -> Unit): Metric = + metricSMSSuccessRate(MetricOptions(props)) /** * The ARN of the topic. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sns/TopicPolicyProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sns/TopicPolicyProps.kt index 475c05ff6b..5a0f549bff 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sns/TopicPolicyProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sns/TopicPolicyProps.kt @@ -42,7 +42,7 @@ public interface TopicPolicyProps { * * Default: false */ - public fun enforceSsl(): Boolean? = unwrap(this).getEnforceSSL() + public fun enforceSSL(): Boolean? = unwrap(this).getEnforceSSL() /** * IAM policy document to apply to topic(s). @@ -148,7 +148,7 @@ public interface TopicPolicyProps { * * Default: false */ - override fun enforceSsl(): Boolean? = unwrap(this).getEnforceSSL() + override fun enforceSSL(): Boolean? = unwrap(this).getEnforceSSL() /** * IAM policy document to apply to topic(s). diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sns/TopicProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sns/TopicProps.kt index 7251221e4b..f0c48a54b0 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sns/TopicProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sns/TopicProps.kt @@ -18,10 +18,8 @@ import kotlin.collections.List * Example: * * ``` - * Topic topic = Topic.Builder.create(this, "Topic") - * .contentBasedDeduplication(true) - * .displayName("Customer subscription topic") - * .fifo(true) + * Topic topic = Topic.Builder.create(this, "MyTopic") + * .tracingConfig(TracingConfig.ACTIVE) * .build(); * ``` */ @@ -43,12 +41,11 @@ public interface TopicProps { /** * Adds a statement to enforce encryption of data in transit when publishing to the topic. * - * For more information, see - * https://docs.aws.amazon.com/sns/latest/dg/sns-security-best-practices.html#enforce-encryption-data-in-transit. - * * Default: false + * + * [Documentation](https://docs.aws.amazon.com/sns/latest/dg/sns-security-best-practices.html#enforce-encryption-data-in-transit.) */ - public fun enforceSsl(): Boolean? = unwrap(this).getEnforceSSL() + public fun enforceSSL(): Boolean? = unwrap(this).getEnforceSSL() /** * Set to true to create a FIFO topic. @@ -60,9 +57,9 @@ public interface TopicProps { /** * The list of delivery status logging configurations for the topic. * - * For more information, see https://docs.aws.amazon.com/sns/latest/dg/sns-topic-attributes.html. - * * Default: None + * + * [Documentation](https://docs.aws.amazon.com/sns/latest/dg/sns-topic-attributes.html.) */ public fun loggingConfigs(): List = unwrap(this).getLoggingConfigs()?.map(LoggingConfig::wrap) ?: emptyList() @@ -86,6 +83,17 @@ public interface TopicProps { public fun messageRetentionPeriodInDays(): Number? = unwrap(this).getMessageRetentionPeriodInDays() + /** + * The signature version corresponds to the hashing algorithm used while creating the signature of + * the notifications, subscription confirmations, or unsubscribe confirmation messages sent by Amazon + * SNS. + * + * Default: 1 + * + * [Documentation](https://docs.aws.amazon.com/sns/latest/dg/sns-verify-signature-of-message.html.) + */ + public fun signatureVersion(): String? = unwrap(this).getSignatureVersion() + /** * A name for the topic. * @@ -97,6 +105,16 @@ public interface TopicProps { */ public fun topicName(): String? = unwrap(this).getTopicName() + /** + * Tracing mode of an Amazon SNS topic. + * + * Default: TracingConfig.PASS_THROUGH + * + * [Documentation](https://docs.aws.amazon.com/sns/latest/dg/sns-active-tracing.html) + */ + public fun tracingConfig(): TracingConfig? = + unwrap(this).getTracingConfig()?.let(TracingConfig::wrap) + /** * A builder for [TopicProps] */ @@ -115,8 +133,6 @@ public interface TopicProps { /** * @param enforceSsl Adds a statement to enforce encryption of data in transit when publishing * to the topic. - * For more information, see - * https://docs.aws.amazon.com/sns/latest/dg/sns-security-best-practices.html#enforce-encryption-data-in-transit. */ public fun enforceSsl(enforceSsl: Boolean) @@ -127,15 +143,11 @@ public interface TopicProps { /** * @param loggingConfigs The list of delivery status logging configurations for the topic. - * For more information, see - * https://docs.aws.amazon.com/sns/latest/dg/sns-topic-attributes.html. */ public fun loggingConfigs(loggingConfigs: List) /** * @param loggingConfigs The list of delivery status logging configurations for the topic. - * For more information, see - * https://docs.aws.amazon.com/sns/latest/dg/sns-topic-attributes.html. */ public fun loggingConfigs(vararg loggingConfigs: LoggingConfig) @@ -150,6 +162,13 @@ public interface TopicProps { */ public fun messageRetentionPeriodInDays(messageRetentionPeriodInDays: Number) + /** + * @param signatureVersion The signature version corresponds to the hashing algorithm used while + * creating the signature of the notifications, subscription confirmations, or unsubscribe + * confirmation messages sent by Amazon SNS. + */ + public fun signatureVersion(signatureVersion: String) + /** * @param topicName A name for the topic. * If you don't specify a name, AWS CloudFormation generates a unique @@ -157,6 +176,11 @@ public interface TopicProps { * see Name Type. */ public fun topicName(topicName: String) + + /** + * @param tracingConfig Tracing mode of an Amazon SNS topic. + */ + public fun tracingConfig(tracingConfig: TracingConfig) } private class BuilderImpl : Builder { @@ -180,8 +204,6 @@ public interface TopicProps { /** * @param enforceSsl Adds a statement to enforce encryption of data in transit when publishing * to the topic. - * For more information, see - * https://docs.aws.amazon.com/sns/latest/dg/sns-security-best-practices.html#enforce-encryption-data-in-transit. */ override fun enforceSsl(enforceSsl: Boolean) { cdkBuilder.enforceSsl(enforceSsl) @@ -196,8 +218,6 @@ public interface TopicProps { /** * @param loggingConfigs The list of delivery status logging configurations for the topic. - * For more information, see - * https://docs.aws.amazon.com/sns/latest/dg/sns-topic-attributes.html. */ override fun loggingConfigs(loggingConfigs: List) { cdkBuilder.loggingConfigs(loggingConfigs.map(LoggingConfig::unwrap)) @@ -205,8 +225,6 @@ public interface TopicProps { /** * @param loggingConfigs The list of delivery status logging configurations for the topic. - * For more information, see - * https://docs.aws.amazon.com/sns/latest/dg/sns-topic-attributes.html. */ override fun loggingConfigs(vararg loggingConfigs: LoggingConfig): Unit = loggingConfigs(loggingConfigs.toList()) @@ -226,6 +244,15 @@ public interface TopicProps { cdkBuilder.messageRetentionPeriodInDays(messageRetentionPeriodInDays) } + /** + * @param signatureVersion The signature version corresponds to the hashing algorithm used while + * creating the signature of the notifications, subscription confirmations, or unsubscribe + * confirmation messages sent by Amazon SNS. + */ + override fun signatureVersion(signatureVersion: String) { + cdkBuilder.signatureVersion(signatureVersion) + } + /** * @param topicName A name for the topic. * If you don't specify a name, AWS CloudFormation generates a unique @@ -236,6 +263,13 @@ public interface TopicProps { cdkBuilder.topicName(topicName) } + /** + * @param tracingConfig Tracing mode of an Amazon SNS topic. + */ + override fun tracingConfig(tracingConfig: TracingConfig) { + cdkBuilder.tracingConfig(tracingConfig.let(TracingConfig::unwrap)) + } + public fun build(): software.amazon.awscdk.services.sns.TopicProps = cdkBuilder.build() } @@ -259,12 +293,11 @@ public interface TopicProps { /** * Adds a statement to enforce encryption of data in transit when publishing to the topic. * - * For more information, see - * https://docs.aws.amazon.com/sns/latest/dg/sns-security-best-practices.html#enforce-encryption-data-in-transit. - * * Default: false + * + * [Documentation](https://docs.aws.amazon.com/sns/latest/dg/sns-security-best-practices.html#enforce-encryption-data-in-transit.) */ - override fun enforceSsl(): Boolean? = unwrap(this).getEnforceSSL() + override fun enforceSSL(): Boolean? = unwrap(this).getEnforceSSL() /** * Set to true to create a FIFO topic. @@ -276,10 +309,9 @@ public interface TopicProps { /** * The list of delivery status logging configurations for the topic. * - * For more information, see - * https://docs.aws.amazon.com/sns/latest/dg/sns-topic-attributes.html. - * * Default: None + * + * [Documentation](https://docs.aws.amazon.com/sns/latest/dg/sns-topic-attributes.html.) */ override fun loggingConfigs(): List = unwrap(this).getLoggingConfigs()?.map(LoggingConfig::wrap) ?: emptyList() @@ -303,6 +335,17 @@ public interface TopicProps { override fun messageRetentionPeriodInDays(): Number? = unwrap(this).getMessageRetentionPeriodInDays() + /** + * The signature version corresponds to the hashing algorithm used while creating the signature + * of the notifications, subscription confirmations, or unsubscribe confirmation messages sent by + * Amazon SNS. + * + * Default: 1 + * + * [Documentation](https://docs.aws.amazon.com/sns/latest/dg/sns-verify-signature-of-message.html.) + */ + override fun signatureVersion(): String? = unwrap(this).getSignatureVersion() + /** * A name for the topic. * @@ -313,6 +356,16 @@ public interface TopicProps { * Default: Generated name */ override fun topicName(): String? = unwrap(this).getTopicName() + + /** + * Tracing mode of an Amazon SNS topic. + * + * Default: TracingConfig.PASS_THROUGH + * + * [Documentation](https://docs.aws.amazon.com/sns/latest/dg/sns-active-tracing.html) + */ + override fun tracingConfig(): TracingConfig? = + unwrap(this).getTracingConfig()?.let(TracingConfig::wrap) } public companion object { diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sns/TracingConfig.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sns/TracingConfig.kt new file mode 100644 index 0000000000..91eb10ebf0 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sns/TracingConfig.kt @@ -0,0 +1,22 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.sns + +public enum class TracingConfig( + private val cdkObject: software.amazon.awscdk.services.sns.TracingConfig, +) { + PASS_THROUGH(software.amazon.awscdk.services.sns.TracingConfig.PASS_THROUGH), + ACTIVE(software.amazon.awscdk.services.sns.TracingConfig.ACTIVE), + ; + + public companion object { + internal fun wrap(cdkObject: software.amazon.awscdk.services.sns.TracingConfig): TracingConfig = + when (cdkObject) { + software.amazon.awscdk.services.sns.TracingConfig.PASS_THROUGH -> TracingConfig.PASS_THROUGH + software.amazon.awscdk.services.sns.TracingConfig.ACTIVE -> TracingConfig.ACTIVE + } + + internal fun unwrap(wrapped: TracingConfig): software.amazon.awscdk.services.sns.TracingConfig = + wrapped.cdkObject + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sqs/QueueProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sqs/QueueProps.kt index 19da943467..9c9bc5b085 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sqs/QueueProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/sqs/QueueProps.kt @@ -121,7 +121,7 @@ public interface QueueProps { * * [Documentation](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-security-best-practices.html#enforce-encryption-data-in-transit) */ - public fun enforceSsl(): Boolean? = unwrap(this).getEnforceSSL() + public fun enforceSSL(): Boolean? = unwrap(this).getEnforceSSL() /** * Whether this a first-in-first-out (FIFO) queue. @@ -658,7 +658,7 @@ public interface QueueProps { * * [Documentation](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-security-best-practices.html#enforce-encryption-data-in-transit) */ - override fun enforceSsl(): Boolean? = unwrap(this).getEnforceSSL() + override fun enforceSSL(): Boolean? = unwrap(this).getEnforceSSL() /** * Whether this a first-in-first-out (FIFO) queue. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ssm/CfnDocument.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ssm/CfnDocument.kt index bbe1af533b..b8d2e8f488 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ssm/CfnDocument.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ssm/CfnDocument.kt @@ -306,6 +306,9 @@ public open class CfnDocument( * * `aws` * * `amazon` * * `amzn` + * * `AWSEC2` + * * `AWSConfigRemediation` + * * `AWSSupport` * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html#cfn-ssm-document-name) @@ -520,6 +523,9 @@ public open class CfnDocument( * * `aws` * * `amazon` * * `amzn` + * * `AWSEC2` + * * `AWSConfigRemediation` + * * `AWSSupport` * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html#cfn-ssm-document-name) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ssm/CfnDocumentProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ssm/CfnDocumentProps.kt index a4e1ec3d03..c62354c46b 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ssm/CfnDocumentProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ssm/CfnDocumentProps.kt @@ -101,6 +101,9 @@ public interface CfnDocumentProps { * * `aws` * * `amazon` * * `amzn` + * * `AWSEC2` + * * `AWSConfigRemediation` + * * `AWSSupport` * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html#cfn-ssm-document-name) @@ -224,6 +227,9 @@ public interface CfnDocumentProps { * * `aws` * * `amazon` * * `amzn` + * * `AWSEC2` + * * `AWSConfigRemediation` + * * `AWSSupport` */ public fun name(name: String) @@ -371,6 +377,9 @@ public interface CfnDocumentProps { * * `aws` * * `amazon` * * `amzn` + * * `AWSEC2` + * * `AWSConfigRemediation` + * * `AWSSupport` */ override fun name(name: String) { cdkBuilder.name(name) @@ -524,6 +533,9 @@ public interface CfnDocumentProps { * * `aws` * * `amazon` * * `amzn` + * * `AWSEC2` + * * `AWSConfigRemediation` + * * `AWSSupport` * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html#cfn-ssm-document-name) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ssm/CfnPatchBaseline.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ssm/CfnPatchBaseline.kt index 47116b2076..b3549fec40 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ssm/CfnPatchBaseline.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ssm/CfnPatchBaseline.kt @@ -600,10 +600,11 @@ public open class CfnPatchBaseline( * * *`ALLOW_AS_DEPENDENCY`* : A package in the `Rejected` patches list is installed only if it * is a dependency of another package. It is considered compliant with the patch baseline, and its * status is reported as `InstalledOther` . This is the default action if no option is specified. - * * *`BLOCK`* : Packages in the `RejectedPatches` list, and packages that include them as - * dependencies, aren't installed under any circumstances. If a package was installed before it was - * added to the Rejected patches list, it is considered non-compliant with the patch baseline, and - * its status is reported as `InstalledRejected` . + * * *BLOCK* : Packages in the *Rejected patches* list, and packages that include them as + * dependencies, aren't installed by Patch Manager under any circumstances. If a package was + * installed before it was added to the *Rejected patches* list, or is installed outside of Patch + * Manager afterward, it's considered noncompliant with the patch baseline and its status is + * reported as *InstalledRejected* . * * Default: - "ALLOW_AS_DEPENDENCY" * @@ -934,10 +935,11 @@ public open class CfnPatchBaseline( * * *`ALLOW_AS_DEPENDENCY`* : A package in the `Rejected` patches list is installed only if it * is a dependency of another package. It is considered compliant with the patch baseline, and its * status is reported as `InstalledOther` . This is the default action if no option is specified. - * * *`BLOCK`* : Packages in the `RejectedPatches` list, and packages that include them as - * dependencies, aren't installed under any circumstances. If a package was installed before it was - * added to the Rejected patches list, it is considered non-compliant with the patch baseline, and - * its status is reported as `InstalledRejected` . + * * *BLOCK* : Packages in the *Rejected patches* list, and packages that include them as + * dependencies, aren't installed by Patch Manager under any circumstances. If a package was + * installed before it was added to the *Rejected patches* list, or is installed outside of Patch + * Manager afterward, it's considered noncompliant with the patch baseline and its status is + * reported as *InstalledRejected* . * * Default: - "ALLOW_AS_DEPENDENCY" * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ssm/CfnPatchBaselineProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ssm/CfnPatchBaselineProps.kt index f84fba8395..9597ff88e7 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ssm/CfnPatchBaselineProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ssm/CfnPatchBaselineProps.kt @@ -183,10 +183,11 @@ public interface CfnPatchBaselineProps { * * *`ALLOW_AS_DEPENDENCY`* : A package in the `Rejected` patches list is installed only if it is * a dependency of another package. It is considered compliant with the patch baseline, and its * status is reported as `InstalledOther` . This is the default action if no option is specified. - * * *`BLOCK`* : Packages in the `RejectedPatches` list, and packages that include them as - * dependencies, aren't installed under any circumstances. If a package was installed before it was - * added to the Rejected patches list, it is considered non-compliant with the patch baseline, and - * its status is reported as `InstalledRejected` . + * * *BLOCK* : Packages in the *Rejected patches* list, and packages that include them as + * dependencies, aren't installed by Patch Manager under any circumstances. If a package was + * installed before it was added to the *Rejected patches* list, or is installed outside of Patch + * Manager afterward, it's considered noncompliant with the patch baseline and its status is reported + * as *InstalledRejected* . * * Default: - "ALLOW_AS_DEPENDENCY" * @@ -356,10 +357,11 @@ public interface CfnPatchBaselineProps { * * *`ALLOW_AS_DEPENDENCY`* : A package in the `Rejected` patches list is installed only if it * is a dependency of another package. It is considered compliant with the patch baseline, and its * status is reported as `InstalledOther` . This is the default action if no option is specified. - * * *`BLOCK`* : Packages in the `RejectedPatches` list, and packages that include them as - * dependencies, aren't installed under any circumstances. If a package was installed before it was - * added to the Rejected patches list, it is considered non-compliant with the patch baseline, and - * its status is reported as `InstalledRejected` . + * * *BLOCK* : Packages in the *Rejected patches* list, and packages that include them as + * dependencies, aren't installed by Patch Manager under any circumstances. If a package was + * installed before it was added to the *Rejected patches* list, or is installed outside of Patch + * Manager afterward, it's considered noncompliant with the patch baseline and its status is + * reported as *InstalledRejected* . */ public fun rejectedPatchesAction(rejectedPatchesAction: String) @@ -576,10 +578,11 @@ public interface CfnPatchBaselineProps { * * *`ALLOW_AS_DEPENDENCY`* : A package in the `Rejected` patches list is installed only if it * is a dependency of another package. It is considered compliant with the patch baseline, and its * status is reported as `InstalledOther` . This is the default action if no option is specified. - * * *`BLOCK`* : Packages in the `RejectedPatches` list, and packages that include them as - * dependencies, aren't installed under any circumstances. If a package was installed before it was - * added to the Rejected patches list, it is considered non-compliant with the patch baseline, and - * its status is reported as `InstalledRejected` . + * * *BLOCK* : Packages in the *Rejected patches* list, and packages that include them as + * dependencies, aren't installed by Patch Manager under any circumstances. If a package was + * installed before it was added to the *Rejected patches* list, or is installed outside of Patch + * Manager afterward, it's considered noncompliant with the patch baseline and its status is + * reported as *InstalledRejected* . */ override fun rejectedPatchesAction(rejectedPatchesAction: String) { cdkBuilder.rejectedPatchesAction(rejectedPatchesAction) @@ -748,10 +751,11 @@ public interface CfnPatchBaselineProps { * * *`ALLOW_AS_DEPENDENCY`* : A package in the `Rejected` patches list is installed only if it * is a dependency of another package. It is considered compliant with the patch baseline, and its * status is reported as `InstalledOther` . This is the default action if no option is specified. - * * *`BLOCK`* : Packages in the `RejectedPatches` list, and packages that include them as - * dependencies, aren't installed under any circumstances. If a package was installed before it was - * added to the Rejected patches list, it is considered non-compliant with the patch baseline, and - * its status is reported as `InstalledRejected` . + * * *BLOCK* : Packages in the *Rejected patches* list, and packages that include them as + * dependencies, aren't installed by Patch Manager under any circumstances. If a package was + * installed before it was added to the *Rejected patches* list, or is installed outside of Patch + * Manager afterward, it's considered noncompliant with the patch baseline and its status is + * reported as *InstalledRejected* . * * Default: - "ALLOW_AS_DEPENDENCY" * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ssmcontacts/CfnRotation.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ssmcontacts/CfnRotation.kt index be20665362..c93f45f1cb 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ssmcontacts/CfnRotation.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ssmcontacts/CfnRotation.kt @@ -212,6 +212,11 @@ public open class CfnRotation( /** * The Amazon Resource Names (ARNs) of the contacts to add to the rotation. * + * + * Only the `PERSONAL` contact type is supported. The contact types `ESCALATION` and + * `ONCALL_SCHEDULE` are not supported for this operation. + * + * * The order in which you list the contacts is their shift order in the rotation schedule. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-rotation.html#cfn-ssmcontacts-rotation-contactids) @@ -222,6 +227,11 @@ public open class CfnRotation( /** * The Amazon Resource Names (ARNs) of the contacts to add to the rotation. * + * + * Only the `PERSONAL` contact type is supported. The contact types `ESCALATION` and + * `ONCALL_SCHEDULE` are not supported for this operation. + * + * * The order in which you list the contacts is their shift order in the rotation schedule. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-rotation.html#cfn-ssmcontacts-rotation-contactids) @@ -305,6 +315,11 @@ public open class CfnRotation( * [Time Zone Database](https://docs.aws.amazon.com/https://www.iana.org/time-zones) on the IANA * website. * + * + * Designators for time zones that don’t support Daylight Savings Time rules, such as Pacific + * Standard Time (PST), are not supported. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-rotation.html#cfn-ssmcontacts-rotation-timezoneid) * @param timeZoneId The time zone to base the rotation’s activity on, in Internet Assigned * Numbers Authority (IANA) format. @@ -322,6 +337,11 @@ public open class CfnRotation( /** * The Amazon Resource Names (ARNs) of the contacts to add to the rotation. * + * + * Only the `PERSONAL` contact type is supported. The contact types `ESCALATION` and + * `ONCALL_SCHEDULE` are not supported for this operation. + * + * * The order in which you list the contacts is their shift order in the rotation schedule. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-rotation.html#cfn-ssmcontacts-rotation-contactids) @@ -334,6 +354,11 @@ public open class CfnRotation( /** * The Amazon Resource Names (ARNs) of the contacts to add to the rotation. * + * + * Only the `PERSONAL` contact type is supported. The contact types `ESCALATION` and + * `ONCALL_SCHEDULE` are not supported for this operation. + * + * * The order in which you list the contacts is their shift order in the rotation schedule. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-rotation.html#cfn-ssmcontacts-rotation-contactids) @@ -428,6 +453,11 @@ public open class CfnRotation( * [Time Zone Database](https://docs.aws.amazon.com/https://www.iana.org/time-zones) on the IANA * website. * + * + * Designators for time zones that don’t support Daylight Savings Time rules, such as Pacific + * Standard Time (PST), are not supported. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-rotation.html#cfn-ssmcontacts-rotation-timezoneid) * @param timeZoneId The time zone to base the rotation’s activity on, in Internet Assigned * Numbers Authority (IANA) format. diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ssmcontacts/CfnRotationProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ssmcontacts/CfnRotationProps.kt index 9c968789f2..bd47c623dc 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ssmcontacts/CfnRotationProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/ssmcontacts/CfnRotationProps.kt @@ -62,6 +62,11 @@ public interface CfnRotationProps { /** * The Amazon Resource Names (ARNs) of the contacts to add to the rotation. * + * + * Only the `PERSONAL` contact type is supported. The contact types `ESCALATION` and + * `ONCALL_SCHEDULE` are not supported for this operation. + * + * * The order in which you list the contacts is their shift order in the rotation schedule. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-rotation.html#cfn-ssmcontacts-rotation-contactids) @@ -108,6 +113,11 @@ public interface CfnRotationProps { * For example: "America/Los_Angeles", "UTC", or "Asia/Seoul". For more information, see the [Time * Zone Database](https://docs.aws.amazon.com/https://www.iana.org/time-zones) on the IANA website. * + * + * Designators for time zones that don’t support Daylight Savings Time rules, such as Pacific + * Standard Time (PST), are not supported. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-rotation.html#cfn-ssmcontacts-rotation-timezoneid) */ public fun timeZoneId(): String @@ -119,12 +129,22 @@ public interface CfnRotationProps { public interface Builder { /** * @param contactIds The Amazon Resource Names (ARNs) of the contacts to add to the rotation. + * + * Only the `PERSONAL` contact type is supported. The contact types `ESCALATION` and + * `ONCALL_SCHEDULE` are not supported for this operation. + * + * * The order in which you list the contacts is their shift order in the rotation schedule. */ public fun contactIds(contactIds: List) /** * @param contactIds The Amazon Resource Names (ARNs) of the contacts to add to the rotation. + * + * Only the `PERSONAL` contact type is supported. The contact types `ESCALATION` and + * `ONCALL_SCHEDULE` are not supported for this operation. + * + * * The order in which you list the contacts is their shift order in the rotation schedule. */ public fun contactIds(vararg contactIds: String) @@ -180,6 +200,10 @@ public interface CfnRotationProps { * For example: "America/Los_Angeles", "UTC", or "Asia/Seoul". For more information, see the * [Time Zone Database](https://docs.aws.amazon.com/https://www.iana.org/time-zones) on the IANA * website. + * + * + * Designators for time zones that don’t support Daylight Savings Time rules, such as Pacific + * Standard Time (PST), are not supported. */ public fun timeZoneId(timeZoneId: String) } @@ -190,6 +214,11 @@ public interface CfnRotationProps { /** * @param contactIds The Amazon Resource Names (ARNs) of the contacts to add to the rotation. + * + * Only the `PERSONAL` contact type is supported. The contact types `ESCALATION` and + * `ONCALL_SCHEDULE` are not supported for this operation. + * + * * The order in which you list the contacts is their shift order in the rotation schedule. */ override fun contactIds(contactIds: List) { @@ -198,6 +227,11 @@ public interface CfnRotationProps { /** * @param contactIds The Amazon Resource Names (ARNs) of the contacts to add to the rotation. + * + * Only the `PERSONAL` contact type is supported. The contact types `ESCALATION` and + * `ONCALL_SCHEDULE` are not supported for this operation. + * + * * The order in which you list the contacts is their shift order in the rotation schedule. */ override fun contactIds(vararg contactIds: String): Unit = contactIds(contactIds.toList()) @@ -264,6 +298,10 @@ public interface CfnRotationProps { * For example: "America/Los_Angeles", "UTC", or "Asia/Seoul". For more information, see the * [Time Zone Database](https://docs.aws.amazon.com/https://www.iana.org/time-zones) on the IANA * website. + * + * + * Designators for time zones that don’t support Daylight Savings Time rules, such as Pacific + * Standard Time (PST), are not supported. */ override fun timeZoneId(timeZoneId: String) { cdkBuilder.timeZoneId(timeZoneId) @@ -279,6 +317,11 @@ public interface CfnRotationProps { /** * The Amazon Resource Names (ARNs) of the contacts to add to the rotation. * + * + * Only the `PERSONAL` contact type is supported. The contact types `ESCALATION` and + * `ONCALL_SCHEDULE` are not supported for this operation. + * + * * The order in which you list the contacts is their shift order in the rotation schedule. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-rotation.html#cfn-ssmcontacts-rotation-contactids) @@ -326,6 +369,11 @@ public interface CfnRotationProps { * [Time Zone Database](https://docs.aws.amazon.com/https://www.iana.org/time-zones) on the IANA * website. * + * + * Designators for time zones that don’t support Daylight Savings Time rules, such as Pacific + * Standard Time (PST), are not supported. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-rotation.html#cfn-ssmcontacts-rotation-timezoneid) */ override fun timeZoneId(): String = unwrap(this).getTimeZoneId() diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/stepfunctions/TaskInput.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/stepfunctions/TaskInput.kt index 7e7951d4b9..fa4038e74d 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/stepfunctions/TaskInput.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/stepfunctions/TaskInput.kt @@ -14,18 +14,13 @@ import kotlin.collections.Map * Example: * * ``` - * import io.cloudshiftdev.awscdk.services.bedrock.*; - * FoundationModel model = FoundationModel.fromFoundationModelId(this, "Model", - * FoundationModelIdentifier.AMAZON_TITAN_TEXT_G1_EXPRESS_V1); - * BedrockInvokeModel task = BedrockInvokeModel.Builder.create(this, "Prompt Model") - * .model(model) - * .body(TaskInput.fromObject(Map.of( - * "inputText", "Generate a list of five first names.", - * "textGenerationConfig", Map.of( - * "maxTokenCount", 100, - * "temperature", 1)))) - * .resultSelector(Map.of( - * "names", JsonPath.stringAt("$.Body.results[0].outputText"))) + * Function fn; + * LambdaInvoke.Builder.create(this, "Invoke with callback") + * .lambdaFunction(fn) + * .integrationPattern(IntegrationPattern.WAIT_FOR_TASK_TOKEN) + * .payload(TaskInput.fromObject(Map.of( + * "token", JsonPath.getTaskToken(), + * "input", JsonPath.stringAt("$.someField")))) * .build(); * ``` */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/stepfunctions/tasks/EcsRunTask.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/stepfunctions/tasks/EcsRunTask.kt index 1e1ed4ec28..ba14012ea0 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/stepfunctions/tasks/EcsRunTask.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/stepfunctions/tasks/EcsRunTask.kt @@ -37,27 +37,27 @@ import software.constructs.Construct as SoftwareConstructsConstruct * IVpc vpc = Vpc.fromLookup(this, "Vpc", VpcLookupOptions.builder() * .isDefault(true) * .build()); - * Cluster cluster = Cluster.Builder.create(this, "Ec2Cluster").vpc(vpc).build(); - * cluster.addCapacity("DefaultAutoScalingGroup", AddCapacityOptions.builder() - * .instanceType(new InstanceType("t2.micro")) - * .vpcSubnets(SubnetSelection.builder().subnetType(SubnetType.PUBLIC).build()) - * .build()); + * Cluster cluster = Cluster.Builder.create(this, "FargateCluster").vpc(vpc).build(); * TaskDefinition taskDefinition = TaskDefinition.Builder.create(this, "TD") - * .compatibility(Compatibility.EC2) + * .memoryMiB("512") + * .cpu("256") + * .compatibility(Compatibility.FARGATE) * .build(); - * taskDefinition.addContainer("TheContainer", ContainerDefinitionOptions.builder() + * ContainerDefinition containerDefinition = taskDefinition.addContainer("TheContainer", + * ContainerDefinitionOptions.builder() * .image(ContainerImage.fromRegistry("foo/bar")) * .memoryLimitMiB(256) * .build()); - * EcsRunTask runTask = EcsRunTask.Builder.create(this, "Run") + * EcsRunTask runTask = EcsRunTask.Builder.create(this, "RunFargate") * .integrationPattern(IntegrationPattern.RUN_JOB) * .cluster(cluster) * .taskDefinition(taskDefinition) - * .launchTarget(EcsEc2LaunchTarget.Builder.create() - * .placementStrategies(List.of(PlacementStrategy.spreadAcrossInstances(), - * PlacementStrategy.packedByCpu(), PlacementStrategy.randomly())) - * .placementConstraints(List.of(PlacementConstraint.memberOf("blieptuut"))) - * .build()) + * .assignPublicIp(true) + * .containerOverrides(List.of(ContainerOverride.builder() + * .containerDefinition(containerDefinition) + * .environment(List.of(TaskEnvironmentVariable.builder().name("SOME_KEY").value(JsonPath.stringAt("$.SomeKey")).build())) + * .build())) + * .launchTarget(new EcsFargateLaunchTarget()) * .propagatedTagSource(PropagatedTagSource.TASK_DEFINITION) * .build(); * ``` @@ -167,6 +167,16 @@ public open class EcsRunTask( @JvmName("70ebe03278a53b551b732afadb0fad9fa84cad26998f0d5390edfd9bf918bd2e") public fun credentials(credentials: Credentials.Builder.() -> Unit) + /** + * Whether ECS Exec should be enabled. + * + * Default: false + * + * [Documentation](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RunTask.html#ECS-RunTask-request-enableExecuteCommand) + * @param enableExecuteCommand Whether ECS Exec should be enabled. + */ + public fun enableExecuteCommand(enableExecuteCommand: Boolean) + /** * (deprecated) Timeout for the heartbeat. * @@ -286,11 +296,11 @@ public open class EcsRunTask( public fun resultSelector(resultSelector: Map) /** - * The revision number of ECS task definiton family. + * The revision number of ECS task definition family. * * Default: - '$latest' * - * @param revisionNumber The revision number of ECS task definiton family. + * @param revisionNumber The revision number of ECS task definition family. */ public fun revisionNumber(revisionNumber: Number) @@ -472,6 +482,18 @@ public open class EcsRunTask( override fun credentials(credentials: Credentials.Builder.() -> Unit): Unit = credentials(Credentials(credentials)) + /** + * Whether ECS Exec should be enabled. + * + * Default: false + * + * [Documentation](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RunTask.html#ECS-RunTask-request-enableExecuteCommand) + * @param enableExecuteCommand Whether ECS Exec should be enabled. + */ + override fun enableExecuteCommand(enableExecuteCommand: Boolean) { + cdkBuilder.enableExecuteCommand(enableExecuteCommand) + } + /** * (deprecated) Timeout for the heartbeat. * @@ -609,11 +631,11 @@ public open class EcsRunTask( } /** - * The revision number of ECS task definiton family. + * The revision number of ECS task definition family. * * Default: - '$latest' * - * @param revisionNumber The revision number of ECS task definiton family. + * @param revisionNumber The revision number of ECS task definition family. */ override fun revisionNumber(revisionNumber: Number) { cdkBuilder.revisionNumber(revisionNumber) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/stepfunctions/tasks/EcsRunTaskProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/stepfunctions/tasks/EcsRunTaskProps.kt index b7620d55ea..1cbd8ca10a 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/stepfunctions/tasks/EcsRunTaskProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/stepfunctions/tasks/EcsRunTaskProps.kt @@ -34,27 +34,27 @@ import kotlin.jvm.JvmName * IVpc vpc = Vpc.fromLookup(this, "Vpc", VpcLookupOptions.builder() * .isDefault(true) * .build()); - * Cluster cluster = Cluster.Builder.create(this, "Ec2Cluster").vpc(vpc).build(); - * cluster.addCapacity("DefaultAutoScalingGroup", AddCapacityOptions.builder() - * .instanceType(new InstanceType("t2.micro")) - * .vpcSubnets(SubnetSelection.builder().subnetType(SubnetType.PUBLIC).build()) - * .build()); + * Cluster cluster = Cluster.Builder.create(this, "FargateCluster").vpc(vpc).build(); * TaskDefinition taskDefinition = TaskDefinition.Builder.create(this, "TD") - * .compatibility(Compatibility.EC2) + * .memoryMiB("512") + * .cpu("256") + * .compatibility(Compatibility.FARGATE) * .build(); - * taskDefinition.addContainer("TheContainer", ContainerDefinitionOptions.builder() + * ContainerDefinition containerDefinition = taskDefinition.addContainer("TheContainer", + * ContainerDefinitionOptions.builder() * .image(ContainerImage.fromRegistry("foo/bar")) * .memoryLimitMiB(256) * .build()); - * EcsRunTask runTask = EcsRunTask.Builder.create(this, "Run") + * EcsRunTask runTask = EcsRunTask.Builder.create(this, "RunFargate") * .integrationPattern(IntegrationPattern.RUN_JOB) * .cluster(cluster) * .taskDefinition(taskDefinition) - * .launchTarget(EcsEc2LaunchTarget.Builder.create() - * .placementStrategies(List.of(PlacementStrategy.spreadAcrossInstances(), - * PlacementStrategy.packedByCpu(), PlacementStrategy.randomly())) - * .placementConstraints(List.of(PlacementConstraint.memberOf("blieptuut"))) - * .build()) + * .assignPublicIp(true) + * .containerOverrides(List.of(ContainerOverride.builder() + * .containerDefinition(containerDefinition) + * .environment(List.of(TaskEnvironmentVariable.builder().name("SOME_KEY").value(JsonPath.stringAt("$.SomeKey")).build())) + * .build())) + * .launchTarget(new EcsFargateLaunchTarget()) * .propagatedTagSource(PropagatedTagSource.TASK_DEFINITION) * .build(); * ``` @@ -82,6 +82,15 @@ public interface EcsRunTaskProps : TaskStateBaseProps { public fun containerOverrides(): List = unwrap(this).getContainerOverrides()?.map(ContainerOverride::wrap) ?: emptyList() + /** + * Whether ECS Exec should be enabled. + * + * Default: false + * + * [Documentation](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RunTask.html#ECS-RunTask-request-enableExecuteCommand) + */ + public fun enableExecuteCommand(): Boolean? = unwrap(this).getEnableExecuteCommand() + /** * An Amazon ECS launch type determines the type of infrastructure on which your tasks and * services are hosted. @@ -103,7 +112,7 @@ public interface EcsRunTaskProps : TaskStateBaseProps { unwrap(this).getPropagatedTagSource()?.let(PropagatedTagSource::wrap) /** - * The revision number of ECS task definiton family. + * The revision number of ECS task definition family. * * Default: - '$latest' */ @@ -182,6 +191,11 @@ public interface EcsRunTaskProps : TaskStateBaseProps { @JvmName("68b27bf7449e7fe2571694e787012db9d73f04feda7ba4090c80774764994419") public fun credentials(credentials: Credentials.Builder.() -> Unit) + /** + * @param enableExecuteCommand Whether ECS Exec should be enabled. + */ + public fun enableExecuteCommand(enableExecuteCommand: Boolean) + /** * @param heartbeat Timeout for the heartbeat. * @deprecated use `heartbeatTimeout` @@ -250,7 +264,7 @@ public interface EcsRunTaskProps : TaskStateBaseProps { public fun resultSelector(resultSelector: Map) /** - * @param revisionNumber The revision number of ECS task definiton family. + * @param revisionNumber The revision number of ECS task definition family. */ public fun revisionNumber(revisionNumber: Number) @@ -366,6 +380,13 @@ public interface EcsRunTaskProps : TaskStateBaseProps { override fun credentials(credentials: Credentials.Builder.() -> Unit): Unit = credentials(Credentials(credentials)) + /** + * @param enableExecuteCommand Whether ECS Exec should be enabled. + */ + override fun enableExecuteCommand(enableExecuteCommand: Boolean) { + cdkBuilder.enableExecuteCommand(enableExecuteCommand) + } + /** * @param heartbeat Timeout for the heartbeat. * @deprecated use `heartbeatTimeout` @@ -452,7 +473,7 @@ public interface EcsRunTaskProps : TaskStateBaseProps { } /** - * @param revisionNumber The revision number of ECS task definiton family. + * @param revisionNumber The revision number of ECS task definition family. */ override fun revisionNumber(revisionNumber: Number) { cdkBuilder.revisionNumber(revisionNumber) @@ -570,6 +591,15 @@ public interface EcsRunTaskProps : TaskStateBaseProps { */ override fun credentials(): Credentials? = unwrap(this).getCredentials()?.let(Credentials::wrap) + /** + * Whether ECS Exec should be enabled. + * + * Default: false + * + * [Documentation](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RunTask.html#ECS-RunTask-request-enableExecuteCommand) + */ + override fun enableExecuteCommand(): Boolean? = unwrap(this).getEnableExecuteCommand() + /** * (deprecated) Timeout for the heartbeat. * @@ -674,7 +704,7 @@ public interface EcsRunTaskProps : TaskStateBaseProps { override fun resultSelector(): Map = unwrap(this).getResultSelector() ?: emptyMap() /** - * The revision number of ECS task definiton family. + * The revision number of ECS task definition family. * * Default: - '$latest' */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/stepfunctions/tasks/EmrModifyInstanceGroupByName.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/stepfunctions/tasks/EmrModifyInstanceGroupByName.kt index 7af1bb0b03..3498078162 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/stepfunctions/tasks/EmrModifyInstanceGroupByName.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/stepfunctions/tasks/EmrModifyInstanceGroupByName.kt @@ -567,7 +567,7 @@ public open class EmrModifyInstanceGroupByName( * * Default: - None */ - public fun ec2InstanceIdsToTerminate(): List = + public fun eC2InstanceIdsToTerminate(): List = unwrap(this).getEC2InstanceIdsToTerminate() ?: emptyList() /** @@ -721,7 +721,7 @@ public open class EmrModifyInstanceGroupByName( * * Default: - None */ - override fun ec2InstanceIdsToTerminate(): List = + override fun eC2InstanceIdsToTerminate(): List = unwrap(this).getEC2InstanceIdsToTerminate() ?: emptyList() /** diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/stepfunctions/tasks/HttpInvoke.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/stepfunctions/tasks/HttpInvoke.kt new file mode 100644 index 0000000000..8be8ac0ca0 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/stepfunctions/tasks/HttpInvoke.kt @@ -0,0 +1,661 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.stepfunctions.tasks + +import io.cloudshiftdev.awscdk.Duration +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import io.cloudshiftdev.awscdk.services.events.IConnection +import io.cloudshiftdev.awscdk.services.stepfunctions.Credentials +import io.cloudshiftdev.awscdk.services.stepfunctions.IntegrationPattern +import io.cloudshiftdev.awscdk.services.stepfunctions.TaskInput +import io.cloudshiftdev.awscdk.services.stepfunctions.TaskStateBase +import io.cloudshiftdev.awscdk.services.stepfunctions.Timeout +import kotlin.Any +import kotlin.Deprecated +import kotlin.String +import kotlin.Unit +import kotlin.collections.Map +import kotlin.jvm.JvmName +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * A Step Functions Task to call a public third-party API. + * + * Example: + * + * ``` + * import io.cloudshiftdev.awscdk.services.events.*; + * Connection connection = Connection.Builder.create(this, "Connection") + * .authorization(Authorization.basic("username", SecretValue.unsafePlainText("password"))) + * .build(); + * HttpInvoke.Builder.create(this, "Invoke HTTP API") + * .apiRoot("https://api.example.com") + * .apiEndpoint(TaskInput.fromText("https://api.example.com/path/to/resource")) + * .body(TaskInput.fromObject(Map.of("foo", "bar"))) + * .connection(connection) + * .headers(TaskInput.fromObject(Map.of("Content-Type", "application/json"))) + * .method(TaskInput.fromText("POST")) + * .queryStringParameters(TaskInput.fromObject(Map.of("id", "123"))) + * .urlEncodingFormat(URLEncodingFormat.BRACKETS) + * .build(); + * ``` + */ +public open class HttpInvoke( + cdkObject: software.amazon.awscdk.services.stepfunctions.tasks.HttpInvoke, +) : TaskStateBase(cdkObject) { + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: HttpInvokeProps, + ) : + this(software.amazon.awscdk.services.stepfunctions.tasks.HttpInvoke(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(HttpInvokeProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: HttpInvokeProps.Builder.() -> Unit, + ) : this(scope, id, HttpInvokeProps(props) + ) + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.stepfunctions.tasks.HttpInvoke]. + */ + @CdkDslMarker + public interface Builder { + /** + * The API endpoint to call, relative to `apiRoot`. + * + * Example: + * + * ``` + * TaskInput.fromText("path/to/resource"); + * ``` + * + * @param apiEndpoint The API endpoint to call, relative to `apiRoot`. + */ + public fun apiEndpoint(apiEndpoint: TaskInput) + + /** + * Permissions are granted to call all resources under this path. + * + * Example: + * + * ``` + * "https://api.example.com"; + * ``` + * + * @param apiRoot Permissions are granted to call all resources under this path. + */ + public fun apiRoot(apiRoot: String) + + /** + * The body to send to the HTTP endpoint. + * + * Default: - No body is sent with the request. + * + * @param body The body to send to the HTTP endpoint. + */ + public fun body(body: TaskInput) + + /** + * An optional description for this state. + * + * Default: - No comment + * + * @param comment An optional description for this state. + */ + public fun comment(comment: String) + + /** + * The EventBridge Connection to use for authentication. + * + * @param connection The EventBridge Connection to use for authentication. + */ + public fun connection(connection: IConnection) + + /** + * Credentials for an IAM Role that the State Machine assumes for executing the task. + * + * This enables cross-account resource invocations. + * + * Default: - None (Task is executed using the State Machine's execution role) + * + * [Documentation](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-access-cross-acct-resources.html) + * @param credentials Credentials for an IAM Role that the State Machine assumes for executing + * the task. + */ + public fun credentials(credentials: Credentials) + + /** + * Credentials for an IAM Role that the State Machine assumes for executing the task. + * + * This enables cross-account resource invocations. + * + * Default: - None (Task is executed using the State Machine's execution role) + * + * [Documentation](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-access-cross-acct-resources.html) + * @param credentials Credentials for an IAM Role that the State Machine assumes for executing + * the task. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("026c507701985e20f07f673492fafde850e5948449058027e816daa413f3343a") + public fun credentials(credentials: Credentials.Builder.() -> Unit) + + /** + * The headers to send to the HTTP endpoint. + * + * Default: - No additional headers are added to the request. + * + * Example: + * + * ``` + * TaskInput.fromObject(Map.of("Content-Type", "application/json")); + * ``` + * + * @param headers The headers to send to the HTTP endpoint. + */ + public fun headers(headers: TaskInput) + + /** + * (deprecated) Timeout for the heartbeat. + * + * Default: - None + * + * @deprecated use `heartbeatTimeout` + * @param heartbeat Timeout for the heartbeat. + */ + @Deprecated(message = "deprecated in CDK") + public fun heartbeat(heartbeat: Duration) + + /** + * Timeout for the heartbeat. + * + * [disable-awslint:duration-prop-type] is needed because all props interface in + * aws-stepfunctions-tasks extend this interface + * + * Default: - None + * + * @param heartbeatTimeout Timeout for the heartbeat. + */ + public fun heartbeatTimeout(heartbeatTimeout: Timeout) + + /** + * JSONPath expression to select part of the state to be the input to this state. + * + * May also be the special value JsonPath.DISCARD, which will cause the effective + * input to be the empty object {}. + * + * Default: - The entire task input (JSON path '$') + * + * @param inputPath JSONPath expression to select part of the state to be the input to this + * state. + */ + public fun inputPath(inputPath: String) + + /** + * AWS Step Functions integrates with services directly in the Amazon States Language. + * + * You can control these AWS services using service integration patterns. + * + * Depending on the AWS Service, the Service Integration Pattern availability will vary. + * + * Default: - `IntegrationPattern.REQUEST_RESPONSE` for most tasks. + * `IntegrationPattern.RUN_JOB` for the following exceptions: + * `BatchSubmitJob`, `EmrAddStep`, `EmrCreateCluster`, `EmrTerminationCluster`, and + * `EmrContainersStartJobRun`. + * + * [Documentation](https://docs.aws.amazon.com/step-functions/latest/dg/connect-supported-services.html) + * @param integrationPattern AWS Step Functions integrates with services directly in the Amazon + * States Language. + */ + public fun integrationPattern(integrationPattern: IntegrationPattern) + + /** + * The HTTP method to use. + * + * Example: + * + * ``` + * TaskInput.fromText("GET"); + * ``` + * + * @param method The HTTP method to use. + */ + public fun method(method: TaskInput) + + /** + * JSONPath expression to select select a portion of the state output to pass to the next state. + * + * May also be the special value JsonPath.DISCARD, which will cause the effective + * output to be the empty object {}. + * + * Default: - The entire JSON node determined by the state input, the task result, + * and resultPath is passed to the next state (JSON path '$') + * + * @param outputPath JSONPath expression to select select a portion of the state output to pass + * to the next state. + */ + public fun outputPath(outputPath: String) + + /** + * The query string parameters to send to the HTTP endpoint. + * + * Default: - No query string parameters are sent in the request. + * + * @param queryStringParameters The query string parameters to send to the HTTP endpoint. + */ + public fun queryStringParameters(queryStringParameters: TaskInput) + + /** + * JSONPath expression to indicate where to inject the state's output. + * + * May also be the special value JsonPath.DISCARD, which will cause the state's + * input to become its output. + * + * Default: - Replaces the entire input with the result (JSON path '$') + * + * @param resultPath JSONPath expression to indicate where to inject the state's output. + */ + public fun resultPath(resultPath: String) + + /** + * The JSON that will replace the state's raw result and become the effective result before + * ResultPath is applied. + * + * You can use ResultSelector to create a payload with values that are static + * or selected from the state's raw result. + * + * Default: - None + * + * [Documentation](https://docs.aws.amazon.com/step-functions/latest/dg/input-output-inputpath-params.html#input-output-resultselector) + * @param resultSelector The JSON that will replace the state's raw result and become the + * effective result before ResultPath is applied. + */ + public fun resultSelector(resultSelector: Map) + + /** + * Optional name for this state. + * + * Default: - The construct ID will be used as state name + * + * @param stateName Optional name for this state. + */ + public fun stateName(stateName: String) + + /** + * Timeout for the task. + * + * [disable-awslint:duration-prop-type] is needed because all props interface in + * aws-stepfunctions-tasks extend this interface + * + * Default: - None + * + * @param taskTimeout Timeout for the task. + */ + public fun taskTimeout(taskTimeout: Timeout) + + /** + * (deprecated) Timeout for the task. + * + * Default: - None + * + * @deprecated use `taskTimeout` + * @param timeout Timeout for the task. + */ + @Deprecated(message = "deprecated in CDK") + public fun timeout(timeout: Duration) + + /** + * Determines whether to apply URL encoding to the request body, and which array encoding format + * to use. + * + * `URLEncodingFormat.NONE` passes the JSON-serialized `RequestBody` field as the HTTP request + * body. + * Otherwise, the HTTP request body is the URL-encoded form data of the `RequestBody` field + * using the + * specified array encoding format, and the `Content-Type` header is set to + * `application/x-www-form-urlencoded`. + * + * Default: - URLEncodingFormat.NONE + * + * @param urlEncodingFormat Determines whether to apply URL encoding to the request body, and + * which array encoding format to use. + */ + public fun urlEncodingFormat(urlEncodingFormat: URLEncodingFormat) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.services.stepfunctions.tasks.HttpInvoke.Builder = + software.amazon.awscdk.services.stepfunctions.tasks.HttpInvoke.Builder.create(scope, id) + + /** + * The API endpoint to call, relative to `apiRoot`. + * + * Example: + * + * ``` + * TaskInput.fromText("path/to/resource"); + * ``` + * + * @param apiEndpoint The API endpoint to call, relative to `apiRoot`. + */ + override fun apiEndpoint(apiEndpoint: TaskInput) { + cdkBuilder.apiEndpoint(apiEndpoint.let(TaskInput::unwrap)) + } + + /** + * Permissions are granted to call all resources under this path. + * + * Example: + * + * ``` + * "https://api.example.com"; + * ``` + * + * @param apiRoot Permissions are granted to call all resources under this path. + */ + override fun apiRoot(apiRoot: String) { + cdkBuilder.apiRoot(apiRoot) + } + + /** + * The body to send to the HTTP endpoint. + * + * Default: - No body is sent with the request. + * + * @param body The body to send to the HTTP endpoint. + */ + override fun body(body: TaskInput) { + cdkBuilder.body(body.let(TaskInput::unwrap)) + } + + /** + * An optional description for this state. + * + * Default: - No comment + * + * @param comment An optional description for this state. + */ + override fun comment(comment: String) { + cdkBuilder.comment(comment) + } + + /** + * The EventBridge Connection to use for authentication. + * + * @param connection The EventBridge Connection to use for authentication. + */ + override fun connection(connection: IConnection) { + cdkBuilder.connection(connection.let(IConnection::unwrap)) + } + + /** + * Credentials for an IAM Role that the State Machine assumes for executing the task. + * + * This enables cross-account resource invocations. + * + * Default: - None (Task is executed using the State Machine's execution role) + * + * [Documentation](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-access-cross-acct-resources.html) + * @param credentials Credentials for an IAM Role that the State Machine assumes for executing + * the task. + */ + override fun credentials(credentials: Credentials) { + cdkBuilder.credentials(credentials.let(Credentials::unwrap)) + } + + /** + * Credentials for an IAM Role that the State Machine assumes for executing the task. + * + * This enables cross-account resource invocations. + * + * Default: - None (Task is executed using the State Machine's execution role) + * + * [Documentation](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-access-cross-acct-resources.html) + * @param credentials Credentials for an IAM Role that the State Machine assumes for executing + * the task. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("026c507701985e20f07f673492fafde850e5948449058027e816daa413f3343a") + override fun credentials(credentials: Credentials.Builder.() -> Unit): Unit = + credentials(Credentials(credentials)) + + /** + * The headers to send to the HTTP endpoint. + * + * Default: - No additional headers are added to the request. + * + * Example: + * + * ``` + * TaskInput.fromObject(Map.of("Content-Type", "application/json")); + * ``` + * + * @param headers The headers to send to the HTTP endpoint. + */ + override fun headers(headers: TaskInput) { + cdkBuilder.headers(headers.let(TaskInput::unwrap)) + } + + /** + * (deprecated) Timeout for the heartbeat. + * + * Default: - None + * + * @deprecated use `heartbeatTimeout` + * @param heartbeat Timeout for the heartbeat. + */ + @Deprecated(message = "deprecated in CDK") + override fun heartbeat(heartbeat: Duration) { + cdkBuilder.heartbeat(heartbeat.let(Duration::unwrap)) + } + + /** + * Timeout for the heartbeat. + * + * [disable-awslint:duration-prop-type] is needed because all props interface in + * aws-stepfunctions-tasks extend this interface + * + * Default: - None + * + * @param heartbeatTimeout Timeout for the heartbeat. + */ + override fun heartbeatTimeout(heartbeatTimeout: Timeout) { + cdkBuilder.heartbeatTimeout(heartbeatTimeout.let(Timeout::unwrap)) + } + + /** + * JSONPath expression to select part of the state to be the input to this state. + * + * May also be the special value JsonPath.DISCARD, which will cause the effective + * input to be the empty object {}. + * + * Default: - The entire task input (JSON path '$') + * + * @param inputPath JSONPath expression to select part of the state to be the input to this + * state. + */ + override fun inputPath(inputPath: String) { + cdkBuilder.inputPath(inputPath) + } + + /** + * AWS Step Functions integrates with services directly in the Amazon States Language. + * + * You can control these AWS services using service integration patterns. + * + * Depending on the AWS Service, the Service Integration Pattern availability will vary. + * + * Default: - `IntegrationPattern.REQUEST_RESPONSE` for most tasks. + * `IntegrationPattern.RUN_JOB` for the following exceptions: + * `BatchSubmitJob`, `EmrAddStep`, `EmrCreateCluster`, `EmrTerminationCluster`, and + * `EmrContainersStartJobRun`. + * + * [Documentation](https://docs.aws.amazon.com/step-functions/latest/dg/connect-supported-services.html) + * @param integrationPattern AWS Step Functions integrates with services directly in the Amazon + * States Language. + */ + override fun integrationPattern(integrationPattern: IntegrationPattern) { + cdkBuilder.integrationPattern(integrationPattern.let(IntegrationPattern::unwrap)) + } + + /** + * The HTTP method to use. + * + * Example: + * + * ``` + * TaskInput.fromText("GET"); + * ``` + * + * @param method The HTTP method to use. + */ + override fun method(method: TaskInput) { + cdkBuilder.method(method.let(TaskInput::unwrap)) + } + + /** + * JSONPath expression to select select a portion of the state output to pass to the next state. + * + * May also be the special value JsonPath.DISCARD, which will cause the effective + * output to be the empty object {}. + * + * Default: - The entire JSON node determined by the state input, the task result, + * and resultPath is passed to the next state (JSON path '$') + * + * @param outputPath JSONPath expression to select select a portion of the state output to pass + * to the next state. + */ + override fun outputPath(outputPath: String) { + cdkBuilder.outputPath(outputPath) + } + + /** + * The query string parameters to send to the HTTP endpoint. + * + * Default: - No query string parameters are sent in the request. + * + * @param queryStringParameters The query string parameters to send to the HTTP endpoint. + */ + override fun queryStringParameters(queryStringParameters: TaskInput) { + cdkBuilder.queryStringParameters(queryStringParameters.let(TaskInput::unwrap)) + } + + /** + * JSONPath expression to indicate where to inject the state's output. + * + * May also be the special value JsonPath.DISCARD, which will cause the state's + * input to become its output. + * + * Default: - Replaces the entire input with the result (JSON path '$') + * + * @param resultPath JSONPath expression to indicate where to inject the state's output. + */ + override fun resultPath(resultPath: String) { + cdkBuilder.resultPath(resultPath) + } + + /** + * The JSON that will replace the state's raw result and become the effective result before + * ResultPath is applied. + * + * You can use ResultSelector to create a payload with values that are static + * or selected from the state's raw result. + * + * Default: - None + * + * [Documentation](https://docs.aws.amazon.com/step-functions/latest/dg/input-output-inputpath-params.html#input-output-resultselector) + * @param resultSelector The JSON that will replace the state's raw result and become the + * effective result before ResultPath is applied. + */ + override fun resultSelector(resultSelector: Map) { + cdkBuilder.resultSelector(resultSelector.mapValues{CdkObjectWrappers.unwrap(it.value)}) + } + + /** + * Optional name for this state. + * + * Default: - The construct ID will be used as state name + * + * @param stateName Optional name for this state. + */ + override fun stateName(stateName: String) { + cdkBuilder.stateName(stateName) + } + + /** + * Timeout for the task. + * + * [disable-awslint:duration-prop-type] is needed because all props interface in + * aws-stepfunctions-tasks extend this interface + * + * Default: - None + * + * @param taskTimeout Timeout for the task. + */ + override fun taskTimeout(taskTimeout: Timeout) { + cdkBuilder.taskTimeout(taskTimeout.let(Timeout::unwrap)) + } + + /** + * (deprecated) Timeout for the task. + * + * Default: - None + * + * @deprecated use `taskTimeout` + * @param timeout Timeout for the task. + */ + @Deprecated(message = "deprecated in CDK") + override fun timeout(timeout: Duration) { + cdkBuilder.timeout(timeout.let(Duration::unwrap)) + } + + /** + * Determines whether to apply URL encoding to the request body, and which array encoding format + * to use. + * + * `URLEncodingFormat.NONE` passes the JSON-serialized `RequestBody` field as the HTTP request + * body. + * Otherwise, the HTTP request body is the URL-encoded form data of the `RequestBody` field + * using the + * specified array encoding format, and the `Content-Type` header is set to + * `application/x-www-form-urlencoded`. + * + * Default: - URLEncodingFormat.NONE + * + * @param urlEncodingFormat Determines whether to apply URL encoding to the request body, and + * which array encoding format to use. + */ + override fun urlEncodingFormat(urlEncodingFormat: URLEncodingFormat) { + cdkBuilder.urlEncodingFormat(urlEncodingFormat.let(URLEncodingFormat::unwrap)) + } + + public fun build(): software.amazon.awscdk.services.stepfunctions.tasks.HttpInvoke = + cdkBuilder.build() + } + + public companion object { + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): HttpInvoke { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return HttpInvoke(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.stepfunctions.tasks.HttpInvoke): + HttpInvoke = HttpInvoke(cdkObject) + + internal fun unwrap(wrapped: HttpInvoke): + software.amazon.awscdk.services.stepfunctions.tasks.HttpInvoke = wrapped.cdkObject as + software.amazon.awscdk.services.stepfunctions.tasks.HttpInvoke + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/stepfunctions/tasks/HttpInvokeProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/stepfunctions/tasks/HttpInvokeProps.kt new file mode 100644 index 0000000000..6c855a254b --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/stepfunctions/tasks/HttpInvokeProps.kt @@ -0,0 +1,693 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.stepfunctions.tasks + +import io.cloudshiftdev.awscdk.Duration +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import io.cloudshiftdev.awscdk.services.events.IConnection +import io.cloudshiftdev.awscdk.services.stepfunctions.Credentials +import io.cloudshiftdev.awscdk.services.stepfunctions.IntegrationPattern +import io.cloudshiftdev.awscdk.services.stepfunctions.TaskInput +import io.cloudshiftdev.awscdk.services.stepfunctions.TaskStateBaseProps +import io.cloudshiftdev.awscdk.services.stepfunctions.Timeout +import kotlin.Any +import kotlin.Deprecated +import kotlin.String +import kotlin.Unit +import kotlin.collections.Map +import kotlin.jvm.JvmName + +/** + * Properties for calling an external HTTP endpoint with HttpInvoke. + * + * Example: + * + * ``` + * import io.cloudshiftdev.awscdk.services.events.*; + * Connection connection = Connection.Builder.create(this, "Connection") + * .authorization(Authorization.basic("username", SecretValue.unsafePlainText("password"))) + * .build(); + * HttpInvoke.Builder.create(this, "Invoke HTTP API") + * .apiRoot("https://api.example.com") + * .apiEndpoint(TaskInput.fromText("https://api.example.com/path/to/resource")) + * .body(TaskInput.fromObject(Map.of("foo", "bar"))) + * .connection(connection) + * .headers(TaskInput.fromObject(Map.of("Content-Type", "application/json"))) + * .method(TaskInput.fromText("POST")) + * .queryStringParameters(TaskInput.fromObject(Map.of("id", "123"))) + * .urlEncodingFormat(URLEncodingFormat.BRACKETS) + * .build(); + * ``` + */ +public interface HttpInvokeProps : TaskStateBaseProps { + /** + * The API endpoint to call, relative to `apiRoot`. + * + * Example: + * + * ``` + * TaskInput.fromText("path/to/resource"); + * ``` + */ + public fun apiEndpoint(): TaskInput + + /** + * Permissions are granted to call all resources under this path. + * + * Example: + * + * ``` + * "https://api.example.com"; + * ``` + */ + public fun apiRoot(): String + + /** + * The body to send to the HTTP endpoint. + * + * Default: - No body is sent with the request. + */ + public fun body(): TaskInput? = unwrap(this).getBody()?.let(TaskInput::wrap) + + /** + * The EventBridge Connection to use for authentication. + */ + public fun connection(): IConnection + + /** + * The headers to send to the HTTP endpoint. + * + * Default: - No additional headers are added to the request. + * + * Example: + * + * ``` + * TaskInput.fromObject(Map.of("Content-Type", "application/json")); + * ``` + */ + public fun headers(): TaskInput? = unwrap(this).getHeaders()?.let(TaskInput::wrap) + + /** + * The HTTP method to use. + * + * Example: + * + * ``` + * TaskInput.fromText("GET"); + * ``` + */ + public fun method(): TaskInput + + /** + * The query string parameters to send to the HTTP endpoint. + * + * Default: - No query string parameters are sent in the request. + */ + public fun queryStringParameters(): TaskInput? = + unwrap(this).getQueryStringParameters()?.let(TaskInput::wrap) + + /** + * Determines whether to apply URL encoding to the request body, and which array encoding format + * to use. + * + * `URLEncodingFormat.NONE` passes the JSON-serialized `RequestBody` field as the HTTP request + * body. + * Otherwise, the HTTP request body is the URL-encoded form data of the `RequestBody` field using + * the + * specified array encoding format, and the `Content-Type` header is set to + * `application/x-www-form-urlencoded`. + * + * Default: - URLEncodingFormat.NONE + */ + public fun urlEncodingFormat(): URLEncodingFormat? = + unwrap(this).getUrlEncodingFormat()?.let(URLEncodingFormat::wrap) + + /** + * A builder for [HttpInvokeProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param apiEndpoint The API endpoint to call, relative to `apiRoot`. + */ + public fun apiEndpoint(apiEndpoint: TaskInput) + + /** + * @param apiRoot Permissions are granted to call all resources under this path. + */ + public fun apiRoot(apiRoot: String) + + /** + * @param body The body to send to the HTTP endpoint. + */ + public fun body(body: TaskInput) + + /** + * @param comment An optional description for this state. + */ + public fun comment(comment: String) + + /** + * @param connection The EventBridge Connection to use for authentication. + */ + public fun connection(connection: IConnection) + + /** + * @param credentials Credentials for an IAM Role that the State Machine assumes for executing + * the task. + * This enables cross-account resource invocations. + */ + public fun credentials(credentials: Credentials) + + /** + * @param credentials Credentials for an IAM Role that the State Machine assumes for executing + * the task. + * This enables cross-account resource invocations. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("d65697e107bf3053506f39639a850d83c410356c26db3577cc5a2781530944ea") + public fun credentials(credentials: Credentials.Builder.() -> Unit) + + /** + * @param headers The headers to send to the HTTP endpoint. + */ + public fun headers(headers: TaskInput) + + /** + * @param heartbeat Timeout for the heartbeat. + * @deprecated use `heartbeatTimeout` + */ + @Deprecated(message = "deprecated in CDK") + public fun heartbeat(heartbeat: Duration) + + /** + * @param heartbeatTimeout Timeout for the heartbeat. + * [disable-awslint:duration-prop-type] is needed because all props interface in + * aws-stepfunctions-tasks extend this interface + */ + public fun heartbeatTimeout(heartbeatTimeout: Timeout) + + /** + * @param inputPath JSONPath expression to select part of the state to be the input to this + * state. + * May also be the special value JsonPath.DISCARD, which will cause the effective + * input to be the empty object {}. + */ + public fun inputPath(inputPath: String) + + /** + * @param integrationPattern AWS Step Functions integrates with services directly in the Amazon + * States Language. + * You can control these AWS services using service integration patterns. + * + * Depending on the AWS Service, the Service Integration Pattern availability will vary. + */ + public fun integrationPattern(integrationPattern: IntegrationPattern) + + /** + * @param method The HTTP method to use. + */ + public fun method(method: TaskInput) + + /** + * @param outputPath JSONPath expression to select select a portion of the state output to pass + * to the next state. + * May also be the special value JsonPath.DISCARD, which will cause the effective + * output to be the empty object {}. + */ + public fun outputPath(outputPath: String) + + /** + * @param queryStringParameters The query string parameters to send to the HTTP endpoint. + */ + public fun queryStringParameters(queryStringParameters: TaskInput) + + /** + * @param resultPath JSONPath expression to indicate where to inject the state's output. + * May also be the special value JsonPath.DISCARD, which will cause the state's + * input to become its output. + */ + public fun resultPath(resultPath: String) + + /** + * @param resultSelector The JSON that will replace the state's raw result and become the + * effective result before ResultPath is applied. + * You can use ResultSelector to create a payload with values that are static + * or selected from the state's raw result. + */ + public fun resultSelector(resultSelector: Map) + + /** + * @param stateName Optional name for this state. + */ + public fun stateName(stateName: String) + + /** + * @param taskTimeout Timeout for the task. + * [disable-awslint:duration-prop-type] is needed because all props interface in + * aws-stepfunctions-tasks extend this interface + */ + public fun taskTimeout(taskTimeout: Timeout) + + /** + * @param timeout Timeout for the task. + * @deprecated use `taskTimeout` + */ + @Deprecated(message = "deprecated in CDK") + public fun timeout(timeout: Duration) + + /** + * @param urlEncodingFormat Determines whether to apply URL encoding to the request body, and + * which array encoding format to use. + * `URLEncodingFormat.NONE` passes the JSON-serialized `RequestBody` field as the HTTP request + * body. + * Otherwise, the HTTP request body is the URL-encoded form data of the `RequestBody` field + * using the + * specified array encoding format, and the `Content-Type` header is set to + * `application/x-www-form-urlencoded`. + */ + public fun urlEncodingFormat(urlEncodingFormat: URLEncodingFormat) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.stepfunctions.tasks.HttpInvokeProps.Builder = + software.amazon.awscdk.services.stepfunctions.tasks.HttpInvokeProps.builder() + + /** + * @param apiEndpoint The API endpoint to call, relative to `apiRoot`. + */ + override fun apiEndpoint(apiEndpoint: TaskInput) { + cdkBuilder.apiEndpoint(apiEndpoint.let(TaskInput::unwrap)) + } + + /** + * @param apiRoot Permissions are granted to call all resources under this path. + */ + override fun apiRoot(apiRoot: String) { + cdkBuilder.apiRoot(apiRoot) + } + + /** + * @param body The body to send to the HTTP endpoint. + */ + override fun body(body: TaskInput) { + cdkBuilder.body(body.let(TaskInput::unwrap)) + } + + /** + * @param comment An optional description for this state. + */ + override fun comment(comment: String) { + cdkBuilder.comment(comment) + } + + /** + * @param connection The EventBridge Connection to use for authentication. + */ + override fun connection(connection: IConnection) { + cdkBuilder.connection(connection.let(IConnection::unwrap)) + } + + /** + * @param credentials Credentials for an IAM Role that the State Machine assumes for executing + * the task. + * This enables cross-account resource invocations. + */ + override fun credentials(credentials: Credentials) { + cdkBuilder.credentials(credentials.let(Credentials::unwrap)) + } + + /** + * @param credentials Credentials for an IAM Role that the State Machine assumes for executing + * the task. + * This enables cross-account resource invocations. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("d65697e107bf3053506f39639a850d83c410356c26db3577cc5a2781530944ea") + override fun credentials(credentials: Credentials.Builder.() -> Unit): Unit = + credentials(Credentials(credentials)) + + /** + * @param headers The headers to send to the HTTP endpoint. + */ + override fun headers(headers: TaskInput) { + cdkBuilder.headers(headers.let(TaskInput::unwrap)) + } + + /** + * @param heartbeat Timeout for the heartbeat. + * @deprecated use `heartbeatTimeout` + */ + @Deprecated(message = "deprecated in CDK") + override fun heartbeat(heartbeat: Duration) { + cdkBuilder.heartbeat(heartbeat.let(Duration::unwrap)) + } + + /** + * @param heartbeatTimeout Timeout for the heartbeat. + * [disable-awslint:duration-prop-type] is needed because all props interface in + * aws-stepfunctions-tasks extend this interface + */ + override fun heartbeatTimeout(heartbeatTimeout: Timeout) { + cdkBuilder.heartbeatTimeout(heartbeatTimeout.let(Timeout::unwrap)) + } + + /** + * @param inputPath JSONPath expression to select part of the state to be the input to this + * state. + * May also be the special value JsonPath.DISCARD, which will cause the effective + * input to be the empty object {}. + */ + override fun inputPath(inputPath: String) { + cdkBuilder.inputPath(inputPath) + } + + /** + * @param integrationPattern AWS Step Functions integrates with services directly in the Amazon + * States Language. + * You can control these AWS services using service integration patterns. + * + * Depending on the AWS Service, the Service Integration Pattern availability will vary. + */ + override fun integrationPattern(integrationPattern: IntegrationPattern) { + cdkBuilder.integrationPattern(integrationPattern.let(IntegrationPattern::unwrap)) + } + + /** + * @param method The HTTP method to use. + */ + override fun method(method: TaskInput) { + cdkBuilder.method(method.let(TaskInput::unwrap)) + } + + /** + * @param outputPath JSONPath expression to select select a portion of the state output to pass + * to the next state. + * May also be the special value JsonPath.DISCARD, which will cause the effective + * output to be the empty object {}. + */ + override fun outputPath(outputPath: String) { + cdkBuilder.outputPath(outputPath) + } + + /** + * @param queryStringParameters The query string parameters to send to the HTTP endpoint. + */ + override fun queryStringParameters(queryStringParameters: TaskInput) { + cdkBuilder.queryStringParameters(queryStringParameters.let(TaskInput::unwrap)) + } + + /** + * @param resultPath JSONPath expression to indicate where to inject the state's output. + * May also be the special value JsonPath.DISCARD, which will cause the state's + * input to become its output. + */ + override fun resultPath(resultPath: String) { + cdkBuilder.resultPath(resultPath) + } + + /** + * @param resultSelector The JSON that will replace the state's raw result and become the + * effective result before ResultPath is applied. + * You can use ResultSelector to create a payload with values that are static + * or selected from the state's raw result. + */ + override fun resultSelector(resultSelector: Map) { + cdkBuilder.resultSelector(resultSelector.mapValues{CdkObjectWrappers.unwrap(it.value)}) + } + + /** + * @param stateName Optional name for this state. + */ + override fun stateName(stateName: String) { + cdkBuilder.stateName(stateName) + } + + /** + * @param taskTimeout Timeout for the task. + * [disable-awslint:duration-prop-type] is needed because all props interface in + * aws-stepfunctions-tasks extend this interface + */ + override fun taskTimeout(taskTimeout: Timeout) { + cdkBuilder.taskTimeout(taskTimeout.let(Timeout::unwrap)) + } + + /** + * @param timeout Timeout for the task. + * @deprecated use `taskTimeout` + */ + @Deprecated(message = "deprecated in CDK") + override fun timeout(timeout: Duration) { + cdkBuilder.timeout(timeout.let(Duration::unwrap)) + } + + /** + * @param urlEncodingFormat Determines whether to apply URL encoding to the request body, and + * which array encoding format to use. + * `URLEncodingFormat.NONE` passes the JSON-serialized `RequestBody` field as the HTTP request + * body. + * Otherwise, the HTTP request body is the URL-encoded form data of the `RequestBody` field + * using the + * specified array encoding format, and the `Content-Type` header is set to + * `application/x-www-form-urlencoded`. + */ + override fun urlEncodingFormat(urlEncodingFormat: URLEncodingFormat) { + cdkBuilder.urlEncodingFormat(urlEncodingFormat.let(URLEncodingFormat::unwrap)) + } + + public fun build(): software.amazon.awscdk.services.stepfunctions.tasks.HttpInvokeProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.stepfunctions.tasks.HttpInvokeProps, + ) : CdkObject(cdkObject), HttpInvokeProps { + /** + * The API endpoint to call, relative to `apiRoot`. + * + * Example: + * + * ``` + * TaskInput.fromText("path/to/resource"); + * ``` + */ + override fun apiEndpoint(): TaskInput = unwrap(this).getApiEndpoint().let(TaskInput::wrap) + + /** + * Permissions are granted to call all resources under this path. + * + * Example: + * + * ``` + * "https://api.example.com"; + * ``` + */ + override fun apiRoot(): String = unwrap(this).getApiRoot() + + /** + * The body to send to the HTTP endpoint. + * + * Default: - No body is sent with the request. + */ + override fun body(): TaskInput? = unwrap(this).getBody()?.let(TaskInput::wrap) + + /** + * An optional description for this state. + * + * Default: - No comment + */ + override fun comment(): String? = unwrap(this).getComment() + + /** + * The EventBridge Connection to use for authentication. + */ + override fun connection(): IConnection = unwrap(this).getConnection().let(IConnection::wrap) + + /** + * Credentials for an IAM Role that the State Machine assumes for executing the task. + * + * This enables cross-account resource invocations. + * + * Default: - None (Task is executed using the State Machine's execution role) + * + * [Documentation](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-access-cross-acct-resources.html) + */ + override fun credentials(): Credentials? = unwrap(this).getCredentials()?.let(Credentials::wrap) + + /** + * The headers to send to the HTTP endpoint. + * + * Default: - No additional headers are added to the request. + * + * Example: + * + * ``` + * TaskInput.fromObject(Map.of("Content-Type", "application/json")); + * ``` + */ + override fun headers(): TaskInput? = unwrap(this).getHeaders()?.let(TaskInput::wrap) + + /** + * (deprecated) Timeout for the heartbeat. + * + * Default: - None + * + * @deprecated use `heartbeatTimeout` + */ + @Deprecated(message = "deprecated in CDK") + override fun heartbeat(): Duration? = unwrap(this).getHeartbeat()?.let(Duration::wrap) + + /** + * Timeout for the heartbeat. + * + * [disable-awslint:duration-prop-type] is needed because all props interface in + * aws-stepfunctions-tasks extend this interface + * + * Default: - None + */ + override fun heartbeatTimeout(): Timeout? = + unwrap(this).getHeartbeatTimeout()?.let(Timeout::wrap) + + /** + * JSONPath expression to select part of the state to be the input to this state. + * + * May also be the special value JsonPath.DISCARD, which will cause the effective + * input to be the empty object {}. + * + * Default: - The entire task input (JSON path '$') + */ + override fun inputPath(): String? = unwrap(this).getInputPath() + + /** + * AWS Step Functions integrates with services directly in the Amazon States Language. + * + * You can control these AWS services using service integration patterns. + * + * Depending on the AWS Service, the Service Integration Pattern availability will vary. + * + * Default: - `IntegrationPattern.REQUEST_RESPONSE` for most tasks. + * `IntegrationPattern.RUN_JOB` for the following exceptions: + * `BatchSubmitJob`, `EmrAddStep`, `EmrCreateCluster`, `EmrTerminationCluster`, and + * `EmrContainersStartJobRun`. + * + * [Documentation](https://docs.aws.amazon.com/step-functions/latest/dg/connect-supported-services.html) + */ + override fun integrationPattern(): IntegrationPattern? = + unwrap(this).getIntegrationPattern()?.let(IntegrationPattern::wrap) + + /** + * The HTTP method to use. + * + * Example: + * + * ``` + * TaskInput.fromText("GET"); + * ``` + */ + override fun method(): TaskInput = unwrap(this).getMethod().let(TaskInput::wrap) + + /** + * JSONPath expression to select select a portion of the state output to pass to the next state. + * + * May also be the special value JsonPath.DISCARD, which will cause the effective + * output to be the empty object {}. + * + * Default: - The entire JSON node determined by the state input, the task result, + * and resultPath is passed to the next state (JSON path '$') + */ + override fun outputPath(): String? = unwrap(this).getOutputPath() + + /** + * The query string parameters to send to the HTTP endpoint. + * + * Default: - No query string parameters are sent in the request. + */ + override fun queryStringParameters(): TaskInput? = + unwrap(this).getQueryStringParameters()?.let(TaskInput::wrap) + + /** + * JSONPath expression to indicate where to inject the state's output. + * + * May also be the special value JsonPath.DISCARD, which will cause the state's + * input to become its output. + * + * Default: - Replaces the entire input with the result (JSON path '$') + */ + override fun resultPath(): String? = unwrap(this).getResultPath() + + /** + * The JSON that will replace the state's raw result and become the effective result before + * ResultPath is applied. + * + * You can use ResultSelector to create a payload with values that are static + * or selected from the state's raw result. + * + * Default: - None + * + * [Documentation](https://docs.aws.amazon.com/step-functions/latest/dg/input-output-inputpath-params.html#input-output-resultselector) + */ + override fun resultSelector(): Map = unwrap(this).getResultSelector() ?: emptyMap() + + /** + * Optional name for this state. + * + * Default: - The construct ID will be used as state name + */ + override fun stateName(): String? = unwrap(this).getStateName() + + /** + * Timeout for the task. + * + * [disable-awslint:duration-prop-type] is needed because all props interface in + * aws-stepfunctions-tasks extend this interface + * + * Default: - None + */ + override fun taskTimeout(): Timeout? = unwrap(this).getTaskTimeout()?.let(Timeout::wrap) + + /** + * (deprecated) Timeout for the task. + * + * Default: - None + * + * @deprecated use `taskTimeout` + */ + @Deprecated(message = "deprecated in CDK") + override fun timeout(): Duration? = unwrap(this).getTimeout()?.let(Duration::wrap) + + /** + * Determines whether to apply URL encoding to the request body, and which array encoding format + * to use. + * + * `URLEncodingFormat.NONE` passes the JSON-serialized `RequestBody` field as the HTTP request + * body. + * Otherwise, the HTTP request body is the URL-encoded form data of the `RequestBody` field + * using the + * specified array encoding format, and the `Content-Type` header is set to + * `application/x-www-form-urlencoded`. + * + * Default: - URLEncodingFormat.NONE + */ + override fun urlEncodingFormat(): URLEncodingFormat? = + unwrap(this).getUrlEncodingFormat()?.let(URLEncodingFormat::wrap) + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): HttpInvokeProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.stepfunctions.tasks.HttpInvokeProps): + HttpInvokeProps = CdkObjectWrappers.wrap(cdkObject) as? HttpInvokeProps ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: HttpInvokeProps): + software.amazon.awscdk.services.stepfunctions.tasks.HttpInvokeProps = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.stepfunctions.tasks.HttpInvokeProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/stepfunctions/tasks/Monitoring.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/stepfunctions/tasks/Monitoring.kt index a525bd31e8..502f98a87e 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/stepfunctions/tasks/Monitoring.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/stepfunctions/tasks/Monitoring.kt @@ -76,7 +76,7 @@ public interface Monitoring { * * Default: true */ - public fun persistentAppUi(): Boolean? = unwrap(this).getPersistentAppUI() + public fun persistentAppUI(): Boolean? = unwrap(this).getPersistentAppUI() /** * A builder for [Monitoring] @@ -205,7 +205,7 @@ public interface Monitoring { * * Default: true */ - override fun persistentAppUi(): Boolean? = unwrap(this).getPersistentAppUI() + override fun persistentAppUI(): Boolean? = unwrap(this).getPersistentAppUI() } public companion object { diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/stepfunctions/tasks/URLEncodingFormat.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/stepfunctions/tasks/URLEncodingFormat.kt new file mode 100644 index 0000000000..ba40bce7df --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/stepfunctions/tasks/URLEncodingFormat.kt @@ -0,0 +1,37 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.stepfunctions.tasks + +public enum class URLEncodingFormat( + private val cdkObject: software.amazon.awscdk.services.stepfunctions.tasks.URLEncodingFormat, +) { + BRACKETS(software.amazon.awscdk.services.stepfunctions.tasks.URLEncodingFormat.BRACKETS), + COMMAS(software.amazon.awscdk.services.stepfunctions.tasks.URLEncodingFormat.COMMAS), + DEFAULT(software.amazon.awscdk.services.stepfunctions.tasks.URLEncodingFormat.DEFAULT), + INDICES(software.amazon.awscdk.services.stepfunctions.tasks.URLEncodingFormat.INDICES), + NONE(software.amazon.awscdk.services.stepfunctions.tasks.URLEncodingFormat.NONE), + REPEAT(software.amazon.awscdk.services.stepfunctions.tasks.URLEncodingFormat.REPEAT), + ; + + public companion object { + internal + fun wrap(cdkObject: software.amazon.awscdk.services.stepfunctions.tasks.URLEncodingFormat): + URLEncodingFormat = when (cdkObject) { + software.amazon.awscdk.services.stepfunctions.tasks.URLEncodingFormat.BRACKETS -> + URLEncodingFormat.BRACKETS + software.amazon.awscdk.services.stepfunctions.tasks.URLEncodingFormat.COMMAS -> + URLEncodingFormat.COMMAS + software.amazon.awscdk.services.stepfunctions.tasks.URLEncodingFormat.DEFAULT -> + URLEncodingFormat.DEFAULT + software.amazon.awscdk.services.stepfunctions.tasks.URLEncodingFormat.INDICES -> + URLEncodingFormat.INDICES + software.amazon.awscdk.services.stepfunctions.tasks.URLEncodingFormat.NONE -> + URLEncodingFormat.NONE + software.amazon.awscdk.services.stepfunctions.tasks.URLEncodingFormat.REPEAT -> + URLEncodingFormat.REPEAT + } + + internal fun unwrap(wrapped: URLEncodingFormat): + software.amazon.awscdk.services.stepfunctions.tasks.URLEncodingFormat = wrapped.cdkObject + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/synthetics/Runtime.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/synthetics/Runtime.kt index 83fd0be35c..4e08f5177c 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/synthetics/Runtime.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/synthetics/Runtime.kt @@ -78,6 +78,9 @@ public open class Runtime( public val SYNTHETICS_NODEJS_PUPPETEER_6_2: Runtime = Runtime.wrap(software.amazon.awscdk.services.synthetics.Runtime.SYNTHETICS_NODEJS_PUPPETEER_6_2) + public val SYNTHETICS_NODEJS_PUPPETEER_7_0: Runtime = + Runtime.wrap(software.amazon.awscdk.services.synthetics.Runtime.SYNTHETICS_NODEJS_PUPPETEER_7_0) + public val SYNTHETICS_PYTHON_SELENIUM_1_0: Runtime = Runtime.wrap(software.amazon.awscdk.services.synthetics.Runtime.SYNTHETICS_PYTHON_SELENIUM_1_0) @@ -96,6 +99,9 @@ public open class Runtime( public val SYNTHETICS_PYTHON_SELENIUM_2_1: Runtime = Runtime.wrap(software.amazon.awscdk.services.synthetics.Runtime.SYNTHETICS_PYTHON_SELENIUM_2_1) + public val SYNTHETICS_PYTHON_SELENIUM_3_0: Runtime = + Runtime.wrap(software.amazon.awscdk.services.synthetics.Runtime.SYNTHETICS_PYTHON_SELENIUM_3_0) + internal fun wrap(cdkObject: software.amazon.awscdk.services.synthetics.Runtime): Runtime = Runtime(cdkObject) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/timestream/CfnInfluxDBInstance.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/timestream/CfnInfluxDBInstance.kt new file mode 100644 index 0000000000..69b9b43482 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/timestream/CfnInfluxDBInstance.kt @@ -0,0 +1,1132 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.timestream + +import io.cloudshiftdev.awscdk.CfnResource +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IInspectable +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.ITaggableV2 +import io.cloudshiftdev.awscdk.TagManager +import io.cloudshiftdev.awscdk.TreeInspector +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.Boolean +import kotlin.Number +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.jvm.JvmName +import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct +import software.constructs.Construct as SoftwareConstructsConstruct + +/** + * A DB instance is an isolated database environment running in the cloud. + * + * It is the basic building block of Amazon Timestream for InfluxDB. A DB instance can contain + * multiple user-created databases (or organizations and buckets for the case of InfluxDb 2.x + * databases), and can be accessed using the same client tools and applications you might use to access + * a standalone self-managed InfluxDB instance. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.timestream.*; + * CfnInfluxDBInstance cfnInfluxDBInstance = CfnInfluxDBInstance.Builder.create(this, + * "MyCfnInfluxDBInstance") + * .allocatedStorage(123) + * .bucket("bucket") + * .dbInstanceType("dbInstanceType") + * .dbParameterGroupIdentifier("dbParameterGroupIdentifier") + * .dbStorageType("dbStorageType") + * .deploymentType("deploymentType") + * .logDeliveryConfiguration(LogDeliveryConfigurationProperty.builder() + * .s3Configuration(S3ConfigurationProperty.builder() + * .bucketName("bucketName") + * .enabled(false) + * .build()) + * .build()) + * .name("name") + * .organization("organization") + * .password("password") + * .publiclyAccessible(false) + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .username("username") + * .vpcSecurityGroupIds(List.of("vpcSecurityGroupIds")) + * .vpcSubnetIds(List.of("vpcSubnetIds")) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html) + */ +public open class CfnInfluxDBInstance( + cdkObject: software.amazon.awscdk.services.timestream.CfnInfluxDBInstance, +) : CfnResource(cdkObject), IInspectable, ITaggableV2 { + public constructor(scope: CloudshiftdevConstructsConstruct, id: String) : + this(software.amazon.awscdk.services.timestream.CfnInfluxDBInstance(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnInfluxDBInstanceProps, + ) : + this(software.amazon.awscdk.services.timestream.CfnInfluxDBInstance(scope.let(CloudshiftdevConstructsConstruct::unwrap), + id, props.let(CfnInfluxDBInstanceProps::unwrap)) + ) + + public constructor( + scope: CloudshiftdevConstructsConstruct, + id: String, + props: CfnInfluxDBInstanceProps.Builder.() -> Unit, + ) : this(scope, id, CfnInfluxDBInstanceProps(props) + ) + + /** + * The amount of storage to allocate for your DB storage type in GiB (gibibytes). + */ + public open fun allocatedStorage(): Number? = unwrap(this).getAllocatedStorage() + + /** + * The amount of storage to allocate for your DB storage type in GiB (gibibytes). + */ + public open fun allocatedStorage(`value`: Number) { + unwrap(this).setAllocatedStorage(`value`) + } + + /** + * The Amazon Resource Name (ARN) of the DB instance. + */ + public open fun attrArn(): String = unwrap(this).getAttrArn() + + /** + * The Availability Zone in which the DB instance resides. + */ + public open fun attrAvailabilityZone(): String = unwrap(this).getAttrAvailabilityZone() + + /** + * The endpoint used to connect to InfluxDB. + * + * The default InfluxDB port is 8086. + */ + public open fun attrEndpoint(): String = unwrap(this).getAttrEndpoint() + + /** + * A service-generated unique identifier. + */ + public open fun attrId(): String = unwrap(this).getAttrId() + + /** + * The Amazon Resource Name (ARN) of the Amazon Secrets Manager secret containing the initial + * InfluxDB authorization parameters. + * + * The secret value is a JSON formatted key-value pair holding InfluxDB authorization values: + * organization, bucket, username, and password. + */ + public open fun attrInfluxAuthParametersSecretArn(): String = + unwrap(this).getAttrInfluxAuthParametersSecretArn() + + /** + * Describes an Availability Zone in which the InfluxDB instance is located. + */ + public open fun attrSecondaryAvailabilityZone(): String = + unwrap(this).getAttrSecondaryAvailabilityZone() + + /** + * The status of the DB instance. + * + * Valid Values: `CREATING` | `AVAILABLE` | `DELETING` | `MODIFYING` | `UPDATING` | `DELETED` | + * `FAILED` + */ + public open fun attrStatus(): String = unwrap(this).getAttrStatus() + + /** + * The name of the initial InfluxDB bucket. + */ + public open fun bucket(): String? = unwrap(this).getBucket() + + /** + * The name of the initial InfluxDB bucket. + */ + public open fun bucket(`value`: String) { + unwrap(this).setBucket(`value`) + } + + /** + * Tag Manager which manages the tags for this resource. + */ + public override fun cdkTagManager(): TagManager = + unwrap(this).getCdkTagManager().let(TagManager::wrap) + + /** + * The Timestream for InfluxDB DB instance type to run on. + */ + public open fun dbInstanceType(): String? = unwrap(this).getDbInstanceType() + + /** + * The Timestream for InfluxDB DB instance type to run on. + */ + public open fun dbInstanceType(`value`: String) { + unwrap(this).setDbInstanceType(`value`) + } + + /** + * The name or id of the DB parameter group to assign to your DB instance. + */ + public open fun dbParameterGroupIdentifier(): String? = + unwrap(this).getDbParameterGroupIdentifier() + + /** + * The name or id of the DB parameter group to assign to your DB instance. + */ + public open fun dbParameterGroupIdentifier(`value`: String) { + unwrap(this).setDbParameterGroupIdentifier(`value`) + } + + /** + * The Timestream for InfluxDB DB storage type to read and write InfluxDB data. + */ + public open fun dbStorageType(): String? = unwrap(this).getDbStorageType() + + /** + * The Timestream for InfluxDB DB storage type to read and write InfluxDB data. + */ + public open fun dbStorageType(`value`: String) { + unwrap(this).setDbStorageType(`value`) + } + + /** + * Specifies whether the Timestream for InfluxDB is deployed as Single-AZ or with a MultiAZ + * Standby for High availability. + */ + public open fun deploymentType(): String? = unwrap(this).getDeploymentType() + + /** + * Specifies whether the Timestream for InfluxDB is deployed as Single-AZ or with a MultiAZ + * Standby for High availability. + */ + public open fun deploymentType(`value`: String) { + unwrap(this).setDeploymentType(`value`) + } + + /** + * Examines the CloudFormation resource and discloses attributes. + * + * @param inspector tree inspector to collect and process attributes. + */ + public override fun inspect(inspector: TreeInspector) { + unwrap(this).inspect(inspector.let(TreeInspector::unwrap)) + } + + /** + * Configuration for sending InfluxDB engine logs to a specified S3 bucket. + */ + public open fun logDeliveryConfiguration(): Any? = unwrap(this).getLogDeliveryConfiguration() + + /** + * Configuration for sending InfluxDB engine logs to a specified S3 bucket. + */ + public open fun logDeliveryConfiguration(`value`: IResolvable) { + unwrap(this).setLogDeliveryConfiguration(`value`.let(IResolvable::unwrap)) + } + + /** + * Configuration for sending InfluxDB engine logs to a specified S3 bucket. + */ + public open fun logDeliveryConfiguration(`value`: LogDeliveryConfigurationProperty) { + unwrap(this).setLogDeliveryConfiguration(`value`.let(LogDeliveryConfigurationProperty::unwrap)) + } + + /** + * Configuration for sending InfluxDB engine logs to a specified S3 bucket. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("691015c1f5050ac16f1295c3c5f142f2d89459547a6702949be8c89a8db3b94d") + public open + fun logDeliveryConfiguration(`value`: LogDeliveryConfigurationProperty.Builder.() -> Unit): + Unit = logDeliveryConfiguration(LogDeliveryConfigurationProperty(`value`)) + + /** + * The name that uniquely identifies the DB instance when interacting with the Amazon Timestream + * for InfluxDB API and CLI commands. + */ + public open fun name(): String? = unwrap(this).getName() + + /** + * The name that uniquely identifies the DB instance when interacting with the Amazon Timestream + * for InfluxDB API and CLI commands. + */ + public open fun name(`value`: String) { + unwrap(this).setName(`value`) + } + + /** + * The name of the initial organization for the initial admin user in InfluxDB. + */ + public open fun organization(): String? = unwrap(this).getOrganization() + + /** + * The name of the initial organization for the initial admin user in InfluxDB. + */ + public open fun organization(`value`: String) { + unwrap(this).setOrganization(`value`) + } + + /** + * The password of the initial admin user created in InfluxDB. + */ + public open fun password(): String? = unwrap(this).getPassword() + + /** + * The password of the initial admin user created in InfluxDB. + */ + public open fun password(`value`: String) { + unwrap(this).setPassword(`value`) + } + + /** + * Configures the DB instance with a public IP to facilitate access. + */ + public open fun publiclyAccessible(): Any? = unwrap(this).getPubliclyAccessible() + + /** + * Configures the DB instance with a public IP to facilitate access. + */ + public open fun publiclyAccessible(`value`: Boolean) { + unwrap(this).setPubliclyAccessible(`value`) + } + + /** + * Configures the DB instance with a public IP to facilitate access. + */ + public open fun publiclyAccessible(`value`: IResolvable) { + unwrap(this).setPubliclyAccessible(`value`.let(IResolvable::unwrap)) + } + + /** + * A list of key-value pairs to associate with the DB instance. + */ + public open fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * A list of key-value pairs to associate with the DB instance. + */ + public open fun tags(`value`: List) { + unwrap(this).setTags(`value`.map(CfnTag::unwrap)) + } + + /** + * A list of key-value pairs to associate with the DB instance. + */ + public open fun tags(vararg `value`: CfnTag): Unit = tags(`value`.toList()) + + /** + * The username of the initial admin user created in InfluxDB. + */ + public open fun username(): String? = unwrap(this).getUsername() + + /** + * The username of the initial admin user created in InfluxDB. + */ + public open fun username(`value`: String) { + unwrap(this).setUsername(`value`) + } + + /** + * A list of VPC security group IDs to associate with the DB instance. + */ + public open fun vpcSecurityGroupIds(): List = unwrap(this).getVpcSecurityGroupIds() ?: + emptyList() + + /** + * A list of VPC security group IDs to associate with the DB instance. + */ + public open fun vpcSecurityGroupIds(`value`: List) { + unwrap(this).setVpcSecurityGroupIds(`value`) + } + + /** + * A list of VPC security group IDs to associate with the DB instance. + */ + public open fun vpcSecurityGroupIds(vararg `value`: String): Unit = + vpcSecurityGroupIds(`value`.toList()) + + /** + * A list of VPC subnet IDs to associate with the DB instance. + */ + public open fun vpcSubnetIds(): List = unwrap(this).getVpcSubnetIds() ?: emptyList() + + /** + * A list of VPC subnet IDs to associate with the DB instance. + */ + public open fun vpcSubnetIds(`value`: List) { + unwrap(this).setVpcSubnetIds(`value`) + } + + /** + * A list of VPC subnet IDs to associate with the DB instance. + */ + public open fun vpcSubnetIds(vararg `value`: String): Unit = vpcSubnetIds(`value`.toList()) + + /** + * A fluent builder for [io.cloudshiftdev.awscdk.services.timestream.CfnInfluxDBInstance]. + */ + @CdkDslMarker + public interface Builder { + /** + * The amount of storage to allocate for your DB storage type in GiB (gibibytes). + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-allocatedstorage) + * @param allocatedStorage The amount of storage to allocate for your DB storage type in GiB + * (gibibytes). + */ + public fun allocatedStorage(allocatedStorage: Number) + + /** + * The name of the initial InfluxDB bucket. + * + * All InfluxDB data is stored in a bucket. A bucket combines the concept of a database and a + * retention period (the duration of time that each data point persists). A bucket belongs to an + * organization. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-bucket) + * @param bucket The name of the initial InfluxDB bucket. + */ + public fun bucket(bucket: String) + + /** + * The Timestream for InfluxDB DB instance type to run on. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-dbinstancetype) + * @param dbInstanceType The Timestream for InfluxDB DB instance type to run on. + */ + public fun dbInstanceType(dbInstanceType: String) + + /** + * The name or id of the DB parameter group to assign to your DB instance. + * + * DB parameter groups specify how the database is configured. For example, DB parameter groups + * can specify the limit for query concurrency. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-dbparametergroupidentifier) + * @param dbParameterGroupIdentifier The name or id of the DB parameter group to assign to your + * DB instance. + */ + public fun dbParameterGroupIdentifier(dbParameterGroupIdentifier: String) + + /** + * The Timestream for InfluxDB DB storage type to read and write InfluxDB data. + * + * You can choose between 3 different types of provisioned Influx IOPS included storage + * according to your workloads requirements: + * + * * Influx IO Included 3000 IOPS + * * Influx IO Included 12000 IOPS + * * Influx IO Included 16000 IOPS + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-dbstoragetype) + * @param dbStorageType The Timestream for InfluxDB DB storage type to read and write InfluxDB + * data. + */ + public fun dbStorageType(dbStorageType: String) + + /** + * Specifies whether the Timestream for InfluxDB is deployed as Single-AZ or with a MultiAZ + * Standby for High availability. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-deploymenttype) + * @param deploymentType Specifies whether the Timestream for InfluxDB is deployed as Single-AZ + * or with a MultiAZ Standby for High availability. + */ + public fun deploymentType(deploymentType: String) + + /** + * Configuration for sending InfluxDB engine logs to a specified S3 bucket. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-logdeliveryconfiguration) + * @param logDeliveryConfiguration Configuration for sending InfluxDB engine logs to a specified + * S3 bucket. + */ + public fun logDeliveryConfiguration(logDeliveryConfiguration: IResolvable) + + /** + * Configuration for sending InfluxDB engine logs to a specified S3 bucket. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-logdeliveryconfiguration) + * @param logDeliveryConfiguration Configuration for sending InfluxDB engine logs to a specified + * S3 bucket. + */ + public fun logDeliveryConfiguration(logDeliveryConfiguration: LogDeliveryConfigurationProperty) + + /** + * Configuration for sending InfluxDB engine logs to a specified S3 bucket. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-logdeliveryconfiguration) + * @param logDeliveryConfiguration Configuration for sending InfluxDB engine logs to a specified + * S3 bucket. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("071edc41ae4f860f1208b59587cad1acf9ab2ef97bf8c693921efec85e8f4b5e") + public + fun logDeliveryConfiguration(logDeliveryConfiguration: LogDeliveryConfigurationProperty.Builder.() -> Unit) + + /** + * The name that uniquely identifies the DB instance when interacting with the Amazon Timestream + * for InfluxDB API and CLI commands. + * + * This name will also be a prefix included in the endpoint. DB instance names must be unique + * per customer and per region. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-name) + * @param name The name that uniquely identifies the DB instance when interacting with the + * Amazon Timestream for InfluxDB API and CLI commands. + */ + public fun name(name: String) + + /** + * The name of the initial organization for the initial admin user in InfluxDB. + * + * An InfluxDB organization is a workspace for a group of users. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-organization) + * @param organization The name of the initial organization for the initial admin user in + * InfluxDB. + */ + public fun organization(organization: String) + + /** + * The password of the initial admin user created in InfluxDB. + * + * This password will allow you to access the InfluxDB UI to perform various administrative + * tasks and also use the InfluxDB CLI to create an operator token. These attributes will be stored + * in a Secret created in Amazon SecretManager in your account. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-password) + * @param password The password of the initial admin user created in InfluxDB. + */ + public fun password(password: String) + + /** + * Configures the DB instance with a public IP to facilitate access. + * + * Default: - false + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-publiclyaccessible) + * @param publiclyAccessible Configures the DB instance with a public IP to facilitate access. + */ + public fun publiclyAccessible(publiclyAccessible: Boolean) + + /** + * Configures the DB instance with a public IP to facilitate access. + * + * Default: - false + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-publiclyaccessible) + * @param publiclyAccessible Configures the DB instance with a public IP to facilitate access. + */ + public fun publiclyAccessible(publiclyAccessible: IResolvable) + + /** + * A list of key-value pairs to associate with the DB instance. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-tags) + * @param tags A list of key-value pairs to associate with the DB instance. + */ + public fun tags(tags: List) + + /** + * A list of key-value pairs to associate with the DB instance. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-tags) + * @param tags A list of key-value pairs to associate with the DB instance. + */ + public fun tags(vararg tags: CfnTag) + + /** + * The username of the initial admin user created in InfluxDB. + * + * Must start with a letter and can't end with a hyphen or contain two consecutive hyphens. For + * example, my-user1. This username will allow you to access the InfluxDB UI to perform various + * administrative tasks and also use the InfluxDB CLI to create an operator token. These attributes + * will be stored in a Secret created in Amazon Secrets Manager in your account. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-username) + * @param username The username of the initial admin user created in InfluxDB. + */ + public fun username(username: String) + + /** + * A list of VPC security group IDs to associate with the DB instance. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-vpcsecuritygroupids) + * @param vpcSecurityGroupIds A list of VPC security group IDs to associate with the DB + * instance. + */ + public fun vpcSecurityGroupIds(vpcSecurityGroupIds: List) + + /** + * A list of VPC security group IDs to associate with the DB instance. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-vpcsecuritygroupids) + * @param vpcSecurityGroupIds A list of VPC security group IDs to associate with the DB + * instance. + */ + public fun vpcSecurityGroupIds(vararg vpcSecurityGroupIds: String) + + /** + * A list of VPC subnet IDs to associate with the DB instance. + * + * Provide at least two VPC subnet IDs in different availability zones when deploying with a + * Multi-AZ standby. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-vpcsubnetids) + * @param vpcSubnetIds A list of VPC subnet IDs to associate with the DB instance. + */ + public fun vpcSubnetIds(vpcSubnetIds: List) + + /** + * A list of VPC subnet IDs to associate with the DB instance. + * + * Provide at least two VPC subnet IDs in different availability zones when deploying with a + * Multi-AZ standby. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-vpcsubnetids) + * @param vpcSubnetIds A list of VPC subnet IDs to associate with the DB instance. + */ + public fun vpcSubnetIds(vararg vpcSubnetIds: String) + } + + private class BuilderImpl( + scope: SoftwareConstructsConstruct, + id: String, + ) : Builder { + private val cdkBuilder: software.amazon.awscdk.services.timestream.CfnInfluxDBInstance.Builder = + software.amazon.awscdk.services.timestream.CfnInfluxDBInstance.Builder.create(scope, id) + + /** + * The amount of storage to allocate for your DB storage type in GiB (gibibytes). + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-allocatedstorage) + * @param allocatedStorage The amount of storage to allocate for your DB storage type in GiB + * (gibibytes). + */ + override fun allocatedStorage(allocatedStorage: Number) { + cdkBuilder.allocatedStorage(allocatedStorage) + } + + /** + * The name of the initial InfluxDB bucket. + * + * All InfluxDB data is stored in a bucket. A bucket combines the concept of a database and a + * retention period (the duration of time that each data point persists). A bucket belongs to an + * organization. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-bucket) + * @param bucket The name of the initial InfluxDB bucket. + */ + override fun bucket(bucket: String) { + cdkBuilder.bucket(bucket) + } + + /** + * The Timestream for InfluxDB DB instance type to run on. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-dbinstancetype) + * @param dbInstanceType The Timestream for InfluxDB DB instance type to run on. + */ + override fun dbInstanceType(dbInstanceType: String) { + cdkBuilder.dbInstanceType(dbInstanceType) + } + + /** + * The name or id of the DB parameter group to assign to your DB instance. + * + * DB parameter groups specify how the database is configured. For example, DB parameter groups + * can specify the limit for query concurrency. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-dbparametergroupidentifier) + * @param dbParameterGroupIdentifier The name or id of the DB parameter group to assign to your + * DB instance. + */ + override fun dbParameterGroupIdentifier(dbParameterGroupIdentifier: String) { + cdkBuilder.dbParameterGroupIdentifier(dbParameterGroupIdentifier) + } + + /** + * The Timestream for InfluxDB DB storage type to read and write InfluxDB data. + * + * You can choose between 3 different types of provisioned Influx IOPS included storage + * according to your workloads requirements: + * + * * Influx IO Included 3000 IOPS + * * Influx IO Included 12000 IOPS + * * Influx IO Included 16000 IOPS + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-dbstoragetype) + * @param dbStorageType The Timestream for InfluxDB DB storage type to read and write InfluxDB + * data. + */ + override fun dbStorageType(dbStorageType: String) { + cdkBuilder.dbStorageType(dbStorageType) + } + + /** + * Specifies whether the Timestream for InfluxDB is deployed as Single-AZ or with a MultiAZ + * Standby for High availability. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-deploymenttype) + * @param deploymentType Specifies whether the Timestream for InfluxDB is deployed as Single-AZ + * or with a MultiAZ Standby for High availability. + */ + override fun deploymentType(deploymentType: String) { + cdkBuilder.deploymentType(deploymentType) + } + + /** + * Configuration for sending InfluxDB engine logs to a specified S3 bucket. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-logdeliveryconfiguration) + * @param logDeliveryConfiguration Configuration for sending InfluxDB engine logs to a specified + * S3 bucket. + */ + override fun logDeliveryConfiguration(logDeliveryConfiguration: IResolvable) { + cdkBuilder.logDeliveryConfiguration(logDeliveryConfiguration.let(IResolvable::unwrap)) + } + + /** + * Configuration for sending InfluxDB engine logs to a specified S3 bucket. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-logdeliveryconfiguration) + * @param logDeliveryConfiguration Configuration for sending InfluxDB engine logs to a specified + * S3 bucket. + */ + override + fun logDeliveryConfiguration(logDeliveryConfiguration: LogDeliveryConfigurationProperty) { + cdkBuilder.logDeliveryConfiguration(logDeliveryConfiguration.let(LogDeliveryConfigurationProperty::unwrap)) + } + + /** + * Configuration for sending InfluxDB engine logs to a specified S3 bucket. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-logdeliveryconfiguration) + * @param logDeliveryConfiguration Configuration for sending InfluxDB engine logs to a specified + * S3 bucket. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("071edc41ae4f860f1208b59587cad1acf9ab2ef97bf8c693921efec85e8f4b5e") + override + fun logDeliveryConfiguration(logDeliveryConfiguration: LogDeliveryConfigurationProperty.Builder.() -> Unit): + Unit = logDeliveryConfiguration(LogDeliveryConfigurationProperty(logDeliveryConfiguration)) + + /** + * The name that uniquely identifies the DB instance when interacting with the Amazon Timestream + * for InfluxDB API and CLI commands. + * + * This name will also be a prefix included in the endpoint. DB instance names must be unique + * per customer and per region. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-name) + * @param name The name that uniquely identifies the DB instance when interacting with the + * Amazon Timestream for InfluxDB API and CLI commands. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + /** + * The name of the initial organization for the initial admin user in InfluxDB. + * + * An InfluxDB organization is a workspace for a group of users. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-organization) + * @param organization The name of the initial organization for the initial admin user in + * InfluxDB. + */ + override fun organization(organization: String) { + cdkBuilder.organization(organization) + } + + /** + * The password of the initial admin user created in InfluxDB. + * + * This password will allow you to access the InfluxDB UI to perform various administrative + * tasks and also use the InfluxDB CLI to create an operator token. These attributes will be stored + * in a Secret created in Amazon SecretManager in your account. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-password) + * @param password The password of the initial admin user created in InfluxDB. + */ + override fun password(password: String) { + cdkBuilder.password(password) + } + + /** + * Configures the DB instance with a public IP to facilitate access. + * + * Default: - false + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-publiclyaccessible) + * @param publiclyAccessible Configures the DB instance with a public IP to facilitate access. + */ + override fun publiclyAccessible(publiclyAccessible: Boolean) { + cdkBuilder.publiclyAccessible(publiclyAccessible) + } + + /** + * Configures the DB instance with a public IP to facilitate access. + * + * Default: - false + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-publiclyaccessible) + * @param publiclyAccessible Configures the DB instance with a public IP to facilitate access. + */ + override fun publiclyAccessible(publiclyAccessible: IResolvable) { + cdkBuilder.publiclyAccessible(publiclyAccessible.let(IResolvable::unwrap)) + } + + /** + * A list of key-value pairs to associate with the DB instance. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-tags) + * @param tags A list of key-value pairs to associate with the DB instance. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * A list of key-value pairs to associate with the DB instance. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-tags) + * @param tags A list of key-value pairs to associate with the DB instance. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + /** + * The username of the initial admin user created in InfluxDB. + * + * Must start with a letter and can't end with a hyphen or contain two consecutive hyphens. For + * example, my-user1. This username will allow you to access the InfluxDB UI to perform various + * administrative tasks and also use the InfluxDB CLI to create an operator token. These attributes + * will be stored in a Secret created in Amazon Secrets Manager in your account. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-username) + * @param username The username of the initial admin user created in InfluxDB. + */ + override fun username(username: String) { + cdkBuilder.username(username) + } + + /** + * A list of VPC security group IDs to associate with the DB instance. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-vpcsecuritygroupids) + * @param vpcSecurityGroupIds A list of VPC security group IDs to associate with the DB + * instance. + */ + override fun vpcSecurityGroupIds(vpcSecurityGroupIds: List) { + cdkBuilder.vpcSecurityGroupIds(vpcSecurityGroupIds) + } + + /** + * A list of VPC security group IDs to associate with the DB instance. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-vpcsecuritygroupids) + * @param vpcSecurityGroupIds A list of VPC security group IDs to associate with the DB + * instance. + */ + override fun vpcSecurityGroupIds(vararg vpcSecurityGroupIds: String): Unit = + vpcSecurityGroupIds(vpcSecurityGroupIds.toList()) + + /** + * A list of VPC subnet IDs to associate with the DB instance. + * + * Provide at least two VPC subnet IDs in different availability zones when deploying with a + * Multi-AZ standby. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-vpcsubnetids) + * @param vpcSubnetIds A list of VPC subnet IDs to associate with the DB instance. + */ + override fun vpcSubnetIds(vpcSubnetIds: List) { + cdkBuilder.vpcSubnetIds(vpcSubnetIds) + } + + /** + * A list of VPC subnet IDs to associate with the DB instance. + * + * Provide at least two VPC subnet IDs in different availability zones when deploying with a + * Multi-AZ standby. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-vpcsubnetids) + * @param vpcSubnetIds A list of VPC subnet IDs to associate with the DB instance. + */ + override fun vpcSubnetIds(vararg vpcSubnetIds: String): Unit = + vpcSubnetIds(vpcSubnetIds.toList()) + + public fun build(): software.amazon.awscdk.services.timestream.CfnInfluxDBInstance = + cdkBuilder.build() + } + + public companion object { + public val CFN_RESOURCE_TYPE_NAME: String = + software.amazon.awscdk.services.timestream.CfnInfluxDBInstance.CFN_RESOURCE_TYPE_NAME + + public operator fun invoke( + scope: CloudshiftdevConstructsConstruct, + id: String, + block: Builder.() -> Unit = {}, + ): CfnInfluxDBInstance { + val builderImpl = BuilderImpl(CloudshiftdevConstructsConstruct.unwrap(scope), id) + return CfnInfluxDBInstance(builderImpl.apply(block).build()) + } + + internal fun wrap(cdkObject: software.amazon.awscdk.services.timestream.CfnInfluxDBInstance): + CfnInfluxDBInstance = CfnInfluxDBInstance(cdkObject) + + internal fun unwrap(wrapped: CfnInfluxDBInstance): + software.amazon.awscdk.services.timestream.CfnInfluxDBInstance = wrapped.cdkObject as + software.amazon.awscdk.services.timestream.CfnInfluxDBInstance + } + + /** + * Configuration for sending InfluxDB engine logs to a specified S3 bucket. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.timestream.*; + * LogDeliveryConfigurationProperty logDeliveryConfigurationProperty = + * LogDeliveryConfigurationProperty.builder() + * .s3Configuration(S3ConfigurationProperty.builder() + * .bucketName("bucketName") + * .enabled(false) + * .build()) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-influxdbinstance-logdeliveryconfiguration.html) + */ + public interface LogDeliveryConfigurationProperty { + /** + * Configuration for S3 bucket log delivery. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-influxdbinstance-logdeliveryconfiguration.html#cfn-timestream-influxdbinstance-logdeliveryconfiguration-s3configuration) + */ + public fun s3Configuration(): Any + + /** + * A builder for [LogDeliveryConfigurationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param s3Configuration Configuration for S3 bucket log delivery. + */ + public fun s3Configuration(s3Configuration: IResolvable) + + /** + * @param s3Configuration Configuration for S3 bucket log delivery. + */ + public fun s3Configuration(s3Configuration: S3ConfigurationProperty) + + /** + * @param s3Configuration Configuration for S3 bucket log delivery. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("86584c730b4c4a4feaa47dc3675a07bbb364305722a730b4afa1debcd7a4a669") + public fun s3Configuration(s3Configuration: S3ConfigurationProperty.Builder.() -> Unit) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.timestream.CfnInfluxDBInstance.LogDeliveryConfigurationProperty.Builder + = + software.amazon.awscdk.services.timestream.CfnInfluxDBInstance.LogDeliveryConfigurationProperty.builder() + + /** + * @param s3Configuration Configuration for S3 bucket log delivery. + */ + override fun s3Configuration(s3Configuration: IResolvable) { + cdkBuilder.s3Configuration(s3Configuration.let(IResolvable::unwrap)) + } + + /** + * @param s3Configuration Configuration for S3 bucket log delivery. + */ + override fun s3Configuration(s3Configuration: S3ConfigurationProperty) { + cdkBuilder.s3Configuration(s3Configuration.let(S3ConfigurationProperty::unwrap)) + } + + /** + * @param s3Configuration Configuration for S3 bucket log delivery. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("86584c730b4c4a4feaa47dc3675a07bbb364305722a730b4afa1debcd7a4a669") + override fun s3Configuration(s3Configuration: S3ConfigurationProperty.Builder.() -> Unit): + Unit = s3Configuration(S3ConfigurationProperty(s3Configuration)) + + public fun build(): + software.amazon.awscdk.services.timestream.CfnInfluxDBInstance.LogDeliveryConfigurationProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.timestream.CfnInfluxDBInstance.LogDeliveryConfigurationProperty, + ) : CdkObject(cdkObject), LogDeliveryConfigurationProperty { + /** + * Configuration for S3 bucket log delivery. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-influxdbinstance-logdeliveryconfiguration.html#cfn-timestream-influxdbinstance-logdeliveryconfiguration-s3configuration) + */ + override fun s3Configuration(): Any = unwrap(this).getS3Configuration() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): LogDeliveryConfigurationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.timestream.CfnInfluxDBInstance.LogDeliveryConfigurationProperty): + LogDeliveryConfigurationProperty = CdkObjectWrappers.wrap(cdkObject) as? + LogDeliveryConfigurationProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: LogDeliveryConfigurationProperty): + software.amazon.awscdk.services.timestream.CfnInfluxDBInstance.LogDeliveryConfigurationProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.timestream.CfnInfluxDBInstance.LogDeliveryConfigurationProperty + } + } + + /** + * Configuration for S3 bucket log delivery. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.timestream.*; + * S3ConfigurationProperty s3ConfigurationProperty = S3ConfigurationProperty.builder() + * .bucketName("bucketName") + * .enabled(false) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-influxdbinstance-s3configuration.html) + */ + public interface S3ConfigurationProperty { + /** + * The bucket name of the customer S3 bucket. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-influxdbinstance-s3configuration.html#cfn-timestream-influxdbinstance-s3configuration-bucketname) + */ + public fun bucketName(): String + + /** + * Indicates whether log delivery to the S3 bucket is enabled. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-influxdbinstance-s3configuration.html#cfn-timestream-influxdbinstance-s3configuration-enabled) + */ + public fun enabled(): Any + + /** + * A builder for [S3ConfigurationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param bucketName The bucket name of the customer S3 bucket. + */ + public fun bucketName(bucketName: String) + + /** + * @param enabled Indicates whether log delivery to the S3 bucket is enabled. + */ + public fun enabled(enabled: Boolean) + + /** + * @param enabled Indicates whether log delivery to the S3 bucket is enabled. + */ + public fun enabled(enabled: IResolvable) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.timestream.CfnInfluxDBInstance.S3ConfigurationProperty.Builder + = + software.amazon.awscdk.services.timestream.CfnInfluxDBInstance.S3ConfigurationProperty.builder() + + /** + * @param bucketName The bucket name of the customer S3 bucket. + */ + override fun bucketName(bucketName: String) { + cdkBuilder.bucketName(bucketName) + } + + /** + * @param enabled Indicates whether log delivery to the S3 bucket is enabled. + */ + override fun enabled(enabled: Boolean) { + cdkBuilder.enabled(enabled) + } + + /** + * @param enabled Indicates whether log delivery to the S3 bucket is enabled. + */ + override fun enabled(enabled: IResolvable) { + cdkBuilder.enabled(enabled.let(IResolvable::unwrap)) + } + + public fun build(): + software.amazon.awscdk.services.timestream.CfnInfluxDBInstance.S3ConfigurationProperty = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.timestream.CfnInfluxDBInstance.S3ConfigurationProperty, + ) : CdkObject(cdkObject), S3ConfigurationProperty { + /** + * The bucket name of the customer S3 bucket. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-influxdbinstance-s3configuration.html#cfn-timestream-influxdbinstance-s3configuration-bucketname) + */ + override fun bucketName(): String = unwrap(this).getBucketName() + + /** + * Indicates whether log delivery to the S3 bucket is enabled. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-influxdbinstance-s3configuration.html#cfn-timestream-influxdbinstance-s3configuration-enabled) + */ + override fun enabled(): Any = unwrap(this).getEnabled() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): S3ConfigurationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.timestream.CfnInfluxDBInstance.S3ConfigurationProperty): + S3ConfigurationProperty = CdkObjectWrappers.wrap(cdkObject) as? S3ConfigurationProperty ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: S3ConfigurationProperty): + software.amazon.awscdk.services.timestream.CfnInfluxDBInstance.S3ConfigurationProperty = + (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.timestream.CfnInfluxDBInstance.S3ConfigurationProperty + } + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/timestream/CfnInfluxDBInstanceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/timestream/CfnInfluxDBInstanceProps.kt new file mode 100644 index 0000000000..fc42e295c3 --- /dev/null +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/timestream/CfnInfluxDBInstanceProps.kt @@ -0,0 +1,702 @@ +@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION") + +package io.cloudshiftdev.awscdk.services.timestream + +import io.cloudshiftdev.awscdk.CfnTag +import io.cloudshiftdev.awscdk.IResolvable +import io.cloudshiftdev.awscdk.common.CdkDslMarker +import io.cloudshiftdev.awscdk.common.CdkObject +import io.cloudshiftdev.awscdk.common.CdkObjectWrappers +import kotlin.Any +import kotlin.Boolean +import kotlin.Number +import kotlin.String +import kotlin.Unit +import kotlin.collections.List +import kotlin.jvm.JvmName + +/** + * Properties for defining a `CfnInfluxDBInstance`. + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.timestream.*; + * CfnInfluxDBInstanceProps cfnInfluxDBInstanceProps = CfnInfluxDBInstanceProps.builder() + * .allocatedStorage(123) + * .bucket("bucket") + * .dbInstanceType("dbInstanceType") + * .dbParameterGroupIdentifier("dbParameterGroupIdentifier") + * .dbStorageType("dbStorageType") + * .deploymentType("deploymentType") + * .logDeliveryConfiguration(LogDeliveryConfigurationProperty.builder() + * .s3Configuration(S3ConfigurationProperty.builder() + * .bucketName("bucketName") + * .enabled(false) + * .build()) + * .build()) + * .name("name") + * .organization("organization") + * .password("password") + * .publiclyAccessible(false) + * .tags(List.of(CfnTag.builder() + * .key("key") + * .value("value") + * .build())) + * .username("username") + * .vpcSecurityGroupIds(List.of("vpcSecurityGroupIds")) + * .vpcSubnetIds(List.of("vpcSubnetIds")) + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html) + */ +public interface CfnInfluxDBInstanceProps { + /** + * The amount of storage to allocate for your DB storage type in GiB (gibibytes). + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-allocatedstorage) + */ + public fun allocatedStorage(): Number? = unwrap(this).getAllocatedStorage() + + /** + * The name of the initial InfluxDB bucket. + * + * All InfluxDB data is stored in a bucket. A bucket combines the concept of a database and a + * retention period (the duration of time that each data point persists). A bucket belongs to an + * organization. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-bucket) + */ + public fun bucket(): String? = unwrap(this).getBucket() + + /** + * The Timestream for InfluxDB DB instance type to run on. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-dbinstancetype) + */ + public fun dbInstanceType(): String? = unwrap(this).getDbInstanceType() + + /** + * The name or id of the DB parameter group to assign to your DB instance. + * + * DB parameter groups specify how the database is configured. For example, DB parameter groups + * can specify the limit for query concurrency. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-dbparametergroupidentifier) + */ + public fun dbParameterGroupIdentifier(): String? = unwrap(this).getDbParameterGroupIdentifier() + + /** + * The Timestream for InfluxDB DB storage type to read and write InfluxDB data. + * + * You can choose between 3 different types of provisioned Influx IOPS included storage according + * to your workloads requirements: + * + * * Influx IO Included 3000 IOPS + * * Influx IO Included 12000 IOPS + * * Influx IO Included 16000 IOPS + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-dbstoragetype) + */ + public fun dbStorageType(): String? = unwrap(this).getDbStorageType() + + /** + * Specifies whether the Timestream for InfluxDB is deployed as Single-AZ or with a MultiAZ + * Standby for High availability. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-deploymenttype) + */ + public fun deploymentType(): String? = unwrap(this).getDeploymentType() + + /** + * Configuration for sending InfluxDB engine logs to a specified S3 bucket. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-logdeliveryconfiguration) + */ + public fun logDeliveryConfiguration(): Any? = unwrap(this).getLogDeliveryConfiguration() + + /** + * The name that uniquely identifies the DB instance when interacting with the Amazon Timestream + * for InfluxDB API and CLI commands. + * + * This name will also be a prefix included in the endpoint. DB instance names must be unique per + * customer and per region. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-name) + */ + public fun name(): String? = unwrap(this).getName() + + /** + * The name of the initial organization for the initial admin user in InfluxDB. + * + * An InfluxDB organization is a workspace for a group of users. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-organization) + */ + public fun organization(): String? = unwrap(this).getOrganization() + + /** + * The password of the initial admin user created in InfluxDB. + * + * This password will allow you to access the InfluxDB UI to perform various administrative tasks + * and also use the InfluxDB CLI to create an operator token. These attributes will be stored in a + * Secret created in Amazon SecretManager in your account. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-password) + */ + public fun password(): String? = unwrap(this).getPassword() + + /** + * Configures the DB instance with a public IP to facilitate access. + * + * Default: - false + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-publiclyaccessible) + */ + public fun publiclyAccessible(): Any? = unwrap(this).getPubliclyAccessible() + + /** + * A list of key-value pairs to associate with the DB instance. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-tags) + */ + public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * The username of the initial admin user created in InfluxDB. + * + * Must start with a letter and can't end with a hyphen or contain two consecutive hyphens. For + * example, my-user1. This username will allow you to access the InfluxDB UI to perform various + * administrative tasks and also use the InfluxDB CLI to create an operator token. These attributes + * will be stored in a Secret created in Amazon Secrets Manager in your account. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-username) + */ + public fun username(): String? = unwrap(this).getUsername() + + /** + * A list of VPC security group IDs to associate with the DB instance. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-vpcsecuritygroupids) + */ + public fun vpcSecurityGroupIds(): List = unwrap(this).getVpcSecurityGroupIds() ?: + emptyList() + + /** + * A list of VPC subnet IDs to associate with the DB instance. + * + * Provide at least two VPC subnet IDs in different availability zones when deploying with a + * Multi-AZ standby. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-vpcsubnetids) + */ + public fun vpcSubnetIds(): List = unwrap(this).getVpcSubnetIds() ?: emptyList() + + /** + * A builder for [CfnInfluxDBInstanceProps] + */ + @CdkDslMarker + public interface Builder { + /** + * @param allocatedStorage The amount of storage to allocate for your DB storage type in GiB + * (gibibytes). + */ + public fun allocatedStorage(allocatedStorage: Number) + + /** + * @param bucket The name of the initial InfluxDB bucket. + * All InfluxDB data is stored in a bucket. A bucket combines the concept of a database and a + * retention period (the duration of time that each data point persists). A bucket belongs to an + * organization. + */ + public fun bucket(bucket: String) + + /** + * @param dbInstanceType The Timestream for InfluxDB DB instance type to run on. + */ + public fun dbInstanceType(dbInstanceType: String) + + /** + * @param dbParameterGroupIdentifier The name or id of the DB parameter group to assign to your + * DB instance. + * DB parameter groups specify how the database is configured. For example, DB parameter groups + * can specify the limit for query concurrency. + */ + public fun dbParameterGroupIdentifier(dbParameterGroupIdentifier: String) + + /** + * @param dbStorageType The Timestream for InfluxDB DB storage type to read and write InfluxDB + * data. + * You can choose between 3 different types of provisioned Influx IOPS included storage + * according to your workloads requirements: + * + * * Influx IO Included 3000 IOPS + * * Influx IO Included 12000 IOPS + * * Influx IO Included 16000 IOPS + */ + public fun dbStorageType(dbStorageType: String) + + /** + * @param deploymentType Specifies whether the Timestream for InfluxDB is deployed as Single-AZ + * or with a MultiAZ Standby for High availability. + */ + public fun deploymentType(deploymentType: String) + + /** + * @param logDeliveryConfiguration Configuration for sending InfluxDB engine logs to a specified + * S3 bucket. + */ + public fun logDeliveryConfiguration(logDeliveryConfiguration: IResolvable) + + /** + * @param logDeliveryConfiguration Configuration for sending InfluxDB engine logs to a specified + * S3 bucket. + */ + public + fun logDeliveryConfiguration(logDeliveryConfiguration: CfnInfluxDBInstance.LogDeliveryConfigurationProperty) + + /** + * @param logDeliveryConfiguration Configuration for sending InfluxDB engine logs to a specified + * S3 bucket. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("34f8d628b0378c94f09c7fa77e2a81a33872b464ee3f8e94340577a3ab9cb8cb") + public + fun logDeliveryConfiguration(logDeliveryConfiguration: CfnInfluxDBInstance.LogDeliveryConfigurationProperty.Builder.() -> Unit) + + /** + * @param name The name that uniquely identifies the DB instance when interacting with the + * Amazon Timestream for InfluxDB API and CLI commands. + * This name will also be a prefix included in the endpoint. DB instance names must be unique + * per customer and per region. + */ + public fun name(name: String) + + /** + * @param organization The name of the initial organization for the initial admin user in + * InfluxDB. + * An InfluxDB organization is a workspace for a group of users. + */ + public fun organization(organization: String) + + /** + * @param password The password of the initial admin user created in InfluxDB. + * This password will allow you to access the InfluxDB UI to perform various administrative + * tasks and also use the InfluxDB CLI to create an operator token. These attributes will be stored + * in a Secret created in Amazon SecretManager in your account. + */ + public fun password(password: String) + + /** + * @param publiclyAccessible Configures the DB instance with a public IP to facilitate access. + */ + public fun publiclyAccessible(publiclyAccessible: Boolean) + + /** + * @param publiclyAccessible Configures the DB instance with a public IP to facilitate access. + */ + public fun publiclyAccessible(publiclyAccessible: IResolvable) + + /** + * @param tags A list of key-value pairs to associate with the DB instance. + */ + public fun tags(tags: List) + + /** + * @param tags A list of key-value pairs to associate with the DB instance. + */ + public fun tags(vararg tags: CfnTag) + + /** + * @param username The username of the initial admin user created in InfluxDB. + * Must start with a letter and can't end with a hyphen or contain two consecutive hyphens. For + * example, my-user1. This username will allow you to access the InfluxDB UI to perform various + * administrative tasks and also use the InfluxDB CLI to create an operator token. These attributes + * will be stored in a Secret created in Amazon Secrets Manager in your account. + */ + public fun username(username: String) + + /** + * @param vpcSecurityGroupIds A list of VPC security group IDs to associate with the DB + * instance. + */ + public fun vpcSecurityGroupIds(vpcSecurityGroupIds: List) + + /** + * @param vpcSecurityGroupIds A list of VPC security group IDs to associate with the DB + * instance. + */ + public fun vpcSecurityGroupIds(vararg vpcSecurityGroupIds: String) + + /** + * @param vpcSubnetIds A list of VPC subnet IDs to associate with the DB instance. + * Provide at least two VPC subnet IDs in different availability zones when deploying with a + * Multi-AZ standby. + */ + public fun vpcSubnetIds(vpcSubnetIds: List) + + /** + * @param vpcSubnetIds A list of VPC subnet IDs to associate with the DB instance. + * Provide at least two VPC subnet IDs in different availability zones when deploying with a + * Multi-AZ standby. + */ + public fun vpcSubnetIds(vararg vpcSubnetIds: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.timestream.CfnInfluxDBInstanceProps.Builder = + software.amazon.awscdk.services.timestream.CfnInfluxDBInstanceProps.builder() + + /** + * @param allocatedStorage The amount of storage to allocate for your DB storage type in GiB + * (gibibytes). + */ + override fun allocatedStorage(allocatedStorage: Number) { + cdkBuilder.allocatedStorage(allocatedStorage) + } + + /** + * @param bucket The name of the initial InfluxDB bucket. + * All InfluxDB data is stored in a bucket. A bucket combines the concept of a database and a + * retention period (the duration of time that each data point persists). A bucket belongs to an + * organization. + */ + override fun bucket(bucket: String) { + cdkBuilder.bucket(bucket) + } + + /** + * @param dbInstanceType The Timestream for InfluxDB DB instance type to run on. + */ + override fun dbInstanceType(dbInstanceType: String) { + cdkBuilder.dbInstanceType(dbInstanceType) + } + + /** + * @param dbParameterGroupIdentifier The name or id of the DB parameter group to assign to your + * DB instance. + * DB parameter groups specify how the database is configured. For example, DB parameter groups + * can specify the limit for query concurrency. + */ + override fun dbParameterGroupIdentifier(dbParameterGroupIdentifier: String) { + cdkBuilder.dbParameterGroupIdentifier(dbParameterGroupIdentifier) + } + + /** + * @param dbStorageType The Timestream for InfluxDB DB storage type to read and write InfluxDB + * data. + * You can choose between 3 different types of provisioned Influx IOPS included storage + * according to your workloads requirements: + * + * * Influx IO Included 3000 IOPS + * * Influx IO Included 12000 IOPS + * * Influx IO Included 16000 IOPS + */ + override fun dbStorageType(dbStorageType: String) { + cdkBuilder.dbStorageType(dbStorageType) + } + + /** + * @param deploymentType Specifies whether the Timestream for InfluxDB is deployed as Single-AZ + * or with a MultiAZ Standby for High availability. + */ + override fun deploymentType(deploymentType: String) { + cdkBuilder.deploymentType(deploymentType) + } + + /** + * @param logDeliveryConfiguration Configuration for sending InfluxDB engine logs to a specified + * S3 bucket. + */ + override fun logDeliveryConfiguration(logDeliveryConfiguration: IResolvable) { + cdkBuilder.logDeliveryConfiguration(logDeliveryConfiguration.let(IResolvable::unwrap)) + } + + /** + * @param logDeliveryConfiguration Configuration for sending InfluxDB engine logs to a specified + * S3 bucket. + */ + override + fun logDeliveryConfiguration(logDeliveryConfiguration: CfnInfluxDBInstance.LogDeliveryConfigurationProperty) { + cdkBuilder.logDeliveryConfiguration(logDeliveryConfiguration.let(CfnInfluxDBInstance.LogDeliveryConfigurationProperty::unwrap)) + } + + /** + * @param logDeliveryConfiguration Configuration for sending InfluxDB engine logs to a specified + * S3 bucket. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("34f8d628b0378c94f09c7fa77e2a81a33872b464ee3f8e94340577a3ab9cb8cb") + override + fun logDeliveryConfiguration(logDeliveryConfiguration: CfnInfluxDBInstance.LogDeliveryConfigurationProperty.Builder.() -> Unit): + Unit = + logDeliveryConfiguration(CfnInfluxDBInstance.LogDeliveryConfigurationProperty(logDeliveryConfiguration)) + + /** + * @param name The name that uniquely identifies the DB instance when interacting with the + * Amazon Timestream for InfluxDB API and CLI commands. + * This name will also be a prefix included in the endpoint. DB instance names must be unique + * per customer and per region. + */ + override fun name(name: String) { + cdkBuilder.name(name) + } + + /** + * @param organization The name of the initial organization for the initial admin user in + * InfluxDB. + * An InfluxDB organization is a workspace for a group of users. + */ + override fun organization(organization: String) { + cdkBuilder.organization(organization) + } + + /** + * @param password The password of the initial admin user created in InfluxDB. + * This password will allow you to access the InfluxDB UI to perform various administrative + * tasks and also use the InfluxDB CLI to create an operator token. These attributes will be stored + * in a Secret created in Amazon SecretManager in your account. + */ + override fun password(password: String) { + cdkBuilder.password(password) + } + + /** + * @param publiclyAccessible Configures the DB instance with a public IP to facilitate access. + */ + override fun publiclyAccessible(publiclyAccessible: Boolean) { + cdkBuilder.publiclyAccessible(publiclyAccessible) + } + + /** + * @param publiclyAccessible Configures the DB instance with a public IP to facilitate access. + */ + override fun publiclyAccessible(publiclyAccessible: IResolvable) { + cdkBuilder.publiclyAccessible(publiclyAccessible.let(IResolvable::unwrap)) + } + + /** + * @param tags A list of key-value pairs to associate with the DB instance. + */ + override fun tags(tags: List) { + cdkBuilder.tags(tags.map(CfnTag::unwrap)) + } + + /** + * @param tags A list of key-value pairs to associate with the DB instance. + */ + override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) + + /** + * @param username The username of the initial admin user created in InfluxDB. + * Must start with a letter and can't end with a hyphen or contain two consecutive hyphens. For + * example, my-user1. This username will allow you to access the InfluxDB UI to perform various + * administrative tasks and also use the InfluxDB CLI to create an operator token. These attributes + * will be stored in a Secret created in Amazon Secrets Manager in your account. + */ + override fun username(username: String) { + cdkBuilder.username(username) + } + + /** + * @param vpcSecurityGroupIds A list of VPC security group IDs to associate with the DB + * instance. + */ + override fun vpcSecurityGroupIds(vpcSecurityGroupIds: List) { + cdkBuilder.vpcSecurityGroupIds(vpcSecurityGroupIds) + } + + /** + * @param vpcSecurityGroupIds A list of VPC security group IDs to associate with the DB + * instance. + */ + override fun vpcSecurityGroupIds(vararg vpcSecurityGroupIds: String): Unit = + vpcSecurityGroupIds(vpcSecurityGroupIds.toList()) + + /** + * @param vpcSubnetIds A list of VPC subnet IDs to associate with the DB instance. + * Provide at least two VPC subnet IDs in different availability zones when deploying with a + * Multi-AZ standby. + */ + override fun vpcSubnetIds(vpcSubnetIds: List) { + cdkBuilder.vpcSubnetIds(vpcSubnetIds) + } + + /** + * @param vpcSubnetIds A list of VPC subnet IDs to associate with the DB instance. + * Provide at least two VPC subnet IDs in different availability zones when deploying with a + * Multi-AZ standby. + */ + override fun vpcSubnetIds(vararg vpcSubnetIds: String): Unit = + vpcSubnetIds(vpcSubnetIds.toList()) + + public fun build(): software.amazon.awscdk.services.timestream.CfnInfluxDBInstanceProps = + cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.timestream.CfnInfluxDBInstanceProps, + ) : CdkObject(cdkObject), CfnInfluxDBInstanceProps { + /** + * The amount of storage to allocate for your DB storage type in GiB (gibibytes). + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-allocatedstorage) + */ + override fun allocatedStorage(): Number? = unwrap(this).getAllocatedStorage() + + /** + * The name of the initial InfluxDB bucket. + * + * All InfluxDB data is stored in a bucket. A bucket combines the concept of a database and a + * retention period (the duration of time that each data point persists). A bucket belongs to an + * organization. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-bucket) + */ + override fun bucket(): String? = unwrap(this).getBucket() + + /** + * The Timestream for InfluxDB DB instance type to run on. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-dbinstancetype) + */ + override fun dbInstanceType(): String? = unwrap(this).getDbInstanceType() + + /** + * The name or id of the DB parameter group to assign to your DB instance. + * + * DB parameter groups specify how the database is configured. For example, DB parameter groups + * can specify the limit for query concurrency. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-dbparametergroupidentifier) + */ + override fun dbParameterGroupIdentifier(): String? = + unwrap(this).getDbParameterGroupIdentifier() + + /** + * The Timestream for InfluxDB DB storage type to read and write InfluxDB data. + * + * You can choose between 3 different types of provisioned Influx IOPS included storage + * according to your workloads requirements: + * + * * Influx IO Included 3000 IOPS + * * Influx IO Included 12000 IOPS + * * Influx IO Included 16000 IOPS + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-dbstoragetype) + */ + override fun dbStorageType(): String? = unwrap(this).getDbStorageType() + + /** + * Specifies whether the Timestream for InfluxDB is deployed as Single-AZ or with a MultiAZ + * Standby for High availability. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-deploymenttype) + */ + override fun deploymentType(): String? = unwrap(this).getDeploymentType() + + /** + * Configuration for sending InfluxDB engine logs to a specified S3 bucket. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-logdeliveryconfiguration) + */ + override fun logDeliveryConfiguration(): Any? = unwrap(this).getLogDeliveryConfiguration() + + /** + * The name that uniquely identifies the DB instance when interacting with the Amazon Timestream + * for InfluxDB API and CLI commands. + * + * This name will also be a prefix included in the endpoint. DB instance names must be unique + * per customer and per region. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-name) + */ + override fun name(): String? = unwrap(this).getName() + + /** + * The name of the initial organization for the initial admin user in InfluxDB. + * + * An InfluxDB organization is a workspace for a group of users. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-organization) + */ + override fun organization(): String? = unwrap(this).getOrganization() + + /** + * The password of the initial admin user created in InfluxDB. + * + * This password will allow you to access the InfluxDB UI to perform various administrative + * tasks and also use the InfluxDB CLI to create an operator token. These attributes will be stored + * in a Secret created in Amazon SecretManager in your account. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-password) + */ + override fun password(): String? = unwrap(this).getPassword() + + /** + * Configures the DB instance with a public IP to facilitate access. + * + * Default: - false + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-publiclyaccessible) + */ + override fun publiclyAccessible(): Any? = unwrap(this).getPubliclyAccessible() + + /** + * A list of key-value pairs to associate with the DB instance. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-tags) + */ + override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() + + /** + * The username of the initial admin user created in InfluxDB. + * + * Must start with a letter and can't end with a hyphen or contain two consecutive hyphens. For + * example, my-user1. This username will allow you to access the InfluxDB UI to perform various + * administrative tasks and also use the InfluxDB CLI to create an operator token. These attributes + * will be stored in a Secret created in Amazon Secrets Manager in your account. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-username) + */ + override fun username(): String? = unwrap(this).getUsername() + + /** + * A list of VPC security group IDs to associate with the DB instance. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-vpcsecuritygroupids) + */ + override fun vpcSecurityGroupIds(): List = unwrap(this).getVpcSecurityGroupIds() ?: + emptyList() + + /** + * A list of VPC subnet IDs to associate with the DB instance. + * + * Provide at least two VPC subnet IDs in different availability zones when deploying with a + * Multi-AZ standby. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-timestream-influxdbinstance.html#cfn-timestream-influxdbinstance-vpcsubnetids) + */ + override fun vpcSubnetIds(): List = unwrap(this).getVpcSubnetIds() ?: emptyList() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): CfnInfluxDBInstanceProps { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.timestream.CfnInfluxDBInstanceProps): + CfnInfluxDBInstanceProps = CdkObjectWrappers.wrap(cdkObject) as? CfnInfluxDBInstanceProps ?: + Wrapper(cdkObject) + + internal fun unwrap(wrapped: CfnInfluxDBInstanceProps): + software.amazon.awscdk.services.timestream.CfnInfluxDBInstanceProps = (wrapped as + CdkObject).cdkObject as software.amazon.awscdk.services.timestream.CfnInfluxDBInstanceProps + } +} diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/transfer/CfnCertificate.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/transfer/CfnCertificate.kt index e131972bee..0aabfcbbd2 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/transfer/CfnCertificate.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/transfer/CfnCertificate.kt @@ -210,12 +210,16 @@ public open class CfnCertificate( public open fun tagsRaw(vararg `value`: CfnTag): Unit = tagsRaw(`value`.toList()) /** - * Specifies whether this certificate is used for signing or encryption. + * Specifies how this certificate is used. + * + * It can be used in the following ways:. */ public open fun usage(): String = unwrap(this).getUsage() /** - * Specifies whether this certificate is used for signing or encryption. + * Specifies how this certificate is used. + * + * It can be used in the following ways:. */ public open fun usage(`value`: String) { unwrap(this).setUsage(`value`) @@ -292,10 +296,14 @@ public open class CfnCertificate( public fun tags(vararg tags: CfnTag) /** - * Specifies whether this certificate is used for signing or encryption. + * Specifies how this certificate is used. It can be used in the following ways:. + * + * * `SIGNING` : For signing AS2 messages + * * `ENCRYPTION` : For encrypting AS2 messages + * * `TLS` : For securing AS2 communications sent over HTTPS * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-certificate.html#cfn-transfer-certificate-usage) - * @param usage Specifies whether this certificate is used for signing or encryption. + * @param usage Specifies how this certificate is used. It can be used in the following ways:. */ public fun usage(usage: String) } @@ -387,10 +395,14 @@ public open class CfnCertificate( override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) /** - * Specifies whether this certificate is used for signing or encryption. + * Specifies how this certificate is used. It can be used in the following ways:. + * + * * `SIGNING` : For signing AS2 messages + * * `ENCRYPTION` : For encrypting AS2 messages + * * `TLS` : For securing AS2 communications sent over HTTPS * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-certificate.html#cfn-transfer-certificate-usage) - * @param usage Specifies whether this certificate is used for signing or encryption. + * @param usage Specifies how this certificate is used. It can be used in the following ways:. */ override fun usage(usage: String) { cdkBuilder.usage(usage) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/transfer/CfnCertificateProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/transfer/CfnCertificateProps.kt index 6f88af0ca2..5b4a271611 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/transfer/CfnCertificateProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/transfer/CfnCertificateProps.kt @@ -88,7 +88,11 @@ public interface CfnCertificateProps { public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() /** - * Specifies whether this certificate is used for signing or encryption. + * Specifies how this certificate is used. It can be used in the following ways:. + * + * * `SIGNING` : For signing AS2 messages + * * `ENCRYPTION` : For encrypting AS2 messages + * * `TLS` : For securing AS2 communications sent over HTTPS * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-certificate.html#cfn-transfer-certificate-usage) */ @@ -141,7 +145,10 @@ public interface CfnCertificateProps { public fun tags(vararg tags: CfnTag) /** - * @param usage Specifies whether this certificate is used for signing or encryption. + * @param usage Specifies how this certificate is used. It can be used in the following ways:. + * * `SIGNING` : For signing AS2 messages + * * `ENCRYPTION` : For encrypting AS2 messages + * * `TLS` : For securing AS2 communications sent over HTTPS */ public fun usage(usage: String) } @@ -206,7 +213,10 @@ public interface CfnCertificateProps { override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList()) /** - * @param usage Specifies whether this certificate is used for signing or encryption. + * @param usage Specifies how this certificate is used. It can be used in the following ways:. + * * `SIGNING` : For signing AS2 messages + * * `ENCRYPTION` : For encrypting AS2 messages + * * `TLS` : For securing AS2 communications sent over HTTPS */ override fun usage(usage: String) { cdkBuilder.usage(usage) @@ -269,7 +279,11 @@ public interface CfnCertificateProps { override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList() /** - * Specifies whether this certificate is used for signing or encryption. + * Specifies how this certificate is used. It can be used in the following ways:. + * + * * `SIGNING` : For signing AS2 messages + * * `ENCRYPTION` : For encrypting AS2 messages + * * `TLS` : For securing AS2 communications sent over HTTPS * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-certificate.html#cfn-transfer-certificate-usage) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/transfer/CfnConnector.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/transfer/CfnConnector.kt index 3166f8356b..0eb88dcc69 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/transfer/CfnConnector.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/transfer/CfnConnector.kt @@ -528,10 +528,12 @@ public open class CfnConnector( /** * The algorithm that is used to encrypt the file. * + * Note the following: * - * You can only specify `NONE` if the URL for your connector uses HTTPS. This ensures that no - * traffic is sent in clear text. - * + * * Do not use the `DES_EDE3_CBC` algorithm unless you must support a legacy client that + * requires it, as it is a weak encryption algorithm. + * * You can only specify `NONE` if the URL for your connector uses HTTPS. Using HTTPS ensures + * that no traffic is sent in clear text. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-connector-as2config.html#cfn-transfer-connector-as2config-encryptionalgorithm) */ @@ -635,9 +637,12 @@ public open class CfnConnector( /** * @param encryptionAlgorithm The algorithm that is used to encrypt the file. + * Note the following: * - * You can only specify `NONE` if the URL for your connector uses HTTPS. This ensures that no - * traffic is sent in clear text. + * * Do not use the `DES_EDE3_CBC` algorithm unless you must support a legacy client that + * requires it, as it is a weak encryption algorithm. + * * You can only specify `NONE` if the URL for your connector uses HTTPS. Using HTTPS ensures + * that no traffic is sent in clear text. */ public fun encryptionAlgorithm(encryptionAlgorithm: String) @@ -731,9 +736,12 @@ public open class CfnConnector( /** * @param encryptionAlgorithm The algorithm that is used to encrypt the file. + * Note the following: * - * You can only specify `NONE` if the URL for your connector uses HTTPS. This ensures that no - * traffic is sent in clear text. + * * Do not use the `DES_EDE3_CBC` algorithm unless you must support a legacy client that + * requires it, as it is a weak encryption algorithm. + * * You can only specify `NONE` if the URL for your connector uses HTTPS. Using HTTPS ensures + * that no traffic is sent in clear text. */ override fun encryptionAlgorithm(encryptionAlgorithm: String) { cdkBuilder.encryptionAlgorithm(encryptionAlgorithm) @@ -844,10 +852,12 @@ public open class CfnConnector( /** * The algorithm that is used to encrypt the file. * + * Note the following: * - * You can only specify `NONE` if the URL for your connector uses HTTPS. This ensures that no - * traffic is sent in clear text. - * + * * Do not use the `DES_EDE3_CBC` algorithm unless you must support a legacy client that + * requires it, as it is a weak encryption algorithm. + * * You can only specify `NONE` if the URL for your connector uses HTTPS. Using HTTPS ensures + * that no traffic is sent in clear text. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-connector-as2config.html#cfn-transfer-connector-as2config-encryptionalgorithm) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/transfer/CfnServer.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/transfer/CfnServer.kt index b94bb06b88..5af14ecead 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/transfer/CfnServer.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/transfer/CfnServer.kt @@ -368,12 +368,12 @@ public open class CfnServer( s3StorageOptions(S3StorageOptionsProperty(`value`)) /** - * Specifies the name of the security policy that is attached to the server. + * Specifies the name of the security policy for the server. */ public open fun securityPolicyName(): String? = unwrap(this).getSecurityPolicyName() /** - * Specifies the name of the security policy that is attached to the server. + * Specifies the name of the security policy for the server. */ public open fun securityPolicyName(`value`: String) { unwrap(this).setSecurityPolicyName(`value`) @@ -497,6 +497,9 @@ public open class CfnServer( /** * Specifies the domain of the storage system that is used for file transfers. * + * There are two domains available: Amazon Simple Storage Service (Amazon S3) and Amazon Elastic + * File System (Amazon EFS). The default value is S3. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-server.html#cfn-transfer-server-domain) * @param domain Specifies the domain of the storage system that is used for file transfers. */ @@ -884,11 +887,10 @@ public open class CfnServer( public fun s3StorageOptions(s3StorageOptions: S3StorageOptionsProperty.Builder.() -> Unit) /** - * Specifies the name of the security policy that is attached to the server. + * Specifies the name of the security policy for the server. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-server.html#cfn-transfer-server-securitypolicyname) - * @param securityPolicyName Specifies the name of the security policy that is attached to the - * server. + * @param securityPolicyName Specifies the name of the security policy for the server. */ public fun securityPolicyName(securityPolicyName: String) @@ -1046,6 +1048,9 @@ public open class CfnServer( /** * Specifies the domain of the storage system that is used for file transfers. * + * There are two domains available: Amazon Simple Storage Service (Amazon S3) and Amazon Elastic + * File System (Amazon EFS). The default value is S3. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-server.html#cfn-transfer-server-domain) * @param domain Specifies the domain of the storage system that is used for file transfers. */ @@ -1467,11 +1472,10 @@ public open class CfnServer( Unit = s3StorageOptions(S3StorageOptionsProperty(s3StorageOptions)) /** - * Specifies the name of the security policy that is attached to the server. + * Specifies the name of the security policy for the server. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-server.html#cfn-transfer-server-securitypolicyname) - * @param securityPolicyName Specifies the name of the security policy that is attached to the - * server. + * @param securityPolicyName Specifies the name of the security policy for the server. */ override fun securityPolicyName(securityPolicyName: String) { cdkBuilder.securityPolicyName(securityPolicyName) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/transfer/CfnServerProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/transfer/CfnServerProps.kt index 5d01f428cd..0721325a03 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/transfer/CfnServerProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/transfer/CfnServerProps.kt @@ -113,6 +113,9 @@ public interface CfnServerProps { /** * Specifies the domain of the storage system that is used for file transfers. * + * There are two domains available: Amazon Simple Storage Service (Amazon S3) and Amazon Elastic + * File System (Amazon EFS). The default value is S3. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-server.html#cfn-transfer-server-domain) */ public fun domain(): String? = unwrap(this).getDomain() @@ -300,7 +303,7 @@ public interface CfnServerProps { public fun s3StorageOptions(): Any? = unwrap(this).getS3StorageOptions() /** - * Specifies the name of the security policy that is attached to the server. + * Specifies the name of the security policy for the server. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-server.html#cfn-transfer-server-securitypolicyname) */ @@ -385,6 +388,8 @@ public interface CfnServerProps { /** * @param domain Specifies the domain of the storage system that is used for file transfers. + * There are two domains available: Amazon Simple Storage Service (Amazon S3) and Amazon Elastic + * File System (Amazon EFS). The default value is S3. */ public fun domain(domain: String) @@ -686,8 +691,7 @@ public interface CfnServerProps { fun s3StorageOptions(s3StorageOptions: CfnServer.S3StorageOptionsProperty.Builder.() -> Unit) /** - * @param securityPolicyName Specifies the name of the security policy that is attached to the - * server. + * @param securityPolicyName Specifies the name of the security policy for the server. */ public fun securityPolicyName(securityPolicyName: String) @@ -806,6 +810,8 @@ public interface CfnServerProps { /** * @param domain Specifies the domain of the storage system that is used for file transfers. + * There are two domains available: Amazon Simple Storage Service (Amazon S3) and Amazon Elastic + * File System (Amazon EFS). The default value is S3. */ override fun domain(domain: String) { cdkBuilder.domain(domain) @@ -1142,8 +1148,7 @@ public interface CfnServerProps { Unit = s3StorageOptions(CfnServer.S3StorageOptionsProperty(s3StorageOptions)) /** - * @param securityPolicyName Specifies the name of the security policy that is attached to the - * server. + * @param securityPolicyName Specifies the name of the security policy for the server. */ override fun securityPolicyName(securityPolicyName: String) { cdkBuilder.securityPolicyName(securityPolicyName) @@ -1277,6 +1282,9 @@ public interface CfnServerProps { /** * Specifies the domain of the storage system that is used for file transfers. * + * There are two domains available: Amazon Simple Storage Service (Amazon S3) and Amazon Elastic + * File System (Amazon EFS). The default value is S3. + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-server.html#cfn-transfer-server-domain) */ override fun domain(): String? = unwrap(this).getDomain() @@ -1466,7 +1474,7 @@ public interface CfnServerProps { override fun s3StorageOptions(): Any? = unwrap(this).getS3StorageOptions() /** - * Specifies the name of the security policy that is attached to the server. + * Specifies the name of the security policy for the server. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-server.html#cfn-transfer-server-securitypolicyname) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/verifiedpermissions/CfnIdentitySource.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/verifiedpermissions/CfnIdentitySource.kt index 97399a2c29..8e355a93f4 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/verifiedpermissions/CfnIdentitySource.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/verifiedpermissions/CfnIdentitySource.kt @@ -64,6 +64,9 @@ import software.constructs.Construct as SoftwareConstructsConstruct * .userPoolArn("userPoolArn") * // the properties below are optional * .clientIds(List.of("clientIds")) + * .groupConfiguration(CognitoGroupConfigurationProperty.builder() + * .groupEntityType("groupEntityType") + * .build()) * .build()) * .build()) * .policyStoreId("policyStoreId") @@ -124,26 +127,26 @@ public open class CfnIdentitySource( public open fun attrIdentitySourceId(): String = unwrap(this).getAttrIdentitySourceId() /** - * Contains configuration information used when creating a new identity source. + * Contains configuration information about an identity source. */ public open fun configuration(): Any = unwrap(this).getConfiguration() /** - * Contains configuration information used when creating a new identity source. + * Contains configuration information about an identity source. */ public open fun configuration(`value`: IResolvable) { unwrap(this).setConfiguration(`value`.let(IResolvable::unwrap)) } /** - * Contains configuration information used when creating a new identity source. + * Contains configuration information about an identity source. */ public open fun configuration(`value`: IdentitySourceConfigurationProperty) { unwrap(this).setConfiguration(`value`.let(IdentitySourceConfigurationProperty::unwrap)) } /** - * Contains configuration information used when creating a new identity source. + * Contains configuration information about an identity source. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("3f097b6a0169411a9541f2f293b2ec50920e1c9135042b5e23a00482ca4233e1") @@ -191,62 +194,26 @@ public open class CfnIdentitySource( @CdkDslMarker public interface Builder { /** - * Contains configuration information used when creating a new identity source. - * - * - * At this time, the only valid member of this structure is a Amazon Cognito user pool - * configuration. - * - * You must specify a `userPoolArn` , and optionally, a `ClientId` . - * - * - * This data type is used as a request parameter for the - * [CreateIdentitySource](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreateIdentitySource.html) - * operation. + * Contains configuration information about an identity source. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-verifiedpermissions-identitysource.html#cfn-verifiedpermissions-identitysource-configuration) - * @param configuration Contains configuration information used when creating a new identity - * source. + * @param configuration Contains configuration information about an identity source. */ public fun configuration(configuration: IResolvable) /** - * Contains configuration information used when creating a new identity source. - * - * - * At this time, the only valid member of this structure is a Amazon Cognito user pool - * configuration. - * - * You must specify a `userPoolArn` , and optionally, a `ClientId` . - * - * - * This data type is used as a request parameter for the - * [CreateIdentitySource](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreateIdentitySource.html) - * operation. + * Contains configuration information about an identity source. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-verifiedpermissions-identitysource.html#cfn-verifiedpermissions-identitysource-configuration) - * @param configuration Contains configuration information used when creating a new identity - * source. + * @param configuration Contains configuration information about an identity source. */ public fun configuration(configuration: IdentitySourceConfigurationProperty) /** - * Contains configuration information used when creating a new identity source. - * - * - * At this time, the only valid member of this structure is a Amazon Cognito user pool - * configuration. - * - * You must specify a `userPoolArn` , and optionally, a `ClientId` . - * - * - * This data type is used as a request parameter for the - * [CreateIdentitySource](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreateIdentitySource.html) - * operation. + * Contains configuration information about an identity source. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-verifiedpermissions-identitysource.html#cfn-verifiedpermissions-identitysource-configuration) - * @param configuration Contains configuration information used when creating a new identity - * source. + * @param configuration Contains configuration information about an identity source. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("8bbfe0ed3878f6d1c30b37f35051aaaf5948f60ea00fa239fb3ec49a4c3cee4d") @@ -285,66 +252,30 @@ public open class CfnIdentitySource( id) /** - * Contains configuration information used when creating a new identity source. - * - * - * At this time, the only valid member of this structure is a Amazon Cognito user pool - * configuration. - * - * You must specify a `userPoolArn` , and optionally, a `ClientId` . - * - * - * This data type is used as a request parameter for the - * [CreateIdentitySource](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreateIdentitySource.html) - * operation. + * Contains configuration information about an identity source. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-verifiedpermissions-identitysource.html#cfn-verifiedpermissions-identitysource-configuration) - * @param configuration Contains configuration information used when creating a new identity - * source. + * @param configuration Contains configuration information about an identity source. */ override fun configuration(configuration: IResolvable) { cdkBuilder.configuration(configuration.let(IResolvable::unwrap)) } /** - * Contains configuration information used when creating a new identity source. - * - * - * At this time, the only valid member of this structure is a Amazon Cognito user pool - * configuration. - * - * You must specify a `userPoolArn` , and optionally, a `ClientId` . - * - * - * This data type is used as a request parameter for the - * [CreateIdentitySource](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreateIdentitySource.html) - * operation. + * Contains configuration information about an identity source. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-verifiedpermissions-identitysource.html#cfn-verifiedpermissions-identitysource-configuration) - * @param configuration Contains configuration information used when creating a new identity - * source. + * @param configuration Contains configuration information about an identity source. */ override fun configuration(configuration: IdentitySourceConfigurationProperty) { cdkBuilder.configuration(configuration.let(IdentitySourceConfigurationProperty::unwrap)) } /** - * Contains configuration information used when creating a new identity source. - * - * - * At this time, the only valid member of this structure is a Amazon Cognito user pool - * configuration. - * - * You must specify a `userPoolArn` , and optionally, a `ClientId` . - * - * - * This data type is used as a request parameter for the - * [CreateIdentitySource](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreateIdentitySource.html) - * operation. + * Contains configuration information about an identity source. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-verifiedpermissions-identitysource.html#cfn-verifiedpermissions-identitysource-configuration) - * @param configuration Contains configuration information used when creating a new identity - * source. + * @param configuration Contains configuration information about an identity source. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("8bbfe0ed3878f6d1c30b37f35051aaaf5948f60ea00fa239fb3ec49a4c3cee4d") @@ -404,6 +335,105 @@ public open class CfnIdentitySource( software.amazon.awscdk.services.verifiedpermissions.CfnIdentitySource } + /** + * The type of entity that a policy store maps to groups from an Amazon Cognito user pool identity + * source. + * + * This data type is part of a + * [CognitoUserPoolConfiguration](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CognitoUserPoolConfiguration.html) + * structure and is a request parameter in + * [CreateIdentitySource](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreateIdentitySource.html) + * . + * + * Example: + * + * ``` + * // The code below shows an example of how to instantiate this type. + * // The values are placeholders you should change. + * import io.cloudshiftdev.awscdk.services.verifiedpermissions.*; + * CognitoGroupConfigurationProperty cognitoGroupConfigurationProperty = + * CognitoGroupConfigurationProperty.builder() + * .groupEntityType("groupEntityType") + * .build(); + * ``` + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-verifiedpermissions-identitysource-cognitogroupconfiguration.html) + */ + public interface CognitoGroupConfigurationProperty { + /** + * The name of the schema entity type that's mapped to the user pool group. + * + * Defaults to `AWS::CognitoGroup` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-verifiedpermissions-identitysource-cognitogroupconfiguration.html#cfn-verifiedpermissions-identitysource-cognitogroupconfiguration-groupentitytype) + */ + public fun groupEntityType(): String + + /** + * A builder for [CognitoGroupConfigurationProperty] + */ + @CdkDslMarker + public interface Builder { + /** + * @param groupEntityType The name of the schema entity type that's mapped to the user pool + * group. + * Defaults to `AWS::CognitoGroup` . + */ + public fun groupEntityType(groupEntityType: String) + } + + private class BuilderImpl : Builder { + private val cdkBuilder: + software.amazon.awscdk.services.verifiedpermissions.CfnIdentitySource.CognitoGroupConfigurationProperty.Builder + = + software.amazon.awscdk.services.verifiedpermissions.CfnIdentitySource.CognitoGroupConfigurationProperty.builder() + + /** + * @param groupEntityType The name of the schema entity type that's mapped to the user pool + * group. + * Defaults to `AWS::CognitoGroup` . + */ + override fun groupEntityType(groupEntityType: String) { + cdkBuilder.groupEntityType(groupEntityType) + } + + public fun build(): + software.amazon.awscdk.services.verifiedpermissions.CfnIdentitySource.CognitoGroupConfigurationProperty + = cdkBuilder.build() + } + + private class Wrapper( + cdkObject: software.amazon.awscdk.services.verifiedpermissions.CfnIdentitySource.CognitoGroupConfigurationProperty, + ) : CdkObject(cdkObject), CognitoGroupConfigurationProperty { + /** + * The name of the schema entity type that's mapped to the user pool group. + * + * Defaults to `AWS::CognitoGroup` . + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-verifiedpermissions-identitysource-cognitogroupconfiguration.html#cfn-verifiedpermissions-identitysource-cognitogroupconfiguration-groupentitytype) + */ + override fun groupEntityType(): String = unwrap(this).getGroupEntityType() + } + + public companion object { + public operator fun invoke(block: Builder.() -> Unit = {}): + CognitoGroupConfigurationProperty { + val builderImpl = BuilderImpl() + return Wrapper(builderImpl.apply(block).build()) + } + + internal + fun wrap(cdkObject: software.amazon.awscdk.services.verifiedpermissions.CfnIdentitySource.CognitoGroupConfigurationProperty): + CognitoGroupConfigurationProperty = CdkObjectWrappers.wrap(cdkObject) as? + CognitoGroupConfigurationProperty ?: Wrapper(cdkObject) + + internal fun unwrap(wrapped: CognitoGroupConfigurationProperty): + software.amazon.awscdk.services.verifiedpermissions.CfnIdentitySource.CognitoGroupConfigurationProperty + = (wrapped as CdkObject).cdkObject as + software.amazon.awscdk.services.verifiedpermissions.CfnIdentitySource.CognitoGroupConfigurationProperty + } + } + /** * A structure that contains configuration information used when creating or updating an identity * source that represents a connection to an Amazon Cognito user pool used as an identity provider @@ -420,6 +450,9 @@ public open class CfnIdentitySource( * .userPoolArn("userPoolArn") * // the properties below are optional * .clientIds(List.of("clientIds")) + * .groupConfiguration(CognitoGroupConfigurationProperty.builder() + * .groupEntityType("groupEntityType") + * .build()) * .build(); * ``` * @@ -436,6 +469,14 @@ public open class CfnIdentitySource( */ public fun clientIds(): List = unwrap(this).getClientIds() ?: emptyList() + /** + * The type of entity that a policy store maps to groups from an Amazon Cognito user pool + * identity source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-verifiedpermissions-identitysource-cognitouserpoolconfiguration.html#cfn-verifiedpermissions-identitysource-cognitouserpoolconfiguration-groupconfiguration) + */ + public fun groupConfiguration(): Any? = unwrap(this).getGroupConfiguration() + /** * The [Amazon Resource Name * (ARN)](https://docs.aws.amazon.com//general/latest/gr/aws-arns-and-namespaces.html) of the @@ -464,6 +505,27 @@ public open class CfnIdentitySource( */ public fun clientIds(vararg clientIds: String) + /** + * @param groupConfiguration The type of entity that a policy store maps to groups from an + * Amazon Cognito user pool identity source. + */ + public fun groupConfiguration(groupConfiguration: IResolvable) + + /** + * @param groupConfiguration The type of entity that a policy store maps to groups from an + * Amazon Cognito user pool identity source. + */ + public fun groupConfiguration(groupConfiguration: CognitoGroupConfigurationProperty) + + /** + * @param groupConfiguration The type of entity that a policy store maps to groups from an + * Amazon Cognito user pool identity source. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("8c5f638c5e106cbb2c9bd28fc549fa07c96453673ad0b8790d827edaf575c470") + public + fun groupConfiguration(groupConfiguration: CognitoGroupConfigurationProperty.Builder.() -> Unit) + /** * @param userPoolArn The [Amazon Resource Name * (ARN)](https://docs.aws.amazon.com//general/latest/gr/aws-arns-and-namespaces.html) of the @@ -494,6 +556,32 @@ public open class CfnIdentitySource( */ override fun clientIds(vararg clientIds: String): Unit = clientIds(clientIds.toList()) + /** + * @param groupConfiguration The type of entity that a policy store maps to groups from an + * Amazon Cognito user pool identity source. + */ + override fun groupConfiguration(groupConfiguration: IResolvable) { + cdkBuilder.groupConfiguration(groupConfiguration.let(IResolvable::unwrap)) + } + + /** + * @param groupConfiguration The type of entity that a policy store maps to groups from an + * Amazon Cognito user pool identity source. + */ + override fun groupConfiguration(groupConfiguration: CognitoGroupConfigurationProperty) { + cdkBuilder.groupConfiguration(groupConfiguration.let(CognitoGroupConfigurationProperty::unwrap)) + } + + /** + * @param groupConfiguration The type of entity that a policy store maps to groups from an + * Amazon Cognito user pool identity source. + */ + @kotlin.Suppress("INAPPLICABLE_JVM_NAME") + @JvmName("8c5f638c5e106cbb2c9bd28fc549fa07c96453673ad0b8790d827edaf575c470") + override + fun groupConfiguration(groupConfiguration: CognitoGroupConfigurationProperty.Builder.() -> Unit): + Unit = groupConfiguration(CognitoGroupConfigurationProperty(groupConfiguration)) + /** * @param userPoolArn The [Amazon Resource Name * (ARN)](https://docs.aws.amazon.com//general/latest/gr/aws-arns-and-namespaces.html) of the @@ -521,6 +609,14 @@ public open class CfnIdentitySource( */ override fun clientIds(): List = unwrap(this).getClientIds() ?: emptyList() + /** + * The type of entity that a policy store maps to groups from an Amazon Cognito user pool + * identity source. + * + * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-verifiedpermissions-identitysource-cognitouserpoolconfiguration.html#cfn-verifiedpermissions-identitysource-cognitouserpoolconfiguration-groupconfiguration) + */ + override fun groupConfiguration(): Any? = unwrap(this).getGroupConfiguration() + /** * The [Amazon Resource Name * (ARN)](https://docs.aws.amazon.com//general/latest/gr/aws-arns-and-namespaces.html) of the @@ -573,6 +669,9 @@ public open class CfnIdentitySource( * .userPoolArn("userPoolArn") * // the properties below are optional * .clientIds(List.of("clientIds")) + * .groupConfiguration(CognitoGroupConfigurationProperty.builder() + * .groupEntityType("groupEntityType") + * .build()) * .build()) * .build(); * ``` @@ -696,8 +795,6 @@ public open class CfnIdentitySource( } /** - * A structure that contains configuration of the identity source. - * * Example: * * ``` @@ -717,41 +814,21 @@ public open class CfnIdentitySource( */ public interface IdentitySourceDetailsProperty { /** - * The application client IDs associated with the specified Amazon Cognito user pool that are - * enabled for this identity source. - * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-verifiedpermissions-identitysource-identitysourcedetails.html#cfn-verifiedpermissions-identitysource-identitysourcedetails-clientids) */ public fun clientIds(): List = unwrap(this).getClientIds() ?: emptyList() /** - * The well-known URL that points to this user pool's OIDC discovery endpoint. - * - * This is a URL string in the following format. This URL replaces the placeholders for both the - * AWS Region and the user pool identifier with those appropriate for this user pool. - * - * `https://cognito-idp. *<region>* .amazonaws.com/ *<user-pool-id>* - * /.well-known/openid-configuration` - * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-verifiedpermissions-identitysource-identitysourcedetails.html#cfn-verifiedpermissions-identitysource-identitysourcedetails-discoveryurl) */ public fun discoveryUrl(): String? = unwrap(this).getDiscoveryUrl() /** - * A string that identifies the type of OIDC service represented by this identity source. - * - * At this time, the only valid value is `cognito` . - * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-verifiedpermissions-identitysource-identitysourcedetails.html#cfn-verifiedpermissions-identitysource-identitysourcedetails-openidissuer) */ public fun openIdIssuer(): String? = unwrap(this).getOpenIdIssuer() /** - * The [Amazon Resource Name - * (ARN)](https://docs.aws.amazon.com//general/latest/gr/aws-arns-and-namespaces.html) of the - * Amazon Cognito user pool whose identities are accessible to this Verified Permissions policy - * store. - * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-verifiedpermissions-identitysource-identitysourcedetails.html#cfn-verifiedpermissions-identitysource-identitysourcedetails-userpoolarn) */ public fun userPoolArn(): String? = unwrap(this).getUserPoolArn() @@ -762,40 +839,27 @@ public open class CfnIdentitySource( @CdkDslMarker public interface Builder { /** - * @param clientIds The application client IDs associated with the specified Amazon Cognito - * user pool that are enabled for this identity source. + * @param clientIds the value to be set. */ public fun clientIds(clientIds: List) /** - * @param clientIds The application client IDs associated with the specified Amazon Cognito - * user pool that are enabled for this identity source. + * @param clientIds the value to be set. */ public fun clientIds(vararg clientIds: String) /** - * @param discoveryUrl The well-known URL that points to this user pool's OIDC discovery - * endpoint. - * This is a URL string in the following format. This URL replaces the placeholders for both - * the AWS Region and the user pool identifier with those appropriate for this user pool. - * - * `https://cognito-idp. *<region>* .amazonaws.com/ *<user-pool-id>* - * /.well-known/openid-configuration` + * @param discoveryUrl the value to be set. */ public fun discoveryUrl(discoveryUrl: String) /** - * @param openIdIssuer A string that identifies the type of OIDC service represented by this - * identity source. - * At this time, the only valid value is `cognito` . + * @param openIdIssuer the value to be set. */ public fun openIdIssuer(openIdIssuer: String) /** - * @param userPoolArn The [Amazon Resource Name - * (ARN)](https://docs.aws.amazon.com//general/latest/gr/aws-arns-and-namespaces.html) of the - * Amazon Cognito user pool whose identities are accessible to this Verified Permissions policy - * store. + * @param userPoolArn the value to be set. */ public fun userPoolArn(userPoolArn: String) } @@ -807,46 +871,33 @@ public open class CfnIdentitySource( software.amazon.awscdk.services.verifiedpermissions.CfnIdentitySource.IdentitySourceDetailsProperty.builder() /** - * @param clientIds The application client IDs associated with the specified Amazon Cognito - * user pool that are enabled for this identity source. + * @param clientIds the value to be set. */ override fun clientIds(clientIds: List) { cdkBuilder.clientIds(clientIds) } /** - * @param clientIds The application client IDs associated with the specified Amazon Cognito - * user pool that are enabled for this identity source. + * @param clientIds the value to be set. */ override fun clientIds(vararg clientIds: String): Unit = clientIds(clientIds.toList()) /** - * @param discoveryUrl The well-known URL that points to this user pool's OIDC discovery - * endpoint. - * This is a URL string in the following format. This URL replaces the placeholders for both - * the AWS Region and the user pool identifier with those appropriate for this user pool. - * - * `https://cognito-idp. *<region>* .amazonaws.com/ *<user-pool-id>* - * /.well-known/openid-configuration` + * @param discoveryUrl the value to be set. */ override fun discoveryUrl(discoveryUrl: String) { cdkBuilder.discoveryUrl(discoveryUrl) } /** - * @param openIdIssuer A string that identifies the type of OIDC service represented by this - * identity source. - * At this time, the only valid value is `cognito` . + * @param openIdIssuer the value to be set. */ override fun openIdIssuer(openIdIssuer: String) { cdkBuilder.openIdIssuer(openIdIssuer) } /** - * @param userPoolArn The [Amazon Resource Name - * (ARN)](https://docs.aws.amazon.com//general/latest/gr/aws-arns-and-namespaces.html) of the - * Amazon Cognito user pool whose identities are accessible to this Verified Permissions policy - * store. + * @param userPoolArn the value to be set. */ override fun userPoolArn(userPoolArn: String) { cdkBuilder.userPoolArn(userPoolArn) @@ -861,41 +912,21 @@ public open class CfnIdentitySource( cdkObject: software.amazon.awscdk.services.verifiedpermissions.CfnIdentitySource.IdentitySourceDetailsProperty, ) : CdkObject(cdkObject), IdentitySourceDetailsProperty { /** - * The application client IDs associated with the specified Amazon Cognito user pool that are - * enabled for this identity source. - * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-verifiedpermissions-identitysource-identitysourcedetails.html#cfn-verifiedpermissions-identitysource-identitysourcedetails-clientids) */ override fun clientIds(): List = unwrap(this).getClientIds() ?: emptyList() /** - * The well-known URL that points to this user pool's OIDC discovery endpoint. - * - * This is a URL string in the following format. This URL replaces the placeholders for both - * the AWS Region and the user pool identifier with those appropriate for this user pool. - * - * `https://cognito-idp. *<region>* .amazonaws.com/ *<user-pool-id>* - * /.well-known/openid-configuration` - * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-verifiedpermissions-identitysource-identitysourcedetails.html#cfn-verifiedpermissions-identitysource-identitysourcedetails-discoveryurl) */ override fun discoveryUrl(): String? = unwrap(this).getDiscoveryUrl() /** - * A string that identifies the type of OIDC service represented by this identity source. - * - * At this time, the only valid value is `cognito` . - * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-verifiedpermissions-identitysource-identitysourcedetails.html#cfn-verifiedpermissions-identitysource-identitysourcedetails-openidissuer) */ override fun openIdIssuer(): String? = unwrap(this).getOpenIdIssuer() /** - * The [Amazon Resource Name - * (ARN)](https://docs.aws.amazon.com//general/latest/gr/aws-arns-and-namespaces.html) of the - * Amazon Cognito user pool whose identities are accessible to this Verified Permissions policy - * store. - * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-verifiedpermissions-identitysource-identitysourcedetails.html#cfn-verifiedpermissions-identitysource-identitysourcedetails-userpoolarn) */ override fun userPoolArn(): String? = unwrap(this).getUserPoolArn() diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/verifiedpermissions/CfnIdentitySourceProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/verifiedpermissions/CfnIdentitySourceProps.kt index d8c94269f2..8d64f82a47 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/verifiedpermissions/CfnIdentitySourceProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/verifiedpermissions/CfnIdentitySourceProps.kt @@ -26,6 +26,9 @@ import kotlin.jvm.JvmName * .userPoolArn("userPoolArn") * // the properties below are optional * .clientIds(List.of("clientIds")) + * .groupConfiguration(CognitoGroupConfigurationProperty.builder() + * .groupEntityType("groupEntityType") + * .build()) * .build()) * .build()) * .policyStoreId("policyStoreId") @@ -38,18 +41,7 @@ import kotlin.jvm.JvmName */ public interface CfnIdentitySourceProps { /** - * Contains configuration information used when creating a new identity source. - * - * - * At this time, the only valid member of this structure is a Amazon Cognito user pool - * configuration. - * - * You must specify a `userPoolArn` , and optionally, a `ClientId` . - * - * - * This data type is used as a request parameter for the - * [CreateIdentitySource](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreateIdentitySource.html) - * operation. + * Contains configuration information about an identity source. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-verifiedpermissions-identitysource.html#cfn-verifiedpermissions-identitysource-configuration) */ @@ -79,50 +71,17 @@ public interface CfnIdentitySourceProps { @CdkDslMarker public interface Builder { /** - * @param configuration Contains configuration information used when creating a new identity - * source. - * - * At this time, the only valid member of this structure is a Amazon Cognito user pool - * configuration. - * - * You must specify a `userPoolArn` , and optionally, a `ClientId` . - * - * - * This data type is used as a request parameter for the - * [CreateIdentitySource](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreateIdentitySource.html) - * operation. + * @param configuration Contains configuration information about an identity source. */ public fun configuration(configuration: IResolvable) /** - * @param configuration Contains configuration information used when creating a new identity - * source. - * - * At this time, the only valid member of this structure is a Amazon Cognito user pool - * configuration. - * - * You must specify a `userPoolArn` , and optionally, a `ClientId` . - * - * - * This data type is used as a request parameter for the - * [CreateIdentitySource](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreateIdentitySource.html) - * operation. + * @param configuration Contains configuration information about an identity source. */ public fun configuration(configuration: CfnIdentitySource.IdentitySourceConfigurationProperty) /** - * @param configuration Contains configuration information used when creating a new identity - * source. - * - * At this time, the only valid member of this structure is a Amazon Cognito user pool - * configuration. - * - * You must specify a `userPoolArn` , and optionally, a `ClientId` . - * - * - * This data type is used as a request parameter for the - * [CreateIdentitySource](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreateIdentitySource.html) - * operation. + * @param configuration Contains configuration information about an identity source. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("b629a9e57b120a7a975fd1c6bbec319e646a4f38b1564a226380c164c79c8c2f") @@ -150,36 +109,14 @@ public interface CfnIdentitySourceProps { software.amazon.awscdk.services.verifiedpermissions.CfnIdentitySourceProps.builder() /** - * @param configuration Contains configuration information used when creating a new identity - * source. - * - * At this time, the only valid member of this structure is a Amazon Cognito user pool - * configuration. - * - * You must specify a `userPoolArn` , and optionally, a `ClientId` . - * - * - * This data type is used as a request parameter for the - * [CreateIdentitySource](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreateIdentitySource.html) - * operation. + * @param configuration Contains configuration information about an identity source. */ override fun configuration(configuration: IResolvable) { cdkBuilder.configuration(configuration.let(IResolvable::unwrap)) } /** - * @param configuration Contains configuration information used when creating a new identity - * source. - * - * At this time, the only valid member of this structure is a Amazon Cognito user pool - * configuration. - * - * You must specify a `userPoolArn` , and optionally, a `ClientId` . - * - * - * This data type is used as a request parameter for the - * [CreateIdentitySource](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreateIdentitySource.html) - * operation. + * @param configuration Contains configuration information about an identity source. */ override fun configuration(configuration: CfnIdentitySource.IdentitySourceConfigurationProperty) { @@ -187,18 +124,7 @@ public interface CfnIdentitySourceProps { } /** - * @param configuration Contains configuration information used when creating a new identity - * source. - * - * At this time, the only valid member of this structure is a Amazon Cognito user pool - * configuration. - * - * You must specify a `userPoolArn` , and optionally, a `ClientId` . - * - * - * This data type is used as a request parameter for the - * [CreateIdentitySource](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreateIdentitySource.html) - * operation. + * @param configuration Contains configuration information about an identity source. */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("b629a9e57b120a7a975fd1c6bbec319e646a4f38b1564a226380c164c79c8c2f") @@ -232,18 +158,7 @@ public interface CfnIdentitySourceProps { cdkObject: software.amazon.awscdk.services.verifiedpermissions.CfnIdentitySourceProps, ) : CdkObject(cdkObject), CfnIdentitySourceProps { /** - * Contains configuration information used when creating a new identity source. - * - * - * At this time, the only valid member of this structure is a Amazon Cognito user pool - * configuration. - * - * You must specify a `userPoolArn` , and optionally, a `ClientId` . - * - * - * This data type is used as a request parameter for the - * [CreateIdentitySource](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreateIdentitySource.html) - * operation. + * Contains configuration information about an identity source. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-verifiedpermissions-identitysource.html#cfn-verifiedpermissions-identitysource-configuration) */ diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/wafv2/CfnLoggingConfiguration.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/wafv2/CfnLoggingConfiguration.kt index 46459efa7c..fabe6567ff 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/wafv2/CfnLoggingConfiguration.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/wafv2/CfnLoggingConfiguration.kt @@ -242,7 +242,9 @@ public open class CfnLoggingConfiguration( * * * You can specify only the following fields for redaction: `UriPath` , `QueryString` , - * `SingleHeader` , and `Method` . + * `SingleHeader` , and `Method` . > This setting has no impact on request sampling. With + * request sampling, the only way to exclude fields is by disabling sampling in the web ACL + * visibility configuration. * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-loggingconfiguration.html#cfn-wafv2-loggingconfiguration-redactedfields) @@ -262,7 +264,9 @@ public open class CfnLoggingConfiguration( * * * You can specify only the following fields for redaction: `UriPath` , `QueryString` , - * `SingleHeader` , and `Method` . + * `SingleHeader` , and `Method` . > This setting has no impact on request sampling. With + * request sampling, the only way to exclude fields is by disabling sampling in the web ACL + * visibility configuration. * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-loggingconfiguration.html#cfn-wafv2-loggingconfiguration-redactedfields) @@ -282,7 +286,9 @@ public open class CfnLoggingConfiguration( * * * You can specify only the following fields for redaction: `UriPath` , `QueryString` , - * `SingleHeader` , and `Method` . + * `SingleHeader` , and `Method` . > This setting has no impact on request sampling. With + * request sampling, the only way to exclude fields is by disabling sampling in the web ACL + * visibility configuration. * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-loggingconfiguration.html#cfn-wafv2-loggingconfiguration-redactedfields) @@ -363,7 +369,9 @@ public open class CfnLoggingConfiguration( * * * You can specify only the following fields for redaction: `UriPath` , `QueryString` , - * `SingleHeader` , and `Method` . + * `SingleHeader` , and `Method` . > This setting has no impact on request sampling. With + * request sampling, the only way to exclude fields is by disabling sampling in the web ACL + * visibility configuration. * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-loggingconfiguration.html#cfn-wafv2-loggingconfiguration-redactedfields) @@ -385,7 +393,9 @@ public open class CfnLoggingConfiguration( * * * You can specify only the following fields for redaction: `UriPath` , `QueryString` , - * `SingleHeader` , and `Method` . + * `SingleHeader` , and `Method` . > This setting has no impact on request sampling. With + * request sampling, the only way to exclude fields is by disabling sampling in the web ACL + * visibility configuration. * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-loggingconfiguration.html#cfn-wafv2-loggingconfiguration-redactedfields) @@ -407,7 +417,9 @@ public open class CfnLoggingConfiguration( * * * You can specify only the following fields for redaction: `UriPath` , `QueryString` , - * `SingleHeader` , and `Method` . + * `SingleHeader` , and `Method` . > This setting has no impact on request sampling. With + * request sampling, the only way to exclude fields is by disabling sampling in the web ACL + * visibility configuration. * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-loggingconfiguration.html#cfn-wafv2-loggingconfiguration-redactedfields) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/wafv2/CfnLoggingConfigurationProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/wafv2/CfnLoggingConfigurationProps.kt index a3a3e7107f..7eb81704df 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/wafv2/CfnLoggingConfigurationProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/wafv2/CfnLoggingConfigurationProps.kt @@ -77,7 +77,9 @@ public interface CfnLoggingConfigurationProps { * * * You can specify only the following fields for redaction: `UriPath` , `QueryString` , - * `SingleHeader` , and `Method` . + * `SingleHeader` , and `Method` . > This setting has no impact on request sampling. With request + * sampling, the only way to exclude fields is by disabling sampling in the web ACL visibility + * configuration. * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-loggingconfiguration.html#cfn-wafv2-loggingconfiguration-redactedfields) @@ -132,7 +134,9 @@ public interface CfnLoggingConfigurationProps { * * * You can specify only the following fields for redaction: `UriPath` , `QueryString` , - * `SingleHeader` , and `Method` . + * `SingleHeader` , and `Method` . > This setting has no impact on request sampling. With + * request sampling, the only way to exclude fields is by disabling sampling in the web ACL + * visibility configuration. */ public fun redactedFields(redactedFields: IResolvable) @@ -147,7 +151,9 @@ public interface CfnLoggingConfigurationProps { * * * You can specify only the following fields for redaction: `UriPath` , `QueryString` , - * `SingleHeader` , and `Method` . + * `SingleHeader` , and `Method` . > This setting has no impact on request sampling. With + * request sampling, the only way to exclude fields is by disabling sampling in the web ACL + * visibility configuration. */ public fun redactedFields(redactedFields: List) @@ -162,7 +168,9 @@ public interface CfnLoggingConfigurationProps { * * * You can specify only the following fields for redaction: `UriPath` , `QueryString` , - * `SingleHeader` , and `Method` . + * `SingleHeader` , and `Method` . > This setting has no impact on request sampling. With + * request sampling, the only way to exclude fields is by disabling sampling in the web ACL + * visibility configuration. */ public fun redactedFields(vararg redactedFields: Any) @@ -218,7 +226,9 @@ public interface CfnLoggingConfigurationProps { * * * You can specify only the following fields for redaction: `UriPath` , `QueryString` , - * `SingleHeader` , and `Method` . + * `SingleHeader` , and `Method` . > This setting has no impact on request sampling. With + * request sampling, the only way to exclude fields is by disabling sampling in the web ACL + * visibility configuration. */ override fun redactedFields(redactedFields: IResolvable) { cdkBuilder.redactedFields(redactedFields.let(IResolvable::unwrap)) @@ -235,7 +245,9 @@ public interface CfnLoggingConfigurationProps { * * * You can specify only the following fields for redaction: `UriPath` , `QueryString` , - * `SingleHeader` , and `Method` . + * `SingleHeader` , and `Method` . > This setting has no impact on request sampling. With + * request sampling, the only way to exclude fields is by disabling sampling in the web ACL + * visibility configuration. */ override fun redactedFields(redactedFields: List) { cdkBuilder.redactedFields(redactedFields.map{CdkObjectWrappers.unwrap(it)}) @@ -252,7 +264,9 @@ public interface CfnLoggingConfigurationProps { * * * You can specify only the following fields for redaction: `UriPath` , `QueryString` , - * `SingleHeader` , and `Method` . + * `SingleHeader` , and `Method` . > This setting has no impact on request sampling. With + * request sampling, the only way to exclude fields is by disabling sampling in the web ACL + * visibility configuration. */ override fun redactedFields(vararg redactedFields: Any): Unit = redactedFields(redactedFields.toList()) @@ -305,7 +319,9 @@ public interface CfnLoggingConfigurationProps { * * * You can specify only the following fields for redaction: `UriPath` , `QueryString` , - * `SingleHeader` , and `Method` . + * `SingleHeader` , and `Method` . > This setting has no impact on request sampling. With + * request sampling, the only way to exclude fields is by disabling sampling in the web ACL + * visibility configuration. * * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-loggingconfiguration.html#cfn-wafv2-loggingconfiguration-redactedfields) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/wafv2/CfnRuleGroup.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/wafv2/CfnRuleGroup.kt index 8265f65f05..dc2406245a 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/wafv2/CfnRuleGroup.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/wafv2/CfnRuleGroup.kt @@ -2096,11 +2096,13 @@ public open class CfnRuleGroup( * What AWS WAF should do if the body is larger than AWS WAF can inspect. * * AWS WAF does not support inspecting the entire contents of the web request body if the body - * exceeds the limit for the resource type. If the body is larger than the limit, the underlying - * host service only forwards the contents that are below the limit to AWS WAF for inspection. + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. * - * The default limit is 8 KB (8,192 bytes) for regional resources and 16 KB (16,384 bytes) for - * CloudFront distributions. For CloudFront distributions, you can increase the limit in the web + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the web * ACL `AssociationConfig` , for additional processing fees. * * The options for oversize handling are the following: @@ -2129,12 +2131,14 @@ public open class CfnRuleGroup( * @param oversizeHandling What AWS WAF should do if the body is larger than AWS WAF can * inspect. * AWS WAF does not support inspecting the entire contents of the web request body if the body - * exceeds the limit for the resource type. If the body is larger than the limit, the underlying - * host service only forwards the contents that are below the limit to AWS WAF for inspection. + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. * - * The default limit is 8 KB (8,192 bytes) for regional resources and 16 KB (16,384 bytes) for - * CloudFront distributions. For CloudFront distributions, you can increase the limit in the web - * ACL `AssociationConfig` , for additional processing fees. + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * The options for oversize handling are the following: * @@ -2161,12 +2165,14 @@ public open class CfnRuleGroup( * @param oversizeHandling What AWS WAF should do if the body is larger than AWS WAF can * inspect. * AWS WAF does not support inspecting the entire contents of the web request body if the body - * exceeds the limit for the resource type. If the body is larger than the limit, the underlying - * host service only forwards the contents that are below the limit to AWS WAF for inspection. + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. * - * The default limit is 8 KB (8,192 bytes) for regional resources and 16 KB (16,384 bytes) for - * CloudFront distributions. For CloudFront distributions, you can increase the limit in the web - * ACL `AssociationConfig` , for additional processing fees. + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * The options for oversize handling are the following: * @@ -2196,12 +2202,14 @@ public open class CfnRuleGroup( * What AWS WAF should do if the body is larger than AWS WAF can inspect. * * AWS WAF does not support inspecting the entire contents of the web request body if the body - * exceeds the limit for the resource type. If the body is larger than the limit, the underlying - * host service only forwards the contents that are below the limit to AWS WAF for inspection. + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. * - * The default limit is 8 KB (8,192 bytes) for regional resources and 16 KB (16,384 bytes) for - * CloudFront distributions. For CloudFront distributions, you can increase the limit in the web - * ACL `AssociationConfig` , for additional processing fees. + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * The options for oversize handling are the following: * @@ -4537,6 +4545,9 @@ public open class CfnRuleGroup( * * In this documentation, the descriptions of the individual fields talk about specifying the * web request component to inspect, but for field redaction, you are specifying the component type * to redact from the logs. + * * If you have request sampling enabled, the redacted fields configuration for logging has no + * impact on sampling. The only way to exclude fields from request sampling is by disabling sampling + * in the web ACL visibility configuration. * * Example: * @@ -4612,10 +4623,15 @@ public open class CfnRuleGroup( * contains any additional data that you want to send to your web server as the HTTP request body, * such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the underlying - * host service. For regional resources, the limit is 8 KB (8,192 bytes) and for CloudFront - * distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you can increase - * the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the web + * ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `Body` object * configuration. @@ -4687,10 +4703,15 @@ public open class CfnRuleGroup( * contains any additional data that you want to send to your web server as the HTTP request body, * such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the underlying - * host service. For regional resources, the limit is 8 KB (8,192 bytes) and for CloudFront - * distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you can increase - * the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the web + * ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `JsonBody` object * configuration. @@ -4770,10 +4791,15 @@ public open class CfnRuleGroup( * that contains any additional data that you want to send to your web server as the HTTP request * body, such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the - * underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for - * CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you - * can increase the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `Body` object * configuration. @@ -4786,10 +4812,15 @@ public open class CfnRuleGroup( * that contains any additional data that you want to send to your web server as the HTTP request * body, such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the - * underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for - * CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you - * can increase the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `Body` object * configuration. @@ -4802,10 +4833,15 @@ public open class CfnRuleGroup( * that contains any additional data that you want to send to your web server as the HTTP request * body, such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the - * underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for - * CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you - * can increase the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `Body` object * configuration. @@ -4967,10 +5003,15 @@ public open class CfnRuleGroup( * that contains any additional data that you want to send to your web server as the HTTP request * body, such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the - * underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for - * CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you - * can increase the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `JsonBody` object * configuration. @@ -4983,10 +5024,15 @@ public open class CfnRuleGroup( * that contains any additional data that you want to send to your web server as the HTTP request * body, such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the - * underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for - * CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you - * can increase the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `JsonBody` object * configuration. @@ -4999,10 +5045,15 @@ public open class CfnRuleGroup( * that contains any additional data that you want to send to your web server as the HTTP request * body, such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the - * underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for - * CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you - * can increase the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `JsonBody` object * configuration. @@ -5071,10 +5122,15 @@ public open class CfnRuleGroup( * that contains any additional data that you want to send to your web server as the HTTP request * body, such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the - * underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for - * CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you - * can increase the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `Body` object * configuration. @@ -5089,10 +5145,15 @@ public open class CfnRuleGroup( * that contains any additional data that you want to send to your web server as the HTTP request * body, such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the - * underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for - * CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you - * can increase the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `Body` object * configuration. @@ -5107,10 +5168,15 @@ public open class CfnRuleGroup( * that contains any additional data that you want to send to your web server as the HTTP request * body, such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the - * underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for - * CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you - * can increase the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `Body` object * configuration. @@ -5287,10 +5353,15 @@ public open class CfnRuleGroup( * that contains any additional data that you want to send to your web server as the HTTP request * body, such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the - * underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for - * CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you - * can increase the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `JsonBody` object * configuration. @@ -5305,10 +5376,15 @@ public open class CfnRuleGroup( * that contains any additional data that you want to send to your web server as the HTTP request * body, such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the - * underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for - * CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you - * can increase the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `JsonBody` object * configuration. @@ -5323,10 +5399,15 @@ public open class CfnRuleGroup( * that contains any additional data that you want to send to your web server as the HTTP request * body, such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the - * underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for - * CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you - * can increase the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `JsonBody` object * configuration. @@ -5408,10 +5489,15 @@ public open class CfnRuleGroup( * that contains any additional data that you want to send to your web server as the HTTP request * body, such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the - * underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for - * CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you - * can increase the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `Body` object * configuration. @@ -5483,10 +5569,15 @@ public open class CfnRuleGroup( * that contains any additional data that you want to send to your web server as the HTTP request * body, such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the - * underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for - * CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you - * can increase the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `JsonBody` object * configuration. @@ -7292,11 +7383,13 @@ public open class CfnRuleGroup( * What AWS WAF should do if the body is larger than AWS WAF can inspect. * * AWS WAF does not support inspecting the entire contents of the web request body if the body - * exceeds the limit for the resource type. If the body is larger than the limit, the underlying - * host service only forwards the contents that are below the limit to AWS WAF for inspection. + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. * - * The default limit is 8 KB (8,192 bytes) for regional resources and 16 KB (16,384 bytes) for - * CloudFront distributions. For CloudFront distributions, you can increase the limit in the web + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the web * ACL `AssociationConfig` , for additional processing fees. * * The options for oversize handling are the following: @@ -7381,12 +7474,14 @@ public open class CfnRuleGroup( * @param oversizeHandling What AWS WAF should do if the body is larger than AWS WAF can * inspect. * AWS WAF does not support inspecting the entire contents of the web request body if the body - * exceeds the limit for the resource type. If the body is larger than the limit, the underlying - * host service only forwards the contents that are below the limit to AWS WAF for inspection. + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. * - * The default limit is 8 KB (8,192 bytes) for regional resources and 16 KB (16,384 bytes) for - * CloudFront distributions. For CloudFront distributions, you can increase the limit in the web - * ACL `AssociationConfig` , for additional processing fees. + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * The options for oversize handling are the following: * @@ -7478,12 +7573,14 @@ public open class CfnRuleGroup( * @param oversizeHandling What AWS WAF should do if the body is larger than AWS WAF can * inspect. * AWS WAF does not support inspecting the entire contents of the web request body if the body - * exceeds the limit for the resource type. If the body is larger than the limit, the underlying - * host service only forwards the contents that are below the limit to AWS WAF for inspection. + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. * - * The default limit is 8 KB (8,192 bytes) for regional resources and 16 KB (16,384 bytes) for - * CloudFront distributions. For CloudFront distributions, you can increase the limit in the web - * ACL `AssociationConfig` , for additional processing fees. + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * The options for oversize handling are the following: * @@ -7564,12 +7661,14 @@ public open class CfnRuleGroup( * What AWS WAF should do if the body is larger than AWS WAF can inspect. * * AWS WAF does not support inspecting the entire contents of the web request body if the body - * exceeds the limit for the resource type. If the body is larger than the limit, the underlying - * host service only forwards the contents that are below the limit to AWS WAF for inspection. + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. * - * The default limit is 8 KB (8,192 bytes) for regional resources and 16 KB (16,384 bytes) for - * CloudFront distributions. For CloudFront distributions, you can increase the limit in the web - * ACL `AssociationConfig` , for additional processing fees. + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * The options for oversize handling are the following: * @@ -10409,6 +10508,17 @@ public open class CfnRuleGroup( public fun customKeys(): Any? = unwrap(this).getCustomKeys() /** + * The amount of time, in seconds, that AWS WAF should include in its request counts, looking + * back from the current time. + * + * For example, for a setting of 120, when AWS WAF checks the rate, it counts the requests for + * the 2 minutes immediately preceding the current time. Valid settings are 60, 120, 300, and 600. + * + * This setting doesn't determine how often AWS WAF checks the rate, but how far back it looks + * each time it checks. AWS WAF checks the rate about every 10 seconds. + * + * Default: `300` (5 minutes) + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ratebasedstatement.html#cfn-wafv2-rulegroup-ratebasedstatement-evaluationwindowsec) */ public fun evaluationWindowSec(): Number? = unwrap(this).getEvaluationWindowSec() @@ -10518,7 +10628,16 @@ public open class CfnRuleGroup( public fun customKeys(vararg customKeys: Any) /** - * @param evaluationWindowSec the value to be set. + * @param evaluationWindowSec The amount of time, in seconds, that AWS WAF should include in + * its request counts, looking back from the current time. + * For example, for a setting of 120, when AWS WAF checks the rate, it counts the requests for + * the 2 minutes immediately preceding the current time. Valid settings are 60, 120, 300, and + * 600. + * + * This setting doesn't determine how often AWS WAF checks the rate, but how far back it looks + * each time it checks. AWS WAF checks the rate about every 10 seconds. + * + * Default: `300` (5 minutes) */ public fun evaluationWindowSec(evaluationWindowSec: Number) @@ -10679,7 +10798,16 @@ public open class CfnRuleGroup( override fun customKeys(vararg customKeys: Any): Unit = customKeys(customKeys.toList()) /** - * @param evaluationWindowSec the value to be set. + * @param evaluationWindowSec The amount of time, in seconds, that AWS WAF should include in + * its request counts, looking back from the current time. + * For example, for a setting of 120, when AWS WAF checks the rate, it counts the requests for + * the 2 minutes immediately preceding the current time. Valid settings are 60, 120, 300, and + * 600. + * + * This setting doesn't determine how often AWS WAF checks the rate, but how far back it looks + * each time it checks. AWS WAF checks the rate about every 10 seconds. + * + * Default: `300` (5 minutes) */ override fun evaluationWindowSec(evaluationWindowSec: Number) { cdkBuilder.evaluationWindowSec(evaluationWindowSec) @@ -10845,6 +10973,18 @@ public open class CfnRuleGroup( override fun customKeys(): Any? = unwrap(this).getCustomKeys() /** + * The amount of time, in seconds, that AWS WAF should include in its request counts, looking + * back from the current time. + * + * For example, for a setting of 120, when AWS WAF checks the rate, it counts the requests for + * the 2 minutes immediately preceding the current time. Valid settings are 60, 120, 300, and + * 600. + * + * This setting doesn't determine how often AWS WAF checks the rate, but how far back it looks + * each time it checks. AWS WAF checks the rate about every 10 seconds. + * + * Default: `300` (5 minutes) + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ratebasedstatement.html#cfn-wafv2-rulegroup-ratebasedstatement-evaluationwindowsec) */ override fun evaluationWindowSec(): Number? = unwrap(this).getEvaluationWindowSec() @@ -14037,11 +14177,10 @@ public open class CfnRuleGroup( * than 100 bytes. * * If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of bytes - * of the body up to the limit for the web ACL. By default, for regional web ACLs, this limit is 8 KB - * (8,192 bytes) and for CloudFront web ACLs, this limit is 16 KB (16,384 bytes). For CloudFront web - * ACLs, you can increase the limit in the web ACL `AssociationConfig` , for additional fees. If you - * know that the request body for your web requests should never exceed the inspection limit, you - * could use a size constraint statement to block requests that have a larger request body size. + * in the body up to the limit for the web ACL and protected resource type. If you know that the + * request body for your web requests should never exceed the inspection limit, you can use a size + * constraint statement to block requests that have a larger request body size. For more information + * about the inspection limits, see `Body` and `JsonBody` settings for the `FieldToMatch` data type. * * If you choose URI for the value of Part of the request to filter on, the slash (/) in the URI * counts as one character. For example, the URI `/logo.jpg` is nine characters long. @@ -15286,12 +15425,11 @@ public open class CfnRuleGroup( * longer than 100 bytes. * * If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of - * bytes of the body up to the limit for the web ACL. By default, for regional web ACLs, this limit - * is 8 KB (8,192 bytes) and for CloudFront web ACLs, this limit is 16 KB (16,384 bytes). For - * CloudFront web ACLs, you can increase the limit in the web ACL `AssociationConfig` , for - * additional fees. If you know that the request body for your web requests should never exceed the - * inspection limit, you could use a size constraint statement to block requests that have a larger - * request body size. + * bytes in the body up to the limit for the web ACL and protected resource type. If you know that + * the request body for your web requests should never exceed the inspection limit, you can use a + * size constraint statement to block requests that have a larger request body size. For more + * information about the inspection limits, see `Body` and `JsonBody` settings for the + * `FieldToMatch` data type. * * If you choose URI for the value of Part of the request to filter on, the slash (/) in the URI * counts as one character. For example, the URI `/logo.jpg` is nine characters long. @@ -15924,12 +16062,11 @@ public open class CfnRuleGroup( * longer than 100 bytes. * * If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of - * bytes of the body up to the limit for the web ACL. By default, for regional web ACLs, this - * limit is 8 KB (8,192 bytes) and for CloudFront web ACLs, this limit is 16 KB (16,384 bytes). - * For CloudFront web ACLs, you can increase the limit in the web ACL `AssociationConfig` , for - * additional fees. If you know that the request body for your web requests should never exceed - * the inspection limit, you could use a size constraint statement to block requests that have a - * larger request body size. + * bytes in the body up to the limit for the web ACL and protected resource type. If you know + * that the request body for your web requests should never exceed the inspection limit, you can + * use a size constraint statement to block requests that have a larger request body size. For + * more information about the inspection limits, see `Body` and `JsonBody` settings for the + * `FieldToMatch` data type. * * If you choose URI for the value of Part of the request to filter on, the slash (/) in the * URI counts as one character. For example, the URI `/logo.jpg` is nine characters long. @@ -15944,12 +16081,11 @@ public open class CfnRuleGroup( * longer than 100 bytes. * * If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of - * bytes of the body up to the limit for the web ACL. By default, for regional web ACLs, this - * limit is 8 KB (8,192 bytes) and for CloudFront web ACLs, this limit is 16 KB (16,384 bytes). - * For CloudFront web ACLs, you can increase the limit in the web ACL `AssociationConfig` , for - * additional fees. If you know that the request body for your web requests should never exceed - * the inspection limit, you could use a size constraint statement to block requests that have a - * larger request body size. + * bytes in the body up to the limit for the web ACL and protected resource type. If you know + * that the request body for your web requests should never exceed the inspection limit, you can + * use a size constraint statement to block requests that have a larger request body size. For + * more information about the inspection limits, see `Body` and `JsonBody` settings for the + * `FieldToMatch` data type. * * If you choose URI for the value of Part of the request to filter on, the slash (/) in the * URI counts as one character. For example, the URI `/logo.jpg` is nine characters long. @@ -15964,12 +16100,11 @@ public open class CfnRuleGroup( * longer than 100 bytes. * * If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of - * bytes of the body up to the limit for the web ACL. By default, for regional web ACLs, this - * limit is 8 KB (8,192 bytes) and for CloudFront web ACLs, this limit is 16 KB (16,384 bytes). - * For CloudFront web ACLs, you can increase the limit in the web ACL `AssociationConfig` , for - * additional fees. If you know that the request body for your web requests should never exceed - * the inspection limit, you could use a size constraint statement to block requests that have a - * larger request body size. + * bytes in the body up to the limit for the web ACL and protected resource type. If you know + * that the request body for your web requests should never exceed the inspection limit, you can + * use a size constraint statement to block requests that have a larger request body size. For + * more information about the inspection limits, see `Body` and `JsonBody` settings for the + * `FieldToMatch` data type. * * If you choose URI for the value of Part of the request to filter on, the slash (/) in the * URI counts as one character. For example, the URI `/logo.jpg` is nine characters long. @@ -16688,12 +16823,11 @@ public open class CfnRuleGroup( * longer than 100 bytes. * * If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of - * bytes of the body up to the limit for the web ACL. By default, for regional web ACLs, this - * limit is 8 KB (8,192 bytes) and for CloudFront web ACLs, this limit is 16 KB (16,384 bytes). - * For CloudFront web ACLs, you can increase the limit in the web ACL `AssociationConfig` , for - * additional fees. If you know that the request body for your web requests should never exceed - * the inspection limit, you could use a size constraint statement to block requests that have a - * larger request body size. + * bytes in the body up to the limit for the web ACL and protected resource type. If you know + * that the request body for your web requests should never exceed the inspection limit, you can + * use a size constraint statement to block requests that have a larger request body size. For + * more information about the inspection limits, see `Body` and `JsonBody` settings for the + * `FieldToMatch` data type. * * If you choose URI for the value of Part of the request to filter on, the slash (/) in the * URI counts as one character. For example, the URI `/logo.jpg` is nine characters long. @@ -16710,12 +16844,11 @@ public open class CfnRuleGroup( * longer than 100 bytes. * * If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of - * bytes of the body up to the limit for the web ACL. By default, for regional web ACLs, this - * limit is 8 KB (8,192 bytes) and for CloudFront web ACLs, this limit is 16 KB (16,384 bytes). - * For CloudFront web ACLs, you can increase the limit in the web ACL `AssociationConfig` , for - * additional fees. If you know that the request body for your web requests should never exceed - * the inspection limit, you could use a size constraint statement to block requests that have a - * larger request body size. + * bytes in the body up to the limit for the web ACL and protected resource type. If you know + * that the request body for your web requests should never exceed the inspection limit, you can + * use a size constraint statement to block requests that have a larger request body size. For + * more information about the inspection limits, see `Body` and `JsonBody` settings for the + * `FieldToMatch` data type. * * If you choose URI for the value of Part of the request to filter on, the slash (/) in the * URI counts as one character. For example, the URI `/logo.jpg` is nine characters long. @@ -16733,12 +16866,11 @@ public open class CfnRuleGroup( * longer than 100 bytes. * * If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of - * bytes of the body up to the limit for the web ACL. By default, for regional web ACLs, this - * limit is 8 KB (8,192 bytes) and for CloudFront web ACLs, this limit is 16 KB (16,384 bytes). - * For CloudFront web ACLs, you can increase the limit in the web ACL `AssociationConfig` , for - * additional fees. If you know that the request body for your web requests should never exceed - * the inspection limit, you could use a size constraint statement to block requests that have a - * larger request body size. + * bytes in the body up to the limit for the web ACL and protected resource type. If you know + * that the request body for your web requests should never exceed the inspection limit, you can + * use a size constraint statement to block requests that have a larger request body size. For + * more information about the inspection limits, see `Body` and `JsonBody` settings for the + * `FieldToMatch` data type. * * If you choose URI for the value of Part of the request to filter on, the slash (/) in the * URI counts as one character. For example, the URI `/logo.jpg` is nine characters long. @@ -17039,12 +17171,11 @@ public open class CfnRuleGroup( * longer than 100 bytes. * * If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of - * bytes of the body up to the limit for the web ACL. By default, for regional web ACLs, this - * limit is 8 KB (8,192 bytes) and for CloudFront web ACLs, this limit is 16 KB (16,384 bytes). - * For CloudFront web ACLs, you can increase the limit in the web ACL `AssociationConfig` , for - * additional fees. If you know that the request body for your web requests should never exceed - * the inspection limit, you could use a size constraint statement to block requests that have a - * larger request body size. + * bytes in the body up to the limit for the web ACL and protected resource type. If you know + * that the request body for your web requests should never exceed the inspection limit, you can + * use a size constraint statement to block requests that have a larger request body size. For + * more information about the inspection limits, see `Body` and `JsonBody` settings for the + * `FieldToMatch` data type. * * If you choose URI for the value of Part of the request to filter on, the slash (/) in the * URI counts as one character. For example, the URI `/logo.jpg` is nine characters long. @@ -17276,6 +17407,12 @@ public open class CfnRuleGroup( * * You can view the sampled requests through the AWS WAF console. * + * + * Request sampling doesn't provide a field redaction option, and any field redaction that you + * specify in your logging configuration doesn't affect sampling. The only way to exclude fields + * from request sampling is by disabling sampling in the web ACL visibility configuration. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-visibilityconfig.html#cfn-wafv2-rulegroup-visibilityconfig-sampledrequestsenabled) */ public fun sampledRequestsEnabled(): Any @@ -17329,6 +17466,11 @@ public open class CfnRuleGroup( * @param sampledRequestsEnabled Indicates whether AWS WAF should store a sampling of the web * requests that match the rules. * You can view the sampled requests through the AWS WAF console. + * + * + * Request sampling doesn't provide a field redaction option, and any field redaction that you + * specify in your logging configuration doesn't affect sampling. The only way to exclude fields + * from request sampling is by disabling sampling in the web ACL visibility configuration. */ public fun sampledRequestsEnabled(sampledRequestsEnabled: Boolean) @@ -17336,6 +17478,11 @@ public open class CfnRuleGroup( * @param sampledRequestsEnabled Indicates whether AWS WAF should store a sampling of the web * requests that match the rules. * You can view the sampled requests through the AWS WAF console. + * + * + * Request sampling doesn't provide a field redaction option, and any field redaction that you + * specify in your logging configuration doesn't affect sampling. The only way to exclude fields + * from request sampling is by disabling sampling in the web ACL visibility configuration. */ public fun sampledRequestsEnabled(sampledRequestsEnabled: IResolvable) } @@ -17395,6 +17542,11 @@ public open class CfnRuleGroup( * @param sampledRequestsEnabled Indicates whether AWS WAF should store a sampling of the web * requests that match the rules. * You can view the sampled requests through the AWS WAF console. + * + * + * Request sampling doesn't provide a field redaction option, and any field redaction that you + * specify in your logging configuration doesn't affect sampling. The only way to exclude fields + * from request sampling is by disabling sampling in the web ACL visibility configuration. */ override fun sampledRequestsEnabled(sampledRequestsEnabled: Boolean) { cdkBuilder.sampledRequestsEnabled(sampledRequestsEnabled) @@ -17404,6 +17556,11 @@ public open class CfnRuleGroup( * @param sampledRequestsEnabled Indicates whether AWS WAF should store a sampling of the web * requests that match the rules. * You can view the sampled requests through the AWS WAF console. + * + * + * Request sampling doesn't provide a field redaction option, and any field redaction that you + * specify in your logging configuration doesn't affect sampling. The only way to exclude fields + * from request sampling is by disabling sampling in the web ACL visibility configuration. */ override fun sampledRequestsEnabled(sampledRequestsEnabled: IResolvable) { cdkBuilder.sampledRequestsEnabled(sampledRequestsEnabled.let(IResolvable::unwrap)) @@ -17451,6 +17608,12 @@ public open class CfnRuleGroup( * * You can view the sampled requests through the AWS WAF console. * + * + * Request sampling doesn't provide a field redaction option, and any field redaction that you + * specify in your logging configuration doesn't affect sampling. The only way to exclude fields + * from request sampling is by disabling sampling in the web ACL visibility configuration. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-visibilityconfig.html#cfn-wafv2-rulegroup-visibilityconfig-sampledrequestsenabled) */ override fun sampledRequestsEnabled(): Any = unwrap(this).getSampledRequestsEnabled() diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/wafv2/CfnWebACL.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/wafv2/CfnWebACL.kt index 1adac9c6a8..46628f234f 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/wafv2/CfnWebACL.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/wafv2/CfnWebACL.kt @@ -413,8 +413,10 @@ public open class CfnWebACL( * Specifies custom configurations for the associations between the web ACL and protected * resources. * - * Use this to customize the maximum size of the request body that your protected CloudFront - * distributions forward to AWS WAF for inspection. The default is 16 KB (16,384 bytes). + * Use this to customize the maximum size of the request body that your protected resources + * forward to AWS WAF for inspection. You can customize this setting for CloudFront, API Gateway, + * Amazon Cognito, App Runner, or Verified Access resources. The default setting is 16 KB (16,384 + * bytes). * * * You are charged additional fees when your protected resources forward body sizes that are @@ -422,6 +424,8 @@ public open class CfnWebACL( * Pricing](https://docs.aws.amazon.com/waf/pricing/) . * * + * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webacl.html#cfn-wafv2-webacl-associationconfig) * @param associationConfig Specifies custom configurations for the associations between the web * ACL and protected resources. @@ -432,8 +436,10 @@ public open class CfnWebACL( * Specifies custom configurations for the associations between the web ACL and protected * resources. * - * Use this to customize the maximum size of the request body that your protected CloudFront - * distributions forward to AWS WAF for inspection. The default is 16 KB (16,384 bytes). + * Use this to customize the maximum size of the request body that your protected resources + * forward to AWS WAF for inspection. You can customize this setting for CloudFront, API Gateway, + * Amazon Cognito, App Runner, or Verified Access resources. The default setting is 16 KB (16,384 + * bytes). * * * You are charged additional fees when your protected resources forward body sizes that are @@ -441,6 +447,8 @@ public open class CfnWebACL( * Pricing](https://docs.aws.amazon.com/waf/pricing/) . * * + * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webacl.html#cfn-wafv2-webacl-associationconfig) * @param associationConfig Specifies custom configurations for the associations between the web * ACL and protected resources. @@ -451,8 +459,10 @@ public open class CfnWebACL( * Specifies custom configurations for the associations between the web ACL and protected * resources. * - * Use this to customize the maximum size of the request body that your protected CloudFront - * distributions forward to AWS WAF for inspection. The default is 16 KB (16,384 bytes). + * Use this to customize the maximum size of the request body that your protected resources + * forward to AWS WAF for inspection. You can customize this setting for CloudFront, API Gateway, + * Amazon Cognito, App Runner, or Verified Access resources. The default setting is 16 KB (16,384 + * bytes). * * * You are charged additional fees when your protected resources forward body sizes that are @@ -460,6 +470,8 @@ public open class CfnWebACL( * Pricing](https://docs.aws.amazon.com/waf/pricing/) . * * + * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webacl.html#cfn-wafv2-webacl-associationconfig) * @param associationConfig Specifies custom configurations for the associations between the web * ACL and protected resources. @@ -791,8 +803,10 @@ public open class CfnWebACL( * Specifies custom configurations for the associations between the web ACL and protected * resources. * - * Use this to customize the maximum size of the request body that your protected CloudFront - * distributions forward to AWS WAF for inspection. The default is 16 KB (16,384 bytes). + * Use this to customize the maximum size of the request body that your protected resources + * forward to AWS WAF for inspection. You can customize this setting for CloudFront, API Gateway, + * Amazon Cognito, App Runner, or Verified Access resources. The default setting is 16 KB (16,384 + * bytes). * * * You are charged additional fees when your protected resources forward body sizes that are @@ -800,6 +814,8 @@ public open class CfnWebACL( * Pricing](https://docs.aws.amazon.com/waf/pricing/) . * * + * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webacl.html#cfn-wafv2-webacl-associationconfig) * @param associationConfig Specifies custom configurations for the associations between the web * ACL and protected resources. @@ -812,8 +828,10 @@ public open class CfnWebACL( * Specifies custom configurations for the associations between the web ACL and protected * resources. * - * Use this to customize the maximum size of the request body that your protected CloudFront - * distributions forward to AWS WAF for inspection. The default is 16 KB (16,384 bytes). + * Use this to customize the maximum size of the request body that your protected resources + * forward to AWS WAF for inspection. You can customize this setting for CloudFront, API Gateway, + * Amazon Cognito, App Runner, or Verified Access resources. The default setting is 16 KB (16,384 + * bytes). * * * You are charged additional fees when your protected resources forward body sizes that are @@ -821,6 +839,8 @@ public open class CfnWebACL( * Pricing](https://docs.aws.amazon.com/waf/pricing/) . * * + * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webacl.html#cfn-wafv2-webacl-associationconfig) * @param associationConfig Specifies custom configurations for the associations between the web * ACL and protected resources. @@ -833,8 +853,10 @@ public open class CfnWebACL( * Specifies custom configurations for the associations between the web ACL and protected * resources. * - * Use this to customize the maximum size of the request body that your protected CloudFront - * distributions forward to AWS WAF for inspection. The default is 16 KB (16,384 bytes). + * Use this to customize the maximum size of the request body that your protected resources + * forward to AWS WAF for inspection. You can customize this setting for CloudFront, API Gateway, + * Amazon Cognito, App Runner, or Verified Access resources. The default setting is 16 KB (16,384 + * bytes). * * * You are charged additional fees when your protected resources forward body sizes that are @@ -842,6 +864,8 @@ public open class CfnWebACL( * Pricing](https://docs.aws.amazon.com/waf/pricing/) . * * + * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webacl.html#cfn-wafv2-webacl-associationconfig) * @param associationConfig Specifies custom configurations for the associations between the web * ACL and protected resources. @@ -2594,8 +2618,10 @@ public open class CfnWebACL( * Specifies custom configurations for the associations between the web ACL and protected * resources. * - * Use this to customize the maximum size of the request body that your protected CloudFront - * distributions forward to AWS WAF for inspection. The default is 16 KB (16,384 bytes). + * Use this to customize the maximum size of the request body that your protected resources + * forward to AWS WAF for inspection. You can customize this setting for CloudFront, API Gateway, + * Amazon Cognito, App Runner, or Verified Access resources. The default setting is 16 KB (16,384 + * bytes). * * * You are charged additional fees when your protected resources forward body sizes that are @@ -2603,6 +2629,8 @@ public open class CfnWebACL( * Pricing](https://docs.aws.amazon.com/waf/pricing/) . * * + * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * Example: * * ``` @@ -2621,10 +2649,11 @@ public open class CfnWebACL( */ public interface AssociationConfigProperty { /** - * Customizes the maximum size of the request body that your protected CloudFront distributions - * forward to AWS WAF for inspection. + * Customizes the maximum size of the request body that your protected CloudFront, API Gateway, + * Amazon Cognito, App Runner, and Verified Access resources forward to AWS WAF for inspection. * - * The default size is 16 KB (16,384 bytes). + * The default size is 16 KB (16,384 bytes). You can change the setting for any of the available + * resource types. * * * You are charged additional fees when your protected resources forward body sizes that are @@ -2632,6 +2661,10 @@ public open class CfnWebACL( * Pricing](https://docs.aws.amazon.com/waf/pricing/) . * * + * Example JSON: `{ "API_GATEWAY": "KB_48", "APP_RUNNER_SERVICE": "KB_32" }` + * + * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-associationconfig.html#cfn-wafv2-webacl-associationconfig-requestbody) */ public fun requestBody(): Any? = unwrap(this).getRequestBody() @@ -2643,25 +2676,39 @@ public open class CfnWebACL( public interface Builder { /** * @param requestBody Customizes the maximum size of the request body that your protected - * CloudFront distributions forward to AWS WAF for inspection. - * The default size is 16 KB (16,384 bytes). + * CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access resources forward to + * AWS WAF for inspection. + * The default size is 16 KB (16,384 bytes). You can change the setting for any of the + * available resource types. * * * You are charged additional fees when your protected resources forward body sizes that are * larger than the default. For more information, see [AWS WAF * Pricing](https://docs.aws.amazon.com/waf/pricing/) . + * + * + * Example JSON: `{ "API_GATEWAY": "KB_48", "APP_RUNNER_SERVICE": "KB_32" }` + * + * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). */ public fun requestBody(requestBody: IResolvable) /** * @param requestBody Customizes the maximum size of the request body that your protected - * CloudFront distributions forward to AWS WAF for inspection. - * The default size is 16 KB (16,384 bytes). + * CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access resources forward to + * AWS WAF for inspection. + * The default size is 16 KB (16,384 bytes). You can change the setting for any of the + * available resource types. * * * You are charged additional fees when your protected resources forward body sizes that are * larger than the default. For more information, see [AWS WAF * Pricing](https://docs.aws.amazon.com/waf/pricing/) . + * + * + * Example JSON: `{ "API_GATEWAY": "KB_48", "APP_RUNNER_SERVICE": "KB_32" }` + * + * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). */ public fun requestBody(requestBody: Map) } @@ -2673,13 +2720,20 @@ public open class CfnWebACL( /** * @param requestBody Customizes the maximum size of the request body that your protected - * CloudFront distributions forward to AWS WAF for inspection. - * The default size is 16 KB (16,384 bytes). + * CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access resources forward to + * AWS WAF for inspection. + * The default size is 16 KB (16,384 bytes). You can change the setting for any of the + * available resource types. * * * You are charged additional fees when your protected resources forward body sizes that are * larger than the default. For more information, see [AWS WAF * Pricing](https://docs.aws.amazon.com/waf/pricing/) . + * + * + * Example JSON: `{ "API_GATEWAY": "KB_48", "APP_RUNNER_SERVICE": "KB_32" }` + * + * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). */ override fun requestBody(requestBody: IResolvable) { cdkBuilder.requestBody(requestBody.let(IResolvable::unwrap)) @@ -2687,13 +2741,20 @@ public open class CfnWebACL( /** * @param requestBody Customizes the maximum size of the request body that your protected - * CloudFront distributions forward to AWS WAF for inspection. - * The default size is 16 KB (16,384 bytes). + * CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access resources forward to + * AWS WAF for inspection. + * The default size is 16 KB (16,384 bytes). You can change the setting for any of the + * available resource types. * * * You are charged additional fees when your protected resources forward body sizes that are * larger than the default. For more information, see [AWS WAF * Pricing](https://docs.aws.amazon.com/waf/pricing/) . + * + * + * Example JSON: `{ "API_GATEWAY": "KB_48", "APP_RUNNER_SERVICE": "KB_32" }` + * + * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). */ override fun requestBody(requestBody: Map) { cdkBuilder.requestBody(requestBody.mapValues{CdkObjectWrappers.unwrap(it.value)}) @@ -2707,10 +2768,12 @@ public open class CfnWebACL( cdkObject: software.amazon.awscdk.services.wafv2.CfnWebACL.AssociationConfigProperty, ) : CdkObject(cdkObject), AssociationConfigProperty { /** - * Customizes the maximum size of the request body that your protected CloudFront - * distributions forward to AWS WAF for inspection. + * Customizes the maximum size of the request body that your protected CloudFront, API + * Gateway, Amazon Cognito, App Runner, and Verified Access resources forward to AWS WAF for + * inspection. * - * The default size is 16 KB (16,384 bytes). + * The default size is 16 KB (16,384 bytes). You can change the setting for any of the + * available resource types. * * * You are charged additional fees when your protected resources forward body sizes that are @@ -2718,6 +2781,10 @@ public open class CfnWebACL( * Pricing](https://docs.aws.amazon.com/waf/pricing/) . * * + * Example JSON: `{ "API_GATEWAY": "KB_48", "APP_RUNNER_SERVICE": "KB_32" }` + * + * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-associationconfig.html#cfn-wafv2-webacl-associationconfig-requestbody) */ override fun requestBody(): Any? = unwrap(this).getRequestBody() @@ -2918,11 +2985,13 @@ public open class CfnWebACL( * What AWS WAF should do if the body is larger than AWS WAF can inspect. * * AWS WAF does not support inspecting the entire contents of the web request body if the body - * exceeds the limit for the resource type. If the body is larger than the limit, the underlying - * host service only forwards the contents that are below the limit to AWS WAF for inspection. + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. * - * The default limit is 8 KB (8,192 bytes) for regional resources and 16 KB (16,384 bytes) for - * CloudFront distributions. For CloudFront distributions, you can increase the limit in the web + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the web * ACL `AssociationConfig` , for additional processing fees. * * The options for oversize handling are the following: @@ -2951,12 +3020,14 @@ public open class CfnWebACL( * @param oversizeHandling What AWS WAF should do if the body is larger than AWS WAF can * inspect. * AWS WAF does not support inspecting the entire contents of the web request body if the body - * exceeds the limit for the resource type. If the body is larger than the limit, the underlying - * host service only forwards the contents that are below the limit to AWS WAF for inspection. + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. * - * The default limit is 8 KB (8,192 bytes) for regional resources and 16 KB (16,384 bytes) for - * CloudFront distributions. For CloudFront distributions, you can increase the limit in the web - * ACL `AssociationConfig` , for additional processing fees. + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * The options for oversize handling are the following: * @@ -2982,12 +3053,14 @@ public open class CfnWebACL( * @param oversizeHandling What AWS WAF should do if the body is larger than AWS WAF can * inspect. * AWS WAF does not support inspecting the entire contents of the web request body if the body - * exceeds the limit for the resource type. If the body is larger than the limit, the underlying - * host service only forwards the contents that are below the limit to AWS WAF for inspection. + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. * - * The default limit is 8 KB (8,192 bytes) for regional resources and 16 KB (16,384 bytes) for - * CloudFront distributions. For CloudFront distributions, you can increase the limit in the web - * ACL `AssociationConfig` , for additional processing fees. + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * The options for oversize handling are the following: * @@ -3017,12 +3090,14 @@ public open class CfnWebACL( * What AWS WAF should do if the body is larger than AWS WAF can inspect. * * AWS WAF does not support inspecting the entire contents of the web request body if the body - * exceeds the limit for the resource type. If the body is larger than the limit, the underlying - * host service only forwards the contents that are below the limit to AWS WAF for inspection. + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. * - * The default limit is 8 KB (8,192 bytes) for regional resources and 16 KB (16,384 bytes) for - * CloudFront distributions. For CloudFront distributions, you can increase the limit in the web - * ACL `AssociationConfig` , for additional processing fees. + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * The options for oversize handling are the following: * @@ -5923,6 +5998,9 @@ public open class CfnWebACL( * * In this documentation, the descriptions of the individual fields talk about specifying the * web request component to inspect, but for field redaction, you are specifying the component type * to redact from the logs. + * * If you have request sampling enabled, the redacted fields configuration for logging has no + * impact on sampling. The only way to exclude fields from request sampling is by disabling sampling + * in the web ACL visibility configuration. * * Example: * @@ -5998,10 +6076,15 @@ public open class CfnWebACL( * contains any additional data that you want to send to your web server as the HTTP request body, * such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the underlying - * host service. For regional resources, the limit is 8 KB (8,192 bytes) and for CloudFront - * distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you can increase - * the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the web + * ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `Body` object * configuration. @@ -6073,10 +6156,15 @@ public open class CfnWebACL( * contains any additional data that you want to send to your web server as the HTTP request body, * such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the underlying - * host service. For regional resources, the limit is 8 KB (8,192 bytes) and for CloudFront - * distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you can increase - * the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the web + * ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `JsonBody` object * configuration. @@ -6156,10 +6244,15 @@ public open class CfnWebACL( * that contains any additional data that you want to send to your web server as the HTTP request * body, such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the - * underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for - * CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you - * can increase the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `Body` object * configuration. @@ -6172,10 +6265,15 @@ public open class CfnWebACL( * that contains any additional data that you want to send to your web server as the HTTP request * body, such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the - * underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for - * CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you - * can increase the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `Body` object * configuration. @@ -6188,10 +6286,15 @@ public open class CfnWebACL( * that contains any additional data that you want to send to your web server as the HTTP request * body, such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the - * underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for - * CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you - * can increase the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `Body` object * configuration. @@ -6353,10 +6456,15 @@ public open class CfnWebACL( * that contains any additional data that you want to send to your web server as the HTTP request * body, such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the - * underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for - * CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you - * can increase the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `JsonBody` object * configuration. @@ -6369,10 +6477,15 @@ public open class CfnWebACL( * that contains any additional data that you want to send to your web server as the HTTP request * body, such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the - * underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for - * CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you - * can increase the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `JsonBody` object * configuration. @@ -6385,10 +6498,15 @@ public open class CfnWebACL( * that contains any additional data that you want to send to your web server as the HTTP request * body, such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the - * underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for - * CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you - * can increase the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `JsonBody` object * configuration. @@ -6457,10 +6575,15 @@ public open class CfnWebACL( * that contains any additional data that you want to send to your web server as the HTTP request * body, such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the - * underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for - * CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you - * can increase the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `Body` object * configuration. @@ -6475,10 +6598,15 @@ public open class CfnWebACL( * that contains any additional data that you want to send to your web server as the HTTP request * body, such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the - * underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for - * CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you - * can increase the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `Body` object * configuration. @@ -6493,10 +6621,15 @@ public open class CfnWebACL( * that contains any additional data that you want to send to your web server as the HTTP request * body, such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the - * underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for - * CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you - * can increase the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `Body` object * configuration. @@ -6673,10 +6806,15 @@ public open class CfnWebACL( * that contains any additional data that you want to send to your web server as the HTTP request * body, such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the - * underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for - * CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you - * can increase the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `JsonBody` object * configuration. @@ -6691,10 +6829,15 @@ public open class CfnWebACL( * that contains any additional data that you want to send to your web server as the HTTP request * body, such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the - * underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for - * CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you - * can increase the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `JsonBody` object * configuration. @@ -6709,10 +6852,15 @@ public open class CfnWebACL( * that contains any additional data that you want to send to your web server as the HTTP request * body, such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the - * underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for - * CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you - * can increase the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `JsonBody` object * configuration. @@ -6794,10 +6942,15 @@ public open class CfnWebACL( * that contains any additional data that you want to send to your web server as the HTTP request * body, such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the - * underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for - * CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you - * can increase the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `Body` object * configuration. @@ -6869,10 +7022,15 @@ public open class CfnWebACL( * that contains any additional data that you want to send to your web server as the HTTP request * body, such as data from a form. * - * A limited amount of the request body is forwarded to AWS WAF for inspection by the - * underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for - * CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you - * can increase the limit in the web ACL's `AssociationConfig` , for additional processing fees. + * AWS WAF does not support inspecting the entire contents of the web request body if the body + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. + * + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * For information about how to handle oversized request bodies, see the `JsonBody` object * configuration. @@ -8673,11 +8831,13 @@ public open class CfnWebACL( * What AWS WAF should do if the body is larger than AWS WAF can inspect. * * AWS WAF does not support inspecting the entire contents of the web request body if the body - * exceeds the limit for the resource type. If the body is larger than the limit, the underlying - * host service only forwards the contents that are below the limit to AWS WAF for inspection. + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. * - * The default limit is 8 KB (8,192 bytes) for regional resources and 16 KB (16,384 bytes) for - * CloudFront distributions. For CloudFront distributions, you can increase the limit in the web + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the web * ACL `AssociationConfig` , for additional processing fees. * * The options for oversize handling are the following: @@ -8762,12 +8922,14 @@ public open class CfnWebACL( * @param oversizeHandling What AWS WAF should do if the body is larger than AWS WAF can * inspect. * AWS WAF does not support inspecting the entire contents of the web request body if the body - * exceeds the limit for the resource type. If the body is larger than the limit, the underlying - * host service only forwards the contents that are below the limit to AWS WAF for inspection. + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. * - * The default limit is 8 KB (8,192 bytes) for regional resources and 16 KB (16,384 bytes) for - * CloudFront distributions. For CloudFront distributions, you can increase the limit in the web - * ACL `AssociationConfig` , for additional processing fees. + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * The options for oversize handling are the following: * @@ -8859,12 +9021,14 @@ public open class CfnWebACL( * @param oversizeHandling What AWS WAF should do if the body is larger than AWS WAF can * inspect. * AWS WAF does not support inspecting the entire contents of the web request body if the body - * exceeds the limit for the resource type. If the body is larger than the limit, the underlying - * host service only forwards the contents that are below the limit to AWS WAF for inspection. + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. * - * The default limit is 8 KB (8,192 bytes) for regional resources and 16 KB (16,384 bytes) for - * CloudFront distributions. For CloudFront distributions, you can increase the limit in the web - * ACL `AssociationConfig` , for additional processing fees. + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * The options for oversize handling are the following: * @@ -8945,12 +9109,14 @@ public open class CfnWebACL( * What AWS WAF should do if the body is larger than AWS WAF can inspect. * * AWS WAF does not support inspecting the entire contents of the web request body if the body - * exceeds the limit for the resource type. If the body is larger than the limit, the underlying - * host service only forwards the contents that are below the limit to AWS WAF for inspection. + * exceeds the limit for the resource type. When a web request body is larger than the limit, the + * underlying host service only forwards the contents that are within the limit to AWS WAF for + * inspection. * - * The default limit is 8 KB (8,192 bytes) for regional resources and 16 KB (16,384 bytes) for - * CloudFront distributions. For CloudFront distributions, you can increase the limit in the web - * ACL `AssociationConfig` , for additional processing fees. + * * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default + * limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the + * web ACL `AssociationConfig` , for additional processing fees. * * The options for oversize handling are the following: * @@ -12041,6 +12207,17 @@ public open class CfnWebACL( public fun customKeys(): Any? = unwrap(this).getCustomKeys() /** + * The amount of time, in seconds, that AWS WAF should include in its request counts, looking + * back from the current time. + * + * For example, for a setting of 120, when AWS WAF checks the rate, it counts the requests for + * the 2 minutes immediately preceding the current time. Valid settings are 60, 120, 300, and 600. + * + * This setting doesn't determine how often AWS WAF checks the rate, but how far back it looks + * each time it checks. AWS WAF checks the rate about every 10 seconds. + * + * Default: `300` (5 minutes) + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ratebasedstatement.html#cfn-wafv2-webacl-ratebasedstatement-evaluationwindowsec) */ public fun evaluationWindowSec(): Number? = unwrap(this).getEvaluationWindowSec() @@ -12150,7 +12327,16 @@ public open class CfnWebACL( public fun customKeys(vararg customKeys: Any) /** - * @param evaluationWindowSec the value to be set. + * @param evaluationWindowSec The amount of time, in seconds, that AWS WAF should include in + * its request counts, looking back from the current time. + * For example, for a setting of 120, when AWS WAF checks the rate, it counts the requests for + * the 2 minutes immediately preceding the current time. Valid settings are 60, 120, 300, and + * 600. + * + * This setting doesn't determine how often AWS WAF checks the rate, but how far back it looks + * each time it checks. AWS WAF checks the rate about every 10 seconds. + * + * Default: `300` (5 minutes) */ public fun evaluationWindowSec(evaluationWindowSec: Number) @@ -12311,7 +12497,16 @@ public open class CfnWebACL( override fun customKeys(vararg customKeys: Any): Unit = customKeys(customKeys.toList()) /** - * @param evaluationWindowSec the value to be set. + * @param evaluationWindowSec The amount of time, in seconds, that AWS WAF should include in + * its request counts, looking back from the current time. + * For example, for a setting of 120, when AWS WAF checks the rate, it counts the requests for + * the 2 minutes immediately preceding the current time. Valid settings are 60, 120, 300, and + * 600. + * + * This setting doesn't determine how often AWS WAF checks the rate, but how far back it looks + * each time it checks. AWS WAF checks the rate about every 10 seconds. + * + * Default: `300` (5 minutes) */ override fun evaluationWindowSec(evaluationWindowSec: Number) { cdkBuilder.evaluationWindowSec(evaluationWindowSec) @@ -12476,6 +12671,18 @@ public open class CfnWebACL( override fun customKeys(): Any? = unwrap(this).getCustomKeys() /** + * The amount of time, in seconds, that AWS WAF should include in its request counts, looking + * back from the current time. + * + * For example, for a setting of 120, when AWS WAF checks the rate, it counts the requests for + * the 2 minutes immediately preceding the current time. Valid settings are 60, 120, 300, and + * 600. + * + * This setting doesn't determine how often AWS WAF checks the rate, but how far back it looks + * each time it checks. AWS WAF checks the rate about every 10 seconds. + * + * Default: `300` (5 minutes) + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ratebasedstatement.html#cfn-wafv2-webacl-ratebasedstatement-evaluationwindowsec) */ override fun evaluationWindowSec(): Number? = unwrap(this).getEvaluationWindowSec() @@ -14111,10 +14318,11 @@ public open class CfnWebACL( } /** - * Customizes the maximum size of the request body that your protected CloudFront distributions - * forward to AWS WAF for inspection. + * Customizes the maximum size of the request body that your protected CloudFront, API Gateway, + * Amazon Cognito, App Runner, and Verified Access resources forward to AWS WAF for inspection. * - * The default size is 16 KB (16,384 bytes). + * The default size is 16 KB (16,384 bytes). You can change the setting for any of the available + * resource types. * * * You are charged additional fees when your protected resources forward body sizes that are @@ -14122,6 +14330,10 @@ public open class CfnWebACL( * Pricing](https://docs.aws.amazon.com/waf/pricing/) . * * + * Example JSON: `{ "API_GATEWAY": "KB_48", "APP_RUNNER_SERVICE": "KB_32" }` + * + * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * This is used in the `AssociationConfig` of the web ACL. * * Example: @@ -14140,8 +14352,9 @@ public open class CfnWebACL( */ public interface RequestBodyAssociatedResourceTypeConfigProperty { /** - * Specifies the maximum size of the web request body component that an associated CloudFront - * distribution should send to AWS WAF for inspection. + * Specifies the maximum size of the web request body component that an associated CloudFront, + * API Gateway, Amazon Cognito, App Runner, or Verified Access resource should send to AWS WAF for + * inspection. * * This applies to statements in the web ACL that inspect the body or JSON body. * @@ -14158,7 +14371,8 @@ public open class CfnWebACL( public interface Builder { /** * @param defaultSizeInspectionLimit Specifies the maximum size of the web request body - * component that an associated CloudFront distribution should send to AWS WAF for inspection. + * component that an associated CloudFront, API Gateway, Amazon Cognito, App Runner, or Verified + * Access resource should send to AWS WAF for inspection. * This applies to statements in the web ACL that inspect the body or JSON body. * * Default: `16 KB (16,384 bytes)` @@ -14174,7 +14388,8 @@ public open class CfnWebACL( /** * @param defaultSizeInspectionLimit Specifies the maximum size of the web request body - * component that an associated CloudFront distribution should send to AWS WAF for inspection. + * component that an associated CloudFront, API Gateway, Amazon Cognito, App Runner, or Verified + * Access resource should send to AWS WAF for inspection. * This applies to statements in the web ACL that inspect the body or JSON body. * * Default: `16 KB (16,384 bytes)` @@ -14192,8 +14407,9 @@ public open class CfnWebACL( cdkObject: software.amazon.awscdk.services.wafv2.CfnWebACL.RequestBodyAssociatedResourceTypeConfigProperty, ) : CdkObject(cdkObject), RequestBodyAssociatedResourceTypeConfigProperty { /** - * Specifies the maximum size of the web request body component that an associated CloudFront - * distribution should send to AWS WAF for inspection. + * Specifies the maximum size of the web request body component that an associated CloudFront, + * API Gateway, Amazon Cognito, App Runner, or Verified Access resource should send to AWS WAF + * for inspection. * * This applies to statements in the web ACL that inspect the body or JSON body. * @@ -19153,11 +19369,10 @@ public open class CfnWebACL( * than 100 bytes. * * If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of bytes - * of the body up to the limit for the web ACL. By default, for regional web ACLs, this limit is 8 KB - * (8,192 bytes) and for CloudFront web ACLs, this limit is 16 KB (16,384 bytes). For CloudFront web - * ACLs, you can increase the limit in the web ACL `AssociationConfig` , for additional fees. If you - * know that the request body for your web requests should never exceed the inspection limit, you - * could use a size constraint statement to block requests that have a larger request body size. + * in the body up to the limit for the web ACL and protected resource type. If you know that the + * request body for your web requests should never exceed the inspection limit, you can use a size + * constraint statement to block requests that have a larger request body size. For more information + * about the inspection limits, see `Body` and `JsonBody` settings for the `FieldToMatch` data type. * * If you choose URI for the value of Part of the request to filter on, the slash (/) in the URI * counts as one character. For example, the URI `/logo.jpg` is nine characters long. @@ -20043,12 +20258,11 @@ public open class CfnWebACL( * longer than 100 bytes. * * If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of - * bytes of the body up to the limit for the web ACL. By default, for regional web ACLs, this limit - * is 8 KB (8,192 bytes) and for CloudFront web ACLs, this limit is 16 KB (16,384 bytes). For - * CloudFront web ACLs, you can increase the limit in the web ACL `AssociationConfig` , for - * additional fees. If you know that the request body for your web requests should never exceed the - * inspection limit, you could use a size constraint statement to block requests that have a larger - * request body size. + * bytes in the body up to the limit for the web ACL and protected resource type. If you know that + * the request body for your web requests should never exceed the inspection limit, you can use a + * size constraint statement to block requests that have a larger request body size. For more + * information about the inspection limits, see `Body` and `JsonBody` settings for the + * `FieldToMatch` data type. * * If you choose URI for the value of Part of the request to filter on, the slash (/) in the URI * counts as one character. For example, the URI `/logo.jpg` is nine characters long. @@ -20782,12 +20996,11 @@ public open class CfnWebACL( * longer than 100 bytes. * * If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of - * bytes of the body up to the limit for the web ACL. By default, for regional web ACLs, this - * limit is 8 KB (8,192 bytes) and for CloudFront web ACLs, this limit is 16 KB (16,384 bytes). - * For CloudFront web ACLs, you can increase the limit in the web ACL `AssociationConfig` , for - * additional fees. If you know that the request body for your web requests should never exceed - * the inspection limit, you could use a size constraint statement to block requests that have a - * larger request body size. + * bytes in the body up to the limit for the web ACL and protected resource type. If you know + * that the request body for your web requests should never exceed the inspection limit, you can + * use a size constraint statement to block requests that have a larger request body size. For + * more information about the inspection limits, see `Body` and `JsonBody` settings for the + * `FieldToMatch` data type. * * If you choose URI for the value of Part of the request to filter on, the slash (/) in the * URI counts as one character. For example, the URI `/logo.jpg` is nine characters long. @@ -20802,12 +21015,11 @@ public open class CfnWebACL( * longer than 100 bytes. * * If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of - * bytes of the body up to the limit for the web ACL. By default, for regional web ACLs, this - * limit is 8 KB (8,192 bytes) and for CloudFront web ACLs, this limit is 16 KB (16,384 bytes). - * For CloudFront web ACLs, you can increase the limit in the web ACL `AssociationConfig` , for - * additional fees. If you know that the request body for your web requests should never exceed - * the inspection limit, you could use a size constraint statement to block requests that have a - * larger request body size. + * bytes in the body up to the limit for the web ACL and protected resource type. If you know + * that the request body for your web requests should never exceed the inspection limit, you can + * use a size constraint statement to block requests that have a larger request body size. For + * more information about the inspection limits, see `Body` and `JsonBody` settings for the + * `FieldToMatch` data type. * * If you choose URI for the value of Part of the request to filter on, the slash (/) in the * URI counts as one character. For example, the URI `/logo.jpg` is nine characters long. @@ -20822,12 +21034,11 @@ public open class CfnWebACL( * longer than 100 bytes. * * If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of - * bytes of the body up to the limit for the web ACL. By default, for regional web ACLs, this - * limit is 8 KB (8,192 bytes) and for CloudFront web ACLs, this limit is 16 KB (16,384 bytes). - * For CloudFront web ACLs, you can increase the limit in the web ACL `AssociationConfig` , for - * additional fees. If you know that the request body for your web requests should never exceed - * the inspection limit, you could use a size constraint statement to block requests that have a - * larger request body size. + * bytes in the body up to the limit for the web ACL and protected resource type. If you know + * that the request body for your web requests should never exceed the inspection limit, you can + * use a size constraint statement to block requests that have a larger request body size. For + * more information about the inspection limits, see `Body` and `JsonBody` settings for the + * `FieldToMatch` data type. * * If you choose URI for the value of Part of the request to filter on, the slash (/) in the * URI counts as one character. For example, the URI `/logo.jpg` is nine characters long. @@ -21659,12 +21870,11 @@ public open class CfnWebACL( * longer than 100 bytes. * * If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of - * bytes of the body up to the limit for the web ACL. By default, for regional web ACLs, this - * limit is 8 KB (8,192 bytes) and for CloudFront web ACLs, this limit is 16 KB (16,384 bytes). - * For CloudFront web ACLs, you can increase the limit in the web ACL `AssociationConfig` , for - * additional fees. If you know that the request body for your web requests should never exceed - * the inspection limit, you could use a size constraint statement to block requests that have a - * larger request body size. + * bytes in the body up to the limit for the web ACL and protected resource type. If you know + * that the request body for your web requests should never exceed the inspection limit, you can + * use a size constraint statement to block requests that have a larger request body size. For + * more information about the inspection limits, see `Body` and `JsonBody` settings for the + * `FieldToMatch` data type. * * If you choose URI for the value of Part of the request to filter on, the slash (/) in the * URI counts as one character. For example, the URI `/logo.jpg` is nine characters long. @@ -21681,12 +21891,11 @@ public open class CfnWebACL( * longer than 100 bytes. * * If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of - * bytes of the body up to the limit for the web ACL. By default, for regional web ACLs, this - * limit is 8 KB (8,192 bytes) and for CloudFront web ACLs, this limit is 16 KB (16,384 bytes). - * For CloudFront web ACLs, you can increase the limit in the web ACL `AssociationConfig` , for - * additional fees. If you know that the request body for your web requests should never exceed - * the inspection limit, you could use a size constraint statement to block requests that have a - * larger request body size. + * bytes in the body up to the limit for the web ACL and protected resource type. If you know + * that the request body for your web requests should never exceed the inspection limit, you can + * use a size constraint statement to block requests that have a larger request body size. For + * more information about the inspection limits, see `Body` and `JsonBody` settings for the + * `FieldToMatch` data type. * * If you choose URI for the value of Part of the request to filter on, the slash (/) in the * URI counts as one character. For example, the URI `/logo.jpg` is nine characters long. @@ -21704,12 +21913,11 @@ public open class CfnWebACL( * longer than 100 bytes. * * If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of - * bytes of the body up to the limit for the web ACL. By default, for regional web ACLs, this - * limit is 8 KB (8,192 bytes) and for CloudFront web ACLs, this limit is 16 KB (16,384 bytes). - * For CloudFront web ACLs, you can increase the limit in the web ACL `AssociationConfig` , for - * additional fees. If you know that the request body for your web requests should never exceed - * the inspection limit, you could use a size constraint statement to block requests that have a - * larger request body size. + * bytes in the body up to the limit for the web ACL and protected resource type. If you know + * that the request body for your web requests should never exceed the inspection limit, you can + * use a size constraint statement to block requests that have a larger request body size. For + * more information about the inspection limits, see `Body` and `JsonBody` settings for the + * `FieldToMatch` data type. * * If you choose URI for the value of Part of the request to filter on, the slash (/) in the * URI counts as one character. For example, the URI `/logo.jpg` is nine characters long. @@ -22047,12 +22255,11 @@ public open class CfnWebACL( * longer than 100 bytes. * * If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of - * bytes of the body up to the limit for the web ACL. By default, for regional web ACLs, this - * limit is 8 KB (8,192 bytes) and for CloudFront web ACLs, this limit is 16 KB (16,384 bytes). - * For CloudFront web ACLs, you can increase the limit in the web ACL `AssociationConfig` , for - * additional fees. If you know that the request body for your web requests should never exceed - * the inspection limit, you could use a size constraint statement to block requests that have a - * larger request body size. + * bytes in the body up to the limit for the web ACL and protected resource type. If you know + * that the request body for your web requests should never exceed the inspection limit, you can + * use a size constraint statement to block requests that have a larger request body size. For + * more information about the inspection limits, see `Body` and `JsonBody` settings for the + * `FieldToMatch` data type. * * If you choose URI for the value of Part of the request to filter on, the slash (/) in the * URI counts as one character. For example, the URI `/logo.jpg` is nine characters long. @@ -22282,6 +22489,12 @@ public open class CfnWebACL( * * You can view the sampled requests through the AWS WAF console. * + * + * Request sampling doesn't provide a field redaction option, and any field redaction that you + * specify in your logging configuration doesn't affect sampling. The only way to exclude fields + * from request sampling is by disabling sampling in the web ACL visibility configuration. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-visibilityconfig.html#cfn-wafv2-webacl-visibilityconfig-sampledrequestsenabled) */ public fun sampledRequestsEnabled(): Any @@ -22335,6 +22548,11 @@ public open class CfnWebACL( * @param sampledRequestsEnabled Indicates whether AWS WAF should store a sampling of the web * requests that match the rules. * You can view the sampled requests through the AWS WAF console. + * + * + * Request sampling doesn't provide a field redaction option, and any field redaction that you + * specify in your logging configuration doesn't affect sampling. The only way to exclude fields + * from request sampling is by disabling sampling in the web ACL visibility configuration. */ public fun sampledRequestsEnabled(sampledRequestsEnabled: Boolean) @@ -22342,6 +22560,11 @@ public open class CfnWebACL( * @param sampledRequestsEnabled Indicates whether AWS WAF should store a sampling of the web * requests that match the rules. * You can view the sampled requests through the AWS WAF console. + * + * + * Request sampling doesn't provide a field redaction option, and any field redaction that you + * specify in your logging configuration doesn't affect sampling. The only way to exclude fields + * from request sampling is by disabling sampling in the web ACL visibility configuration. */ public fun sampledRequestsEnabled(sampledRequestsEnabled: IResolvable) } @@ -22401,6 +22624,11 @@ public open class CfnWebACL( * @param sampledRequestsEnabled Indicates whether AWS WAF should store a sampling of the web * requests that match the rules. * You can view the sampled requests through the AWS WAF console. + * + * + * Request sampling doesn't provide a field redaction option, and any field redaction that you + * specify in your logging configuration doesn't affect sampling. The only way to exclude fields + * from request sampling is by disabling sampling in the web ACL visibility configuration. */ override fun sampledRequestsEnabled(sampledRequestsEnabled: Boolean) { cdkBuilder.sampledRequestsEnabled(sampledRequestsEnabled) @@ -22410,6 +22638,11 @@ public open class CfnWebACL( * @param sampledRequestsEnabled Indicates whether AWS WAF should store a sampling of the web * requests that match the rules. * You can view the sampled requests through the AWS WAF console. + * + * + * Request sampling doesn't provide a field redaction option, and any field redaction that you + * specify in your logging configuration doesn't affect sampling. The only way to exclude fields + * from request sampling is by disabling sampling in the web ACL visibility configuration. */ override fun sampledRequestsEnabled(sampledRequestsEnabled: IResolvable) { cdkBuilder.sampledRequestsEnabled(sampledRequestsEnabled.let(IResolvable::unwrap)) @@ -22456,6 +22689,12 @@ public open class CfnWebACL( * * You can view the sampled requests through the AWS WAF console. * + * + * Request sampling doesn't provide a field redaction option, and any field redaction that you + * specify in your logging configuration doesn't affect sampling. The only way to exclude fields + * from request sampling is by disabling sampling in the web ACL visibility configuration. + * + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-visibilityconfig.html#cfn-wafv2-webacl-visibilityconfig-sampledrequestsenabled) */ override fun sampledRequestsEnabled(): Any = unwrap(this).getSampledRequestsEnabled() diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/wafv2/CfnWebACLProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/wafv2/CfnWebACLProps.kt index b563dd2667..4c35e177b7 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/wafv2/CfnWebACLProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/wafv2/CfnWebACLProps.kt @@ -29,8 +29,10 @@ public interface CfnWebACLProps { * Specifies custom configurations for the associations between the web ACL and protected * resources. * - * Use this to customize the maximum size of the request body that your protected CloudFront - * distributions forward to AWS WAF for inspection. The default is 16 KB (16,384 bytes). + * Use this to customize the maximum size of the request body that your protected resources + * forward to AWS WAF for inspection. You can customize this setting for CloudFront, API Gateway, + * Amazon Cognito, App Runner, or Verified Access resources. The default setting is 16 KB (16,384 + * bytes). * * * You are charged additional fees when your protected resources forward body sizes that are @@ -38,6 +40,8 @@ public interface CfnWebACLProps { * Pricing](https://docs.aws.amazon.com/waf/pricing/) . * * + * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webacl.html#cfn-wafv2-webacl-associationconfig) */ public fun associationConfig(): Any? = unwrap(this).getAssociationConfig() @@ -178,39 +182,54 @@ public interface CfnWebACLProps { /** * @param associationConfig Specifies custom configurations for the associations between the web * ACL and protected resources. - * Use this to customize the maximum size of the request body that your protected CloudFront - * distributions forward to AWS WAF for inspection. The default is 16 KB (16,384 bytes). + * Use this to customize the maximum size of the request body that your protected resources + * forward to AWS WAF for inspection. You can customize this setting for CloudFront, API Gateway, + * Amazon Cognito, App Runner, or Verified Access resources. The default setting is 16 KB (16,384 + * bytes). * * * You are charged additional fees when your protected resources forward body sizes that are * larger than the default. For more information, see [AWS WAF * Pricing](https://docs.aws.amazon.com/waf/pricing/) . + * + * + * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). */ public fun associationConfig(associationConfig: IResolvable) /** * @param associationConfig Specifies custom configurations for the associations between the web * ACL and protected resources. - * Use this to customize the maximum size of the request body that your protected CloudFront - * distributions forward to AWS WAF for inspection. The default is 16 KB (16,384 bytes). + * Use this to customize the maximum size of the request body that your protected resources + * forward to AWS WAF for inspection. You can customize this setting for CloudFront, API Gateway, + * Amazon Cognito, App Runner, or Verified Access resources. The default setting is 16 KB (16,384 + * bytes). * * * You are charged additional fees when your protected resources forward body sizes that are * larger than the default. For more information, see [AWS WAF * Pricing](https://docs.aws.amazon.com/waf/pricing/) . + * + * + * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). */ public fun associationConfig(associationConfig: CfnWebACL.AssociationConfigProperty) /** * @param associationConfig Specifies custom configurations for the associations between the web * ACL and protected resources. - * Use this to customize the maximum size of the request body that your protected CloudFront - * distributions forward to AWS WAF for inspection. The default is 16 KB (16,384 bytes). + * Use this to customize the maximum size of the request body that your protected resources + * forward to AWS WAF for inspection. You can customize this setting for CloudFront, API Gateway, + * Amazon Cognito, App Runner, or Verified Access resources. The default setting is 16 KB (16,384 + * bytes). * * * You are charged additional fees when your protected resources forward body sizes that are * larger than the default. For more information, see [AWS WAF * Pricing](https://docs.aws.amazon.com/waf/pricing/) . + * + * + * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("b8cd78ecacaca4f48f827e175e1953db05c9e8605918846e0d9d3a3b204c7513") @@ -440,13 +459,18 @@ public interface CfnWebACLProps { /** * @param associationConfig Specifies custom configurations for the associations between the web * ACL and protected resources. - * Use this to customize the maximum size of the request body that your protected CloudFront - * distributions forward to AWS WAF for inspection. The default is 16 KB (16,384 bytes). + * Use this to customize the maximum size of the request body that your protected resources + * forward to AWS WAF for inspection. You can customize this setting for CloudFront, API Gateway, + * Amazon Cognito, App Runner, or Verified Access resources. The default setting is 16 KB (16,384 + * bytes). * * * You are charged additional fees when your protected resources forward body sizes that are * larger than the default. For more information, see [AWS WAF * Pricing](https://docs.aws.amazon.com/waf/pricing/) . + * + * + * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). */ override fun associationConfig(associationConfig: IResolvable) { cdkBuilder.associationConfig(associationConfig.let(IResolvable::unwrap)) @@ -455,13 +479,18 @@ public interface CfnWebACLProps { /** * @param associationConfig Specifies custom configurations for the associations between the web * ACL and protected resources. - * Use this to customize the maximum size of the request body that your protected CloudFront - * distributions forward to AWS WAF for inspection. The default is 16 KB (16,384 bytes). + * Use this to customize the maximum size of the request body that your protected resources + * forward to AWS WAF for inspection. You can customize this setting for CloudFront, API Gateway, + * Amazon Cognito, App Runner, or Verified Access resources. The default setting is 16 KB (16,384 + * bytes). * * * You are charged additional fees when your protected resources forward body sizes that are * larger than the default. For more information, see [AWS WAF * Pricing](https://docs.aws.amazon.com/waf/pricing/) . + * + * + * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). */ override fun associationConfig(associationConfig: CfnWebACL.AssociationConfigProperty) { cdkBuilder.associationConfig(associationConfig.let(CfnWebACL.AssociationConfigProperty::unwrap)) @@ -470,13 +499,18 @@ public interface CfnWebACLProps { /** * @param associationConfig Specifies custom configurations for the associations between the web * ACL and protected resources. - * Use this to customize the maximum size of the request body that your protected CloudFront - * distributions forward to AWS WAF for inspection. The default is 16 KB (16,384 bytes). + * Use this to customize the maximum size of the request body that your protected resources + * forward to AWS WAF for inspection. You can customize this setting for CloudFront, API Gateway, + * Amazon Cognito, App Runner, or Verified Access resources. The default setting is 16 KB (16,384 + * bytes). * * * You are charged additional fees when your protected resources forward body sizes that are * larger than the default. For more information, see [AWS WAF * Pricing](https://docs.aws.amazon.com/waf/pricing/) . + * + * + * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). */ @kotlin.Suppress("INAPPLICABLE_JVM_NAME") @JvmName("b8cd78ecacaca4f48f827e175e1953db05c9e8605918846e0d9d3a3b204c7513") @@ -748,8 +782,10 @@ public interface CfnWebACLProps { * Specifies custom configurations for the associations between the web ACL and protected * resources. * - * Use this to customize the maximum size of the request body that your protected CloudFront - * distributions forward to AWS WAF for inspection. The default is 16 KB (16,384 bytes). + * Use this to customize the maximum size of the request body that your protected resources + * forward to AWS WAF for inspection. You can customize this setting for CloudFront, API Gateway, + * Amazon Cognito, App Runner, or Verified Access resources. The default setting is 16 KB (16,384 + * bytes). * * * You are charged additional fees when your protected resources forward body sizes that are @@ -757,6 +793,8 @@ public interface CfnWebACLProps { * Pricing](https://docs.aws.amazon.com/waf/pricing/) . * * + * For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). + * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webacl.html#cfn-wafv2-webacl-associationconfig) */ override fun associationConfig(): Any? = unwrap(this).getAssociationConfig() diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/wisdom/CfnKnowledgeBase.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/wisdom/CfnKnowledgeBase.kt index 14994f054f..589a3f46fc 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/wisdom/CfnKnowledgeBase.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/wisdom/CfnKnowledgeBase.kt @@ -683,7 +683,7 @@ public open class CfnKnowledgeBase( public fun appIntegrationArn(): String /** - * The fields from the source that are made available to your agents in Amazon Q. + * The fields from the source that are made available to your agents in Amazon Q in Connect. * * Optional if ObjectConfiguration is included in the provided DataIntegration. * @@ -746,7 +746,7 @@ public open class CfnKnowledgeBase( /** * @param objectFields The fields from the source that are made available to your agents in - * Amazon Q. + * Amazon Q in Connect. * Optional if ObjectConfiguration is included in the provided DataIntegration. * * * For @@ -768,7 +768,7 @@ public open class CfnKnowledgeBase( /** * @param objectFields The fields from the source that are made available to your agents in - * Amazon Q. + * Amazon Q in Connect. * Optional if ObjectConfiguration is included in the provided DataIntegration. * * * For @@ -832,7 +832,7 @@ public open class CfnKnowledgeBase( /** * @param objectFields The fields from the source that are made available to your agents in - * Amazon Q. + * Amazon Q in Connect. * Optional if ObjectConfiguration is included in the provided DataIntegration. * * * For @@ -856,7 +856,7 @@ public open class CfnKnowledgeBase( /** * @param objectFields The fields from the source that are made available to your agents in - * Amazon Q. + * Amazon Q in Connect. * Optional if ObjectConfiguration is included in the provided DataIntegration. * * * For @@ -923,7 +923,7 @@ public open class CfnKnowledgeBase( override fun appIntegrationArn(): String = unwrap(this).getAppIntegrationArn() /** - * The fields from the source that are made available to your agents in Amazon Q. + * The fields from the source that are made available to your agents in Amazon Q in Connect. * * Optional if ObjectConfiguration is included in the provided DataIntegration. * diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/workspacesthinclient/CfnEnvironment.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/workspacesthinclient/CfnEnvironment.kt index 8438932344..e3dc498b55 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/workspacesthinclient/CfnEnvironment.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/workspacesthinclient/CfnEnvironment.kt @@ -150,26 +150,26 @@ public open class CfnEnvironment( } /** - * The Amazon Resource Name (ARN) of the desktop to stream from Amazon WorkSpaces , WorkSpaces - * Web, or AppStream 2.0 . + * The Amazon Resource Name (ARN) of the desktop to stream from Amazon WorkSpaces, WorkSpaces Web, + * or AppStream 2.0. */ public open fun desktopArn(): String = unwrap(this).getDesktopArn() /** - * The Amazon Resource Name (ARN) of the desktop to stream from Amazon WorkSpaces , WorkSpaces - * Web, or AppStream 2.0 . + * The Amazon Resource Name (ARN) of the desktop to stream from Amazon WorkSpaces, WorkSpaces Web, + * or AppStream 2.0. */ public open fun desktopArn(`value`: String) { unwrap(this).setDesktopArn(`value`) } /** - * The URL for the identity provider login (only for environments that use AppStream 2.0 ). + * The URL for the identity provider login (only for environments that use AppStream 2.0). */ public open fun desktopEndpoint(): String? = unwrap(this).getDesktopEndpoint() /** - * The URL for the identity provider login (only for environments that use AppStream 2.0 ). + * The URL for the identity provider login (only for environments that use AppStream 2.0). */ public open fun desktopEndpoint(`value`: String) { unwrap(this).setDesktopEndpoint(`value`) @@ -292,21 +292,21 @@ public open class CfnEnvironment( public fun desiredSoftwareSetId(desiredSoftwareSetId: String) /** - * The Amazon Resource Name (ARN) of the desktop to stream from Amazon WorkSpaces , WorkSpaces - * Web, or AppStream 2.0 . + * The Amazon Resource Name (ARN) of the desktop to stream from Amazon WorkSpaces, WorkSpaces + * Web, or AppStream 2.0. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesthinclient-environment.html#cfn-workspacesthinclient-environment-desktoparn) * @param desktopArn The Amazon Resource Name (ARN) of the desktop to stream from Amazon - * WorkSpaces , WorkSpaces Web, or AppStream 2.0 . + * WorkSpaces, WorkSpaces Web, or AppStream 2.0. */ public fun desktopArn(desktopArn: String) /** - * The URL for the identity provider login (only for environments that use AppStream 2.0 ). + * The URL for the identity provider login (only for environments that use AppStream 2.0). * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesthinclient-environment.html#cfn-workspacesthinclient-environment-desktopendpoint) * @param desktopEndpoint The URL for the identity provider login (only for environments that - * use AppStream 2.0 ). + * use AppStream 2.0). */ public fun desktopEndpoint(desktopEndpoint: String) @@ -416,23 +416,23 @@ public open class CfnEnvironment( } /** - * The Amazon Resource Name (ARN) of the desktop to stream from Amazon WorkSpaces , WorkSpaces - * Web, or AppStream 2.0 . + * The Amazon Resource Name (ARN) of the desktop to stream from Amazon WorkSpaces, WorkSpaces + * Web, or AppStream 2.0. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesthinclient-environment.html#cfn-workspacesthinclient-environment-desktoparn) * @param desktopArn The Amazon Resource Name (ARN) of the desktop to stream from Amazon - * WorkSpaces , WorkSpaces Web, or AppStream 2.0 . + * WorkSpaces, WorkSpaces Web, or AppStream 2.0. */ override fun desktopArn(desktopArn: String) { cdkBuilder.desktopArn(desktopArn) } /** - * The URL for the identity provider login (only for environments that use AppStream 2.0 ). + * The URL for the identity provider login (only for environments that use AppStream 2.0). * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesthinclient-environment.html#cfn-workspacesthinclient-environment-desktopendpoint) * @param desktopEndpoint The URL for the identity provider login (only for environments that - * use AppStream 2.0 ). + * use AppStream 2.0). */ override fun desktopEndpoint(desktopEndpoint: String) { cdkBuilder.desktopEndpoint(desktopEndpoint) diff --git a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/workspacesthinclient/CfnEnvironmentProps.kt b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/workspacesthinclient/CfnEnvironmentProps.kt index 5b305bd6db..2a96d37ef8 100644 --- a/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/workspacesthinclient/CfnEnvironmentProps.kt +++ b/kotlin-cdk-wrapper/src/main/kotlin/io/cloudshiftdev/awscdk/services/workspacesthinclient/CfnEnvironmentProps.kt @@ -59,15 +59,15 @@ public interface CfnEnvironmentProps { public fun desiredSoftwareSetId(): String? = unwrap(this).getDesiredSoftwareSetId() /** - * The Amazon Resource Name (ARN) of the desktop to stream from Amazon WorkSpaces , WorkSpaces - * Web, or AppStream 2.0 . + * The Amazon Resource Name (ARN) of the desktop to stream from Amazon WorkSpaces, WorkSpaces Web, + * or AppStream 2.0. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesthinclient-environment.html#cfn-workspacesthinclient-environment-desktoparn) */ public fun desktopArn(): String /** - * The URL for the identity provider login (only for environments that use AppStream 2.0 ). + * The URL for the identity provider login (only for environments that use AppStream 2.0). * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesthinclient-environment.html#cfn-workspacesthinclient-environment-desktopendpoint) */ @@ -132,13 +132,13 @@ public interface CfnEnvironmentProps { /** * @param desktopArn The Amazon Resource Name (ARN) of the desktop to stream from Amazon - * WorkSpaces , WorkSpaces Web, or AppStream 2.0 . + * WorkSpaces, WorkSpaces Web, or AppStream 2.0. */ public fun desktopArn(desktopArn: String) /** * @param desktopEndpoint The URL for the identity provider login (only for environments that - * use AppStream 2.0 ). + * use AppStream 2.0). */ public fun desktopEndpoint(desktopEndpoint: String) @@ -213,7 +213,7 @@ public interface CfnEnvironmentProps { /** * @param desktopArn The Amazon Resource Name (ARN) of the desktop to stream from Amazon - * WorkSpaces , WorkSpaces Web, or AppStream 2.0 . + * WorkSpaces, WorkSpaces Web, or AppStream 2.0. */ override fun desktopArn(desktopArn: String) { cdkBuilder.desktopArn(desktopArn) @@ -221,7 +221,7 @@ public interface CfnEnvironmentProps { /** * @param desktopEndpoint The URL for the identity provider login (only for environments that - * use AppStream 2.0 ). + * use AppStream 2.0). */ override fun desktopEndpoint(desktopEndpoint: String) { cdkBuilder.desktopEndpoint(desktopEndpoint) @@ -313,15 +313,15 @@ public interface CfnEnvironmentProps { override fun desiredSoftwareSetId(): String? = unwrap(this).getDesiredSoftwareSetId() /** - * The Amazon Resource Name (ARN) of the desktop to stream from Amazon WorkSpaces , WorkSpaces - * Web, or AppStream 2.0 . + * The Amazon Resource Name (ARN) of the desktop to stream from Amazon WorkSpaces, WorkSpaces + * Web, or AppStream 2.0. * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesthinclient-environment.html#cfn-workspacesthinclient-environment-desktoparn) */ override fun desktopArn(): String = unwrap(this).getDesktopArn() /** - * The URL for the identity provider login (only for environments that use AppStream 2.0 ). + * The URL for the identity provider login (only for environments that use AppStream 2.0). * * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesthinclient-environment.html#cfn-workspacesthinclient-environment-desktopendpoint) */