From 42a002903364034523294e06475251870d511ac1 Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Fri, 24 May 2024 22:46:53 -0400 Subject: [PATCH 01/89] docs: added example for awscc_qbusiness_data_source --- docs/resources/qbusiness_data_source.md | 125 +++++++++++++++++- .../qbusiness_data_source.tf | 117 ++++++++++++++++ .../resources/qbusiness_data_source.md.tmpl | 27 ++++ 3 files changed, 267 insertions(+), 2 deletions(-) create mode 100644 examples/resources/awscc_qbusiness_data_source/qbusiness_data_source.tf create mode 100644 templates/resources/qbusiness_data_source.md.tmpl diff --git a/docs/resources/qbusiness_data_source.md b/docs/resources/qbusiness_data_source.md index 474419959..266da6588 100644 --- a/docs/resources/qbusiness_data_source.md +++ b/docs/resources/qbusiness_data_source.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_qbusiness_data_source Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,7 +9,129 @@ description: |- Definition of AWS::QBusiness::DataSource Resource Type - +## Example Usage + +### QBusiness data source of type S3 with the IAM role specifications for S3 access. + +```terraform +resource "awscc_qbusiness_data_source" "exaple" { + application_id = awscc_qbusiness_application.example.application_id + display_name = "example_q_data_source" + index_id = awscc_qbusiness_index.example.index_id + role_arn = awscc_iam_role.ds.arn + configuration = jsonencode( + { + type = "S3" + version = "1.0.0" + syncMode = "FORCED_FULL_CRAWL" + connectionConfiguration = { + repositoryEndpointMetadata = { + BucketName = var.bucket_name + } + } + additionalProperties = { + inclusionPrefixes = ["docs/"] + } + repositoryConfigurations = { + document = { + fieldMappings = [ + { + dataSourceFieldName = "s3_document_id" + indexFieldType = "STRING" + indexFieldName = "s3_document_id" + } + ] + } + } + } + ) + tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} + +resource "awscc_iam_role" "example" { + role_name = "QBusiness-DataSource-Role" + description = "QBusiness Data source role" + assume_role_policy_document = jsonencode({ + Version = "2012-10-17" + Statement = [ + { + Sid = "AllowsAmazonQToAssumeRoleForServicePrincipal" + Effect = "Allow" + Principal = { + Service = "qbusiness.amazonaws.com" + } + Action = [ + "sts:AssumeRole" + ] + Condition = { + StringEquals = { + "aws:SourceAccount" = data.aws_caller_identity.current.account_id + } + } + } + ] + }) + + tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} + +resource "awscc_iam_role_policy" "example" { + policy_name = "sample_iam_role_policy" + role_name = awscc_iam_role.ds.id + + policy_document = jsonencode({ + Version = "2012-10-17" + Statement = [ + { + Effect = "Allow" + Action = "s3:GetObject" + Resource = "arn:aws:s3:::${var.bucket_name}/*" + }, + { + Effect = "Allow" + Action = "s3:ListBucket" + Resource = "arn:aws:s3:::${var.bucket_name}" + }, + { + Effect = "Allow" + Action = [ + "qbusiness:BatchPutDocument", + "qbusiness:BatchDeleteDocument" + ] + Resource = "arn:aws:qbusiness:${data.aws_region.current.name}:${data.aws_caller_identity.current.account_id}:application/${awscc_qbusiness_application.example.id}/index/${awscc_qbusiness_index.example.id}" + }, + { + Effect = "Allow" + Action = ["qbusiness:PutGroup", + "qbusiness:CreateUser", + "qbusiness:DeleteGroup", + "qbusiness:UpdateUser", + "qbusiness:ListGroups"] + Resource = [ + "arn:aws:qbusiness:${data.aws_region.current.name}:${data.aws_caller_identity.current.account_id}:application/${awscc_qbusiness_application.example.id}", + "arn:aws:qbusiness:${data.aws_region.current.name}:${data.aws_caller_identity.current.account_id}:application/${awscc_qbusiness_application.example.id}/index/${awscc_qbusiness_index.example.id}", + "arn:aws:qbusiness:${data.aws_region.current.name}:${data.aws_caller_identity.current.account_id}:application/${awscc_qbusiness_application.example.id}/index/${awscc_qbusiness_index.example.id}/data-source/*" + ] + } + ] + }) +} + +variable "bucket_name" { + type = string + description = "Name of the bucket to be used as the data source input" +} + +data "aws_caller_identity" "current" {} + +data "aws_region" "current" {} +``` ## Schema diff --git a/examples/resources/awscc_qbusiness_data_source/qbusiness_data_source.tf b/examples/resources/awscc_qbusiness_data_source/qbusiness_data_source.tf new file mode 100644 index 000000000..e620e0369 --- /dev/null +++ b/examples/resources/awscc_qbusiness_data_source/qbusiness_data_source.tf @@ -0,0 +1,117 @@ +resource "awscc_qbusiness_data_source" "exaple" { + application_id = awscc_qbusiness_application.example.application_id + display_name = "example_q_data_source" + index_id = awscc_qbusiness_index.example.index_id + role_arn = awscc_iam_role.ds.arn + configuration = jsonencode( + { + type = "S3" + version = "1.0.0" + syncMode = "FORCED_FULL_CRAWL" + connectionConfiguration = { + repositoryEndpointMetadata = { + BucketName = var.bucket_name + } + } + additionalProperties = { + inclusionPrefixes = ["docs/"] + } + repositoryConfigurations = { + document = { + fieldMappings = [ + { + dataSourceFieldName = "s3_document_id" + indexFieldType = "STRING" + indexFieldName = "s3_document_id" + } + ] + } + } + } + ) + tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} + +resource "awscc_iam_role" "example" { + role_name = "QBusiness-DataSource-Role" + description = "QBusiness Data source role" + assume_role_policy_document = jsonencode({ + Version = "2012-10-17" + Statement = [ + { + Sid = "AllowsAmazonQToAssumeRoleForServicePrincipal" + Effect = "Allow" + Principal = { + Service = "qbusiness.amazonaws.com" + } + Action = [ + "sts:AssumeRole" + ] + Condition = { + StringEquals = { + "aws:SourceAccount" = data.aws_caller_identity.current.account_id + } + } + } + ] + }) + + tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} + +resource "awscc_iam_role_policy" "example" { + policy_name = "sample_iam_role_policy" + role_name = awscc_iam_role.ds.id + + policy_document = jsonencode({ + Version = "2012-10-17" + Statement = [ + { + Effect = "Allow" + Action = "s3:GetObject" + Resource = "arn:aws:s3:::${var.bucket_name}/*" + }, + { + Effect = "Allow" + Action = "s3:ListBucket" + Resource = "arn:aws:s3:::${var.bucket_name}" + }, + { + Effect = "Allow" + Action = [ + "qbusiness:BatchPutDocument", + "qbusiness:BatchDeleteDocument" + ] + Resource = "arn:aws:qbusiness:${data.aws_region.current.name}:${data.aws_caller_identity.current.account_id}:application/${awscc_qbusiness_application.example.id}/index/${awscc_qbusiness_index.example.id}" + }, + { + Effect = "Allow" + Action = ["qbusiness:PutGroup", + "qbusiness:CreateUser", + "qbusiness:DeleteGroup", + "qbusiness:UpdateUser", + "qbusiness:ListGroups"] + Resource = [ + "arn:aws:qbusiness:${data.aws_region.current.name}:${data.aws_caller_identity.current.account_id}:application/${awscc_qbusiness_application.example.id}", + "arn:aws:qbusiness:${data.aws_region.current.name}:${data.aws_caller_identity.current.account_id}:application/${awscc_qbusiness_application.example.id}/index/${awscc_qbusiness_index.example.id}", + "arn:aws:qbusiness:${data.aws_region.current.name}:${data.aws_caller_identity.current.account_id}:application/${awscc_qbusiness_application.example.id}/index/${awscc_qbusiness_index.example.id}/data-source/*" + ] + } + ] + }) +} + +variable "bucket_name" { + type = string + description = "Name of the bucket to be used as the data source input" +} + +data "aws_caller_identity" "current" {} + +data "aws_region" "current" {} diff --git a/templates/resources/qbusiness_data_source.md.tmpl b/templates/resources/qbusiness_data_source.md.tmpl new file mode 100644 index 000000000..ca9ada8ac --- /dev/null +++ b/templates/resources/qbusiness_data_source.md.tmpl @@ -0,0 +1,27 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +### QBusiness data source of type S3 with the IAM role specifications for S3 access. + +{{ tffile (printf "examples/resources/%s/qbusiness_data_source.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} From cfdaf7c062d1a4fadcf5409bf0ae4b4f27d2f8a6 Mon Sep 17 00:00:00 2001 From: vivekthangamuthu Date: Fri, 24 May 2024 10:27:13 +0000 Subject: [PATCH 02/89] Added docs for sagemaker domain resource. --- docs/resources/sagemaker_domain.md | 112 +++++++++++++++++- .../sagemaker_domain.tf | 41 +++++++ .../sagemaker_domain_custom_image.tf | 62 ++++++++++ templates/resources/sagemaker_domain.md.tmpl | 31 +++++ 4 files changed, 245 insertions(+), 1 deletion(-) create mode 100644 examples/resources/awscc_sagemaker_domain/sagemaker_domain.tf create mode 100644 examples/resources/awscc_sagemaker_domain/sagemaker_domain_custom_image.tf create mode 100644 templates/resources/sagemaker_domain.md.tmpl diff --git a/docs/resources/sagemaker_domain.md b/docs/resources/sagemaker_domain.md index fb26a1222..7825877ca 100644 --- a/docs/resources/sagemaker_domain.md +++ b/docs/resources/sagemaker_domain.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_sagemaker_domain Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,7 +9,118 @@ description: |- Resource Type definition for AWS::SageMaker::Domain +## Example Usage + +### Basic usage +To create a SageMaker Domain resource. +```terraform +resource "awscc_sagemaker_domain" "example" { + domain_name = "example" + auth_mode = "IAM" + vpc_id = awscc_ec2_vpc.example.id + subnet_ids = [awscc_ec2_subnet.example.id] + + default_user_settings = { + execution_role = awscc_iam_role.example.arn + } + tags = [ + { + key = "Modified By" + value = "AWSCC" + } + ] +} + +resource "awscc_iam_role" "example" { + role_name = "example" + path = "/" + assume_role_policy_document = jsonencode({ + Version = "2012-10-17" + Statement = [ + { + Action = "sts:AssumeRole" + Effect = "Allow" + Principal = { + Service = "sagemaker.amazonaws.com" + } + }, + ] + }) + tags = [ + { + key = "Modified By" + value = "AWSCC" + } + ] +} +``` +### Custom Images +To create a SageMaker Domain resource Using Custom Images. +```terraform +resource "awscc_sagemaker_domain" "example" { + domain_name = "example" + auth_mode = "IAM" + vpc_id = awscc_ec2_vpc.main.id + subnet_ids = [awscc_ec2_subnet.this.id] + + default_user_settings = { + execution_role = awscc_iam_role.example.arn + kernel_gateway_app_settings = { + custom_image = { + app_image_config_name = awscc_sagemaker_app_image_config.example.app_image_config_name + image_name = awscc_sagemaker_image_version.example.image_name + } + } + } + tags = [ + { + key = "Modified By" + value = "AWSCC" + } + ] +} + + +variable "image_name" { + type = string +} + +resource "awscc_sagemaker_image" "example" { + image_name = var.image_name + image_role_arn = awscc_iam_role.example.arn + tags = [ + { + key = "Modified By" + value = "AWSCC" + } + ] +} + +resource "awscc_sagemaker_image_version" "example" { + image_name = var.image_name + base_image = "012345678912.dkr.ecr.us-west-2.amazonaws.com/image:latest" + depends_on = [ + awscc_sagemaker_image.example + ] +} + +resource "awscc_sagemaker_app_image_config" "example" { + app_image_config_name = "example" + + kernel_gateway_image_config = { + kernel_specs = [{ + name = "example" + }] + } + tags = [ + { + key = "Modified By" + value = "AWSCC" + } + ] +} +``` ## Schema diff --git a/examples/resources/awscc_sagemaker_domain/sagemaker_domain.tf b/examples/resources/awscc_sagemaker_domain/sagemaker_domain.tf new file mode 100644 index 000000000..1aac81032 --- /dev/null +++ b/examples/resources/awscc_sagemaker_domain/sagemaker_domain.tf @@ -0,0 +1,41 @@ +resource "awscc_sagemaker_domain" "example" { + domain_name = "example" + auth_mode = "IAM" + vpc_id = awscc_ec2_vpc.example.id + subnet_ids = [awscc_ec2_subnet.example.id] + + default_user_settings = { + execution_role = awscc_iam_role.example.arn + } + tags = [ + { + key = "Modified By" + value = "AWSCC" + } + ] +} + +resource "awscc_iam_role" "example" { + role_name = "example" + path = "/" + assume_role_policy_document = jsonencode({ + Version = "2012-10-17" + Statement = [ + { + Action = "sts:AssumeRole" + Effect = "Allow" + Principal = { + Service = "sagemaker.amazonaws.com" + } + }, + ] + }) + tags = [ + { + key = "Modified By" + value = "AWSCC" + } + ] +} + + diff --git a/examples/resources/awscc_sagemaker_domain/sagemaker_domain_custom_image.tf b/examples/resources/awscc_sagemaker_domain/sagemaker_domain_custom_image.tf new file mode 100644 index 000000000..a6a34a797 --- /dev/null +++ b/examples/resources/awscc_sagemaker_domain/sagemaker_domain_custom_image.tf @@ -0,0 +1,62 @@ +resource "awscc_sagemaker_domain" "example" { + domain_name = "example" + auth_mode = "IAM" + vpc_id = awscc_ec2_vpc.main.id + subnet_ids = [awscc_ec2_subnet.this.id] + + default_user_settings = { + execution_role = awscc_iam_role.example.arn + kernel_gateway_app_settings = { + custom_image = { + app_image_config_name = awscc_sagemaker_app_image_config.example.app_image_config_name + image_name = awscc_sagemaker_image_version.example.image_name + } + } + } + tags = [ + { + key = "Modified By" + value = "AWSCC" + } + ] +} + + +variable "image_name" { + type = string +} + +resource "awscc_sagemaker_image" "example" { + image_name = var.image_name + image_role_arn = awscc_iam_role.example.arn + tags = [ + { + key = "Modified By" + value = "AWSCC" + } + ] +} + +resource "awscc_sagemaker_image_version" "example" { + image_name = var.image_name + base_image = "012345678912.dkr.ecr.us-west-2.amazonaws.com/image:latest" + depends_on = [ + awscc_sagemaker_image.example + ] +} + +resource "awscc_sagemaker_app_image_config" "example" { + app_image_config_name = "example" + + kernel_gateway_image_config = { + kernel_specs = [{ + name = "example" + }] + } + tags = [ + { + key = "Modified By" + value = "AWSCC" + } + ] +} \ No newline at end of file diff --git a/templates/resources/sagemaker_domain.md.tmpl b/templates/resources/sagemaker_domain.md.tmpl new file mode 100644 index 000000000..e77145b6c --- /dev/null +++ b/templates/resources/sagemaker_domain.md.tmpl @@ -0,0 +1,31 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +### Basic usage +To create a SageMaker Domain resource. +{{ tffile (printf "examples/resources/%s/sagemaker_domain.tf" .Name)}} + +### Custom Images +To create a SageMaker Domain resource Using Custom Images. +{{ tffile (printf "examples/resources/%s/sagemaker_domain_custom_image.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} From 222d2d7e68df1f540dd8a4995dbc83d75cdeb590 Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Thu, 30 May 2024 22:19:17 -0400 Subject: [PATCH 03/89] fix: added guide under templates --- .../using-aws-with-awscc-provider.md.tmpl | 135 ++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 templates/guides/using-aws-with-awscc-provider.md.tmpl diff --git a/templates/guides/using-aws-with-awscc-provider.md.tmpl b/templates/guides/using-aws-with-awscc-provider.md.tmpl new file mode 100644 index 000000000..1f2053fd3 --- /dev/null +++ b/templates/guides/using-aws-with-awscc-provider.md.tmpl @@ -0,0 +1,135 @@ +--- +subcategory: "" +layout: "aws" +page_title: "Using the Terraform awscc provider with aws provider" +description: |- + Managing resource tags with the Terraform AWS Provider. +--- + +# Using AWS & AWSCC Provider Together + +The [HashiCorp Terraform AWS Cloud Control Provider](https://registry.terraform.io/providers/hashicorp/awscc/latest) aims to bring Amazon Web Services (AWS) resources to Terraform users faster. The new provider is automatically generated, which means new features and services on AWS can be supported right away. The AWS Cloud Control provider supports over a thousand AWS resources, with more support being added as AWS service teams adopt the Cloud Control API standard. + +For Terraform users managing infrastructure on AWS, we expect the AWSCC provider will be used alongside the existing AWS provider. This guide is provided to show guidance and an example of using the providers together to deploy an AWS Cloud WAN Core Network. + +For more information about the AWSCC provider, please see the provider documentation in [Terraform Registry](https://registry.terraform.io/providers/hashicorp/awscc/latest) + + + +- [AWS CloudWAN Overview](#aws-cloud-wan) +- [Specifying Multiple Providers](#specifying-multiple-providers) + - [First Look at AWSCC Resources](#first-look-at-awscc-resources) + - [Using AWS and AWSCC Providers Together](#using-aws-and-awscc-providers-together) + + + +## AWS Cloud Wan + +In this guide we will deploy [AWS Cloud WAN](https://aws.amazon.com/cloud-wan/) to demonstrate how both AWS & AWSCC can work togther. Cloud WAN is a wide area networking (WAN) service that helps you build, manage, and monitor a unified global network that manages traffic running between resources in your cloud and on-premises environments. + +With Cloud WAN, you define network policies that are used to create a global network that spans multiple locations and networks—eliminating the need to configure and manage different networks individually using different technologies. Your network policies can be used to specify which of your Amazon Virtual Private Clouds (VPCs) and on-premises locations you wish to connect through AWS VPN or third-party software-defined WAN (SD-WAN) products, and the Cloud WAN central dashboard generates a complete view of the network to monitor network health, security, and performance. Cloud WAN automatically creates a global network across AWS Regions using Border Gateway Protocol (BGP), so you can easily exchange routes around the world. + +For more information on AWS Cloud WAN see [the documentation.](https://docs.aws.amazon.com/vpc/latest/cloudwan/what-is-cloudwan.html) + +## Specifying Multiple Providers + +Terraform can use many providers at once, as long as they are specified in your `terraform` configuration block: + +```terraform +terraform { + required_version = ">= 1.0.7" + required_providers { + aws = { + source = "hashicorp/aws" + version = ">= 4.9.0" + } + awscc = { + source = "hashicorp/awscc" + version = ">= 0.25.0" + } + } +} +``` + +The code snippet above informs terraform to download 2 providers as plugins for the current root module, the AWS and AWSCC provider. You can tell which provider is being use by looking at the resource or data source name-prefix. Resources that start with `aws_` use the AWS provider, resources that start with `awscc_` are using the AWSCC provider. + +### First look at AWSCC resources + +Lets start by building our [global network](https://aws.amazon.com/about-aws/global-infrastructure/global_network/) which will house our core network. + +```terraform +locals { + terraform_tag = [{ + key = "terraform" + value = "true" + }] +} + +resource "awscc_networkmanager_global_network" "main" { + description = "My Global Network" + tags = concat(local.terraform_tag, + [{ + key = "Name" + value = "My Global Network" + }] + ) +} +``` + +Above, we define a `awscc_networkmanager_global_network` with 2 tags and a description. AWSCC resources use the [standard AWS tag format](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) which is expressed in HCL as a list of maps with 2 keys. We want to reuse the `terraform = true` tag so we define it as a `local` then we use [concat](https://www.terraform.io/language/functions/concat) to join the list of tags together. + +### Using AWS and AWSCC providers together + +Next we will create a [core network](https://docs.aws.amazon.com/vpc/latest/cloudwan/cloudwan-core-network-policy.html) using an AWSCC resource `awscc_networkmanager_core_network` and an AWS data source `data.aws_networkmanager_core_network_policy_document` which allows users to write HCL to generate the json policy used as the [core policy network](https://docs.aws.amazon.com/vpc/latest/cloudwan/cloudwan-policies-json.html). + +```terraform +resource "awscc_networkmanager_core_network" "main" { + description = "My Core Network" + global_network_id = awscc_networkmanager_global_network.main.id + # Compose jsonencode and jsondecode to produce a normalized JSON string. + policy_document = jsonencode(jsondecode(data.aws_networkmanager_core_network_policy_document.main.json)) + tags = local.terraform_tag +} + +data "aws_networkmanager_core_network_policy_document" "main" { + core_network_configuration { + vpn_ecmp_support = false + asn_ranges = ["64512-64555"] + edge_locations { + location = "us-east-1" + asn = 64512 + } + } + + segments { + name = "shared" + description = "SegmentForSharedServices" + require_attachment_acceptance = true + } + + segment_actions { + action = "share" + mode = "attachment-route" + segment = "shared" + share_with = ["*"] + } + + attachment_policies { + rule_number = 1 + condition_logic = "or" + + conditions { + type = "tag-value" + operator = "equals" + key = "segment" + value = "shared" + } + action { + association_method = "constant" + segment = "shared" + } + } +} +``` + +Thanks to Terraform's plugin design, the providers work together seemlessly! From fd501fc46dcc4bb7504cc6638538cb36061c1cba Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Fri, 31 May 2024 09:15:53 -0400 Subject: [PATCH 04/89] fix: updated example for awscc_amplify_domain --- docs/resources/amplify_domain.md | 36 +++++++++---------- .../awscc_amplify_domain/amplify_domain.tf | 34 +++++++++--------- 2 files changed, 36 insertions(+), 34 deletions(-) diff --git a/docs/resources/amplify_domain.md b/docs/resources/amplify_domain.md index 8043359d1..c5474c20d 100644 --- a/docs/resources/amplify_domain.md +++ b/docs/resources/amplify_domain.md @@ -13,6 +13,24 @@ The AWS::Amplify::Domain resource allows you to connect a custom domain to your ### Basic Domain and Subdomains ```terraform +resource "awscc_amplify_domain" "example" { + app_id = awscc_amplify_app.example.app_id + domain_name = "example.com" + + sub_domain_settings = [ + { + # https://example.com + branch_name = awscc_amplify_branch.main.branch_name + prefix = "" + }, + { + # https://www.example.com + branch_name = awscc_amplify_branch.main.branch_name + prefix = "www" + }, + ] +} + resource "awscc_amplify_app" "example" { name = "app" @@ -30,24 +48,6 @@ resource "awscc_amplify_branch" "main" { app_id = awscc_amplify_app.example.app_id branch_name = "main" } - -resource "awscc_amplify_domain" "example" { - app_id = awscc_amplify_app.example.app_id - domain_name = "example.com" - - sub_domain_settings = [ - { - # https://example.com - branch_name = aws_amplify_branch.main.branch_name - prefix = "" - }, - { - # https://www.example.com - branch_name = aws_amplify_branch.main.branch_name - prefix = "www" - }, - ] -} ``` diff --git a/examples/resources/awscc_amplify_domain/amplify_domain.tf b/examples/resources/awscc_amplify_domain/amplify_domain.tf index 8e7540686..3c5e17b2c 100644 --- a/examples/resources/awscc_amplify_domain/amplify_domain.tf +++ b/examples/resources/awscc_amplify_domain/amplify_domain.tf @@ -1,3 +1,21 @@ +resource "awscc_amplify_domain" "example" { + app_id = awscc_amplify_app.example.app_id + domain_name = "example.com" + + sub_domain_settings = [ + { + # https://example.com + branch_name = awscc_amplify_branch.main.branch_name + prefix = "" + }, + { + # https://www.example.com + branch_name = awscc_amplify_branch.main.branch_name + prefix = "www" + }, + ] +} + resource "awscc_amplify_app" "example" { name = "app" @@ -16,20 +34,4 @@ resource "awscc_amplify_branch" "main" { branch_name = "main" } -resource "awscc_amplify_domain" "example" { - app_id = awscc_amplify_app.example.app_id - domain_name = "example.com" - sub_domain_settings = [ - { - # https://example.com - branch_name = aws_amplify_branch.main.branch_name - prefix = "" - }, - { - # https://www.example.com - branch_name = aws_amplify_branch.main.branch_name - prefix = "www" - }, - ] -} From 658d085b114eaa632f48629cff3043d89e241e2f Mon Sep 17 00:00:00 2001 From: Andrew Tulloch Date: Tue, 25 Jun 2024 11:28:32 +0100 Subject: [PATCH 05/89] Initial implementation of custom endpoints overrides --- internal/provider/provider.go | 49 ++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/internal/provider/provider.go b/internal/provider/provider.go index 938df1ac1..538669571 100644 --- a/internal/provider/provider.go +++ b/internal/provider/provider.go @@ -167,6 +167,26 @@ func (p *ccProvider) Schema(ctx context.Context, request provider.SchemaRequest, Optional: true, Description: "An `assume_role_with_web_identity` block (documented below). Only one `assume_role_with_web_identity` block may be in the configuration.", }, + "endpoints": schema.SingleNestedAttribute{ + Attributes: map[string]schema.Attribute{ + "cloudcontrolapi": schema.StringAttribute{ + Optional: true, + Description: "Use this to override the default Cloud Control API service endpoint URL", + }, + "iam": schema.StringAttribute{ + Optional: true, + Description: "Use this to override the default IAM service endpoint URL", + }, + "sso": schema.StringAttribute{ + Optional: true, + Description: "Use this to override the default SSO service endpoint URL", + }, + "sts": schema.StringAttribute{ + Optional: true, + Description: "Use this to override the default STS service endpoint URL", + }, + }, + }, "http_proxy": schema.StringAttribute{ Description: "URL of a proxy to use for HTTP requests when accessing the AWS API. Can also be set using the `HTTP_PROXY` or `http_proxy` environment variables.", Optional: true, @@ -255,6 +275,7 @@ type config struct { AccessKey types.String `tfsdk:"access_key"` AssumeRole *assumeRoleData `tfsdk:"assume_role"` AssumeRoleWithWebIdentity *assumeRoleWithWebIdentityData `tfsdk:"assume_role_with_web_identity"` + Endpoints *endpointData `tfsdk:"endpoints"` HTTPProxy types.String `tfsdk:"http_proxy"` HTTPSProxy types.String `tfsdk:"https_proxy"` Insecure types.Bool `tfsdk:"insecure"` @@ -291,6 +312,13 @@ type assumeRoleData struct { TransitiveTagKeys types.Set `tfsdk:"transitive_tag_keys"` } +type endpointData struct { + CloudControlApi types.String `tfsdk:"cloudcontrolapi"` + IAM types.String `tfsdk:"iam"` + SSO types.String `tfsdk:"sso"` + STS types.String `tfsdk:"sts"` +} + func (a assumeRoleData) Config() *awsbase.AssumeRole { assumeRole := &awsbase.AssumeRole{ Duration: a.Duration.ValueDuration(), @@ -439,12 +467,15 @@ func newProviderData(ctx context.Context, c *config) (*providerData, diag.Diagno HTTPProxy: flex.StringFromFramework(ctx, c.HTTPProxy), HTTPProxyMode: awsbase.HTTPProxyModeLegacy, HTTPSProxy: flex.StringFromFramework(ctx, c.HTTPSProxy), + IamEndpoint: *flex.StringFromFramework(ctx, c.Endpoints.IAM), Insecure: c.Insecure.ValueBool(), Logger: logger, NoProxy: c.NoProxy.ValueString(), Profile: c.Profile.ValueString(), Region: c.Region.ValueString(), SecretKey: c.SecretKey.ValueString(), + SsoEndpoint: *flex.StringFromFramework(ctx, c.Endpoints.SSO), + StsEndpoint: *flex.StringFromFramework(ctx, c.Endpoints.STS), Token: c.Token.ValueString(), APNInfo: &awsbase.APNInfo{ PartnerName: "HashiCorp", @@ -495,6 +526,16 @@ func newProviderData(ctx context.Context, c *config) (*providerData, diag.Diagno awsbaseConfig.EC2MetadataServiceEnableState = imds.ClientEnabled } + if !c.Endpoints.IAM.IsNull() { + awsbaseConfig.IamEndpoint = c.Endpoints.IAM.ValueString() + } + if !c.Endpoints.SSO.IsNull() { + awsbaseConfig.SsoEndpoint = c.Endpoints.SSO.ValueString() + } + if !c.Endpoints.STS.IsNull() { + awsbaseConfig.StsEndpoint = c.Endpoints.STS.ValueString() + } + _, cfg, awsDiags := awsbase.GetAwsConfig(ctx, &awsbaseConfig) for _, d := range awsDiags { @@ -510,8 +551,14 @@ func newProviderData(ctx context.Context, c *config) (*providerData, diag.Diagno return nil, diags } + ccAPIClient := cloudcontrol.NewFromConfig(cfg, func(o *cloudcontrol.Options) { + if !c.Endpoints.CloudControlApi.IsNull() { + o.BaseEndpoint = flex.StringFromFramework(ctx, c.Endpoints.CloudControlApi) + } + }) + providerData := &providerData{ - ccAPIClient: cloudcontrol.NewFromConfig(cfg), + ccAPIClient: ccAPIClient, logger: logger, region: cfg.Region, roleARN: c.RoleARN.ValueString(), From 5ec8f5eaf3f40cae2cee3e38468b7ff815713188 Mon Sep 17 00:00:00 2001 From: Andrew Tulloch Date: Tue, 25 Jun 2024 11:44:38 +0100 Subject: [PATCH 06/89] Make endpoints block optional and add description --- internal/provider/provider.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/internal/provider/provider.go b/internal/provider/provider.go index 538669571..355214d89 100644 --- a/internal/provider/provider.go +++ b/internal/provider/provider.go @@ -186,6 +186,8 @@ func (p *ccProvider) Schema(ctx context.Context, request provider.SchemaRequest, Description: "Use this to override the default STS service endpoint URL", }, }, + Optional: true, + Description: "An `endpoints` block (documented blow). Only one `endpoints` block may be in the configuration.", }, "http_proxy": schema.StringAttribute{ Description: "URL of a proxy to use for HTTP requests when accessing the AWS API. Can also be set using the `HTTP_PROXY` or `http_proxy` environment variables.", From ff6685e28fb1d95df9b84f7e3f095016653b3732 Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Sun, 30 Jun 2024 11:54:36 -0400 Subject: [PATCH 07/89] fix: updated example for awscc_inspectorv2_cis_scan_configuration --- docs/resources/inspectorv2_cis_scan_configuration.md | 1 + .../inspectorv2_cis_scan_configuration.tf | 1 + 2 files changed, 2 insertions(+) diff --git a/docs/resources/inspectorv2_cis_scan_configuration.md b/docs/resources/inspectorv2_cis_scan_configuration.md index 081fd99ec..e1f9510b0 100644 --- a/docs/resources/inspectorv2_cis_scan_configuration.md +++ b/docs/resources/inspectorv2_cis_scan_configuration.md @@ -27,6 +27,7 @@ resource "awscc_inspectorv2_cis_scan_configuration" "example" { security_level = "LEVEL_1" targets = { + # use SELF for current account to remove any drift as property transformation is not currently supported. account_ids = ["123456789012"] target_resource_tags = { "Modified By" = ["AWSCC"] diff --git a/examples/resources/awscc_inspectorv2_cis_scan_configuration/inspectorv2_cis_scan_configuration.tf b/examples/resources/awscc_inspectorv2_cis_scan_configuration/inspectorv2_cis_scan_configuration.tf index d63611fa7..a90a2539e 100644 --- a/examples/resources/awscc_inspectorv2_cis_scan_configuration/inspectorv2_cis_scan_configuration.tf +++ b/examples/resources/awscc_inspectorv2_cis_scan_configuration/inspectorv2_cis_scan_configuration.tf @@ -11,6 +11,7 @@ resource "awscc_inspectorv2_cis_scan_configuration" "example" { security_level = "LEVEL_1" targets = { + # use SELF for current account to remove any drift as property transformation is not currently supported. account_ids = ["123456789012"] target_resource_tags = { "Modified By" = ["AWSCC"] From b569a8e869900cf61c2a9f7fc342520a27f9147d Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Mon, 1 Jul 2024 01:02:53 -0400 Subject: [PATCH 08/89] docs: added example for awscc_backup_framework --- docs/resources/backup_framework.md | 60 ++++++++++++++++++- .../backup_framework.tf | 50 ++++++++++++++++ templates/resources/backup_framework.md.tmpl | 27 +++++++++ 3 files changed, 134 insertions(+), 3 deletions(-) create mode 100644 examples/resources/awscc_backup_framework/backup_framework.tf create mode 100644 templates/resources/backup_framework.md.tmpl diff --git a/docs/resources/backup_framework.md b/docs/resources/backup_framework.md index f05f224c0..1a2bbef12 100644 --- a/docs/resources/backup_framework.md +++ b/docs/resources/backup_framework.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_backup_framework Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,7 +9,62 @@ description: |- Contains detailed information about a framework. Frameworks contain controls, which evaluate and report on your backup events and resources. Frameworks generate daily compliance results. - +## Example Usage + +Create a backup framework with both control scopes defined and not defined. + +```terraform +resource "awscc_backup_framework" "example" { + framework_controls = [{ + control_name = "BACKUP_PLAN_MIN_FREQUENCY_AND_MIN_RETENTION_CHECK" + control_input_parameters = [{ + parameter_name = "requiredRetentionDays" + parameter_value = "35" + }, + { + parameter_name = "requiredFrequencyValue" + parameter_value = "1" + }, + { + parameter_name = "requiredFrequencyUnit" + parameter_value = "days" + }] + }, + { + control_name = "BACKUP_LAST_RECOVERY_POINT_CREATED" + control_input_parameters = [ + { + parameter_name = "recoveryPointAgeValue" + parameter_value = "1" + }, + { + parameter_name = "recoveryPointAgeUnit" + parameter_value = "days" + }], + control_scope = { + compliance_resource_types = [ + "RDS", + "S3", + "Aurora", + "EFS", + "EC2", + "Storage Gateway", + "EBS", + "DynamoDB", + "FSx", + "VirtualMachine" + ] + } + } + ] + framework_description = "example framework" + framework_name = "example" + framework_tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} +``` ## Schema @@ -96,4 +150,4 @@ Import is supported using the following syntax: ```shell $ terraform import awscc_backup_framework.example -``` +``` \ No newline at end of file diff --git a/examples/resources/awscc_backup_framework/backup_framework.tf b/examples/resources/awscc_backup_framework/backup_framework.tf new file mode 100644 index 000000000..a0fd4bb32 --- /dev/null +++ b/examples/resources/awscc_backup_framework/backup_framework.tf @@ -0,0 +1,50 @@ +resource "awscc_backup_framework" "example" { + framework_controls = [{ + control_name = "BACKUP_PLAN_MIN_FREQUENCY_AND_MIN_RETENTION_CHECK" + control_input_parameters = [{ + parameter_name = "requiredRetentionDays" + parameter_value = "35" + }, + { + parameter_name = "requiredFrequencyValue" + parameter_value = "1" + }, + { + parameter_name = "requiredFrequencyUnit" + parameter_value = "days" + }] + }, + { + control_name = "BACKUP_LAST_RECOVERY_POINT_CREATED" + control_input_parameters = [ + { + parameter_name = "recoveryPointAgeValue" + parameter_value = "1" + }, + { + parameter_name = "recoveryPointAgeUnit" + parameter_value = "days" + }], + control_scope = { + compliance_resource_types = [ + "RDS", + "S3", + "Aurora", + "EFS", + "EC2", + "Storage Gateway", + "EBS", + "DynamoDB", + "FSx", + "VirtualMachine" + ] + } + } + ] + framework_description = "example framework" + framework_name = "example" + framework_tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} diff --git a/templates/resources/backup_framework.md.tmpl b/templates/resources/backup_framework.md.tmpl new file mode 100644 index 000000000..7ac6e82ab --- /dev/null +++ b/templates/resources/backup_framework.md.tmpl @@ -0,0 +1,27 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +Create a backup framework with both control scopes defined and not defined. + +{{ tffile (printf "examples/resources/%s/backup_framework.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} \ No newline at end of file From d72f71c4a0b530ef8f2bde56d1c3cc3f1ee60603 Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Tue, 2 Jul 2024 22:29:45 -0400 Subject: [PATCH 09/89] docs: added example for awscc_billingconductor_billing_group --- .../billingconductor_billing_group.md | 25 ++++++++++++++++--- .../billingconductor_billing_group.tf | 17 +++++++++++++ .../billingconductor_billing_group.md.tmpl | 25 +++++++++++++++++++ 3 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 examples/resources/awscc_billingconductor_billing_group/billingconductor_billing_group.tf create mode 100644 templates/resources/billingconductor_billing_group.md.tmpl diff --git a/docs/resources/billingconductor_billing_group.md b/docs/resources/billingconductor_billing_group.md index c92997d0e..420e7c383 100644 --- a/docs/resources/billingconductor_billing_group.md +++ b/docs/resources/billingconductor_billing_group.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_billingconductor_billing_group Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,7 +9,27 @@ description: |- A billing group is a set of linked account which belong to the same end customer. It can be seen as a virtual consolidated billing family. - +## Example Usage + +```terraform +resource "awscc_billingconductor_billing_group" "example" { + name = "example" + description = "Example description" + computation_preference = { + pricing_plan_arn = awscc_billingconductor_pricing_plan.example.arn + } + primary_account_id = "123456789012" + account_grouping = { + linked_account_ids = ["123456789012"] + } + tags = [ + { + key = "Modified By" + value = "AWSCC" + } + ] +} +``` ## Schema @@ -71,4 +90,4 @@ Import is supported using the following syntax: ```shell $ terraform import awscc_billingconductor_billing_group.example -``` +``` \ No newline at end of file diff --git a/examples/resources/awscc_billingconductor_billing_group/billingconductor_billing_group.tf b/examples/resources/awscc_billingconductor_billing_group/billingconductor_billing_group.tf new file mode 100644 index 000000000..f1cff2662 --- /dev/null +++ b/examples/resources/awscc_billingconductor_billing_group/billingconductor_billing_group.tf @@ -0,0 +1,17 @@ +resource "awscc_billingconductor_billing_group" "example" { + name = "example" + description = "Example description" + computation_preference = { + pricing_plan_arn = awscc_billingconductor_pricing_plan.example.arn + } + primary_account_id = "123456789012" + account_grouping = { + linked_account_ids = ["123456789012"] + } + tags = [ + { + key = "Modified By" + value = "AWSCC" + } + ] +} \ No newline at end of file diff --git a/templates/resources/billingconductor_billing_group.md.tmpl b/templates/resources/billingconductor_billing_group.md.tmpl new file mode 100644 index 000000000..aaf1940c7 --- /dev/null +++ b/templates/resources/billingconductor_billing_group.md.tmpl @@ -0,0 +1,25 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +{{ tffile (printf "examples/resources/%s/billingconductor_billing_group.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} \ No newline at end of file From da0344c3ad7ad55d4f6215b3003f749c474b9944 Mon Sep 17 00:00:00 2001 From: Andrew Tulloch Date: Tue, 9 Jul 2024 10:50:44 +0100 Subject: [PATCH 10/89] Get basic test for CC API Override working --- internal/provider/provider.go | 3 --- internal/provider/provider_test.go | 25 +++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/internal/provider/provider.go b/internal/provider/provider.go index 355214d89..0c6ce5a56 100644 --- a/internal/provider/provider.go +++ b/internal/provider/provider.go @@ -469,15 +469,12 @@ func newProviderData(ctx context.Context, c *config) (*providerData, diag.Diagno HTTPProxy: flex.StringFromFramework(ctx, c.HTTPProxy), HTTPProxyMode: awsbase.HTTPProxyModeLegacy, HTTPSProxy: flex.StringFromFramework(ctx, c.HTTPSProxy), - IamEndpoint: *flex.StringFromFramework(ctx, c.Endpoints.IAM), Insecure: c.Insecure.ValueBool(), Logger: logger, NoProxy: c.NoProxy.ValueString(), Profile: c.Profile.ValueString(), Region: c.Region.ValueString(), SecretKey: c.SecretKey.ValueString(), - SsoEndpoint: *flex.StringFromFramework(ctx, c.Endpoints.SSO), - StsEndpoint: *flex.StringFromFramework(ctx, c.Endpoints.STS), Token: c.Token.ValueString(), APNInfo: &awsbase.APNInfo{ PartnerName: "HashiCorp", diff --git a/internal/provider/provider_test.go b/internal/provider/provider_test.go index 06345e20b..95e7c3b55 100644 --- a/internal/provider/provider_test.go +++ b/internal/provider/provider_test.go @@ -4,6 +4,7 @@ package provider import ( + "context" "testing" "github.com/google/go-cmp/cmp" @@ -54,3 +55,27 @@ func TestUserAgentProducts(t *testing.T) { }) } } + +func TestAccCloudControlEndpointOverride(t *testing.T) { + + ctx := context.TODO() + + ccEndpoint := "http://localhost:8081" + + overrideEndpointConfig := &config{Endpoints: &endpointData{ + CloudControlApi: types.StringValue(ccEndpoint), + }} + + endpointProviderData, diags := newProviderData(ctx, overrideEndpointConfig) + + if diags.HasError() { + t.Errorf("failed to create provider data: %q", diags) + return + } + + if !cmp.Equal(*endpointProviderData.ccAPIClient.Options().BaseEndpoint, ccEndpoint) { + t.Errorf("expected %q, got %q", ccEndpoint, *endpointProviderData.ccAPIClient.Options().BaseEndpoint) + return + } + +} From 183887291a691c0111dfdf9fcb3c6a38624ae35a Mon Sep 17 00:00:00 2001 From: Andrew Tulloch Date: Tue, 9 Jul 2024 11:19:09 +0100 Subject: [PATCH 11/89] Add STS override test --- internal/provider/provider_test.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/internal/provider/provider_test.go b/internal/provider/provider_test.go index 95e7c3b55..a2dd45888 100644 --- a/internal/provider/provider_test.go +++ b/internal/provider/provider_test.go @@ -5,6 +5,7 @@ package provider import ( "context" + "strings" "testing" "github.com/google/go-cmp/cmp" @@ -79,3 +80,28 @@ func TestAccCloudControlEndpointOverride(t *testing.T) { } } + +func TestAccStsEndpointOverride(t *testing.T) { + + ctx := context.TODO() + + stsEndpoint := "http://localhost:8081" + + overrideEndpointConfig := &config{Endpoints: &endpointData{ + STS: types.StringValue(stsEndpoint), + }} + + _, diags := newProviderData(ctx, overrideEndpointConfig) + + if diags.HasError() { + for _, err := range diags.Errors() { + if strings.Contains(err.Summary(), stsEndpoint) { + return // we got the right error + } + } + t.Errorf("failed to create provider data: %q", diags) + return + } + t.Errorf("expected error for sts endpoint") + +} From c969b803142af00971341803d475e62a8250196d Mon Sep 17 00:00:00 2001 From: Dave DeRicco <30156588+ddericco@users.noreply.github.com> Date: Mon, 15 Jul 2024 17:33:44 -0400 Subject: [PATCH 12/89] Docs: add examples for awscc_ec2_vpn_connection --- docs/resources/ec2_vpn_connection.md | 62 ++++++++++++++++++- .../awscc_ec2_vpn_connection/tgw_vpn.tf | 23 +++++++ .../awscc_ec2_vpn_connection/vgw_vpn.tf | 26 ++++++++ .../resources/ec2_vpn_connection.md.tmpl | 31 ++++++++++ 4 files changed, 140 insertions(+), 2 deletions(-) create mode 100644 examples/resources/awscc_ec2_vpn_connection/tgw_vpn.tf create mode 100644 examples/resources/awscc_ec2_vpn_connection/vgw_vpn.tf create mode 100644 templates/resources/ec2_vpn_connection.md.tmpl diff --git a/docs/resources/ec2_vpn_connection.md b/docs/resources/ec2_vpn_connection.md index 52be7e971..b001c37b7 100644 --- a/docs/resources/ec2_vpn_connection.md +++ b/docs/resources/ec2_vpn_connection.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_ec2_vpn_connection Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,7 +9,66 @@ description: |- Resource Type definition for AWS::EC2::VPNConnection +## Example Usage + +### Transit Gateway +VPN connection attached to a Transit Gateway. +```terraform +resource "awscc_ec2_transit_gateway" "example" {} + +resource "awscc_ec2_customer_gateway" "example" { + bgp_asn = 65000 + ip_address = "198.51.100.1" + type = "ipsec.1" +} + +resource "awscc_ec2_vpn_connection" "example" { + customer_gateway_id = awscc_ec2_customer_gateway.example.id + transit_gateway_id = awscc_ec2_transit_gateway.example.id + type = "ipsec.1" + + vpn_tunnel_options_specifications = [{ + tunnel_inside_cidr = "169.254.10.0/30" + pre_shared_key = "example1" + }, + { + tunnel_inside_cidr = "169.254.11.0/30" + pre_shared_key = "example2" + } + ] +} +``` +### Virtual Private Gateway +VPN connection to a Virtual Private Gateway. +```terraform +resource "awscc_ec2_vpn_gateway" "example" { + type = "ipsec.1" +} + +resource "awscc_ec2_customer_gateway" "example" { + bgp_asn = 65000 + ip_address = "198.51.100.1" + type = "ipsec.1" +} + +resource "awscc_ec2_vpn_connection" "example" { + customer_gateway_id = awscc_ec2_customer_gateway.example.id + vpn_gateway_id = awscc_ec2_vpn_gateway.example.id + type = "ipsec.1" + + vpn_tunnel_options_specifications = [{ + tunnel_inside_cidr = "169.254.10.0/30" + pre_shared_key = "example1" + + }, + { + tunnel_inside_cidr = "169.254.11.0/30" + pre_shared_key = "example2" + } + ] +} +``` ## Schema @@ -56,4 +114,4 @@ Import is supported using the following syntax: ```shell $ terraform import awscc_ec2_vpn_connection.example -``` +``` \ No newline at end of file diff --git a/examples/resources/awscc_ec2_vpn_connection/tgw_vpn.tf b/examples/resources/awscc_ec2_vpn_connection/tgw_vpn.tf new file mode 100644 index 000000000..de5784cbc --- /dev/null +++ b/examples/resources/awscc_ec2_vpn_connection/tgw_vpn.tf @@ -0,0 +1,23 @@ +resource "awscc_ec2_transit_gateway" "example" {} + +resource "awscc_ec2_customer_gateway" "example" { + bgp_asn = 65000 + ip_address = "198.51.100.1" + type = "ipsec.1" +} + +resource "awscc_ec2_vpn_connection" "example" { + customer_gateway_id = awscc_ec2_customer_gateway.example.id + transit_gateway_id = awscc_ec2_transit_gateway.example.id + type = "ipsec.1" + + vpn_tunnel_options_specifications = [{ + tunnel_inside_cidr = "169.254.10.0/30" + pre_shared_key = "example1" + }, + { + tunnel_inside_cidr = "169.254.11.0/30" + pre_shared_key = "example2" + } + ] +} \ No newline at end of file diff --git a/examples/resources/awscc_ec2_vpn_connection/vgw_vpn.tf b/examples/resources/awscc_ec2_vpn_connection/vgw_vpn.tf new file mode 100644 index 000000000..c196595c9 --- /dev/null +++ b/examples/resources/awscc_ec2_vpn_connection/vgw_vpn.tf @@ -0,0 +1,26 @@ +resource "awscc_ec2_vpn_gateway" "example" { + type = "ipsec.1" +} + +resource "awscc_ec2_customer_gateway" "example" { + bgp_asn = 65000 + ip_address = "198.51.100.1" + type = "ipsec.1" +} + +resource "awscc_ec2_vpn_connection" "example" { + customer_gateway_id = awscc_ec2_customer_gateway.example.id + vpn_gateway_id = awscc_ec2_vpn_gateway.example.id + type = "ipsec.1" + + vpn_tunnel_options_specifications = [{ + tunnel_inside_cidr = "169.254.10.0/30" + pre_shared_key = "example1" + + }, + { + tunnel_inside_cidr = "169.254.11.0/30" + pre_shared_key = "example2" + } + ] +} \ No newline at end of file diff --git a/templates/resources/ec2_vpn_connection.md.tmpl b/templates/resources/ec2_vpn_connection.md.tmpl new file mode 100644 index 000000000..77c8a7393 --- /dev/null +++ b/templates/resources/ec2_vpn_connection.md.tmpl @@ -0,0 +1,31 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +### Transit Gateway +VPN connection attached to a Transit Gateway. +{{ tffile (printf "examples/resources/%s/tgw_vpn.tf" .Name)}} + +### Virtual Private Gateway +VPN connection to a Virtual Private Gateway. +{{ tffile (printf "examples/resources/%s/vgw_vpn.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} \ No newline at end of file From 240f86150bb3c7d8c0416227117823a96801868e Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Fri, 19 Jul 2024 12:36:56 -0400 Subject: [PATCH 13/89] docs: added examples for awscc_lambda_alias --- docs/resources/lambda_alias.md | 33 +++++++++++++++++-- .../awscc_lambda_alias/lambda_alias_basic.tf | 6 ++++ .../lambda_alias_weighted.tf | 14 ++++++++ templates/resources/lambda_alias.md.tmpl | 31 +++++++++++++++++ 4 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 examples/resources/awscc_lambda_alias/lambda_alias_basic.tf create mode 100644 examples/resources/awscc_lambda_alias/lambda_alias_weighted.tf create mode 100644 templates/resources/lambda_alias.md.tmpl diff --git a/docs/resources/lambda_alias.md b/docs/resources/lambda_alias.md index a1b205b8b..3b72da86e 100644 --- a/docs/resources/lambda_alias.md +++ b/docs/resources/lambda_alias.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_lambda_alias Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,7 +9,37 @@ description: |- Resource Type definition for AWS::Lambda::Alias +## Example Usage +### Basic usage with $LATEST version. + +```terraform +resource "awscc_lambda_alias" "example" { + function_name = awscc_lambda_function.example.arn + function_version = "$LATEST" + name = "example-alias" + description = "example alias" +} +``` + +### Alias with weighted config + +```terraform +resource "awscc_lambda_alias" "example" { + function_name = awscc_lambda_function.example.arn + function_version = "v1" + name = "example-alias" + description = "example alias" + routing_config = { + additional_version_weights = [ + { + function_version = "v2" + function_weight = 0.5 + } + ] + } +} +``` ## Schema @@ -61,4 +90,4 @@ Import is supported using the following syntax: ```shell $ terraform import awscc_lambda_alias.example -``` +``` \ No newline at end of file diff --git a/examples/resources/awscc_lambda_alias/lambda_alias_basic.tf b/examples/resources/awscc_lambda_alias/lambda_alias_basic.tf new file mode 100644 index 000000000..783cec6d4 --- /dev/null +++ b/examples/resources/awscc_lambda_alias/lambda_alias_basic.tf @@ -0,0 +1,6 @@ +resource "awscc_lambda_alias" "example" { + function_name = awscc_lambda_function.example.arn + function_version = "$LATEST" + name = "example-alias" + description = "example alias" +} \ No newline at end of file diff --git a/examples/resources/awscc_lambda_alias/lambda_alias_weighted.tf b/examples/resources/awscc_lambda_alias/lambda_alias_weighted.tf new file mode 100644 index 000000000..e1091fbf5 --- /dev/null +++ b/examples/resources/awscc_lambda_alias/lambda_alias_weighted.tf @@ -0,0 +1,14 @@ +resource "awscc_lambda_alias" "example" { + function_name = awscc_lambda_function.example.arn + function_version = "v1" + name = "example-alias" + description = "example alias" + routing_config = { + additional_version_weights = [ + { + function_version = "v2" + function_weight = 0.5 + } + ] + } +} \ No newline at end of file diff --git a/templates/resources/lambda_alias.md.tmpl b/templates/resources/lambda_alias.md.tmpl new file mode 100644 index 000000000..94f6a353e --- /dev/null +++ b/templates/resources/lambda_alias.md.tmpl @@ -0,0 +1,31 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +### Basic usage with $LATEST version. + +{{ tffile (printf "examples/resources/%s/lambda_alias_basic.tf" .Name)}} + +### Alias with weighted config + +{{ tffile (printf "examples/resources/%s/lambda_alias_weighted.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} \ No newline at end of file From 294ac3be01d063a04523f284e21c04ee86ccc3c6 Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Fri, 19 Jul 2024 16:24:13 -0400 Subject: [PATCH 14/89] docs: added example for awscc_datasync_location_s3 --- docs/resources/datasync_location_s3.md | 94 ++++++++++++++++++- .../datasync_location_s3.tf | 86 +++++++++++++++++ .../resources/datasync_location_s3.md.tmpl | 25 +++++ 3 files changed, 202 insertions(+), 3 deletions(-) create mode 100644 examples/resources/awscc_datasync_location_s3/datasync_location_s3.tf create mode 100644 templates/resources/datasync_location_s3.md.tmpl diff --git a/docs/resources/datasync_location_s3.md b/docs/resources/datasync_location_s3.md index fc6ba043c..7ff97578f 100644 --- a/docs/resources/datasync_location_s3.md +++ b/docs/resources/datasync_location_s3.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_datasync_location_s3 Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,7 +9,96 @@ description: |- Resource schema for AWS::DataSync::LocationS3 - +## Example Usage + +```terraform +resource "awscc_datasync_location_s3" "example" { + s3_bucket_arn = "arn:aws:s3:::example-bucket" + s3_config = { + bucket_access_role_arn = awscc_iam_role.example.arn + } + s3_storage_class = "STANDARD" + subdirectory = "/docs" + + tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} + +resource "awscc_iam_role" "example" { + role_name = "AWSDataSyncS3BucketAccess-example-bucket" + assume_role_policy_document = jsonencode({ + Version = "2012-10-17" + Statement = [ + { + Effect = "Allow" + Principal = { + Service = "datasync.amazonaws.com" + } + Action = "sts:AssumeRole" + Condition = { + StringEquals = { + "aws:SourceAccount" = data.aws_caller_identity.current.account_id + }, + ArnLike = { + "aws:SourceArn" = "arn:aws:datasync:us-east-1:${data.aws_caller_identity.current.account_id}:*" + } + } + } + ] + }) + policies = [{ + policy_name = "s2_ds_inline" + policy_document = jsonencode( + { + "Version" : "2012-10-17", + "Statement" : [ + { + "Sid" : "AWSDataSyncS3BucketPermissions", + "Effect" : "Allow", + "Action" : [ + "s3:GetBucketLocation", + "s3:ListBucket", + "s3:ListBucketMultipartUploads" + ], + "Resource" : "arn:aws:s3:::example-bucket", + "Condition" : { + "StringEquals" : { + "aws:ResourceAccount" : data.aws_caller_identity.current.account_id + } + } + }, + { + "Sid" : "AWSDataSyncS3ObjectPermissions", + "Effect" : "Allow", + "Action" : [ + "s3:AbortMultipartUpload", + "s3:DeleteObject", + "s3:GetObject", + "s3:GetObjectTagging", + "s3:GetObjectVersion", + "s3:GetObjectVersionTagging", + "s3:ListMultipartUploadParts", + "s3:PutObject", + "s3:PutObjectTagging" + ], + "Resource" : "arn:aws:s3:::example-bucket/*", + "Condition" : { + "StringEquals" : { + "aws:ResourceAccount" : data.aws_caller_identity.current.account_id + } + } + } + ] + } + ) + }] + +} + +data "aws_caller_identity" "current" {} +``` ## Schema @@ -54,4 +142,4 @@ Import is supported using the following syntax: ```shell $ terraform import awscc_datasync_location_s3.example -``` +``` \ No newline at end of file diff --git a/examples/resources/awscc_datasync_location_s3/datasync_location_s3.tf b/examples/resources/awscc_datasync_location_s3/datasync_location_s3.tf new file mode 100644 index 000000000..108cdf656 --- /dev/null +++ b/examples/resources/awscc_datasync_location_s3/datasync_location_s3.tf @@ -0,0 +1,86 @@ +resource "awscc_datasync_location_s3" "example" { + s3_bucket_arn = "arn:aws:s3:::example-bucket" + s3_config = { + bucket_access_role_arn = awscc_iam_role.example.arn + } + s3_storage_class = "STANDARD" + subdirectory = "/docs" + + tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} + +resource "awscc_iam_role" "example" { + role_name = "AWSDataSyncS3BucketAccess-example-bucket" + assume_role_policy_document = jsonencode({ + Version = "2012-10-17" + Statement = [ + { + Effect = "Allow" + Principal = { + Service = "datasync.amazonaws.com" + } + Action = "sts:AssumeRole" + Condition = { + StringEquals = { + "aws:SourceAccount" = data.aws_caller_identity.current.account_id + }, + ArnLike = { + "aws:SourceArn" = "arn:aws:datasync:us-east-1:${data.aws_caller_identity.current.account_id}:*" + } + } + } + ] + }) + policies = [{ + policy_name = "s2_ds_inline" + policy_document = jsonencode( + { + "Version" : "2012-10-17", + "Statement" : [ + { + "Sid" : "AWSDataSyncS3BucketPermissions", + "Effect" : "Allow", + "Action" : [ + "s3:GetBucketLocation", + "s3:ListBucket", + "s3:ListBucketMultipartUploads" + ], + "Resource" : "arn:aws:s3:::example-bucket", + "Condition" : { + "StringEquals" : { + "aws:ResourceAccount" : data.aws_caller_identity.current.account_id + } + } + }, + { + "Sid" : "AWSDataSyncS3ObjectPermissions", + "Effect" : "Allow", + "Action" : [ + "s3:AbortMultipartUpload", + "s3:DeleteObject", + "s3:GetObject", + "s3:GetObjectTagging", + "s3:GetObjectVersion", + "s3:GetObjectVersionTagging", + "s3:ListMultipartUploadParts", + "s3:PutObject", + "s3:PutObjectTagging" + ], + "Resource" : "arn:aws:s3:::example-bucket/*", + "Condition" : { + "StringEquals" : { + "aws:ResourceAccount" : data.aws_caller_identity.current.account_id + } + } + } + ] + } + ) + }] + +} + +data "aws_caller_identity" "current" {} diff --git a/templates/resources/datasync_location_s3.md.tmpl b/templates/resources/datasync_location_s3.md.tmpl new file mode 100644 index 000000000..d5c6fe6c1 --- /dev/null +++ b/templates/resources/datasync_location_s3.md.tmpl @@ -0,0 +1,25 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +{{ tffile (printf "examples/resources/%s/datasync_location_s3.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} \ No newline at end of file From 5a84680e1639ef815fe3070bf163a45d5a52af5b Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Sat, 20 Jul 2024 12:35:12 -0400 Subject: [PATCH 15/89] docs: added example for awscc_xray_resource_policy --- docs/resources/xray_resource_policy.md | 42 ++++++++++++++++++- .../xray_resource_policy.tf | 35 ++++++++++++++++ .../resources/xray_resource_policy.md.tmpl | 26 ++++++++++++ 3 files changed, 101 insertions(+), 2 deletions(-) create mode 100644 examples/resources/awscc_xray_resource_policy/xray_resource_policy.tf create mode 100644 templates/resources/xray_resource_policy.md.tmpl diff --git a/docs/resources/xray_resource_policy.md b/docs/resources/xray_resource_policy.md index 01829490d..7e04f5397 100644 --- a/docs/resources/xray_resource_policy.md +++ b/docs/resources/xray_resource_policy.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_xray_resource_policy Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,6 +9,45 @@ description: |- This schema provides construct and validation rules for AWS-XRay Resource Policy resource parameters. +## Example Usage + +```terraform +resource "awscc_xray_resource_policy" "example" { + policy_document = jsonencode( + { + "Version" : "2012-10-17", + "Statement" : [ + { + "Sid" : "SNSAccess", + "Effect" : "Allow", + "Principal" : { + "Service" : "sns.amazonaws.com" + }, + "Action" : [ + "xray:PutTraceSegments", + "xray:GetSamplingRules", + "xray:GetSamplingTargets" + ], + "Resource" : "*", + "Condition" : { + "StringEquals" : { + "aws:SourceAccount" : data.aws_caller_identity.current.account_id + }, + "StringLike" : { + "aws:SourceArn" : "arn:aws:sns:us-east-1:${data.aws_caller_identity.current.account_id}:*" + } + } + } + ] + } + ) + policy_name = "example" + bypass_policy_lockout_check = false + +} + +data "aws_caller_identity" "current" {} +``` @@ -34,4 +72,4 @@ Import is supported using the following syntax: ```shell $ terraform import awscc_xray_resource_policy.example -``` +``` \ No newline at end of file diff --git a/examples/resources/awscc_xray_resource_policy/xray_resource_policy.tf b/examples/resources/awscc_xray_resource_policy/xray_resource_policy.tf new file mode 100644 index 000000000..93b003c3c --- /dev/null +++ b/examples/resources/awscc_xray_resource_policy/xray_resource_policy.tf @@ -0,0 +1,35 @@ +resource "awscc_xray_resource_policy" "example" { + policy_document = jsonencode( + { + "Version" : "2012-10-17", + "Statement" : [ + { + "Sid" : "SNSAccess", + "Effect" : "Allow", + "Principal" : { + "Service" : "sns.amazonaws.com" + }, + "Action" : [ + "xray:PutTraceSegments", + "xray:GetSamplingRules", + "xray:GetSamplingTargets" + ], + "Resource" : "*", + "Condition" : { + "StringEquals" : { + "aws:SourceAccount" : data.aws_caller_identity.current.account_id + }, + "StringLike" : { + "aws:SourceArn" : "arn:aws:sns:us-east-1:${data.aws_caller_identity.current.account_id}:*" + } + } + } + ] + } + ) + policy_name = "example" + bypass_policy_lockout_check = false + +} + +data "aws_caller_identity" "current" {} diff --git a/templates/resources/xray_resource_policy.md.tmpl b/templates/resources/xray_resource_policy.md.tmpl new file mode 100644 index 000000000..1d8bb5638 --- /dev/null +++ b/templates/resources/xray_resource_policy.md.tmpl @@ -0,0 +1,26 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +{{ tffile (printf "examples/resources/%s/xray_resource_policy.tf" .Name)}} + + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} \ No newline at end of file From ea521bc6f6725b57048a3693b39e40d2959404ca Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Sat, 20 Jul 2024 16:53:18 -0400 Subject: [PATCH 16/89] docs: added example for awscc_verifiedpermissions_policy_template --- .../verifiedpermissions_policy_template.md | 153 +++++++++++++++++- .../verifiedpermissions_policy_template.tf | 146 +++++++++++++++++ ...erifiedpermissions_policy_template.md.tmpl | 26 +++ 3 files changed, 323 insertions(+), 2 deletions(-) create mode 100644 examples/resources/awscc_verifiedpermissions_policy_template/verifiedpermissions_policy_template.tf create mode 100644 templates/resources/verifiedpermissions_policy_template.md.tmpl diff --git a/docs/resources/verifiedpermissions_policy_template.md b/docs/resources/verifiedpermissions_policy_template.md index 585c5fb17..c5879f685 100644 --- a/docs/resources/verifiedpermissions_policy_template.md +++ b/docs/resources/verifiedpermissions_policy_template.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_verifiedpermissions_policy_template Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,6 +9,156 @@ description: |- Definition of AWS::VerifiedPermissions::PolicyTemplate Resource Type +## Example Usage + +```terraform +resource "awscc_verifiedpermissions_policy_template" "example" { + policy_store_id = awscc_verifiedpermissions_policy_store.example.policy_store_id + description = "example" + statement = "permit (principal in ?principal, action in PhotoApp::Action::\"listPhotos\", resource == ?resource) unless { resource.private };" +} + + +resource "awscc_verifiedpermissions_policy_store" "example" { + description = "Example verified permissions policy store" + validation_settings = { + mode = "STRICT" + } + schema = { + cedar_json = jsonencode({ + "PhotoApp" : { + "commonTypes" : { + "PersonType" : { + "type" : "Record", + "attributes" : { + "age" : { + "type" : "Long" + }, + "name" : { + "type" : "String" + } + } + }, + "ContextType" : { + "type" : "Record", + "attributes" : { + "ip" : { + "type" : "Extension", + "name" : "ipaddr", + "required" : false + }, + "authenticated" : { + "type" : "Boolean", + "required" : true + } + } + } + }, + "entityTypes" : { + "User" : { + "shape" : { + "type" : "Record", + "attributes" : { + "userId" : { + "type" : "String" + }, + "personInformation" : { + "type" : "PersonType" + } + } + }, + "memberOfTypes" : [ + "UserGroup" + ] + }, + "UserGroup" : { + "shape" : { + "type" : "Record", + "attributes" : {} + } + }, + "Photo" : { + "shape" : { + "type" : "Record", + "attributes" : { + "account" : { + "type" : "Entity", + "name" : "Account", + "required" : true + }, + "private" : { + "type" : "Boolean", + "required" : true + } + } + }, + "memberOfTypes" : [ + "Album", + "Account" + ] + }, + "Album" : { + "shape" : { + "type" : "Record", + "attributes" : {} + } + }, + "Account" : { + "shape" : { + "type" : "Record", + "attributes" : {} + } + } + }, + "actions" : { + "viewPhoto" : { + "appliesTo" : { + "principalTypes" : [ + "User", + "UserGroup" + ], + "resourceTypes" : [ + "Photo" + ], + "context" : { + "type" : "ContextType" + } + } + }, + "createPhoto" : { + "appliesTo" : { + "principalTypes" : [ + "User", + "UserGroup" + ], + "resourceTypes" : [ + "Photo" + ], + "context" : { + "type" : "ContextType" + } + } + }, + "listPhotos" : { + "appliesTo" : { + "principalTypes" : [ + "User", + "UserGroup" + ], + "resourceTypes" : [ + "Photo" + ], + "context" : { + "type" : "ContextType" + } + } + } + } + } + }) + } +} +``` @@ -35,4 +184,4 @@ Import is supported using the following syntax: ```shell $ terraform import awscc_verifiedpermissions_policy_template.example -``` +``` \ No newline at end of file diff --git a/examples/resources/awscc_verifiedpermissions_policy_template/verifiedpermissions_policy_template.tf b/examples/resources/awscc_verifiedpermissions_policy_template/verifiedpermissions_policy_template.tf new file mode 100644 index 000000000..f29e8b092 --- /dev/null +++ b/examples/resources/awscc_verifiedpermissions_policy_template/verifiedpermissions_policy_template.tf @@ -0,0 +1,146 @@ +resource "awscc_verifiedpermissions_policy_template" "example" { + policy_store_id = awscc_verifiedpermissions_policy_store.example.policy_store_id + description = "example" + statement = "permit (principal in ?principal, action in PhotoApp::Action::\"listPhotos\", resource == ?resource) unless { resource.private };" +} + + +resource "awscc_verifiedpermissions_policy_store" "example" { + description = "Example verified permissions policy store" + validation_settings = { + mode = "STRICT" + } + schema = { + cedar_json = jsonencode({ + "PhotoApp" : { + "commonTypes" : { + "PersonType" : { + "type" : "Record", + "attributes" : { + "age" : { + "type" : "Long" + }, + "name" : { + "type" : "String" + } + } + }, + "ContextType" : { + "type" : "Record", + "attributes" : { + "ip" : { + "type" : "Extension", + "name" : "ipaddr", + "required" : false + }, + "authenticated" : { + "type" : "Boolean", + "required" : true + } + } + } + }, + "entityTypes" : { + "User" : { + "shape" : { + "type" : "Record", + "attributes" : { + "userId" : { + "type" : "String" + }, + "personInformation" : { + "type" : "PersonType" + } + } + }, + "memberOfTypes" : [ + "UserGroup" + ] + }, + "UserGroup" : { + "shape" : { + "type" : "Record", + "attributes" : {} + } + }, + "Photo" : { + "shape" : { + "type" : "Record", + "attributes" : { + "account" : { + "type" : "Entity", + "name" : "Account", + "required" : true + }, + "private" : { + "type" : "Boolean", + "required" : true + } + } + }, + "memberOfTypes" : [ + "Album", + "Account" + ] + }, + "Album" : { + "shape" : { + "type" : "Record", + "attributes" : {} + } + }, + "Account" : { + "shape" : { + "type" : "Record", + "attributes" : {} + } + } + }, + "actions" : { + "viewPhoto" : { + "appliesTo" : { + "principalTypes" : [ + "User", + "UserGroup" + ], + "resourceTypes" : [ + "Photo" + ], + "context" : { + "type" : "ContextType" + } + } + }, + "createPhoto" : { + "appliesTo" : { + "principalTypes" : [ + "User", + "UserGroup" + ], + "resourceTypes" : [ + "Photo" + ], + "context" : { + "type" : "ContextType" + } + } + }, + "listPhotos" : { + "appliesTo" : { + "principalTypes" : [ + "User", + "UserGroup" + ], + "resourceTypes" : [ + "Photo" + ], + "context" : { + "type" : "ContextType" + } + } + } + } + } + }) + } +} \ No newline at end of file diff --git a/templates/resources/verifiedpermissions_policy_template.md.tmpl b/templates/resources/verifiedpermissions_policy_template.md.tmpl new file mode 100644 index 000000000..818e7d50a --- /dev/null +++ b/templates/resources/verifiedpermissions_policy_template.md.tmpl @@ -0,0 +1,26 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +{{ tffile (printf "examples/resources/%s/verifiedpermissions_policy_template.tf" .Name)}} + + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} \ No newline at end of file From 1390a943d0b6c417335020ab30d2f1e037287019 Mon Sep 17 00:00:00 2001 From: Anthony Wat Date: Sun, 16 Jun 2024 10:14:20 -0400 Subject: [PATCH 17/89] docs: Add example for awscc_securityhub_delegated_admin --- docs/resources/securityhub_delegated_admin.md | 9 +++++-- .../securityhub_delegated_admin.tf | 3 +++ .../securityhub_delegated_admin.md.tmpl | 25 +++++++++++++++++++ 3 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 examples/resources/awscc_securityhub_delegated_admin/securityhub_delegated_admin.tf create mode 100644 templates/resources/securityhub_delegated_admin.md.tmpl diff --git a/docs/resources/securityhub_delegated_admin.md b/docs/resources/securityhub_delegated_admin.md index dd1c09a35..2dad29eb8 100644 --- a/docs/resources/securityhub_delegated_admin.md +++ b/docs/resources/securityhub_delegated_admin.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_securityhub_delegated_admin Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,7 +9,13 @@ description: |- The AWS::SecurityHub::DelegatedAdmin resource represents the AWS Security Hub delegated admin account in your organization. One delegated admin resource is allowed to create for the organization in each region in which you configure the AdminAccountId. +## Example Usage +```terraform +resource "awscc_securityhub_delegated_admin" "example" { + admin_account_id = "222222222222" +} +``` ## Schema @@ -31,4 +36,4 @@ Import is supported using the following syntax: ```shell $ terraform import awscc_securityhub_delegated_admin.example -``` +``` \ No newline at end of file diff --git a/examples/resources/awscc_securityhub_delegated_admin/securityhub_delegated_admin.tf b/examples/resources/awscc_securityhub_delegated_admin/securityhub_delegated_admin.tf new file mode 100644 index 000000000..651fe6378 --- /dev/null +++ b/examples/resources/awscc_securityhub_delegated_admin/securityhub_delegated_admin.tf @@ -0,0 +1,3 @@ +resource "awscc_securityhub_delegated_admin" "example" { + admin_account_id = "222222222222" +} diff --git a/templates/resources/securityhub_delegated_admin.md.tmpl b/templates/resources/securityhub_delegated_admin.md.tmpl new file mode 100644 index 000000000..366ac7549 --- /dev/null +++ b/templates/resources/securityhub_delegated_admin.md.tmpl @@ -0,0 +1,25 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +{{ tffile (printf "examples/resources/%s/securityhub_delegated_admin.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} \ No newline at end of file From 84ca30e1bcdffe85721060cb3414e2efaba0cb7d Mon Sep 17 00:00:00 2001 From: Anthony Wat Date: Sun, 16 Jun 2024 10:30:41 -0400 Subject: [PATCH 18/89] docs: Add examples for awscc_securityhub_finding_aggregator --- .../securityhub_finding_aggregator.md | 39 ++++++++++++++++++- .../all_regions.tf | 3 ++ .../all_regions_except_specified.tf | 9 +++++ .../specified_regions.tf | 9 +++++ .../securityhub_finding_aggregator.md.tmpl | 35 +++++++++++++++++ 5 files changed, 93 insertions(+), 2 deletions(-) create mode 100644 examples/resources/awscc_securityhub_finding_aggregator/all_regions.tf create mode 100644 examples/resources/awscc_securityhub_finding_aggregator/all_regions_except_specified.tf create mode 100644 examples/resources/awscc_securityhub_finding_aggregator/specified_regions.tf create mode 100644 templates/resources/securityhub_finding_aggregator.md.tmpl diff --git a/docs/resources/securityhub_finding_aggregator.md b/docs/resources/securityhub_finding_aggregator.md index af09fcc28..a6c407269 100644 --- a/docs/resources/securityhub_finding_aggregator.md +++ b/docs/resources/securityhub_finding_aggregator.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_securityhub_finding_aggregator Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,7 +9,43 @@ description: |- The AWS::SecurityHub::FindingAggregator resource represents the AWS Security Hub Finding Aggregator in your account. One finding aggregator resource is created for each account in non opt-in region in which you configure region linking mode. +## Example Usage +### Aggregate Findings From All Regions + +```terraform +resource "awscc_securityhub_finding_aggregator" "example" { + region_linking_mode = "ALL_REGIONS" +} +``` + +### Aggregate Findings From All Regions Except for Southeast Asia Pacific Regions + +```terraform +resource "awscc_securityhub_finding_aggregator" "example" { + region_linking_mode = "ALL_REGIONS_EXCEPT_SPECIFIED" + regions = [ + "ap-southeast-1", + "ap-southeast-2", + "ap-southeast-3", + "ap-southeast-4" + ] +} +``` + +### Aggregated Findings From US Regions Only + +```terraform +resource "awscc_securityhub_finding_aggregator" "example" { + region_linking_mode = "SPECIFIED_REGIONS" + regions = [ + "us-east-1", + "us-east-2", + "us-west-1", + "us-west-2" + ] +} +``` ## Schema @@ -35,4 +70,4 @@ Import is supported using the following syntax: ```shell $ terraform import awscc_securityhub_finding_aggregator.example -``` +``` \ No newline at end of file diff --git a/examples/resources/awscc_securityhub_finding_aggregator/all_regions.tf b/examples/resources/awscc_securityhub_finding_aggregator/all_regions.tf new file mode 100644 index 000000000..56d8b1408 --- /dev/null +++ b/examples/resources/awscc_securityhub_finding_aggregator/all_regions.tf @@ -0,0 +1,3 @@ +resource "awscc_securityhub_finding_aggregator" "example" { + region_linking_mode = "ALL_REGIONS" +} diff --git a/examples/resources/awscc_securityhub_finding_aggregator/all_regions_except_specified.tf b/examples/resources/awscc_securityhub_finding_aggregator/all_regions_except_specified.tf new file mode 100644 index 000000000..e5ce5da64 --- /dev/null +++ b/examples/resources/awscc_securityhub_finding_aggregator/all_regions_except_specified.tf @@ -0,0 +1,9 @@ +resource "awscc_securityhub_finding_aggregator" "example" { + region_linking_mode = "ALL_REGIONS_EXCEPT_SPECIFIED" + regions = [ + "ap-southeast-1", + "ap-southeast-2", + "ap-southeast-3", + "ap-southeast-4" + ] +} diff --git a/examples/resources/awscc_securityhub_finding_aggregator/specified_regions.tf b/examples/resources/awscc_securityhub_finding_aggregator/specified_regions.tf new file mode 100644 index 000000000..0babc74f8 --- /dev/null +++ b/examples/resources/awscc_securityhub_finding_aggregator/specified_regions.tf @@ -0,0 +1,9 @@ +resource "awscc_securityhub_finding_aggregator" "example" { + region_linking_mode = "SPECIFIED_REGIONS" + regions = [ + "us-east-1", + "us-east-2", + "us-west-1", + "us-west-2" + ] +} diff --git a/templates/resources/securityhub_finding_aggregator.md.tmpl b/templates/resources/securityhub_finding_aggregator.md.tmpl new file mode 100644 index 000000000..9c0f3b647 --- /dev/null +++ b/templates/resources/securityhub_finding_aggregator.md.tmpl @@ -0,0 +1,35 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +### Aggregate Findings From All Regions + +{{ tffile (printf "examples/resources/%s/all_regions.tf" .Name)}} + +### Aggregate Findings From All Regions Except for Southeast Asia Pacific Regions + +{{ tffile (printf "examples/resources/%s/all_regions_except_specified.tf" .Name)}} + +### Aggregated Findings From US Regions Only + +{{ tffile (printf "examples/resources/%s/specified_regions.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} \ No newline at end of file From 4939555cdcbc2cd1488af6a07bdba037e78c35f6 Mon Sep 17 00:00:00 2001 From: Anthony Wat Date: Sun, 16 Jun 2024 23:06:01 -0400 Subject: [PATCH 19/89] docs: Add example for awscc_security_hub_product_subscription --- .../securityhub_product_subscription.md | 10 ++++++-- .../securityhub_product_subscription.tf | 4 +++ .../securityhub_product_subscription.md.tmpl | 25 +++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 examples/resources/awscc_securityhub_product_subscription/securityhub_product_subscription.tf create mode 100644 templates/resources/securityhub_product_subscription.md.tmpl diff --git a/docs/resources/securityhub_product_subscription.md b/docs/resources/securityhub_product_subscription.md index 3064fe7c9..b1f170f8f 100644 --- a/docs/resources/securityhub_product_subscription.md +++ b/docs/resources/securityhub_product_subscription.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_securityhub_product_subscription Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,7 +9,14 @@ description: |- The AWS::SecurityHub::ProductSubscription resource represents a subscription to a service that is allowed to generate findings for your Security Hub account. One product subscription resource is created for each product enabled. +## Example Usage +```terraform +resource "awscc_securityhub_product_subscription" "example" { + # Alert Logic – SIEMless Threat Management + product_arn = "arn:aws:securityhub:us-east-1:733251395267:product/alertlogic/althreatmanagement" +} +``` ## Schema @@ -30,4 +36,4 @@ Import is supported using the following syntax: ```shell $ terraform import awscc_securityhub_product_subscription.example -``` +``` \ No newline at end of file diff --git a/examples/resources/awscc_securityhub_product_subscription/securityhub_product_subscription.tf b/examples/resources/awscc_securityhub_product_subscription/securityhub_product_subscription.tf new file mode 100644 index 000000000..e3fc23218 --- /dev/null +++ b/examples/resources/awscc_securityhub_product_subscription/securityhub_product_subscription.tf @@ -0,0 +1,4 @@ +resource "awscc_securityhub_product_subscription" "example" { + # Alert Logic – SIEMless Threat Management + product_arn = "arn:aws:securityhub:us-east-1:733251395267:product/alertlogic/althreatmanagement" +} diff --git a/templates/resources/securityhub_product_subscription.md.tmpl b/templates/resources/securityhub_product_subscription.md.tmpl new file mode 100644 index 000000000..56c8e252e --- /dev/null +++ b/templates/resources/securityhub_product_subscription.md.tmpl @@ -0,0 +1,25 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +{{ tffile (printf "examples/resources/%s/securityhub_product_subscription.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} \ No newline at end of file From 9a97ffb862bb4f9a77a648b5261539309fa6d2ec Mon Sep 17 00:00:00 2001 From: Anthony Wat Date: Sun, 16 Jun 2024 22:52:19 -0400 Subject: [PATCH 20/89] docs: Add examples for awscc_securityhub_hub --- docs/resources/securityhub_hub.md | 19 ++++++++++-- .../resources/awscc_securityhub_hub/basic.tf | 1 + .../disable_default_standards.tf | 5 +++ templates/resources/securityhub_hub.md.tmpl | 31 +++++++++++++++++++ 4 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 examples/resources/awscc_securityhub_hub/basic.tf create mode 100644 examples/resources/awscc_securityhub_hub/disable_default_standards.tf create mode 100644 templates/resources/securityhub_hub.md.tmpl diff --git a/docs/resources/securityhub_hub.md b/docs/resources/securityhub_hub.md index 23f5dff30..81e467f9a 100644 --- a/docs/resources/securityhub_hub.md +++ b/docs/resources/securityhub_hub.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_securityhub_hub Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,7 +9,23 @@ description: |- The AWS::SecurityHub::Hub resource represents the implementation of the AWS Security Hub service in your account. One hub resource is created for each Region in which you enable Security Hub. +## Example Usage +### Basic Usage + +```terraform +resource "awscc_securityhub_hub" "example" {} +``` + +### Disable Default Security Standards + +```terraform +resource "awscc_securityhub_hub" "example" { + auto_enable_controls = true + control_finding_generator = "SECURITY_CONTROL" + enable_default_standards = false +} +``` ## Schema @@ -34,4 +49,4 @@ Import is supported using the following syntax: ```shell $ terraform import awscc_securityhub_hub.example -``` +``` \ No newline at end of file diff --git a/examples/resources/awscc_securityhub_hub/basic.tf b/examples/resources/awscc_securityhub_hub/basic.tf new file mode 100644 index 000000000..54bfeeb75 --- /dev/null +++ b/examples/resources/awscc_securityhub_hub/basic.tf @@ -0,0 +1 @@ +resource "awscc_securityhub_hub" "example" {} diff --git a/examples/resources/awscc_securityhub_hub/disable_default_standards.tf b/examples/resources/awscc_securityhub_hub/disable_default_standards.tf new file mode 100644 index 000000000..b14c0d7db --- /dev/null +++ b/examples/resources/awscc_securityhub_hub/disable_default_standards.tf @@ -0,0 +1,5 @@ +resource "awscc_securityhub_hub" "example" { + auto_enable_controls = true + control_finding_generator = "SECURITY_CONTROL" + enable_default_standards = false +} diff --git a/templates/resources/securityhub_hub.md.tmpl b/templates/resources/securityhub_hub.md.tmpl new file mode 100644 index 000000000..1fa62f0ef --- /dev/null +++ b/templates/resources/securityhub_hub.md.tmpl @@ -0,0 +1,31 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +### Basic Usage + +{{ tffile (printf "examples/resources/%s/basic.tf" .Name)}} + +### Disable Default Security Standards + +{{ tffile (printf "examples/resources/%s/disable_default_standards.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} \ No newline at end of file From a85729833b0412151d3e077d486a9be6dbe86104 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 05:07:34 +0000 Subject: [PATCH 21/89] build(deps): bump github.com/aws/aws-sdk-go-v2/config Bumps the aws-sdk-go group with 1 update: [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2). Updates `github.com/aws/aws-sdk-go-v2/config` from 1.27.26 to 1.27.27 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.27.26...config/v1.27.27) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/config dependency-type: direct:production update-type: version-update:semver-patch dependency-group: aws-sdk-go ... Signed-off-by: dependabot[bot] --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index ae2e75f04..c7682e169 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.22.5 require ( github.com/aws/aws-sdk-go-v2 v1.30.3 - github.com/aws/aws-sdk-go-v2/config v1.27.26 + github.com/aws/aws-sdk-go-v2/config v1.27.27 github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11 github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.20.3 github.com/aws/aws-sdk-go-v2/service/cloudformation v1.53.3 @@ -35,7 +35,7 @@ require ( github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect github.com/armon/go-radix v1.0.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.26 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.27 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.15 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect @@ -49,7 +49,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.10 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.55.2 // indirect github.com/aws/aws-sdk-go-v2/service/sqs v1.32.7 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.22.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.22.4 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.30.3 // indirect github.com/aws/smithy-go v1.20.3 // indirect diff --git a/go.sum b/go.sum index 95f4ddd2a..a4c503e4a 100644 --- a/go.sum +++ b/go.sum @@ -21,10 +21,10 @@ github.com/aws/aws-sdk-go-v2 v1.30.3 h1:jUeBtG0Ih+ZIFH0F4UkmL9w3cSpaMv9tYYDbzILP github.com/aws/aws-sdk-go-v2 v1.30.3/go.mod h1:nIQjQVp5sfpQcTc9mPSr1B0PaWK5ByX9MOoDadSN4lc= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= -github.com/aws/aws-sdk-go-v2/config v1.27.26 h1:T1kAefbKuNum/AbShMsZEro6eRkeOT8YILfE9wyjAYQ= -github.com/aws/aws-sdk-go-v2/config v1.27.26/go.mod h1:ivWHkAWFrw/nxty5Fku7soTIVdqZaZ7dw+tc5iGW3GA= -github.com/aws/aws-sdk-go-v2/credentials v1.17.26 h1:tsm8g/nJxi8+/7XyJJcP2dLrnK/5rkFp6+i2nhmz5fk= -github.com/aws/aws-sdk-go-v2/credentials v1.17.26/go.mod h1:3vAM49zkIa3q8WT6o9Ve5Z0vdByDMwmdScO0zvThTgI= +github.com/aws/aws-sdk-go-v2/config v1.27.27 h1:HdqgGt1OAP0HkEDDShEl0oSYa9ZZBSOmKpdpsDMdO90= +github.com/aws/aws-sdk-go-v2/config v1.27.27/go.mod h1:MVYamCg76dFNINkZFu4n4RjDixhVr51HLj4ErWzrVwg= +github.com/aws/aws-sdk-go-v2/credentials v1.17.27 h1:2raNba6gr2IfA0eqqiP2XiQ0UVOpGPgDSi0I9iAP+UI= +github.com/aws/aws-sdk-go-v2/credentials v1.17.27/go.mod h1:gniiwbGahQByxan6YjQUMcW4Aov6bLC3m+evgcoN4r4= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11 h1:KreluoV8FZDEtI6Co2xuNk/UqI9iwMrOx/87PBNIKqw= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11/go.mod h1:SeSUYBLsMYFoRvHE0Tjvn7kbxaUhl75CJi1sbfhMxkU= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15 h1:SoNJ4RlFEQEbtDcCEt+QG56MY4fm4W8rYirAmq+/DdU= @@ -57,8 +57,8 @@ github.com/aws/aws-sdk-go-v2/service/s3 v1.55.2 h1:9UkFXpS7uU7ipUlj2sSkLtIo3Sa+L github.com/aws/aws-sdk-go-v2/service/s3 v1.55.2/go.mod h1:Cijxa/K9vFQ9RPd16rq3cE+0Sg5hvmpEkTo+LThg43E= github.com/aws/aws-sdk-go-v2/service/sqs v1.32.7 h1:FYa9JyIqDxFoTqugiCRXRVuns4g5MpOyNUaCK3LNkNE= github.com/aws/aws-sdk-go-v2/service/sqs v1.32.7/go.mod h1:PL9c0QSwF47nprbdskJoXwPbSncWfriKm+oj/TQQFiY= -github.com/aws/aws-sdk-go-v2/service/sso v1.22.3 h1:Fv1vD2L65Jnp5QRsdiM64JvUM4Xe+E0JyVsRQKv6IeA= -github.com/aws/aws-sdk-go-v2/service/sso v1.22.3/go.mod h1:ooyCOXjvJEsUw7x+ZDHeISPMhtwI3ZCB7ggFMcFfWLU= +github.com/aws/aws-sdk-go-v2/service/sso v1.22.4 h1:BXx0ZIxvrJdSgSvKTZ+yRBeSqqgPM89VPlulEcl37tM= +github.com/aws/aws-sdk-go-v2/service/sso v1.22.4/go.mod h1:ooyCOXjvJEsUw7x+ZDHeISPMhtwI3ZCB7ggFMcFfWLU= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4 h1:yiwVzJW2ZxZTurVbYWA7QOrAaCYQR72t0wrSBfoesUE= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4/go.mod h1:0oxfLkpz3rQ/CHlx5hB7H69YUpFiI1tql6Q6Ne+1bCw= github.com/aws/aws-sdk-go-v2/service/sts v1.30.3 h1:ZsDKRLXGWHk8WdtyYMoGNO7bTudrvuKpDKgMVRlepGE= From 2d8eef52f01be7a0be2f4f48df6211a589f00210 Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Mon, 22 Jul 2024 19:03:10 -0400 Subject: [PATCH 22/89] docs: added example for awscc_cleanrooms_collaboration --- docs/resources/cleanrooms_collaboration.md | 38 +++++++++++++++++-- .../cleanrooms_collaboration.tf | 30 +++++++++++++++ .../cleanrooms_collaboration.md.tmpl | 25 ++++++++++++ 3 files changed, 90 insertions(+), 3 deletions(-) create mode 100644 examples/resources/awscc_cleanrooms_collaboration/cleanrooms_collaboration.tf create mode 100644 templates/resources/cleanrooms_collaboration.md.tmpl diff --git a/docs/resources/cleanrooms_collaboration.md b/docs/resources/cleanrooms_collaboration.md index 33e21af7c..f2ecf9d1f 100644 --- a/docs/resources/cleanrooms_collaboration.md +++ b/docs/resources/cleanrooms_collaboration.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_cleanrooms_collaboration Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,7 +9,40 @@ description: |- Represents a collaboration between AWS accounts that allows for secure data collaboration - +## Example Usage + +```terraform +resource "awscc_cleanrooms_collaboration" "example" { + creator_display_name = "Member1" + creator_member_abilities = ["CAN_QUERY"] + description = "example" + creator_payment_configuration = { + query_compute = { + is_responsible = true + } + } + members = [{ + account_id = "123456789012" + member_abilities = ["CAN_RECEIVE_RESULTS"] + display_name = "Member2" + payment_configuration = { + query_compute = { + is_responsible = false + } + } + + } + ] + name = "example" + query_log_status = "ENABLED" + + + tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} +``` ## Schema @@ -107,4 +139,4 @@ Import is supported using the following syntax: ```shell $ terraform import awscc_cleanrooms_collaboration.example -``` +``` \ No newline at end of file diff --git a/examples/resources/awscc_cleanrooms_collaboration/cleanrooms_collaboration.tf b/examples/resources/awscc_cleanrooms_collaboration/cleanrooms_collaboration.tf new file mode 100644 index 000000000..d4bac4ba4 --- /dev/null +++ b/examples/resources/awscc_cleanrooms_collaboration/cleanrooms_collaboration.tf @@ -0,0 +1,30 @@ +resource "awscc_cleanrooms_collaboration" "example" { + creator_display_name = "Member1" + creator_member_abilities = ["CAN_QUERY"] + description = "example" + creator_payment_configuration = { + query_compute = { + is_responsible = true + } + } + members = [{ + account_id = "123456789012" + member_abilities = ["CAN_RECEIVE_RESULTS"] + display_name = "Member2" + payment_configuration = { + query_compute = { + is_responsible = false + } + } + + } + ] + name = "example" + query_log_status = "ENABLED" + + + tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} diff --git a/templates/resources/cleanrooms_collaboration.md.tmpl b/templates/resources/cleanrooms_collaboration.md.tmpl new file mode 100644 index 000000000..0f884bae0 --- /dev/null +++ b/templates/resources/cleanrooms_collaboration.md.tmpl @@ -0,0 +1,25 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +{{ tffile (printf "examples/resources/%s/cleanrooms_collaboration.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} \ No newline at end of file From 7f8d280ab4fd9c5340db7539a124b8a0ef6942bb Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 25 Jul 2024 14:38:52 -0400 Subject: [PATCH 23/89] 07/24/2024 CloudFormation schemas in us-east-1; Refresh existing schemas. --- ..._ApplicationAutoScaling_ScalingPolicy.json | 482 +++++++------- .../schemas/AWS_Bedrock_DataSource.json | 2 +- .../schemas/AWS_Bedrock_KnowledgeBase.json | 122 +++- .../AWS_CleanRoomsML_TrainingDataset.json | 6 +- .../AWS_ConnectCampaigns_Campaign.json | 6 +- .../schemas/AWS_DMS_ReplicationConfig.json | 17 +- .../schemas/AWS_EC2_EIPAssociation.json | 14 +- .../schemas/AWS_EC2_Instance.json | 3 +- .../schemas/AWS_EC2_KeyPair.json | 6 +- .../schemas/AWS_EC2_LaunchTemplate.json | 28 +- .../AWS_EC2_NetworkInterfaceAttachment.json | 20 +- .../schemas/AWS_EC2_SubnetCidrBlock.json | 98 +-- .../schemas/AWS_EC2_VPCCidrBlock.json | 172 ++--- .../schemas/AWS_ECR_Repository.json | 2 +- .../AWS_ECR_RepositoryCreationTemplate.json | 12 +- .../schemas/AWS_EKS_Cluster.json | 592 ++++++++++-------- .../schemas/AWS_EKS_Nodegroup.json | 6 +- ...WS_EntityResolution_IdMappingWorkflow.json | 2 +- .../schemas/AWS_FMS_Policy.json | 2 +- ...balAccelerator_CrossAccountAttachment.json | 6 +- .../schemas/AWS_Lightsail_Alarm.json | 2 +- .../schemas/AWS_Lightsail_Certificate.json | 2 +- .../schemas/AWS_MediaConnect_FlowOutput.json | 8 + .../schemas/AWS_MediaPackageV2_Channel.json | 13 +- .../AWS_MediaPackageV2_OriginEndpoint.json | 26 + .../schemas/AWS_RDS_DBCluster.json | 5 +- .../schemas/AWS_RDS_DBInstance.json | 9 +- .../schemas/AWS_S3Outposts_Bucket.json | 7 +- .../schemas/AWS_Shield_ProtectionGroup.json | 7 +- .../schemas/AWS_WorkSpacesWeb_Portal.json | 9 +- .../AWS_WorkSpacesWeb_UserSettings.json | 3 + .../schemas/AWS_XRay_Group.json | 7 + .../schemas/AWS_XRay_SamplingRule.json | 7 + 33 files changed, 1007 insertions(+), 696 deletions(-) diff --git a/internal/service/cloudformation/schemas/AWS_ApplicationAutoScaling_ScalingPolicy.json b/internal/service/cloudformation/schemas/AWS_ApplicationAutoScaling_ScalingPolicy.json index b5aeb0cf1..020071537 100644 --- a/internal/service/cloudformation/schemas/AWS_ApplicationAutoScaling_ScalingPolicy.json +++ b/internal/service/cloudformation/schemas/AWS_ApplicationAutoScaling_ScalingPolicy.json @@ -1,233 +1,253 @@ { + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, "typeName": "AWS::ApplicationAutoScaling::ScalingPolicy", - "description": "Resource Type definition for AWS::ApplicationAutoScaling::ScalingPolicy", + "readOnlyProperties": [ + "/properties/Arn" + ], + "description": "The ``AWS::ApplicationAutoScaling::ScalingPolicy`` resource defines a scaling policy that Application Auto Scaling uses to adjust the capacity of a scalable target. \n For more information, see [Target tracking scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) and [Step scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html) in the *Application Auto Scaling User Guide*.", + "createOnlyProperties": [ + "/properties/PolicyName", + "/properties/ServiceNamespace", + "/properties/ResourceId", + "/properties/ScalableDimension", + "/properties/ScalingTargetId" + ], + "primaryIdentifier": [ + "/properties/Arn", + "/properties/ScalableDimension" + ], + "required": [ + "PolicyName", + "PolicyType" + ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "handlers": { + "read": { + "permissions": [ + "application-autoscaling:DescribeScalingPolicies" + ] + }, + "create": { + "permissions": [ + "application-autoscaling:DescribeScalingPolicies", + "application-autoscaling:PutScalingPolicy" + ] + }, + "update": { + "permissions": [ + "application-autoscaling:DescribeScalingPolicies", + "application-autoscaling:PutScalingPolicy" + ] + }, + "list": { + "permissions": [ + "application-autoscaling:DescribeScalingPolicies" + ], + "handlerSchema": { + "properties": { + "ServiceNamespace": { + "description": "The name of the service", + "type": "string" + } + }, + "required": [ + "ServiceNamespace" + ] + } + }, + "delete": { + "permissions": [ + "application-autoscaling:DescribeScalingPolicies", + "application-autoscaling:DeleteScalingPolicy" + ] + } + }, + "writeOnlyProperties": [ + "/properties/TargetTrackingScalingPolicyConfiguration/PredefinedMetricSpecification/ResourceLabel", + "/properties/ScalingTargetId" + ], + "additionalProperties": false, "definitions": { - "StepScalingPolicyConfiguration": { - "description": "A step scaling policy.", - "type": "object", + "TargetTrackingMetricStat": { + "description": "This structure defines the CloudWatch metric to return, along with the statistic and unit.\n ``TargetTrackingMetricStat`` is a property of the [AWS::ApplicationAutoScaling::ScalingPolicy TargetTrackingMetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingmetricdataquery.html) property type.\n For more information about the CloudWatch terminology below, see [Amazon CloudWatch concepts](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html) in the *Amazon CloudWatch User Guide*.", "additionalProperties": false, + "type": "object", "properties": { - "AdjustmentType": { - "description": "Specifies how the ScalingAdjustment value in a StepAdjustment is interpreted.", + "Stat": { + "description": "The statistic to return. It can include any CloudWatch statistic or extended statistic. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *Amazon CloudWatch User Guide*.\n The most commonly used metric for scaling is ``Average``.", "type": "string" }, - "Cooldown": { - "description": "The amount of time, in seconds, to wait for a previous scaling activity to take effect.", - "type": "integer" + "Metric": { + "description": "The CloudWatch metric to return, including the metric name, namespace, and dimensions. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that is returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html).", + "$ref": "#/definitions/TargetTrackingMetric" }, - "MetricAggregationType": { - "description": "The aggregation type for the CloudWatch metrics. Valid values are Minimum, Maximum, and Average. If the aggregation type is null, the value is treated as Average", + "Unit": { + "description": "The unit to use for the returned data points. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*.", "type": "string" - }, - "MinAdjustmentMagnitude": { - "description": "The minimum value to scale by when the adjustment type is PercentChangeInCapacity.", - "type": "integer" - }, - "StepAdjustments": { - "description": "A set of adjustments that enable you to scale based on the size of the alarm breach.", - "type": "array", - "uniqueItems": true, - "insertionOrder": false, - "items": { - "$ref": "#/definitions/StepAdjustment" - } } } }, - "TargetTrackingScalingPolicyConfiguration": { - "description": "A target tracking scaling policy.", - "type": "object", + "TargetTrackingMetricDimension": { + "description": "``TargetTrackingMetricDimension`` specifies a name/value pair that is part of the identity of a CloudWatch metric for the ``Dimensions`` property of the [AWS::ApplicationAutoScaling::ScalingPolicy TargetTrackingMetric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingmetric.html) property type. Duplicate dimensions are not allowed.", "additionalProperties": false, + "type": "object", "properties": { - "CustomizedMetricSpecification": { - "description": "A customized metric. You can specify either a predefined metric or a customized metric.", - "$ref": "#/definitions/CustomizedMetricSpecification" - }, - "DisableScaleIn": { - "description": "Indicates whether scale in by the target tracking scaling policy is disabled. If the value is true, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target. The default value is false.", - "type": "boolean" - }, - "PredefinedMetricSpecification": { - "description": "A predefined metric. You can specify either a predefined metric or a customized metric.", - "$ref": "#/definitions/PredefinedMetricSpecification" - }, - "ScaleInCooldown": { - "description": "The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start.", - "type": "integer" - }, - "ScaleOutCooldown": { - "description": "The amount of time, in seconds, to wait for a previous scale-out activity to take effect.", - "type": "integer" + "Value": { + "description": "The value of the dimension.", + "type": "string" }, - "TargetValue": { - "description": "The target value for the metric. Although this property accepts numbers of type Double, it won't accept values that are either too small or too large. Values must be in the range of -2^360 to 2^360. The value must be a valid number based on the choice of metric. For example, if the metric is CPU utilization, then the target value is a percent value that represents how much of the CPU can be used before scaling out.", - "type": "number" + "Name": { + "description": "The name of the dimension.", + "type": "string" } - }, - "required": [ - "TargetValue" - ] + } }, - "PredefinedMetricSpecification": { - "description": "Represents a predefined metric for a target tracking scaling policy to use with Application Auto Scaling.", - "type": "object", + "TargetTrackingMetricDataQuery": { + "description": "The metric data to return. Also defines whether this call is returning data for one metric only, or whether it is performing a math expression on the values of returned metric statistics to create a new time series. A time series is a series of data points, each of which is associated with a timestamp.\n You can call for a single metric or perform math expressions on multiple metrics. Any expressions used in a metric specification must eventually return a single time series.\n For more information and examples, see [Create a target tracking scaling policy for Application Auto Scaling using metric math](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking-metric-math.html) in the *Application Auto Scaling User Guide*.\n ``TargetTrackingMetricDataQuery`` is a property of the [AWS::ApplicationAutoScaling::ScalingPolicy CustomizedMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html) property type.", "additionalProperties": false, + "type": "object", "properties": { - "PredefinedMetricType": { - "description": "The metric type. The ALBRequestCountPerTarget metric type applies only to Spot Fleets and ECS services.", + "ReturnData": { + "description": "Indicates whether to return the timestamps and raw data values of this metric. \n If you use any math expressions, specify ``true`` for this value for only the final math expression that the metric specification is based on. You must specify ``false`` for ``ReturnData`` for all the other metrics and expressions used in the metric specification.\n If you are only retrieving metrics and not performing any math expressions, do not specify anything for ``ReturnData``. This sets it to its default (``true``).", + "type": "boolean" + }, + "Expression": { + "description": "The math expression to perform on the returned data, if this object is performing a math expression. This expression can use the ``Id`` of the other metrics to refer to those metrics, and can also use the ``Id`` of other expressions to use the result of those expressions. \n Conditional: Within each ``TargetTrackingMetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both.", "type": "string" }, - "ResourceLabel": { - "description": "Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ALBRequestCountPerTarget and there is a target group attached to the Spot Fleet or ECS service.", + "Label": { + "description": "A human-readable label for this metric or expression. This is especially useful if this is a math expression, so that you know what the value represents.", + "type": "string" + }, + "MetricStat": { + "description": "Information about the metric data to return.\n Conditional: Within each ``MetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both.", + "$ref": "#/definitions/TargetTrackingMetricStat" + }, + "Id": { + "description": "A short name that identifies the object's results in the response. This name must be unique among all ``MetricDataQuery`` objects specified for a single scaling policy. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscores. The first character must be a lowercase letter.", "type": "string" } - }, - "required": [ - "PredefinedMetricType" - ] + } }, "CustomizedMetricSpecification": { - "description": "Represents a CloudWatch metric of your choosing for a target tracking scaling policy to use with Application Auto Scaling.", - "type": "object", + "description": "Contains customized metric specification information for a target tracking scaling policy for Application Auto Scaling. \n For information about the available metrics for a service, see [services that publish CloudWatch metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) in the *Amazon CloudWatch User Guide*.\n To create your customized metric specification:\n + Add values for each required parameter from CloudWatch. You can use an existing metric, or a new metric that you create. To use your own metric, you must first publish the metric to CloudWatch. For more information, see [Publish custom metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html) in the *Amazon CloudWatch User Guide*.\n + Choose a metric that changes proportionally with capacity. The value of the metric should increase or decrease in inverse proportion to the number of capacity units. That is, the value of the metric should decrease when capacity increases, and increase when capacity decreases. \n \n For an example of how creating new metrics can be useful, see [Scaling based on Amazon SQS](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-using-sqs-queue.html) in the *Amazon EC2 Auto Scaling User Guide*. This topic mentions Auto Scaling groups, but the same scenario for Amazon SQS can apply to the target tracking scaling policies that you create for a Spot Fleet by using Application Auto Scaling.\n For more information about the CloudWatch terminology below, see [Amazon CloudWatch concepts](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html). \n ``CustomizedMetricSpecification`` is a property of the [AWS::ApplicationAutoScaling::ScalingPolicy TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html) property type.", "additionalProperties": false, + "type": "object", "properties": { - "Dimensions": { - "description": "The dimensions of the metric.", - "type": "array", + "MetricName": { + "description": "The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that's returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html).", + "type": "string" + }, + "Metrics": { "uniqueItems": false, + "description": "The metrics to include in the target tracking scaling policy, as a metric data query. This can include both raw metric and metric math expressions.", "insertionOrder": false, + "type": "array", "items": { - "$ref": "#/definitions/MetricDimension" + "$ref": "#/definitions/TargetTrackingMetricDataQuery" } }, - "MetricName": { - "description": "The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the Metric object that is returned by a call to ListMetrics.", - "type": "string" - }, - "Namespace": { - "description": "The namespace of the metric.", - "type": "string" - }, "Statistic": { "description": "The statistic of the metric.", "type": "string" }, - "Unit": { - "description": "The unit of the metric. For a complete list of the units that CloudWatch supports, see the MetricDatum data type in the Amazon CloudWatch API Reference.", - "type": "string" - }, - "Metrics": { - "description": "The metrics to include in the target tracking scaling policy, as a metric data query. This can include both raw metric and metric math expressions.", - "type": "array", + "Dimensions": { "uniqueItems": false, + "description": "The dimensions of the metric. \n Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy.", "insertionOrder": false, + "type": "array", "items": { - "$ref": "#/definitions/TargetTrackingMetricDataQuery" + "$ref": "#/definitions/MetricDimension" } - } - } - }, - "TargetTrackingMetricDataQuery": { - "description": "The metric data to return. Also defines whether this call is returning data for one metric only, or whether it is performing a math expression on the values of returned metric statistics to create a new time series. A time series is a series of data points, each of which is associated with a timestamp.", - "type": "object", - "additionalProperties": false, - "properties": { - "Expression": { - "description": "The math expression to perform on the returned data, if this object is performing a math expression.", - "type": "string" }, - "Id": { - "description": "A short name that identifies the object's results in the response.", + "Unit": { + "description": "The unit of the metric. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*.", "type": "string" }, - "Label": { - "description": "A human-readable label for this metric or expression. This is especially useful if this is a math expression, so that you know what the value represents.", + "Namespace": { + "description": "The namespace of the metric.", "type": "string" - }, - "ReturnData": { - "description": "Indicates whether to return the timestamps and raw data values of this metric.", - "type": "boolean" - }, - "MetricStat": { - "description": "Information about the metric data to return.", - "$ref": "#/definitions/TargetTrackingMetricStat" } } }, - "TargetTrackingMetricStat": { - "description": "This structure defines the CloudWatch metric to return, along with the statistic, period, and unit.", - "type": "object", + "TargetTrackingMetric": { + "description": "Represents a specific metric for a target tracking scaling policy for Application Auto Scaling.\n Metric is a property of the [AWS::ApplicationAutoScaling::ScalingPolicy TargetTrackingMetricStat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingmetricstat.html) property type.", "additionalProperties": false, + "type": "object", "properties": { - "Metric": { - "description": "The CloudWatch metric to return, including the metric name, namespace, and dimensions. ", - "$ref": "#/definitions/TargetTrackingMetric" - }, - "Stat": { - "description": "The statistic to return. It can include any CloudWatch statistic or extended statistic.", + "MetricName": { + "description": "The name of the metric.", "type": "string" }, - "Unit": { - "description": "The unit to use for the returned data points.", - "type": "string" - } - } - }, - "TargetTrackingMetric": { - "description": "Represents a specific metric.", - "type": "object", - "additionalProperties": false, - "properties": { "Dimensions": { - "description": "The dimensions for the metric.", - "type": "array", "uniqueItems": false, + "description": "The dimensions for the metric. For the list of available dimensions, see the AWS documentation available from the table in [services that publish CloudWatch metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) in the *Amazon CloudWatch User Guide*. \n Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy.", "insertionOrder": false, + "type": "array", "items": { "$ref": "#/definitions/TargetTrackingMetricDimension" } }, - "MetricName": { - "description": "The name of the metric.", - "type": "string" - }, "Namespace": { - "description": "The namespace of the metric.", + "description": "The namespace of the metric. For more information, see the table in [services that publish CloudWatch metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) in the *Amazon CloudWatch User Guide*.", "type": "string" } } }, - "TargetTrackingMetricDimension": { - "description": "Describes the dimension of a metric.", - "type": "object", + "TargetTrackingScalingPolicyConfiguration": { + "description": "``TargetTrackingScalingPolicyConfiguration`` is a property of the [AWS::ApplicationAutoScaling::ScalingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html) resource that specifies a target tracking scaling policy configuration for Application Auto Scaling. Use a target tracking scaling policy to adjust the capacity of the specified scalable target in response to actual workloads, so that resource utilization remains at or near the target utilization value. \n For more information, see [Target tracking scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) in the *Application Auto Scaling User Guide*.", "additionalProperties": false, + "type": "object", "properties": { - "Name": { - "description": "The name of the dimension.", - "type": "string" + "ScaleOutCooldown": { + "description": "The amount of time, in seconds, to wait for a previous scale-out activity to take effect. For more information and for default values, see [Define cooldown periods](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) in the *Application Auto Scaling User Guide*.", + "type": "integer" }, - "Value": { - "description": "The value of the dimension.", - "type": "string" + "TargetValue": { + "description": "The target value for the metric. Although this property accepts numbers of type Double, it won't accept values that are either too small or too large. Values must be in the range of -2^360 to 2^360. The value must be a valid number based on the choice of metric. For example, if the metric is CPU utilization, then the target value is a percent value that represents how much of the CPU can be used before scaling out.", + "type": "number" + }, + "CustomizedMetricSpecification": { + "description": "A customized metric. You can specify either a predefined metric or a customized metric.", + "$ref": "#/definitions/CustomizedMetricSpecification" + }, + "DisableScaleIn": { + "description": "Indicates whether scale in by the target tracking scaling policy is disabled. If the value is ``true``, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target. The default value is ``false``.", + "type": "boolean" + }, + "ScaleInCooldown": { + "description": "The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start. For more information and for default values, see [Define cooldown periods](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) in the *Application Auto Scaling User Guide*.", + "type": "integer" + }, + "PredefinedMetricSpecification": { + "description": "A predefined metric. You can specify either a predefined metric or a customized metric.", + "$ref": "#/definitions/PredefinedMetricSpecification" } - } + }, + "required": [ + "TargetValue" + ] }, "StepAdjustment": { - "description": "Represents a step adjustment for a StepScalingPolicyConfiguration. Describes an adjustment based on the difference between the value of the aggregated CloudWatch metric and the breach threshold that you've defined for the alarm.", - "type": "object", + "description": "``StepAdjustment`` specifies a step adjustment for the ``StepAdjustments`` property of the [AWS::ApplicationAutoScaling::ScalingPolicy StepScalingPolicyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html) property type. \n For the following examples, suppose that you have an alarm with a breach threshold of 50: \n + To trigger a step adjustment when the metric is greater than or equal to 50 and less than 60, specify a lower bound of 0 and an upper bound of 10. \n + To trigger a step adjustment when the metric is greater than 40 and less than or equal to 50, specify a lower bound of -10 and an upper bound of 0. \n \n For more information, see [Step adjustments](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html#as-scaling-steps) in the *Application Auto Scaling User Guide*.\n You can find a sample template snippet in the [Examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#aws-resource-applicationautoscaling-scalingpolicy--examples) section of the ``AWS::ApplicationAutoScaling::ScalingPolicy`` documentation.", "additionalProperties": false, + "type": "object", "properties": { - "MetricIntervalLowerBound": { - "description": "The lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it is exclusive (the metric must be greater than the threshold plus the lower bound). A null value indicates negative infinity.", + "MetricIntervalUpperBound": { + "description": "The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity.\n You must specify at least one upper or lower bound.", "type": "number" }, - "MetricIntervalUpperBound": { - "description": "The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity.", + "MetricIntervalLowerBound": { + "description": "The lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it is exclusive (the metric must be greater than the threshold plus the lower bound). A null value indicates negative infinity.\n You must specify at least one upper or lower bound.", "type": "number" }, "ScalingAdjustment": { - "description": "The amount by which to scale, based on the specified adjustment type. A positive value adds to the current capacity while a negative number removes from the current capacity. For exact capacity, you must specify a positive value.", + "description": "The amount by which to scale. The adjustment is based on the value that you specified in the ``AdjustmentType`` property (either an absolute number or a percentage). A positive value adds to the current capacity and a negative number subtracts from the current capacity.", "type": "integer" } }, @@ -235,18 +255,68 @@ "ScalingAdjustment" ] }, - "MetricDimension": { - "description": "Describes the dimension names and values associated with a metric.", + "StepScalingPolicyConfiguration": { + "description": "``StepScalingPolicyConfiguration`` is a property of the [AWS::ApplicationAutoScaling::ScalingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html) resource that specifies a step scaling policy configuration for Application Auto Scaling. \n For more information, see [Step scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html) in the *Application Auto Scaling User Guide*.", + "additionalProperties": false, "type": "object", + "properties": { + "MetricAggregationType": { + "description": "The aggregation type for the CloudWatch metrics. Valid values are ``Minimum``, ``Maximum``, and ``Average``. If the aggregation type is null, the value is treated as ``Average``.", + "type": "string" + }, + "Cooldown": { + "description": "The amount of time, in seconds, to wait for a previous scaling activity to take effect. If not specified, the default value is 300. For more information, see [Cooldown period](https://docs.aws.amazon.com/autoscaling/application/userguide/step-scaling-policy-overview.html#step-scaling-cooldown) in the *Application Auto Scaling User Guide*.", + "type": "integer" + }, + "StepAdjustments": { + "uniqueItems": true, + "description": "A set of adjustments that enable you to scale based on the size of the alarm breach.\n At least one step adjustment is required if you are adding a new step scaling policy configuration.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/StepAdjustment" + } + }, + "MinAdjustmentMagnitude": { + "description": "The minimum value to scale by when the adjustment type is ``PercentChangeInCapacity``. For example, suppose that you create a step scaling policy to scale out an Amazon ECS service by 25 percent and you specify a ``MinAdjustmentMagnitude`` of 2. If the service has 4 tasks and the scaling policy is performed, 25 percent of 4 is 1. However, because you specified a ``MinAdjustmentMagnitude`` of 2, Application Auto Scaling scales out the service by 2 tasks.", + "type": "integer" + }, + "AdjustmentType": { + "description": "Specifies whether the ``ScalingAdjustment`` value in the ``StepAdjustment`` property is an absolute number or a percentage of the current capacity.", + "type": "string" + } + } + }, + "PredefinedMetricSpecification": { + "description": "Contains predefined metric specification information for a target tracking scaling policy for Application Auto Scaling.\n ``PredefinedMetricSpecification`` is a property of the [AWS::ApplicationAutoScaling::ScalingPolicy TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html) property type.", "additionalProperties": false, + "type": "object", "properties": { - "Name": { - "description": "The name of the dimension.", + "PredefinedMetricType": { + "description": "The metric type. The ``ALBRequestCountPerTarget`` metric type applies only to Spot fleet requests and ECS services.", "type": "string" }, + "ResourceLabel": { + "description": "Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ``ALBRequestCountPerTarget`` and there is a target group attached to the Spot Fleet or ECS service.\n You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). The format of the resource label is:\n ``app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff``.\n Where:\n + app// is the final portion of the load balancer ARN\n + targetgroup// is the final portion of the target group ARN.\n \n To find the ARN for an Application Load Balancer, use the [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operation. To find the ARN for the target group, use the [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) API operation.", + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ] + }, + "MetricDimension": { + "description": "``MetricDimension`` specifies a name/value pair that is part of the identity of a CloudWatch metric for the ``Dimensions`` property of the [AWS::ApplicationAutoScaling::ScalingPolicy CustomizedMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html) property type. Duplicate dimensions are not allowed.", + "additionalProperties": false, + "type": "object", + "properties": { "Value": { "description": "The value of the dimension.", "type": "string" + }, + "Name": { + "description": "The name of the dimension.", + "type": "string" } }, "required": [ @@ -256,111 +326,41 @@ } }, "properties": { - "PolicyName": { - "description": "The name of the scaling policy.\n\nUpdates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing AWS::ApplicationAutoScaling::ScalingPolicy resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name.", - "type": "string" - }, "PolicyType": { - "description": "The scaling policy type.\n\nThe following policy types are supported:\n\nTargetTrackingScaling Not supported for Amazon EMR\n\nStepScaling Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune.", + "description": "The scaling policy type.\n The following policy types are supported: \n ``TargetTrackingScaling``\u2014Not supported for Amazon EMR\n ``StepScaling``\u2014Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune.", "type": "string" }, "ResourceId": { - "description": "The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.", + "description": "The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.\n + ECS service - The resource type is ``service`` and the unique identifier is the cluster name and service name. Example: ``service/my-cluster/my-service``.\n + Spot Fleet - The resource type is ``spot-fleet-request`` and the unique identifier is the Spot Fleet request ID. Example: ``spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE``.\n + EMR cluster - The resource type is ``instancegroup`` and the unique identifier is the cluster ID and instance group ID. Example: ``instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0``.\n + AppStream 2.0 fleet - The resource type is ``fleet`` and the unique identifier is the fleet name. Example: ``fleet/sample-fleet``.\n + DynamoDB table - The resource type is ``table`` and the unique identifier is the table name. Example: ``table/my-table``.\n + DynamoDB global secondary index - The resource type is ``index`` and the unique identifier is the index name. Example: ``table/my-table/index/my-table-index``.\n + Aurora DB cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:my-db-cluster``.\n + SageMaker endpoint variant - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering``.\n + Custom resources are not supported with a resource type. This parameter must specify the ``OutputValue`` from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our [GitHub repository](https://docs.aws.amazon.com/https://github.com/aws/aws-auto-scaling-custom-resource).\n + Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: ``arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE``.\n + Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: ``arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE``.\n + Lambda provisioned concurrency - The resource type is ``function`` and the unique identifier is the function name with a function version or alias name suffix that is not ``$LATEST``. Example: ``function:my-function:prod`` or ``function:my-function:1``.\n + Amazon Keyspaces table - The resource type is ``table`` and the unique identifier is the table name. Example: ``keyspace/mykeyspace/table/mytable``.\n + Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: ``arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5``.\n + Amazon ElastiCache replication group - The resource type is ``replication-group`` and the unique identifier is the replication group name. Example: ``replication-group/mycluster``.\n + Neptune cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:mycluster``.\n + SageMaker serverless endpoint - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering``.\n + SageMaker inference component - The resource type is ``inference-component`` and the unique identifier is the resource ID. Example: ``inference-component/my-inference-component``.\n + Pool of WorkSpaces - The resource type is ``workspacespool`` and the unique identifier is the pool ID. Example: ``workspacespool/wspool-123456``.", "type": "string" }, - "ScalableDimension": { - "description": "The scalable dimension. This string consists of the service namespace, resource type, and scaling property.", + "ScalingTargetId": { + "description": "The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the ``AWS::ApplicationAutoScaling::ScalableTarget`` resource.\n You must specify either the ``ScalingTargetId`` property, or the ``ResourceId``, ``ScalableDimension``, and ``ServiceNamespace`` properties, but not both.", "type": "string" }, - "ScalingTargetId": { - "description": "The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the AWS::ApplicationAutoScaling::ScalableTarget resource.", + "PolicyName": { + "description": "The name of the scaling policy.\n Updates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing ``AWS::ApplicationAutoScaling::ScalingPolicy`` resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name.", "type": "string" }, "ServiceNamespace": { - "description": "The namespace of the AWS service that provides the resource, or a custom-resource.", + "description": "The namespace of the AWS service that provides the resource, or a ``custom-resource``.", "type": "string" }, - "StepScalingPolicyConfiguration": { - "description": "A step scaling policy.", - "$ref": "#/definitions/StepScalingPolicyConfiguration" + "ScalableDimension": { + "description": "The scalable dimension. This string consists of the service namespace, resource type, and scaling property.\n + ``ecs:service:DesiredCount`` - The task count of an ECS service.\n + ``elasticmapreduce:instancegroup:InstanceCount`` - The instance count of an EMR Instance Group.\n + ``ec2:spot-fleet-request:TargetCapacity`` - The target capacity of a Spot Fleet.\n + ``appstream:fleet:DesiredCapacity`` - The capacity of an AppStream 2.0 fleet.\n + ``dynamodb:table:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB table.\n + ``dynamodb:table:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB table.\n + ``dynamodb:index:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB global secondary index.\n + ``dynamodb:index:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB global secondary index.\n + ``rds:cluster:ReadReplicaCount`` - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition.\n + ``sagemaker:variant:DesiredInstanceCount`` - The number of EC2 instances for a SageMaker model endpoint variant.\n + ``custom-resource:ResourceType:Property`` - The scalable dimension for a custom resource provided by your own application or service.\n + ``comprehend:document-classifier-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend document classification endpoint.\n + ``comprehend:entity-recognizer-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend entity recognizer endpoint.\n + ``lambda:function:ProvisionedConcurrency`` - The provisioned concurrency for a Lambda function.\n + ``cassandra:table:ReadCapacityUnits`` - The provisioned read capacity for an Amazon Keyspaces table.\n + ``cassandra:table:WriteCapacityUnits`` - The provisioned write capacity for an Amazon Keyspaces table.\n + ``kafka:broker-storage:VolumeSize`` - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster.\n + ``elasticache:replication-group:NodeGroups`` - The number of node groups for an Amazon ElastiCache replication group.\n + ``elasticache:replication-group:Replicas`` - The number of replicas per node group for an Amazon ElastiCache replication group.\n + ``neptune:cluster:ReadReplicaCount`` - The count of read replicas in an Amazon Neptune DB cluster.\n + ``sagemaker:variant:DesiredProvisionedConcurrency`` - The provisioned concurrency for a SageMaker serverless endpoint.\n + ``sagemaker:inference-component:DesiredCopyCount`` - The number of copies across an endpoint for a SageMaker inference component.\n + ``workspaces:workspacespool:DesiredUserSessions`` - The number of user sessions for the WorkSpaces in the pool.", + "type": "string" }, "TargetTrackingScalingPolicyConfiguration": { "description": "A target tracking scaling policy.", "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" }, "Arn": { - "description": "ARN is a read only property for the resource.", + "description": "", "type": "string" - } - }, - "required": [ - "PolicyName", - "PolicyType" - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PolicyName", - "/properties/ServiceNamespace", - "/properties/ResourceId", - "/properties/ScalableDimension", - "/properties/ScalingTargetId" - ], - "readOnlyProperties": [ - "/properties/Arn" - ], - "writeOnlyProperties": [ - "/properties/TargetTrackingScalingPolicyConfiguration/PredefinedMetricSpecification/ResourceLabel", - "/properties/ScalingTargetId" - ], - "primaryIdentifier": [ - "/properties/Arn", - "/properties/ScalableDimension" - ], - "tagging": { - "taggable": false, - "tagOnCreate": false, - "tagUpdatable": false, - "cloudFormationSystemTags": false - }, - "handlers": { - "create": { - "permissions": [ - "application-autoscaling:DescribeScalingPolicies", - "application-autoscaling:PutScalingPolicy" - ] - }, - "read": { - "permissions": [ - "application-autoscaling:DescribeScalingPolicies" - ] - }, - "update": { - "permissions": [ - "application-autoscaling:DescribeScalingPolicies", - "application-autoscaling:PutScalingPolicy" - ] }, - "delete": { - "permissions": [ - "application-autoscaling:DescribeScalingPolicies", - "application-autoscaling:DeleteScalingPolicy" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "ServiceNamespace": { - "description": "The name of the service", - "type": "string" - } - }, - "required": [ - "ServiceNamespace" - ] - }, - "permissions": [ - "application-autoscaling:DescribeScalingPolicies" - ] + "StepScalingPolicyConfiguration": { + "description": "A step scaling policy.", + "$ref": "#/definitions/StepScalingPolicyConfiguration" } } } diff --git a/internal/service/cloudformation/schemas/AWS_Bedrock_DataSource.json b/internal/service/cloudformation/schemas/AWS_Bedrock_DataSource.json index 0bbcbde55..97493fed5 100644 --- a/internal/service/cloudformation/schemas/AWS_Bedrock_DataSource.json +++ b/internal/service/cloudformation/schemas/AWS_Bedrock_DataSource.json @@ -231,7 +231,7 @@ ], "tagging": { "taggable": false, - "cloudFormationSystemTags": true + "cloudFormationSystemTags": false }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_Bedrock_KnowledgeBase.json b/internal/service/cloudformation/schemas/AWS_Bedrock_KnowledgeBase.json index 3a4bfffc2..168e28423 100644 --- a/internal/service/cloudformation/schemas/AWS_Bedrock_KnowledgeBase.json +++ b/internal/service/cloudformation/schemas/AWS_Bedrock_KnowledgeBase.json @@ -37,7 +37,8 @@ "enum": [ "OPENSEARCH_SERVERLESS", "PINECONE", - "RDS" + "RDS", + "MONGO_DB_ATLAS" ] }, "KnowledgeBaseType": { @@ -298,6 +299,89 @@ ], "additionalProperties": false }, + "MongoDbAtlasFieldMapping": { + "type": "object", + "description": "Contains the names of the fields to which to map information about the vector store.", + "properties": { + "VectorField": { + "type": "string", + "maxLength": 2048, + "pattern": "^.*$", + "description": "The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources." + }, + "TextField": { + "type": "string", + "maxLength": 2048, + "pattern": "^.*$", + "description": "The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose." + }, + "MetadataField": { + "type": "string", + "maxLength": 2048, + "pattern": "^.*$", + "description": "The name of the field in which Amazon Bedrock stores metadata about the vector store." + } + }, + "required": [ + "VectorField", + "MetadataField", + "TextField" + ], + "additionalProperties": false + }, + "MongoDbAtlasConfiguration": { + "type": "object", + "description": "Contains the storage configuration of the knowledge base in MongoDb Atlas Cloud.", + "properties": { + "Endpoint": { + "type": "string", + "maxLength": 2048, + "pattern": "^[a-zA-Z0-9_-]+\\.[a-zA-Z0-9_-]+\\.mongodb\\.net$", + "description": "MongoDB Atlas endpoint." + }, + "CredentialsSecretArn": { + "type": "string", + "pattern": "^arn:aws(|-cn|-us-gov):secretsmanager:[a-z0-9-]{1,20}:([0-9]{12}|):secret:[a-zA-Z0-9!/_+=.@-]{1,512}$", + "description": "The ARN of the secret that you created in AWS Secrets Manager that is linked to your Amazon Mongo database." + }, + "DatabaseName": { + "type": "string", + "maxLength": 63, + "pattern": "^.*$", + "description": "Name of the database within MongoDB Atlas." + }, + "CollectionName": { + "type": "string", + "maxLength": 63, + "pattern": "^.*$", + "description": "Name of the collection within MongoDB Atlas." + }, + "VectorIndexName": { + "type": "string", + "maxLength": 2048, + "pattern": "^.*$", + "description": "Name of a MongoDB Atlas index." + }, + "EndpointServiceName": { + "type": "string", + "maxLength": 255, + "pattern": "^(?:arn:aws(?:-us-gov|-cn|-iso|-iso-[a-z])*:.+:.*:\\d+:.+\/.+$|[a-zA-Z0-9*]+[a-zA-Z0-9._-]*)$", + "description": "MongoDB Atlas endpoint service name." + }, + "FieldMapping": { + "$ref": "#/definitions/MongoDbAtlasFieldMapping" + } + }, + "required": [ + "Endpoint", + "CredentialsSecretArn", + "DatabaseName", + "CollectionName", + "VectorIndexName", + "FieldMapping" + ], + "additionalProperties": false + }, "StorageConfiguration": { "type": "object", "description": "The vector store service in which the knowledge base is stored.", @@ -313,6 +397,9 @@ }, "RdsConfiguration": { "$ref": "#/definitions/RdsConfiguration" + }, + "MongoDbAtlasConfiguration": { + "$ref": "#/definitions/MongoDbAtlasConfiguration" } }, "required": [ @@ -333,6 +420,11 @@ "required": [ "RdsConfiguration" ] + }, + { + "required": [ + "MongoDbAtlasConfiguration" + ] } ], "additionalProperties": false @@ -351,6 +443,29 @@ }, "additionalProperties": false }, + "BedrockEmbeddingModelConfiguration": { + "type": "object", + "description": "The vector configuration details for the Bedrock embeddings model.", + "properties": { + "Dimensions": { + "type": "integer", + "maximum": 4096, + "minimum": 0, + "description": "The dimensions details for the vector configuration used on the Bedrock embeddings model." + } + }, + "additionalProperties": false + }, + "EmbeddingModelConfiguration": { + "type": "object", + "description": "The embeddings model configuration details for the vector model used in Knowledge Base.", + "properties": { + "BedrockEmbeddingModelConfiguration": { + "$ref": "#/definitions/BedrockEmbeddingModelConfiguration" + } + }, + "additionalProperties": false + }, "VectorKnowledgeBaseConfiguration": { "type": "object", "description": "Contains details about the model used to create vector embeddings for the knowledge base.", @@ -359,8 +474,11 @@ "type": "string", "maxLength": 2048, "minLength": 20, - "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model\/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}\/[a-z0-9]{12})|(:foundation-model\/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model\/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + "pattern": "^(arn:aws(-[^:]+)?:[a-z0-9-]+:[a-z0-9-]{1,20}:[0-9]{0,12}:[a-zA-Z0-9-:/._+]+)$", "description": "The ARN of the model used to create vector embeddings for the knowledge base." + }, + "EmbeddingModelConfiguration": { + "$ref": "#/definitions/EmbeddingModelConfiguration" } }, "required": [ diff --git a/internal/service/cloudformation/schemas/AWS_CleanRoomsML_TrainingDataset.json b/internal/service/cloudformation/schemas/AWS_CleanRoomsML_TrainingDataset.json index 40fae706a..e21b022ec 100644 --- a/internal/service/cloudformation/schemas/AWS_CleanRoomsML_TrainingDataset.json +++ b/internal/service/cloudformation/schemas/AWS_CleanRoomsML_TrainingDataset.json @@ -218,7 +218,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "cleanrooms-ml:TagResource", + "cleanrooms-ml:UntagResource" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_ConnectCampaigns_Campaign.json b/internal/service/cloudformation/schemas/AWS_ConnectCampaigns_Campaign.json index ec15833c6..fc7264ff2 100644 --- a/internal/service/cloudformation/schemas/AWS_ConnectCampaigns_Campaign.json +++ b/internal/service/cloudformation/schemas/AWS_ConnectCampaigns_Campaign.json @@ -209,7 +209,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "connect-campaigns:UntagResource", + "connect-campaigns:TagResource" + ] }, "required": [ "ConnectInstanceArn", diff --git a/internal/service/cloudformation/schemas/AWS_DMS_ReplicationConfig.json b/internal/service/cloudformation/schemas/AWS_DMS_ReplicationConfig.json index 0d28b9a18..f17e1e0f9 100644 --- a/internal/service/cloudformation/schemas/AWS_DMS_ReplicationConfig.json +++ b/internal/service/cloudformation/schemas/AWS_DMS_ReplicationConfig.json @@ -142,9 +142,22 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "dms:AddTagsToResource", + "dms:ListTagsForResource", + "dms:RemoveTagsFromResource" + ] }, "additionalProperties": false, + "required": [ + "ReplicationConfigIdentifier", + "SourceEndpointArn", + "TargetEndpointArn", + "ReplicationType", + "ComputeConfig", + "TableMappings" + ], "handlers": { "create": { "permissions": [ @@ -167,7 +180,7 @@ "permissions": [ "dms:ModifyReplicationConfig", "dms:AddTagsToResource", - "dms:RemoveTagsToResource", + "dms:RemoveTagsFromResource", "dms:ListTagsForResource", "iam:CreateServiceLinkedRole", "iam:AttachRolePolicy", diff --git a/internal/service/cloudformation/schemas/AWS_EC2_EIPAssociation.json b/internal/service/cloudformation/schemas/AWS_EC2_EIPAssociation.json index 2f3d719b5..607ec04ff 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_EIPAssociation.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_EIPAssociation.json @@ -1,30 +1,30 @@ { "typeName": "AWS::EC2::EIPAssociation", - "description": "Resource schema for EC2 EIP association.", + "description": "Associates an Elastic IP address with an instance or a network interface. Before you can use an Elastic IP address, you must allocate it to your account. For more information about working with Elastic IP addresses, see [Elastic IP address concepts and rules](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#vpc-eip-overview).\n You must specify ``AllocationId`` and either ``InstanceId``, ``NetworkInterfaceId``, or ``PrivateIpAddress``.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2/tree/master/aws-ec2-eipassociation", "properties": { "Id": { - "description": "Composite ID of non-empty properties, to determine the identification.", + "description": "", "type": "string" }, "AllocationId": { - "description": "The allocation ID. This is required for EC2-VPC.", + "description": "The allocation ID. This is required.", "type": "string" }, "NetworkInterfaceId": { - "description": "The ID of the network interface.", + "description": "The ID of the network interface. If the instance has more than one network interface, you must specify a network interface ID.\n You can specify either the instance ID or the network interface ID, but not both.", "type": "string" }, "InstanceId": { - "description": "The ID of the instance.", + "description": "The ID of the instance. The instance must have exactly one attached network interface. You can specify either the instance ID or the network interface ID, but not both.", "type": "string" }, "PrivateIpAddress": { - "description": "The primary or secondary private IP address to associate with the Elastic IP address.", + "description": "The primary or secondary private IP address to associate with the Elastic IP address. If no private IP address is specified, the Elastic IP address is associated with the primary private IP address.", "type": "string" }, "EIP": { - "description": "The Elastic IP address to associate with the instance.", + "description": "", "type": "string" } }, diff --git a/internal/service/cloudformation/schemas/AWS_EC2_Instance.json b/internal/service/cloudformation/schemas/AWS_EC2_Instance.json index a7eb14f84..5d874fa63 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_Instance.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_Instance.json @@ -171,7 +171,8 @@ "/properties/AdditionalInfo", "/properties/Ipv6AddressCount", "/properties/Ipv6Addresses", - "/properties/PropagateTagsToVolumeOnCreation" + "/properties/PropagateTagsToVolumeOnCreation", + "/properties/LaunchTemplate" ], "additionalProperties": false, "definitions": { diff --git a/internal/service/cloudformation/schemas/AWS_EC2_KeyPair.json b/internal/service/cloudformation/schemas/AWS_EC2_KeyPair.json index 1f5457c99..499c71fcb 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_KeyPair.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_KeyPair.json @@ -101,7 +101,11 @@ "tagging": { "taggable": true, "tagUpdatable": false, - "cloudFormationSystemTags": false + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "ec2:CreateTags" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_EC2_LaunchTemplate.json b/internal/service/cloudformation/schemas/AWS_EC2_LaunchTemplate.json index 90ab51aff..9fc718742 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_LaunchTemplate.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_LaunchTemplate.json @@ -77,7 +77,7 @@ } }, "UserData": { - "description": "The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Linux instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) (Linux) or [Work with instance user data](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instancedata-add-user-data.html) (Windows) in the *Amazon Elastic Compute Cloud User Guide*.\n If you are creating the launch template for use with BATCH, the user data must be provided in the [MIME multi-part archive format](https://docs.aws.amazon.com/https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *User Guide*.", + "description": "The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Amazon EC2 instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) in the *Amazon EC2 User Guide*.\n If you are creating the launch template for use with BATCH, the user data must be provided in the [MIME multi-part archive format](https://docs.aws.amazon.com/https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *User Guide*.", "type": "string" }, "BlockDeviceMappings": { @@ -141,7 +141,7 @@ "type": "string" }, "InstanceType": { - "description": "The instance type. 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*.\n If you specify ``InstanceType``, you can't specify ``InstanceRequirements``.", + "description": "The instance type. For more information, see [Amazon EC2 instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*.\n If you specify ``InstanceType``, you can't specify ``InstanceRequirements``.", "type": "string" }, "Monitoring": { @@ -149,11 +149,11 @@ "$ref": "#/definitions/Monitoring" }, "HibernationOptions": { - "description": "Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon Elastic Compute Cloud User Guide*.", + "description": "Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your Amazon EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon EC2 User Guide*.", "$ref": "#/definitions/HibernationOptions" }, "MetadataOptions": { - "description": "The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon Elastic Compute Cloud User Guide*.", + "description": "The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon EC2 User Guide*.", "$ref": "#/definitions/MetadataOptions" }, "LicenseSpecifications": { @@ -169,11 +169,11 @@ "type": "string" }, "DisableApiStop": { - "description": "Indicates whether to enable the instance for stop protection. For more information, see [Stop protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection) in the *Amazon Elastic Compute Cloud User Guide*.", + "description": "Indicates whether to enable the instance for stop protection. For more information, see [Enable stop protection for your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-stop-protection.html) in the *Amazon EC2 User Guide*.", "type": "boolean" }, "CpuOptions": { - "description": "The CPU options for the instance. For more information, see [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon Elastic Compute Cloud User Guide*.", + "description": "The CPU options for the instance. For more information, see [Optimize CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon EC2 User Guide*.", "$ref": "#/definitions/CpuOptions" }, "PrivateDnsNameOptions": { @@ -205,7 +205,7 @@ "$ref": "#/definitions/InstanceRequirements" }, "RamDiskId": { - "description": "The ID of the RAM disk.\n We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon Elastic Compute Cloud User Guide*.", + "description": "The ID of the RAM disk.\n We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide*.", "type": "string" }, "CapacityReservationSpecification": { @@ -257,7 +257,7 @@ "type": "object", "properties": { "Type": { - "description": "The type of Elastic Graphics accelerator. For more information about the values to specify for ``Type``, see [Elastic Graphics Basics](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html#elastic-graphics-basics), specifically the Elastic Graphics accelerator column, in the *Amazon Elastic Compute Cloud User Guide for Windows Instances*.", + "description": "The type of Elastic Graphics accelerator.", "type": "string" } } @@ -313,7 +313,7 @@ "type": "object", "properties": { "Ipv4Prefix": { - "description": "The IPv4 prefix. For information, see [Assigning prefixes to Amazon EC2 network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon Elastic Compute Cloud User Guide*.", + "description": "The IPv4 prefix. For information, see [Assigning prefixes to network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon EC2 User Guide*.", "type": "string" } } @@ -660,7 +660,7 @@ "type": "integer" }, "InterfaceType": { - "description": "The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon Elastic Compute Cloud User Guide*.\n If you are not creating an EFA, specify ``interface`` or omit this parameter.\n Valid values: ``interface`` | ``efa``", + "description": "The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon EC2 User Guide*.\n If you are not creating an EFA, specify ``interface`` or omit this parameter.\n Valid values: ``interface`` | ``efa``", "type": "string" }, "AssociateCarrierIpAddress": { @@ -744,7 +744,7 @@ "type": "object", "properties": { "ResourceType": { - "description": "The type of resource. To tag the launch template, ``ResourceType`` must be ``launch-template``.", + "description": "The type of resource. To tag a launch template, ``ResourceType`` must be ``launch-template``.", "type": "string" }, "Tags": { @@ -763,7 +763,7 @@ "type": "object", "properties": { "ResourceType": { - "description": "The type of resource to tag.\n Valid Values lists all resource types for Amazon EC2 that can be tagged. When you create a launch template, you can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume.\n To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).", + "description": "The type of resource to tag. You can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume.\n To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).", "type": "string" }, "Tags": { @@ -957,7 +957,7 @@ "type": "boolean" }, "MaxSpotPriceAsPercentageOfOptimalOnDemandPrice": { - "description": "[Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price.\n Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``.", + "description": "[Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price.\n Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``.", "type": "integer" }, "SpotMaxPricePercentageOverLowestPrice": { @@ -1089,7 +1089,7 @@ } }, "ConnectionTrackingSpecification": { - "description": "A security group connection tracking specification that enables you to set the idle timeout for connection tracking on an Elastic network interface. For more information, see [Connection tracking timeouts](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-connection-tracking.html#connection-tracking-timeouts) in the *Amazon Elastic Compute Cloud User Guide*.", + "description": "A security group connection tracking specification that enables you to set the idle timeout for connection tracking on an Elastic network interface. For more information, see [Connection tracking timeouts](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-connection-tracking.html#connection-tracking-timeouts) in the *Amazon EC2 User Guide*.", "additionalProperties": false, "type": "object", "properties": { diff --git a/internal/service/cloudformation/schemas/AWS_EC2_NetworkInterfaceAttachment.json b/internal/service/cloudformation/schemas/AWS_EC2_NetworkInterfaceAttachment.json index a5b06e510..3fc601708 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_NetworkInterfaceAttachment.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_NetworkInterfaceAttachment.json @@ -1,19 +1,19 @@ { "typeName": "AWS::EC2::NetworkInterfaceAttachment", - "description": "Resource Type definition for AWS::EC2::NetworkInterfaceAttachment", + "description": "Attaches an elastic network interface (ENI) to an Amazon EC2 instance. You can use this resource type to attach additional network interfaces to an instance without interruption.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", "properties": { "AttachmentId": { - "description": "The ID of the network interface attachment.", + "description": "", "type": "string" }, "DeleteOnTermination": { - "description": "Whether to delete the network interface when the instance terminates. By default, this value is set to true.", + "description": "Whether to delete the network interface when the instance terminates. By default, this value is set to ``true``.", "type": "boolean", "default": true }, "DeviceIndex": { - "description": "The network interface's position in the attachment order. For example, the first attached network interface has a DeviceIndex of 0.", + "description": "The network interface's position in the attachment order. For example, the first attached network interface has a ``DeviceIndex`` of 0.", "type": "string" }, "InstanceId": { @@ -25,7 +25,8 @@ "type": "string" }, "EnaSrdSpecification": { - "$ref": "#/definitions/EnaSrdSpecification" + "$ref": "#/definitions/EnaSrdSpecification", + "description": "Configures ENA Express for the network interface that this action attaches to the instance." } }, "additionalProperties": false, @@ -63,7 +64,8 @@ "additionalProperties": false, "properties": { "EnaSrdEnabled": { - "type": "boolean" + "type": "boolean", + "description": "Indicates whether ENA Express is enabled for the network interface." }, "EnaSrdUdpSpecification": { "type": "object", @@ -72,9 +74,11 @@ "EnaSrdUdpEnabled": { "type": "boolean" } - } + }, + "description": "Configures ENA Express for UDP network traffic." } - } + }, + "description": "ENA Express uses AWS Scalable Reliable Datagram (SRD) technology to increase the maximum bandwidth used per stream and minimize tail latency of network traffic between EC2 instances. With ENA Express, you can communicate between two EC2 instances in the same subnet within the same account, or in different accounts. Both sending and receiving instances must have ENA Express enabled.\n To improve the reliability of network packet delivery, ENA Express reorders network packets on the receiving end by default. However, some UDP-based applications are designed to handle network packets that are out of order to reduce the overhead for packet delivery at the network layer. When ENA Express is enabled, you can specify whether UDP network traffic uses it." } }, "handlers": { diff --git a/internal/service/cloudformation/schemas/AWS_EC2_SubnetCidrBlock.json b/internal/service/cloudformation/schemas/AWS_EC2_SubnetCidrBlock.json index 1d2a733c4..a94a13c1d 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_SubnetCidrBlock.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_SubnetCidrBlock.json @@ -1,72 +1,41 @@ { - "typeName": "AWS::EC2::SubnetCidrBlock", - "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", - "description": "The AWS::EC2::SubnetCidrBlock resource creates association between subnet and IPv6 CIDR", - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2/subnetcidrblock", - "additionalProperties": false, - "properties": { - "Id": { - "description": "Information about the IPv6 association.", - "type": "string" - }, - "Ipv6CidrBlock": { - "description": "The IPv6 network range for the subnet, in CIDR notation. The subnet size must use a /64 prefix length", - "type": "string", - "maxLength": 42 - }, - "Ipv6IpamPoolId": { - "description": "The ID of an IPv6 Amazon VPC IP Address Manager (IPAM) pool from which to allocate, to get the subnet's CIDR", - "type": "string" - }, - "Ipv6NetmaskLength": { - "description": "The netmask length of the IPv6 CIDR to allocate to the subnet from an IPAM pool", - "type": "integer", - "minimum": 0, - "maximum": 128 - }, - "SubnetId": { - "description": "The ID of the subnet", - "type": "string" - } + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false }, - "required": [ - "SubnetId" + "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", + "typeName": "AWS::EC2::SubnetCidrBlock", + "readOnlyProperties": [ + "/properties/Id" ], + "description": "The AWS::EC2::SubnetCidrBlock resource creates association between subnet and IPv6 CIDR", "createOnlyProperties": [ "/properties/Ipv6CidrBlock", "/properties/SubnetId", "/properties/Ipv6IpamPoolId", "/properties/Ipv6NetmaskLength" ], - "readOnlyProperties": [ - "/properties/Id" - ], - "writeOnlyProperties": [ - "/properties/Ipv6IpamPoolId", - "/properties/Ipv6NetmaskLength" - ], "primaryIdentifier": [ "/properties/Id" ], + "required": [ + "SubnetId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2/subnetcidrblock", "propertyTransform": { "/properties/Ipv6CidrBlock": "$join([$match($replace(Ipv6CidrBlock, /(^|:)(0{1,4})([0-9a-fA-F]{1,4})/, \"$1$3\"), /^([0-9a-fA-F]{1,4}:){4}/).match, \":/64\"])" }, - "tagging": { - "taggable": false, - "tagOnCreate": false, - "tagUpdatable": false, - "cloudFormationSystemTags": false - }, "handlers": { - "create": { + "read": { "permissions": [ - "ec2:AssociateSubnetCidrBlock", "ec2:DescribeSubnets" ] }, - "delete": { + "create": { "permissions": [ - "ec2:DisassociateSubnetCidrBlock", + "ec2:AssociateSubnetCidrBlock", "ec2:DescribeSubnets" ] }, @@ -75,10 +44,41 @@ "ec2:DescribeSubnets" ] }, - "read": { + "delete": { "permissions": [ + "ec2:DisassociateSubnetCidrBlock", "ec2:DescribeSubnets" ] } + }, + "writeOnlyProperties": [ + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "additionalProperties": false, + "properties": { + "Ipv6NetmaskLength": { + "description": "The netmask length of the IPv6 CIDR to allocate to the subnet from an IPAM pool", + "maximum": 128, + "type": "integer", + "minimum": 0 + }, + "Ipv6IpamPoolId": { + "description": "The ID of an IPv6 Amazon VPC IP Address Manager (IPAM) pool from which to allocate, to get the subnet's CIDR", + "type": "string" + }, + "Id": { + "description": "Information about the IPv6 association.", + "type": "string" + }, + "SubnetId": { + "description": "The ID of the subnet", + "type": "string" + }, + "Ipv6CidrBlock": { + "description": "The IPv6 network range for the subnet, in CIDR notation. The subnet size must use a /64 prefix length", + "type": "string", + "maxLength": 42 + } } } diff --git a/internal/service/cloudformation/schemas/AWS_EC2_VPCCidrBlock.json b/internal/service/cloudformation/schemas/AWS_EC2_VPCCidrBlock.json index 1172bd005..4d8ca8c2a 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_VPCCidrBlock.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_VPCCidrBlock.json @@ -1,113 +1,113 @@ { - "typeName": "AWS::EC2::VPCCidrBlock", - "description": "Resource Type definition for AWS::EC2::VPCCidrBlock", - "additionalProperties": false, - "properties": { - "CidrBlock": { - "type": "string", - "description": "An IPv4 CIDR block to associate with the VPC." - }, - "Ipv6Pool": { - "type": "string", - "description": "The ID of an IPv6 address pool from which to allocate the IPv6 CIDR block." - }, - "Id": { - "type": "string", - "description": "The Id of the VPC associated CIDR Block." - }, - "VpcId": { - "type": "string", - "description": "The ID of the VPC." - }, - "Ipv6CidrBlock": { - "type": "string", - "description": "An IPv6 CIDR block from the IPv6 address pool." - }, - "Ipv4IpamPoolId": { - "type": "string", - "description": "The ID of the IPv4 IPAM pool to Associate a CIDR from to a VPC." - }, - "Ipv4NetmaskLength": { - "type": "integer", - "description": "The netmask length of the IPv4 CIDR you would like to associate from an Amazon VPC IP Address Manager (IPAM) pool." - }, - "Ipv6IpamPoolId": { - "type": "string", - "description": "The ID of the IPv6 IPAM pool to Associate a CIDR from to a VPC." - }, - "Ipv6NetmaskLength": { - "type": "integer", - "description": "The netmask length of the IPv6 CIDR you would like to associate from an Amazon VPC IP Address Manager (IPAM) pool." - }, - "AmazonProvidedIpv6CidrBlock": { - "type": "boolean", - "description": "Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC. You cannot specify the range of IPv6 addresses, or the size of the CIDR block." - } - }, "tagging": { "taggable": false }, - "required": [ - "VpcId" - ], - "createOnlyProperties": [ - "/properties/Ipv6Pool", - "/properties/VpcId", - "/properties/AmazonProvidedIpv6CidrBlock", - "/properties/Ipv6CidrBlock", - "/properties/CidrBlock", - "/properties/Ipv4IpamPoolId", - "/properties/Ipv4NetmaskLength", - "/properties/Ipv6IpamPoolId", - "/properties/Ipv6NetmaskLength" - ], - "primaryIdentifier": [ - "/properties/Id", - "/properties/VpcId" - ], - "readOnlyProperties": [ - "/properties/Id" - ], - "writeOnlyProperties": [ - "/properties/Ipv4IpamPoolId", - "/properties/Ipv4NetmaskLength", - "/properties/Ipv6IpamPoolId", - "/properties/Ipv6NetmaskLength" - ], "handlers": { - "create": { - "permissions": [ - "ec2:AssociateVpcCidrBlock", - "ec2:DescribeVpcs", - "ec2:AllocateIpamPoolCidr" - ] - }, "read": { "permissions": [ "ec2:DescribeVpcs" ] }, - "delete": { + "create": { "permissions": [ + "ec2:AssociateVpcCidrBlock", "ec2:DescribeVpcs", - "ec2:DisassociateVpcCidrBlock" + "ec2:AllocateIpamPoolCidr" ] }, "list": { + "permissions": [ + "ec2:DescribeVpcs" + ], "handlerSchema": { "properties": { "VpcId": { - "type": "string", - "description": "The ID of the VPC." + "description": "The ID of the VPC.", + "type": "string" } }, "required": [ "VpcId" ] - }, + } + }, + "delete": { "permissions": [ - "ec2:DescribeVpcs" + "ec2:DescribeVpcs", + "ec2:DisassociateVpcCidrBlock" ] } - } + }, + "typeName": "AWS::EC2::VPCCidrBlock", + "readOnlyProperties": [ + "/properties/Id" + ], + "description": "Resource Type definition for AWS::EC2::VPCCidrBlock", + "writeOnlyProperties": [ + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "createOnlyProperties": [ + "/properties/Ipv6Pool", + "/properties/VpcId", + "/properties/AmazonProvidedIpv6CidrBlock", + "/properties/Ipv6CidrBlock", + "/properties/CidrBlock", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/Id", + "/properties/VpcId" + ], + "properties": { + "Ipv6NetmaskLength": { + "description": "The netmask length of the IPv6 CIDR you would like to associate from an Amazon VPC IP Address Manager (IPAM) pool.", + "type": "integer" + }, + "Ipv6IpamPoolId": { + "description": "The ID of the IPv6 IPAM pool to Associate a CIDR from to a VPC.", + "type": "string" + }, + "VpcId": { + "description": "The ID of the VPC.", + "type": "string" + }, + "Ipv4NetmaskLength": { + "description": "The netmask length of the IPv4 CIDR you would like to associate from an Amazon VPC IP Address Manager (IPAM) pool.", + "type": "integer" + }, + "CidrBlock": { + "description": "An IPv4 CIDR block to associate with the VPC.", + "type": "string" + }, + "Ipv6Pool": { + "description": "The ID of an IPv6 address pool from which to allocate the IPv6 CIDR block.", + "type": "string" + }, + "Ipv4IpamPoolId": { + "description": "The ID of the IPv4 IPAM pool to Associate a CIDR from to a VPC.", + "type": "string" + }, + "Id": { + "description": "The Id of the VPC associated CIDR Block.", + "type": "string" + }, + "Ipv6CidrBlock": { + "description": "An IPv6 CIDR block from the IPv6 address pool.", + "type": "string" + }, + "AmazonProvidedIpv6CidrBlock": { + "description": "Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC. You cannot specify the range of IPv6 addresses, or the size of the CIDR block.", + "type": "boolean" + } + }, + "required": [ + "VpcId" + ] } diff --git a/internal/service/cloudformation/schemas/AWS_ECR_Repository.json b/internal/service/cloudformation/schemas/AWS_ECR_Repository.json index 08c2037d4..e3e97b727 100644 --- a/internal/service/cloudformation/schemas/AWS_ECR_Repository.json +++ b/internal/service/cloudformation/schemas/AWS_ECR_Repository.json @@ -75,7 +75,7 @@ "properties": { "EncryptionType": { "$ref": "#/definitions/EncryptionType", - "description": "The encryption type to use.\n If you use the ``KMS`` encryption type, the contents of the repository will be encrypted using server-side encryption with KMSlong key stored in KMS. When you use KMS to encrypt your data, you can either use the default AWS managed KMS key for Amazon ECR, or specify your own KMS key, which you already created. For more information, see [Protecting data using server-side encryption with an key stored in (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*.\n 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 *Ama" + "description": "The encryption type to use.\n If you use the ``KMS`` encryption type, the contents of the repository will be encrypted using server-side encryption with KMSlong key stored in KMS. When you use KMS to encrypt your data, you can either use the default AWS managed KMS key for Amazon ECR, or specify your own KMS key, which you already created. For more information, see [Protecting data using server-side encryption with an key stored in (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*.\n 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*." }, "KmsKey": { "$ref": "#/definitions/KmsKey", diff --git a/internal/service/cloudformation/schemas/AWS_ECR_RepositoryCreationTemplate.json b/internal/service/cloudformation/schemas/AWS_ECR_RepositoryCreationTemplate.json index c3d5dc8e6..b5a87faee 100644 --- a/internal/service/cloudformation/schemas/AWS_ECR_RepositoryCreationTemplate.json +++ b/internal/service/cloudformation/schemas/AWS_ECR_RepositoryCreationTemplate.json @@ -119,6 +119,12 @@ "$ref": "#/definitions/AppliedForItem" } }, + "CustomRoleArn": { + "type": "string", + "description": "The ARN of the role to be assumed by ECR. This role must be in the same account as the registry that you are configuring.", + "maxLength": 2048, + "pattern": "^arn:aws[-a-z0-9]*:iam::[0-9]{12}:role/[A-Za-z0-9+=,-.@_]*$" + }, "CreatedAt": { "description": "Create timestamp of the template.", "type": "string" @@ -149,7 +155,8 @@ "ecr:PutLifecyclePolicy", "ecr:SetRepositoryPolicy", "ecr:CreateRepository", - "iam:CreateServiceLinkedRole" + "iam:CreateServiceLinkedRole", + "iam:PassRole" ] }, "read": { @@ -164,7 +171,8 @@ "ecr:PutLifecyclePolicy", "ecr:SetRepositoryPolicy", "ecr:CreateRepository", - "iam:CreateServiceLinkedRole" + "iam:CreateServiceLinkedRole", + "iam:PassRole" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_EKS_Cluster.json b/internal/service/cloudformation/schemas/AWS_EKS_Cluster.json index e73b8a5c3..4df55e55c 100644 --- a/internal/service/cloudformation/schemas/AWS_EKS_Cluster.json +++ b/internal/service/cloudformation/schemas/AWS_EKS_Cluster.json @@ -1,107 +1,177 @@ { + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true + }, "typeName": "AWS::EKS::Cluster", + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/Endpoint", + "/properties/CertificateAuthorityData", + "/properties/ClusterSecurityGroupId", + "/properties/EncryptionConfigKeyArn", + "/properties/OpenIdConnectIssuerUrl", + "/properties/KubernetesNetworkConfig/ServiceIpv6Cidr" + ], "description": "An object representing an Amazon EKS cluster.", + "createOnlyProperties": [ + "/properties/OutpostConfig", + "/properties/EncryptionConfig", + "/properties/KubernetesNetworkConfig", + "/properties/AccessConfig/BootstrapClusterCreatorAdminPermissions", + "/properties/Name", + "/properties/RoleArn", + "/properties/BootstrapSelfManagedAddons" + ], + "primaryIdentifier": [ + "/properties/Name" + ], + "required": [ + "RoleArn", + "ResourcesVpcConfig" + ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-eks.git", + "handlers": { + "read": { + "permissions": [ + "eks:DescribeCluster" + ] + }, + "create": { + "permissions": [ + "eks:CreateCluster", + "eks:DescribeCluster", + "eks:TagResource", + "iam:PassRole", + "iam:GetRole", + "iam:ListAttachedRolePolicies", + "iam:CreateServiceLinkedRole", + "iam:CreateInstanceProfile", + "iam:TagInstanceProfile", + "iam:AddRoleToInstanceProfile", + "iam:GetInstanceProfile", + "iam:DeleteInstanceProfile", + "iam:RemoveRoleFromInstanceProfile", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "kms:DescribeKey", + "kms:CreateGrant" + ] + }, + "update": { + "permissions": [ + "iam:PassRole", + "eks:UpdateClusterConfig", + "eks:UpdateClusterVersion", + "eks:DescribeCluster", + "eks:DescribeUpdate", + "eks:TagResource", + "eks:UntagResource" + ], + "timeoutInMinutes": 180 + }, + "list": { + "permissions": [ + "eks:ListClusters" + ] + }, + "delete": { + "permissions": [ + "eks:DeleteCluster", + "eks:DescribeCluster" + ] + } + }, + "writeOnlyProperties": [ + "/properties/AccessConfig/BootstrapClusterCreatorAdminPermissions", + "/properties/BootstrapSelfManagedAddons" + ], + "additionalProperties": false, "definitions": { - "Tag": { - "description": "A key-value pair to associate with a resource.", + "Logging": { + "description": "Enable exporting the Kubernetes control plane logs for your cluster to CloudWatch Logs based on log types. By default, cluster control plane logs aren't exported to CloudWatch Logs.", + "additionalProperties": false, "type": "object", "properties": { - "Key": { - "type": "string", - "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "minLength": 1, - "maxLength": 128 - }, - "Value": { - "type": "string", - "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "minLength": 0, - "maxLength": 256 + "ClusterLogging": { + "description": "The cluster control plane logging configuration for your cluster. ", + "$ref": "#/definitions/ClusterLogging" } - }, - "required": [ - "Key", - "Value" - ], - "additionalProperties": false + } }, - "Provider": { - "type": "object", + "RemoteNodeNetworks": { + "description": "Network configuration of nodes run on-premises with EKS Hybrid Nodes.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/RemoteNodeNetwork" + } + }, + "EnabledTypes": { + "description": "Enable control plane logs for your cluster, all log types will be disabled if the array is empty", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/LoggingTypeConfig" + } + }, + "ControlPlanePlacement": { + "description": "Specify the placement group of the control plane machines for your cluster.", "additionalProperties": false, + "type": "object", "properties": { - "KeyArn": { - "description": "Amazon Resource Name (ARN) or alias of the KMS key. The KMS key must be symmetric, created in the same region as the cluster, and if the KMS key was created in a different account, the user must have access to the KMS key.", + "GroupName": { + "description": "Specify the placement group name of the control place machines for your cluster.", "type": "string" } } }, - "EncryptionConfig": { - "description": "The encryption configuration for the cluster", + "AccessConfig": { + "description": "An object representing the Access Config to use for the cluster.", + "additionalProperties": false, "type": "object", "properties": { - "Provider": { - "description": "The encryption provider for the cluster.", - "$ref": "#/definitions/Provider" + "AuthenticationMode": { + "description": "Specify the authentication mode that should be used to create your cluster.", + "type": "string", + "enum": [ + "CONFIG_MAP", + "API_AND_CONFIG_MAP", + "API" + ] }, - "Resources": { - "description": "Specifies the resources to be encrypted. The only supported value is \"secrets\".", - "type": "array", - "insertionOrder": false, - "items": { - "type": "string" - } + "BootstrapClusterCreatorAdminPermissions": { + "description": "Set this value to false to avoid creating a default cluster admin Access Entry using the IAM principal used to create the cluster.", + "type": "boolean" } - }, - "additionalProperties": false + } }, - "ResourcesVpcConfig": { - "description": "An object representing the VPC configuration to use for an Amazon EKS cluster.", - "type": "object", + "EncryptionConfig": { + "description": "The encryption configuration for the cluster", "additionalProperties": false, + "type": "object", "properties": { - "EndpointPrivateAccess": { - "description": "Set this value to true to enable private access for your cluster's Kubernetes API server endpoint. If you enable private access, Kubernetes API requests from within your cluster's VPC use the private VPC endpoint. The default value for this parameter is false, which disables private access for your Kubernetes API server. If you disable private access and you have nodes or AWS Fargate pods in the cluster, then ensure that publicAccessCidrs includes the necessary CIDR blocks for communication with the nodes or Fargate pods.", - "type": "boolean" - }, - "EndpointPublicAccess": { - "description": "Set this value to false to disable public access to your cluster's Kubernetes API server endpoint. If you disable public access, your cluster's Kubernetes API server can only receive requests from within the cluster VPC. The default value for this parameter is true, which enables public access for your Kubernetes API server.", - "type": "boolean" - }, - "PublicAccessCidrs": { - "description": "The CIDR blocks that are allowed access to your cluster's public Kubernetes API server endpoint. Communication to the endpoint from addresses outside of the CIDR blocks that you specify is denied. The default value is 0.0.0.0/0. If you've disabled private endpoint access and you have nodes or AWS Fargate pods in the cluster, then ensure that you specify the necessary CIDR blocks.", - "type": "array", + "Resources": { + "description": "Specifies the resources to be encrypted. The only supported value is \"secrets\".", "insertionOrder": false, - "items": { - "type": "string", - "minItems": 1 - } - }, - "SecurityGroupIds": { - "description": "Specify one or more security groups for the cross-account elastic network interfaces that Amazon EKS creates to use to allow communication between your worker nodes and the Kubernetes control plane. If you don't specify a security group, the default security group for your VPC is used.", "type": "array", - "insertionOrder": false, "items": { - "type": "string", - "minItems": 1 + "type": "string" } }, - "SubnetIds": { - "description": "Specify subnets for your Amazon EKS nodes. Amazon EKS creates cross-account elastic network interfaces in these subnets to allow communication between your nodes and the Kubernetes control plane.", - "type": "array", - "insertionOrder": false, - "items": { - "type": "string", - "minItems": 1 - } + "Provider": { + "description": "The encryption provider for the cluster.", + "$ref": "#/definitions/Provider" } - }, - "required": [ - "SubnetIds" - ] + } }, "LoggingTypeConfig": { "description": "Enabled Logging Type", + "additionalProperties": false, "type": "object", "properties": { "Type": { @@ -115,38 +185,18 @@ "scheduler" ] } - }, - "additionalProperties": false - }, - "EnabledTypes": { - "description": "Enable control plane logs for your cluster, all log types will be disabled if the array is empty", - "type": "array", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/LoggingTypeConfig" } }, "ClusterLogging": { "description": "The cluster control plane logging configuration for your cluster. ", - "type": "object", "additionalProperties": false, + "type": "object", "properties": { "EnabledTypes": { "$ref": "#/definitions/EnabledTypes" } } }, - "Logging": { - "description": "Enable exporting the Kubernetes control plane logs for your cluster to CloudWatch Logs based on log types. By default, cluster control plane logs aren't exported to CloudWatch Logs.", - "type": "object", - "additionalProperties": false, - "properties": { - "ClusterLogging": { - "description": "The cluster control plane logging configuration for your cluster. ", - "$ref": "#/definitions/ClusterLogging" - } - } - }, "KubernetesNetworkConfig": { "description": "The Kubernetes network configuration for the cluster.", "additionalProperties": false, @@ -170,235 +220,257 @@ } } }, - "ControlPlanePlacement": { - "description": "Specify the placement group of the control plane machines for your cluster.", - "type": "object", + "Provider": { "additionalProperties": false, + "type": "object", "properties": { - "GroupName": { - "description": "Specify the placement group name of the control place machines for your cluster.", + "KeyArn": { + "description": "Amazon Resource Name (ARN) or alias of the KMS key. The KMS key must be symmetric, created in the same region as the cluster, and if the KMS key was created in a different account, the user must have access to the KMS key.", "type": "string" } } }, - "OutpostConfig": { - "description": "An object representing the Outpost configuration to use for AWS EKS outpost cluster.", + "RemoteNodeNetwork": { + "description": "Network configuration of nodes run on-premises with EKS Hybrid Nodes.", "additionalProperties": false, "type": "object", "properties": { - "OutpostArns": { - "description": "Specify one or more Arn(s) of Outpost(s) on which you would like to create your cluster.", - "type": "array", + "Cidrs": { + "description": "Specifies the list of remote node CIDRs.", "insertionOrder": false, + "type": "array", "items": { - "type": "string", - "minItems": 1 + "minItems": 1, + "type": "string" } - }, - "ControlPlaneInstanceType": { - "description": "Specify the Instance type of the machines that should be used to create your cluster.", - "type": "string" - }, - "ControlPlanePlacement": { - "description": "Specify the placement group of the control plane machines for your cluster.", - "$ref": "#/definitions/ControlPlanePlacement" } }, "required": [ - "OutpostArns", - "ControlPlaneInstanceType" + "Cidrs" ] }, - "AccessConfig": { - "description": "An object representing the Access Config to use for the cluster.", + "UpgradePolicy": { + "description": "An object representing the Upgrade Policy to use for the cluster.", "additionalProperties": false, "type": "object", "properties": { - "BootstrapClusterCreatorAdminPermissions": { - "description": "Set this value to false to avoid creating a default cluster admin Access Entry using the IAM principal used to create the cluster.", - "type": "boolean" - }, - "AuthenticationMode": { - "description": "Specify the authentication mode that should be used to create your cluster.", + "SupportType": { + "description": "Specify the support type for your cluster.", "type": "string", "enum": [ - "CONFIG_MAP", - "API_AND_CONFIG_MAP", - "API" + "STANDARD", + "EXTENDED" ] } } - } - }, - "properties": { - "EncryptionConfig": { - "type": "array", + }, + "RemotePodNetworks": { + "description": "Network configuration of pods run on-premises with EKS Hybrid Nodes.", "insertionOrder": false, + "type": "array", "items": { - "$ref": "#/definitions/EncryptionConfig", - "maxItems": 1 + "$ref": "#/definitions/RemotePodNetwork" } }, - "KubernetesNetworkConfig": { - "$ref": "#/definitions/KubernetesNetworkConfig" + "Tag": { + "description": "A key-value pair to associate with a resource.", + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "minLength": 0, + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "type": "string", + "maxLength": 256 + }, + "Key": { + "minLength": 1, + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "type": "string", + "maxLength": 128 + } + }, + "required": [ + "Key", + "Value" + ] }, + "OutpostConfig": { + "description": "An object representing the Outpost configuration to use for AWS EKS outpost cluster.", + "additionalProperties": false, + "type": "object", + "properties": { + "OutpostArns": { + "description": "Specify one or more Arn(s) of Outpost(s) on which you would like to create your cluster.", + "insertionOrder": false, + "type": "array", + "items": { + "minItems": 1, + "type": "string" + } + }, + "ControlPlanePlacement": { + "description": "Specify the placement group of the control plane machines for your cluster.", + "$ref": "#/definitions/ControlPlanePlacement" + }, + "ControlPlaneInstanceType": { + "description": "Specify the Instance type of the machines that should be used to create your cluster.", + "type": "string" + } + }, + "required": [ + "OutpostArns", + "ControlPlaneInstanceType" + ] + }, + "ResourcesVpcConfig": { + "description": "An object representing the VPC configuration to use for an Amazon EKS cluster.", + "additionalProperties": false, + "type": "object", + "properties": { + "EndpointPublicAccess": { + "description": "Set this value to false to disable public access to your cluster's Kubernetes API server endpoint. If you disable public access, your cluster's Kubernetes API server can only receive requests from within the cluster VPC. The default value for this parameter is true, which enables public access for your Kubernetes API server.", + "type": "boolean" + }, + "PublicAccessCidrs": { + "description": "The CIDR blocks that are allowed access to your cluster's public Kubernetes API server endpoint. Communication to the endpoint from addresses outside of the CIDR blocks that you specify is denied. The default value is 0.0.0.0/0. If you've disabled private endpoint access and you have nodes or AWS Fargate pods in the cluster, then ensure that you specify the necessary CIDR blocks.", + "insertionOrder": false, + "type": "array", + "items": { + "minItems": 1, + "type": "string" + } + }, + "EndpointPrivateAccess": { + "description": "Set this value to true to enable private access for your cluster's Kubernetes API server endpoint. If you enable private access, Kubernetes API requests from within your cluster's VPC use the private VPC endpoint. The default value for this parameter is false, which disables private access for your Kubernetes API server. If you disable private access and you have nodes or AWS Fargate pods in the cluster, then ensure that publicAccessCidrs includes the necessary CIDR blocks for communication with the nodes or Fargate pods.", + "type": "boolean" + }, + "SecurityGroupIds": { + "description": "Specify one or more security groups for the cross-account elastic network interfaces that Amazon EKS creates to use to allow communication between your worker nodes and the Kubernetes control plane. If you don't specify a security group, the default security group for your VPC is used.", + "insertionOrder": false, + "type": "array", + "items": { + "minItems": 1, + "type": "string" + } + }, + "SubnetIds": { + "description": "Specify subnets for your Amazon EKS nodes. Amazon EKS creates cross-account elastic network interfaces in these subnets to allow communication between your nodes and the Kubernetes control plane.", + "insertionOrder": false, + "type": "array", + "items": { + "minItems": 1, + "type": "string" + } + } + }, + "required": [ + "SubnetIds" + ] + }, + "RemotePodNetwork": { + "description": "Network configuration of pods run on-premises with EKS Hybrid Nodes.", + "additionalProperties": false, + "type": "object", + "properties": { + "Cidrs": { + "description": "Specifies the list of remote pod CIDRs.", + "insertionOrder": false, + "type": "array", + "items": { + "minItems": 1, + "type": "string" + } + } + }, + "required": [ + "Cidrs" + ] + } + }, + "properties": { "Logging": { "$ref": "#/definitions/Logging" }, - "Name": { - "description": "The unique name to give to your cluster.", - "type": "string", - "pattern": "^[0-9A-Za-z][A-Za-z0-9\\-_]*", - "minLength": 1, - "maxLength": 100 + "BootstrapSelfManagedAddons": { + "description": "Set this value to false to avoid creating the default networking addons when the cluster is created.", + "type": "boolean" }, - "Id": { - "description": "The unique ID given to your cluster.", + "EncryptionConfigKeyArn": { + "description": "Amazon Resource Name (ARN) or alias of the customer master key (CMK).", "type": "string" }, - "ResourcesVpcConfig": { - "$ref": "#/definitions/ResourcesVpcConfig" - }, - "OutpostConfig": { - "$ref": "#/definitions/OutpostConfig" - }, "AccessConfig": { "$ref": "#/definitions/AccessConfig" }, - "RoleArn": { - "description": "The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf.", + "CertificateAuthorityData": { + "description": "The certificate-authority-data for your cluster.", "type": "string" }, - "Version": { - "description": "The desired Kubernetes version for your cluster. If you don't specify a value here, the latest version available in Amazon EKS is used.", - "type": "string", - "pattern": "1\\.\\d\\d" - }, - "Tags": { - "description": "An array of key-value pairs to apply to this resource.", - "type": "array", - "uniqueItems": true, + "EncryptionConfig": { "insertionOrder": false, + "type": "array", "items": { - "$ref": "#/definitions/Tag" + "maxItems": 1, + "$ref": "#/definitions/EncryptionConfig" } }, - "Arn": { - "description": "The ARN of the cluster, such as arn:aws:eks:us-west-2:666666666666:cluster/prod.", + "KubernetesNetworkConfig": { + "$ref": "#/definitions/KubernetesNetworkConfig" + }, + "RoleArn": { + "description": "The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf.", "type": "string" }, + "Name": { + "minLength": 1, + "pattern": "^[0-9A-Za-z][A-Za-z0-9\\-_]*", + "description": "The unique name to give to your cluster.", + "type": "string", + "maxLength": 100 + }, + "UpgradePolicy": { + "$ref": "#/definitions/UpgradePolicy" + }, "Endpoint": { "description": "The endpoint for your Kubernetes API server, such as https://5E1D0CEXAMPLEA591B746AFC5AB30262.yl4.us-west-2.eks.amazonaws.com.", "type": "string" }, - "CertificateAuthorityData": { - "description": "The certificate-authority-data for your cluster.", + "Version": { + "pattern": "1\\.\\d\\d", + "description": "The desired Kubernetes version for your cluster. If you don't specify a value here, the latest version available in Amazon EKS is used.", "type": "string" }, "ClusterSecurityGroupId": { "description": "The cluster security group that was created by Amazon EKS for the cluster. Managed node groups use this security group for control plane to data plane communication.", "type": "string" }, - "EncryptionConfigKeyArn": { - "description": "Amazon Resource Name (ARN) or alias of the customer master key (CMK).", - "type": "string" - }, - "OpenIdConnectIssuerUrl": { - "description": "The issuer URL for the cluster's OIDC identity provider, such as https://oidc.eks.us-west-2.amazonaws.com/id/EXAMPLED539D4633E53DE1B716D3041E. If you need to remove https:// from this output value, you can include the following code in your template.", + "Id": { + "description": "The unique ID given to your cluster.", "type": "string" }, - "BootstrapSelfManagedAddons": { - "description": "Set this value to false to avoid creating the default networking addons when the cluster is created.", - "type": "boolean" - } - }, - "tagging": { - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" - }, - "additionalProperties": false, - "required": [ - "RoleArn", - "ResourcesVpcConfig" - ], - "primaryIdentifier": [ - "/properties/Name" - ], - "createOnlyProperties": [ - "/properties/OutpostConfig", - "/properties/EncryptionConfig", - "/properties/KubernetesNetworkConfig", - "/properties/AccessConfig/BootstrapClusterCreatorAdminPermissions", - "/properties/Name", - "/properties/RoleArn", - "/properties/BootstrapSelfManagedAddons" - ], - "readOnlyProperties": [ - "/properties/Id", - "/properties/Arn", - "/properties/Endpoint", - "/properties/CertificateAuthorityData", - "/properties/ClusterSecurityGroupId", - "/properties/EncryptionConfigKeyArn", - "/properties/OpenIdConnectIssuerUrl", - "/properties/KubernetesNetworkConfig/ServiceIpv6Cidr" - ], - "writeOnlyProperties": [ - "/properties/AccessConfig/BootstrapClusterCreatorAdminPermissions", - "/properties/BootstrapSelfManagedAddons" - ], - "handlers": { - "create": { - "permissions": [ - "eks:CreateCluster", - "eks:DescribeCluster", - "eks:TagResource", - "iam:PassRole", - "iam:GetRole", - "iam:ListAttachedRolePolicies", - "iam:CreateServiceLinkedRole", - "iam:CreateInstanceProfile", - "iam:TagInstanceProfile", - "iam:AddRoleToInstanceProfile", - "iam:GetInstanceProfile", - "iam:DeleteInstanceProfile", - "iam:RemoveRoleFromInstanceProfile", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "kms:DescribeKey", - "kms:CreateGrant" - ] + "OutpostConfig": { + "$ref": "#/definitions/OutpostConfig" }, - "read": { - "permissions": [ - "eks:DescribeCluster" - ] + "Arn": { + "description": "The ARN of the cluster, such as arn:aws:eks:us-west-2:666666666666:cluster/prod.", + "type": "string" }, - "update": { - "permissions": [ - "iam:PassRole", - "eks:UpdateClusterConfig", - "eks:UpdateClusterVersion", - "eks:DescribeCluster", - "eks:DescribeUpdate", - "eks:TagResource", - "eks:UntagResource" - ], - "timeoutInMinutes": 180 + "ResourcesVpcConfig": { + "$ref": "#/definitions/ResourcesVpcConfig" }, - "delete": { - "permissions": [ - "eks:DeleteCluster", - "eks:DescribeCluster" - ] + "Tags": { + "uniqueItems": true, + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + } }, - "list": { - "permissions": [ - "eks:ListClusters" - ] + "OpenIdConnectIssuerUrl": { + "description": "The issuer URL for the cluster's OIDC identity provider, such as https://oidc.eks.us-west-2.amazonaws.com/id/EXAMPLED539D4633E53DE1B716D3041E. If you need to remove https:// from this output value, you can include the following code in your template.", + "type": "string" } } } diff --git a/internal/service/cloudformation/schemas/AWS_EKS_Nodegroup.json b/internal/service/cloudformation/schemas/AWS_EKS_Nodegroup.json index 1547a65a9..6d97b61fd 100644 --- a/internal/service/cloudformation/schemas/AWS_EKS_Nodegroup.json +++ b/internal/service/cloudformation/schemas/AWS_EKS_Nodegroup.json @@ -215,7 +215,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "eks:TagResource", + "eks:UntagResource" + ] }, "required": [ "ClusterName", diff --git a/internal/service/cloudformation/schemas/AWS_EntityResolution_IdMappingWorkflow.json b/internal/service/cloudformation/schemas/AWS_EntityResolution_IdMappingWorkflow.json index 8cd929f6b..06ef2632c 100644 --- a/internal/service/cloudformation/schemas/AWS_EntityResolution_IdMappingWorkflow.json +++ b/internal/service/cloudformation/schemas/AWS_EntityResolution_IdMappingWorkflow.json @@ -177,7 +177,7 @@ "ProviderServiceArn": { "type": "string", "description": "Arn of the Provider Service being used.", - "pattern": "^arn:(aws|aws-us-gov|aws-cn):entityresolution:([A-Za-z0-9]+(-[A-Za-z0-9]+)+)::providerservice/[A-Za-z0-9]+/[A-Za-z0-9]+$" + "pattern": "^arn:(aws|aws-us-gov|aws-cn):(entityresolution):([a-z]{2}-[a-z]{1,10}-[0-9])::providerservice/([a-zA-Z0-9_-]{1,255})/([a-zA-Z0-9_-]{1,255})$" }, "ProviderConfiguration": { "type": "object", diff --git a/internal/service/cloudformation/schemas/AWS_FMS_Policy.json b/internal/service/cloudformation/schemas/AWS_FMS_Policy.json index db59c1c2b..eb2560cba 100644 --- a/internal/service/cloudformation/schemas/AWS_FMS_Policy.json +++ b/internal/service/cloudformation/schemas/AWS_FMS_Policy.json @@ -259,7 +259,7 @@ "description": "Firewall managed service data.", "type": "string", "minLength": 1, - "maxLength": 8192 + "maxLength": 30000 }, "PolicyType": { "description": "Firewall policy type.", diff --git a/internal/service/cloudformation/schemas/AWS_GlobalAccelerator_CrossAccountAttachment.json b/internal/service/cloudformation/schemas/AWS_GlobalAccelerator_CrossAccountAttachment.json index 4592e4f12..e842a652a 100644 --- a/internal/service/cloudformation/schemas/AWS_GlobalAccelerator_CrossAccountAttachment.json +++ b/internal/service/cloudformation/schemas/AWS_GlobalAccelerator_CrossAccountAttachment.json @@ -33,13 +33,13 @@ "EndpointId": { "type": "string" }, + "Cidr": { + "type": "string" + }, "Region": { "type": "string" } }, - "required": [ - "EndpointId" - ], "additionalProperties": false } }, diff --git a/internal/service/cloudformation/schemas/AWS_Lightsail_Alarm.json b/internal/service/cloudformation/schemas/AWS_Lightsail_Alarm.json index 9b4d4f3c5..ded3b858f 100644 --- a/internal/service/cloudformation/schemas/AWS_Lightsail_Alarm.json +++ b/internal/service/cloudformation/schemas/AWS_Lightsail_Alarm.json @@ -9,7 +9,7 @@ "pattern": "\\w[\\w\\-]*\\w" }, "MonitoredResourceName": { - "description": "The validation status of the SSL/TLS certificate.", + "description": "The name of the Lightsail resource that the alarm monitors.", "type": "string" }, "MetricName": { diff --git a/internal/service/cloudformation/schemas/AWS_Lightsail_Certificate.json b/internal/service/cloudformation/schemas/AWS_Lightsail_Certificate.json index 1673956d0..3b7fa6ffc 100644 --- a/internal/service/cloudformation/schemas/AWS_Lightsail_Certificate.json +++ b/internal/service/cloudformation/schemas/AWS_Lightsail_Certificate.json @@ -1,6 +1,6 @@ { "typeName": "AWS::Lightsail::Certificate", - "description": "An example resource schema demonstrating some basic constructs and validation rules.", + "description": "Resource Type definition for AWS::Lightsail::Certificate.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "definitions": { "Tag": { diff --git a/internal/service/cloudformation/schemas/AWS_MediaConnect_FlowOutput.json b/internal/service/cloudformation/schemas/AWS_MediaConnect_FlowOutput.json index 8720d8173..11a3edebb 100644 --- a/internal/service/cloudformation/schemas/AWS_MediaConnect_FlowOutput.json +++ b/internal/service/cloudformation/schemas/AWS_MediaConnect_FlowOutput.json @@ -230,6 +230,14 @@ "items": { "$ref": "#/definitions/MediaStreamOutputConfiguration" } + }, + "OutputStatus": { + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ], + "description": "An indication of whether the output should transmit data or not." } }, "additionalProperties": false, diff --git a/internal/service/cloudformation/schemas/AWS_MediaPackageV2_Channel.json b/internal/service/cloudformation/schemas/AWS_MediaPackageV2_Channel.json index 3ba9ed82d..0d4bc24ee 100644 --- a/internal/service/cloudformation/schemas/AWS_MediaPackageV2_Channel.json +++ b/internal/service/cloudformation/schemas/AWS_MediaPackageV2_Channel.json @@ -17,6 +17,13 @@ }, "additionalProperties": false }, + "InputType": { + "type": "string", + "enum": [ + "HLS", + "CMAF" + ] + }, "Tag": { "type": "object", "properties": { @@ -65,6 +72,9 @@ }, "description": "

The list of ingest endpoints.

" }, + "InputType": { + "$ref": "#/definitions/InputType" + }, "ModifiedAt": { "type": "string", "description": "

The date and time the channel was modified.

", @@ -93,7 +103,8 @@ ], "createOnlyProperties": [ "/properties/ChannelGroupName", - "/properties/ChannelName" + "/properties/ChannelName", + "/properties/InputType" ], "primaryIdentifier": [ "/properties/Arn" diff --git a/internal/service/cloudformation/schemas/AWS_MediaPackageV2_OriginEndpoint.json b/internal/service/cloudformation/schemas/AWS_MediaPackageV2_OriginEndpoint.json index 14b7eba8e..860078f66 100644 --- a/internal/service/cloudformation/schemas/AWS_MediaPackageV2_OriginEndpoint.json +++ b/internal/service/cloudformation/schemas/AWS_MediaPackageV2_OriginEndpoint.json @@ -146,6 +146,15 @@ }, "additionalProperties": false }, + "EndpointErrorCondition": { + "type": "string", + "enum": [ + "STALE_MANIFEST", + "INCOMPLETE_MANIFEST", + "MISSING_DRM_KEY", + "SLATE_INPUT" + ] + }, "FilterConfiguration": { "type": "object", "description": "

Filter configuration includes settings for manifest filtering, start and end times, and time delay that apply to all of your egress requests for this manifest.

", @@ -175,6 +184,20 @@ }, "additionalProperties": false }, + "ForceEndpointErrorConfiguration": { + "type": "object", + "description": "

The failover settings for the endpoint.

", + "properties": { + "EndpointErrorConditions": { + "type": "array", + "items": { + "$ref": "#/definitions/EndpointErrorCondition" + }, + "description": "

The failover settings for the endpoint. The options are:

\n
    \n
  • \n

    \n STALE_MANIFEST - The manifest stalled and there a no new segments or parts.

    \n
  • \n
  • \n

    \n INCOMPLETE_MANIFEST - There is a gap in the manifest.

    \n
  • \n
  • \n

    \n MISSING_DRM_KEY - Key rotation is enabled but we're unable to fetch the key for the current key period.

    \n
  • \n
" + } + }, + "additionalProperties": false + }, "DashManifestConfiguration": { "type": "object", "description": "

Retrieve the DASH manifest configuration.

", @@ -532,6 +555,9 @@ "minLength": 0, "description": "

Enter any descriptive text that helps you to identify the origin endpoint.

" }, + "ForceEndpointErrorConfiguration": { + "$ref": "#/definitions/ForceEndpointErrorConfiguration" + }, "HlsManifests": { "type": "array", "items": { diff --git a/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json b/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json index 0429dcb3f..2c23f419c 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json @@ -213,7 +213,7 @@ "type": "string" }, "PubliclyAccessible": { - "description": "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP address from within the DB cluster's virtual private cloud (VPC). It resolves to the public IP address from outside of the DB cluster's VPC. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", + "description": "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", "type": "boolean" }, "ReplicationSourceIdentifier": { @@ -403,7 +403,7 @@ "properties": { "SecretArn": { "type": "string", - "description": "The Amazon Resource Name (ARN) of the secret." + "description": "The Amazon Resource Name (ARN) of the secret. This parameter is a return value that you can retrieve using the ``Fn::GetAtt`` intrinsic function. For more information, see [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#aws-resource-rds-dbcluster-return-values)." }, "KmsKeyId": { "type": "string", @@ -526,6 +526,7 @@ }, "delete": { "permissions": [ + "rds:AddTagsToResource", "rds:CreateDBClusterSnapshot", "rds:DeleteDBCluster", "rds:DeleteDBInstance", diff --git a/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json b/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json index 475734c24..4660d1854 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json @@ -74,7 +74,7 @@ "description": "The value of a processor feature." } }, - "description": "The ``ProcessorFeature`` property type specifies the processor features of a DB instance class status." + "description": "The ``ProcessorFeature`` property type specifies the processor features of a DB instance class." }, "Tag": { "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", @@ -104,7 +104,7 @@ "properties": { "SecretArn": { "type": "string", - "description": "The Amazon Resource Name (ARN) of the secret." + "description": "The Amazon Resource Name (ARN) of the secret. This parameter is a return value that you can retrieve using the ``Fn::GetAtt`` intrinsic function. For more information, see [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#aws-resource-rds-dbinstance-return-values)." }, "KmsKeyId": { "type": "string", @@ -137,7 +137,7 @@ }, "AutomaticBackupReplicationRegion": { "type": "string", - "description": "The destination region for the backup replication of the DB instance. For more info, see [Replicating automated backups to another Region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReplicateBackups.html) in the *Amazon RDS User Guide*." + "description": "" }, "AutomaticBackupReplicationKmsKeyId": { "type": "string", @@ -222,7 +222,7 @@ }, "DBSnapshotIdentifier": { "type": "string", - "description": "The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.\n By specifying this property, you can create a DB instance from the specified DB snapshot. If the ``DBSnapshotIdentifier`` property is an empty string or the ``AWS::RDS::DBInstance`` declaration has no ``DBSnapshotIdentifier`` property, AWS CloudFormation creates a new database. If the property contains a value (other than an empty string), AWS CloudFormation creates a database from the specified snapshot. If a snapshot with the specified name doesn't exist, AWS CloudFormation can't create the database and it rolls back the stack.\n Some DB instance properties aren't valid when you restore from a snapshot, such as the ``MasterUsername`` and ``MasterUserPassword`` properties. For information about the properties that you can specify, see the ``RestoreDBInstanceFromDBSnapshot`` action in the *Amazon RDS API Reference*.\n After you restore a DB instance with a ``DBSnapshotIdentifier`` property, you must specify the same ``DBSnapshotIdentifier`` property for any future updates to the DB instance. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. However, if you don't specify the ``DBSnapshotIdentifier`` property, an empty DB instance is created, and the original DB instance is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified ``DBSnapshotIdentifier`` property, and the original DB instance is deleted.\n If you specify the ``DBSnapshotIdentifier`` property to restore a DB instance (as opposed to specifying it for DB instance updates), then don't specify the following properties:\n + ``CharacterSetName`` \n + ``DBClusterIdentifier`` \n + ``DBName`` \n + ``DeleteAutomatedBackups`` \n + ``EnablePerformanceInsights`` \n + ``KmsKeyId`` \n + ``MasterUsername`` \n + ``MasterUserPassword`` \n + ``PerformanceInsightsKMSKeyId`` \n + ``PerformanceInsightsRetentionPeriod`` \n + ``PromotionTier`` \n + ``SourceDBInstanceIdentifier`` \n + ``SourceRegion`` \n + ``StorageEncrypted`` (for an encrypted snapshot)\n + ``Timezone`` \n \n *Amazon Aurora* \n Not applicable. Snapshot restore is managed by the DB cluster." + "description": "The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.\n By specifying this property, you can create a DB instance from the specified DB snapshot. If the ``DBSnapshotIdentifier`` property is an empty string or the ``AWS::RDS::DBInstance`` declaration has no ``DBSnapshotIdentifier`` property, AWS CloudFormation creates a new database. If the property contains a value (other than an empty string), AWS CloudFormation creates a database from the specified snapshot. If a snapshot with the specified name doesn't exist, AWS CloudFormation can't create the database and it rolls back the stack.\n Some DB instance properties aren't valid when you restore from a snapshot, such as the ``MasterUsername`` and ``MasterUserPassword`` properties. For information about the properties that you can specify, see the ``RestoreDBInstanceFromDBSnapshot`` action in the *Amazon RDS API Reference*.\n After you restore a DB instance with a ``DBSnapshotIdentifier`` property, you must specify the same ``DBSnapshotIdentifier`` property for any future updates to the DB instance. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. However, if you don't specify the ``DBSnapshotIdentifier`` property, an empty DB instance is created, and the original DB instance is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified ``DBSnapshotIdentifier`` property, and the original DB instance is deleted.\n If you specify the ``DBSnapshotIdentifier`` property to restore a DB instance (as opposed to specifying it for DB instance updates), then don't specify the following properties:\n + ``CharacterSetName`` \n + ``DBClusterIdentifier`` \n + ``DBName`` \n + ``DeleteAutomatedBackups`` \n + ``KmsKeyId`` \n + ``MasterUsername`` \n + ``MasterUserPassword`` \n + ``PerformanceInsightsKMSKeyId`` \n + ``PerformanceInsightsRetentionPeriod`` \n + ``PromotionTier`` \n + ``SourceDBInstanceIdentifier`` \n + ``SourceRegion`` \n + ``StorageEncrypted`` (for an encrypted snapshot)\n + ``Timezone`` \n \n *Amazon Aurora* \n Not applicable. Snapshot restore is managed by the DB cluster." }, "DBSubnetGroupName": { "type": "string", @@ -653,6 +653,7 @@ }, "delete": { "permissions": [ + "rds:AddTagsToResource", "rds:CreateDBSnapshot", "rds:DeleteDBInstance", "rds:DescribeDBInstances" diff --git a/internal/service/cloudformation/schemas/AWS_S3Outposts_Bucket.json b/internal/service/cloudformation/schemas/AWS_S3Outposts_Bucket.json index 1b7f230c7..94976fdc6 100644 --- a/internal/service/cloudformation/schemas/AWS_S3Outposts_Bucket.json +++ b/internal/service/cloudformation/schemas/AWS_S3Outposts_Bucket.json @@ -245,7 +245,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "s3-outposts:DeleteBucketTagging", + "s3-outposts:PutBucketTagging", + "s3-outposts:GetBucketTagging" + ] }, "additionalProperties": false, "createOnlyProperties": [ diff --git a/internal/service/cloudformation/schemas/AWS_Shield_ProtectionGroup.json b/internal/service/cloudformation/schemas/AWS_Shield_ProtectionGroup.json index 0d775521d..2d7ef15fa 100644 --- a/internal/service/cloudformation/schemas/AWS_Shield_ProtectionGroup.json +++ b/internal/service/cloudformation/schemas/AWS_Shield_ProtectionGroup.json @@ -15,7 +15,12 @@ "tagging": { "taggable": true, "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": false + "cloudFormationSystemTags": false, + "permissions": [ + "shield:ListTagsForResource", + "shield:UntagResource", + "shield:TagResource" + ] }, "additionalProperties": false, "required": [ diff --git a/internal/service/cloudformation/schemas/AWS_WorkSpacesWeb_Portal.json b/internal/service/cloudformation/schemas/AWS_WorkSpacesWeb_Portal.json index 5cffe5201..11eaed3d5 100644 --- a/internal/service/cloudformation/schemas/AWS_WorkSpacesWeb_Portal.json +++ b/internal/service/cloudformation/schemas/AWS_WorkSpacesWeb_Portal.json @@ -216,6 +216,7 @@ "kms:CreateGrant", "kms:GenerateDataKey", "kms:Decrypt", + "kms:DescribeKey", "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", @@ -233,7 +234,8 @@ "workspaces-web:GetPortal", "workspaces-web:GetPortalServiceProviderMetadata", "workspaces-web:ListTagsForResource", - "kms:Decrypt" + "kms:Decrypt", + "kms:DescribeKey" ] }, "update": { @@ -260,6 +262,7 @@ "kms:Encrypt", "kms:GenerateDataKey", "kms:Decrypt", + "kms:DescribeKey", "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", @@ -286,13 +289,15 @@ "workspaces-web:DisassociateUserAccessLoggingSettings", "workspaces-web:DisassociateUserSettings", "kms:Decrypt", + "kms:DescribeKey", "sso:DeleteManagedApplicationInstance" ] }, "list": { "permissions": [ "workspaces-web:ListPortals", - "kms:Decrypt" + "kms:Decrypt", + "kms:DescribeKey" ] } }, diff --git a/internal/service/cloudformation/schemas/AWS_WorkSpacesWeb_UserSettings.json b/internal/service/cloudformation/schemas/AWS_WorkSpacesWeb_UserSettings.json index 9d9e352cb..e9860e5a8 100644 --- a/internal/service/cloudformation/schemas/AWS_WorkSpacesWeb_UserSettings.json +++ b/internal/service/cloudformation/schemas/AWS_WorkSpacesWeb_UserSettings.json @@ -161,6 +161,9 @@ "maxLength": 2048, "minLength": 20, "pattern": "^arn:[\\w+=\\/,.@-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:[a-zA-Z]+(\\/[a-fA-F0-9\\-]{36})+$" + }, + "DeepLinkAllowed": { + "$ref": "#/definitions/EnabledType" } }, "required": [ diff --git a/internal/service/cloudformation/schemas/AWS_XRay_Group.json b/internal/service/cloudformation/schemas/AWS_XRay_Group.json index 61e375b73..5401a3b80 100644 --- a/internal/service/cloudformation/schemas/AWS_XRay_Group.json +++ b/internal/service/cloudformation/schemas/AWS_XRay_Group.json @@ -71,6 +71,13 @@ "required": [ "GroupName" ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags" + }, "handlers": { "create": { "permissions": [ diff --git a/internal/service/cloudformation/schemas/AWS_XRay_SamplingRule.json b/internal/service/cloudformation/schemas/AWS_XRay_SamplingRule.json index fba3e7eb0..b7907006e 100644 --- a/internal/service/cloudformation/schemas/AWS_XRay_SamplingRule.json +++ b/internal/service/cloudformation/schemas/AWS_XRay_SamplingRule.json @@ -233,6 +233,13 @@ } } }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags" + }, "handlers": { "create": { "permissions": [ From d853d4aa58c176b3c244c2a521942b64472d02e4 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 25 Jul 2024 14:57:05 -0400 Subject: [PATCH 24/89] 07/24/2024 CloudFormation schemas in us-east-1; New schemas. --- internal/provider/all_schemas.hcl | 39 +- .../available_schemas.2024-07-24.hcl | 4380 +++++++++++++++++ internal/provider/plural_data_sources.go | 3 + internal/provider/resources.go | 6 + internal/provider/singular_data_sources.go | 6 + .../schemas/AWS_Bedrock_Flow.json | 909 ++++ .../schemas/AWS_Bedrock_FlowAlias.json | 172 + .../schemas/AWS_Bedrock_FlowVersion.json | 786 +++ .../schemas/AWS_Bedrock_Prompt.json | 346 ++ .../schemas/AWS_Bedrock_PromptVersion.json | 288 ++ .../schemas/AWS_Glue_Trigger.json | 215 + .../AWS_SecretsManager_ResourcePolicy.json | 78 + 12 files changed, 7227 insertions(+), 1 deletion(-) create mode 100644 internal/provider/generators/allschemas/available_schemas.2024-07-24.hcl create mode 100644 internal/service/cloudformation/schemas/AWS_Bedrock_Flow.json create mode 100644 internal/service/cloudformation/schemas/AWS_Bedrock_FlowAlias.json create mode 100644 internal/service/cloudformation/schemas/AWS_Bedrock_FlowVersion.json create mode 100644 internal/service/cloudformation/schemas/AWS_Bedrock_Prompt.json create mode 100644 internal/service/cloudformation/schemas/AWS_Bedrock_PromptVersion.json create mode 100644 internal/service/cloudformation/schemas/AWS_Glue_Trigger.json create mode 100644 internal/service/cloudformation/schemas/AWS_SecretsManager_ResourcePolicy.json diff --git a/internal/provider/all_schemas.hcl b/internal/provider/all_schemas.hcl index 26101212d..114820ef5 100644 --- a/internal/provider/all_schemas.hcl +++ b/internal/provider/all_schemas.hcl @@ -10,7 +10,7 @@ meta_schema { path = "../service/cloudformation/meta-schemas/provider.definition.schema.v1.json" } -# 1026 CloudFormation resource types schemas are available for use with the Cloud Control API. +# 1033 CloudFormation resource types schemas are available for use with the Cloud Control API. resource_schema "aws_acmpca_certificate" { cloudformation_type_name = "AWS::ACMPCA::Certificate" @@ -532,6 +532,26 @@ resource_schema "aws_bedrock_data_source" { suppress_plural_data_source_generation = true } +resource_schema "aws_bedrock_flow" { + cloudformation_type_name = "AWS::Bedrock::Flow" + + # Suppression Reason: DefinitionSubstitutions is of unsupported type: key-value map of + # https://github.com/hashicorp/terraform-provider-awscc/issues/xxxx + suppress_resource_generation = true + suppress_singular_data_source_generation = true + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_flow_alias" { + cloudformation_type_name = "AWS::Bedrock::FlowAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_flow_version" { + cloudformation_type_name = "AWS::Bedrock::FlowVersion" + suppress_plural_data_source_generation = true +} + resource_schema "aws_bedrock_guardrail" { cloudformation_type_name = "AWS::Bedrock::Guardrail" } @@ -545,6 +565,15 @@ resource_schema "aws_bedrock_knowledge_base" { cloudformation_type_name = "AWS::Bedrock::KnowledgeBase" } +resource_schema "aws_bedrock_prompt" { + cloudformation_type_name = "AWS::Bedrock::Prompt" +} + +resource_schema "aws_bedrock_prompt_version" { + cloudformation_type_name = "AWS::Bedrock::PromptVersion" + suppress_plural_data_source_generation = true +} + resource_schema "aws_billingconductor_billing_group" { cloudformation_type_name = "AWS::BillingConductor::BillingGroup" } @@ -2125,6 +2154,10 @@ resource_schema "aws_glue_schema_version_metadata" { suppress_plural_data_source_generation = true } +resource_schema "aws_glue_trigger" { + cloudformation_type_name = "AWS::Glue::Trigger" +} + resource_schema "aws_grafana_workspace" { cloudformation_type_name = "AWS::Grafana::Workspace" } @@ -4166,6 +4199,10 @@ resource_schema "aws_scheduler_schedule_group" { cloudformation_type_name = "AWS::Scheduler::ScheduleGroup" } +resource_schema "aws_secretsmanager_resource_policy" { + cloudformation_type_name = "AWS::SecretsManager::ResourcePolicy" +} + resource_schema "aws_secretsmanager_secret" { cloudformation_type_name = "AWS::SecretsManager::Secret" } diff --git a/internal/provider/generators/allschemas/available_schemas.2024-07-24.hcl b/internal/provider/generators/allschemas/available_schemas.2024-07-24.hcl new file mode 100644 index 000000000..bafe8ff79 --- /dev/null +++ b/internal/provider/generators/allschemas/available_schemas.2024-07-24.hcl @@ -0,0 +1,4380 @@ +# 1033 CloudFormation resource types schemas are available for use with the Cloud Control API. + +resource_schema "aws_acmpca_certificate" { + cloudformation_type_name = "AWS::ACMPCA::Certificate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_acmpca_certificate_authority" { + cloudformation_type_name = "AWS::ACMPCA::CertificateAuthority" +} + +resource_schema "aws_acmpca_certificate_authority_activation" { + cloudformation_type_name = "AWS::ACMPCA::CertificateAuthorityActivation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_acmpca_permission" { + cloudformation_type_name = "AWS::ACMPCA::Permission" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_aps_rule_groups_namespace" { + cloudformation_type_name = "AWS::APS::RuleGroupsNamespace" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_aps_scraper" { + cloudformation_type_name = "AWS::APS::Scraper" +} + +resource_schema "aws_aps_workspace" { + cloudformation_type_name = "AWS::APS::Workspace" +} + +resource_schema "aws_arczonalshift_zonal_autoshift_configuration" { + cloudformation_type_name = "AWS::ARCZonalShift::ZonalAutoshiftConfiguration" +} + +resource_schema "aws_accessanalyzer_analyzer" { + cloudformation_type_name = "AWS::AccessAnalyzer::Analyzer" +} + +resource_schema "aws_amplify_app" { + cloudformation_type_name = "AWS::Amplify::App" +} + +resource_schema "aws_amplify_branch" { + cloudformation_type_name = "AWS::Amplify::Branch" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplify_domain" { + cloudformation_type_name = "AWS::Amplify::Domain" +} + +resource_schema "aws_amplifyuibuilder_component" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Component" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplifyuibuilder_form" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Form" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplifyuibuilder_theme" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Theme" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_account" { + cloudformation_type_name = "AWS::ApiGateway::Account" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_api_key" { + cloudformation_type_name = "AWS::ApiGateway::ApiKey" +} + +resource_schema "aws_apigateway_authorizer" { + cloudformation_type_name = "AWS::ApiGateway::Authorizer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_base_path_mapping" { + cloudformation_type_name = "AWS::ApiGateway::BasePathMapping" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_client_certificate" { + cloudformation_type_name = "AWS::ApiGateway::ClientCertificate" +} + +resource_schema "aws_apigateway_deployment" { + cloudformation_type_name = "AWS::ApiGateway::Deployment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_documentation_part" { + cloudformation_type_name = "AWS::ApiGateway::DocumentationPart" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_documentation_version" { + cloudformation_type_name = "AWS::ApiGateway::DocumentationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_domain_name" { + cloudformation_type_name = "AWS::ApiGateway::DomainName" +} + +resource_schema "aws_apigateway_gateway_response" { + cloudformation_type_name = "AWS::ApiGateway::GatewayResponse" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_method" { + cloudformation_type_name = "AWS::ApiGateway::Method" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_model" { + cloudformation_type_name = "AWS::ApiGateway::Model" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_request_validator" { + cloudformation_type_name = "AWS::ApiGateway::RequestValidator" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_resource" { + cloudformation_type_name = "AWS::ApiGateway::Resource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_rest_api" { + cloudformation_type_name = "AWS::ApiGateway::RestApi" +} + +resource_schema "aws_apigateway_stage" { + cloudformation_type_name = "AWS::ApiGateway::Stage" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_usage_plan" { + cloudformation_type_name = "AWS::ApiGateway::UsagePlan" +} + +resource_schema "aws_apigateway_usage_plan_key" { + cloudformation_type_name = "AWS::ApiGateway::UsagePlanKey" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_vpc_link" { + cloudformation_type_name = "AWS::ApiGateway::VpcLink" +} + +resource_schema "aws_apigatewayv2_api" { + cloudformation_type_name = "AWS::ApiGatewayV2::Api" +} + +resource_schema "aws_apigatewayv2_api_mapping" { + cloudformation_type_name = "AWS::ApiGatewayV2::ApiMapping" +} + +resource_schema "aws_apigatewayv2_authorizer" { + cloudformation_type_name = "AWS::ApiGatewayV2::Authorizer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_deployment" { + cloudformation_type_name = "AWS::ApiGatewayV2::Deployment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_domain_name" { + cloudformation_type_name = "AWS::ApiGatewayV2::DomainName" +} + +resource_schema "aws_apigatewayv2_integration_response" { + cloudformation_type_name = "AWS::ApiGatewayV2::IntegrationResponse" +} + +resource_schema "aws_apigatewayv2_model" { + cloudformation_type_name = "AWS::ApiGatewayV2::Model" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_route" { + cloudformation_type_name = "AWS::ApiGatewayV2::Route" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_route_response" { + cloudformation_type_name = "AWS::ApiGatewayV2::RouteResponse" +} + +resource_schema "aws_apigatewayv2_vpc_link" { + cloudformation_type_name = "AWS::ApiGatewayV2::VpcLink" +} + +resource_schema "aws_appconfig_application" { + cloudformation_type_name = "AWS::AppConfig::Application" +} + +resource_schema "aws_appconfig_configuration_profile" { + cloudformation_type_name = "AWS::AppConfig::ConfigurationProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appconfig_environment" { + cloudformation_type_name = "AWS::AppConfig::Environment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appconfig_extension" { + cloudformation_type_name = "AWS::AppConfig::Extension" +} + +resource_schema "aws_appconfig_extension_association" { + cloudformation_type_name = "AWS::AppConfig::ExtensionAssociation" +} + +resource_schema "aws_appconfig_hosted_configuration_version" { + cloudformation_type_name = "AWS::AppConfig::HostedConfigurationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appflow_connector" { + cloudformation_type_name = "AWS::AppFlow::Connector" +} + +resource_schema "aws_appflow_connector_profile" { + cloudformation_type_name = "AWS::AppFlow::ConnectorProfile" +} + +resource_schema "aws_appflow_flow" { + cloudformation_type_name = "AWS::AppFlow::Flow" +} + +resource_schema "aws_appintegrations_application" { + cloudformation_type_name = "AWS::AppIntegrations::Application" +} + +resource_schema "aws_appintegrations_data_integration" { + cloudformation_type_name = "AWS::AppIntegrations::DataIntegration" +} + +resource_schema "aws_appintegrations_event_integration" { + cloudformation_type_name = "AWS::AppIntegrations::EventIntegration" +} + +resource_schema "aws_apprunner_auto_scaling_configuration" { + cloudformation_type_name = "AWS::AppRunner::AutoScalingConfiguration" +} + +resource_schema "aws_apprunner_observability_configuration" { + cloudformation_type_name = "AWS::AppRunner::ObservabilityConfiguration" +} + +resource_schema "aws_apprunner_service" { + cloudformation_type_name = "AWS::AppRunner::Service" +} + +resource_schema "aws_apprunner_vpc_connector" { + cloudformation_type_name = "AWS::AppRunner::VpcConnector" +} + +resource_schema "aws_apprunner_vpc_ingress_connection" { + cloudformation_type_name = "AWS::AppRunner::VpcIngressConnection" +} + +resource_schema "aws_appstream_app_block" { + cloudformation_type_name = "AWS::AppStream::AppBlock" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_app_block_builder" { + cloudformation_type_name = "AWS::AppStream::AppBlockBuilder" +} + +resource_schema "aws_appstream_application" { + cloudformation_type_name = "AWS::AppStream::Application" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_application_entitlement_association" { + cloudformation_type_name = "AWS::AppStream::ApplicationEntitlementAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_application_fleet_association" { + cloudformation_type_name = "AWS::AppStream::ApplicationFleetAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_directory_config" { + cloudformation_type_name = "AWS::AppStream::DirectoryConfig" +} + +resource_schema "aws_appstream_entitlement" { + cloudformation_type_name = "AWS::AppStream::Entitlement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_image_builder" { + cloudformation_type_name = "AWS::AppStream::ImageBuilder" +} + +resource_schema "aws_appsync_domain_name" { + cloudformation_type_name = "AWS::AppSync::DomainName" +} + +resource_schema "aws_appsync_domain_name_api_association" { + cloudformation_type_name = "AWS::AppSync::DomainNameApiAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_function_configuration" { + cloudformation_type_name = "AWS::AppSync::FunctionConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_resolver" { + cloudformation_type_name = "AWS::AppSync::Resolver" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_source_api_association" { + cloudformation_type_name = "AWS::AppSync::SourceApiAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apptest_test_case" { + cloudformation_type_name = "AWS::AppTest::TestCase" +} + +resource_schema "aws_applicationautoscaling_scalable_target" { + cloudformation_type_name = "AWS::ApplicationAutoScaling::ScalableTarget" +} + +resource_schema "aws_applicationautoscaling_scaling_policy" { + cloudformation_type_name = "AWS::ApplicationAutoScaling::ScalingPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_applicationinsights_application" { + cloudformation_type_name = "AWS::ApplicationInsights::Application" +} + +resource_schema "aws_applicationsignals_service_level_objective" { + cloudformation_type_name = "AWS::ApplicationSignals::ServiceLevelObjective" +} + +resource_schema "aws_athena_capacity_reservation" { + cloudformation_type_name = "AWS::Athena::CapacityReservation" +} + +resource_schema "aws_athena_data_catalog" { + cloudformation_type_name = "AWS::Athena::DataCatalog" +} + +resource_schema "aws_athena_named_query" { + cloudformation_type_name = "AWS::Athena::NamedQuery" +} + +resource_schema "aws_athena_prepared_statement" { + cloudformation_type_name = "AWS::Athena::PreparedStatement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_athena_work_group" { + cloudformation_type_name = "AWS::Athena::WorkGroup" +} + +resource_schema "aws_auditmanager_assessment" { + cloudformation_type_name = "AWS::AuditManager::Assessment" +} + +resource_schema "aws_autoscaling_auto_scaling_group" { + cloudformation_type_name = "AWS::AutoScaling::AutoScalingGroup" +} + +resource_schema "aws_autoscaling_launch_configuration" { + cloudformation_type_name = "AWS::AutoScaling::LaunchConfiguration" +} + +resource_schema "aws_autoscaling_lifecycle_hook" { + cloudformation_type_name = "AWS::AutoScaling::LifecycleHook" +} + +resource_schema "aws_autoscaling_scaling_policy" { + cloudformation_type_name = "AWS::AutoScaling::ScalingPolicy" +} + +resource_schema "aws_autoscaling_scheduled_action" { + cloudformation_type_name = "AWS::AutoScaling::ScheduledAction" +} + +resource_schema "aws_autoscaling_warm_pool" { + cloudformation_type_name = "AWS::AutoScaling::WarmPool" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_b2bi_capability" { + cloudformation_type_name = "AWS::B2BI::Capability" +} + +resource_schema "aws_b2bi_partnership" { + cloudformation_type_name = "AWS::B2BI::Partnership" +} + +resource_schema "aws_b2bi_profile" { + cloudformation_type_name = "AWS::B2BI::Profile" +} + +resource_schema "aws_b2bi_transformer" { + cloudformation_type_name = "AWS::B2BI::Transformer" +} + +resource_schema "aws_bcmdataexports_export" { + cloudformation_type_name = "AWS::BCMDataExports::Export" +} + +resource_schema "aws_backup_backup_plan" { + cloudformation_type_name = "AWS::Backup::BackupPlan" +} + +resource_schema "aws_backup_backup_selection" { + cloudformation_type_name = "AWS::Backup::BackupSelection" +} + +resource_schema "aws_backup_backup_vault" { + cloudformation_type_name = "AWS::Backup::BackupVault" +} + +resource_schema "aws_backup_framework" { + cloudformation_type_name = "AWS::Backup::Framework" +} + +resource_schema "aws_backup_report_plan" { + cloudformation_type_name = "AWS::Backup::ReportPlan" +} + +resource_schema "aws_backup_restore_testing_plan" { + cloudformation_type_name = "AWS::Backup::RestoreTestingPlan" +} + +resource_schema "aws_backup_restore_testing_selection" { + cloudformation_type_name = "AWS::Backup::RestoreTestingSelection" +} + +resource_schema "aws_backupgateway_hypervisor" { + cloudformation_type_name = "AWS::BackupGateway::Hypervisor" +} + +resource_schema "aws_batch_compute_environment" { + cloudformation_type_name = "AWS::Batch::ComputeEnvironment" +} + +resource_schema "aws_batch_job_queue" { + cloudformation_type_name = "AWS::Batch::JobQueue" +} + +resource_schema "aws_batch_scheduling_policy" { + cloudformation_type_name = "AWS::Batch::SchedulingPolicy" +} + +resource_schema "aws_bedrock_agent" { + cloudformation_type_name = "AWS::Bedrock::Agent" +} + +resource_schema "aws_bedrock_agent_alias" { + cloudformation_type_name = "AWS::Bedrock::AgentAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_data_source" { + cloudformation_type_name = "AWS::Bedrock::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_flow" { + cloudformation_type_name = "AWS::Bedrock::Flow" +} + +resource_schema "aws_bedrock_flow_alias" { + cloudformation_type_name = "AWS::Bedrock::FlowAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_flow_version" { + cloudformation_type_name = "AWS::Bedrock::FlowVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_guardrail" { + cloudformation_type_name = "AWS::Bedrock::Guardrail" +} + +resource_schema "aws_bedrock_guardrail_version" { + cloudformation_type_name = "AWS::Bedrock::GuardrailVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_knowledge_base" { + cloudformation_type_name = "AWS::Bedrock::KnowledgeBase" +} + +resource_schema "aws_bedrock_prompt" { + cloudformation_type_name = "AWS::Bedrock::Prompt" +} + +resource_schema "aws_bedrock_prompt_version" { + cloudformation_type_name = "AWS::Bedrock::PromptVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_billingconductor_billing_group" { + cloudformation_type_name = "AWS::BillingConductor::BillingGroup" +} + +resource_schema "aws_billingconductor_custom_line_item" { + cloudformation_type_name = "AWS::BillingConductor::CustomLineItem" +} + +resource_schema "aws_billingconductor_pricing_plan" { + cloudformation_type_name = "AWS::BillingConductor::PricingPlan" +} + +resource_schema "aws_billingconductor_pricing_rule" { + cloudformation_type_name = "AWS::BillingConductor::PricingRule" +} + +resource_schema "aws_budgets_budgets_action" { + cloudformation_type_name = "AWS::Budgets::BudgetsAction" +} + +resource_schema "aws_ce_anomaly_monitor" { + cloudformation_type_name = "AWS::CE::AnomalyMonitor" +} + +resource_schema "aws_ce_anomaly_subscription" { + cloudformation_type_name = "AWS::CE::AnomalySubscription" +} + +resource_schema "aws_ce_cost_category" { + cloudformation_type_name = "AWS::CE::CostCategory" +} + +resource_schema "aws_cur_report_definition" { + cloudformation_type_name = "AWS::CUR::ReportDefinition" +} + +resource_schema "aws_cassandra_keyspace" { + cloudformation_type_name = "AWS::Cassandra::Keyspace" +} + +resource_schema "aws_cassandra_table" { + cloudformation_type_name = "AWS::Cassandra::Table" +} + +resource_schema "aws_certificatemanager_account" { + cloudformation_type_name = "AWS::CertificateManager::Account" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_chatbot_microsoft_teams_channel_configuration" { + cloudformation_type_name = "AWS::Chatbot::MicrosoftTeamsChannelConfiguration" +} + +resource_schema "aws_chatbot_slack_channel_configuration" { + cloudformation_type_name = "AWS::Chatbot::SlackChannelConfiguration" +} + +resource_schema "aws_cleanrooms_analysis_template" { + cloudformation_type_name = "AWS::CleanRooms::AnalysisTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_collaboration" { + cloudformation_type_name = "AWS::CleanRooms::Collaboration" +} + +resource_schema "aws_cleanrooms_configured_table" { + cloudformation_type_name = "AWS::CleanRooms::ConfiguredTable" +} + +resource_schema "aws_cleanrooms_configured_table_association" { + cloudformation_type_name = "AWS::CleanRooms::ConfiguredTableAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_membership" { + cloudformation_type_name = "AWS::CleanRooms::Membership" +} + +resource_schema "aws_cleanrooms_privacy_budget_template" { + cloudformation_type_name = "AWS::CleanRooms::PrivacyBudgetTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanroomsml_training_dataset" { + cloudformation_type_name = "AWS::CleanRoomsML::TrainingDataset" +} + +resource_schema "aws_cloudformation_hook_default_version" { + cloudformation_type_name = "AWS::CloudFormation::HookDefaultVersion" +} + +resource_schema "aws_cloudformation_hook_type_config" { + cloudformation_type_name = "AWS::CloudFormation::HookTypeConfig" +} + +resource_schema "aws_cloudformation_hook_version" { + cloudformation_type_name = "AWS::CloudFormation::HookVersion" +} + +resource_schema "aws_cloudformation_module_default_version" { + cloudformation_type_name = "AWS::CloudFormation::ModuleDefaultVersion" +} + +resource_schema "aws_cloudformation_module_version" { + cloudformation_type_name = "AWS::CloudFormation::ModuleVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudformation_public_type_version" { + cloudformation_type_name = "AWS::CloudFormation::PublicTypeVersion" +} + +resource_schema "aws_cloudformation_publisher" { + cloudformation_type_name = "AWS::CloudFormation::Publisher" +} + +resource_schema "aws_cloudformation_resource_default_version" { + cloudformation_type_name = "AWS::CloudFormation::ResourceDefaultVersion" +} + +resource_schema "aws_cloudformation_resource_version" { + cloudformation_type_name = "AWS::CloudFormation::ResourceVersion" +} + +resource_schema "aws_cloudformation_stack" { + cloudformation_type_name = "AWS::CloudFormation::Stack" +} + +resource_schema "aws_cloudformation_stack_set" { + cloudformation_type_name = "AWS::CloudFormation::StackSet" +} + +resource_schema "aws_cloudformation_type_activation" { + cloudformation_type_name = "AWS::CloudFormation::TypeActivation" +} + +resource_schema "aws_cloudfront_cache_policy" { + cloudformation_type_name = "AWS::CloudFront::CachePolicy" +} + +resource_schema "aws_cloudfront_cloudfront_origin_access_identity" { + cloudformation_type_name = "AWS::CloudFront::CloudFrontOriginAccessIdentity" +} + +resource_schema "aws_cloudfront_continuous_deployment_policy" { + cloudformation_type_name = "AWS::CloudFront::ContinuousDeploymentPolicy" +} + +resource_schema "aws_cloudfront_distribution" { + cloudformation_type_name = "AWS::CloudFront::Distribution" +} + +resource_schema "aws_cloudfront_function" { + cloudformation_type_name = "AWS::CloudFront::Function" +} + +resource_schema "aws_cloudfront_key_group" { + cloudformation_type_name = "AWS::CloudFront::KeyGroup" +} + +resource_schema "aws_cloudfront_key_value_store" { + cloudformation_type_name = "AWS::CloudFront::KeyValueStore" +} + +resource_schema "aws_cloudfront_monitoring_subscription" { + cloudformation_type_name = "AWS::CloudFront::MonitoringSubscription" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudfront_origin_access_control" { + cloudformation_type_name = "AWS::CloudFront::OriginAccessControl" +} + +resource_schema "aws_cloudfront_origin_request_policy" { + cloudformation_type_name = "AWS::CloudFront::OriginRequestPolicy" +} + +resource_schema "aws_cloudfront_public_key" { + cloudformation_type_name = "AWS::CloudFront::PublicKey" +} + +resource_schema "aws_cloudfront_realtime_log_config" { + cloudformation_type_name = "AWS::CloudFront::RealtimeLogConfig" +} + +resource_schema "aws_cloudfront_response_headers_policy" { + cloudformation_type_name = "AWS::CloudFront::ResponseHeadersPolicy" +} + +resource_schema "aws_cloudtrail_channel" { + cloudformation_type_name = "AWS::CloudTrail::Channel" +} + +resource_schema "aws_cloudtrail_event_data_store" { + cloudformation_type_name = "AWS::CloudTrail::EventDataStore" +} + +resource_schema "aws_cloudtrail_resource_policy" { + cloudformation_type_name = "AWS::CloudTrail::ResourcePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudtrail_trail" { + cloudformation_type_name = "AWS::CloudTrail::Trail" +} + +resource_schema "aws_cloudwatch_alarm" { + cloudformation_type_name = "AWS::CloudWatch::Alarm" +} + +resource_schema "aws_cloudwatch_composite_alarm" { + cloudformation_type_name = "AWS::CloudWatch::CompositeAlarm" +} + +resource_schema "aws_cloudwatch_dashboard" { + cloudformation_type_name = "AWS::CloudWatch::Dashboard" +} + +resource_schema "aws_cloudwatch_metric_stream" { + cloudformation_type_name = "AWS::CloudWatch::MetricStream" +} + +resource_schema "aws_codeartifact_domain" { + cloudformation_type_name = "AWS::CodeArtifact::Domain" +} + +resource_schema "aws_codeartifact_package_group" { + cloudformation_type_name = "AWS::CodeArtifact::PackageGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_codeartifact_repository" { + cloudformation_type_name = "AWS::CodeArtifact::Repository" +} + +resource_schema "aws_codebuild_fleet" { + cloudformation_type_name = "AWS::CodeBuild::Fleet" +} + +resource_schema "aws_codeconnections_connection" { + cloudformation_type_name = "AWS::CodeConnections::Connection" +} + +resource_schema "aws_codedeploy_application" { + cloudformation_type_name = "AWS::CodeDeploy::Application" +} + +resource_schema "aws_codedeploy_deployment_config" { + cloudformation_type_name = "AWS::CodeDeploy::DeploymentConfig" +} + +resource_schema "aws_codeguruprofiler_profiling_group" { + cloudformation_type_name = "AWS::CodeGuruProfiler::ProfilingGroup" +} + +resource_schema "aws_codegurureviewer_repository_association" { + cloudformation_type_name = "AWS::CodeGuruReviewer::RepositoryAssociation" +} + +resource_schema "aws_codepipeline_custom_action_type" { + cloudformation_type_name = "AWS::CodePipeline::CustomActionType" +} + +resource_schema "aws_codepipeline_pipeline" { + cloudformation_type_name = "AWS::CodePipeline::Pipeline" +} + +resource_schema "aws_codestarconnections_connection" { + cloudformation_type_name = "AWS::CodeStarConnections::Connection" +} + +resource_schema "aws_codestarconnections_repository_link" { + cloudformation_type_name = "AWS::CodeStarConnections::RepositoryLink" +} + +resource_schema "aws_codestarconnections_sync_configuration" { + cloudformation_type_name = "AWS::CodeStarConnections::SyncConfiguration" +} + +resource_schema "aws_codestarnotifications_notification_rule" { + cloudformation_type_name = "AWS::CodeStarNotifications::NotificationRule" +} + +resource_schema "aws_cognito_identity_pool" { + cloudformation_type_name = "AWS::Cognito::IdentityPool" +} + +resource_schema "aws_cognito_identity_pool_principal_tag" { + cloudformation_type_name = "AWS::Cognito::IdentityPoolPrincipalTag" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_identity_pool_role_attachment" { + cloudformation_type_name = "AWS::Cognito::IdentityPoolRoleAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_log_delivery_configuration" { + cloudformation_type_name = "AWS::Cognito::LogDeliveryConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool" { + cloudformation_type_name = "AWS::Cognito::UserPool" +} + +resource_schema "aws_cognito_user_pool_client" { + cloudformation_type_name = "AWS::Cognito::UserPoolClient" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_group" { + cloudformation_type_name = "AWS::Cognito::UserPoolGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_resource_server" { + cloudformation_type_name = "AWS::Cognito::UserPoolResourceServer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_risk_configuration_attachment" { + cloudformation_type_name = "AWS::Cognito::UserPoolRiskConfigurationAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_ui_customization_attachment" { + cloudformation_type_name = "AWS::Cognito::UserPoolUICustomizationAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_user" { + cloudformation_type_name = "AWS::Cognito::UserPoolUser" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_user_to_group_attachment" { + cloudformation_type_name = "AWS::Cognito::UserPoolUserToGroupAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_comprehend_document_classifier" { + cloudformation_type_name = "AWS::Comprehend::DocumentClassifier" +} + +resource_schema "aws_comprehend_flywheel" { + cloudformation_type_name = "AWS::Comprehend::Flywheel" +} + +resource_schema "aws_config_aggregation_authorization" { + cloudformation_type_name = "AWS::Config::AggregationAuthorization" +} + +resource_schema "aws_config_config_rule" { + cloudformation_type_name = "AWS::Config::ConfigRule" +} + +resource_schema "aws_config_configuration_aggregator" { + cloudformation_type_name = "AWS::Config::ConfigurationAggregator" +} + +resource_schema "aws_config_conformance_pack" { + cloudformation_type_name = "AWS::Config::ConformancePack" +} + +resource_schema "aws_config_organization_conformance_pack" { + cloudformation_type_name = "AWS::Config::OrganizationConformancePack" +} + +resource_schema "aws_config_stored_query" { + cloudformation_type_name = "AWS::Config::StoredQuery" +} + +resource_schema "aws_connect_approved_origin" { + cloudformation_type_name = "AWS::Connect::ApprovedOrigin" +} + +resource_schema "aws_connect_contact_flow" { + cloudformation_type_name = "AWS::Connect::ContactFlow" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_contact_flow_module" { + cloudformation_type_name = "AWS::Connect::ContactFlowModule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_evaluation_form" { + cloudformation_type_name = "AWS::Connect::EvaluationForm" +} + +resource_schema "aws_connect_hours_of_operation" { + cloudformation_type_name = "AWS::Connect::HoursOfOperation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_instance" { + cloudformation_type_name = "AWS::Connect::Instance" +} + +resource_schema "aws_connect_instance_storage_config" { + cloudformation_type_name = "AWS::Connect::InstanceStorageConfig" +} + +resource_schema "aws_connect_integration_association" { + cloudformation_type_name = "AWS::Connect::IntegrationAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_phone_number" { + cloudformation_type_name = "AWS::Connect::PhoneNumber" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_predefined_attribute" { + cloudformation_type_name = "AWS::Connect::PredefinedAttribute" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_prompt" { + cloudformation_type_name = "AWS::Connect::Prompt" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_queue" { + cloudformation_type_name = "AWS::Connect::Queue" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_quick_connect" { + cloudformation_type_name = "AWS::Connect::QuickConnect" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_routing_profile" { + cloudformation_type_name = "AWS::Connect::RoutingProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_rule" { + cloudformation_type_name = "AWS::Connect::Rule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_security_key" { + cloudformation_type_name = "AWS::Connect::SecurityKey" +} + +resource_schema "aws_connect_security_profile" { + cloudformation_type_name = "AWS::Connect::SecurityProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_task_template" { + cloudformation_type_name = "AWS::Connect::TaskTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_traffic_distribution_group" { + cloudformation_type_name = "AWS::Connect::TrafficDistributionGroup" +} + +resource_schema "aws_connect_user" { + cloudformation_type_name = "AWS::Connect::User" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_user_hierarchy_group" { + cloudformation_type_name = "AWS::Connect::UserHierarchyGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_view" { + cloudformation_type_name = "AWS::Connect::View" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_view_version" { + cloudformation_type_name = "AWS::Connect::ViewVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connectcampaigns_campaign" { + cloudformation_type_name = "AWS::ConnectCampaigns::Campaign" +} + +resource_schema "aws_controltower_enabled_baseline" { + cloudformation_type_name = "AWS::ControlTower::EnabledBaseline" +} + +resource_schema "aws_controltower_enabled_control" { + cloudformation_type_name = "AWS::ControlTower::EnabledControl" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_controltower_landing_zone" { + cloudformation_type_name = "AWS::ControlTower::LandingZone" +} + +resource_schema "aws_customerprofiles_calculated_attribute_definition" { + cloudformation_type_name = "AWS::CustomerProfiles::CalculatedAttributeDefinition" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_domain" { + cloudformation_type_name = "AWS::CustomerProfiles::Domain" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_event_stream" { + cloudformation_type_name = "AWS::CustomerProfiles::EventStream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_integration" { + cloudformation_type_name = "AWS::CustomerProfiles::Integration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_object_type" { + cloudformation_type_name = "AWS::CustomerProfiles::ObjectType" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_dms_data_provider" { + cloudformation_type_name = "AWS::DMS::DataProvider" +} + +resource_schema "aws_dms_instance_profile" { + cloudformation_type_name = "AWS::DMS::InstanceProfile" +} + +resource_schema "aws_dms_migration_project" { + cloudformation_type_name = "AWS::DMS::MigrationProject" +} + +resource_schema "aws_dms_replication_config" { + cloudformation_type_name = "AWS::DMS::ReplicationConfig" +} + +resource_schema "aws_databrew_dataset" { + cloudformation_type_name = "AWS::DataBrew::Dataset" +} + +resource_schema "aws_databrew_job" { + cloudformation_type_name = "AWS::DataBrew::Job" +} + +resource_schema "aws_databrew_project" { + cloudformation_type_name = "AWS::DataBrew::Project" +} + +resource_schema "aws_databrew_recipe" { + cloudformation_type_name = "AWS::DataBrew::Recipe" +} + +resource_schema "aws_databrew_ruleset" { + cloudformation_type_name = "AWS::DataBrew::Ruleset" +} + +resource_schema "aws_databrew_schedule" { + cloudformation_type_name = "AWS::DataBrew::Schedule" +} + +resource_schema "aws_datapipeline_pipeline" { + cloudformation_type_name = "AWS::DataPipeline::Pipeline" +} + +resource_schema "aws_datasync_agent" { + cloudformation_type_name = "AWS::DataSync::Agent" +} + +resource_schema "aws_datasync_location_azure_blob" { + cloudformation_type_name = "AWS::DataSync::LocationAzureBlob" +} + +resource_schema "aws_datasync_location_efs" { + cloudformation_type_name = "AWS::DataSync::LocationEFS" +} + +resource_schema "aws_datasync_location_fsx_lustre" { + cloudformation_type_name = "AWS::DataSync::LocationFSxLustre" +} + +resource_schema "aws_datasync_location_fsx_ontap" { + cloudformation_type_name = "AWS::DataSync::LocationFSxONTAP" +} + +resource_schema "aws_datasync_location_fsx_open_zfs" { + cloudformation_type_name = "AWS::DataSync::LocationFSxOpenZFS" +} + +resource_schema "aws_datasync_location_fsx_windows" { + cloudformation_type_name = "AWS::DataSync::LocationFSxWindows" +} + +resource_schema "aws_datasync_location_hdfs" { + cloudformation_type_name = "AWS::DataSync::LocationHDFS" +} + +resource_schema "aws_datasync_location_nfs" { + cloudformation_type_name = "AWS::DataSync::LocationNFS" +} + +resource_schema "aws_datasync_location_object_storage" { + cloudformation_type_name = "AWS::DataSync::LocationObjectStorage" +} + +resource_schema "aws_datasync_location_s3" { + cloudformation_type_name = "AWS::DataSync::LocationS3" +} + +resource_schema "aws_datasync_location_smb" { + cloudformation_type_name = "AWS::DataSync::LocationSMB" +} + +resource_schema "aws_datasync_storage_system" { + cloudformation_type_name = "AWS::DataSync::StorageSystem" +} + +resource_schema "aws_datasync_task" { + cloudformation_type_name = "AWS::DataSync::Task" +} + +resource_schema "aws_datazone_data_source" { + cloudformation_type_name = "AWS::DataZone::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_domain" { + cloudformation_type_name = "AWS::DataZone::Domain" +} + +resource_schema "aws_datazone_environment" { + cloudformation_type_name = "AWS::DataZone::Environment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_environment_blueprint_configuration" { + cloudformation_type_name = "AWS::DataZone::EnvironmentBlueprintConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_environment_profile" { + cloudformation_type_name = "AWS::DataZone::EnvironmentProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_group_profile" { + cloudformation_type_name = "AWS::DataZone::GroupProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_project" { + cloudformation_type_name = "AWS::DataZone::Project" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_project_membership" { + cloudformation_type_name = "AWS::DataZone::ProjectMembership" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_subscription_target" { + cloudformation_type_name = "AWS::DataZone::SubscriptionTarget" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_user_profile" { + cloudformation_type_name = "AWS::DataZone::UserProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_farm" { + cloudformation_type_name = "AWS::Deadline::Farm" +} + +resource_schema "aws_deadline_fleet" { + cloudformation_type_name = "AWS::Deadline::Fleet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_license_endpoint" { + cloudformation_type_name = "AWS::Deadline::LicenseEndpoint" +} + +resource_schema "aws_deadline_metered_product" { + cloudformation_type_name = "AWS::Deadline::MeteredProduct" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_monitor" { + cloudformation_type_name = "AWS::Deadline::Monitor" +} + +resource_schema "aws_deadline_queue" { + cloudformation_type_name = "AWS::Deadline::Queue" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_queue_environment" { + cloudformation_type_name = "AWS::Deadline::QueueEnvironment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_queue_fleet_association" { + cloudformation_type_name = "AWS::Deadline::QueueFleetAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_storage_profile" { + cloudformation_type_name = "AWS::Deadline::StorageProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_detective_graph" { + cloudformation_type_name = "AWS::Detective::Graph" +} + +resource_schema "aws_detective_member_invitation" { + cloudformation_type_name = "AWS::Detective::MemberInvitation" +} + +resource_schema "aws_detective_organization_admin" { + cloudformation_type_name = "AWS::Detective::OrganizationAdmin" +} + +resource_schema "aws_devopsguru_log_anomaly_detection_integration" { + cloudformation_type_name = "AWS::DevOpsGuru::LogAnomalyDetectionIntegration" +} + +resource_schema "aws_devopsguru_notification_channel" { + cloudformation_type_name = "AWS::DevOpsGuru::NotificationChannel" +} + +resource_schema "aws_devopsguru_resource_collection" { + cloudformation_type_name = "AWS::DevOpsGuru::ResourceCollection" +} + +resource_schema "aws_directoryservice_simple_ad" { + cloudformation_type_name = "AWS::DirectoryService::SimpleAD" +} + +resource_schema "aws_docdbelastic_cluster" { + cloudformation_type_name = "AWS::DocDBElastic::Cluster" +} + +resource_schema "aws_dynamodb_global_table" { + cloudformation_type_name = "AWS::DynamoDB::GlobalTable" +} + +resource_schema "aws_dynamodb_table" { + cloudformation_type_name = "AWS::DynamoDB::Table" +} + +resource_schema "aws_ec2_capacity_reservation" { + cloudformation_type_name = "AWS::EC2::CapacityReservation" +} + +resource_schema "aws_ec2_capacity_reservation_fleet" { + cloudformation_type_name = "AWS::EC2::CapacityReservationFleet" +} + +resource_schema "aws_ec2_carrier_gateway" { + cloudformation_type_name = "AWS::EC2::CarrierGateway" +} + +resource_schema "aws_ec2_customer_gateway" { + cloudformation_type_name = "AWS::EC2::CustomerGateway" +} + +resource_schema "aws_ec2_dhcp_options" { + cloudformation_type_name = "AWS::EC2::DHCPOptions" +} + +resource_schema "aws_ec2_ec2_fleet" { + cloudformation_type_name = "AWS::EC2::EC2Fleet" +} + +resource_schema "aws_ec2_eip" { + cloudformation_type_name = "AWS::EC2::EIP" +} + +resource_schema "aws_ec2_eip_association" { + cloudformation_type_name = "AWS::EC2::EIPAssociation" +} + +resource_schema "aws_ec2_egress_only_internet_gateway" { + cloudformation_type_name = "AWS::EC2::EgressOnlyInternetGateway" +} + +resource_schema "aws_ec2_enclave_certificate_iam_role_association" { + cloudformation_type_name = "AWS::EC2::EnclaveCertificateIamRoleAssociation" +} + +resource_schema "aws_ec2_flow_log" { + cloudformation_type_name = "AWS::EC2::FlowLog" +} + +resource_schema "aws_ec2_gateway_route_table_association" { + cloudformation_type_name = "AWS::EC2::GatewayRouteTableAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_host" { + cloudformation_type_name = "AWS::EC2::Host" +} + +resource_schema "aws_ec2_ipam" { + cloudformation_type_name = "AWS::EC2::IPAM" +} + +resource_schema "aws_ec2_ipam_allocation" { + cloudformation_type_name = "AWS::EC2::IPAMAllocation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_ipam_pool" { + cloudformation_type_name = "AWS::EC2::IPAMPool" +} + +resource_schema "aws_ec2_ipam_pool_cidr" { + cloudformation_type_name = "AWS::EC2::IPAMPoolCidr" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_ipam_resource_discovery" { + cloudformation_type_name = "AWS::EC2::IPAMResourceDiscovery" +} + +resource_schema "aws_ec2_ipam_resource_discovery_association" { + cloudformation_type_name = "AWS::EC2::IPAMResourceDiscoveryAssociation" +} + +resource_schema "aws_ec2_ipam_scope" { + cloudformation_type_name = "AWS::EC2::IPAMScope" +} + +resource_schema "aws_ec2_instance" { + cloudformation_type_name = "AWS::EC2::Instance" +} + +resource_schema "aws_ec2_instance_connect_endpoint" { + cloudformation_type_name = "AWS::EC2::InstanceConnectEndpoint" +} + +resource_schema "aws_ec2_internet_gateway" { + cloudformation_type_name = "AWS::EC2::InternetGateway" +} + +resource_schema "aws_ec2_key_pair" { + cloudformation_type_name = "AWS::EC2::KeyPair" +} + +resource_schema "aws_ec2_launch_template" { + cloudformation_type_name = "AWS::EC2::LaunchTemplate" +} + +resource_schema "aws_ec2_local_gateway_route" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRoute" +} + +resource_schema "aws_ec2_local_gateway_route_table" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRouteTable" +} + +resource_schema "aws_ec2_local_gateway_route_table_vpc_association" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRouteTableVPCAssociation" +} + +resource_schema "aws_ec2_local_gateway_route_table_virtual_interface_group_association" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRouteTableVirtualInterfaceGroupAssociation" +} + +resource_schema "aws_ec2_nat_gateway" { + cloudformation_type_name = "AWS::EC2::NatGateway" +} + +resource_schema "aws_ec2_network_acl" { + cloudformation_type_name = "AWS::EC2::NetworkAcl" +} + +resource_schema "aws_ec2_network_insights_access_scope" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsAccessScope" +} + +resource_schema "aws_ec2_network_insights_access_scope_analysis" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsAccessScopeAnalysis" +} + +resource_schema "aws_ec2_network_insights_analysis" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsAnalysis" +} + +resource_schema "aws_ec2_network_insights_path" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsPath" +} + +resource_schema "aws_ec2_network_interface" { + cloudformation_type_name = "AWS::EC2::NetworkInterface" +} + +resource_schema "aws_ec2_network_interface_attachment" { + cloudformation_type_name = "AWS::EC2::NetworkInterfaceAttachment" +} + +resource_schema "aws_ec2_network_performance_metric_subscription" { + cloudformation_type_name = "AWS::EC2::NetworkPerformanceMetricSubscription" +} + +resource_schema "aws_ec2_placement_group" { + cloudformation_type_name = "AWS::EC2::PlacementGroup" +} + +resource_schema "aws_ec2_prefix_list" { + cloudformation_type_name = "AWS::EC2::PrefixList" +} + +resource_schema "aws_ec2_route" { + cloudformation_type_name = "AWS::EC2::Route" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_route_table" { + cloudformation_type_name = "AWS::EC2::RouteTable" +} + +resource_schema "aws_ec2_security_group" { + cloudformation_type_name = "AWS::EC2::SecurityGroup" +} + +resource_schema "aws_ec2_security_group_egress" { + cloudformation_type_name = "AWS::EC2::SecurityGroupEgress" +} + +resource_schema "aws_ec2_security_group_ingress" { + cloudformation_type_name = "AWS::EC2::SecurityGroupIngress" +} + +resource_schema "aws_ec2_snapshot_block_public_access" { + cloudformation_type_name = "AWS::EC2::SnapshotBlockPublicAccess" +} + +resource_schema "aws_ec2_spot_fleet" { + cloudformation_type_name = "AWS::EC2::SpotFleet" +} + +resource_schema "aws_ec2_subnet" { + cloudformation_type_name = "AWS::EC2::Subnet" +} + +resource_schema "aws_ec2_subnet_cidr_block" { + cloudformation_type_name = "AWS::EC2::SubnetCidrBlock" +} + +resource_schema "aws_ec2_subnet_network_acl_association" { + cloudformation_type_name = "AWS::EC2::SubnetNetworkAclAssociation" +} + +resource_schema "aws_ec2_subnet_route_table_association" { + cloudformation_type_name = "AWS::EC2::SubnetRouteTableAssociation" +} + +resource_schema "aws_ec2_transit_gateway" { + cloudformation_type_name = "AWS::EC2::TransitGateway" +} + +resource_schema "aws_ec2_transit_gateway_attachment" { + cloudformation_type_name = "AWS::EC2::TransitGatewayAttachment" +} + +resource_schema "aws_ec2_transit_gateway_connect" { + cloudformation_type_name = "AWS::EC2::TransitGatewayConnect" +} + +resource_schema "aws_ec2_transit_gateway_multicast_domain" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastDomain" +} + +resource_schema "aws_ec2_transit_gateway_multicast_domain_association" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastDomainAssociation" +} + +resource_schema "aws_ec2_transit_gateway_multicast_group_member" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastGroupMember" +} + +resource_schema "aws_ec2_transit_gateway_multicast_group_source" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastGroupSource" +} + +resource_schema "aws_ec2_transit_gateway_peering_attachment" { + cloudformation_type_name = "AWS::EC2::TransitGatewayPeeringAttachment" +} + +resource_schema "aws_ec2_transit_gateway_route" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRoute" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_route_table" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRouteTable" +} + +resource_schema "aws_ec2_transit_gateway_route_table_association" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRouteTableAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_route_table_propagation" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRouteTablePropagation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_vpc_attachment" { + cloudformation_type_name = "AWS::EC2::TransitGatewayVpcAttachment" +} + +resource_schema "aws_ec2_vpc" { + cloudformation_type_name = "AWS::EC2::VPC" +} + +resource_schema "aws_ec2_vpc_cidr_block" { + cloudformation_type_name = "AWS::EC2::VPCCidrBlock" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_vpcdhcp_options_association" { + cloudformation_type_name = "AWS::EC2::VPCDHCPOptionsAssociation" +} + +resource_schema "aws_ec2_vpc_endpoint" { + cloudformation_type_name = "AWS::EC2::VPCEndpoint" +} + +resource_schema "aws_ec2_vpc_endpoint_connection_notification" { + cloudformation_type_name = "AWS::EC2::VPCEndpointConnectionNotification" +} + +resource_schema "aws_ec2_vpc_endpoint_service" { + cloudformation_type_name = "AWS::EC2::VPCEndpointService" +} + +resource_schema "aws_ec2_vpc_endpoint_service_permissions" { + cloudformation_type_name = "AWS::EC2::VPCEndpointServicePermissions" +} + +resource_schema "aws_ec2_vpc_gateway_attachment" { + cloudformation_type_name = "AWS::EC2::VPCGatewayAttachment" +} + +resource_schema "aws_ec2_vpc_peering_connection" { + cloudformation_type_name = "AWS::EC2::VPCPeeringConnection" +} + +resource_schema "aws_ec2_vpn_connection" { + cloudformation_type_name = "AWS::EC2::VPNConnection" +} + +resource_schema "aws_ec2_vpn_connection_route" { + cloudformation_type_name = "AWS::EC2::VPNConnectionRoute" +} + +resource_schema "aws_ec2_vpn_gateway" { + cloudformation_type_name = "AWS::EC2::VPNGateway" +} + +resource_schema "aws_ec2_verified_access_endpoint" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessEndpoint" +} + +resource_schema "aws_ec2_verified_access_group" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessGroup" +} + +resource_schema "aws_ec2_verified_access_instance" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessInstance" +} + +resource_schema "aws_ec2_verified_access_trust_provider" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessTrustProvider" +} + +resource_schema "aws_ec2_volume" { + cloudformation_type_name = "AWS::EC2::Volume" +} + +resource_schema "aws_ec2_volume_attachment" { + cloudformation_type_name = "AWS::EC2::VolumeAttachment" +} + +resource_schema "aws_ecr_public_repository" { + cloudformation_type_name = "AWS::ECR::PublicRepository" +} + +resource_schema "aws_ecr_pull_through_cache_rule" { + cloudformation_type_name = "AWS::ECR::PullThroughCacheRule" +} + +resource_schema "aws_ecr_registry_policy" { + cloudformation_type_name = "AWS::ECR::RegistryPolicy" +} + +resource_schema "aws_ecr_replication_configuration" { + cloudformation_type_name = "AWS::ECR::ReplicationConfiguration" +} + +resource_schema "aws_ecr_repository" { + cloudformation_type_name = "AWS::ECR::Repository" +} + +resource_schema "aws_ecr_repository_creation_template" { + cloudformation_type_name = "AWS::ECR::RepositoryCreationTemplate" +} + +resource_schema "aws_ecs_capacity_provider" { + cloudformation_type_name = "AWS::ECS::CapacityProvider" +} + +resource_schema "aws_ecs_cluster" { + cloudformation_type_name = "AWS::ECS::Cluster" +} + +resource_schema "aws_ecs_cluster_capacity_provider_associations" { + cloudformation_type_name = "AWS::ECS::ClusterCapacityProviderAssociations" +} + +resource_schema "aws_ecs_primary_task_set" { + cloudformation_type_name = "AWS::ECS::PrimaryTaskSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ecs_service" { + cloudformation_type_name = "AWS::ECS::Service" +} + +resource_schema "aws_ecs_task_definition" { + cloudformation_type_name = "AWS::ECS::TaskDefinition" +} + +resource_schema "aws_ecs_task_set" { + cloudformation_type_name = "AWS::ECS::TaskSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_efs_access_point" { + cloudformation_type_name = "AWS::EFS::AccessPoint" +} + +resource_schema "aws_efs_file_system" { + cloudformation_type_name = "AWS::EFS::FileSystem" +} + +resource_schema "aws_efs_mount_target" { + cloudformation_type_name = "AWS::EFS::MountTarget" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_access_entry" { + cloudformation_type_name = "AWS::EKS::AccessEntry" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_addon" { + cloudformation_type_name = "AWS::EKS::Addon" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_cluster" { + cloudformation_type_name = "AWS::EKS::Cluster" +} + +resource_schema "aws_eks_fargate_profile" { + cloudformation_type_name = "AWS::EKS::FargateProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_identity_provider_config" { + cloudformation_type_name = "AWS::EKS::IdentityProviderConfig" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_nodegroup" { + cloudformation_type_name = "AWS::EKS::Nodegroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_pod_identity_association" { + cloudformation_type_name = "AWS::EKS::PodIdentityAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_emr_security_configuration" { + cloudformation_type_name = "AWS::EMR::SecurityConfiguration" +} + +resource_schema "aws_emr_studio" { + cloudformation_type_name = "AWS::EMR::Studio" +} + +resource_schema "aws_emr_studio_session_mapping" { + cloudformation_type_name = "AWS::EMR::StudioSessionMapping" +} + +resource_schema "aws_emr_wal_workspace" { + cloudformation_type_name = "AWS::EMR::WALWorkspace" +} + +resource_schema "aws_emrcontainers_virtual_cluster" { + cloudformation_type_name = "AWS::EMRContainers::VirtualCluster" +} + +resource_schema "aws_emrserverless_application" { + cloudformation_type_name = "AWS::EMRServerless::Application" +} + +resource_schema "aws_elasticache_global_replication_group" { + cloudformation_type_name = "AWS::ElastiCache::GlobalReplicationGroup" +} + +resource_schema "aws_elasticache_parameter_group" { + cloudformation_type_name = "AWS::ElastiCache::ParameterGroup" +} + +resource_schema "aws_elasticache_serverless_cache" { + cloudformation_type_name = "AWS::ElastiCache::ServerlessCache" +} + +resource_schema "aws_elasticache_subnet_group" { + cloudformation_type_name = "AWS::ElastiCache::SubnetGroup" +} + +resource_schema "aws_elasticache_user" { + cloudformation_type_name = "AWS::ElastiCache::User" +} + +resource_schema "aws_elasticache_user_group" { + cloudformation_type_name = "AWS::ElastiCache::UserGroup" +} + +resource_schema "aws_elasticbeanstalk_application" { + cloudformation_type_name = "AWS::ElasticBeanstalk::Application" +} + +resource_schema "aws_elasticbeanstalk_application_version" { + cloudformation_type_name = "AWS::ElasticBeanstalk::ApplicationVersion" +} + +resource_schema "aws_elasticbeanstalk_configuration_template" { + cloudformation_type_name = "AWS::ElasticBeanstalk::ConfigurationTemplate" +} + +resource_schema "aws_elasticbeanstalk_environment" { + cloudformation_type_name = "AWS::ElasticBeanstalk::Environment" +} + +resource_schema "aws_elasticloadbalancingv2_listener" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::Listener" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_elasticloadbalancingv2_listener_rule" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::ListenerRule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_elasticloadbalancingv2_load_balancer" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::LoadBalancer" +} + +resource_schema "aws_elasticloadbalancingv2_target_group" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::TargetGroup" +} + +resource_schema "aws_elasticloadbalancingv2_trust_store" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::TrustStore" +} + +resource_schema "aws_elasticloadbalancingv2_trust_store_revocation" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::TrustStoreRevocation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_entityresolution_id_mapping_workflow" { + cloudformation_type_name = "AWS::EntityResolution::IdMappingWorkflow" +} + +resource_schema "aws_entityresolution_id_namespace" { + cloudformation_type_name = "AWS::EntityResolution::IdNamespace" +} + +resource_schema "aws_entityresolution_matching_workflow" { + cloudformation_type_name = "AWS::EntityResolution::MatchingWorkflow" +} + +resource_schema "aws_entityresolution_policy_statement" { + cloudformation_type_name = "AWS::EntityResolution::PolicyStatement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_entityresolution_schema_mapping" { + cloudformation_type_name = "AWS::EntityResolution::SchemaMapping" +} + +resource_schema "aws_eventschemas_discoverer" { + cloudformation_type_name = "AWS::EventSchemas::Discoverer" +} + +resource_schema "aws_eventschemas_registry" { + cloudformation_type_name = "AWS::EventSchemas::Registry" +} + +resource_schema "aws_eventschemas_registry_policy" { + cloudformation_type_name = "AWS::EventSchemas::RegistryPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eventschemas_schema" { + cloudformation_type_name = "AWS::EventSchemas::Schema" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_events_api_destination" { + cloudformation_type_name = "AWS::Events::ApiDestination" +} + +resource_schema "aws_events_archive" { + cloudformation_type_name = "AWS::Events::Archive" +} + +resource_schema "aws_events_connection" { + cloudformation_type_name = "AWS::Events::Connection" +} + +resource_schema "aws_events_endpoint" { + cloudformation_type_name = "AWS::Events::Endpoint" +} + +resource_schema "aws_events_event_bus" { + cloudformation_type_name = "AWS::Events::EventBus" +} + +resource_schema "aws_events_rule" { + cloudformation_type_name = "AWS::Events::Rule" +} + +resource_schema "aws_evidently_experiment" { + cloudformation_type_name = "AWS::Evidently::Experiment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_feature" { + cloudformation_type_name = "AWS::Evidently::Feature" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_launch" { + cloudformation_type_name = "AWS::Evidently::Launch" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_project" { + cloudformation_type_name = "AWS::Evidently::Project" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_segment" { + cloudformation_type_name = "AWS::Evidently::Segment" +} + +resource_schema "aws_fis_experiment_template" { + cloudformation_type_name = "AWS::FIS::ExperimentTemplate" +} + +resource_schema "aws_fis_target_account_configuration" { + cloudformation_type_name = "AWS::FIS::TargetAccountConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_fms_notification_channel" { + cloudformation_type_name = "AWS::FMS::NotificationChannel" +} + +resource_schema "aws_fms_policy" { + cloudformation_type_name = "AWS::FMS::Policy" +} + +resource_schema "aws_fms_resource_set" { + cloudformation_type_name = "AWS::FMS::ResourceSet" +} + +resource_schema "aws_fsx_data_repository_association" { + cloudformation_type_name = "AWS::FSx::DataRepositoryAssociation" +} + +resource_schema "aws_finspace_environment" { + cloudformation_type_name = "AWS::FinSpace::Environment" +} + +resource_schema "aws_forecast_dataset" { + cloudformation_type_name = "AWS::Forecast::Dataset" +} + +resource_schema "aws_forecast_dataset_group" { + cloudformation_type_name = "AWS::Forecast::DatasetGroup" +} + +resource_schema "aws_frauddetector_detector" { + cloudformation_type_name = "AWS::FraudDetector::Detector" +} + +resource_schema "aws_frauddetector_entity_type" { + cloudformation_type_name = "AWS::FraudDetector::EntityType" +} + +resource_schema "aws_frauddetector_event_type" { + cloudformation_type_name = "AWS::FraudDetector::EventType" +} + +resource_schema "aws_frauddetector_label" { + cloudformation_type_name = "AWS::FraudDetector::Label" +} + +resource_schema "aws_frauddetector_list" { + cloudformation_type_name = "AWS::FraudDetector::List" +} + +resource_schema "aws_frauddetector_outcome" { + cloudformation_type_name = "AWS::FraudDetector::Outcome" +} + +resource_schema "aws_frauddetector_variable" { + cloudformation_type_name = "AWS::FraudDetector::Variable" +} + +resource_schema "aws_gamelift_alias" { + cloudformation_type_name = "AWS::GameLift::Alias" +} + +resource_schema "aws_gamelift_build" { + cloudformation_type_name = "AWS::GameLift::Build" +} + +resource_schema "aws_gamelift_container_group_definition" { + cloudformation_type_name = "AWS::GameLift::ContainerGroupDefinition" +} + +resource_schema "aws_gamelift_fleet" { + cloudformation_type_name = "AWS::GameLift::Fleet" +} + +resource_schema "aws_gamelift_game_server_group" { + cloudformation_type_name = "AWS::GameLift::GameServerGroup" +} + +resource_schema "aws_gamelift_game_session_queue" { + cloudformation_type_name = "AWS::GameLift::GameSessionQueue" +} + +resource_schema "aws_gamelift_location" { + cloudformation_type_name = "AWS::GameLift::Location" +} + +resource_schema "aws_gamelift_matchmaking_configuration" { + cloudformation_type_name = "AWS::GameLift::MatchmakingConfiguration" +} + +resource_schema "aws_gamelift_matchmaking_rule_set" { + cloudformation_type_name = "AWS::GameLift::MatchmakingRuleSet" +} + +resource_schema "aws_gamelift_script" { + cloudformation_type_name = "AWS::GameLift::Script" +} + +resource_schema "aws_globalaccelerator_accelerator" { + cloudformation_type_name = "AWS::GlobalAccelerator::Accelerator" +} + +resource_schema "aws_globalaccelerator_cross_account_attachment" { + cloudformation_type_name = "AWS::GlobalAccelerator::CrossAccountAttachment" +} + +resource_schema "aws_globalaccelerator_endpoint_group" { + cloudformation_type_name = "AWS::GlobalAccelerator::EndpointGroup" +} + +resource_schema "aws_globalaccelerator_listener" { + cloudformation_type_name = "AWS::GlobalAccelerator::Listener" +} + +resource_schema "aws_glue_registry" { + cloudformation_type_name = "AWS::Glue::Registry" +} + +resource_schema "aws_glue_schema" { + cloudformation_type_name = "AWS::Glue::Schema" +} + +resource_schema "aws_glue_schema_version" { + cloudformation_type_name = "AWS::Glue::SchemaVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_glue_schema_version_metadata" { + cloudformation_type_name = "AWS::Glue::SchemaVersionMetadata" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_glue_trigger" { + cloudformation_type_name = "AWS::Glue::Trigger" +} + +resource_schema "aws_grafana_workspace" { + cloudformation_type_name = "AWS::Grafana::Workspace" +} + +resource_schema "aws_greengrassv2_component_version" { + cloudformation_type_name = "AWS::GreengrassV2::ComponentVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_greengrassv2_deployment" { + cloudformation_type_name = "AWS::GreengrassV2::Deployment" +} + +resource_schema "aws_groundstation_config" { + cloudformation_type_name = "AWS::GroundStation::Config" +} + +resource_schema "aws_groundstation_dataflow_endpoint_group" { + cloudformation_type_name = "AWS::GroundStation::DataflowEndpointGroup" +} + +resource_schema "aws_groundstation_mission_profile" { + cloudformation_type_name = "AWS::GroundStation::MissionProfile" +} + +resource_schema "aws_guardduty_detector" { + cloudformation_type_name = "AWS::GuardDuty::Detector" +} + +resource_schema "aws_guardduty_filter" { + cloudformation_type_name = "AWS::GuardDuty::Filter" +} + +resource_schema "aws_guardduty_ip_set" { + cloudformation_type_name = "AWS::GuardDuty::IPSet" +} + +resource_schema "aws_guardduty_malware_protection_plan" { + cloudformation_type_name = "AWS::GuardDuty::MalwareProtectionPlan" +} + +resource_schema "aws_guardduty_master" { + cloudformation_type_name = "AWS::GuardDuty::Master" +} + +resource_schema "aws_guardduty_member" { + cloudformation_type_name = "AWS::GuardDuty::Member" +} + +resource_schema "aws_guardduty_threat_intel_set" { + cloudformation_type_name = "AWS::GuardDuty::ThreatIntelSet" +} + +resource_schema "aws_healthimaging_datastore" { + cloudformation_type_name = "AWS::HealthImaging::Datastore" +} + +resource_schema "aws_healthlake_fhir_datastore" { + cloudformation_type_name = "AWS::HealthLake::FHIRDatastore" +} + +resource_schema "aws_iam_group" { + cloudformation_type_name = "AWS::IAM::Group" +} + +resource_schema "aws_iam_group_policy" { + cloudformation_type_name = "AWS::IAM::GroupPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_instance_profile" { + cloudformation_type_name = "AWS::IAM::InstanceProfile" +} + +resource_schema "aws_iam_managed_policy" { + cloudformation_type_name = "AWS::IAM::ManagedPolicy" +} + +resource_schema "aws_iam_oidc_provider" { + cloudformation_type_name = "AWS::IAM::OIDCProvider" +} + +resource_schema "aws_iam_role" { + cloudformation_type_name = "AWS::IAM::Role" +} + +resource_schema "aws_iam_role_policy" { + cloudformation_type_name = "AWS::IAM::RolePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_saml_provider" { + cloudformation_type_name = "AWS::IAM::SAMLProvider" +} + +resource_schema "aws_iam_server_certificate" { + cloudformation_type_name = "AWS::IAM::ServerCertificate" +} + +resource_schema "aws_iam_service_linked_role" { + cloudformation_type_name = "AWS::IAM::ServiceLinkedRole" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_user" { + cloudformation_type_name = "AWS::IAM::User" +} + +resource_schema "aws_iam_user_policy" { + cloudformation_type_name = "AWS::IAM::UserPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_virtual_mfa_device" { + cloudformation_type_name = "AWS::IAM::VirtualMFADevice" +} + +resource_schema "aws_ivs_channel" { + cloudformation_type_name = "AWS::IVS::Channel" +} + +resource_schema "aws_ivs_encoder_configuration" { + cloudformation_type_name = "AWS::IVS::EncoderConfiguration" +} + +resource_schema "aws_ivs_playback_key_pair" { + cloudformation_type_name = "AWS::IVS::PlaybackKeyPair" +} + +resource_schema "aws_ivs_playback_restriction_policy" { + cloudformation_type_name = "AWS::IVS::PlaybackRestrictionPolicy" +} + +resource_schema "aws_ivs_recording_configuration" { + cloudformation_type_name = "AWS::IVS::RecordingConfiguration" +} + +resource_schema "aws_ivs_stage" { + cloudformation_type_name = "AWS::IVS::Stage" +} + +resource_schema "aws_ivs_storage_configuration" { + cloudformation_type_name = "AWS::IVS::StorageConfiguration" +} + +resource_schema "aws_ivs_stream_key" { + cloudformation_type_name = "AWS::IVS::StreamKey" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ivschat_logging_configuration" { + cloudformation_type_name = "AWS::IVSChat::LoggingConfiguration" +} + +resource_schema "aws_ivschat_room" { + cloudformation_type_name = "AWS::IVSChat::Room" +} + +resource_schema "aws_identitystore_group" { + cloudformation_type_name = "AWS::IdentityStore::Group" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_identitystore_group_membership" { + cloudformation_type_name = "AWS::IdentityStore::GroupMembership" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_imagebuilder_component" { + cloudformation_type_name = "AWS::ImageBuilder::Component" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_imagebuilder_container_recipe" { + cloudformation_type_name = "AWS::ImageBuilder::ContainerRecipe" +} + +resource_schema "aws_imagebuilder_distribution_configuration" { + cloudformation_type_name = "AWS::ImageBuilder::DistributionConfiguration" +} + +resource_schema "aws_imagebuilder_image" { + cloudformation_type_name = "AWS::ImageBuilder::Image" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_imagebuilder_image_pipeline" { + cloudformation_type_name = "AWS::ImageBuilder::ImagePipeline" +} + +resource_schema "aws_imagebuilder_image_recipe" { + cloudformation_type_name = "AWS::ImageBuilder::ImageRecipe" +} + +resource_schema "aws_imagebuilder_infrastructure_configuration" { + cloudformation_type_name = "AWS::ImageBuilder::InfrastructureConfiguration" +} + +resource_schema "aws_imagebuilder_lifecycle_policy" { + cloudformation_type_name = "AWS::ImageBuilder::LifecyclePolicy" +} + +resource_schema "aws_imagebuilder_workflow" { + cloudformation_type_name = "AWS::ImageBuilder::Workflow" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_inspector_assessment_target" { + cloudformation_type_name = "AWS::Inspector::AssessmentTarget" +} + +resource_schema "aws_inspector_assessment_template" { + cloudformation_type_name = "AWS::Inspector::AssessmentTemplate" +} + +resource_schema "aws_inspector_resource_group" { + cloudformation_type_name = "AWS::Inspector::ResourceGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_inspectorv2_cis_scan_configuration" { + cloudformation_type_name = "AWS::InspectorV2::CisScanConfiguration" +} + +resource_schema "aws_inspectorv2_filter" { + cloudformation_type_name = "AWS::InspectorV2::Filter" +} + +resource_schema "aws_internetmonitor_monitor" { + cloudformation_type_name = "AWS::InternetMonitor::Monitor" +} + +resource_schema "aws_iot_account_audit_configuration" { + cloudformation_type_name = "AWS::IoT::AccountAuditConfiguration" +} + +resource_schema "aws_iot_authorizer" { + cloudformation_type_name = "AWS::IoT::Authorizer" +} + +resource_schema "aws_iot_billing_group" { + cloudformation_type_name = "AWS::IoT::BillingGroup" +} + +resource_schema "aws_iot_ca_certificate" { + cloudformation_type_name = "AWS::IoT::CACertificate" +} + +resource_schema "aws_iot_certificate" { + cloudformation_type_name = "AWS::IoT::Certificate" +} + +resource_schema "aws_iot_certificate_provider" { + cloudformation_type_name = "AWS::IoT::CertificateProvider" +} + +resource_schema "aws_iot_custom_metric" { + cloudformation_type_name = "AWS::IoT::CustomMetric" +} + +resource_schema "aws_iot_dimension" { + cloudformation_type_name = "AWS::IoT::Dimension" +} + +resource_schema "aws_iot_domain_configuration" { + cloudformation_type_name = "AWS::IoT::DomainConfiguration" +} + +resource_schema "aws_iot_fleet_metric" { + cloudformation_type_name = "AWS::IoT::FleetMetric" +} + +resource_schema "aws_iot_job_template" { + cloudformation_type_name = "AWS::IoT::JobTemplate" +} + +resource_schema "aws_iot_logging" { + cloudformation_type_name = "AWS::IoT::Logging" +} + +resource_schema "aws_iot_mitigation_action" { + cloudformation_type_name = "AWS::IoT::MitigationAction" +} + +resource_schema "aws_iot_policy" { + cloudformation_type_name = "AWS::IoT::Policy" +} + +resource_schema "aws_iot_provisioning_template" { + cloudformation_type_name = "AWS::IoT::ProvisioningTemplate" +} + +resource_schema "aws_iot_resource_specific_logging" { + cloudformation_type_name = "AWS::IoT::ResourceSpecificLogging" +} + +resource_schema "aws_iot_role_alias" { + cloudformation_type_name = "AWS::IoT::RoleAlias" +} + +resource_schema "aws_iot_scheduled_audit" { + cloudformation_type_name = "AWS::IoT::ScheduledAudit" +} + +resource_schema "aws_iot_security_profile" { + cloudformation_type_name = "AWS::IoT::SecurityProfile" +} + +resource_schema "aws_iot_software_package" { + cloudformation_type_name = "AWS::IoT::SoftwarePackage" +} + +resource_schema "aws_iot_software_package_version" { + cloudformation_type_name = "AWS::IoT::SoftwarePackageVersion" +} + +resource_schema "aws_iot_thing" { + cloudformation_type_name = "AWS::IoT::Thing" +} + +resource_schema "aws_iot_thing_group" { + cloudformation_type_name = "AWS::IoT::ThingGroup" +} + +resource_schema "aws_iot_thing_type" { + cloudformation_type_name = "AWS::IoT::ThingType" +} + +resource_schema "aws_iot_topic_rule" { + cloudformation_type_name = "AWS::IoT::TopicRule" +} + +resource_schema "aws_iot_topic_rule_destination" { + cloudformation_type_name = "AWS::IoT::TopicRuleDestination" +} + +resource_schema "aws_iotanalytics_channel" { + cloudformation_type_name = "AWS::IoTAnalytics::Channel" +} + +resource_schema "aws_iotanalytics_dataset" { + cloudformation_type_name = "AWS::IoTAnalytics::Dataset" +} + +resource_schema "aws_iotanalytics_datastore" { + cloudformation_type_name = "AWS::IoTAnalytics::Datastore" +} + +resource_schema "aws_iotanalytics_pipeline" { + cloudformation_type_name = "AWS::IoTAnalytics::Pipeline" +} + +resource_schema "aws_iotcoredeviceadvisor_suite_definition" { + cloudformation_type_name = "AWS::IoTCoreDeviceAdvisor::SuiteDefinition" +} + +resource_schema "aws_iotevents_alarm_model" { + cloudformation_type_name = "AWS::IoTEvents::AlarmModel" +} + +resource_schema "aws_iotevents_detector_model" { + cloudformation_type_name = "AWS::IoTEvents::DetectorModel" +} + +resource_schema "aws_iotevents_input" { + cloudformation_type_name = "AWS::IoTEvents::Input" +} + +resource_schema "aws_iotfleethub_application" { + cloudformation_type_name = "AWS::IoTFleetHub::Application" +} + +resource_schema "aws_iotfleetwise_campaign" { + cloudformation_type_name = "AWS::IoTFleetWise::Campaign" +} + +resource_schema "aws_iotfleetwise_decoder_manifest" { + cloudformation_type_name = "AWS::IoTFleetWise::DecoderManifest" +} + +resource_schema "aws_iotfleetwise_fleet" { + cloudformation_type_name = "AWS::IoTFleetWise::Fleet" +} + +resource_schema "aws_iotfleetwise_model_manifest" { + cloudformation_type_name = "AWS::IoTFleetWise::ModelManifest" +} + +resource_schema "aws_iotfleetwise_signal_catalog" { + cloudformation_type_name = "AWS::IoTFleetWise::SignalCatalog" +} + +resource_schema "aws_iotfleetwise_vehicle" { + cloudformation_type_name = "AWS::IoTFleetWise::Vehicle" +} + +resource_schema "aws_iotsitewise_access_policy" { + cloudformation_type_name = "AWS::IoTSiteWise::AccessPolicy" +} + +resource_schema "aws_iotsitewise_asset" { + cloudformation_type_name = "AWS::IoTSiteWise::Asset" +} + +resource_schema "aws_iotsitewise_asset_model" { + cloudformation_type_name = "AWS::IoTSiteWise::AssetModel" +} + +resource_schema "aws_iotsitewise_dashboard" { + cloudformation_type_name = "AWS::IoTSiteWise::Dashboard" +} + +resource_schema "aws_iotsitewise_gateway" { + cloudformation_type_name = "AWS::IoTSiteWise::Gateway" +} + +resource_schema "aws_iotsitewise_portal" { + cloudformation_type_name = "AWS::IoTSiteWise::Portal" +} + +resource_schema "aws_iotsitewise_project" { + cloudformation_type_name = "AWS::IoTSiteWise::Project" +} + +resource_schema "aws_iottwinmaker_component_type" { + cloudformation_type_name = "AWS::IoTTwinMaker::ComponentType" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_entity" { + cloudformation_type_name = "AWS::IoTTwinMaker::Entity" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_scene" { + cloudformation_type_name = "AWS::IoTTwinMaker::Scene" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_sync_job" { + cloudformation_type_name = "AWS::IoTTwinMaker::SyncJob" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_workspace" { + cloudformation_type_name = "AWS::IoTTwinMaker::Workspace" +} + +resource_schema "aws_iotwireless_destination" { + cloudformation_type_name = "AWS::IoTWireless::Destination" +} + +resource_schema "aws_iotwireless_device_profile" { + cloudformation_type_name = "AWS::IoTWireless::DeviceProfile" +} + +resource_schema "aws_iotwireless_fuota_task" { + cloudformation_type_name = "AWS::IoTWireless::FuotaTask" +} + +resource_schema "aws_iotwireless_multicast_group" { + cloudformation_type_name = "AWS::IoTWireless::MulticastGroup" +} + +resource_schema "aws_iotwireless_network_analyzer_configuration" { + cloudformation_type_name = "AWS::IoTWireless::NetworkAnalyzerConfiguration" +} + +resource_schema "aws_iotwireless_partner_account" { + cloudformation_type_name = "AWS::IoTWireless::PartnerAccount" +} + +resource_schema "aws_iotwireless_service_profile" { + cloudformation_type_name = "AWS::IoTWireless::ServiceProfile" +} + +resource_schema "aws_iotwireless_task_definition" { + cloudformation_type_name = "AWS::IoTWireless::TaskDefinition" +} + +resource_schema "aws_iotwireless_wireless_device" { + cloudformation_type_name = "AWS::IoTWireless::WirelessDevice" +} + +resource_schema "aws_iotwireless_wireless_device_import_task" { + cloudformation_type_name = "AWS::IoTWireless::WirelessDeviceImportTask" +} + +resource_schema "aws_iotwireless_wireless_gateway" { + cloudformation_type_name = "AWS::IoTWireless::WirelessGateway" +} + +resource_schema "aws_kms_alias" { + cloudformation_type_name = "AWS::KMS::Alias" +} + +resource_schema "aws_kms_key" { + cloudformation_type_name = "AWS::KMS::Key" +} + +resource_schema "aws_kms_replica_key" { + cloudformation_type_name = "AWS::KMS::ReplicaKey" +} + +resource_schema "aws_kafkaconnect_connector" { + cloudformation_type_name = "AWS::KafkaConnect::Connector" +} + +resource_schema "aws_kafkaconnect_custom_plugin" { + cloudformation_type_name = "AWS::KafkaConnect::CustomPlugin" +} + +resource_schema "aws_kafkaconnect_worker_configuration" { + cloudformation_type_name = "AWS::KafkaConnect::WorkerConfiguration" +} + +resource_schema "aws_kendra_data_source" { + cloudformation_type_name = "AWS::Kendra::DataSource" +} + +resource_schema "aws_kendra_faq" { + cloudformation_type_name = "AWS::Kendra::Faq" +} + +resource_schema "aws_kendra_index" { + cloudformation_type_name = "AWS::Kendra::Index" +} + +resource_schema "aws_kendraranking_execution_plan" { + cloudformation_type_name = "AWS::KendraRanking::ExecutionPlan" +} + +resource_schema "aws_kinesis_stream" { + cloudformation_type_name = "AWS::Kinesis::Stream" +} + +resource_schema "aws_kinesisanalyticsv2_application" { + cloudformation_type_name = "AWS::KinesisAnalyticsV2::Application" +} + +resource_schema "aws_kinesisfirehose_delivery_stream" { + cloudformation_type_name = "AWS::KinesisFirehose::DeliveryStream" +} + +resource_schema "aws_kinesisvideo_signaling_channel" { + cloudformation_type_name = "AWS::KinesisVideo::SignalingChannel" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_kinesisvideo_stream" { + cloudformation_type_name = "AWS::KinesisVideo::Stream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lakeformation_data_cells_filter" { + cloudformation_type_name = "AWS::LakeFormation::DataCellsFilter" +} + +resource_schema "aws_lakeformation_principal_permissions" { + cloudformation_type_name = "AWS::LakeFormation::PrincipalPermissions" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lakeformation_tag" { + cloudformation_type_name = "AWS::LakeFormation::Tag" +} + +resource_schema "aws_lakeformation_tag_association" { + cloudformation_type_name = "AWS::LakeFormation::TagAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_alias" { + cloudformation_type_name = "AWS::Lambda::Alias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_code_signing_config" { + cloudformation_type_name = "AWS::Lambda::CodeSigningConfig" +} + +resource_schema "aws_lambda_event_invoke_config" { + cloudformation_type_name = "AWS::Lambda::EventInvokeConfig" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_event_source_mapping" { + cloudformation_type_name = "AWS::Lambda::EventSourceMapping" +} + +resource_schema "aws_lambda_function" { + cloudformation_type_name = "AWS::Lambda::Function" +} + +resource_schema "aws_lambda_layer_version" { + cloudformation_type_name = "AWS::Lambda::LayerVersion" +} + +resource_schema "aws_lambda_layer_version_permission" { + cloudformation_type_name = "AWS::Lambda::LayerVersionPermission" +} + +resource_schema "aws_lambda_permission" { + cloudformation_type_name = "AWS::Lambda::Permission" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_url" { + cloudformation_type_name = "AWS::Lambda::Url" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_version" { + cloudformation_type_name = "AWS::Lambda::Version" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_launchwizard_deployment" { + cloudformation_type_name = "AWS::LaunchWizard::Deployment" +} + +resource_schema "aws_lex_bot" { + cloudformation_type_name = "AWS::Lex::Bot" +} + +resource_schema "aws_lex_bot_alias" { + cloudformation_type_name = "AWS::Lex::BotAlias" +} + +resource_schema "aws_lex_bot_version" { + cloudformation_type_name = "AWS::Lex::BotVersion" +} + +resource_schema "aws_lex_resource_policy" { + cloudformation_type_name = "AWS::Lex::ResourcePolicy" +} + +resource_schema "aws_licensemanager_grant" { + cloudformation_type_name = "AWS::LicenseManager::Grant" +} + +resource_schema "aws_licensemanager_license" { + cloudformation_type_name = "AWS::LicenseManager::License" +} + +resource_schema "aws_lightsail_alarm" { + cloudformation_type_name = "AWS::Lightsail::Alarm" +} + +resource_schema "aws_lightsail_bucket" { + cloudformation_type_name = "AWS::Lightsail::Bucket" +} + +resource_schema "aws_lightsail_certificate" { + cloudformation_type_name = "AWS::Lightsail::Certificate" +} + +resource_schema "aws_lightsail_container" { + cloudformation_type_name = "AWS::Lightsail::Container" +} + +resource_schema "aws_lightsail_database" { + cloudformation_type_name = "AWS::Lightsail::Database" +} + +resource_schema "aws_lightsail_disk" { + cloudformation_type_name = "AWS::Lightsail::Disk" +} + +resource_schema "aws_lightsail_distribution" { + cloudformation_type_name = "AWS::Lightsail::Distribution" +} + +resource_schema "aws_lightsail_instance" { + cloudformation_type_name = "AWS::Lightsail::Instance" +} + +resource_schema "aws_lightsail_load_balancer" { + cloudformation_type_name = "AWS::Lightsail::LoadBalancer" +} + +resource_schema "aws_lightsail_load_balancer_tls_certificate" { + cloudformation_type_name = "AWS::Lightsail::LoadBalancerTlsCertificate" +} + +resource_schema "aws_lightsail_static_ip" { + cloudformation_type_name = "AWS::Lightsail::StaticIp" +} + +resource_schema "aws_location_api_key" { + cloudformation_type_name = "AWS::Location::APIKey" +} + +resource_schema "aws_location_geofence_collection" { + cloudformation_type_name = "AWS::Location::GeofenceCollection" +} + +resource_schema "aws_location_map" { + cloudformation_type_name = "AWS::Location::Map" +} + +resource_schema "aws_location_place_index" { + cloudformation_type_name = "AWS::Location::PlaceIndex" +} + +resource_schema "aws_location_route_calculator" { + cloudformation_type_name = "AWS::Location::RouteCalculator" +} + +resource_schema "aws_location_tracker" { + cloudformation_type_name = "AWS::Location::Tracker" +} + +resource_schema "aws_location_tracker_consumer" { + cloudformation_type_name = "AWS::Location::TrackerConsumer" +} + +resource_schema "aws_logs_account_policy" { + cloudformation_type_name = "AWS::Logs::AccountPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_logs_delivery" { + cloudformation_type_name = "AWS::Logs::Delivery" +} + +resource_schema "aws_logs_delivery_destination" { + cloudformation_type_name = "AWS::Logs::DeliveryDestination" +} + +resource_schema "aws_logs_delivery_source" { + cloudformation_type_name = "AWS::Logs::DeliverySource" +} + +resource_schema "aws_logs_destination" { + cloudformation_type_name = "AWS::Logs::Destination" +} + +resource_schema "aws_logs_log_anomaly_detector" { + cloudformation_type_name = "AWS::Logs::LogAnomalyDetector" +} + +resource_schema "aws_logs_log_group" { + cloudformation_type_name = "AWS::Logs::LogGroup" +} + +resource_schema "aws_logs_log_stream" { + cloudformation_type_name = "AWS::Logs::LogStream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_logs_metric_filter" { + cloudformation_type_name = "AWS::Logs::MetricFilter" +} + +resource_schema "aws_logs_query_definition" { + cloudformation_type_name = "AWS::Logs::QueryDefinition" +} + +resource_schema "aws_logs_resource_policy" { + cloudformation_type_name = "AWS::Logs::ResourcePolicy" +} + +resource_schema "aws_logs_subscription_filter" { + cloudformation_type_name = "AWS::Logs::SubscriptionFilter" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lookoutequipment_inference_scheduler" { + cloudformation_type_name = "AWS::LookoutEquipment::InferenceScheduler" +} + +resource_schema "aws_lookoutmetrics_alert" { + cloudformation_type_name = "AWS::LookoutMetrics::Alert" +} + +resource_schema "aws_lookoutmetrics_anomaly_detector" { + cloudformation_type_name = "AWS::LookoutMetrics::AnomalyDetector" +} + +resource_schema "aws_lookoutvision_project" { + cloudformation_type_name = "AWS::LookoutVision::Project" +} + +resource_schema "aws_m2_application" { + cloudformation_type_name = "AWS::M2::Application" +} + +resource_schema "aws_m2_environment" { + cloudformation_type_name = "AWS::M2::Environment" +} + +resource_schema "aws_msk_batch_scram_secret" { + cloudformation_type_name = "AWS::MSK::BatchScramSecret" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_msk_cluster" { + cloudformation_type_name = "AWS::MSK::Cluster" +} + +resource_schema "aws_msk_cluster_policy" { + cloudformation_type_name = "AWS::MSK::ClusterPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_msk_configuration" { + cloudformation_type_name = "AWS::MSK::Configuration" +} + +resource_schema "aws_msk_replicator" { + cloudformation_type_name = "AWS::MSK::Replicator" +} + +resource_schema "aws_msk_serverless_cluster" { + cloudformation_type_name = "AWS::MSK::ServerlessCluster" +} + +resource_schema "aws_msk_vpc_connection" { + cloudformation_type_name = "AWS::MSK::VpcConnection" +} + +resource_schema "aws_mwaa_environment" { + cloudformation_type_name = "AWS::MWAA::Environment" +} + +resource_schema "aws_macie_allow_list" { + cloudformation_type_name = "AWS::Macie::AllowList" +} + +resource_schema "aws_macie_custom_data_identifier" { + cloudformation_type_name = "AWS::Macie::CustomDataIdentifier" +} + +resource_schema "aws_macie_findings_filter" { + cloudformation_type_name = "AWS::Macie::FindingsFilter" +} + +resource_schema "aws_macie_session" { + cloudformation_type_name = "AWS::Macie::Session" +} + +resource_schema "aws_managedblockchain_accessor" { + cloudformation_type_name = "AWS::ManagedBlockchain::Accessor" +} + +resource_schema "aws_mediaconnect_bridge" { + cloudformation_type_name = "AWS::MediaConnect::Bridge" +} + +resource_schema "aws_mediaconnect_bridge_output" { + cloudformation_type_name = "AWS::MediaConnect::BridgeOutput" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediaconnect_bridge_source" { + cloudformation_type_name = "AWS::MediaConnect::BridgeSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediaconnect_flow" { + cloudformation_type_name = "AWS::MediaConnect::Flow" +} + +resource_schema "aws_mediaconnect_flow_entitlement" { + cloudformation_type_name = "AWS::MediaConnect::FlowEntitlement" +} + +resource_schema "aws_mediaconnect_flow_output" { + cloudformation_type_name = "AWS::MediaConnect::FlowOutput" +} + +resource_schema "aws_mediaconnect_flow_source" { + cloudformation_type_name = "AWS::MediaConnect::FlowSource" +} + +resource_schema "aws_mediaconnect_flow_vpc_interface" { + cloudformation_type_name = "AWS::MediaConnect::FlowVpcInterface" +} + +resource_schema "aws_mediaconnect_gateway" { + cloudformation_type_name = "AWS::MediaConnect::Gateway" +} + +resource_schema "aws_medialive_multiplex" { + cloudformation_type_name = "AWS::MediaLive::Multiplex" +} + +resource_schema "aws_medialive_multiplexprogram" { + cloudformation_type_name = "AWS::MediaLive::Multiplexprogram" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackage_asset" { + cloudformation_type_name = "AWS::MediaPackage::Asset" +} + +resource_schema "aws_mediapackage_channel" { + cloudformation_type_name = "AWS::MediaPackage::Channel" +} + +resource_schema "aws_mediapackage_origin_endpoint" { + cloudformation_type_name = "AWS::MediaPackage::OriginEndpoint" +} + +resource_schema "aws_mediapackage_packaging_configuration" { + cloudformation_type_name = "AWS::MediaPackage::PackagingConfiguration" +} + +resource_schema "aws_mediapackage_packaging_group" { + cloudformation_type_name = "AWS::MediaPackage::PackagingGroup" +} + +resource_schema "aws_mediapackagev2_channel" { + cloudformation_type_name = "AWS::MediaPackageV2::Channel" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackagev2_channel_group" { + cloudformation_type_name = "AWS::MediaPackageV2::ChannelGroup" +} + +resource_schema "aws_mediapackagev2_channel_policy" { + cloudformation_type_name = "AWS::MediaPackageV2::ChannelPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackagev2_origin_endpoint" { + cloudformation_type_name = "AWS::MediaPackageV2::OriginEndpoint" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackagev2_origin_endpoint_policy" { + cloudformation_type_name = "AWS::MediaPackageV2::OriginEndpointPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediatailor_channel" { + cloudformation_type_name = "AWS::MediaTailor::Channel" +} + +resource_schema "aws_mediatailor_channel_policy" { + cloudformation_type_name = "AWS::MediaTailor::ChannelPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediatailor_live_source" { + cloudformation_type_name = "AWS::MediaTailor::LiveSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediatailor_playback_configuration" { + cloudformation_type_name = "AWS::MediaTailor::PlaybackConfiguration" +} + +resource_schema "aws_mediatailor_source_location" { + cloudformation_type_name = "AWS::MediaTailor::SourceLocation" +} + +resource_schema "aws_mediatailor_vod_source" { + cloudformation_type_name = "AWS::MediaTailor::VodSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_memorydb_acl" { + cloudformation_type_name = "AWS::MemoryDB::ACL" +} + +resource_schema "aws_memorydb_cluster" { + cloudformation_type_name = "AWS::MemoryDB::Cluster" +} + +resource_schema "aws_memorydb_parameter_group" { + cloudformation_type_name = "AWS::MemoryDB::ParameterGroup" +} + +resource_schema "aws_memorydb_subnet_group" { + cloudformation_type_name = "AWS::MemoryDB::SubnetGroup" +} + +resource_schema "aws_memorydb_user" { + cloudformation_type_name = "AWS::MemoryDB::User" +} + +resource_schema "aws_neptune_db_cluster" { + cloudformation_type_name = "AWS::Neptune::DBCluster" +} + +resource_schema "aws_neptunegraph_graph" { + cloudformation_type_name = "AWS::NeptuneGraph::Graph" +} + +resource_schema "aws_neptunegraph_private_graph_endpoint" { + cloudformation_type_name = "AWS::NeptuneGraph::PrivateGraphEndpoint" +} + +resource_schema "aws_networkfirewall_firewall" { + cloudformation_type_name = "AWS::NetworkFirewall::Firewall" +} + +resource_schema "aws_networkfirewall_firewall_policy" { + cloudformation_type_name = "AWS::NetworkFirewall::FirewallPolicy" +} + +resource_schema "aws_networkfirewall_logging_configuration" { + cloudformation_type_name = "AWS::NetworkFirewall::LoggingConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkfirewall_rule_group" { + cloudformation_type_name = "AWS::NetworkFirewall::RuleGroup" +} + +resource_schema "aws_networkfirewall_tls_inspection_configuration" { + cloudformation_type_name = "AWS::NetworkFirewall::TLSInspectionConfiguration" +} + +resource_schema "aws_networkmanager_connect_attachment" { + cloudformation_type_name = "AWS::NetworkManager::ConnectAttachment" +} + +resource_schema "aws_networkmanager_connect_peer" { + cloudformation_type_name = "AWS::NetworkManager::ConnectPeer" +} + +resource_schema "aws_networkmanager_core_network" { + cloudformation_type_name = "AWS::NetworkManager::CoreNetwork" +} + +resource_schema "aws_networkmanager_customer_gateway_association" { + cloudformation_type_name = "AWS::NetworkManager::CustomerGatewayAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_device" { + cloudformation_type_name = "AWS::NetworkManager::Device" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_global_network" { + cloudformation_type_name = "AWS::NetworkManager::GlobalNetwork" +} + +resource_schema "aws_networkmanager_link" { + cloudformation_type_name = "AWS::NetworkManager::Link" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_link_association" { + cloudformation_type_name = "AWS::NetworkManager::LinkAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_site" { + cloudformation_type_name = "AWS::NetworkManager::Site" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_site_to_site_vpn_attachment" { + cloudformation_type_name = "AWS::NetworkManager::SiteToSiteVpnAttachment" +} + +resource_schema "aws_networkmanager_transit_gateway_peering" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayPeering" +} + +resource_schema "aws_networkmanager_transit_gateway_registration" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayRegistration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_transit_gateway_route_table_attachment" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayRouteTableAttachment" +} + +resource_schema "aws_networkmanager_vpc_attachment" { + cloudformation_type_name = "AWS::NetworkManager::VpcAttachment" +} + +resource_schema "aws_nimblestudio_launch_profile" { + cloudformation_type_name = "AWS::NimbleStudio::LaunchProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_nimblestudio_streaming_image" { + cloudformation_type_name = "AWS::NimbleStudio::StreamingImage" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_nimblestudio_studio" { + cloudformation_type_name = "AWS::NimbleStudio::Studio" +} + +resource_schema "aws_nimblestudio_studio_component" { + cloudformation_type_name = "AWS::NimbleStudio::StudioComponent" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_osis_pipeline" { + cloudformation_type_name = "AWS::OSIS::Pipeline" +} + +resource_schema "aws_oam_link" { + cloudformation_type_name = "AWS::Oam::Link" +} + +resource_schema "aws_oam_sink" { + cloudformation_type_name = "AWS::Oam::Sink" +} + +resource_schema "aws_omics_annotation_store" { + cloudformation_type_name = "AWS::Omics::AnnotationStore" +} + +resource_schema "aws_omics_reference_store" { + cloudformation_type_name = "AWS::Omics::ReferenceStore" +} + +resource_schema "aws_omics_run_group" { + cloudformation_type_name = "AWS::Omics::RunGroup" +} + +resource_schema "aws_omics_sequence_store" { + cloudformation_type_name = "AWS::Omics::SequenceStore" +} + +resource_schema "aws_omics_variant_store" { + cloudformation_type_name = "AWS::Omics::VariantStore" +} + +resource_schema "aws_omics_workflow" { + cloudformation_type_name = "AWS::Omics::Workflow" +} + +resource_schema "aws_opensearchserverless_access_policy" { + cloudformation_type_name = "AWS::OpenSearchServerless::AccessPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_collection" { + cloudformation_type_name = "AWS::OpenSearchServerless::Collection" +} + +resource_schema "aws_opensearchserverless_lifecycle_policy" { + cloudformation_type_name = "AWS::OpenSearchServerless::LifecyclePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_security_config" { + cloudformation_type_name = "AWS::OpenSearchServerless::SecurityConfig" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_security_policy" { + cloudformation_type_name = "AWS::OpenSearchServerless::SecurityPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_vpc_endpoint" { + cloudformation_type_name = "AWS::OpenSearchServerless::VpcEndpoint" +} + +resource_schema "aws_opensearchservice_domain" { + cloudformation_type_name = "AWS::OpenSearchService::Domain" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opsworkscm_server" { + cloudformation_type_name = "AWS::OpsWorksCM::Server" +} + +resource_schema "aws_organizations_account" { + cloudformation_type_name = "AWS::Organizations::Account" +} + +resource_schema "aws_organizations_organization" { + cloudformation_type_name = "AWS::Organizations::Organization" +} + +resource_schema "aws_organizations_organizational_unit" { + cloudformation_type_name = "AWS::Organizations::OrganizationalUnit" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_organizations_policy" { + cloudformation_type_name = "AWS::Organizations::Policy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_organizations_resource_policy" { + cloudformation_type_name = "AWS::Organizations::ResourcePolicy" +} + +resource_schema "aws_pcaconnectorad_connector" { + cloudformation_type_name = "AWS::PCAConnectorAD::Connector" +} + +resource_schema "aws_pcaconnectorad_directory_registration" { + cloudformation_type_name = "AWS::PCAConnectorAD::DirectoryRegistration" +} + +resource_schema "aws_pcaconnectorad_service_principal_name" { + cloudformation_type_name = "AWS::PCAConnectorAD::ServicePrincipalName" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorad_template" { + cloudformation_type_name = "AWS::PCAConnectorAD::Template" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorad_template_group_access_control_entry" { + cloudformation_type_name = "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_panorama_application_instance" { + cloudformation_type_name = "AWS::Panorama::ApplicationInstance" +} + +resource_schema "aws_panorama_package" { + cloudformation_type_name = "AWS::Panorama::Package" +} + +resource_schema "aws_panorama_package_version" { + cloudformation_type_name = "AWS::Panorama::PackageVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_paymentcryptography_alias" { + cloudformation_type_name = "AWS::PaymentCryptography::Alias" +} + +resource_schema "aws_paymentcryptography_key" { + cloudformation_type_name = "AWS::PaymentCryptography::Key" +} + +resource_schema "aws_personalize_dataset" { + cloudformation_type_name = "AWS::Personalize::Dataset" +} + +resource_schema "aws_personalize_dataset_group" { + cloudformation_type_name = "AWS::Personalize::DatasetGroup" +} + +resource_schema "aws_personalize_schema" { + cloudformation_type_name = "AWS::Personalize::Schema" +} + +resource_schema "aws_personalize_solution" { + cloudformation_type_name = "AWS::Personalize::Solution" +} + +resource_schema "aws_pinpoint_in_app_template" { + cloudformation_type_name = "AWS::Pinpoint::InAppTemplate" +} + +resource_schema "aws_pipes_pipe" { + cloudformation_type_name = "AWS::Pipes::Pipe" +} + +resource_schema "aws_proton_environment_account_connection" { + cloudformation_type_name = "AWS::Proton::EnvironmentAccountConnection" +} + +resource_schema "aws_proton_environment_template" { + cloudformation_type_name = "AWS::Proton::EnvironmentTemplate" +} + +resource_schema "aws_proton_service_template" { + cloudformation_type_name = "AWS::Proton::ServiceTemplate" +} + +resource_schema "aws_qbusiness_application" { + cloudformation_type_name = "AWS::QBusiness::Application" +} + +resource_schema "aws_qbusiness_data_source" { + cloudformation_type_name = "AWS::QBusiness::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_index" { + cloudformation_type_name = "AWS::QBusiness::Index" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_plugin" { + cloudformation_type_name = "AWS::QBusiness::Plugin" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_retriever" { + cloudformation_type_name = "AWS::QBusiness::Retriever" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_web_experience" { + cloudformation_type_name = "AWS::QBusiness::WebExperience" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qldb_stream" { + cloudformation_type_name = "AWS::QLDB::Stream" +} + +resource_schema "aws_quicksight_analysis" { + cloudformation_type_name = "AWS::QuickSight::Analysis" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_dashboard" { + cloudformation_type_name = "AWS::QuickSight::Dashboard" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_data_set" { + cloudformation_type_name = "AWS::QuickSight::DataSet" +} + +resource_schema "aws_quicksight_data_source" { + cloudformation_type_name = "AWS::QuickSight::DataSource" +} + +resource_schema "aws_quicksight_refresh_schedule" { + cloudformation_type_name = "AWS::QuickSight::RefreshSchedule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_template" { + cloudformation_type_name = "AWS::QuickSight::Template" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_theme" { + cloudformation_type_name = "AWS::QuickSight::Theme" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_topic" { + cloudformation_type_name = "AWS::QuickSight::Topic" +} + +resource_schema "aws_quicksight_vpc_connection" { + cloudformation_type_name = "AWS::QuickSight::VPCConnection" +} + +resource_schema "aws_ram_permission" { + cloudformation_type_name = "AWS::RAM::Permission" +} + +resource_schema "aws_rds_custom_db_engine_version" { + cloudformation_type_name = "AWS::RDS::CustomDBEngineVersion" +} + +resource_schema "aws_rds_db_cluster" { + cloudformation_type_name = "AWS::RDS::DBCluster" +} + +resource_schema "aws_rds_db_cluster_parameter_group" { + cloudformation_type_name = "AWS::RDS::DBClusterParameterGroup" +} + +resource_schema "aws_rds_db_instance" { + cloudformation_type_name = "AWS::RDS::DBInstance" +} + +resource_schema "aws_rds_db_parameter_group" { + cloudformation_type_name = "AWS::RDS::DBParameterGroup" +} + +resource_schema "aws_rds_db_proxy" { + cloudformation_type_name = "AWS::RDS::DBProxy" +} + +resource_schema "aws_rds_db_proxy_endpoint" { + cloudformation_type_name = "AWS::RDS::DBProxyEndpoint" +} + +resource_schema "aws_rds_db_proxy_target_group" { + cloudformation_type_name = "AWS::RDS::DBProxyTargetGroup" +} + +resource_schema "aws_rds_db_subnet_group" { + cloudformation_type_name = "AWS::RDS::DBSubnetGroup" +} + +resource_schema "aws_rds_event_subscription" { + cloudformation_type_name = "AWS::RDS::EventSubscription" +} + +resource_schema "aws_rds_global_cluster" { + cloudformation_type_name = "AWS::RDS::GlobalCluster" +} + +resource_schema "aws_rds_integration" { + cloudformation_type_name = "AWS::RDS::Integration" +} + +resource_schema "aws_rds_option_group" { + cloudformation_type_name = "AWS::RDS::OptionGroup" +} + +resource_schema "aws_rum_app_monitor" { + cloudformation_type_name = "AWS::RUM::AppMonitor" +} + +resource_schema "aws_redshift_cluster" { + cloudformation_type_name = "AWS::Redshift::Cluster" +} + +resource_schema "aws_redshift_cluster_parameter_group" { + cloudformation_type_name = "AWS::Redshift::ClusterParameterGroup" +} + +resource_schema "aws_redshift_cluster_subnet_group" { + cloudformation_type_name = "AWS::Redshift::ClusterSubnetGroup" +} + +resource_schema "aws_redshift_endpoint_access" { + cloudformation_type_name = "AWS::Redshift::EndpointAccess" +} + +resource_schema "aws_redshift_endpoint_authorization" { + cloudformation_type_name = "AWS::Redshift::EndpointAuthorization" +} + +resource_schema "aws_redshift_event_subscription" { + cloudformation_type_name = "AWS::Redshift::EventSubscription" +} + +resource_schema "aws_redshift_scheduled_action" { + cloudformation_type_name = "AWS::Redshift::ScheduledAction" +} + +resource_schema "aws_redshiftserverless_namespace" { + cloudformation_type_name = "AWS::RedshiftServerless::Namespace" +} + +resource_schema "aws_redshiftserverless_workgroup" { + cloudformation_type_name = "AWS::RedshiftServerless::Workgroup" +} + +resource_schema "aws_refactorspaces_application" { + cloudformation_type_name = "AWS::RefactorSpaces::Application" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_refactorspaces_environment" { + cloudformation_type_name = "AWS::RefactorSpaces::Environment" +} + +resource_schema "aws_refactorspaces_route" { + cloudformation_type_name = "AWS::RefactorSpaces::Route" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_refactorspaces_service" { + cloudformation_type_name = "AWS::RefactorSpaces::Service" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_rekognition_collection" { + cloudformation_type_name = "AWS::Rekognition::Collection" +} + +resource_schema "aws_rekognition_project" { + cloudformation_type_name = "AWS::Rekognition::Project" +} + +resource_schema "aws_rekognition_stream_processor" { + cloudformation_type_name = "AWS::Rekognition::StreamProcessor" +} + +resource_schema "aws_resiliencehub_app" { + cloudformation_type_name = "AWS::ResilienceHub::App" +} + +resource_schema "aws_resiliencehub_resiliency_policy" { + cloudformation_type_name = "AWS::ResilienceHub::ResiliencyPolicy" +} + +resource_schema "aws_resourceexplorer2_default_view_association" { + cloudformation_type_name = "AWS::ResourceExplorer2::DefaultViewAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_resourceexplorer2_index" { + cloudformation_type_name = "AWS::ResourceExplorer2::Index" +} + +resource_schema "aws_resourceexplorer2_view" { + cloudformation_type_name = "AWS::ResourceExplorer2::View" +} + +resource_schema "aws_resourcegroups_group" { + cloudformation_type_name = "AWS::ResourceGroups::Group" +} + +resource_schema "aws_robomaker_fleet" { + cloudformation_type_name = "AWS::RoboMaker::Fleet" +} + +resource_schema "aws_robomaker_robot" { + cloudformation_type_name = "AWS::RoboMaker::Robot" +} + +resource_schema "aws_robomaker_robot_application" { + cloudformation_type_name = "AWS::RoboMaker::RobotApplication" +} + +resource_schema "aws_robomaker_robot_application_version" { + cloudformation_type_name = "AWS::RoboMaker::RobotApplicationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_robomaker_simulation_application" { + cloudformation_type_name = "AWS::RoboMaker::SimulationApplication" +} + +resource_schema "aws_robomaker_simulation_application_version" { + cloudformation_type_name = "AWS::RoboMaker::SimulationApplicationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_rolesanywhere_crl" { + cloudformation_type_name = "AWS::RolesAnywhere::CRL" +} + +resource_schema "aws_rolesanywhere_profile" { + cloudformation_type_name = "AWS::RolesAnywhere::Profile" +} + +resource_schema "aws_rolesanywhere_trust_anchor" { + cloudformation_type_name = "AWS::RolesAnywhere::TrustAnchor" +} + +resource_schema "aws_route53_cidr_collection" { + cloudformation_type_name = "AWS::Route53::CidrCollection" +} + +resource_schema "aws_route53_dnssec" { + cloudformation_type_name = "AWS::Route53::DNSSEC" +} + +resource_schema "aws_route53_health_check" { + cloudformation_type_name = "AWS::Route53::HealthCheck" +} + +resource_schema "aws_route53_hosted_zone" { + cloudformation_type_name = "AWS::Route53::HostedZone" +} + +resource_schema "aws_route53_key_signing_key" { + cloudformation_type_name = "AWS::Route53::KeySigningKey" +} + +resource_schema "aws_route53profiles_profile" { + cloudformation_type_name = "AWS::Route53Profiles::Profile" +} + +resource_schema "aws_route53profiles_profile_association" { + cloudformation_type_name = "AWS::Route53Profiles::ProfileAssociation" +} + +resource_schema "aws_route53profiles_profile_resource_association" { + cloudformation_type_name = "AWS::Route53Profiles::ProfileResourceAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53recoverycontrol_cluster" { + cloudformation_type_name = "AWS::Route53RecoveryControl::Cluster" +} + +resource_schema "aws_route53recoverycontrol_control_panel" { + cloudformation_type_name = "AWS::Route53RecoveryControl::ControlPanel" +} + +resource_schema "aws_route53recoverycontrol_routing_control" { + cloudformation_type_name = "AWS::Route53RecoveryControl::RoutingControl" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53recoverycontrol_safety_rule" { + cloudformation_type_name = "AWS::Route53RecoveryControl::SafetyRule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53recoveryreadiness_cell" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::Cell" +} + +resource_schema "aws_route53recoveryreadiness_readiness_check" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::ReadinessCheck" +} + +resource_schema "aws_route53recoveryreadiness_recovery_group" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::RecoveryGroup" +} + +resource_schema "aws_route53recoveryreadiness_resource_set" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::ResourceSet" +} + +resource_schema "aws_route53resolver_firewall_domain_list" { + cloudformation_type_name = "AWS::Route53Resolver::FirewallDomainList" +} + +resource_schema "aws_route53resolver_firewall_rule_group" { + cloudformation_type_name = "AWS::Route53Resolver::FirewallRuleGroup" +} + +resource_schema "aws_route53resolver_firewall_rule_group_association" { + cloudformation_type_name = "AWS::Route53Resolver::FirewallRuleGroupAssociation" +} + +resource_schema "aws_route53resolver_outpost_resolver" { + cloudformation_type_name = "AWS::Route53Resolver::OutpostResolver" +} + +resource_schema "aws_route53resolver_resolver_config" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverConfig" +} + +resource_schema "aws_route53resolver_resolver_dnssec_config" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverDNSSECConfig" +} + +resource_schema "aws_route53resolver_resolver_query_logging_config" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverQueryLoggingConfig" +} + +resource_schema "aws_route53resolver_resolver_query_logging_config_association" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation" +} + +resource_schema "aws_route53resolver_resolver_rule" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverRule" +} + +resource_schema "aws_route53resolver_resolver_rule_association" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverRuleAssociation" +} + +resource_schema "aws_s3_access_grant" { + cloudformation_type_name = "AWS::S3::AccessGrant" +} + +resource_schema "aws_s3_access_grants_instance" { + cloudformation_type_name = "AWS::S3::AccessGrantsInstance" +} + +resource_schema "aws_s3_access_grants_location" { + cloudformation_type_name = "AWS::S3::AccessGrantsLocation" +} + +resource_schema "aws_s3_access_point" { + cloudformation_type_name = "AWS::S3::AccessPoint" +} + +resource_schema "aws_s3_bucket" { + cloudformation_type_name = "AWS::S3::Bucket" +} + +resource_schema "aws_s3_bucket_policy" { + cloudformation_type_name = "AWS::S3::BucketPolicy" +} + +resource_schema "aws_s3_multi_region_access_point" { + cloudformation_type_name = "AWS::S3::MultiRegionAccessPoint" +} + +resource_schema "aws_s3_multi_region_access_point_policy" { + cloudformation_type_name = "AWS::S3::MultiRegionAccessPointPolicy" +} + +resource_schema "aws_s3_storage_lens" { + cloudformation_type_name = "AWS::S3::StorageLens" +} + +resource_schema "aws_s3_storage_lens_group" { + cloudformation_type_name = "AWS::S3::StorageLensGroup" +} + +resource_schema "aws_s3express_bucket_policy" { + cloudformation_type_name = "AWS::S3Express::BucketPolicy" +} + +resource_schema "aws_s3express_directory_bucket" { + cloudformation_type_name = "AWS::S3Express::DirectoryBucket" +} + +resource_schema "aws_s3objectlambda_access_point" { + cloudformation_type_name = "AWS::S3ObjectLambda::AccessPoint" +} + +resource_schema "aws_s3objectlambda_access_point_policy" { + cloudformation_type_name = "AWS::S3ObjectLambda::AccessPointPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_access_point" { + cloudformation_type_name = "AWS::S3Outposts::AccessPoint" +} + +resource_schema "aws_s3outposts_bucket" { + cloudformation_type_name = "AWS::S3Outposts::Bucket" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_bucket_policy" { + cloudformation_type_name = "AWS::S3Outposts::BucketPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_endpoint" { + cloudformation_type_name = "AWS::S3Outposts::Endpoint" +} + +resource_schema "aws_ses_configuration_set" { + cloudformation_type_name = "AWS::SES::ConfigurationSet" +} + +resource_schema "aws_ses_configuration_set_event_destination" { + cloudformation_type_name = "AWS::SES::ConfigurationSetEventDestination" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ses_contact_list" { + cloudformation_type_name = "AWS::SES::ContactList" +} + +resource_schema "aws_ses_dedicated_ip_pool" { + cloudformation_type_name = "AWS::SES::DedicatedIpPool" +} + +resource_schema "aws_ses_email_identity" { + cloudformation_type_name = "AWS::SES::EmailIdentity" +} + +resource_schema "aws_ses_mail_manager_addon_instance" { + cloudformation_type_name = "AWS::SES::MailManagerAddonInstance" +} + +resource_schema "aws_ses_mail_manager_addon_subscription" { + cloudformation_type_name = "AWS::SES::MailManagerAddonSubscription" +} + +resource_schema "aws_ses_mail_manager_archive" { + cloudformation_type_name = "AWS::SES::MailManagerArchive" +} + +resource_schema "aws_ses_mail_manager_ingress_point" { + cloudformation_type_name = "AWS::SES::MailManagerIngressPoint" +} + +resource_schema "aws_ses_mail_manager_relay" { + cloudformation_type_name = "AWS::SES::MailManagerRelay" +} + +resource_schema "aws_ses_mail_manager_rule_set" { + cloudformation_type_name = "AWS::SES::MailManagerRuleSet" +} + +resource_schema "aws_ses_mail_manager_traffic_policy" { + cloudformation_type_name = "AWS::SES::MailManagerTrafficPolicy" +} + +resource_schema "aws_ses_template" { + cloudformation_type_name = "AWS::SES::Template" +} + +resource_schema "aws_ses_vdm_attributes" { + cloudformation_type_name = "AWS::SES::VdmAttributes" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sns_topic" { + cloudformation_type_name = "AWS::SNS::Topic" +} + +resource_schema "aws_sns_topic_inline_policy" { + cloudformation_type_name = "AWS::SNS::TopicInlinePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sqs_queue" { + cloudformation_type_name = "AWS::SQS::Queue" +} + +resource_schema "aws_sqs_queue_inline_policy" { + cloudformation_type_name = "AWS::SQS::QueueInlinePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ssm_association" { + cloudformation_type_name = "AWS::SSM::Association" +} + +resource_schema "aws_ssm_document" { + cloudformation_type_name = "AWS::SSM::Document" +} + +resource_schema "aws_ssm_parameter" { + cloudformation_type_name = "AWS::SSM::Parameter" +} + +resource_schema "aws_ssm_patch_baseline" { + cloudformation_type_name = "AWS::SSM::PatchBaseline" +} + +resource_schema "aws_ssm_resource_data_sync" { + cloudformation_type_name = "AWS::SSM::ResourceDataSync" +} + +resource_schema "aws_ssm_resource_policy" { + cloudformation_type_name = "AWS::SSM::ResourcePolicy" +} + +resource_schema "aws_ssmcontacts_contact" { + cloudformation_type_name = "AWS::SSMContacts::Contact" +} + +resource_schema "aws_ssmcontacts_contact_channel" { + cloudformation_type_name = "AWS::SSMContacts::ContactChannel" +} + +resource_schema "aws_ssmcontacts_plan" { + cloudformation_type_name = "AWS::SSMContacts::Plan" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ssmcontacts_rotation" { + cloudformation_type_name = "AWS::SSMContacts::Rotation" +} + +resource_schema "aws_ssmincidents_replication_set" { + cloudformation_type_name = "AWS::SSMIncidents::ReplicationSet" +} + +resource_schema "aws_ssmincidents_response_plan" { + cloudformation_type_name = "AWS::SSMIncidents::ResponsePlan" +} + +resource_schema "aws_sso_application" { + cloudformation_type_name = "AWS::SSO::Application" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sso_application_assignment" { + cloudformation_type_name = "AWS::SSO::ApplicationAssignment" +} + +resource_schema "aws_sso_assignment" { + cloudformation_type_name = "AWS::SSO::Assignment" +} + +resource_schema "aws_sso_instance" { + cloudformation_type_name = "AWS::SSO::Instance" +} + +resource_schema "aws_sso_instance_access_control_attribute_configuration" { + cloudformation_type_name = "AWS::SSO::InstanceAccessControlAttributeConfiguration" +} + +resource_schema "aws_sso_permission_set" { + cloudformation_type_name = "AWS::SSO::PermissionSet" +} + +resource_schema "aws_sagemaker_app" { + cloudformation_type_name = "AWS::SageMaker::App" +} + +resource_schema "aws_sagemaker_app_image_config" { + cloudformation_type_name = "AWS::SageMaker::AppImageConfig" +} + +resource_schema "aws_sagemaker_data_quality_job_definition" { + cloudformation_type_name = "AWS::SageMaker::DataQualityJobDefinition" +} + +resource_schema "aws_sagemaker_device" { + cloudformation_type_name = "AWS::SageMaker::Device" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_device_fleet" { + cloudformation_type_name = "AWS::SageMaker::DeviceFleet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_domain" { + cloudformation_type_name = "AWS::SageMaker::Domain" +} + +resource_schema "aws_sagemaker_feature_group" { + cloudformation_type_name = "AWS::SageMaker::FeatureGroup" +} + +resource_schema "aws_sagemaker_image" { + cloudformation_type_name = "AWS::SageMaker::Image" +} + +resource_schema "aws_sagemaker_image_version" { + cloudformation_type_name = "AWS::SageMaker::ImageVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_inference_component" { + cloudformation_type_name = "AWS::SageMaker::InferenceComponent" +} + +resource_schema "aws_sagemaker_inference_experiment" { + cloudformation_type_name = "AWS::SageMaker::InferenceExperiment" +} + +resource_schema "aws_sagemaker_mlflow_tracking_server" { + cloudformation_type_name = "AWS::SageMaker::MlflowTrackingServer" +} + +resource_schema "aws_sagemaker_model_bias_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelBiasJobDefinition" +} + +resource_schema "aws_sagemaker_model_card" { + cloudformation_type_name = "AWS::SageMaker::ModelCard" +} + +resource_schema "aws_sagemaker_model_explainability_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelExplainabilityJobDefinition" +} + +resource_schema "aws_sagemaker_model_package" { + cloudformation_type_name = "AWS::SageMaker::ModelPackage" +} + +resource_schema "aws_sagemaker_model_package_group" { + cloudformation_type_name = "AWS::SageMaker::ModelPackageGroup" +} + +resource_schema "aws_sagemaker_model_quality_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelQualityJobDefinition" +} + +resource_schema "aws_sagemaker_monitoring_schedule" { + cloudformation_type_name = "AWS::SageMaker::MonitoringSchedule" +} + +resource_schema "aws_sagemaker_pipeline" { + cloudformation_type_name = "AWS::SageMaker::Pipeline" +} + +resource_schema "aws_sagemaker_project" { + cloudformation_type_name = "AWS::SageMaker::Project" +} + +resource_schema "aws_sagemaker_space" { + cloudformation_type_name = "AWS::SageMaker::Space" +} + +resource_schema "aws_sagemaker_user_profile" { + cloudformation_type_name = "AWS::SageMaker::UserProfile" +} + +resource_schema "aws_scheduler_schedule" { + cloudformation_type_name = "AWS::Scheduler::Schedule" +} + +resource_schema "aws_scheduler_schedule_group" { + cloudformation_type_name = "AWS::Scheduler::ScheduleGroup" +} + +resource_schema "aws_secretsmanager_resource_policy" { + cloudformation_type_name = "AWS::SecretsManager::ResourcePolicy" +} + +resource_schema "aws_secretsmanager_secret" { + cloudformation_type_name = "AWS::SecretsManager::Secret" +} + +resource_schema "aws_securityhub_automation_rule" { + cloudformation_type_name = "AWS::SecurityHub::AutomationRule" +} + +resource_schema "aws_securityhub_configuration_policy" { + cloudformation_type_name = "AWS::SecurityHub::ConfigurationPolicy" +} + +resource_schema "aws_securityhub_delegated_admin" { + cloudformation_type_name = "AWS::SecurityHub::DelegatedAdmin" +} + +resource_schema "aws_securityhub_finding_aggregator" { + cloudformation_type_name = "AWS::SecurityHub::FindingAggregator" +} + +resource_schema "aws_securityhub_hub" { + cloudformation_type_name = "AWS::SecurityHub::Hub" +} + +resource_schema "aws_securityhub_insight" { + cloudformation_type_name = "AWS::SecurityHub::Insight" +} + +resource_schema "aws_securityhub_organization_configuration" { + cloudformation_type_name = "AWS::SecurityHub::OrganizationConfiguration" +} + +resource_schema "aws_securityhub_policy_association" { + cloudformation_type_name = "AWS::SecurityHub::PolicyAssociation" +} + +resource_schema "aws_securityhub_product_subscription" { + cloudformation_type_name = "AWS::SecurityHub::ProductSubscription" +} + +resource_schema "aws_securityhub_security_control" { + cloudformation_type_name = "AWS::SecurityHub::SecurityControl" +} + +resource_schema "aws_securityhub_standard" { + cloudformation_type_name = "AWS::SecurityHub::Standard" +} + +resource_schema "aws_securitylake_aws_log_source" { + cloudformation_type_name = "AWS::SecurityLake::AwsLogSource" +} + +resource_schema "aws_securitylake_data_lake" { + cloudformation_type_name = "AWS::SecurityLake::DataLake" +} + +resource_schema "aws_securitylake_subscriber" { + cloudformation_type_name = "AWS::SecurityLake::Subscriber" +} + +resource_schema "aws_securitylake_subscriber_notification" { + cloudformation_type_name = "AWS::SecurityLake::SubscriberNotification" +} + +resource_schema "aws_servicecatalog_cloudformation_provisioned_product" { + cloudformation_type_name = "AWS::ServiceCatalog::CloudFormationProvisionedProduct" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_servicecatalog_service_action" { + cloudformation_type_name = "AWS::ServiceCatalog::ServiceAction" +} + +resource_schema "aws_servicecatalog_service_action_association" { + cloudformation_type_name = "AWS::ServiceCatalog::ServiceActionAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_servicecatalogappregistry_application" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::Application" +} + +resource_schema "aws_servicecatalogappregistry_attribute_group" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::AttributeGroup" +} + +resource_schema "aws_servicecatalogappregistry_attribute_group_association" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_servicecatalogappregistry_resource_association" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::ResourceAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_shield_drt_access" { + cloudformation_type_name = "AWS::Shield::DRTAccess" +} + +resource_schema "aws_shield_proactive_engagement" { + cloudformation_type_name = "AWS::Shield::ProactiveEngagement" +} + +resource_schema "aws_shield_protection" { + cloudformation_type_name = "AWS::Shield::Protection" +} + +resource_schema "aws_shield_protection_group" { + cloudformation_type_name = "AWS::Shield::ProtectionGroup" +} + +resource_schema "aws_signer_profile_permission" { + cloudformation_type_name = "AWS::Signer::ProfilePermission" +} + +resource_schema "aws_signer_signing_profile" { + cloudformation_type_name = "AWS::Signer::SigningProfile" +} + +resource_schema "aws_simspaceweaver_simulation" { + cloudformation_type_name = "AWS::SimSpaceWeaver::Simulation" +} + +resource_schema "aws_stepfunctions_activity" { + cloudformation_type_name = "AWS::StepFunctions::Activity" +} + +resource_schema "aws_stepfunctions_state_machine" { + cloudformation_type_name = "AWS::StepFunctions::StateMachine" +} + +resource_schema "aws_stepfunctions_state_machine_alias" { + cloudformation_type_name = "AWS::StepFunctions::StateMachineAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_stepfunctions_state_machine_version" { + cloudformation_type_name = "AWS::StepFunctions::StateMachineVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_supportapp_account_alias" { + cloudformation_type_name = "AWS::SupportApp::AccountAlias" +} + +resource_schema "aws_supportapp_slack_channel_configuration" { + cloudformation_type_name = "AWS::SupportApp::SlackChannelConfiguration" +} + +resource_schema "aws_supportapp_slack_workspace_configuration" { + cloudformation_type_name = "AWS::SupportApp::SlackWorkspaceConfiguration" +} + +resource_schema "aws_synthetics_canary" { + cloudformation_type_name = "AWS::Synthetics::Canary" +} + +resource_schema "aws_synthetics_group" { + cloudformation_type_name = "AWS::Synthetics::Group" +} + +resource_schema "aws_systemsmanagersap_application" { + cloudformation_type_name = "AWS::SystemsManagerSAP::Application" +} + +resource_schema "aws_timestream_database" { + cloudformation_type_name = "AWS::Timestream::Database" +} + +resource_schema "aws_timestream_influx_db_instance" { + cloudformation_type_name = "AWS::Timestream::InfluxDBInstance" +} + +resource_schema "aws_timestream_scheduled_query" { + cloudformation_type_name = "AWS::Timestream::ScheduledQuery" +} + +resource_schema "aws_timestream_table" { + cloudformation_type_name = "AWS::Timestream::Table" +} + +resource_schema "aws_transfer_agreement" { + cloudformation_type_name = "AWS::Transfer::Agreement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_transfer_certificate" { + cloudformation_type_name = "AWS::Transfer::Certificate" +} + +resource_schema "aws_transfer_connector" { + cloudformation_type_name = "AWS::Transfer::Connector" +} + +resource_schema "aws_transfer_profile" { + cloudformation_type_name = "AWS::Transfer::Profile" +} + +resource_schema "aws_transfer_workflow" { + cloudformation_type_name = "AWS::Transfer::Workflow" +} + +resource_schema "aws_verifiedpermissions_identity_source" { + cloudformation_type_name = "AWS::VerifiedPermissions::IdentitySource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_verifiedpermissions_policy" { + cloudformation_type_name = "AWS::VerifiedPermissions::Policy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_verifiedpermissions_policy_store" { + cloudformation_type_name = "AWS::VerifiedPermissions::PolicyStore" +} + +resource_schema "aws_verifiedpermissions_policy_template" { + cloudformation_type_name = "AWS::VerifiedPermissions::PolicyTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_voiceid_domain" { + cloudformation_type_name = "AWS::VoiceID::Domain" +} + +resource_schema "aws_vpclattice_access_log_subscription" { + cloudformation_type_name = "AWS::VpcLattice::AccessLogSubscription" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_auth_policy" { + cloudformation_type_name = "AWS::VpcLattice::AuthPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_listener" { + cloudformation_type_name = "AWS::VpcLattice::Listener" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_resource_policy" { + cloudformation_type_name = "AWS::VpcLattice::ResourcePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_rule" { + cloudformation_type_name = "AWS::VpcLattice::Rule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_service" { + cloudformation_type_name = "AWS::VpcLattice::Service" +} + +resource_schema "aws_vpclattice_service_network" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetwork" +} + +resource_schema "aws_vpclattice_service_network_service_association" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetworkServiceAssociation" +} + +resource_schema "aws_vpclattice_service_network_vpc_association" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetworkVpcAssociation" +} + +resource_schema "aws_vpclattice_target_group" { + cloudformation_type_name = "AWS::VpcLattice::TargetGroup" +} + +resource_schema "aws_wafv2_ip_set" { + cloudformation_type_name = "AWS::WAFv2::IPSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_logging_configuration" { + cloudformation_type_name = "AWS::WAFv2::LoggingConfiguration" +} + +resource_schema "aws_wafv2_regex_pattern_set" { + cloudformation_type_name = "AWS::WAFv2::RegexPatternSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_rule_group" { + cloudformation_type_name = "AWS::WAFv2::RuleGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_web_acl" { + cloudformation_type_name = "AWS::WAFv2::WebACL" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_web_acl_association" { + cloudformation_type_name = "AWS::WAFv2::WebACLAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_assistant" { + cloudformation_type_name = "AWS::Wisdom::Assistant" +} + +resource_schema "aws_wisdom_assistant_association" { + cloudformation_type_name = "AWS::Wisdom::AssistantAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_knowledge_base" { + cloudformation_type_name = "AWS::Wisdom::KnowledgeBase" +} + +resource_schema "aws_workspaces_connection_alias" { + cloudformation_type_name = "AWS::WorkSpaces::ConnectionAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_workspaces_workspaces_pool" { + cloudformation_type_name = "AWS::WorkSpaces::WorkspacesPool" +} + +resource_schema "aws_workspacesthinclient_environment" { + cloudformation_type_name = "AWS::WorkSpacesThinClient::Environment" +} + +resource_schema "aws_workspacesweb_browser_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::BrowserSettings" +} + +resource_schema "aws_workspacesweb_identity_provider" { + cloudformation_type_name = "AWS::WorkSpacesWeb::IdentityProvider" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_workspacesweb_ip_access_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::IpAccessSettings" +} + +resource_schema "aws_workspacesweb_network_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::NetworkSettings" +} + +resource_schema "aws_workspacesweb_portal" { + cloudformation_type_name = "AWS::WorkSpacesWeb::Portal" +} + +resource_schema "aws_workspacesweb_trust_store" { + cloudformation_type_name = "AWS::WorkSpacesWeb::TrustStore" +} + +resource_schema "aws_workspacesweb_user_access_logging_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::UserAccessLoggingSettings" +} + +resource_schema "aws_workspacesweb_user_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::UserSettings" +} + +resource_schema "aws_xray_group" { + cloudformation_type_name = "AWS::XRay::Group" +} + +resource_schema "aws_xray_resource_policy" { + cloudformation_type_name = "AWS::XRay::ResourcePolicy" +} + +resource_schema "aws_xray_sampling_rule" { + cloudformation_type_name = "AWS::XRay::SamplingRule" +} diff --git a/internal/provider/plural_data_sources.go b/internal/provider/plural_data_sources.go index 1d30ef630..7ec5c3fa3 100644 --- a/internal/provider/plural_data_sources.go +++ b/internal/provider/plural_data_sources.go @@ -69,6 +69,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_bedrock_agents -cftype AWS::Bedrock::Agent -package bedrock ../aws/bedrock/agent_plural_data_source_gen.go ../aws/bedrock/agent_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_bedrock_guardrails -cftype AWS::Bedrock::Guardrail -package bedrock ../aws/bedrock/guardrail_plural_data_source_gen.go ../aws/bedrock/guardrail_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_bedrock_knowledge_bases -cftype AWS::Bedrock::KnowledgeBase -package bedrock ../aws/bedrock/knowledge_base_plural_data_source_gen.go ../aws/bedrock/knowledge_base_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_bedrock_prompts -cftype AWS::Bedrock::Prompt -package bedrock ../aws/bedrock/prompt_plural_data_source_gen.go ../aws/bedrock/prompt_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_billingconductor_billing_groups -cftype AWS::BillingConductor::BillingGroup -package billingconductor ../aws/billingconductor/billing_group_plural_data_source_gen.go ../aws/billingconductor/billing_group_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_billingconductor_custom_line_items -cftype AWS::BillingConductor::CustomLineItem -package billingconductor ../aws/billingconductor/custom_line_item_plural_data_source_gen.go ../aws/billingconductor/custom_line_item_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_billingconductor_pricing_plans -cftype AWS::BillingConductor::PricingPlan -package billingconductor ../aws/billingconductor/pricing_plan_plural_data_source_gen.go ../aws/billingconductor/pricing_plan_plural_data_source_gen_test.go @@ -335,6 +336,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_globalaccelerator_listeners -cftype AWS::GlobalAccelerator::Listener -package globalaccelerator ../aws/globalaccelerator/listener_plural_data_source_gen.go ../aws/globalaccelerator/listener_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_glue_registries -cftype AWS::Glue::Registry -package glue ../aws/glue/registry_plural_data_source_gen.go ../aws/glue/registry_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_glue_schemas -cftype AWS::Glue::Schema -package glue ../aws/glue/schema_plural_data_source_gen.go ../aws/glue/schema_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_glue_triggers -cftype AWS::Glue::Trigger -package glue ../aws/glue/trigger_plural_data_source_gen.go ../aws/glue/trigger_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_grafana_workspaces -cftype AWS::Grafana::Workspace -package grafana ../aws/grafana/workspace_plural_data_source_gen.go ../aws/grafana/workspace_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_greengrassv2_deployments -cftype AWS::GreengrassV2::Deployment -package greengrassv2 ../aws/greengrassv2/deployment_plural_data_source_gen.go ../aws/greengrassv2/deployment_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_groundstation_configs -cftype AWS::GroundStation::Config -package groundstation ../aws/groundstation/config_plural_data_source_gen.go ../aws/groundstation/config_plural_data_source_gen_test.go @@ -710,6 +712,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_sagemaker_spaces -cftype AWS::SageMaker::Space -package sagemaker ../aws/sagemaker/space_plural_data_source_gen.go ../aws/sagemaker/space_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_sagemaker_user_profiles -cftype AWS::SageMaker::UserProfile -package sagemaker ../aws/sagemaker/user_profile_plural_data_source_gen.go ../aws/sagemaker/user_profile_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_scheduler_schedule_groups -cftype AWS::Scheduler::ScheduleGroup -package scheduler ../aws/scheduler/schedule_group_plural_data_source_gen.go ../aws/scheduler/schedule_group_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_secretsmanager_resource_policies -cftype AWS::SecretsManager::ResourcePolicy -package secretsmanager ../aws/secretsmanager/resource_policy_plural_data_source_gen.go ../aws/secretsmanager/resource_policy_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_secretsmanager_secrets -cftype AWS::SecretsManager::Secret -package secretsmanager ../aws/secretsmanager/secret_plural_data_source_gen.go ../aws/secretsmanager/secret_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_securityhub_configuration_policies -cftype AWS::SecurityHub::ConfigurationPolicy -package securityhub ../aws/securityhub/configuration_policy_plural_data_source_gen.go ../aws/securityhub/configuration_policy_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_securityhub_delegated_admins -cftype AWS::SecurityHub::DelegatedAdmin -package securityhub ../aws/securityhub/delegated_admin_plural_data_source_gen.go ../aws/securityhub/delegated_admin_plural_data_source_gen_test.go diff --git a/internal/provider/resources.go b/internal/provider/resources.go index a8d53a7e1..173d6f96c 100644 --- a/internal/provider/resources.go +++ b/internal/provider/resources.go @@ -106,9 +106,13 @@ //go:generate go run generators/resource/main.go -resource awscc_bedrock_agent -cfschema ../service/cloudformation/schemas/AWS_Bedrock_Agent.json -package bedrock -- ../aws/bedrock/agent_resource_gen.go ../aws/bedrock/agent_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_bedrock_agent_alias -cfschema ../service/cloudformation/schemas/AWS_Bedrock_AgentAlias.json -package bedrock -- ../aws/bedrock/agent_alias_resource_gen.go ../aws/bedrock/agent_alias_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_bedrock_data_source -cfschema ../service/cloudformation/schemas/AWS_Bedrock_DataSource.json -package bedrock -- ../aws/bedrock/data_source_resource_gen.go ../aws/bedrock/data_source_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_bedrock_flow_alias -cfschema ../service/cloudformation/schemas/AWS_Bedrock_FlowAlias.json -package bedrock -- ../aws/bedrock/flow_alias_resource_gen.go ../aws/bedrock/flow_alias_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_bedrock_flow_version -cfschema ../service/cloudformation/schemas/AWS_Bedrock_FlowVersion.json -package bedrock -- ../aws/bedrock/flow_version_resource_gen.go ../aws/bedrock/flow_version_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_bedrock_guardrail -cfschema ../service/cloudformation/schemas/AWS_Bedrock_Guardrail.json -package bedrock -- ../aws/bedrock/guardrail_resource_gen.go ../aws/bedrock/guardrail_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_bedrock_guardrail_version -cfschema ../service/cloudformation/schemas/AWS_Bedrock_GuardrailVersion.json -package bedrock -- ../aws/bedrock/guardrail_version_resource_gen.go ../aws/bedrock/guardrail_version_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_bedrock_knowledge_base -cfschema ../service/cloudformation/schemas/AWS_Bedrock_KnowledgeBase.json -package bedrock -- ../aws/bedrock/knowledge_base_resource_gen.go ../aws/bedrock/knowledge_base_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_bedrock_prompt -cfschema ../service/cloudformation/schemas/AWS_Bedrock_Prompt.json -package bedrock -- ../aws/bedrock/prompt_resource_gen.go ../aws/bedrock/prompt_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_bedrock_prompt_version -cfschema ../service/cloudformation/schemas/AWS_Bedrock_PromptVersion.json -package bedrock -- ../aws/bedrock/prompt_version_resource_gen.go ../aws/bedrock/prompt_version_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_billingconductor_billing_group -cfschema ../service/cloudformation/schemas/AWS_BillingConductor_BillingGroup.json -package billingconductor -- ../aws/billingconductor/billing_group_resource_gen.go ../aws/billingconductor/billing_group_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_billingconductor_custom_line_item -cfschema ../service/cloudformation/schemas/AWS_BillingConductor_CustomLineItem.json -package billingconductor -- ../aws/billingconductor/custom_line_item_resource_gen.go ../aws/billingconductor/custom_line_item_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_billingconductor_pricing_plan -cfschema ../service/cloudformation/schemas/AWS_BillingConductor_PricingPlan.json -package billingconductor -- ../aws/billingconductor/pricing_plan_resource_gen.go ../aws/billingconductor/pricing_plan_resource_gen_test.go @@ -456,6 +460,7 @@ //go:generate go run generators/resource/main.go -resource awscc_glue_schema -cfschema ../service/cloudformation/schemas/AWS_Glue_Schema.json -package glue -- ../aws/glue/schema_resource_gen.go ../aws/glue/schema_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_glue_schema_version -cfschema ../service/cloudformation/schemas/AWS_Glue_SchemaVersion.json -package glue -- ../aws/glue/schema_version_resource_gen.go ../aws/glue/schema_version_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_glue_schema_version_metadata -cfschema ../service/cloudformation/schemas/AWS_Glue_SchemaVersionMetadata.json -package glue -- ../aws/glue/schema_version_metadata_resource_gen.go ../aws/glue/schema_version_metadata_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_glue_trigger -cfschema ../service/cloudformation/schemas/AWS_Glue_Trigger.json -package glue -- ../aws/glue/trigger_resource_gen.go ../aws/glue/trigger_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_grafana_workspace -cfschema ../service/cloudformation/schemas/AWS_Grafana_Workspace.json -package grafana -- ../aws/grafana/workspace_resource_gen.go ../aws/grafana/workspace_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_greengrassv2_component_version -cfschema ../service/cloudformation/schemas/AWS_GreengrassV2_ComponentVersion.json -package greengrassv2 -- ../aws/greengrassv2/component_version_resource_gen.go ../aws/greengrassv2/component_version_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_greengrassv2_deployment -cfschema ../service/cloudformation/schemas/AWS_GreengrassV2_Deployment.json -package greengrassv2 -- ../aws/greengrassv2/deployment_resource_gen.go ../aws/greengrassv2/deployment_resource_gen_test.go @@ -918,6 +923,7 @@ //go:generate go run generators/resource/main.go -resource awscc_sagemaker_space -cfschema ../service/cloudformation/schemas/AWS_SageMaker_Space.json -package sagemaker -- ../aws/sagemaker/space_resource_gen.go ../aws/sagemaker/space_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_sagemaker_user_profile -cfschema ../service/cloudformation/schemas/AWS_SageMaker_UserProfile.json -package sagemaker -- ../aws/sagemaker/user_profile_resource_gen.go ../aws/sagemaker/user_profile_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_scheduler_schedule_group -cfschema ../service/cloudformation/schemas/AWS_Scheduler_ScheduleGroup.json -package scheduler -- ../aws/scheduler/schedule_group_resource_gen.go ../aws/scheduler/schedule_group_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_secretsmanager_resource_policy -cfschema ../service/cloudformation/schemas/AWS_SecretsManager_ResourcePolicy.json -package secretsmanager -- ../aws/secretsmanager/resource_policy_resource_gen.go ../aws/secretsmanager/resource_policy_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_secretsmanager_secret -cfschema ../service/cloudformation/schemas/AWS_SecretsManager_Secret.json -package secretsmanager -- ../aws/secretsmanager/secret_resource_gen.go ../aws/secretsmanager/secret_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_securityhub_configuration_policy -cfschema ../service/cloudformation/schemas/AWS_SecurityHub_ConfigurationPolicy.json -package securityhub -- ../aws/securityhub/configuration_policy_resource_gen.go ../aws/securityhub/configuration_policy_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_securityhub_delegated_admin -cfschema ../service/cloudformation/schemas/AWS_SecurityHub_DelegatedAdmin.json -package securityhub -- ../aws/securityhub/delegated_admin_resource_gen.go ../aws/securityhub/delegated_admin_resource_gen_test.go diff --git a/internal/provider/singular_data_sources.go b/internal/provider/singular_data_sources.go index aef499b54..ecdbd935d 100644 --- a/internal/provider/singular_data_sources.go +++ b/internal/provider/singular_data_sources.go @@ -106,9 +106,13 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_bedrock_agent -cfschema ../service/cloudformation/schemas/AWS_Bedrock_Agent.json -package bedrock ../aws/bedrock/agent_singular_data_source_gen.go ../aws/bedrock/agent_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_bedrock_agent_alias -cfschema ../service/cloudformation/schemas/AWS_Bedrock_AgentAlias.json -package bedrock ../aws/bedrock/agent_alias_singular_data_source_gen.go ../aws/bedrock/agent_alias_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_bedrock_data_source -cfschema ../service/cloudformation/schemas/AWS_Bedrock_DataSource.json -package bedrock ../aws/bedrock/data_source_singular_data_source_gen.go ../aws/bedrock/data_source_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_bedrock_flow_alias -cfschema ../service/cloudformation/schemas/AWS_Bedrock_FlowAlias.json -package bedrock ../aws/bedrock/flow_alias_singular_data_source_gen.go ../aws/bedrock/flow_alias_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_bedrock_flow_version -cfschema ../service/cloudformation/schemas/AWS_Bedrock_FlowVersion.json -package bedrock ../aws/bedrock/flow_version_singular_data_source_gen.go ../aws/bedrock/flow_version_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_bedrock_guardrail -cfschema ../service/cloudformation/schemas/AWS_Bedrock_Guardrail.json -package bedrock ../aws/bedrock/guardrail_singular_data_source_gen.go ../aws/bedrock/guardrail_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_bedrock_guardrail_version -cfschema ../service/cloudformation/schemas/AWS_Bedrock_GuardrailVersion.json -package bedrock ../aws/bedrock/guardrail_version_singular_data_source_gen.go ../aws/bedrock/guardrail_version_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_bedrock_knowledge_base -cfschema ../service/cloudformation/schemas/AWS_Bedrock_KnowledgeBase.json -package bedrock ../aws/bedrock/knowledge_base_singular_data_source_gen.go ../aws/bedrock/knowledge_base_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_bedrock_prompt -cfschema ../service/cloudformation/schemas/AWS_Bedrock_Prompt.json -package bedrock ../aws/bedrock/prompt_singular_data_source_gen.go ../aws/bedrock/prompt_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_bedrock_prompt_version -cfschema ../service/cloudformation/schemas/AWS_Bedrock_PromptVersion.json -package bedrock ../aws/bedrock/prompt_version_singular_data_source_gen.go ../aws/bedrock/prompt_version_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_billingconductor_billing_group -cfschema ../service/cloudformation/schemas/AWS_BillingConductor_BillingGroup.json -package billingconductor ../aws/billingconductor/billing_group_singular_data_source_gen.go ../aws/billingconductor/billing_group_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_billingconductor_custom_line_item -cfschema ../service/cloudformation/schemas/AWS_BillingConductor_CustomLineItem.json -package billingconductor ../aws/billingconductor/custom_line_item_singular_data_source_gen.go ../aws/billingconductor/custom_line_item_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_billingconductor_pricing_plan -cfschema ../service/cloudformation/schemas/AWS_BillingConductor_PricingPlan.json -package billingconductor ../aws/billingconductor/pricing_plan_singular_data_source_gen.go ../aws/billingconductor/pricing_plan_singular_data_source_gen_test.go @@ -456,6 +460,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_glue_schema -cfschema ../service/cloudformation/schemas/AWS_Glue_Schema.json -package glue ../aws/glue/schema_singular_data_source_gen.go ../aws/glue/schema_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_glue_schema_version -cfschema ../service/cloudformation/schemas/AWS_Glue_SchemaVersion.json -package glue ../aws/glue/schema_version_singular_data_source_gen.go ../aws/glue/schema_version_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_glue_schema_version_metadata -cfschema ../service/cloudformation/schemas/AWS_Glue_SchemaVersionMetadata.json -package glue ../aws/glue/schema_version_metadata_singular_data_source_gen.go ../aws/glue/schema_version_metadata_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_glue_trigger -cfschema ../service/cloudformation/schemas/AWS_Glue_Trigger.json -package glue ../aws/glue/trigger_singular_data_source_gen.go ../aws/glue/trigger_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_grafana_workspace -cfschema ../service/cloudformation/schemas/AWS_Grafana_Workspace.json -package grafana ../aws/grafana/workspace_singular_data_source_gen.go ../aws/grafana/workspace_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_greengrassv2_component_version -cfschema ../service/cloudformation/schemas/AWS_GreengrassV2_ComponentVersion.json -package greengrassv2 ../aws/greengrassv2/component_version_singular_data_source_gen.go ../aws/greengrassv2/component_version_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_greengrassv2_deployment -cfschema ../service/cloudformation/schemas/AWS_GreengrassV2_Deployment.json -package greengrassv2 ../aws/greengrassv2/deployment_singular_data_source_gen.go ../aws/greengrassv2/deployment_singular_data_source_gen_test.go @@ -918,6 +923,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_sagemaker_space -cfschema ../service/cloudformation/schemas/AWS_SageMaker_Space.json -package sagemaker ../aws/sagemaker/space_singular_data_source_gen.go ../aws/sagemaker/space_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_sagemaker_user_profile -cfschema ../service/cloudformation/schemas/AWS_SageMaker_UserProfile.json -package sagemaker ../aws/sagemaker/user_profile_singular_data_source_gen.go ../aws/sagemaker/user_profile_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_scheduler_schedule_group -cfschema ../service/cloudformation/schemas/AWS_Scheduler_ScheduleGroup.json -package scheduler ../aws/scheduler/schedule_group_singular_data_source_gen.go ../aws/scheduler/schedule_group_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_secretsmanager_resource_policy -cfschema ../service/cloudformation/schemas/AWS_SecretsManager_ResourcePolicy.json -package secretsmanager ../aws/secretsmanager/resource_policy_singular_data_source_gen.go ../aws/secretsmanager/resource_policy_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_secretsmanager_secret -cfschema ../service/cloudformation/schemas/AWS_SecretsManager_Secret.json -package secretsmanager ../aws/secretsmanager/secret_singular_data_source_gen.go ../aws/secretsmanager/secret_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_securityhub_configuration_policy -cfschema ../service/cloudformation/schemas/AWS_SecurityHub_ConfigurationPolicy.json -package securityhub ../aws/securityhub/configuration_policy_singular_data_source_gen.go ../aws/securityhub/configuration_policy_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_securityhub_delegated_admin -cfschema ../service/cloudformation/schemas/AWS_SecurityHub_DelegatedAdmin.json -package securityhub ../aws/securityhub/delegated_admin_singular_data_source_gen.go ../aws/securityhub/delegated_admin_singular_data_source_gen_test.go diff --git a/internal/service/cloudformation/schemas/AWS_Bedrock_Flow.json b/internal/service/cloudformation/schemas/AWS_Bedrock_Flow.json new file mode 100644 index 000000000..772fbea40 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Bedrock_Flow.json @@ -0,0 +1,909 @@ +{ + "typeName": "AWS::Bedrock::Flow", + "description": "Definition of AWS::Bedrock::Flow Resource Type", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-flows", + "definitions": { + "ConditionFlowNodeConfiguration": { + "type": "object", + "description": "Condition flow node configuration", + "properties": { + "Conditions": { + "type": "array", + "items": { + "$ref": "#/definitions/FlowCondition" + }, + "maxItems": 5, + "minItems": 1, + "description": "List of conditions in a condition node", + "insertionOrder": true + } + }, + "required": [ + "Conditions" + ], + "additionalProperties": false + }, + "FlowCondition": { + "type": "object", + "description": "Condition branch for a condition node", + "properties": { + "Name": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a condition in a flow" + }, + "Expression": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "description": "Expression for a condition in a flow" + } + }, + "required": [ + "Name" + ], + "additionalProperties": false + }, + "FlowConditionalConnectionConfiguration": { + "type": "object", + "description": "Conditional connection configuration", + "properties": { + "Condition": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a condition in a flow" + } + }, + "required": [ + "Condition" + ], + "additionalProperties": false + }, + "FlowConnection": { + "type": "object", + "description": "Flow connection", + "properties": { + "Type": { + "$ref": "#/definitions/FlowConnectionType" + }, + "Name": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,100}$", + "description": "Name of a connection in a flow" + }, + "Source": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a node in a flow" + }, + "Target": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a node in a flow" + }, + "Configuration": { + "$ref": "#/definitions/FlowConnectionConfiguration" + } + }, + "required": [ + "Name", + "Source", + "Target", + "Type" + ], + "additionalProperties": false + }, + "FlowConnectionConfiguration": { + "description": "Connection configuration", + "oneOf": [ + { + "type": "object", + "title": "Data", + "properties": { + "Data": { + "$ref": "#/definitions/FlowDataConnectionConfiguration" + } + }, + "required": [ + "Data" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Conditional", + "properties": { + "Conditional": { + "$ref": "#/definitions/FlowConditionalConnectionConfiguration" + } + }, + "required": [ + "Conditional" + ], + "additionalProperties": false + } + ] + }, + "FlowConnectionType": { + "type": "string", + "description": "Connection type", + "enum": [ + "Data", + "Conditional" + ] + }, + "FlowDataConnectionConfiguration": { + "type": "object", + "description": "Data connection configuration", + "properties": { + "SourceOutput": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a node output in a flow" + }, + "TargetInput": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a node input in a flow" + } + }, + "required": [ + "SourceOutput", + "TargetInput" + ], + "additionalProperties": false + }, + "FlowDefinition": { + "type": "object", + "description": "Flow definition", + "properties": { + "Nodes": { + "type": "array", + "items": { + "$ref": "#/definitions/FlowNode" + }, + "maxItems": 20, + "description": "List of nodes in a flow", + "insertionOrder": true + }, + "Connections": { + "type": "array", + "items": { + "$ref": "#/definitions/FlowConnection" + }, + "maxItems": 20, + "description": "List of connections", + "insertionOrder": true + } + }, + "additionalProperties": false + }, + "FlowNode": { + "type": "object", + "description": "Internal mixin for flow node", + "properties": { + "Name": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a node in a flow" + }, + "Type": { + "$ref": "#/definitions/FlowNodeType" + }, + "Configuration": { + "$ref": "#/definitions/FlowNodeConfiguration" + }, + "Inputs": { + "type": "array", + "items": { + "$ref": "#/definitions/FlowNodeInput" + }, + "maxItems": 5, + "description": "List of node inputs in a flow", + "insertionOrder": true + }, + "Outputs": { + "type": "array", + "items": { + "$ref": "#/definitions/FlowNodeOutput" + }, + "maxItems": 5, + "description": "List of node outputs in a flow", + "insertionOrder": true + } + }, + "required": [ + "Name", + "Type" + ], + "additionalProperties": false + }, + "FlowNodeConfiguration": { + "description": "Node configuration in a flow", + "oneOf": [ + { + "type": "object", + "title": "Input", + "properties": { + "Input": { + "$ref": "#/definitions/InputFlowNodeConfiguration" + } + }, + "required": [ + "Input" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Output", + "properties": { + "Output": { + "$ref": "#/definitions/OutputFlowNodeConfiguration" + } + }, + "required": [ + "Output" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "KnowledgeBase", + "properties": { + "KnowledgeBase": { + "$ref": "#/definitions/KnowledgeBaseFlowNodeConfiguration" + } + }, + "required": [ + "KnowledgeBase" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Condition", + "properties": { + "Condition": { + "$ref": "#/definitions/ConditionFlowNodeConfiguration" + } + }, + "required": [ + "Condition" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Lex", + "properties": { + "Lex": { + "$ref": "#/definitions/LexFlowNodeConfiguration" + } + }, + "required": [ + "Lex" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Prompt", + "properties": { + "Prompt": { + "$ref": "#/definitions/PromptFlowNodeConfiguration" + } + }, + "required": [ + "Prompt" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "LambdaFunction", + "properties": { + "LambdaFunction": { + "$ref": "#/definitions/LambdaFunctionFlowNodeConfiguration" + } + }, + "required": [ + "LambdaFunction" + ], + "additionalProperties": false + } + ] + }, + "FlowNodeIODataType": { + "type": "string", + "description": "Type of input/output for a node in a flow", + "enum": [ + "String", + "Number", + "Boolean", + "Object", + "Array" + ] + }, + "FlowNodeInput": { + "type": "object", + "description": "Input to a node in a flow", + "properties": { + "Name": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a node input in a flow" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + }, + "Expression": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "description": "Expression for a node input in a flow" + } + }, + "required": [ + "Expression", + "Name", + "Type" + ], + "additionalProperties": false + }, + "FlowNodeOutput": { + "type": "object", + "description": "Output of a node in a flow", + "properties": { + "Name": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a node output in a flow" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + } + }, + "required": [ + "Name", + "Type" + ], + "additionalProperties": false + }, + "FlowNodeType": { + "type": "string", + "description": "Flow node types", + "enum": [ + "Input", + "Output", + "KnowledgeBase", + "Condition", + "Lex", + "Prompt", + "LambdaFunction" + ] + }, + "FlowStatus": { + "type": "string", + "description": "Schema Type for Flow APIs", + "enum": [ + "Failed", + "Prepared", + "Preparing", + "NotPrepared" + ] + }, + "InputFlowNodeConfiguration": { + "type": "object", + "description": "Input flow node configuration", + "additionalProperties": false + }, + "KnowledgeBaseFlowNodeConfiguration": { + "type": "object", + "description": "Knowledge base flow node configuration", + "properties": { + "KnowledgeBaseId": { + "type": "string", + "maxLength": 10, + "pattern": "^[0-9a-zA-Z]+$", + "description": "Identifier of the KnowledgeBase" + }, + "ModelId": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$", + "description": "ARN or name of a Bedrock model." + } + }, + "required": [ + "KnowledgeBaseId" + ], + "additionalProperties": false + }, + "LambdaFunctionFlowNodeConfiguration": { + "type": "object", + "description": "Lambda function flow node configuration", + "properties": { + "LambdaArn": { + "type": "string", + "maxLength": 2048, + "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + "description": "ARN of a Lambda." + } + }, + "required": [ + "LambdaArn" + ], + "additionalProperties": false + }, + "LexFlowNodeConfiguration": { + "type": "object", + "description": "Lex flow node configuration", + "properties": { + "BotAliasArn": { + "type": "string", + "maxLength": 78, + "pattern": "^arn:aws(|-us-gov):lex:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:bot-alias/[0-9a-zA-Z]+/[0-9a-zA-Z]+$", + "description": "ARN of a Lex bot alias" + }, + "LocaleId": { + "type": "string", + "maxLength": 10, + "minLength": 1, + "description": "Lex bot locale id" + } + }, + "required": [ + "BotAliasArn", + "LocaleId" + ], + "additionalProperties": false + }, + "OutputFlowNodeConfiguration": { + "type": "object", + "description": "Output flow node configuration", + "additionalProperties": false + }, + "PromptFlowNodeConfiguration": { + "type": "object", + "description": "Prompt flow node configuration", + "properties": { + "SourceConfiguration": { + "$ref": "#/definitions/PromptFlowNodeSourceConfiguration" + } + }, + "required": [ + "SourceConfiguration" + ], + "additionalProperties": false + }, + "PromptFlowNodeInlineConfiguration": { + "type": "object", + "description": "Inline prompt configuration for prompt node", + "properties": { + "TemplateType": { + "$ref": "#/definitions/PromptTemplateType" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/PromptTemplateConfiguration" + }, + "ModelId": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + "description": "ARN or name of a Bedrock model." + }, + "InferenceConfiguration": { + "$ref": "#/definitions/PromptInferenceConfiguration" + } + }, + "required": [ + "ModelId", + "TemplateConfiguration", + "TemplateType" + ], + "additionalProperties": false + }, + "PromptFlowNodeResourceConfiguration": { + "type": "object", + "description": "Resource prompt configuration for prompt node", + "properties": { + "PromptArn": { + "type": "string", + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}(?::[0-9]{1,5})?)$", + "description": "ARN of a prompt resource possibly with a version" + } + }, + "required": [ + "PromptArn" + ], + "additionalProperties": false + }, + "PromptFlowNodeSourceConfiguration": { + "description": "Prompt source configuration for prompt node", + "oneOf": [ + { + "type": "object", + "title": "Resource", + "properties": { + "Resource": { + "$ref": "#/definitions/PromptFlowNodeResourceConfiguration" + } + }, + "required": [ + "Resource" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Inline", + "properties": { + "Inline": { + "$ref": "#/definitions/PromptFlowNodeInlineConfiguration" + } + }, + "required": [ + "Inline" + ], + "additionalProperties": false + } + ] + }, + "PromptInferenceConfiguration": { + "description": "Model inference configuration", + "oneOf": [ + { + "type": "object", + "title": "Text", + "properties": { + "Text": { + "$ref": "#/definitions/PromptModelInferenceConfiguration" + } + }, + "required": [ + "Text" + ], + "additionalProperties": false + } + ] + }, + "PromptInputVariable": { + "type": "object", + "description": "Input variable", + "properties": { + "Name": { + "type": "string", + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "description": "Name for an input variable" + } + }, + "additionalProperties": false + }, + "PromptModelInferenceConfiguration": { + "type": "object", + "description": "Prompt model inference configuration", + "properties": { + "Temperature": { + "type": "number", + "maximum": 1, + "minimum": 0, + "description": "Controls randomness, higher values increase diversity" + }, + "TopP": { + "type": "number", + "maximum": 1, + "minimum": 0, + "description": "Cumulative probability cutoff for token selection" + }, + "TopK": { + "type": "number", + "maximum": 500, + "minimum": 0, + "description": "Sample from the k most likely next tokens" + }, + "MaxTokens": { + "type": "number", + "maximum": 4096, + "minimum": 0, + "description": "Maximum length of output" + }, + "StopSequences": { + "type": "array", + "items": { + "type": "string" + }, + "maxItems": 4, + "minItems": 0, + "description": "List of stop sequences", + "insertionOrder": true + } + }, + "additionalProperties": false + }, + "PromptTemplateConfiguration": { + "description": "Prompt template configuration", + "oneOf": [ + { + "type": "object", + "title": "Text", + "properties": { + "Text": { + "$ref": "#/definitions/TextPromptTemplateConfiguration" + } + }, + "required": [ + "Text" + ], + "additionalProperties": false + } + ] + }, + "PromptTemplateType": { + "type": "string", + "description": "Prompt template type", + "enum": [ + "TEXT" + ] + }, + "S3Location": { + "type": "object", + "description": "A bucket, key and optional version pointing to an S3 object containing a UTF-8 encoded JSON string Definition with the same schema as the Definition property of this resource", + "properties": { + "Bucket": { + "type": "string", + "maxLength": 63, + "minLength": 3, + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "description": "A bucket in S3" + }, + "Key": { + "type": "string", + "maxLength": 1024, + "minLength": 1, + "description": "A object key in S3" + }, + "Version": { + "type": "string", + "maxLength": 1024, + "minLength": 1, + "description": "The version of the the S3 object to use" + } + }, + "required": [ + "Bucket", + "Key" + ], + "additionalProperties": false + }, + "DefinitionSubstitutions": { + "type": "object", + "description": "When supplied with DefinitionString or DefinitionS3Location, substrings in the definition matching ${keyname} will be replaced with the associated value from this map", + "additionalProperties": false, + "patternProperties": { + "": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "integer" + }, + { + "type": "boolean" + } + ] + } + }, + "minProperties": 1, + "maxProperties": 500 + }, + "TextPromptTemplateConfiguration": { + "type": "object", + "description": "Configuration for text prompt template", + "properties": { + "Text": { + "type": "string", + "maxLength": 200000, + "minLength": 1, + "description": "Prompt content for String prompt template" + }, + "InputVariables": { + "type": "array", + "items": { + "$ref": "#/definitions/PromptInputVariable" + }, + "maxItems": 5, + "minItems": 0, + "description": "List of input variables", + "insertionOrder": true + } + }, + "required": [ + "Text" + ], + "additionalProperties": false + }, + "TagsMap": { + "type": "object", + "description": "A map of tag keys and values", + "patternProperties": { + "": { + "type": "string", + "maxLength": 256, + "minLength": 0, + "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + "description": "Value of a tag" + } + }, + "additionalProperties": false + } + }, + "properties": { + "Arn": { + "type": "string", + "maxLength": 1011, + "minLength": 20, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + "description": "Arn representation of the Flow" + }, + "CreatedAt": { + "type": "string", + "description": "Time Stamp.", + "format": "date-time" + }, + "Definition": { + "$ref": "#/definitions/FlowDefinition" + }, + "DefinitionString": { + "type": "string", + "description": "A JSON string containing a Definition with the same schema as the Definition property of this resource", + "maxLength": 512000 + }, + "DefinitionS3Location": { + "$ref": "#/definitions/S3Location" + }, + "DefinitionSubstitutions": { + "$ref": "#/definitions/DefinitionSubstitutions" + }, + "Description": { + "type": "string", + "maxLength": 200, + "minLength": 1, + "description": "Description of the flow" + }, + "ExecutionRoleArn": { + "type": "string", + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/(service-role/)?.+$", + "description": "ARN of a IAM role" + }, + "Id": { + "type": "string", + "pattern": "^[0-9a-zA-Z]{10}$", + "description": "Identifier for a Flow" + }, + "Name": { + "type": "string", + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "description": "Name for the flow" + }, + "Status": { + "$ref": "#/definitions/FlowStatus" + }, + "UpdatedAt": { + "type": "string", + "description": "Time Stamp.", + "format": "date-time" + }, + "CustomerEncryptionKeyArn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", + "description": "A KMS key ARN" + }, + "Version": { + "type": "string", + "maxLength": 5, + "minLength": 5, + "pattern": "^DRAFT$", + "description": "Draft Version." + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + }, + "TestAliasTags": { + "$ref": "#/definitions/TagsMap" + } + }, + "required": [ + "ExecutionRoleArn", + "Name" + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/Id", + "/properties/Status", + "/properties/UpdatedAt", + "/properties/Version" + ], + "writeOnlyProperties": [ + "/properties/DefinitionString", + "/properties/DefinitionS3Location", + "/properties/DefinitionSubstitutions" + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "additionalIdentifiers": [ + [ + "/properties/Id" + ] + ], + "handlers": { + "create": { + "permissions": [ + "bedrock:CreateFlow", + "bedrock:GetFlow", + "bedrock:PrepareFlow", + "iam:PassRole", + "s3:GetObject", + "s3:GetObjectVersion", + "bedrock:TagResource", + "bedrock:ListTagsForResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "read": { + "permissions": [ + "bedrock:GetFlow", + "bedrock:ListTagsForResource", + "kms:Decrypt" + ] + }, + "update": { + "permissions": [ + "bedrock:UpdateFlow", + "bedrock:GetFlow", + "bedrock:PrepareFlow", + "iam:PassRole", + "s3:GetObject", + "s3:GetObjectVersion", + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeleteFlow", + "bedrock:GetFlow" + ] + }, + "list": { + "permissions": [ + "bedrock:ListFlows" + ] + } + }, + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true, + "permissions": [ + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource" + ] + }, + "additionalProperties": false +} diff --git a/internal/service/cloudformation/schemas/AWS_Bedrock_FlowAlias.json b/internal/service/cloudformation/schemas/AWS_Bedrock_FlowAlias.json new file mode 100644 index 000000000..868f77ee2 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Bedrock_FlowAlias.json @@ -0,0 +1,172 @@ +{ + "typeName": "AWS::Bedrock::FlowAlias", + "description": "Definition of AWS::Bedrock::FlowAlias Resource Type", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-flows", + "definitions": { + "FlowAliasRoutingConfigurationListItem": { + "type": "object", + "description": "Details about the routing configuration for a Flow alias.", + "properties": { + "FlowVersion": { + "type": "string", + "maxLength": 1, + "minLength": 1, + "pattern": "^(DRAFT|[0-9]{0,4}[1-9][0-9]{0,4})$", + "description": "Version." + } + }, + "additionalProperties": false + }, + "TagsMap": { + "type": "object", + "description": "A map of tag keys and values", + "patternProperties": { + "": { + "type": "string", + "maxLength": 256, + "minLength": 0, + "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + "description": "Value of a tag" + } + }, + "additionalProperties": false + } + }, + "properties": { + "Arn": { + "type": "string", + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}/alias/[0-9a-zA-Z]{10}$", + "description": "Arn of the Flow Alias" + }, + "FlowArn": { + "type": "string", + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + "description": "Arn representation of the Flow" + }, + "CreatedAt": { + "type": "string", + "description": "Time Stamp.", + "format": "date-time" + }, + "Description": { + "type": "string", + "maxLength": 200, + "minLength": 1, + "description": "Description of the Resource." + }, + "FlowId": { + "type": "string", + "pattern": "^[0-9a-zA-Z]{10}$", + "description": "Identifier for a flow resource." + }, + "Id": { + "type": "string", + "maxLength": 10, + "minLength": 10, + "pattern": "^(\\bTSTALIASID\\b|[0-9a-zA-Z]+)$", + "description": "Id for a Flow Alias generated at the server side." + }, + "Name": { + "type": "string", + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "description": "Name for a resource." + }, + "RoutingConfiguration": { + "type": "array", + "items": { + "$ref": "#/definitions/FlowAliasRoutingConfigurationListItem" + }, + "maxItems": 1, + "minItems": 1, + "description": "Routing configuration for a Flow alias.", + "insertionOrder": true + }, + "UpdatedAt": { + "type": "string", + "description": "Time Stamp.", + "format": "date-time" + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + } + }, + "required": [ + "Name", + "FlowArn", + "RoutingConfiguration" + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/FlowId", + "/properties/Id", + "/properties/UpdatedAt" + ], + "createOnlyProperties": [ + "/properties/FlowArn" + ], + "primaryIdentifier": [ + "/properties/Arn", + "/properties/FlowArn" + ], + "handlers": { + "create": { + "permissions": [ + "bedrock:CreateFlowAlias", + "bedrock:GetFlowAlias", + "bedrock:TagResource", + "bedrock:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "bedrock:GetFlowAlias", + "bedrock:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "bedrock:UpdateFlowAlias", + "bedrock:GetFlowAlias", + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeleteFlowAlias" + ] + }, + "list": { + "permissions": [ + "bedrock:ListFlowAliases" + ], + "handlerSchema": { + "properties": { + "FlowArn": { + "$ref": "resource-schema.json#/properties/FlowArn" + } + }, + "required": [ + "FlowArn" + ] + } + } + }, + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true, + "permissions": [ + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource" + ] + }, + "additionalProperties": false +} diff --git a/internal/service/cloudformation/schemas/AWS_Bedrock_FlowVersion.json b/internal/service/cloudformation/schemas/AWS_Bedrock_FlowVersion.json new file mode 100644 index 000000000..993753c37 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Bedrock_FlowVersion.json @@ -0,0 +1,786 @@ +{ + "typeName": "AWS::Bedrock::FlowVersion", + "description": "Definition of AWS::Bedrock::FlowVersion Resource Type", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-flows", + "definitions": { + "ConditionFlowNodeConfiguration": { + "type": "object", + "description": "Condition flow node configuration", + "properties": { + "Conditions": { + "type": "array", + "items": { + "$ref": "#/definitions/FlowCondition" + }, + "maxItems": 5, + "minItems": 1, + "description": "List of conditions in a condition node", + "insertionOrder": true + } + }, + "required": [ + "Conditions" + ], + "additionalProperties": false + }, + "FlowCondition": { + "type": "object", + "description": "Condition branch for a condition node", + "properties": { + "Name": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a condition in a flow" + }, + "Expression": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "description": "Expression for a condition in a flow" + } + }, + "required": [ + "Name" + ], + "additionalProperties": false + }, + "FlowConditionalConnectionConfiguration": { + "type": "object", + "description": "Conditional connection configuration", + "properties": { + "Condition": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a condition in a flow" + } + }, + "required": [ + "Condition" + ], + "additionalProperties": false + }, + "FlowConnection": { + "type": "object", + "description": "Flow connection", + "properties": { + "Type": { + "$ref": "#/definitions/FlowConnectionType" + }, + "Name": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,100}$", + "description": "Name of a connection in a flow" + }, + "Source": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a node in a flow" + }, + "Target": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a node in a flow" + }, + "Configuration": { + "$ref": "#/definitions/FlowConnectionConfiguration" + } + }, + "required": [ + "Name", + "Source", + "Target", + "Type" + ], + "additionalProperties": false + }, + "FlowConnectionConfiguration": { + "description": "Connection configuration", + "oneOf": [ + { + "type": "object", + "title": "Data", + "properties": { + "Data": { + "$ref": "#/definitions/FlowDataConnectionConfiguration" + } + }, + "required": [ + "Data" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Conditional", + "properties": { + "Conditional": { + "$ref": "#/definitions/FlowConditionalConnectionConfiguration" + } + }, + "required": [ + "Conditional" + ], + "additionalProperties": false + } + ] + }, + "FlowConnectionType": { + "type": "string", + "description": "Connection type", + "enum": [ + "Data", + "Conditional" + ] + }, + "FlowDataConnectionConfiguration": { + "type": "object", + "description": "Data connection configuration", + "properties": { + "SourceOutput": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a node output in a flow" + }, + "TargetInput": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a node input in a flow" + } + }, + "required": [ + "SourceOutput", + "TargetInput" + ], + "additionalProperties": false + }, + "FlowDefinition": { + "type": "object", + "description": "Flow definition", + "properties": { + "Nodes": { + "type": "array", + "items": { + "$ref": "#/definitions/FlowNode" + }, + "maxItems": 20, + "description": "List of nodes in a flow", + "insertionOrder": true + }, + "Connections": { + "type": "array", + "items": { + "$ref": "#/definitions/FlowConnection" + }, + "maxItems": 20, + "description": "List of connections", + "insertionOrder": true + } + }, + "additionalProperties": false + }, + "FlowNode": { + "type": "object", + "description": "Internal mixin for flow node", + "properties": { + "Name": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a node in a flow" + }, + "Type": { + "$ref": "#/definitions/FlowNodeType" + }, + "Configuration": { + "$ref": "#/definitions/FlowNodeConfiguration" + }, + "Inputs": { + "type": "array", + "items": { + "$ref": "#/definitions/FlowNodeInput" + }, + "maxItems": 5, + "description": "List of node inputs in a flow", + "insertionOrder": true + }, + "Outputs": { + "type": "array", + "items": { + "$ref": "#/definitions/FlowNodeOutput" + }, + "maxItems": 5, + "description": "List of node outputs in a flow", + "insertionOrder": true + } + }, + "required": [ + "Name", + "Type" + ], + "additionalProperties": false + }, + "FlowNodeConfiguration": { + "description": "Node configuration in a flow", + "oneOf": [ + { + "type": "object", + "title": "Input", + "properties": { + "Input": { + "$ref": "#/definitions/InputFlowNodeConfiguration" + } + }, + "required": [ + "Input" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Output", + "properties": { + "Output": { + "$ref": "#/definitions/OutputFlowNodeConfiguration" + } + }, + "required": [ + "Output" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "KnowledgeBase", + "properties": { + "KnowledgeBase": { + "$ref": "#/definitions/KnowledgeBaseFlowNodeConfiguration" + } + }, + "required": [ + "KnowledgeBase" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Condition", + "properties": { + "Condition": { + "$ref": "#/definitions/ConditionFlowNodeConfiguration" + } + }, + "required": [ + "Condition" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Lex", + "properties": { + "Lex": { + "$ref": "#/definitions/LexFlowNodeConfiguration" + } + }, + "required": [ + "Lex" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Prompt", + "properties": { + "Prompt": { + "$ref": "#/definitions/PromptFlowNodeConfiguration" + } + }, + "required": [ + "Prompt" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "LambdaFunction", + "properties": { + "LambdaFunction": { + "$ref": "#/definitions/LambdaFunctionFlowNodeConfiguration" + } + }, + "required": [ + "LambdaFunction" + ], + "additionalProperties": false + } + ] + }, + "LexFlowNodeConfiguration": { + "type": "object", + "description": "Lex flow node configuration", + "properties": { + "BotAliasArn": { + "type": "string", + "maxLength": 78, + "pattern": "^arn:aws(|-us-gov):lex:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:bot-alias/[0-9a-zA-Z]+/[0-9a-zA-Z]+$", + "description": "ARN of a Lex bot alias" + }, + "LocaleId": { + "type": "string", + "maxLength": 10, + "minLength": 1, + "description": "Lex bot locale id" + } + }, + "required": [ + "BotAliasArn", + "LocaleId" + ], + "additionalProperties": false + }, + "FlowNodeIODataType": { + "type": "string", + "description": "Type of input/output for a node in a flow", + "enum": [ + "String", + "Number", + "Boolean", + "Object", + "Array" + ] + }, + "FlowNodeInput": { + "type": "object", + "description": "Input to a node in a flow", + "properties": { + "Name": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a node input in a flow" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + }, + "Expression": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "description": "Expression for a node input in a flow" + } + }, + "required": [ + "Expression", + "Name", + "Type" + ], + "additionalProperties": false + }, + "FlowNodeOutput": { + "type": "object", + "description": "Output of a node in a flow", + "properties": { + "Name": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a node output in a flow" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + } + }, + "required": [ + "Name", + "Type" + ], + "additionalProperties": false + }, + "FlowNodeType": { + "type": "string", + "description": "Flow node types", + "enum": [ + "Input", + "Output", + "KnowledgeBase", + "Condition", + "Lex", + "Prompt", + "LambdaFunction" + ] + }, + "FlowStatus": { + "type": "string", + "description": "Schema Type for Flow APIs", + "enum": [ + "Failed", + "Prepared", + "Preparing", + "NotPrepared" + ] + }, + "InputFlowNodeConfiguration": { + "type": "object", + "description": "Input flow node configuration", + "additionalProperties": false + }, + "KnowledgeBaseFlowNodeConfiguration": { + "type": "object", + "description": "Knowledge base flow node configuration", + "properties": { + "KnowledgeBaseId": { + "type": "string", + "maxLength": 10, + "pattern": "^[0-9a-zA-Z]+$", + "description": "Identifier of the KnowledgeBase" + }, + "ModelId": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$", + "description": "ARN or name of a Bedrock model." + } + }, + "required": [ + "KnowledgeBaseId" + ], + "additionalProperties": false + }, + "LambdaFunctionFlowNodeConfiguration": { + "type": "object", + "description": "Lambda function flow node configuration", + "properties": { + "LambdaArn": { + "type": "string", + "maxLength": 2048, + "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + "description": "ARN of a Lambda." + } + }, + "required": [ + "LambdaArn" + ], + "additionalProperties": false + }, + "OutputFlowNodeConfiguration": { + "type": "object", + "description": "Output flow node configuration", + "additionalProperties": false + }, + "PromptFlowNodeConfiguration": { + "type": "object", + "description": "Prompt flow node configuration", + "properties": { + "SourceConfiguration": { + "$ref": "#/definitions/PromptFlowNodeSourceConfiguration" + } + }, + "required": [ + "SourceConfiguration" + ], + "additionalProperties": false + }, + "PromptFlowNodeInlineConfiguration": { + "type": "object", + "description": "Inline prompt configuration for prompt node", + "properties": { + "TemplateType": { + "$ref": "#/definitions/PromptTemplateType" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/PromptTemplateConfiguration" + }, + "ModelId": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + "description": "ARN or name of a Bedrock model." + }, + "InferenceConfiguration": { + "$ref": "#/definitions/PromptInferenceConfiguration" + } + }, + "required": [ + "ModelId", + "TemplateConfiguration", + "TemplateType" + ], + "additionalProperties": false + }, + "PromptFlowNodeResourceConfiguration": { + "type": "object", + "description": "Resource prompt configuration for prompt node", + "properties": { + "PromptArn": { + "type": "string", + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}(?::[0-9]{1,5})?)$", + "description": "ARN of a prompt resource possibly with a version" + } + }, + "required": [ + "PromptArn" + ], + "additionalProperties": false + }, + "PromptFlowNodeSourceConfiguration": { + "description": "Prompt source configuration for prompt node", + "oneOf": [ + { + "type": "object", + "title": "Resource", + "properties": { + "Resource": { + "$ref": "#/definitions/PromptFlowNodeResourceConfiguration" + } + }, + "required": [ + "Resource" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Inline", + "properties": { + "Inline": { + "$ref": "#/definitions/PromptFlowNodeInlineConfiguration" + } + }, + "required": [ + "Inline" + ], + "additionalProperties": false + } + ] + }, + "PromptInferenceConfiguration": { + "description": "Model inference configuration", + "oneOf": [ + { + "type": "object", + "title": "Text", + "properties": { + "Text": { + "$ref": "#/definitions/PromptModelInferenceConfiguration" + } + }, + "required": [ + "Text" + ], + "additionalProperties": false + } + ] + }, + "PromptInputVariable": { + "type": "object", + "description": "Input variable", + "properties": { + "Name": { + "type": "string", + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "description": "Name for an input variable" + } + }, + "additionalProperties": false + }, + "PromptModelInferenceConfiguration": { + "type": "object", + "description": "Prompt model inference configuration", + "properties": { + "Temperature": { + "type": "number", + "maximum": 1, + "minimum": 0, + "description": "Controls randomness, higher values increase diversity" + }, + "TopP": { + "type": "number", + "maximum": 1, + "minimum": 0, + "description": "Cumulative probability cutoff for token selection" + }, + "TopK": { + "type": "number", + "maximum": 500, + "minimum": 0, + "description": "Sample from the k most likely next tokens" + }, + "MaxTokens": { + "type": "number", + "maximum": 4096, + "minimum": 0, + "description": "Maximum length of output" + }, + "StopSequences": { + "type": "array", + "items": { + "type": "string" + }, + "maxItems": 4, + "minItems": 0, + "description": "List of stop sequences", + "insertionOrder": true + } + }, + "additionalProperties": false + }, + "PromptTemplateConfiguration": { + "description": "Prompt template configuration", + "oneOf": [ + { + "type": "object", + "title": "Text", + "properties": { + "Text": { + "$ref": "#/definitions/TextPromptTemplateConfiguration" + } + }, + "required": [ + "Text" + ], + "additionalProperties": false + } + ] + }, + "PromptTemplateType": { + "type": "string", + "description": "Prompt template type", + "enum": [ + "TEXT" + ] + }, + "TextPromptTemplateConfiguration": { + "type": "object", + "description": "Configuration for text prompt template", + "properties": { + "Text": { + "type": "string", + "maxLength": 200000, + "minLength": 1, + "description": "Prompt content for String prompt template" + }, + "InputVariables": { + "type": "array", + "items": { + "$ref": "#/definitions/PromptInputVariable" + }, + "maxItems": 5, + "minItems": 0, + "description": "List of input variables", + "insertionOrder": true + } + }, + "required": [ + "Text" + ], + "additionalProperties": false + } + }, + "properties": { + "FlowArn": { + "type": "string", + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + "description": "Arn representation of the Flow" + }, + "CreatedAt": { + "type": "string", + "description": "Time Stamp.", + "format": "date-time" + }, + "Definition": { + "$ref": "#/definitions/FlowDefinition" + }, + "Description": { + "type": "string", + "maxLength": 200, + "minLength": 1, + "description": "Description of the flow version" + }, + "ExecutionRoleArn": { + "type": "string", + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/(service-role/)?.+$", + "description": "ARN of a IAM role" + }, + "FlowId": { + "type": "string", + "pattern": "^[0-9a-zA-Z]{10}$", + "description": "Identifier for a Flow" + }, + "Name": { + "type": "string", + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "description": "Name for the flow" + }, + "Status": { + "$ref": "#/definitions/FlowStatus" + }, + "Version": { + "type": "string", + "pattern": "^[0-9]{1,5}$", + "description": "Numerical Version." + } + }, + "required": [ + "FlowArn" + ], + "readOnlyProperties": [ + "/properties/CreatedAt", + "/properties/Definition", + "/properties/ExecutionRoleArn", + "/properties/FlowId", + "/properties/Name", + "/properties/Status", + "/properties/Version" + ], + "createOnlyProperties": [ + "/properties/Description", + "/properties/FlowArn" + ], + "primaryIdentifier": [ + "/properties/FlowArn", + "/properties/Version" + ], + "handlers": { + "create": { + "permissions": [ + "bedrock:CreateFlowVersion", + "bedrock:GetFlowVersion" + ] + }, + "read": { + "permissions": [ + "bedrock:GetFlowVersion" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeleteFlowVersion", + "bedrock:GetFlowVersion" + ] + }, + "list": { + "permissions": [ + "bedrock:ListFlowVersions" + ], + "handlerSchema": { + "properties": { + "FlowArn": { + "$ref": "resource-schema.json#/properties/FlowArn" + } + }, + "required": [ + "FlowArn" + ] + } + }, + "update": { + "permissions": [ + "noservice:NoAction" + ] + } + }, + "tagging": { + "taggable": false + }, + "additionalProperties": false +} diff --git a/internal/service/cloudformation/schemas/AWS_Bedrock_Prompt.json b/internal/service/cloudformation/schemas/AWS_Bedrock_Prompt.json new file mode 100644 index 000000000..dbdd42a3b --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Bedrock_Prompt.json @@ -0,0 +1,346 @@ +{ + "typeName": "AWS::Bedrock::Prompt", + "description": "Definition of AWS::Bedrock::Prompt Resource Type", + "definitions": { + "PromptTemplateType": { + "type": "string", + "description": "Prompt template type", + "enum": [ + "TEXT" + ] + }, + "PromptVariant": { + "type": "object", + "description": "Prompt variant", + "properties": { + "Name": { + "type": "string", + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "description": "Name for a variant." + }, + "TemplateType": { + "$ref": "#/definitions/PromptTemplateType" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/PromptTemplateConfiguration" + }, + "ModelId": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + "description": "ARN or name of a Bedrock model." + }, + "InferenceConfiguration": { + "$ref": "#/definitions/PromptInferenceConfiguration" + } + }, + "required": [ + "Name", + "TemplateType" + ], + "additionalProperties": false + }, + "TextPromptTemplateConfiguration": { + "type": "object", + "description": "Configuration for text prompt template", + "properties": { + "Text": { + "type": "string", + "maxLength": 200000, + "minLength": 1, + "description": "Prompt content for String prompt template" + }, + "TextS3Location": { + "$ref": "#/definitions/TextS3Location" + }, + "InputVariables": { + "type": "array", + "items": { + "$ref": "#/definitions/PromptInputVariable" + }, + "maxItems": 5, + "minItems": 0, + "description": "List of input variables", + "insertionOrder": true + } + }, + "required": [], + "additionalProperties": false + }, + "PromptTemplateConfiguration": { + "description": "Prompt template configuration", + "oneOf": [ + { + "type": "object", + "title": "Text", + "properties": { + "Text": { + "$ref": "#/definitions/TextPromptTemplateConfiguration" + } + }, + "required": [ + "Text" + ], + "additionalProperties": false + } + ] + }, + "TextS3Location": { + "type": "object", + "description": "The identifier for the S3 resource.", + "properties": { + "Bucket": { + "type": "string", + "maxLength": 63, + "minLength": 3, + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "description": "A bucket in S3" + }, + "Key": { + "type": "string", + "maxLength": 1024, + "minLength": 1, + "description": "A object key in S3" + }, + "Version": { + "type": "string", + "maxLength": 1024, + "minLength": 1, + "description": "The version of the the S3 object to use" + } + }, + "required": [ + "Bucket", + "Key" + ], + "additionalProperties": false + }, + "PromptModelInferenceConfiguration": { + "type": "object", + "description": "Prompt model inference configuration", + "properties": { + "Temperature": { + "type": "number", + "maximum": 1, + "minimum": 0, + "description": "Controls randomness, higher values increase diversity" + }, + "TopP": { + "type": "number", + "maximum": 1, + "minimum": 0, + "description": "Cumulative probability cutoff for token selection" + }, + "TopK": { + "type": "number", + "maximum": 500, + "minimum": 0, + "description": "Sample from the k most likely next tokens" + }, + "MaxTokens": { + "type": "number", + "maximum": 4096, + "minimum": 0, + "description": "Maximum length of output" + }, + "StopSequences": { + "type": "array", + "items": { + "type": "string" + }, + "maxItems": 4, + "minItems": 0, + "description": "List of stop sequences", + "insertionOrder": true + } + }, + "additionalProperties": false + }, + "PromptInferenceConfiguration": { + "description": "Model inference configuration", + "oneOf": [ + { + "type": "object", + "title": "Text", + "properties": { + "Text": { + "$ref": "#/definitions/PromptModelInferenceConfiguration" + } + }, + "required": [ + "Text" + ], + "additionalProperties": false + } + ] + }, + "PromptInputVariable": { + "type": "object", + "description": "Input variable", + "properties": { + "Name": { + "type": "string", + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "description": "Name for an input variable" + } + }, + "additionalProperties": false + }, + "TagsMap": { + "type": "object", + "description": "A map of tag keys and values", + "patternProperties": { + "": { + "type": "string", + "maxLength": 256, + "minLength": 0, + "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + "description": "Value of a tag" + } + }, + "additionalProperties": false + } + }, + "properties": { + "Arn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10})$", + "description": "ARN of a prompt resource possibly with a version" + }, + "CreatedAt": { + "type": "string", + "description": "Time Stamp.", + "format": "date-time" + }, + "DefaultVariant": { + "type": "string", + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "description": "Name for a variant." + }, + "Description": { + "type": "string", + "maxLength": 200, + "minLength": 1, + "description": "Name for a prompt resource." + }, + "Id": { + "type": "string", + "pattern": "^[0-9a-zA-Z]{10}$", + "description": "Identifier for a Prompt" + }, + "Name": { + "type": "string", + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "description": "Name for a prompt resource." + }, + "UpdatedAt": { + "type": "string", + "description": "Time Stamp.", + "format": "date-time" + }, + "Variants": { + "type": "array", + "items": { + "$ref": "#/definitions/PromptVariant" + }, + "maxItems": 3, + "minItems": 0, + "description": "List of prompt variants", + "insertionOrder": true + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + }, + "CustomerEncryptionKeyArn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", + "description": "A KMS key ARN" + }, + "Version": { + "type": "string", + "maxLength": 5, + "minLength": 5, + "pattern": "^DRAFT$", + "description": "Draft Version." + } + }, + "required": [ + "Name" + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/Id", + "/properties/UpdatedAt", + "/properties/Version" + ], + "writeOnlyProperties": [ + "/properties/Variants/*/TemplateConfiguration/Text/TextS3Location" + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "handlers": { + "create": { + "permissions": [ + "bedrock:CreatePrompt", + "bedrock:GetPrompt", + "s3:GetObject", + "s3:GetObjectVersion", + "bedrock:TagResource", + "bedrock:ListTagsForResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "read": { + "permissions": [ + "bedrock:GetPrompt", + "bedrock:ListTagsForResource", + "kms:Decrypt" + ] + }, + "update": { + "permissions": [ + "bedrock:UpdatePrompt", + "bedrock:GetPrompt", + "s3:GetObject", + "s3:GetObjectVersion", + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeletePrompt", + "bedrock:GetPrompt" + ] + }, + "list": { + "permissions": [ + "bedrock:ListPrompts" + ] + } + }, + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true, + "permissions": [ + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource" + ] + }, + "additionalProperties": false +} diff --git a/internal/service/cloudformation/schemas/AWS_Bedrock_PromptVersion.json b/internal/service/cloudformation/schemas/AWS_Bedrock_PromptVersion.json new file mode 100644 index 000000000..b2f2c7b30 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Bedrock_PromptVersion.json @@ -0,0 +1,288 @@ +{ + "typeName": "AWS::Bedrock::PromptVersion", + "description": "Definition of AWS::Bedrock::PromptVersion Resource Type", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-prompts", + "definitions": { + "PromptTemplateType": { + "type": "string", + "description": "Prompt template type", + "enum": [ + "TEXT" + ] + }, + "PromptVariant": { + "type": "object", + "description": "Prompt variant", + "properties": { + "Name": { + "type": "string", + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "description": "Name for a variant." + }, + "TemplateType": { + "$ref": "#/definitions/PromptTemplateType" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/PromptTemplateConfiguration" + }, + "ModelId": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + "description": "ARN or name of a Bedrock model." + }, + "InferenceConfiguration": { + "$ref": "#/definitions/PromptInferenceConfiguration" + } + }, + "required": [ + "Name", + "TemplateType" + ], + "additionalProperties": false + }, + "TextPromptTemplateConfiguration": { + "type": "object", + "description": "Configuration for text prompt template", + "properties": { + "Text": { + "type": "string", + "maxLength": 200000, + "minLength": 1, + "description": "Prompt content for String prompt template" + }, + "InputVariables": { + "type": "array", + "items": { + "$ref": "#/definitions/PromptInputVariable" + }, + "maxItems": 5, + "minItems": 1, + "description": "List of input variables", + "insertionOrder": true + } + }, + "required": [ + "Text" + ], + "additionalProperties": false + }, + "PromptTemplateConfiguration": { + "description": "Prompt template configuration", + "oneOf": [ + { + "type": "object", + "title": "Text", + "properties": { + "Text": { + "$ref": "#/definitions/TextPromptTemplateConfiguration" + } + }, + "required": [ + "Text" + ], + "additionalProperties": false + } + ] + }, + "PromptModelInferenceConfiguration": { + "type": "object", + "description": "Prompt model inference configuration", + "properties": { + "Temperature": { + "type": "number", + "maximum": 1, + "minimum": 0, + "description": "Controls randomness, higher values increase diversity" + }, + "TopP": { + "type": "number", + "maximum": 1, + "minimum": 0, + "description": "Cumulative probability cutoff for token selection" + }, + "TopK": { + "type": "number", + "maximum": 500, + "minimum": 0, + "description": "Sample from the k most likely next tokens" + }, + "MaxTokens": { + "type": "number", + "maximum": 4096, + "minimum": 0, + "description": "Maximum length of output" + }, + "StopSequences": { + "type": "array", + "items": { + "type": "string" + }, + "maxItems": 4, + "minItems": 0, + "description": "List of stop sequences", + "insertionOrder": true + } + }, + "additionalProperties": false + }, + "PromptInferenceConfiguration": { + "description": "Model inference configuration", + "oneOf": [ + { + "type": "object", + "title": "Text", + "properties": { + "Text": { + "$ref": "#/definitions/PromptModelInferenceConfiguration" + } + }, + "required": [ + "Text" + ], + "additionalProperties": false + } + ] + }, + "PromptInputVariable": { + "type": "object", + "description": "Input variable", + "properties": { + "Name": { + "type": "string", + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "description": "Name for an input variable" + } + }, + "additionalProperties": false + } + }, + "properties": { + "PromptArn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10})$", + "description": "ARN of a prompt resource possibly with a version" + }, + "Arn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}:[0-9]{1,20})$", + "description": "ARN of a prompt version resource" + }, + "CreatedAt": { + "type": "string", + "description": "Time Stamp.", + "format": "date-time" + }, + "PromptId": { + "type": "string", + "pattern": "^[0-9a-zA-Z]{10}$", + "description": "Identifier for a Prompt" + }, + "UpdatedAt": { + "type": "string", + "description": "Time Stamp.", + "format": "date-time" + }, + "Version": { + "type": "string", + "maxLength": 5, + "minLength": 1, + "pattern": "^(DRAFT|[0-9]{0,4}[1-9][0-9]{0,4})$", + "description": "Version." + }, + "Variants": { + "type": "array", + "items": { + "$ref": "#/definitions/PromptVariant" + }, + "maxItems": 3, + "minItems": 1, + "description": "List of prompt variants", + "insertionOrder": true + }, + "DefaultVariant": { + "type": "string", + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "description": "Name for a variant." + }, + "Description": { + "type": "string", + "maxLength": 200, + "minLength": 1, + "description": "Description for a prompt version resource." + }, + "Name": { + "type": "string", + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "description": "Name for a prompt resource." + } + }, + "required": [ + "PromptArn" + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/PromptId", + "/properties/UpdatedAt", + "/properties/Version", + "/properties/Name", + "/properties/DefaultVariant", + "/properties/Variants" + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "createOnlyProperties": [ + "/properties/PromptArn", + "/properties/Description" + ], + "handlers": { + "create": { + "permissions": [ + "bedrock:CreatePromptVersion", + "bedrock:GetPrompt" + ] + }, + "read": { + "permissions": [ + "bedrock:GetPrompt" + ] + }, + "update": { + "permissions": [ + "noservice:NoAction" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeletePrompt", + "bedrock:GetPrompt" + ] + }, + "list": { + "permissions": [ + "bedrock:ListPrompts" + ], + "handlerSchema": { + "properties": { + "PromptArn": { + "$ref": "resource-schema.json#/properties/PromptArn" + } + }, + "required": [ + "PromptArn" + ] + } + } + }, + "tagging": { + "taggable": false + }, + "additionalProperties": false +} diff --git a/internal/service/cloudformation/schemas/AWS_Glue_Trigger.json b/internal/service/cloudformation/schemas/AWS_Glue_Trigger.json new file mode 100644 index 000000000..9306370b3 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Glue_Trigger.json @@ -0,0 +1,215 @@ +{ + "typeName": "AWS::Glue::Trigger", + "description": "Resource Type definition for AWS::Glue::Trigger", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-glue.git", + "additionalProperties": false, + "properties": { + "Type": { + "type": "string", + "description": "The type of trigger that this is." + }, + "StartOnCreation": { + "type": "boolean", + "description": "Set to true to start SCHEDULED and CONDITIONAL triggers when created. True is not supported for ON_DEMAND triggers." + }, + "Description": { + "type": "string", + "description": "A description of this trigger." + }, + "Actions": { + "type": "array", + "description": "The actions initiated by this trigger.", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/Action" + } + }, + "EventBatchingCondition": { + "$ref": "#/definitions/EventBatchingCondition", + "description": "Batch condition that must be met (specified number of events received or batch time window expired) before EventBridge event trigger fires." + }, + "WorkflowName": { + "type": "string", + "description": "The name of the workflow associated with the trigger." + }, + "Schedule": { + "type": "string", + "description": "A cron expression used to specify the schedule." + }, + "Tags": { + "type": "object", + "description": "The tags to use with this trigger." + }, + "Name": { + "type": "string", + "description": "The name of the trigger." + }, + "Predicate": { + "$ref": "#/definitions/Predicate", + "description": "The predicate of this trigger, which defines when it will fire." + } + }, + "definitions": { + "Condition": { + "type": "object", + "description": "Defines a condition under which a trigger fires.", + "additionalProperties": false, + "properties": { + "JobName": { + "type": "string", + "description": "The name of the job whose JobRuns this condition applies to, and on which this trigger waits." + }, + "CrawlerName": { + "type": "string", + "description": "The name of the crawler to which this condition applies." + }, + "State": { + "type": "string", + "description": "The condition state. Currently, the values supported are SUCCEEDED, STOPPED, TIMEOUT, and FAILED." + }, + "CrawlState": { + "type": "string", + "description": "The state of the crawler to which this condition applies." + }, + "LogicalOperator": { + "type": "string", + "description": "A logical operator." + } + } + }, + "NotificationProperty": { + "type": "object", + "description": "Specifies configuration properties of a job run notification.", + "additionalProperties": false, + "properties": { + "NotifyDelayAfter": { + "type": "integer", + "description": "After a job run starts, the number of minutes to wait before sending a job run delay notification" + } + } + }, + "Action": { + "type": "object", + "description": "The actions initiated by this trigger.", + "additionalProperties": false, + "properties": { + "NotificationProperty": { + "$ref": "#/definitions/NotificationProperty", + "description": "Specifies configuration properties of a job run notification." + }, + "CrawlerName": { + "type": "string", + "description": "The name of the crawler to be used with this action." + }, + "Timeout": { + "type": "integer", + "description": "The JobRun timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status. The default is 2,880 minutes (48 hours). This overrides the timeout value set in the parent job." + }, + "JobName": { + "type": "string", + "description": "The name of a job to be executed." + }, + "Arguments": { + "type": "object", + "description": "The job arguments used when this trigger fires. For this job run, they replace the default arguments set in the job definition itself." + }, + "SecurityConfiguration": { + "type": "string", + "description": "The name of the SecurityConfiguration structure to be used with this action." + } + } + }, + "EventBatchingCondition": { + "type": "object", + "description": "Batch condition that must be met (specified number of events received or batch time window expired) before EventBridge event trigger fires.", + "additionalProperties": false, + "properties": { + "BatchSize": { + "type": "integer", + "description": "Number of events that must be received from Amazon EventBridge before EventBridge event trigger fires." + }, + "BatchWindow": { + "type": "integer", + "description": "Window of time in seconds after which EventBridge event trigger fires. Window starts when first event is received." + } + }, + "required": [ + "BatchSize" + ] + }, + "Predicate": { + "type": "object", + "description": "The predicate of this trigger, which defines when it will fire.", + "additionalProperties": false, + "properties": { + "Logical": { + "type": "string", + "description": "An optional field if only one condition is listed. If multiple conditions are listed, then this field is required." + }, + "Conditions": { + "type": "array", + "description": "A list of the conditions that determine when the trigger will fire.", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/Condition" + } + } + } + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags" + }, + "required": [ + "Type", + "Actions" + ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/WorkflowName", + "/properties/Type" + ], + "writeOnlyProperties": [ + "/properties/StartOnCreation" + ], + "primaryIdentifier": [ + "/properties/Name" + ], + "handlers": { + "create": { + "permissions": [ + "glue:CreateTrigger", + "glue:GetTrigger", + "glue:TagResource" + ] + }, + "read": { + "permissions": [ + "glue:GetTrigger", + "glue:GetTags" + ] + }, + "update": { + "permissions": [ + "glue:UpdateTrigger", + "glue:UntagResource", + "glue:TagResource" + ] + }, + "delete": { + "permissions": [ + "glue:DeleteTrigger", + "glue:GetTrigger" + ] + }, + "list": { + "permissions": [ + "glue:ListTriggers" + ] + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_SecretsManager_ResourcePolicy.json b/internal/service/cloudformation/schemas/AWS_SecretsManager_ResourcePolicy.json new file mode 100644 index 000000000..0f92d8d89 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_SecretsManager_ResourcePolicy.json @@ -0,0 +1,78 @@ +{ + "typeName": "AWS::SecretsManager::ResourcePolicy", + "description": "Resource Type definition for AWS::SecretsManager::ResourcePolicy", + "additionalProperties": false, + "properties": { + "Id": { + "type": "string", + "description": "The Arn of the secret." + }, + "SecretId": { + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "The ARN or name of the secret to attach the resource-based policy." + }, + "ResourcePolicy": { + "type": [ + "string", + "object" + ], + "description": "A JSON-formatted string for an AWS resource-based policy." + }, + "BlockPublicPolicy": { + "type": "boolean", + "description": "Specifies whether to block resource-based policies that allow broad access to the secret." + } + }, + "tagging": { + "taggable": false + }, + "required": [ + "ResourcePolicy", + "SecretId" + ], + "createOnlyProperties": [ + "/properties/SecretId" + ], + "writeOnlyProperties": [ + "/properties/BlockPublicPolicy" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "readOnlyProperties": [ + "/properties/Id" + ], + "handlers": { + "create": { + "permissions": [ + "secretsmanager:PutResourcePolicy", + "secretsmanager:GetResourcePolicy" + ] + }, + "read": { + "permissions": [ + "secretsmanager:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "secretsmanager:PutResourcePolicy", + "secretsmanager:GetResourcePolicy" + ] + }, + "delete": { + "permissions": [ + "secretsmanager:DeleteResourcePolicy", + "secretsmanager:GetResourcePolicy" + ] + }, + "list": { + "permissions": [ + "secretsmanager:GetResourcePolicy", + "secretsmanager:ListSecrets" + ] + } + } +} From 197d27b0dd7f24d2f8f42f22ff75e90b0ee64326 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 25 Jul 2024 15:07:34 -0400 Subject: [PATCH 25/89] 07/24/2024 CloudFormation schemas in us-east-1; Generate Terraform resource schemas. --- .../scaling_policy_resource_gen.go | 138 +-- .../aws/bedrock/flow_alias_resource_gen.go | 290 +++++ .../bedrock/flow_alias_resource_gen_test.go | 25 + .../aws/bedrock/flow_version_resource_gen.go | 1060 +++++++++++++++++ .../bedrock/flow_version_resource_gen_test.go | 25 + .../bedrock/knowledge_base_resource_gen.go | 320 ++++- internal/aws/bedrock/prompt_resource_gen.go | 671 +++++++++++ .../aws/bedrock/prompt_resource_gen_test.go | 25 + .../bedrock/prompt_version_resource_gen.go | 469 ++++++++ .../prompt_version_resource_gen_test.go | 25 + .../dms/replication_config_resource_gen.go | 37 +- .../replication_config_resource_gen_test.go | 27 +- .../aws/ec2/eip_association_resource_gen.go | 26 +- internal/aws/ec2/instance_resource_gen.go | 2 + .../aws/ec2/launch_template_resource_gen.go | 52 +- ...twork_interface_attachment_resource_gen.go | 32 +- ...pository_creation_template_resource_gen.go | 22 + internal/aws/ecr/repository_resource_gen.go | 4 +- internal/aws/eks/cluster_resource_gen.go | 45 + .../id_mapping_workflow_resource_gen.go | 4 +- internal/aws/fms/policy_resource_gen.go | 4 +- .../cross_account_attachment_resource_gen.go | 21 +- internal/aws/glue/trigger_resource_gen.go | 490 ++++++++ .../aws/glue/trigger_resource_gen_test.go | 25 + internal/aws/lightsail/alarm_resource_gen.go | 4 +- .../aws/lightsail/certificate_resource_gen.go | 2 +- .../mediaconnect/flow_output_resource_gen.go | 26 + .../mediapackagev2/channel_resource_gen.go | 25 + .../origin_endpoint_resource_gen.go | 55 + internal/aws/rds/db_cluster_resource_gen.go | 8 +- internal/aws/rds/db_instance_resource_gen.go | 14 +- .../resource_policy_resource_gen.go | 132 ++ .../resource_policy_resource_gen_test.go | 25 + .../user_settings_resource_gen.go | 24 + internal/provider/all_schemas.hcl | 4 +- 35 files changed, 3922 insertions(+), 236 deletions(-) create mode 100644 internal/aws/bedrock/flow_alias_resource_gen.go create mode 100644 internal/aws/bedrock/flow_alias_resource_gen_test.go create mode 100644 internal/aws/bedrock/flow_version_resource_gen.go create mode 100644 internal/aws/bedrock/flow_version_resource_gen_test.go create mode 100644 internal/aws/bedrock/prompt_resource_gen.go create mode 100644 internal/aws/bedrock/prompt_resource_gen_test.go create mode 100644 internal/aws/bedrock/prompt_version_resource_gen.go create mode 100644 internal/aws/bedrock/prompt_version_resource_gen_test.go create mode 100644 internal/aws/glue/trigger_resource_gen.go create mode 100644 internal/aws/glue/trigger_resource_gen_test.go create mode 100644 internal/aws/secretsmanager/resource_policy_resource_gen.go create mode 100644 internal/aws/secretsmanager/resource_policy_resource_gen_test.go diff --git a/internal/aws/applicationautoscaling/scaling_policy_resource_gen.go b/internal/aws/applicationautoscaling/scaling_policy_resource_gen.go index 9ab790ca9..9c8236a93 100644 --- a/internal/aws/applicationautoscaling/scaling_policy_resource_gen.go +++ b/internal/aws/applicationautoscaling/scaling_policy_resource_gen.go @@ -34,11 +34,11 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "ARN is a read only property for the resource.", + // "description": "", // "type": "string" // } "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "ARN is a read only property for the resource.", + Description: "", Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -48,11 +48,11 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The name of the scaling policy.\n\nUpdates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing AWS::ApplicationAutoScaling::ScalingPolicy resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name.", + // "description": "The name of the scaling policy.\n Updates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing ``AWS::ApplicationAutoScaling::ScalingPolicy`` resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name.", // "type": "string" // } "policy_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of the scaling policy.\n\nUpdates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing AWS::ApplicationAutoScaling::ScalingPolicy resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name.", + Description: "The name of the scaling policy.\n Updates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing ``AWS::ApplicationAutoScaling::ScalingPolicy`` resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name.", Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), @@ -62,22 +62,22 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The scaling policy type.\n\nThe following policy types are supported:\n\nTargetTrackingScaling Not supported for Amazon EMR\n\nStepScaling Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune.", + // "description": "The scaling policy type.\n The following policy types are supported: \n ``TargetTrackingScaling``—Not supported for Amazon EMR\n ``StepScaling``—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune.", // "type": "string" // } "policy_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The scaling policy type.\n\nThe following policy types are supported:\n\nTargetTrackingScaling Not supported for Amazon EMR\n\nStepScaling Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune.", + Description: "The scaling policy type.\n The following policy types are supported: \n ``TargetTrackingScaling``—Not supported for Amazon EMR\n ``StepScaling``—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune.", Required: true, }, /*END ATTRIBUTE*/ // Property: ResourceId // CloudFormation resource type schema: // // { - // "description": "The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.", + // "description": "The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.\n + ECS service - The resource type is ``service`` and the unique identifier is the cluster name and service name. Example: ``service/my-cluster/my-service``.\n + Spot Fleet - The resource type is ``spot-fleet-request`` and the unique identifier is the Spot Fleet request ID. Example: ``spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE``.\n + EMR cluster - The resource type is ``instancegroup`` and the unique identifier is the cluster ID and instance group ID. Example: ``instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0``.\n + AppStream 2.0 fleet - The resource type is ``fleet`` and the unique identifier is the fleet name. Example: ``fleet/sample-fleet``.\n + DynamoDB table - The resource type is ``table`` and the unique identifier is the table name. Example: ``table/my-table``.\n + DynamoDB global secondary index - The resource type is ``index`` and the unique identifier is the index name. Example: ``table/my-table/index/my-table-index``.\n + Aurora DB cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:my-db-cluster``.\n + SageMaker endpoint variant - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering``.\n + Custom resources are not supported with a resource type. This parameter must specify the ``OutputValue`` from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our [GitHub repository](https://docs.aws.amazon.com/https://github.com/aws/aws-auto-scaling-custom-resource).\n + Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: ``arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE``.\n + Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: ``arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE``.\n + Lambda provisioned concurrency - The resource type is ``function`` and the unique identifier is the function name with a function version or alias name suffix that is not ``$LATEST``. Example: ``function:my-function:prod`` or ``function:my-function:1``.\n + Amazon Keyspaces table - The resource type is ``table`` and the unique identifier is the table name. Example: ``keyspace/mykeyspace/table/mytable``.\n + Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: ``arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5``.\n + Amazon ElastiCache replication group - The resource type is ``replication-group`` and the unique identifier is the replication group name. Example: ``replication-group/mycluster``.\n + Neptune cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:mycluster``.\n + SageMaker serverless endpoint - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering``.\n + SageMaker inference component - The resource type is ``inference-component`` and the unique identifier is the resource ID. Example: ``inference-component/my-inference-component``.\n + Pool of WorkSpaces - The resource type is ``workspacespool`` and the unique identifier is the pool ID. Example: ``workspacespool/wspool-123456``.", // "type": "string" // } "resource_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.", + Description: "The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.\n + ECS service - The resource type is ``service`` and the unique identifier is the cluster name and service name. Example: ``service/my-cluster/my-service``.\n + Spot Fleet - The resource type is ``spot-fleet-request`` and the unique identifier is the Spot Fleet request ID. Example: ``spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE``.\n + EMR cluster - The resource type is ``instancegroup`` and the unique identifier is the cluster ID and instance group ID. Example: ``instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0``.\n + AppStream 2.0 fleet - The resource type is ``fleet`` and the unique identifier is the fleet name. Example: ``fleet/sample-fleet``.\n + DynamoDB table - The resource type is ``table`` and the unique identifier is the table name. Example: ``table/my-table``.\n + DynamoDB global secondary index - The resource type is ``index`` and the unique identifier is the index name. Example: ``table/my-table/index/my-table-index``.\n + Aurora DB cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:my-db-cluster``.\n + SageMaker endpoint variant - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering``.\n + Custom resources are not supported with a resource type. This parameter must specify the ``OutputValue`` from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our [GitHub repository](https://docs.aws.amazon.com/https://github.com/aws/aws-auto-scaling-custom-resource).\n + Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: ``arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE``.\n + Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: ``arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE``.\n + Lambda provisioned concurrency - The resource type is ``function`` and the unique identifier is the function name with a function version or alias name suffix that is not ``$LATEST``. Example: ``function:my-function:prod`` or ``function:my-function:1``.\n + Amazon Keyspaces table - The resource type is ``table`` and the unique identifier is the table name. Example: ``keyspace/mykeyspace/table/mytable``.\n + Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: ``arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5``.\n + Amazon ElastiCache replication group - The resource type is ``replication-group`` and the unique identifier is the replication group name. Example: ``replication-group/mycluster``.\n + Neptune cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:mycluster``.\n + SageMaker serverless endpoint - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering``.\n + SageMaker inference component - The resource type is ``inference-component`` and the unique identifier is the resource ID. Example: ``inference-component/my-inference-component``.\n + Pool of WorkSpaces - The resource type is ``workspacespool`` and the unique identifier is the pool ID. Example: ``workspacespool/wspool-123456``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -89,11 +89,11 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The scalable dimension. This string consists of the service namespace, resource type, and scaling property.", + // "description": "The scalable dimension. This string consists of the service namespace, resource type, and scaling property.\n + ``ecs:service:DesiredCount`` - The task count of an ECS service.\n + ``elasticmapreduce:instancegroup:InstanceCount`` - The instance count of an EMR Instance Group.\n + ``ec2:spot-fleet-request:TargetCapacity`` - The target capacity of a Spot Fleet.\n + ``appstream:fleet:DesiredCapacity`` - The capacity of an AppStream 2.0 fleet.\n + ``dynamodb:table:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB table.\n + ``dynamodb:table:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB table.\n + ``dynamodb:index:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB global secondary index.\n + ``dynamodb:index:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB global secondary index.\n + ``rds:cluster:ReadReplicaCount`` - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition.\n + ``sagemaker:variant:DesiredInstanceCount`` - The number of EC2 instances for a SageMaker model endpoint variant.\n + ``custom-resource:ResourceType:Property`` - The scalable dimension for a custom resource provided by your own application or service.\n + ``comprehend:document-classifier-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend document classification endpoint.\n + ``comprehend:entity-recognizer-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend entity recognizer endpoint.\n + ``lambda:function:ProvisionedConcurrency`` - The provisioned concurrency for a Lambda function.\n + ``cassandra:table:ReadCapacityUnits`` - The provisioned read capacity for an Amazon Keyspaces table.\n + ``cassandra:table:WriteCapacityUnits`` - The provisioned write capacity for an Amazon Keyspaces table.\n + ``kafka:broker-storage:VolumeSize`` - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster.\n + ``elasticache:replication-group:NodeGroups`` - The number of node groups for an Amazon ElastiCache replication group.\n + ``elasticache:replication-group:Replicas`` - The number of replicas per node group for an Amazon ElastiCache replication group.\n + ``neptune:cluster:ReadReplicaCount`` - The count of read replicas in an Amazon Neptune DB cluster.\n + ``sagemaker:variant:DesiredProvisionedConcurrency`` - The provisioned concurrency for a SageMaker serverless endpoint.\n + ``sagemaker:inference-component:DesiredCopyCount`` - The number of copies across an endpoint for a SageMaker inference component.\n + ``workspaces:workspacespool:DesiredUserSessions`` - The number of user sessions for the WorkSpaces in the pool.", // "type": "string" // } "scalable_dimension": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The scalable dimension. This string consists of the service namespace, resource type, and scaling property.", + Description: "The scalable dimension. This string consists of the service namespace, resource type, and scaling property.\n + ``ecs:service:DesiredCount`` - The task count of an ECS service.\n + ``elasticmapreduce:instancegroup:InstanceCount`` - The instance count of an EMR Instance Group.\n + ``ec2:spot-fleet-request:TargetCapacity`` - The target capacity of a Spot Fleet.\n + ``appstream:fleet:DesiredCapacity`` - The capacity of an AppStream 2.0 fleet.\n + ``dynamodb:table:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB table.\n + ``dynamodb:table:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB table.\n + ``dynamodb:index:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB global secondary index.\n + ``dynamodb:index:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB global secondary index.\n + ``rds:cluster:ReadReplicaCount`` - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition.\n + ``sagemaker:variant:DesiredInstanceCount`` - The number of EC2 instances for a SageMaker model endpoint variant.\n + ``custom-resource:ResourceType:Property`` - The scalable dimension for a custom resource provided by your own application or service.\n + ``comprehend:document-classifier-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend document classification endpoint.\n + ``comprehend:entity-recognizer-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend entity recognizer endpoint.\n + ``lambda:function:ProvisionedConcurrency`` - The provisioned concurrency for a Lambda function.\n + ``cassandra:table:ReadCapacityUnits`` - The provisioned read capacity for an Amazon Keyspaces table.\n + ``cassandra:table:WriteCapacityUnits`` - The provisioned write capacity for an Amazon Keyspaces table.\n + ``kafka:broker-storage:VolumeSize`` - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster.\n + ``elasticache:replication-group:NodeGroups`` - The number of node groups for an Amazon ElastiCache replication group.\n + ``elasticache:replication-group:Replicas`` - The number of replicas per node group for an Amazon ElastiCache replication group.\n + ``neptune:cluster:ReadReplicaCount`` - The count of read replicas in an Amazon Neptune DB cluster.\n + ``sagemaker:variant:DesiredProvisionedConcurrency`` - The provisioned concurrency for a SageMaker serverless endpoint.\n + ``sagemaker:inference-component:DesiredCopyCount`` - The number of copies across an endpoint for a SageMaker inference component.\n + ``workspaces:workspacespool:DesiredUserSessions`` - The number of user sessions for the WorkSpaces in the pool.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -105,11 +105,11 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the AWS::ApplicationAutoScaling::ScalableTarget resource.", + // "description": "The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the ``AWS::ApplicationAutoScaling::ScalableTarget`` resource.\n You must specify either the ``ScalingTargetId`` property, or the ``ResourceId``, ``ScalableDimension``, and ``ServiceNamespace`` properties, but not both.", // "type": "string" // } "scaling_target_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the AWS::ApplicationAutoScaling::ScalableTarget resource.", + Description: "The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the ``AWS::ApplicationAutoScaling::ScalableTarget`` resource.\n You must specify either the ``ScalingTargetId`` property, or the ``ResourceId``, ``ScalableDimension``, and ``ServiceNamespace`` properties, but not both.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -122,11 +122,11 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The namespace of the AWS service that provides the resource, or a custom-resource.", + // "description": "The namespace of the AWS service that provides the resource, or a ``custom-resource``.", // "type": "string" // } "service_namespace": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The namespace of the AWS service that provides the resource, or a custom-resource.", + Description: "The namespace of the AWS service that provides the resource, or a ``custom-resource``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -142,38 +142,38 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // "description": "A step scaling policy.", // "properties": { // "AdjustmentType": { - // "description": "Specifies how the ScalingAdjustment value in a StepAdjustment is interpreted.", + // "description": "Specifies whether the ``ScalingAdjustment`` value in the ``StepAdjustment`` property is an absolute number or a percentage of the current capacity.", // "type": "string" // }, // "Cooldown": { - // "description": "The amount of time, in seconds, to wait for a previous scaling activity to take effect.", + // "description": "The amount of time, in seconds, to wait for a previous scaling activity to take effect. If not specified, the default value is 300. For more information, see [Cooldown period](https://docs.aws.amazon.com/autoscaling/application/userguide/step-scaling-policy-overview.html#step-scaling-cooldown) in the *Application Auto Scaling User Guide*.", // "type": "integer" // }, // "MetricAggregationType": { - // "description": "The aggregation type for the CloudWatch metrics. Valid values are Minimum, Maximum, and Average. If the aggregation type is null, the value is treated as Average", + // "description": "The aggregation type for the CloudWatch metrics. Valid values are ``Minimum``, ``Maximum``, and ``Average``. If the aggregation type is null, the value is treated as ``Average``.", // "type": "string" // }, // "MinAdjustmentMagnitude": { - // "description": "The minimum value to scale by when the adjustment type is PercentChangeInCapacity.", + // "description": "The minimum value to scale by when the adjustment type is ``PercentChangeInCapacity``. For example, suppose that you create a step scaling policy to scale out an Amazon ECS service by 25 percent and you specify a ``MinAdjustmentMagnitude`` of 2. If the service has 4 tasks and the scaling policy is performed, 25 percent of 4 is 1. However, because you specified a ``MinAdjustmentMagnitude`` of 2, Application Auto Scaling scales out the service by 2 tasks.", // "type": "integer" // }, // "StepAdjustments": { - // "description": "A set of adjustments that enable you to scale based on the size of the alarm breach.", + // "description": "A set of adjustments that enable you to scale based on the size of the alarm breach.\n At least one step adjustment is required if you are adding a new step scaling policy configuration.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Represents a step adjustment for a StepScalingPolicyConfiguration. Describes an adjustment based on the difference between the value of the aggregated CloudWatch metric and the breach threshold that you've defined for the alarm.", + // "description": "``StepAdjustment`` specifies a step adjustment for the ``StepAdjustments`` property of the [AWS::ApplicationAutoScaling::ScalingPolicy StepScalingPolicyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html) property type. \n For the following examples, suppose that you have an alarm with a breach threshold of 50: \n + To trigger a step adjustment when the metric is greater than or equal to 50 and less than 60, specify a lower bound of 0 and an upper bound of 10. \n + To trigger a step adjustment when the metric is greater than 40 and less than or equal to 50, specify a lower bound of -10 and an upper bound of 0. \n \n For more information, see [Step adjustments](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html#as-scaling-steps) in the *Application Auto Scaling User Guide*.\n You can find a sample template snippet in the [Examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#aws-resource-applicationautoscaling-scalingpolicy--examples) section of the ``AWS::ApplicationAutoScaling::ScalingPolicy`` documentation.", // "properties": { // "MetricIntervalLowerBound": { - // "description": "The lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it is exclusive (the metric must be greater than the threshold plus the lower bound). A null value indicates negative infinity.", + // "description": "The lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it is exclusive (the metric must be greater than the threshold plus the lower bound). A null value indicates negative infinity.\n You must specify at least one upper or lower bound.", // "type": "number" // }, // "MetricIntervalUpperBound": { - // "description": "The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity.", + // "description": "The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity.\n You must specify at least one upper or lower bound.", // "type": "number" // }, // "ScalingAdjustment": { - // "description": "The amount by which to scale, based on the specified adjustment type. A positive value adds to the current capacity while a negative number removes from the current capacity. For exact capacity, you must specify a positive value.", + // "description": "The amount by which to scale. The adjustment is based on the value that you specified in the ``AdjustmentType`` property (either an absolute number or a percentage). A positive value adds to the current capacity and a negative number subtracts from the current capacity.", // "type": "integer" // } // }, @@ -192,7 +192,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: AdjustmentType "adjustment_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies how the ScalingAdjustment value in a StepAdjustment is interpreted.", + Description: "Specifies whether the ``ScalingAdjustment`` value in the ``StepAdjustment`` property is an absolute number or a percentage of the current capacity.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -201,7 +201,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Cooldown "cooldown": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The amount of time, in seconds, to wait for a previous scaling activity to take effect.", + Description: "The amount of time, in seconds, to wait for a previous scaling activity to take effect. If not specified, the default value is 300. For more information, see [Cooldown period](https://docs.aws.amazon.com/autoscaling/application/userguide/step-scaling-policy-overview.html#step-scaling-cooldown) in the *Application Auto Scaling User Guide*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ @@ -210,7 +210,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: MetricAggregationType "metric_aggregation_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The aggregation type for the CloudWatch metrics. Valid values are Minimum, Maximum, and Average. If the aggregation type is null, the value is treated as Average", + Description: "The aggregation type for the CloudWatch metrics. Valid values are ``Minimum``, ``Maximum``, and ``Average``. If the aggregation type is null, the value is treated as ``Average``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -219,7 +219,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: MinAdjustmentMagnitude "min_adjustment_magnitude": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The minimum value to scale by when the adjustment type is PercentChangeInCapacity.", + Description: "The minimum value to scale by when the adjustment type is ``PercentChangeInCapacity``. For example, suppose that you create a step scaling policy to scale out an Amazon ECS service by 25 percent and you specify a ``MinAdjustmentMagnitude`` of 2. If the service has 4 tasks and the scaling policy is performed, 25 percent of 4 is 1. However, because you specified a ``MinAdjustmentMagnitude`` of 2, Application Auto Scaling scales out the service by 2 tasks.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ @@ -232,7 +232,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: MetricIntervalLowerBound "metric_interval_lower_bound": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "The lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it is exclusive (the metric must be greater than the threshold plus the lower bound). A null value indicates negative infinity.", + Description: "The lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it is exclusive (the metric must be greater than the threshold plus the lower bound). A null value indicates negative infinity.\n You must specify at least one upper or lower bound.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ @@ -241,7 +241,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: MetricIntervalUpperBound "metric_interval_upper_bound": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity.", + Description: "The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity.\n You must specify at least one upper or lower bound.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ @@ -250,12 +250,12 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: ScalingAdjustment "scaling_adjustment": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The amount by which to scale, based on the specified adjustment type. A positive value adds to the current capacity while a negative number removes from the current capacity. For exact capacity, you must specify a positive value.", + Description: "The amount by which to scale. The adjustment is based on the value that you specified in the ``AdjustmentType`` property (either an absolute number or a percentage). A positive value adds to the current capacity and a negative number subtracts from the current capacity.", Required: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "A set of adjustments that enable you to scale based on the size of the alarm breach.", + Description: "A set of adjustments that enable you to scale based on the size of the alarm breach.\n At least one step adjustment is required if you are adding a new step scaling policy configuration.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ @@ -282,11 +282,11 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // "description": "A customized metric. You can specify either a predefined metric or a customized metric.", // "properties": { // "Dimensions": { - // "description": "The dimensions of the metric.", + // "description": "The dimensions of the metric. \n Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Describes the dimension names and values associated with a metric.", + // "description": "``MetricDimension`` specifies a name/value pair that is part of the identity of a CloudWatch metric for the ``Dimensions`` property of the [AWS::ApplicationAutoScaling::ScalingPolicy CustomizedMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html) property type. Duplicate dimensions are not allowed.", // "properties": { // "Name": { // "description": "The name of the dimension.", @@ -307,7 +307,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // "uniqueItems": false // }, // "MetricName": { - // "description": "The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the Metric object that is returned by a call to ListMetrics.", + // "description": "The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that's returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html).", // "type": "string" // }, // "Metrics": { @@ -315,14 +315,14 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "The metric data to return. Also defines whether this call is returning data for one metric only, or whether it is performing a math expression on the values of returned metric statistics to create a new time series. A time series is a series of data points, each of which is associated with a timestamp.", + // "description": "The metric data to return. Also defines whether this call is returning data for one metric only, or whether it is performing a math expression on the values of returned metric statistics to create a new time series. A time series is a series of data points, each of which is associated with a timestamp.\n You can call for a single metric or perform math expressions on multiple metrics. Any expressions used in a metric specification must eventually return a single time series.\n For more information and examples, see [Create a target tracking scaling policy for Application Auto Scaling using metric math](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking-metric-math.html) in the *Application Auto Scaling User Guide*.\n ``TargetTrackingMetricDataQuery`` is a property of the [AWS::ApplicationAutoScaling::ScalingPolicy CustomizedMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html) property type.", // "properties": { // "Expression": { - // "description": "The math expression to perform on the returned data, if this object is performing a math expression.", + // "description": "The math expression to perform on the returned data, if this object is performing a math expression. This expression can use the ``Id`` of the other metrics to refer to those metrics, and can also use the ``Id`` of other expressions to use the result of those expressions. \n Conditional: Within each ``TargetTrackingMetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both.", // "type": "string" // }, // "Id": { - // "description": "A short name that identifies the object's results in the response.", + // "description": "A short name that identifies the object's results in the response. This name must be unique among all ``MetricDataQuery`` objects specified for a single scaling policy. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscores. The first character must be a lowercase letter.", // "type": "string" // }, // "Label": { @@ -331,18 +331,18 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // }, // "MetricStat": { // "additionalProperties": false, - // "description": "Information about the metric data to return.", + // "description": "Information about the metric data to return.\n Conditional: Within each ``MetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both.", // "properties": { // "Metric": { // "additionalProperties": false, - // "description": "The CloudWatch metric to return, including the metric name, namespace, and dimensions. ", + // "description": "The CloudWatch metric to return, including the metric name, namespace, and dimensions. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that is returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html).", // "properties": { // "Dimensions": { - // "description": "The dimensions for the metric.", + // "description": "The dimensions for the metric. For the list of available dimensions, see the AWS documentation available from the table in [services that publish CloudWatch metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) in the *Amazon CloudWatch User Guide*. \n Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Describes the dimension of a metric.", + // "description": "``TargetTrackingMetricDimension`` specifies a name/value pair that is part of the identity of a CloudWatch metric for the ``Dimensions`` property of the [AWS::ApplicationAutoScaling::ScalingPolicy TargetTrackingMetric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingmetric.html) property type. Duplicate dimensions are not allowed.", // "properties": { // "Name": { // "description": "The name of the dimension.", @@ -363,25 +363,25 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // "type": "string" // }, // "Namespace": { - // "description": "The namespace of the metric.", + // "description": "The namespace of the metric. For more information, see the table in [services that publish CloudWatch metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) in the *Amazon CloudWatch User Guide*.", // "type": "string" // } // }, // "type": "object" // }, // "Stat": { - // "description": "The statistic to return. It can include any CloudWatch statistic or extended statistic.", + // "description": "The statistic to return. It can include any CloudWatch statistic or extended statistic. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *Amazon CloudWatch User Guide*.\n The most commonly used metric for scaling is ``Average``.", // "type": "string" // }, // "Unit": { - // "description": "The unit to use for the returned data points.", + // "description": "The unit to use for the returned data points. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*.", // "type": "string" // } // }, // "type": "object" // }, // "ReturnData": { - // "description": "Indicates whether to return the timestamps and raw data values of this metric.", + // "description": "Indicates whether to return the timestamps and raw data values of this metric. \n If you use any math expressions, specify ``true`` for this value for only the final math expression that the metric specification is based on. You must specify ``false`` for ``ReturnData`` for all the other metrics and expressions used in the metric specification.\n If you are only retrieving metrics and not performing any math expressions, do not specify anything for ``ReturnData``. This sets it to its default (``true``).", // "type": "boolean" // } // }, @@ -399,14 +399,14 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // "type": "string" // }, // "Unit": { - // "description": "The unit of the metric. For a complete list of the units that CloudWatch supports, see the MetricDatum data type in the Amazon CloudWatch API Reference.", + // "description": "The unit of the metric. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*.", // "type": "string" // } // }, // "type": "object" // }, // "DisableScaleIn": { - // "description": "Indicates whether scale in by the target tracking scaling policy is disabled. If the value is true, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target. The default value is false.", + // "description": "Indicates whether scale in by the target tracking scaling policy is disabled. If the value is ``true``, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target. The default value is ``false``.", // "type": "boolean" // }, // "PredefinedMetricSpecification": { @@ -414,11 +414,11 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // "description": "A predefined metric. You can specify either a predefined metric or a customized metric.", // "properties": { // "PredefinedMetricType": { - // "description": "The metric type. The ALBRequestCountPerTarget metric type applies only to Spot Fleets and ECS services.", + // "description": "The metric type. The ``ALBRequestCountPerTarget`` metric type applies only to Spot fleet requests and ECS services.", // "type": "string" // }, // "ResourceLabel": { - // "description": "Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ALBRequestCountPerTarget and there is a target group attached to the Spot Fleet or ECS service.", + // "description": "Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ``ALBRequestCountPerTarget`` and there is a target group attached to the Spot Fleet or ECS service.\n You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). The format of the resource label is:\n ``app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff``.\n Where:\n + app/\u003cload-balancer-name\u003e/\u003cload-balancer-id\u003e is the final portion of the load balancer ARN\n + targetgroup/\u003ctarget-group-name\u003e/\u003ctarget-group-id\u003e is the final portion of the target group ARN.\n \n To find the ARN for an Application Load Balancer, use the [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operation. To find the ARN for the target group, use the [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) API operation.", // "type": "string" // } // }, @@ -428,11 +428,11 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // "type": "object" // }, // "ScaleInCooldown": { - // "description": "The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start.", + // "description": "The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start. For more information and for default values, see [Define cooldown periods](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) in the *Application Auto Scaling User Guide*.", // "type": "integer" // }, // "ScaleOutCooldown": { - // "description": "The amount of time, in seconds, to wait for a previous scale-out activity to take effect.", + // "description": "The amount of time, in seconds, to wait for a previous scale-out activity to take effect. For more information and for default values, see [Define cooldown periods](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) in the *Application Auto Scaling User Guide*.", // "type": "integer" // }, // "TargetValue": { @@ -466,7 +466,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The dimensions of the metric.", + Description: "The dimensions of the metric. \n Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy.", Optional: true, Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ @@ -476,7 +476,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: MetricName "metric_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the Metric object that is returned by a call to ListMetrics.", + Description: "The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that's returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html).", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -489,7 +489,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Expression "expression": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The math expression to perform on the returned data, if this object is performing a math expression.", + Description: "The math expression to perform on the returned data, if this object is performing a math expression. This expression can use the ``Id`` of the other metrics to refer to those metrics, and can also use the ``Id`` of other expressions to use the result of those expressions. \n Conditional: Within each ``TargetTrackingMetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -498,7 +498,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Id "id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A short name that identifies the object's results in the response.", + Description: "A short name that identifies the object's results in the response. This name must be unique among all ``MetricDataQuery`` objects specified for a single scaling policy. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscores. The first character must be a lowercase letter.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -544,7 +544,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The dimensions for the metric.", + Description: "The dimensions for the metric. For the list of available dimensions, see the AWS documentation available from the table in [services that publish CloudWatch metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) in the *Amazon CloudWatch User Guide*. \n Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy.", Optional: true, Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ @@ -563,7 +563,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Namespace "namespace": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The namespace of the metric.", + Description: "The namespace of the metric. For more information, see the table in [services that publish CloudWatch metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) in the *Amazon CloudWatch User Guide*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -571,7 +571,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The CloudWatch metric to return, including the metric name, namespace, and dimensions. ", + Description: "The CloudWatch metric to return, including the metric name, namespace, and dimensions. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that is returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html).", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -580,7 +580,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Stat "stat": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The statistic to return. It can include any CloudWatch statistic or extended statistic.", + Description: "The statistic to return. It can include any CloudWatch statistic or extended statistic. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *Amazon CloudWatch User Guide*.\n The most commonly used metric for scaling is ``Average``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -589,7 +589,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Unit "unit": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The unit to use for the returned data points.", + Description: "The unit to use for the returned data points. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -597,7 +597,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "Information about the metric data to return.", + Description: "Information about the metric data to return.\n Conditional: Within each ``MetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -606,7 +606,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: ReturnData "return_data": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Indicates whether to return the timestamps and raw data values of this metric.", + Description: "Indicates whether to return the timestamps and raw data values of this metric. \n If you use any math expressions, specify ``true`` for this value for only the final math expression that the metric specification is based on. You must specify ``false`` for ``ReturnData`` for all the other metrics and expressions used in the metric specification.\n If you are only retrieving metrics and not performing any math expressions, do not specify anything for ``ReturnData``. This sets it to its default (``true``).", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -643,7 +643,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Unit "unit": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The unit of the metric. For a complete list of the units that CloudWatch supports, see the MetricDatum data type in the Amazon CloudWatch API Reference.", + Description: "The unit of the metric. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -660,7 +660,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: DisableScaleIn "disable_scale_in": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Indicates whether scale in by the target tracking scaling policy is disabled. If the value is true, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target. The default value is false.", + Description: "Indicates whether scale in by the target tracking scaling policy is disabled. If the value is ``true``, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target. The default value is ``false``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -672,12 +672,12 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: PredefinedMetricType "predefined_metric_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The metric type. The ALBRequestCountPerTarget metric type applies only to Spot Fleets and ECS services.", + Description: "The metric type. The ``ALBRequestCountPerTarget`` metric type applies only to Spot fleet requests and ECS services.", Required: true, }, /*END ATTRIBUTE*/ // Property: ResourceLabel "resource_label": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ALBRequestCountPerTarget and there is a target group attached to the Spot Fleet or ECS service.", + Description: "Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ``ALBRequestCountPerTarget`` and there is a target group attached to the Spot Fleet or ECS service.\n You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). The format of the resource label is:\n ``app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff``.\n Where:\n + app// is the final portion of the load balancer ARN\n + targetgroup// is the final portion of the target group ARN.\n \n To find the ARN for an Application Load Balancer, use the [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operation. To find the ARN for the target group, use the [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) API operation.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -695,7 +695,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: ScaleInCooldown "scale_in_cooldown": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start.", + Description: "The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start. For more information and for default values, see [Define cooldown periods](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) in the *Application Auto Scaling User Guide*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ @@ -704,7 +704,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: ScaleOutCooldown "scale_out_cooldown": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The amount of time, in seconds, to wait for a previous scale-out activity to take effect.", + Description: "The amount of time, in seconds, to wait for a previous scale-out activity to take effect. For more information and for default values, see [Define cooldown periods](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) in the *Application Auto Scaling User Guide*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ @@ -736,7 +736,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { } schema := schema.Schema{ - Description: "Resource Type definition for AWS::ApplicationAutoScaling::ScalingPolicy", + Description: "The ``AWS::ApplicationAutoScaling::ScalingPolicy`` resource defines a scaling policy that Application Auto Scaling uses to adjust the capacity of a scalable target. \n For more information, see [Target tracking scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) and [Step scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html) in the *Application Auto Scaling User Guide*.", Version: 1, Attributes: attributes, } diff --git a/internal/aws/bedrock/flow_alias_resource_gen.go b/internal/aws/bedrock/flow_alias_resource_gen.go new file mode 100644 index 000000000..bacdb13cb --- /dev/null +++ b/internal/aws/bedrock/flow_alias_resource_gen.go @@ -0,0 +1,290 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package bedrock + +import ( + "context" + "regexp" + + "github.com/hashicorp/terraform-plugin-framework-timetypes/timetypes" + "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/mapplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_bedrock_flow_alias", flowAliasResource) +} + +// flowAliasResource returns the Terraform awscc_bedrock_flow_alias resource. +// This Terraform resource corresponds to the CloudFormation AWS::Bedrock::FlowAlias resource. +func flowAliasResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "description": "Arn of the Flow Alias", + // "maxLength": 2048, + // "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}/alias/[0-9a-zA-Z]{10}$", + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Arn of the Flow Alias", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CreatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp.", + // "format": "date-time", + // "type": "string" + // } + "created_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "Description of the Resource.", + // "maxLength": 200, + // "minLength": 1, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Description of the Resource.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 200), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: FlowArn + // CloudFormation resource type schema: + // + // { + // "description": "Arn representation of the Flow", + // "maxLength": 2048, + // "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + // "type": "string" + // } + "flow_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Arn representation of the Flow", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(2048), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: FlowId + // CloudFormation resource type schema: + // + // { + // "description": "Identifier for a flow resource.", + // "pattern": "^[0-9a-zA-Z]{10}$", + // "type": "string" + // } + "flow_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Identifier for a flow resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "description": "Id for a Flow Alias generated at the server side.", + // "maxLength": 10, + // "minLength": 10, + // "pattern": "^(\\bTSTALIASID\\b|[0-9a-zA-Z]+)$", + // "type": "string" + // } + "flow_alias_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Id for a Flow Alias generated at the server side.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "Name for a resource.", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a resource.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^([0-9a-zA-Z][_-]?){1,100}$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: RoutingConfiguration + // CloudFormation resource type schema: + // + // { + // "description": "Routing configuration for a Flow alias.", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Details about the routing configuration for a Flow alias.", + // "properties": { + // "FlowVersion": { + // "description": "Version.", + // "maxLength": 1, + // "minLength": 1, + // "pattern": "^(DRAFT|[0-9]{0,4}[1-9][0-9]{0,4})$", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "maxItems": 1, + // "minItems": 1, + // "type": "array" + // } + "routing_configuration": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: FlowVersion + "flow_version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Version.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 1), + stringvalidator.RegexMatches(regexp.MustCompile("^(DRAFT|[0-9]{0,4}[1-9][0-9]{0,4})$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "Routing configuration for a Flow alias.", + Required: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 1), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "A map of tag keys and values", + // "patternProperties": { + // "": { + // "description": "Value of a tag", + // "maxLength": 256, + // "minLength": 0, + // "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + // "type": "string" + // } + // }, + // "type": "object" + // } + "tags": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A map of tag keys and values", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ + mapplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: UpdatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp.", + // "format": "date-time", + // "type": "string" + // } + "updated_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + // Corresponds to CloudFormation primaryIdentifier. + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Definition of AWS::Bedrock::FlowAlias Resource Type", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Bedrock::FlowAlias").WithTerraformTypeName("awscc_bedrock_flow_alias") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "arn": "Arn", + "created_at": "CreatedAt", + "description": "Description", + "flow_alias_id": "Id", + "flow_arn": "FlowArn", + "flow_id": "FlowId", + "flow_version": "FlowVersion", + "name": "Name", + "routing_configuration": "RoutingConfiguration", + "tags": "Tags", + "updated_at": "UpdatedAt", + }) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/bedrock/flow_alias_resource_gen_test.go b/internal/aws/bedrock/flow_alias_resource_gen_test.go new file mode 100644 index 000000000..bada80972 --- /dev/null +++ b/internal/aws/bedrock/flow_alias_resource_gen_test.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package bedrock_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSBedrockFlowAlias_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Bedrock::FlowAlias", "awscc_bedrock_flow_alias", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/bedrock/flow_version_resource_gen.go b/internal/aws/bedrock/flow_version_resource_gen.go new file mode 100644 index 000000000..4ac7628db --- /dev/null +++ b/internal/aws/bedrock/flow_version_resource_gen.go @@ -0,0 +1,1060 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package bedrock + +import ( + "context" + "regexp" + + "github.com/hashicorp/terraform-plugin-framework-jsontypes/jsontypes" + "github.com/hashicorp/terraform-plugin-framework-timetypes/timetypes" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_bedrock_flow_version", flowVersionResource) +} + +// flowVersionResource returns the Terraform awscc_bedrock_flow_version resource. +// This Terraform resource corresponds to the CloudFormation AWS::Bedrock::FlowVersion resource. +func flowVersionResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CreatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp.", + // "format": "date-time", + // "type": "string" + // } + "created_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Definition + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Flow definition", + // "properties": { + // "Connections": { + // "description": "List of connections", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Flow connection", + // "properties": { + // "Configuration": { + // "description": "Connection configuration", + // "properties": { + // "Conditional": { + // "additionalProperties": false, + // "description": "Conditional connection configuration", + // "properties": { + // "Condition": { + // "description": "Name of a condition in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // } + // }, + // "required": [ + // "Condition" + // ], + // "type": "object" + // }, + // "Data": { + // "additionalProperties": false, + // "description": "Data connection configuration", + // "properties": { + // "SourceOutput": { + // "description": "Name of a node output in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // }, + // "TargetInput": { + // "description": "Name of a node input in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // } + // }, + // "required": [ + // "SourceOutput", + // "TargetInput" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "Name": { + // "description": "Name of a connection in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,100}$", + // "type": "string" + // }, + // "Source": { + // "description": "Name of a node in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // }, + // "Target": { + // "description": "Name of a node in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // }, + // "Type": { + // "description": "Connection type", + // "enum": [ + // "Data", + // "Conditional" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "Source", + // "Target", + // "Type" + // ], + // "type": "object" + // }, + // "maxItems": 20, + // "type": "array" + // }, + // "Nodes": { + // "description": "List of nodes in a flow", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Internal mixin for flow node", + // "properties": { + // "Configuration": { + // "description": "Node configuration in a flow", + // "properties": { + // "Condition": { + // "additionalProperties": false, + // "description": "Condition flow node configuration", + // "properties": { + // "Conditions": { + // "description": "List of conditions in a condition node", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Condition branch for a condition node", + // "properties": { + // "Expression": { + // "description": "Expression for a condition in a flow", + // "maxLength": 64, + // "minLength": 1, + // "type": "string" + // }, + // "Name": { + // "description": "Name of a condition in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "maxItems": 5, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "Conditions" + // ], + // "type": "object" + // }, + // "Input": { + // "additionalProperties": false, + // "description": "Input flow node configuration", + // "type": "object" + // }, + // "KnowledgeBase": { + // "additionalProperties": false, + // "description": "Knowledge base flow node configuration", + // "properties": { + // "KnowledgeBaseId": { + // "description": "Identifier of the KnowledgeBase", + // "maxLength": 10, + // "pattern": "^[0-9a-zA-Z]+$", + // "type": "string" + // }, + // "ModelId": { + // "description": "ARN or name of a Bedrock model.", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$", + // "type": "string" + // } + // }, + // "required": [ + // "KnowledgeBaseId" + // ], + // "type": "object" + // }, + // "LambdaFunction": { + // "additionalProperties": false, + // "description": "Lambda function flow node configuration", + // "properties": { + // "LambdaArn": { + // "description": "ARN of a Lambda.", + // "maxLength": 2048, + // "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + // "type": "string" + // } + // }, + // "required": [ + // "LambdaArn" + // ], + // "type": "object" + // }, + // "Lex": { + // "additionalProperties": false, + // "description": "Lex flow node configuration", + // "properties": { + // "BotAliasArn": { + // "description": "ARN of a Lex bot alias", + // "maxLength": 78, + // "pattern": "^arn:aws(|-us-gov):lex:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:bot-alias/[0-9a-zA-Z]+/[0-9a-zA-Z]+$", + // "type": "string" + // }, + // "LocaleId": { + // "description": "Lex bot locale id", + // "maxLength": 10, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "BotAliasArn", + // "LocaleId" + // ], + // "type": "object" + // }, + // "Output": { + // "additionalProperties": false, + // "description": "Output flow node configuration", + // "type": "object" + // }, + // "Prompt": { + // "additionalProperties": false, + // "description": "Prompt flow node configuration", + // "properties": { + // "SourceConfiguration": { + // "description": "Prompt source configuration for prompt node", + // "properties": { + // "Inline": { + // "additionalProperties": false, + // "description": "Inline prompt configuration for prompt node", + // "properties": { + // "InferenceConfiguration": { + // "description": "Model inference configuration", + // "properties": { + // "Text": { + // "additionalProperties": false, + // "description": "Prompt model inference configuration", + // "properties": { + // "MaxTokens": { + // "description": "Maximum length of output", + // "maximum": 4096, + // "minimum": 0, + // "type": "number" + // }, + // "StopSequences": { + // "description": "List of stop sequences", + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "maxItems": 4, + // "minItems": 0, + // "type": "array" + // }, + // "Temperature": { + // "description": "Controls randomness, higher values increase diversity", + // "maximum": 1, + // "minimum": 0, + // "type": "number" + // }, + // "TopK": { + // "description": "Sample from the k most likely next tokens", + // "maximum": 500, + // "minimum": 0, + // "type": "number" + // }, + // "TopP": { + // "description": "Cumulative probability cutoff for token selection", + // "maximum": 1, + // "minimum": 0, + // "type": "number" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "ModelId": { + // "description": "ARN or name of a Bedrock model.", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + // "type": "string" + // }, + // "TemplateConfiguration": { + // "description": "Prompt template configuration", + // "properties": { + // "Text": { + // "additionalProperties": false, + // "description": "Configuration for text prompt template", + // "properties": { + // "InputVariables": { + // "description": "List of input variables", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Input variable", + // "properties": { + // "Name": { + // "description": "Name for an input variable", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "maxItems": 5, + // "minItems": 0, + // "type": "array" + // }, + // "Text": { + // "description": "Prompt content for String prompt template", + // "maxLength": 200000, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Text" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "TemplateType": { + // "description": "Prompt template type", + // "enum": [ + // "TEXT" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "ModelId", + // "TemplateConfiguration", + // "TemplateType" + // ], + // "type": "object" + // }, + // "Resource": { + // "additionalProperties": false, + // "description": "Resource prompt configuration for prompt node", + // "properties": { + // "PromptArn": { + // "description": "ARN of a prompt resource possibly with a version", + // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}(?::[0-9]{1,5})?)$", + // "type": "string" + // } + // }, + // "required": [ + // "PromptArn" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // } + // }, + // "required": [ + // "SourceConfiguration" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "Inputs": { + // "description": "List of node inputs in a flow", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Input to a node in a flow", + // "properties": { + // "Expression": { + // "description": "Expression for a node input in a flow", + // "maxLength": 64, + // "minLength": 1, + // "type": "string" + // }, + // "Name": { + // "description": "Name of a node input in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // }, + // "Type": { + // "description": "Type of input/output for a node in a flow", + // "enum": [ + // "String", + // "Number", + // "Boolean", + // "Object", + // "Array" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Expression", + // "Name", + // "Type" + // ], + // "type": "object" + // }, + // "maxItems": 5, + // "type": "array" + // }, + // "Name": { + // "description": "Name of a node in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // }, + // "Outputs": { + // "description": "List of node outputs in a flow", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Output of a node in a flow", + // "properties": { + // "Name": { + // "description": "Name of a node output in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // }, + // "Type": { + // "description": "Type of input/output for a node in a flow", + // "enum": [ + // "String", + // "Number", + // "Boolean", + // "Object", + // "Array" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "Type" + // ], + // "type": "object" + // }, + // "maxItems": 5, + // "type": "array" + // }, + // "Type": { + // "description": "Flow node types", + // "enum": [ + // "Input", + // "Output", + // "KnowledgeBase", + // "Condition", + // "Lex", + // "Prompt", + // "LambdaFunction" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "Type" + // ], + // "type": "object" + // }, + // "maxItems": 20, + // "type": "array" + // } + // }, + // "type": "object" + // } + "definition": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Connections + "connections": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Configuration + "configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Conditional + "conditional": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Condition + "condition": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a condition in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Conditional connection configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Data + "data": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SourceOutput + "source_output": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a node output in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TargetInput + "target_input": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a node input in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Data connection configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Connection configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a connection in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Source + "source": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a node in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Target + "target": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a node in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Connection type", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of connections", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Nodes + "nodes": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Configuration + "configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Condition + "condition": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Conditions + "conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Expression + "expression": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Expression for a condition in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a condition in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of conditions in a condition node", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Condition flow node configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Input + "input": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Description: "Input flow node configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: KnowledgeBase + "knowledge_base": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: KnowledgeBaseId + "knowledge_base_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Identifier of the KnowledgeBase", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ModelId + "model_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN or name of a Bedrock model.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Knowledge base flow node configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LambdaFunction + "lambda_function": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: LambdaArn + "lambda_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN of a Lambda.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Lambda function flow node configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Lex + "lex": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BotAliasArn + "bot_alias_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN of a Lex bot alias", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LocaleId + "locale_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Lex bot locale id", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Lex flow node configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Output + "output": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Description: "Output flow node configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Prompt + "prompt": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SourceConfiguration + "source_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Inline + "inline": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InferenceConfiguration + "inference_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaxTokens + "max_tokens": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Maximum length of output", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: StopSequences + "stop_sequences": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "List of stop sequences", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Temperature + "temperature": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Controls randomness, higher values increase diversity", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TopK + "top_k": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Sample from the k most likely next tokens", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TopP + "top_p": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Cumulative probability cutoff for token selection", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt model inference configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Model inference configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ModelId + "model_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN or name of a Bedrock model.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TemplateConfiguration + "template_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InputVariables + "input_variables": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for an input variable", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of input variables", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Text + "text": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Prompt content for String prompt template", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Configuration for text prompt template", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt template configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TemplateType + "template_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Prompt template type", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Inline prompt configuration for prompt node", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Resource + "resource": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PromptArn + "prompt_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN of a prompt resource possibly with a version", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Resource prompt configuration for prompt node", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt source configuration for prompt node", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt flow node configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Node configuration in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Inputs + "inputs": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Expression + "expression": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Expression for a node input in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a node input in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Type of input/output for a node in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of node inputs in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a node in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Outputs + "outputs": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a node output in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Type of input/output for a node in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of node outputs in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Flow node types", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of nodes in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Flow definition", + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "Description of the flow version", + // "maxLength": 200, + // "minLength": 1, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Description of the flow version", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 200), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ExecutionRoleArn + // CloudFormation resource type schema: + // + // { + // "description": "ARN of a IAM role", + // "maxLength": 2048, + // "pattern": "^arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/(service-role/)?.+$", + // "type": "string" + // } + "execution_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN of a IAM role", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: FlowArn + // CloudFormation resource type schema: + // + // { + // "description": "Arn representation of the Flow", + // "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + // "type": "string" + // } + "flow_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Arn representation of the Flow", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: FlowId + // CloudFormation resource type schema: + // + // { + // "description": "Identifier for a Flow", + // "pattern": "^[0-9a-zA-Z]{10}$", + // "type": "string" + // } + "flow_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Identifier for a Flow", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "Name for the flow", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for the flow", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Status + // CloudFormation resource type schema: + // + // { + // "description": "Schema Type for Flow APIs", + // "enum": [ + // "Failed", + // "Prepared", + // "Preparing", + // "NotPrepared" + // ], + // "type": "string" + // } + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Schema Type for Flow APIs", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Version + // CloudFormation resource type schema: + // + // { + // "description": "Numerical Version.", + // "pattern": "^[0-9]{1,5}$", + // "type": "string" + // } + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Numerical Version.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + // Corresponds to CloudFormation primaryIdentifier. + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Definition of AWS::Bedrock::FlowVersion Resource Type", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Bedrock::FlowVersion").WithTerraformTypeName("awscc_bedrock_flow_version") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "bot_alias_arn": "BotAliasArn", + "condition": "Condition", + "conditional": "Conditional", + "conditions": "Conditions", + "configuration": "Configuration", + "connections": "Connections", + "created_at": "CreatedAt", + "data": "Data", + "definition": "Definition", + "description": "Description", + "execution_role_arn": "ExecutionRoleArn", + "expression": "Expression", + "flow_arn": "FlowArn", + "flow_id": "FlowId", + "inference_configuration": "InferenceConfiguration", + "inline": "Inline", + "input": "Input", + "input_variables": "InputVariables", + "inputs": "Inputs", + "knowledge_base": "KnowledgeBase", + "knowledge_base_id": "KnowledgeBaseId", + "lambda_arn": "LambdaArn", + "lambda_function": "LambdaFunction", + "lex": "Lex", + "locale_id": "LocaleId", + "max_tokens": "MaxTokens", + "model_id": "ModelId", + "name": "Name", + "nodes": "Nodes", + "output": "Output", + "outputs": "Outputs", + "prompt": "Prompt", + "prompt_arn": "PromptArn", + "resource": "Resource", + "source": "Source", + "source_configuration": "SourceConfiguration", + "source_output": "SourceOutput", + "status": "Status", + "stop_sequences": "StopSequences", + "target": "Target", + "target_input": "TargetInput", + "temperature": "Temperature", + "template_configuration": "TemplateConfiguration", + "template_type": "TemplateType", + "text": "Text", + "top_k": "TopK", + "top_p": "TopP", + "type": "Type", + "version": "Version", + }) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/bedrock/flow_version_resource_gen_test.go b/internal/aws/bedrock/flow_version_resource_gen_test.go new file mode 100644 index 000000000..dc45f4948 --- /dev/null +++ b/internal/aws/bedrock/flow_version_resource_gen_test.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package bedrock_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSBedrockFlowVersion_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Bedrock::FlowVersion", "awscc_bedrock_flow_version", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/bedrock/knowledge_base_resource_gen.go b/internal/aws/bedrock/knowledge_base_resource_gen.go index 451dd41c9..ca9f88386 100644 --- a/internal/aws/bedrock/knowledge_base_resource_gen.go +++ b/internal/aws/bedrock/knowledge_base_resource_gen.go @@ -9,9 +9,11 @@ import ( "context" "regexp" + "github.com/hashicorp/terraform-plugin-framework-validators/int64validator" "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" "github.com/hashicorp/terraform-plugin-framework/resource" "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/int64planmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/mapplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" @@ -127,8 +129,28 @@ func knowledgeBaseResource(ctx context.Context) (resource.Resource, error) { // "description": "The ARN of the model used to create vector embeddings for the knowledge base.", // "maxLength": 2048, // "minLength": 20, - // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + // "pattern": "^(arn:aws(-[^:]+)?:[a-z0-9-]+:[a-z0-9-]{1,20}:[0-9]{0,12}:[a-zA-Z0-9-:/._+]+)$", // "type": "string" + // }, + // "EmbeddingModelConfiguration": { + // "additionalProperties": false, + // "description": "The embeddings model configuration details for the vector model used in Knowledge Base.", + // "properties": { + // "BedrockEmbeddingModelConfiguration": { + // "additionalProperties": false, + // "description": "The vector configuration details for the Bedrock embeddings model.", + // "properties": { + // "Dimensions": { + // "description": "The dimensions details for the vector configuration used on the Bedrock embeddings model.", + // "maximum": 4096, + // "minimum": 0, + // "type": "integer" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" // } // }, // "required": [ @@ -164,9 +186,43 @@ func knowledgeBaseResource(ctx context.Context) (resource.Resource, error) { Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(20, 2048), - stringvalidator.RegexMatches(regexp.MustCompile("^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^(arn:aws(-[^:]+)?:[a-z0-9-]+:[a-z0-9-]{1,20}:[0-9]{0,12}:[a-zA-Z0-9-:/._+]+)$"), ""), }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ + // Property: EmbeddingModelConfiguration + "embedding_model_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BedrockEmbeddingModelConfiguration + "bedrock_embedding_model_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Dimensions + "dimensions": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The dimensions details for the vector configuration used on the Bedrock embeddings model.", + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(0, 4096), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The vector configuration details for the Bedrock embeddings model.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The embeddings model configuration details for the vector model used in Knowledge Base.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "Contains details about the model used to create vector embeddings for the knowledge base.", Required: true, @@ -268,9 +324,94 @@ func knowledgeBaseResource(ctx context.Context) (resource.Resource, error) { // "required": [ // "RdsConfiguration" // ] + // }, + // { + // "required": [ + // "MongoDbAtlasConfiguration" + // ] // } // ], // "properties": { + // "MongoDbAtlasConfiguration": { + // "additionalProperties": false, + // "description": "Contains the storage configuration of the knowledge base in MongoDb Atlas Cloud.", + // "properties": { + // "CollectionName": { + // "description": "Name of the collection within MongoDB Atlas.", + // "maxLength": 63, + // "pattern": "^.*$", + // "type": "string" + // }, + // "CredentialsSecretArn": { + // "description": "The ARN of the secret that you created in AWS Secrets Manager that is linked to your Amazon Mongo database.", + // "pattern": "^arn:aws(|-cn|-us-gov):secretsmanager:[a-z0-9-]{1,20}:([0-9]{12}|):secret:[a-zA-Z0-9!/_+=.@-]{1,512}$", + // "type": "string" + // }, + // "DatabaseName": { + // "description": "Name of the database within MongoDB Atlas.", + // "maxLength": 63, + // "pattern": "^.*$", + // "type": "string" + // }, + // "Endpoint": { + // "description": "MongoDB Atlas endpoint.", + // "maxLength": 2048, + // "pattern": "^[a-zA-Z0-9_-]+\\.[a-zA-Z0-9_-]+\\.mongodb\\.net$", + // "type": "string" + // }, + // "EndpointServiceName": { + // "description": "MongoDB Atlas endpoint service name.", + // "maxLength": 255, + // "pattern": "^(?:arn:aws(?:-us-gov|-cn|-iso|-iso-[a-z])*:.+:.*:\\d+:.+/.+$|[a-zA-Z0-9*]+[a-zA-Z0-9._-]*)$", + // "type": "string" + // }, + // "FieldMapping": { + // "additionalProperties": false, + // "description": "Contains the names of the fields to which to map information about the vector store.", + // "properties": { + // "MetadataField": { + // "description": "The name of the field in which Amazon Bedrock stores metadata about the vector store.", + // "maxLength": 2048, + // "pattern": "^.*$", + // "type": "string" + // }, + // "TextField": { + // "description": "The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose.", + // "maxLength": 2048, + // "pattern": "^.*$", + // "type": "string" + // }, + // "VectorField": { + // "description": "The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources.", + // "maxLength": 2048, + // "pattern": "^.*$", + // "type": "string" + // } + // }, + // "required": [ + // "VectorField", + // "MetadataField", + // "TextField" + // ], + // "type": "object" + // }, + // "VectorIndexName": { + // "description": "Name of a MongoDB Atlas index.", + // "maxLength": 2048, + // "pattern": "^.*$", + // "type": "string" + // } + // }, + // "required": [ + // "Endpoint", + // "CredentialsSecretArn", + // "DatabaseName", + // "CollectionName", + // "VectorIndexName", + // "FieldMapping" + // ], + // "type": "object" + // }, // "OpensearchServerlessConfiguration": { // "additionalProperties": false, // "description": "Contains the storage configuration of the knowledge base in Amazon OpenSearch Service.", @@ -455,7 +596,8 @@ func knowledgeBaseResource(ctx context.Context) (resource.Resource, error) { // "enum": [ // "OPENSEARCH_SERVERLESS", // "PINECONE", - // "RDS" + // "RDS", + // "MONGO_DB_ATLAS" // ], // "type": "string" // } @@ -467,6 +609,108 @@ func knowledgeBaseResource(ctx context.Context) (resource.Resource, error) { // } "storage_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MongoDbAtlasConfiguration + "mongo_db_atlas_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CollectionName + "collection_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of the collection within MongoDB Atlas.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(63), + stringvalidator.RegexMatches(regexp.MustCompile("^.*$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: CredentialsSecretArn + "credentials_secret_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of the secret that you created in AWS Secrets Manager that is linked to your Amazon Mongo database.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws(|-cn|-us-gov):secretsmanager:[a-z0-9-]{1,20}:([0-9]{12}|):secret:[a-zA-Z0-9!/_+=.@-]{1,512}$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: DatabaseName + "database_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of the database within MongoDB Atlas.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(63), + stringvalidator.RegexMatches(regexp.MustCompile("^.*$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Endpoint + "endpoint": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "MongoDB Atlas endpoint.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(2048), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9_-]+\\.[a-zA-Z0-9_-]+\\.mongodb\\.net$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: EndpointServiceName + "endpoint_service_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "MongoDB Atlas endpoint service name.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(255), + stringvalidator.RegexMatches(regexp.MustCompile("^(?:arn:aws(?:-us-gov|-cn|-iso|-iso-[a-z])*:.+:.*:\\d+:.+/.+$|[a-zA-Z0-9*]+[a-zA-Z0-9._-]*)$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: FieldMapping + "field_mapping": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MetadataField + "metadata_field": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the field in which Amazon Bedrock stores metadata about the vector store.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(2048), + stringvalidator.RegexMatches(regexp.MustCompile("^.*$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: TextField + "text_field": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(2048), + stringvalidator.RegexMatches(regexp.MustCompile("^.*$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: VectorField + "vector_field": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(2048), + stringvalidator.RegexMatches(regexp.MustCompile("^.*$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Contains the names of the fields to which to map information about the vector store.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: VectorIndexName + "vector_index_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a MongoDB Atlas index.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(2048), + stringvalidator.RegexMatches(regexp.MustCompile("^.*$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Contains the storage configuration of the knowledge base in MongoDb Atlas Cloud.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: OpensearchServerlessConfiguration "opensearch_serverless_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -693,6 +937,7 @@ func knowledgeBaseResource(ctx context.Context) (resource.Resource, error) { "OPENSEARCH_SERVERLESS", "PINECONE", "RDS", + "MONGO_DB_ATLAS", ), }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ @@ -766,37 +1011,44 @@ func knowledgeBaseResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithCloudFormationTypeName("AWS::Bedrock::KnowledgeBase").WithTerraformTypeName("awscc_bedrock_knowledge_base") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "collection_arn": "CollectionArn", - "connection_string": "ConnectionString", - "created_at": "CreatedAt", - "credentials_secret_arn": "CredentialsSecretArn", - "database_name": "DatabaseName", - "description": "Description", - "embedding_model_arn": "EmbeddingModelArn", - "failure_reasons": "FailureReasons", - "field_mapping": "FieldMapping", - "knowledge_base_arn": "KnowledgeBaseArn", - "knowledge_base_configuration": "KnowledgeBaseConfiguration", - "knowledge_base_id": "KnowledgeBaseId", - "metadata_field": "MetadataField", - "name": "Name", - "namespace": "Namespace", - "opensearch_serverless_configuration": "OpensearchServerlessConfiguration", - "pinecone_configuration": "PineconeConfiguration", - "primary_key_field": "PrimaryKeyField", - "rds_configuration": "RdsConfiguration", - "resource_arn": "ResourceArn", - "role_arn": "RoleArn", - "status": "Status", - "storage_configuration": "StorageConfiguration", - "table_name": "TableName", - "tags": "Tags", - "text_field": "TextField", - "type": "Type", - "updated_at": "UpdatedAt", - "vector_field": "VectorField", - "vector_index_name": "VectorIndexName", - "vector_knowledge_base_configuration": "VectorKnowledgeBaseConfiguration", + "bedrock_embedding_model_configuration": "BedrockEmbeddingModelConfiguration", + "collection_arn": "CollectionArn", + "collection_name": "CollectionName", + "connection_string": "ConnectionString", + "created_at": "CreatedAt", + "credentials_secret_arn": "CredentialsSecretArn", + "database_name": "DatabaseName", + "description": "Description", + "dimensions": "Dimensions", + "embedding_model_arn": "EmbeddingModelArn", + "embedding_model_configuration": "EmbeddingModelConfiguration", + "endpoint": "Endpoint", + "endpoint_service_name": "EndpointServiceName", + "failure_reasons": "FailureReasons", + "field_mapping": "FieldMapping", + "knowledge_base_arn": "KnowledgeBaseArn", + "knowledge_base_configuration": "KnowledgeBaseConfiguration", + "knowledge_base_id": "KnowledgeBaseId", + "metadata_field": "MetadataField", + "mongo_db_atlas_configuration": "MongoDbAtlasConfiguration", + "name": "Name", + "namespace": "Namespace", + "opensearch_serverless_configuration": "OpensearchServerlessConfiguration", + "pinecone_configuration": "PineconeConfiguration", + "primary_key_field": "PrimaryKeyField", + "rds_configuration": "RdsConfiguration", + "resource_arn": "ResourceArn", + "role_arn": "RoleArn", + "status": "Status", + "storage_configuration": "StorageConfiguration", + "table_name": "TableName", + "tags": "Tags", + "text_field": "TextField", + "type": "Type", + "updated_at": "UpdatedAt", + "vector_field": "VectorField", + "vector_index_name": "VectorIndexName", + "vector_knowledge_base_configuration": "VectorKnowledgeBaseConfiguration", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/bedrock/prompt_resource_gen.go b/internal/aws/bedrock/prompt_resource_gen.go new file mode 100644 index 000000000..88cd88261 --- /dev/null +++ b/internal/aws/bedrock/prompt_resource_gen.go @@ -0,0 +1,671 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package bedrock + +import ( + "context" + "regexp" + + "github.com/hashicorp/terraform-plugin-framework-timetypes/timetypes" + "github.com/hashicorp/terraform-plugin-framework-validators/float64validator" + "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/float64planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/mapplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_bedrock_prompt", promptResource) +} + +// promptResource returns the Terraform awscc_bedrock_prompt resource. +// This Terraform resource corresponds to the CloudFormation AWS::Bedrock::Prompt resource. +func promptResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "description": "ARN of a prompt resource possibly with a version", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10})$", + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN of a prompt resource possibly with a version", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CreatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp.", + // "format": "date-time", + // "type": "string" + // } + "created_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CustomerEncryptionKeyArn + // CloudFormation resource type schema: + // + // { + // "description": "A KMS key ARN", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", + // "type": "string" + // } + "customer_encryption_key_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A KMS key ARN", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 2048), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DefaultVariant + // CloudFormation resource type schema: + // + // { + // "description": "Name for a variant.", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + "default_variant": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a variant.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^([0-9a-zA-Z][_-]?){1,100}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "Name for a prompt resource.", + // "maxLength": 200, + // "minLength": 1, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a prompt resource.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 200), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "description": "Identifier for a Prompt", + // "pattern": "^[0-9a-zA-Z]{10}$", + // "type": "string" + // } + "prompt_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Identifier for a Prompt", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "Name for a prompt resource.", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a prompt resource.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^([0-9a-zA-Z][_-]?){1,100}$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "A map of tag keys and values", + // "patternProperties": { + // "": { + // "description": "Value of a tag", + // "maxLength": 256, + // "minLength": 0, + // "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + // "type": "string" + // } + // }, + // "type": "object" + // } + "tags": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A map of tag keys and values", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ + mapplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: UpdatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp.", + // "format": "date-time", + // "type": "string" + // } + "updated_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Variants + // CloudFormation resource type schema: + // + // { + // "description": "List of prompt variants", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Prompt variant", + // "properties": { + // "InferenceConfiguration": { + // "description": "Model inference configuration", + // "properties": { + // "Text": { + // "additionalProperties": false, + // "description": "Prompt model inference configuration", + // "properties": { + // "MaxTokens": { + // "description": "Maximum length of output", + // "maximum": 4096, + // "minimum": 0, + // "type": "number" + // }, + // "StopSequences": { + // "description": "List of stop sequences", + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "maxItems": 4, + // "minItems": 0, + // "type": "array" + // }, + // "Temperature": { + // "description": "Controls randomness, higher values increase diversity", + // "maximum": 1, + // "minimum": 0, + // "type": "number" + // }, + // "TopK": { + // "description": "Sample from the k most likely next tokens", + // "maximum": 500, + // "minimum": 0, + // "type": "number" + // }, + // "TopP": { + // "description": "Cumulative probability cutoff for token selection", + // "maximum": 1, + // "minimum": 0, + // "type": "number" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "ModelId": { + // "description": "ARN or name of a Bedrock model.", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + // "type": "string" + // }, + // "Name": { + // "description": "Name for a variant.", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // }, + // "TemplateConfiguration": { + // "description": "Prompt template configuration", + // "properties": { + // "Text": { + // "additionalProperties": false, + // "description": "Configuration for text prompt template", + // "properties": { + // "InputVariables": { + // "description": "List of input variables", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Input variable", + // "properties": { + // "Name": { + // "description": "Name for an input variable", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "maxItems": 5, + // "minItems": 0, + // "type": "array" + // }, + // "Text": { + // "description": "Prompt content for String prompt template", + // "maxLength": 200000, + // "minLength": 1, + // "type": "string" + // }, + // "TextS3Location": { + // "additionalProperties": false, + // "description": "The identifier for the S3 resource.", + // "properties": { + // "Bucket": { + // "description": "A bucket in S3", + // "maxLength": 63, + // "minLength": 3, + // "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + // "type": "string" + // }, + // "Key": { + // "description": "A object key in S3", + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // }, + // "Version": { + // "description": "The version of the the S3 object to use", + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Bucket", + // "Key" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "TemplateType": { + // "description": "Prompt template type", + // "enum": [ + // "TEXT" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "TemplateType" + // ], + // "type": "object" + // }, + // "maxItems": 3, + // "minItems": 0, + // "type": "array" + // } + "variants": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InferenceConfiguration + "inference_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaxTokens + "max_tokens": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Maximum length of output", + Optional: true, + Computed: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.Between(0.000000, 4096.000000), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: StopSequences + "stop_sequences": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "List of stop sequences", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(0, 4), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Temperature + "temperature": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Controls randomness, higher values increase diversity", + Optional: true, + Computed: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.Between(0.000000, 1.000000), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TopK + "top_k": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Sample from the k most likely next tokens", + Optional: true, + Computed: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.Between(0.000000, 500.000000), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TopP + "top_p": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Cumulative probability cutoff for token selection", + Optional: true, + Computed: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.Between(0.000000, 1.000000), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt model inference configuration", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Model inference configuration", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ModelId + "model_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN or name of a Bedrock model.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 2048), + stringvalidator.RegexMatches(regexp.MustCompile("^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a variant.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^([0-9a-zA-Z][_-]?){1,100}$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: TemplateConfiguration + "template_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InputVariables + "input_variables": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for an input variable", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^([0-9a-zA-Z][_-]?){1,100}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of input variables", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(0, 5), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Text + "text": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Prompt content for String prompt template", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 200000), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TextS3Location + "text_s3_location": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Bucket + "bucket": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A bucket in S3", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(3, 63), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A object key in S3", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 1024), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Version + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The version of the the S3 object to use", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 1024), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The identifier for the S3 resource.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Configuration for text prompt template", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt template configuration", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TemplateType + "template_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Prompt template type", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "TEXT", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of prompt variants", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(0, 3), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Version + // CloudFormation resource type schema: + // + // { + // "description": "Draft Version.", + // "maxLength": 5, + // "minLength": 5, + // "pattern": "^DRAFT$", + // "type": "string" + // } + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Draft Version.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + // Corresponds to CloudFormation primaryIdentifier. + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Definition of AWS::Bedrock::Prompt Resource Type", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Bedrock::Prompt").WithTerraformTypeName("awscc_bedrock_prompt") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "arn": "Arn", + "bucket": "Bucket", + "created_at": "CreatedAt", + "customer_encryption_key_arn": "CustomerEncryptionKeyArn", + "default_variant": "DefaultVariant", + "description": "Description", + "inference_configuration": "InferenceConfiguration", + "input_variables": "InputVariables", + "key": "Key", + "max_tokens": "MaxTokens", + "model_id": "ModelId", + "name": "Name", + "prompt_id": "Id", + "stop_sequences": "StopSequences", + "tags": "Tags", + "temperature": "Temperature", + "template_configuration": "TemplateConfiguration", + "template_type": "TemplateType", + "text": "Text", + "text_s3_location": "TextS3Location", + "top_k": "TopK", + "top_p": "TopP", + "updated_at": "UpdatedAt", + "variants": "Variants", + "version": "Version", + }) + + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/Variants/*/TemplateConfiguration/Text/TextS3Location", + }) + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/bedrock/prompt_resource_gen_test.go b/internal/aws/bedrock/prompt_resource_gen_test.go new file mode 100644 index 000000000..c8b6c3ea3 --- /dev/null +++ b/internal/aws/bedrock/prompt_resource_gen_test.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package bedrock_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSBedrockPrompt_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Bedrock::Prompt", "awscc_bedrock_prompt", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/bedrock/prompt_version_resource_gen.go b/internal/aws/bedrock/prompt_version_resource_gen.go new file mode 100644 index 000000000..e87951cf3 --- /dev/null +++ b/internal/aws/bedrock/prompt_version_resource_gen.go @@ -0,0 +1,469 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package bedrock + +import ( + "context" + "regexp" + + "github.com/hashicorp/terraform-plugin-framework-timetypes/timetypes" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_bedrock_prompt_version", promptVersionResource) +} + +// promptVersionResource returns the Terraform awscc_bedrock_prompt_version resource. +// This Terraform resource corresponds to the CloudFormation AWS::Bedrock::PromptVersion resource. +func promptVersionResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "description": "ARN of a prompt version resource", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}:[0-9]{1,20})$", + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN of a prompt version resource", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CreatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp.", + // "format": "date-time", + // "type": "string" + // } + "created_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DefaultVariant + // CloudFormation resource type schema: + // + // { + // "description": "Name for a variant.", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + "default_variant": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a variant.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "Description for a prompt version resource.", + // "maxLength": 200, + // "minLength": 1, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Description for a prompt version resource.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 200), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "Name for a prompt resource.", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a prompt resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PromptArn + // CloudFormation resource type schema: + // + // { + // "description": "ARN of a prompt resource possibly with a version", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10})$", + // "type": "string" + // } + "prompt_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN of a prompt resource possibly with a version", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 2048), + stringvalidator.RegexMatches(regexp.MustCompile("^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10})$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PromptId + // CloudFormation resource type schema: + // + // { + // "description": "Identifier for a Prompt", + // "pattern": "^[0-9a-zA-Z]{10}$", + // "type": "string" + // } + "prompt_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Identifier for a Prompt", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: UpdatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp.", + // "format": "date-time", + // "type": "string" + // } + "updated_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Variants + // CloudFormation resource type schema: + // + // { + // "description": "List of prompt variants", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Prompt variant", + // "properties": { + // "InferenceConfiguration": { + // "description": "Model inference configuration", + // "properties": { + // "Text": { + // "additionalProperties": false, + // "description": "Prompt model inference configuration", + // "properties": { + // "MaxTokens": { + // "description": "Maximum length of output", + // "maximum": 4096, + // "minimum": 0, + // "type": "number" + // }, + // "StopSequences": { + // "description": "List of stop sequences", + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "maxItems": 4, + // "minItems": 0, + // "type": "array" + // }, + // "Temperature": { + // "description": "Controls randomness, higher values increase diversity", + // "maximum": 1, + // "minimum": 0, + // "type": "number" + // }, + // "TopK": { + // "description": "Sample from the k most likely next tokens", + // "maximum": 500, + // "minimum": 0, + // "type": "number" + // }, + // "TopP": { + // "description": "Cumulative probability cutoff for token selection", + // "maximum": 1, + // "minimum": 0, + // "type": "number" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "ModelId": { + // "description": "ARN or name of a Bedrock model.", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + // "type": "string" + // }, + // "Name": { + // "description": "Name for a variant.", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // }, + // "TemplateConfiguration": { + // "description": "Prompt template configuration", + // "properties": { + // "Text": { + // "additionalProperties": false, + // "description": "Configuration for text prompt template", + // "properties": { + // "InputVariables": { + // "description": "List of input variables", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Input variable", + // "properties": { + // "Name": { + // "description": "Name for an input variable", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "maxItems": 5, + // "minItems": 1, + // "type": "array" + // }, + // "Text": { + // "description": "Prompt content for String prompt template", + // "maxLength": 200000, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Text" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "TemplateType": { + // "description": "Prompt template type", + // "enum": [ + // "TEXT" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "TemplateType" + // ], + // "type": "object" + // }, + // "maxItems": 3, + // "minItems": 1, + // "type": "array" + // } + "variants": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InferenceConfiguration + "inference_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaxTokens + "max_tokens": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Maximum length of output", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: StopSequences + "stop_sequences": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "List of stop sequences", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Temperature + "temperature": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Controls randomness, higher values increase diversity", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TopK + "top_k": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Sample from the k most likely next tokens", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TopP + "top_p": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Cumulative probability cutoff for token selection", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt model inference configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Model inference configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ModelId + "model_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN or name of a Bedrock model.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a variant.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TemplateConfiguration + "template_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InputVariables + "input_variables": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for an input variable", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of input variables", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Text + "text": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Prompt content for String prompt template", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Configuration for text prompt template", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt template configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TemplateType + "template_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Prompt template type", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of prompt variants", + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Version + // CloudFormation resource type schema: + // + // { + // "description": "Version.", + // "maxLength": 5, + // "minLength": 1, + // "pattern": "^(DRAFT|[0-9]{0,4}[1-9][0-9]{0,4})$", + // "type": "string" + // } + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Version.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + // Corresponds to CloudFormation primaryIdentifier. + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Definition of AWS::Bedrock::PromptVersion Resource Type", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Bedrock::PromptVersion").WithTerraformTypeName("awscc_bedrock_prompt_version") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "arn": "Arn", + "created_at": "CreatedAt", + "default_variant": "DefaultVariant", + "description": "Description", + "inference_configuration": "InferenceConfiguration", + "input_variables": "InputVariables", + "max_tokens": "MaxTokens", + "model_id": "ModelId", + "name": "Name", + "prompt_arn": "PromptArn", + "prompt_id": "PromptId", + "stop_sequences": "StopSequences", + "temperature": "Temperature", + "template_configuration": "TemplateConfiguration", + "template_type": "TemplateType", + "text": "Text", + "top_k": "TopK", + "top_p": "TopP", + "updated_at": "UpdatedAt", + "variants": "Variants", + "version": "Version", + }) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/bedrock/prompt_version_resource_gen_test.go b/internal/aws/bedrock/prompt_version_resource_gen_test.go new file mode 100644 index 000000000..938e9ebfa --- /dev/null +++ b/internal/aws/bedrock/prompt_version_resource_gen_test.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package bedrock_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSBedrockPromptVersion_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Bedrock::PromptVersion", "awscc_bedrock_prompt_version", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/dms/replication_config_resource_gen.go b/internal/aws/dms/replication_config_resource_gen.go index 574e26733..3f24a3401 100644 --- a/internal/aws/dms/replication_config_resource_gen.go +++ b/internal/aws/dms/replication_config_resource_gen.go @@ -16,7 +16,6 @@ import ( "github.com/hashicorp/terraform-plugin-framework/resource/schema/boolplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/int64planmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" - "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" "github.com/hashicorp/terraform-plugin-framework/schema/validator" @@ -149,11 +148,7 @@ func replicationConfigResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "Configuration parameters for provisioning a AWS DMS Serverless replication", - Optional: true, - Computed: true, - PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ - objectplanmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ + Required: true, }, /*END ATTRIBUTE*/ // Property: ReplicationConfigArn // CloudFormation resource type schema: @@ -178,11 +173,7 @@ func replicationConfigResource(ctx context.Context) (resource.Resource, error) { // } "replication_config_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "A unique identifier of replication configuration", - Optional: true, - Computed: true, - PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ + Required: true, }, /*END ATTRIBUTE*/ // Property: ReplicationSettings // CloudFormation resource type schema: @@ -214,8 +205,7 @@ func replicationConfigResource(ctx context.Context) (resource.Resource, error) { // } "replication_type": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The type of AWS DMS Serverless replication to provision using this replication configuration", - Optional: true, - Computed: true, + Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.OneOf( "full-load", @@ -223,9 +213,6 @@ func replicationConfigResource(ctx context.Context) (resource.Resource, error) { "cdc", ), }, /*END VALIDATORS*/ - PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: ResourceIdentifier // CloudFormation resource type schema: @@ -252,11 +239,7 @@ func replicationConfigResource(ctx context.Context) (resource.Resource, error) { // } "source_endpoint_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The Amazon Resource Name (ARN) of the source endpoint for this AWS DMS Serverless replication configuration", - Optional: true, - Computed: true, - PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ + Required: true, }, /*END ATTRIBUTE*/ // Property: SupplementalSettings // CloudFormation resource type schema: @@ -284,11 +267,7 @@ func replicationConfigResource(ctx context.Context) (resource.Resource, error) { "table_mappings": schema.StringAttribute{ /*START ATTRIBUTE*/ CustomType: jsontypes.NormalizedType{}, Description: "JSON table mappings for AWS DMS Serverless replications that are provisioned using this replication configuration", - Optional: true, - Computed: true, - PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ + Required: true, }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: @@ -364,11 +343,7 @@ func replicationConfigResource(ctx context.Context) (resource.Resource, error) { // } "target_endpoint_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The Amazon Resource Name (ARN) of the target endpoint for this AWS DMS Serverless replication configuration", - Optional: true, - Computed: true, - PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ + Required: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/dms/replication_config_resource_gen_test.go b/internal/aws/dms/replication_config_resource_gen_test.go index 0067df502..d935653af 100644 --- a/internal/aws/dms/replication_config_resource_gen_test.go +++ b/internal/aws/dms/replication_config_resource_gen_test.go @@ -6,6 +6,7 @@ package dms_test import ( + "regexp" "testing" "github.com/hashicorp/terraform-plugin-testing/helper/resource" @@ -17,30 +18,8 @@ func TestAccAWSDMSReplicationConfig_basic(t *testing.T) { td.ResourceTest(t, []resource.TestStep{ { - Config: td.EmptyConfig(), - Check: resource.ComposeTestCheckFunc( - td.CheckExistsInAWS(), - ), - }, - { - ResourceName: td.ResourceName, - ImportState: true, - ImportStateVerify: true, - }, - }) -} - -func TestAccAWSDMSReplicationConfig_disappears(t *testing.T) { - td := acctest.NewTestData(t, "AWS::DMS::ReplicationConfig", "awscc_dms_replication_config", "test") - - td.ResourceTest(t, []resource.TestStep{ - { - Config: td.EmptyConfig(), - Check: resource.ComposeTestCheckFunc( - td.CheckExistsInAWS(), - td.DeleteResource(), - ), - ExpectNonEmptyPlan: true, + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), }, }) } diff --git a/internal/aws/ec2/eip_association_resource_gen.go b/internal/aws/ec2/eip_association_resource_gen.go index 7b995f12b..f6c14265e 100644 --- a/internal/aws/ec2/eip_association_resource_gen.go +++ b/internal/aws/ec2/eip_association_resource_gen.go @@ -28,11 +28,11 @@ func eIPAssociationResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The allocation ID. This is required for EC2-VPC.", + // "description": "The allocation ID. This is required.", // "type": "string" // } "allocation_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The allocation ID. This is required for EC2-VPC.", + Description: "The allocation ID. This is required.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -44,11 +44,11 @@ func eIPAssociationResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The Elastic IP address to associate with the instance.", + // "description": "", // "type": "string" // } "eip": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Elastic IP address to associate with the instance.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -60,11 +60,11 @@ func eIPAssociationResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "Composite ID of non-empty properties, to determine the identification.", + // "description": "", // "type": "string" // } "eip_association_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Composite ID of non-empty properties, to determine the identification.", + Description: "", Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -74,11 +74,11 @@ func eIPAssociationResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The ID of the instance.", + // "description": "The ID of the instance. The instance must have exactly one attached network interface. You can specify either the instance ID or the network interface ID, but not both.", // "type": "string" // } "instance_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ID of the instance.", + Description: "The ID of the instance. The instance must have exactly one attached network interface. You can specify either the instance ID or the network interface ID, but not both.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -90,11 +90,11 @@ func eIPAssociationResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The ID of the network interface.", + // "description": "The ID of the network interface. If the instance has more than one network interface, you must specify a network interface ID.\n You can specify either the instance ID or the network interface ID, but not both.", // "type": "string" // } "network_interface_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ID of the network interface.", + Description: "The ID of the network interface. If the instance has more than one network interface, you must specify a network interface ID.\n You can specify either the instance ID or the network interface ID, but not both.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -106,11 +106,11 @@ func eIPAssociationResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The primary or secondary private IP address to associate with the Elastic IP address.", + // "description": "The primary or secondary private IP address to associate with the Elastic IP address. If no private IP address is specified, the Elastic IP address is associated with the primary private IP address.", // "type": "string" // } "private_ip_address": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The primary or secondary private IP address to associate with the Elastic IP address.", + Description: "The primary or secondary private IP address to associate with the Elastic IP address. If no private IP address is specified, the Elastic IP address is associated with the primary private IP address.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -130,7 +130,7 @@ func eIPAssociationResource(ctx context.Context) (resource.Resource, error) { } schema := schema.Schema{ - Description: "Resource schema for EC2 EIP association.", + Description: "Associates an Elastic IP address with an instance or a network interface. Before you can use an Elastic IP address, you must allocate it to your account. For more information about working with Elastic IP addresses, see [Elastic IP address concepts and rules](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#vpc-eip-overview).\n You must specify ``AllocationId`` and either ``InstanceId``, ``NetworkInterfaceId``, or ``PrivateIpAddress``.", Version: 1, Attributes: attributes, } diff --git a/internal/aws/ec2/instance_resource_gen.go b/internal/aws/ec2/instance_resource_gen.go index 93e39a553..a57ff357a 100644 --- a/internal/aws/ec2/instance_resource_gen.go +++ b/internal/aws/ec2/instance_resource_gen.go @@ -806,6 +806,7 @@ func instanceResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), objectplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ + // LaunchTemplate is a write-only property. }, /*END ATTRIBUTE*/ // Property: LicenseSpecifications // CloudFormation resource type schema: @@ -1787,6 +1788,7 @@ func instanceResource(ctx context.Context) (resource.Resource, error) { "/properties/Ipv6AddressCount", "/properties/Ipv6Addresses", "/properties/PropagateTagsToVolumeOnCreation", + "/properties/LaunchTemplate", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/ec2/launch_template_resource_gen.go b/internal/aws/ec2/launch_template_resource_gen.go index 44a900f3e..1555475df 100644 --- a/internal/aws/ec2/launch_template_resource_gen.go +++ b/internal/aws/ec2/launch_template_resource_gen.go @@ -158,7 +158,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // }, // "CpuOptions": { // "additionalProperties": false, - // "description": "The CPU options for the instance. For more information, see [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon Elastic Compute Cloud User Guide*.", + // "description": "The CPU options for the instance. For more information, see [Optimize CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon EC2 User Guide*.", // "properties": { // "AmdSevSnp": { // "description": "Indicates whether to enable the instance for AMD SEV-SNP. AMD SEV-SNP is supported with M6a, R6a, and C6a instance types only. For more information, see [AMD SEV-SNP](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sev-snp.html).", @@ -191,7 +191,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // "type": "object" // }, // "DisableApiStop": { - // "description": "Indicates whether to enable the instance for stop protection. For more information, see [Stop protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection) in the *Amazon Elastic Compute Cloud User Guide*.", + // "description": "Indicates whether to enable the instance for stop protection. For more information, see [Enable stop protection for your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-stop-protection.html) in the *Amazon EC2 User Guide*.", // "type": "boolean" // }, // "DisableApiTermination": { @@ -209,7 +209,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // "description": "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.\n Specifies a specification for an Elastic GPU for an Amazon EC2 launch template.\n ``ElasticGpuSpecification`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).", // "properties": { // "Type": { - // "description": "The type of Elastic Graphics accelerator. For more information about the values to specify for ``Type``, see [Elastic Graphics Basics](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html#elastic-graphics-basics), specifically the Elastic Graphics accelerator column, in the *Amazon Elastic Compute Cloud User Guide for Windows Instances*.", + // "description": "The type of Elastic Graphics accelerator.", // "type": "string" // } // }, @@ -251,7 +251,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // }, // "HibernationOptions": { // "additionalProperties": false, - // "description": "Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon Elastic Compute Cloud User Guide*.", + // "description": "Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your Amazon EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon EC2 User Guide*.", // "properties": { // "Configured": { // "description": "If you set this parameter to ``true``, the instance is enabled for hibernation.\n Default: ``false``", @@ -448,7 +448,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // "uniqueItems": false // }, // "MaxSpotPriceAsPercentageOfOptimalOnDemandPrice": { - // "description": "[Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price.\n Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``.", + // "description": "[Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price.\n Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``.", // "type": "integer" // }, // "MemoryGiBPerVCpu": { @@ -557,7 +557,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // "type": "object" // }, // "InstanceType": { - // "description": "The instance type. 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*.\n If you specify ``InstanceType``, you can't specify ``InstanceRequirements``.", + // "description": "The instance type. For more information, see [Amazon EC2 instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*.\n If you specify ``InstanceType``, you can't specify ``InstanceRequirements``.", // "type": "string" // }, // "KernelId": { @@ -597,7 +597,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // }, // "MetadataOptions": { // "additionalProperties": false, - // "description": "The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon Elastic Compute Cloud User Guide*.", + // "description": "The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon EC2 User Guide*.", // "properties": { // "HttpEndpoint": { // "description": "Enables or disables the HTTP metadata endpoint on your instances. If the parameter is not specified, the default state is ``enabled``.\n If you specify a value of ``disabled``, you will not be able to access your instance metadata.", @@ -709,7 +709,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // "uniqueItems": false // }, // "InterfaceType": { - // "description": "The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon Elastic Compute Cloud User Guide*.\n If you are not creating an EFA, specify ``interface`` or omit this parameter.\n Valid values: ``interface`` | ``efa``", + // "description": "The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon EC2 User Guide*.\n If you are not creating an EFA, specify ``interface`` or omit this parameter.\n Valid values: ``interface`` | ``efa``", // "type": "string" // }, // "Ipv4PrefixCount": { @@ -723,7 +723,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // "description": "Specifies an IPv4 prefix for a network interface.\n ``Ipv4PrefixSpecification`` is a property of [AWS::EC2::LaunchTemplate NetworkInterface](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html).", // "properties": { // "Ipv4Prefix": { - // "description": "The IPv4 prefix. For information, see [Assigning prefixes to Amazon EC2 network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon Elastic Compute Cloud User Guide*.", + // "description": "The IPv4 prefix. For information, see [Assigning prefixes to network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon EC2 User Guide*.", // "type": "string" // } // }, @@ -885,7 +885,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // "type": "object" // }, // "RamDiskId": { - // "description": "The ID of the RAM disk.\n We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon Elastic Compute Cloud User Guide*.", + // "description": "The ID of the RAM disk.\n We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide*.", // "type": "string" // }, // "SecurityGroupIds": { @@ -911,7 +911,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // "description": "Specifies the tags to apply to a resource when the resource is created for the launch template.\n ``TagSpecification`` is a property type of [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications). [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications) is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).", // "properties": { // "ResourceType": { - // "description": "The type of resource to tag.\n Valid Values lists all resource types for Amazon EC2 that can be tagged. When you create a launch template, you can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume.\n To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).", + // "description": "The type of resource to tag. You can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume.\n To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).", // "type": "string" // }, // "Tags": { @@ -945,7 +945,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // "uniqueItems": false // }, // "UserData": { - // "description": "The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Linux instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) (Linux) or [Work with instance user data](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instancedata-add-user-data.html) (Windows) in the *Amazon Elastic Compute Cloud User Guide*.\n If you are creating the launch template for use with BATCH, the user data must be provided in the [MIME multi-part archive format](https://docs.aws.amazon.com/https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *User Guide*.", + // "description": "The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Amazon EC2 instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) in the *Amazon EC2 User Guide*.\n If you are creating the launch template for use with BATCH, the user data must be provided in the [MIME multi-part archive format](https://docs.aws.amazon.com/https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *User Guide*.", // "type": "string" // } // }, @@ -1162,7 +1162,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The CPU options for the instance. For more information, see [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon Elastic Compute Cloud User Guide*.", + Description: "The CPU options for the instance. For more information, see [Optimize CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon EC2 User Guide*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -1191,7 +1191,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: DisableApiStop "disable_api_stop": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Indicates whether to enable the instance for stop protection. For more information, see [Stop protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection) in the *Amazon Elastic Compute Cloud User Guide*.", + Description: "Indicates whether to enable the instance for stop protection. For more information, see [Enable stop protection for your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-stop-protection.html) in the *Amazon EC2 User Guide*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -1222,7 +1222,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Type "type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of Elastic Graphics accelerator. For more information about the values to specify for ``Type``, see [Elastic Graphics Basics](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html#elastic-graphics-basics), specifically the Elastic Graphics accelerator column, in the *Amazon Elastic Compute Cloud User Guide for Windows Instances*.", + Description: "The type of Elastic Graphics accelerator.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -1302,7 +1302,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon Elastic Compute Cloud User Guide*.", + Description: "Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your Amazon EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon EC2 User Guide*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -1631,7 +1631,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: MaxSpotPriceAsPercentageOfOptimalOnDemandPrice "max_spot_price_as_percentage_of_optimal_on_demand_price": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "[Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price.\n Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``.", + Description: "[Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price.\n Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ @@ -1849,7 +1849,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: InstanceType "instance_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The instance type. 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*.\n If you specify ``InstanceType``, you can't specify ``InstanceRequirements``.", + Description: "The instance type. For more information, see [Amazon EC2 instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*.\n If you specify ``InstanceType``, you can't specify ``InstanceRequirements``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -1965,7 +1965,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon Elastic Compute Cloud User Guide*.", + Description: "The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon EC2 User Guide*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -2131,7 +2131,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: InterfaceType "interface_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon Elastic Compute Cloud User Guide*.\n If you are not creating an EFA, specify ``interface`` or omit this parameter.\n Valid values: ``interface`` | ``efa``", + Description: "The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon EC2 User Guide*.\n If you are not creating an EFA, specify ``interface`` or omit this parameter.\n Valid values: ``interface`` | ``efa``", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -2153,7 +2153,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Ipv4Prefix "ipv_4_prefix": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The IPv4 prefix. For information, see [Assigning prefixes to Amazon EC2 network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon Elastic Compute Cloud User Guide*.", + Description: "The IPv4 prefix. For information, see [Assigning prefixes to network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon EC2 User Guide*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -2457,7 +2457,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: RamDiskId "ram_disk_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ID of the RAM disk.\n We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon Elastic Compute Cloud User Guide*.", + Description: "The ID of the RAM disk.\n We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -2490,7 +2490,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: ResourceType "resource_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of resource to tag.\n Valid Values lists all resource types for Amazon EC2 that can be tagged. When you create a launch template, you can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume.\n To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).", + Description: "The type of resource to tag. You can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume.\n To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -2531,7 +2531,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: UserData "user_data": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Linux instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) (Linux) or [Work with instance user data](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instancedata-add-user-data.html) (Windows) in the *Amazon Elastic Compute Cloud User Guide*.\n If you are creating the launch template for use with BATCH, the user data must be provided in the [MIME multi-part archive format](https://docs.aws.amazon.com/https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *User Guide*.", + Description: "The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Amazon EC2 instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) in the *Amazon EC2 User Guide*.\n If you are creating the launch template for use with BATCH, the user data must be provided in the [MIME multi-part archive format](https://docs.aws.amazon.com/https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *User Guide*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -2583,7 +2583,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // "description": "Specifies the tags to apply to the launch template during creation.\n ``LaunchTemplateTagSpecification`` is a property of [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html).", // "properties": { // "ResourceType": { - // "description": "The type of resource. To tag the launch template, ``ResourceType`` must be ``launch-template``.", + // "description": "The type of resource. To tag a launch template, ``ResourceType`` must be ``launch-template``.", // "type": "string" // }, // "Tags": { @@ -2621,7 +2621,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: ResourceType "resource_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of resource. To tag the launch template, ``ResourceType`` must be ``launch-template``.", + Description: "The type of resource. To tag a launch template, ``ResourceType`` must be ``launch-template``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/ec2/network_interface_attachment_resource_gen.go b/internal/aws/ec2/network_interface_attachment_resource_gen.go index a2eda3072..95b7bd9d5 100644 --- a/internal/aws/ec2/network_interface_attachment_resource_gen.go +++ b/internal/aws/ec2/network_interface_attachment_resource_gen.go @@ -31,11 +31,11 @@ func networkInterfaceAttachmentResource(ctx context.Context) (resource.Resource, // CloudFormation resource type schema: // // { - // "description": "The ID of the network interface attachment.", + // "description": "", // "type": "string" // } "attachment_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ID of the network interface attachment.", + Description: "", Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -46,11 +46,11 @@ func networkInterfaceAttachmentResource(ctx context.Context) (resource.Resource, // // { // "default": true, - // "description": "Whether to delete the network interface when the instance terminates. By default, this value is set to true.", + // "description": "Whether to delete the network interface when the instance terminates. By default, this value is set to ``true``.", // "type": "boolean" // } "delete_on_termination": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Whether to delete the network interface when the instance terminates. By default, this value is set to true.", + Description: "Whether to delete the network interface when the instance terminates. By default, this value is set to ``true``.", Optional: true, Computed: true, Default: booldefault.StaticBool(true), @@ -62,11 +62,11 @@ func networkInterfaceAttachmentResource(ctx context.Context) (resource.Resource, // CloudFormation resource type schema: // // { - // "description": "The network interface's position in the attachment order. For example, the first attached network interface has a DeviceIndex of 0.", + // "description": "The network interface's position in the attachment order. For example, the first attached network interface has a ``DeviceIndex`` of 0.", // "type": "string" // } "device_index": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The network interface's position in the attachment order. For example, the first attached network interface has a DeviceIndex of 0.", + Description: "The network interface's position in the attachment order. For example, the first attached network interface has a ``DeviceIndex`` of 0.", Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), @@ -77,12 +77,15 @@ func networkInterfaceAttachmentResource(ctx context.Context) (resource.Resource, // // { // "additionalProperties": false, + // "description": "Configures ENA Express for the network interface that this action attaches to the instance.", // "properties": { // "EnaSrdEnabled": { + // "description": "Indicates whether ENA Express is enabled for the network interface.", // "type": "boolean" // }, // "EnaSrdUdpSpecification": { // "additionalProperties": false, + // "description": "Configures ENA Express for UDP network traffic.", // "properties": { // "EnaSrdUdpEnabled": { // "type": "boolean" @@ -97,8 +100,9 @@ func networkInterfaceAttachmentResource(ctx context.Context) (resource.Resource, Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: EnaSrdEnabled "ena_srd_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "Indicates whether ENA Express is enabled for the network interface.", + Optional: true, + Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ boolplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -115,15 +119,17 @@ func networkInterfaceAttachmentResource(ctx context.Context) (resource.Resource, }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Optional: true, - Computed: true, + Description: "Configures ENA Express for UDP network traffic.", + Optional: true, + Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Optional: true, - Computed: true, + Description: "Configures ENA Express for the network interface that this action attaches to the instance.", + Optional: true, + Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -168,7 +174,7 @@ func networkInterfaceAttachmentResource(ctx context.Context) (resource.Resource, } schema := schema.Schema{ - Description: "Resource Type definition for AWS::EC2::NetworkInterfaceAttachment", + Description: "Attaches an elastic network interface (ENI) to an Amazon EC2 instance. You can use this resource type to attach additional network interfaces to an instance without interruption.", Version: 1, Attributes: attributes, } diff --git a/internal/aws/ecr/repository_creation_template_resource_gen.go b/internal/aws/ecr/repository_creation_template_resource_gen.go index fcb16307c..03fbb0ab9 100644 --- a/internal/aws/ecr/repository_creation_template_resource_gen.go +++ b/internal/aws/ecr/repository_creation_template_resource_gen.go @@ -75,6 +75,27 @@ func repositoryCreationTemplateResource(ctx context.Context) (resource.Resource, stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: CustomRoleArn + // CloudFormation resource type schema: + // + // { + // "description": "The ARN of the role to be assumed by ECR. This role must be in the same account as the registry that you are configuring.", + // "maxLength": 2048, + // "pattern": "^arn:aws[-a-z0-9]*:iam::[0-9]{12}:role/[A-Za-z0-9+=,-.@_]*$", + // "type": "string" + // } + "custom_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of the role to be assumed by ECR. This role must be in the same account as the registry that you are configuring.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(2048), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws[-a-z0-9]*:iam::[0-9]{12}:role/[A-Za-z0-9+=,-.@_]*$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Description // CloudFormation resource type schema: // @@ -338,6 +359,7 @@ func repositoryCreationTemplateResource(ctx context.Context) (resource.Resource, opts = opts.WithAttributeNameMap(map[string]string{ "applied_for": "AppliedFor", "created_at": "CreatedAt", + "custom_role_arn": "CustomRoleArn", "description": "Description", "encryption_configuration": "EncryptionConfiguration", "encryption_type": "EncryptionType", diff --git a/internal/aws/ecr/repository_resource_gen.go b/internal/aws/ecr/repository_resource_gen.go index 72f4b57bc..df367ea8f 100644 --- a/internal/aws/ecr/repository_resource_gen.go +++ b/internal/aws/ecr/repository_resource_gen.go @@ -69,7 +69,7 @@ func repositoryResource(ctx context.Context) (resource.Resource, error) { // "description": "The encryption configuration for the repository. This determines how the contents of your repository are encrypted at rest.", // "properties": { // "EncryptionType": { - // "description": "The encryption type to use.\n If you use the ``KMS`` encryption type, the contents of the repository will be encrypted using server-side encryption with KMSlong key stored in KMS. When you use KMS to encrypt your data, you can either use the default AWS managed KMS key for Amazon ECR, or specify your own KMS key, which you already created. For more information, see [Protecting data using server-side encryption with an key stored in (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*.\n 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 *Ama", + // "description": "The encryption type to use.\n If you use the ``KMS`` encryption type, the contents of the repository will be encrypted using server-side encryption with KMSlong key stored in KMS. When you use KMS to encrypt your data, you can either use the default AWS managed KMS key for Amazon ECR, or specify your own KMS key, which you already created. For more information, see [Protecting data using server-side encryption with an key stored in (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*.\n 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*.", // "enum": [ // "AES256", // "KMS" @@ -92,7 +92,7 @@ func repositoryResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: EncryptionType "encryption_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The encryption type to use.\n If you use the ``KMS`` encryption type, the contents of the repository will be encrypted using server-side encryption with KMSlong key stored in KMS. When you use KMS to encrypt your data, you can either use the default AWS managed KMS key for Amazon ECR, or specify your own KMS key, which you already created. For more information, see [Protecting data using server-side encryption with an key stored in (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*.\n 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 *Ama", + Description: "The encryption type to use.\n If you use the ``KMS`` encryption type, the contents of the repository will be encrypted using server-side encryption with KMSlong key stored in KMS. When you use KMS to encrypt your data, you can either use the default AWS managed KMS key for Amazon ECR, or specify your own KMS key, which you already created. For more information, see [Protecting data using server-side encryption with an key stored in (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*.\n 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*.", Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.OneOf( diff --git a/internal/aws/eks/cluster_resource_gen.go b/internal/aws/eks/cluster_resource_gen.go index c8a22e5d0..2188c35bc 100644 --- a/internal/aws/eks/cluster_resource_gen.go +++ b/internal/aws/eks/cluster_resource_gen.go @@ -729,6 +729,49 @@ func clusterResource(ctx context.Context) (resource.Resource, error) { setplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: UpgradePolicy + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "An object representing the Upgrade Policy to use for the cluster.", + // "properties": { + // "SupportType": { + // "description": "Specify the support type for your cluster.", + // "enum": [ + // "STANDARD", + // "EXTENDED" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // } + "upgrade_policy": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SupportType + "support_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specify the support type for your cluster.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "STANDARD", + "EXTENDED", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "An object representing the Upgrade Policy to use for the cluster.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Version // CloudFormation resource type schema: // @@ -806,8 +849,10 @@ func clusterResource(ctx context.Context) (resource.Resource, error) { "service_ipv_4_cidr": "ServiceIpv4Cidr", "service_ipv_6_cidr": "ServiceIpv6Cidr", "subnet_ids": "SubnetIds", + "support_type": "SupportType", "tags": "Tags", "type": "Type", + "upgrade_policy": "UpgradePolicy", "value": "Value", "version": "Version", }) diff --git a/internal/aws/entityresolution/id_mapping_workflow_resource_gen.go b/internal/aws/entityresolution/id_mapping_workflow_resource_gen.go index d5529622f..f3de29c99 100644 --- a/internal/aws/entityresolution/id_mapping_workflow_resource_gen.go +++ b/internal/aws/entityresolution/id_mapping_workflow_resource_gen.go @@ -112,7 +112,7 @@ func idMappingWorkflowResource(ctx context.Context) (resource.Resource, error) { // }, // "ProviderServiceArn": { // "description": "Arn of the Provider Service being used.", - // "pattern": "^arn:(aws|aws-us-gov|aws-cn):entityresolution:([A-Za-z0-9]+(-[A-Za-z0-9]+)+)::providerservice/[A-Za-z0-9]+/[A-Za-z0-9]+$", + // "pattern": "^arn:(aws|aws-us-gov|aws-cn):(entityresolution):([a-z]{2}-[a-z]{1,10}-[0-9])::providerservice/([a-zA-Z0-9_-]{1,255})/([a-zA-Z0-9_-]{1,255})$", // "type": "string" // } // }, @@ -247,7 +247,7 @@ func idMappingWorkflowResource(ctx context.Context) (resource.Resource, error) { Description: "Arn of the Provider Service being used.", Required: true, Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.RegexMatches(regexp.MustCompile("^arn:(aws|aws-us-gov|aws-cn):entityresolution:([A-Za-z0-9]+(-[A-Za-z0-9]+)+)::providerservice/[A-Za-z0-9]+/[A-Za-z0-9]+$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:(aws|aws-us-gov|aws-cn):(entityresolution):([a-z]{2}-[a-z]{1,10}-[0-9])::providerservice/([a-zA-Z0-9_-]{1,255})/([a-zA-Z0-9_-]{1,255})$"), ""), }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ diff --git a/internal/aws/fms/policy_resource_gen.go b/internal/aws/fms/policy_resource_gen.go index bbc218c98..bb64b33b9 100644 --- a/internal/aws/fms/policy_resource_gen.go +++ b/internal/aws/fms/policy_resource_gen.go @@ -437,7 +437,7 @@ func policyResource(ctx context.Context) (resource.Resource, error) { // "properties": { // "ManagedServiceData": { // "description": "Firewall managed service data.", - // "maxLength": 8192, + // "maxLength": 30000, // "minLength": 1, // "type": "string" // }, @@ -751,7 +751,7 @@ func policyResource(ctx context.Context) (resource.Resource, error) { Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.LengthBetween(1, 8192), + stringvalidator.LengthBetween(1, 30000), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), diff --git a/internal/aws/globalaccelerator/cross_account_attachment_resource_gen.go b/internal/aws/globalaccelerator/cross_account_attachment_resource_gen.go index 10c09d8a0..e405acc77 100644 --- a/internal/aws/globalaccelerator/cross_account_attachment_resource_gen.go +++ b/internal/aws/globalaccelerator/cross_account_attachment_resource_gen.go @@ -89,6 +89,9 @@ func crossAccountAttachmentResource(ctx context.Context) (resource.Resource, err // "additionalProperties": false, // "description": "ARN of resource to share.", // "properties": { + // "Cidr": { + // "type": "string" + // }, // "EndpointId": { // "type": "string" // }, @@ -96,9 +99,6 @@ func crossAccountAttachmentResource(ctx context.Context) (resource.Resource, err // "type": "string" // } // }, - // "required": [ - // "EndpointId" - // ], // "type": "object" // }, // "type": "array" @@ -106,9 +106,21 @@ func crossAccountAttachmentResource(ctx context.Context) (resource.Resource, err "resources": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Cidr + "cidr": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: EndpointId "endpoint_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: Region "region": schema.StringAttribute{ /*START ATTRIBUTE*/ @@ -206,6 +218,7 @@ func crossAccountAttachmentResource(ctx context.Context) (resource.Resource, err opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ "attachment_arn": "AttachmentArn", + "cidr": "Cidr", "endpoint_id": "EndpointId", "key": "Key", "name": "Name", diff --git a/internal/aws/glue/trigger_resource_gen.go b/internal/aws/glue/trigger_resource_gen.go new file mode 100644 index 000000000..c45abb8bf --- /dev/null +++ b/internal/aws/glue/trigger_resource_gen.go @@ -0,0 +1,490 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package glue + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework-jsontypes/jsontypes" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/boolplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/int64planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_glue_trigger", triggerResource) +} + +// triggerResource returns the Terraform awscc_glue_trigger resource. +// This Terraform resource corresponds to the CloudFormation AWS::Glue::Trigger resource. +func triggerResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Actions + // CloudFormation resource type schema: + // + // { + // "description": "The actions initiated by this trigger.", + // "items": { + // "additionalProperties": false, + // "description": "The actions initiated by this trigger.", + // "properties": { + // "Arguments": { + // "description": "The job arguments used when this trigger fires. For this job run, they replace the default arguments set in the job definition itself.", + // "type": "object" + // }, + // "CrawlerName": { + // "description": "The name of the crawler to be used with this action.", + // "type": "string" + // }, + // "JobName": { + // "description": "The name of a job to be executed.", + // "type": "string" + // }, + // "NotificationProperty": { + // "additionalProperties": false, + // "description": "Specifies configuration properties of a job run notification.", + // "properties": { + // "NotifyDelayAfter": { + // "description": "After a job run starts, the number of minutes to wait before sending a job run delay notification", + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "SecurityConfiguration": { + // "description": "The name of the SecurityConfiguration structure to be used with this action.", + // "type": "string" + // }, + // "Timeout": { + // "description": "The JobRun timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status. The default is 2,880 minutes (48 hours). This overrides the timeout value set in the parent job.", + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + "actions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arguments + "arguments": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Description: "The job arguments used when this trigger fires. For this job run, they replace the default arguments set in the job definition itself.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CrawlerName + "crawler_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the crawler to be used with this action.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: JobName + "job_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of a job to be executed.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: NotificationProperty + "notification_property": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: NotifyDelayAfter + "notify_delay_after": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "After a job run starts, the number of minutes to wait before sending a job run delay notification", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies configuration properties of a job run notification.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SecurityConfiguration + "security_configuration": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the SecurityConfiguration structure to be used with this action.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Timeout + "timeout": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The JobRun timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status. The default is 2,880 minutes (48 hours). This overrides the timeout value set in the parent job.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The actions initiated by this trigger.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "A description of this trigger.", + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A description of this trigger.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: EventBatchingCondition + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Batch condition that must be met (specified number of events received or batch time window expired) before EventBridge event trigger fires.", + // "properties": { + // "BatchSize": { + // "description": "Number of events that must be received from Amazon EventBridge before EventBridge event trigger fires.", + // "type": "integer" + // }, + // "BatchWindow": { + // "description": "Window of time in seconds after which EventBridge event trigger fires. Window starts when first event is received.", + // "type": "integer" + // } + // }, + // "required": [ + // "BatchSize" + // ], + // "type": "object" + // } + "event_batching_condition": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BatchSize + "batch_size": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Number of events that must be received from Amazon EventBridge before EventBridge event trigger fires.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: BatchWindow + "batch_window": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Window of time in seconds after which EventBridge event trigger fires. Window starts when first event is received.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Batch condition that must be met (specified number of events received or batch time window expired) before EventBridge event trigger fires.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "The name of the trigger.", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the trigger.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Predicate + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The predicate of this trigger, which defines when it will fire.", + // "properties": { + // "Conditions": { + // "description": "A list of the conditions that determine when the trigger will fire.", + // "items": { + // "additionalProperties": false, + // "description": "Defines a condition under which a trigger fires.", + // "properties": { + // "CrawlState": { + // "description": "The state of the crawler to which this condition applies.", + // "type": "string" + // }, + // "CrawlerName": { + // "description": "The name of the crawler to which this condition applies.", + // "type": "string" + // }, + // "JobName": { + // "description": "The name of the job whose JobRuns this condition applies to, and on which this trigger waits.", + // "type": "string" + // }, + // "LogicalOperator": { + // "description": "A logical operator.", + // "type": "string" + // }, + // "State": { + // "description": "The condition state. Currently, the values supported are SUCCEEDED, STOPPED, TIMEOUT, and FAILED.", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Logical": { + // "description": "An optional field if only one condition is listed. If multiple conditions are listed, then this field is required.", + // "type": "string" + // } + // }, + // "type": "object" + // } + "predicate": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Conditions + "conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CrawlState + "crawl_state": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The state of the crawler to which this condition applies.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CrawlerName + "crawler_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the crawler to which this condition applies.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: JobName + "job_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the job whose JobRuns this condition applies to, and on which this trigger waits.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LogicalOperator + "logical_operator": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A logical operator.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: State + "state": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The condition state. Currently, the values supported are SUCCEEDED, STOPPED, TIMEOUT, and FAILED.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of the conditions that determine when the trigger will fire.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Logical + "logical": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "An optional field if only one condition is listed. If multiple conditions are listed, then this field is required.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The predicate of this trigger, which defines when it will fire.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Schedule + // CloudFormation resource type schema: + // + // { + // "description": "A cron expression used to specify the schedule.", + // "type": "string" + // } + "schedule": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A cron expression used to specify the schedule.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: StartOnCreation + // CloudFormation resource type schema: + // + // { + // "description": "Set to true to start SCHEDULED and CONDITIONAL triggers when created. True is not supported for ON_DEMAND triggers.", + // "type": "boolean" + // } + "start_on_creation": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Set to true to start SCHEDULED and CONDITIONAL triggers when created. True is not supported for ON_DEMAND triggers.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + // StartOnCreation is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "The tags to use with this trigger.", + // "type": "object" + // } + "tags": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Description: "The tags to use with this trigger.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Type + // CloudFormation resource type schema: + // + // { + // "description": "The type of trigger that this is.", + // "type": "string" + // } + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The type of trigger that this is.", + Required: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: WorkflowName + // CloudFormation resource type schema: + // + // { + // "description": "The name of the workflow associated with the trigger.", + // "type": "string" + // } + "workflow_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the workflow associated with the trigger.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + // Corresponds to CloudFormation primaryIdentifier. + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Resource Type definition for AWS::Glue::Trigger", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Glue::Trigger").WithTerraformTypeName("awscc_glue_trigger") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "actions": "Actions", + "arguments": "Arguments", + "batch_size": "BatchSize", + "batch_window": "BatchWindow", + "conditions": "Conditions", + "crawl_state": "CrawlState", + "crawler_name": "CrawlerName", + "description": "Description", + "event_batching_condition": "EventBatchingCondition", + "job_name": "JobName", + "logical": "Logical", + "logical_operator": "LogicalOperator", + "name": "Name", + "notification_property": "NotificationProperty", + "notify_delay_after": "NotifyDelayAfter", + "predicate": "Predicate", + "schedule": "Schedule", + "security_configuration": "SecurityConfiguration", + "start_on_creation": "StartOnCreation", + "state": "State", + "tags": "Tags", + "timeout": "Timeout", + "type": "Type", + "workflow_name": "WorkflowName", + }) + + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/StartOnCreation", + }) + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/glue/trigger_resource_gen_test.go b/internal/aws/glue/trigger_resource_gen_test.go new file mode 100644 index 000000000..1e59d79bb --- /dev/null +++ b/internal/aws/glue/trigger_resource_gen_test.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package glue_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSGlueTrigger_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Glue::Trigger", "awscc_glue_trigger", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/lightsail/alarm_resource_gen.go b/internal/aws/lightsail/alarm_resource_gen.go index 611a6a03b..29610623a 100644 --- a/internal/aws/lightsail/alarm_resource_gen.go +++ b/internal/aws/lightsail/alarm_resource_gen.go @@ -137,11 +137,11 @@ func alarmResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The validation status of the SSL/TLS certificate.", + // "description": "The name of the Lightsail resource that the alarm monitors.", // "type": "string" // } "monitored_resource_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The validation status of the SSL/TLS certificate.", + Description: "The name of the Lightsail resource that the alarm monitors.", Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), diff --git a/internal/aws/lightsail/certificate_resource_gen.go b/internal/aws/lightsail/certificate_resource_gen.go index 79d05cf10..5791ffd76 100644 --- a/internal/aws/lightsail/certificate_resource_gen.go +++ b/internal/aws/lightsail/certificate_resource_gen.go @@ -179,7 +179,7 @@ func certificateResource(ctx context.Context) (resource.Resource, error) { } schema := schema.Schema{ - Description: "An example resource schema demonstrating some basic constructs and validation rules.", + Description: "Resource Type definition for AWS::Lightsail::Certificate.", Version: 1, Attributes: attributes, } diff --git a/internal/aws/mediaconnect/flow_output_resource_gen.go b/internal/aws/mediaconnect/flow_output_resource_gen.go index 11de87612..2ed8ab03b 100644 --- a/internal/aws/mediaconnect/flow_output_resource_gen.go +++ b/internal/aws/mediaconnect/flow_output_resource_gen.go @@ -431,6 +431,31 @@ func flowOutputResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: OutputStatus + // CloudFormation resource type schema: + // + // { + // "description": "An indication of whether the output should transmit data or not.", + // "enum": [ + // "ENABLED", + // "DISABLED" + // ], + // "type": "string" + // } + "output_status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "An indication of whether the output should transmit data or not.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ENABLED", + "DISABLED", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Port // CloudFormation resource type schema: // @@ -604,6 +629,7 @@ func flowOutputResource(ctx context.Context) (resource.Resource, error) { "min_latency": "MinLatency", "name": "Name", "output_arn": "OutputArn", + "output_status": "OutputStatus", "port": "Port", "protocol": "Protocol", "remote_id": "RemoteId", diff --git a/internal/aws/mediapackagev2/channel_resource_gen.go b/internal/aws/mediapackagev2/channel_resource_gen.go index 37a0f7c3d..2423e6bb8 100644 --- a/internal/aws/mediapackagev2/channel_resource_gen.go +++ b/internal/aws/mediapackagev2/channel_resource_gen.go @@ -177,6 +177,30 @@ func channelResource(ctx context.Context) (resource.Resource, error) { listplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: InputType + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "HLS", + // "CMAF" + // ], + // "type": "string" + // } + "input_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "HLS", + "CMAF", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: ModifiedAt // CloudFormation resource type schema: // @@ -270,6 +294,7 @@ func channelResource(ctx context.Context) (resource.Resource, error) { "id": "Id", "ingest_endpoint_urls": "IngestEndpointUrls", "ingest_endpoints": "IngestEndpoints", + "input_type": "InputType", "key": "Key", "modified_at": "ModifiedAt", "tags": "Tags", diff --git a/internal/aws/mediapackagev2/origin_endpoint_resource_gen.go b/internal/aws/mediapackagev2/origin_endpoint_resource_gen.go index 2e72a3056..f3826ab7e 100644 --- a/internal/aws/mediapackagev2/origin_endpoint_resource_gen.go +++ b/internal/aws/mediapackagev2/origin_endpoint_resource_gen.go @@ -521,6 +521,59 @@ func originEndpointResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: ForceEndpointErrorConfiguration + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "\u003cp\u003eThe failover settings for the endpoint.\u003c/p\u003e", + // "properties": { + // "EndpointErrorConditions": { + // "description": "\u003cp\u003eThe failover settings for the endpoint. The options are:\u003c/p\u003e\n \u003cul\u003e\n \u003cli\u003e\n \u003cp\u003e\n \u003ccode\u003eSTALE_MANIFEST\u003c/code\u003e - The manifest stalled and there a no new segments or parts.\u003c/p\u003e\n \u003c/li\u003e\n \u003cli\u003e\n \u003cp\u003e\n \u003ccode\u003eINCOMPLETE_MANIFEST\u003c/code\u003e - There is a gap in the manifest.\u003c/p\u003e\n \u003c/li\u003e\n \u003cli\u003e\n \u003cp\u003e\n \u003ccode\u003eMISSING_DRM_KEY\u003c/code\u003e - Key rotation is enabled but we're unable to fetch the key for the current key period.\u003c/p\u003e\n \u003c/li\u003e\n \u003c/ul\u003e", + // "items": { + // "enum": [ + // "STALE_MANIFEST", + // "INCOMPLETE_MANIFEST", + // "MISSING_DRM_KEY", + // "SLATE_INPUT" + // ], + // "type": "string" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // } + "force_endpoint_error_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EndpointErrorConditions + "endpoint_error_conditions": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "

The failover settings for the endpoint. The options are:

\n
    \n
  • \n

    \n STALE_MANIFEST - The manifest stalled and there a no new segments or parts.

    \n
  • \n
  • \n

    \n INCOMPLETE_MANIFEST - There is a gap in the manifest.

    \n
  • \n
  • \n

    \n MISSING_DRM_KEY - Key rotation is enabled but we're unable to fetch the key for the current key period.

    \n
  • \n
", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.ValueStringsAre( + stringvalidator.OneOf( + "STALE_MANIFEST", + "INCOMPLETE_MANIFEST", + "MISSING_DRM_KEY", + "SLATE_INPUT", + ), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "

The failover settings for the endpoint.

", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: HlsManifestUrls // CloudFormation resource type schema: // @@ -1594,7 +1647,9 @@ func originEndpointResource(ctx context.Context) (resource.Resource, error) { "encryption_contract_configuration": "EncryptionContractConfiguration", "encryption_method": "EncryptionMethod", "end": "End", + "endpoint_error_conditions": "EndpointErrorConditions", "filter_configuration": "FilterConfiguration", + "force_endpoint_error_configuration": "ForceEndpointErrorConfiguration", "hls_manifest_urls": "HlsManifestUrls", "hls_manifests": "HlsManifests", "include_iframe_only_streams": "IncludeIframeOnlyStreams", diff --git a/internal/aws/rds/db_cluster_resource_gen.go b/internal/aws/rds/db_cluster_resource_gen.go index f9cad29ce..5c3538d95 100644 --- a/internal/aws/rds/db_cluster_resource_gen.go +++ b/internal/aws/rds/db_cluster_resource_gen.go @@ -672,7 +672,7 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { // "type": "string" // }, // "SecretArn": { - // "description": "The Amazon Resource Name (ARN) of the secret.", + // "description": "The Amazon Resource Name (ARN) of the secret. This parameter is a return value that you can retrieve using the ``Fn::GetAtt`` intrinsic function. For more information, see [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#aws-resource-rds-dbcluster-return-values).", // "type": "string" // } // }, @@ -691,7 +691,7 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: SecretArn "secret_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Amazon Resource Name (ARN) of the secret.", + Description: "The Amazon Resource Name (ARN) of the secret. This parameter is a return value that you can retrieve using the ``Fn::GetAtt`` intrinsic function. For more information, see [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#aws-resource-rds-dbcluster-return-values).", Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -867,11 +867,11 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP address from within the DB cluster's virtual private cloud (VPC). It resolves to the public IP address from outside of the DB cluster's VPC. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", + // "description": "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", // "type": "boolean" // } "publicly_accessible": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP address from within the DB cluster's virtual private cloud (VPC). It resolves to the public IP address from outside of the DB cluster's VPC. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", + Description: "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/rds/db_instance_resource_gen.go b/internal/aws/rds/db_instance_resource_gen.go index ca62b3053..81a27a35b 100644 --- a/internal/aws/rds/db_instance_resource_gen.go +++ b/internal/aws/rds/db_instance_resource_gen.go @@ -154,11 +154,11 @@ func dBInstanceResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The destination region for the backup replication of the DB instance. For more info, see [Replicating automated backups to another Region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReplicateBackups.html) in the *Amazon RDS User Guide*.", + // "description": "", // "type": "string" // } "automatic_backup_replication_region": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The destination region for the backup replication of the DB instance. For more info, see [Replicating automated backups to another Region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReplicateBackups.html) in the *Amazon RDS User Guide*.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -466,11 +466,11 @@ func dBInstanceResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.\n By specifying this property, you can create a DB instance from the specified DB snapshot. If the ``DBSnapshotIdentifier`` property is an empty string or the ``AWS::RDS::DBInstance`` declaration has no ``DBSnapshotIdentifier`` property, AWS CloudFormation creates a new database. If the property contains a value (other than an empty string), AWS CloudFormation creates a database from the specified snapshot. If a snapshot with the specified name doesn't exist, AWS CloudFormation can't create the database and it rolls back the stack.\n Some DB instance properties aren't valid when you restore from a snapshot, such as the ``MasterUsername`` and ``MasterUserPassword`` properties. For information about the properties that you can specify, see the ``RestoreDBInstanceFromDBSnapshot`` action in the *Amazon RDS API Reference*.\n After you restore a DB instance with a ``DBSnapshotIdentifier`` property, you must specify the same ``DBSnapshotIdentifier`` property for any future updates to the DB instance. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. However, if you don't specify the ``DBSnapshotIdentifier`` property, an empty DB instance is created, and the original DB instance is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified ``DBSnapshotIdentifier`` property, and the original DB instance is deleted.\n If you specify the ``DBSnapshotIdentifier`` property to restore a DB instance (as opposed to specifying it for DB instance updates), then don't specify the following properties:\n + ``CharacterSetName`` \n + ``DBClusterIdentifier`` \n + ``DBName`` \n + ``DeleteAutomatedBackups`` \n + ``EnablePerformanceInsights`` \n + ``KmsKeyId`` \n + ``MasterUsername`` \n + ``MasterUserPassword`` \n + ``PerformanceInsightsKMSKeyId`` \n + ``PerformanceInsightsRetentionPeriod`` \n + ``PromotionTier`` \n + ``SourceDBInstanceIdentifier`` \n + ``SourceRegion`` \n + ``StorageEncrypted`` (for an encrypted snapshot)\n + ``Timezone`` \n \n *Amazon Aurora* \n Not applicable. Snapshot restore is managed by the DB cluster.", + // "description": "The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.\n By specifying this property, you can create a DB instance from the specified DB snapshot. If the ``DBSnapshotIdentifier`` property is an empty string or the ``AWS::RDS::DBInstance`` declaration has no ``DBSnapshotIdentifier`` property, AWS CloudFormation creates a new database. If the property contains a value (other than an empty string), AWS CloudFormation creates a database from the specified snapshot. If a snapshot with the specified name doesn't exist, AWS CloudFormation can't create the database and it rolls back the stack.\n Some DB instance properties aren't valid when you restore from a snapshot, such as the ``MasterUsername`` and ``MasterUserPassword`` properties. For information about the properties that you can specify, see the ``RestoreDBInstanceFromDBSnapshot`` action in the *Amazon RDS API Reference*.\n After you restore a DB instance with a ``DBSnapshotIdentifier`` property, you must specify the same ``DBSnapshotIdentifier`` property for any future updates to the DB instance. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. However, if you don't specify the ``DBSnapshotIdentifier`` property, an empty DB instance is created, and the original DB instance is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified ``DBSnapshotIdentifier`` property, and the original DB instance is deleted.\n If you specify the ``DBSnapshotIdentifier`` property to restore a DB instance (as opposed to specifying it for DB instance updates), then don't specify the following properties:\n + ``CharacterSetName`` \n + ``DBClusterIdentifier`` \n + ``DBName`` \n + ``DeleteAutomatedBackups`` \n + ``KmsKeyId`` \n + ``MasterUsername`` \n + ``MasterUserPassword`` \n + ``PerformanceInsightsKMSKeyId`` \n + ``PerformanceInsightsRetentionPeriod`` \n + ``PromotionTier`` \n + ``SourceDBInstanceIdentifier`` \n + ``SourceRegion`` \n + ``StorageEncrypted`` (for an encrypted snapshot)\n + ``Timezone`` \n \n *Amazon Aurora* \n Not applicable. Snapshot restore is managed by the DB cluster.", // "type": "string" // } "db_snapshot_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.\n By specifying this property, you can create a DB instance from the specified DB snapshot. If the ``DBSnapshotIdentifier`` property is an empty string or the ``AWS::RDS::DBInstance`` declaration has no ``DBSnapshotIdentifier`` property, AWS CloudFormation creates a new database. If the property contains a value (other than an empty string), AWS CloudFormation creates a database from the specified snapshot. If a snapshot with the specified name doesn't exist, AWS CloudFormation can't create the database and it rolls back the stack.\n Some DB instance properties aren't valid when you restore from a snapshot, such as the ``MasterUsername`` and ``MasterUserPassword`` properties. For information about the properties that you can specify, see the ``RestoreDBInstanceFromDBSnapshot`` action in the *Amazon RDS API Reference*.\n After you restore a DB instance with a ``DBSnapshotIdentifier`` property, you must specify the same ``DBSnapshotIdentifier`` property for any future updates to the DB instance. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. However, if you don't specify the ``DBSnapshotIdentifier`` property, an empty DB instance is created, and the original DB instance is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified ``DBSnapshotIdentifier`` property, and the original DB instance is deleted.\n If you specify the ``DBSnapshotIdentifier`` property to restore a DB instance (as opposed to specifying it for DB instance updates), then don't specify the following properties:\n + ``CharacterSetName`` \n + ``DBClusterIdentifier`` \n + ``DBName`` \n + ``DeleteAutomatedBackups`` \n + ``EnablePerformanceInsights`` \n + ``KmsKeyId`` \n + ``MasterUsername`` \n + ``MasterUserPassword`` \n + ``PerformanceInsightsKMSKeyId`` \n + ``PerformanceInsightsRetentionPeriod`` \n + ``PromotionTier`` \n + ``SourceDBInstanceIdentifier`` \n + ``SourceRegion`` \n + ``StorageEncrypted`` (for an encrypted snapshot)\n + ``Timezone`` \n \n *Amazon Aurora* \n Not applicable. Snapshot restore is managed by the DB cluster.", + Description: "The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.\n By specifying this property, you can create a DB instance from the specified DB snapshot. If the ``DBSnapshotIdentifier`` property is an empty string or the ``AWS::RDS::DBInstance`` declaration has no ``DBSnapshotIdentifier`` property, AWS CloudFormation creates a new database. If the property contains a value (other than an empty string), AWS CloudFormation creates a database from the specified snapshot. If a snapshot with the specified name doesn't exist, AWS CloudFormation can't create the database and it rolls back the stack.\n Some DB instance properties aren't valid when you restore from a snapshot, such as the ``MasterUsername`` and ``MasterUserPassword`` properties. For information about the properties that you can specify, see the ``RestoreDBInstanceFromDBSnapshot`` action in the *Amazon RDS API Reference*.\n After you restore a DB instance with a ``DBSnapshotIdentifier`` property, you must specify the same ``DBSnapshotIdentifier`` property for any future updates to the DB instance. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. However, if you don't specify the ``DBSnapshotIdentifier`` property, an empty DB instance is created, and the original DB instance is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified ``DBSnapshotIdentifier`` property, and the original DB instance is deleted.\n If you specify the ``DBSnapshotIdentifier`` property to restore a DB instance (as opposed to specifying it for DB instance updates), then don't specify the following properties:\n + ``CharacterSetName`` \n + ``DBClusterIdentifier`` \n + ``DBName`` \n + ``DeleteAutomatedBackups`` \n + ``KmsKeyId`` \n + ``MasterUsername`` \n + ``MasterUserPassword`` \n + ``PerformanceInsightsKMSKeyId`` \n + ``PerformanceInsightsRetentionPeriod`` \n + ``PromotionTier`` \n + ``SourceDBInstanceIdentifier`` \n + ``SourceRegion`` \n + ``StorageEncrypted`` (for an encrypted snapshot)\n + ``Timezone`` \n \n *Amazon Aurora* \n Not applicable. Snapshot restore is managed by the DB cluster.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -901,7 +901,7 @@ func dBInstanceResource(ctx context.Context) (resource.Resource, error) { // "type": "string" // }, // "SecretArn": { - // "description": "The Amazon Resource Name (ARN) of the secret.", + // "description": "The Amazon Resource Name (ARN) of the secret. This parameter is a return value that you can retrieve using the ``Fn::GetAtt`` intrinsic function. For more information, see [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#aws-resource-rds-dbinstance-return-values).", // "type": "string" // } // }, @@ -920,7 +920,7 @@ func dBInstanceResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: SecretArn "secret_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Amazon Resource Name (ARN) of the secret.", + Description: "The Amazon Resource Name (ARN) of the secret. This parameter is a return value that you can retrieve using the ``Fn::GetAtt`` intrinsic function. For more information, see [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#aws-resource-rds-dbinstance-return-values).", Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -1153,7 +1153,7 @@ func dBInstanceResource(ctx context.Context) (resource.Resource, error) { // "description": "The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.\n This setting doesn't apply to Amazon Aurora or RDS Custom DB instances.", // "items": { // "additionalProperties": false, - // "description": "The ``ProcessorFeature`` property type specifies the processor features of a DB instance class status.", + // "description": "The ``ProcessorFeature`` property type specifies the processor features of a DB instance class.", // "properties": { // "Name": { // "description": "The name of the processor feature. Valid names are ``coreCount`` and ``threadsPerCore``.", diff --git a/internal/aws/secretsmanager/resource_policy_resource_gen.go b/internal/aws/secretsmanager/resource_policy_resource_gen.go new file mode 100644 index 000000000..75337214d --- /dev/null +++ b/internal/aws/secretsmanager/resource_policy_resource_gen.go @@ -0,0 +1,132 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package secretsmanager + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/boolplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_secretsmanager_resource_policy", resourcePolicyResource) +} + +// resourcePolicyResource returns the Terraform awscc_secretsmanager_resource_policy resource. +// This Terraform resource corresponds to the CloudFormation AWS::SecretsManager::ResourcePolicy resource. +func resourcePolicyResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BlockPublicPolicy + // CloudFormation resource type schema: + // + // { + // "description": "Specifies whether to block resource-based policies that allow broad access to the secret.", + // "type": "boolean" + // } + "block_public_policy": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies whether to block resource-based policies that allow broad access to the secret.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + // BlockPublicPolicy is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "description": "The Arn of the secret.", + // "type": "string" + // } + "resource_policy_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Arn of the secret.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ResourcePolicy + // CloudFormation resource type schema: + // + // { + // "description": "A JSON-formatted string for an AWS resource-based policy.", + // "type": "string" + // } + "resource_policy": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A JSON-formatted string for an AWS resource-based policy.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: SecretId + // CloudFormation resource type schema: + // + // { + // "description": "The ARN or name of the secret to attach the resource-based policy.", + // "maxLength": 2048, + // "minLength": 1, + // "type": "string" + // } + "secret_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN or name of the secret to attach the resource-based policy.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 2048), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + // Corresponds to CloudFormation primaryIdentifier. + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Resource Type definition for AWS::SecretsManager::ResourcePolicy", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::SecretsManager::ResourcePolicy").WithTerraformTypeName("awscc_secretsmanager_resource_policy") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "block_public_policy": "BlockPublicPolicy", + "resource_policy": "ResourcePolicy", + "resource_policy_id": "Id", + "secret_id": "SecretId", + }) + + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/BlockPublicPolicy", + }) + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/secretsmanager/resource_policy_resource_gen_test.go b/internal/aws/secretsmanager/resource_policy_resource_gen_test.go new file mode 100644 index 000000000..199935b6b --- /dev/null +++ b/internal/aws/secretsmanager/resource_policy_resource_gen_test.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package secretsmanager_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSSecretsManagerResourcePolicy_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::SecretsManager::ResourcePolicy", "awscc_secretsmanager_resource_policy", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/workspacesweb/user_settings_resource_gen.go b/internal/aws/workspacesweb/user_settings_resource_gen.go index 8b51c2701..1fb1c0221 100644 --- a/internal/aws/workspacesweb/user_settings_resource_gen.go +++ b/internal/aws/workspacesweb/user_settings_resource_gen.go @@ -297,6 +297,29 @@ func userSettingsResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: DeepLinkAllowed + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "Disabled", + // "Enabled" + // ], + // "type": "string" + // } + "deep_link_allowed": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "Disabled", + "Enabled", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: DisconnectTimeoutInMinutes // CloudFormation resource type schema: // @@ -515,6 +538,7 @@ func userSettingsResource(ctx context.Context) (resource.Resource, error) { "cookie_synchronization_configuration": "CookieSynchronizationConfiguration", "copy_allowed": "CopyAllowed", "customer_managed_key": "CustomerManagedKey", + "deep_link_allowed": "DeepLinkAllowed", "disconnect_timeout_in_minutes": "DisconnectTimeoutInMinutes", "domain": "Domain", "download_allowed": "DownloadAllowed", diff --git a/internal/provider/all_schemas.hcl b/internal/provider/all_schemas.hcl index 114820ef5..cddf7ca15 100644 --- a/internal/provider/all_schemas.hcl +++ b/internal/provider/all_schemas.hcl @@ -535,8 +535,8 @@ resource_schema "aws_bedrock_data_source" { resource_schema "aws_bedrock_flow" { cloudformation_type_name = "AWS::Bedrock::Flow" - # Suppression Reason: DefinitionSubstitutions is of unsupported type: key-value map of - # https://github.com/hashicorp/terraform-provider-awscc/issues/xxxx + # Suppression Reason: DefinitionSubstitutions is of unsupported type: key-value map of . + # https://github.com/hashicorp/terraform-provider-awscc/issues/1907 suppress_resource_generation = true suppress_singular_data_source_generation = true suppress_plural_data_source_generation = true From 1bd79207f5779ec819d32de89f413d63a55550f2 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 25 Jul 2024 15:27:49 -0400 Subject: [PATCH 26/89] 07/24/2024 CloudFormation schemas in us-east-1; Generate Terraform data source schemas. --- ...scaling_policy_singular_data_source_gen.go | 136 +-- .../flow_alias_singular_data_source_gen.go | 227 ++++ ...low_alias_singular_data_source_gen_test.go | 36 + .../flow_version_singular_data_source_gen.go | 1010 +++++++++++++++++ ...w_version_singular_data_source_gen_test.go | 36 + ...knowledge_base_singular_data_source_gen.go | 257 ++++- .../bedrock/prompt_plural_data_source_gen.go | 54 + .../prompt_plural_data_source_gen_test.go | 27 + .../prompt_singular_data_source_gen.go | 491 ++++++++ .../prompt_singular_data_source_gen_test.go | 36 + ...prompt_version_singular_data_source_gen.go | 415 +++++++ ...t_version_singular_data_source_gen_test.go | 36 + ...on_config_singular_data_source_gen_test.go | 8 +- ...ip_association_singular_data_source_gen.go | 24 +- ...aunch_template_singular_data_source_gen.go | 52 +- ...ace_attachment_singular_data_source_gen.go | 24 +- ...ation_template_singular_data_source_gen.go | 14 + .../repository_singular_data_source_gen.go | 4 +- .../eks/cluster_singular_data_source_gen.go | 31 + ...pping_workflow_singular_data_source_gen.go | 2 +- .../fms/policy_singular_data_source_gen.go | 2 +- ...unt_attachment_singular_data_source_gen.go | 11 +- .../glue/trigger_plural_data_source_gen.go | 54 + .../trigger_plural_data_source_gen_test.go | 27 + .../glue/trigger_singular_data_source_gen.go | 374 ++++++ .../trigger_singular_data_source_gen_test.go | 36 + .../alarm_singular_data_source_gen.go | 4 +- .../flow_output_singular_data_source_gen.go | 16 + .../channel_singular_data_source_gen.go | 14 + ...rigin_endpoint_singular_data_source_gen.go | 37 + .../db_cluster_singular_data_source_gen.go | 8 +- .../db_instance_singular_data_source_gen.go | 14 +- .../resource_policy_plural_data_source_gen.go | 54 + ...urce_policy_plural_data_source_gen_test.go | 27 + ...esource_policy_singular_data_source_gen.go | 101 ++ ...ce_policy_singular_data_source_gen_test.go | 36 + .../user_settings_singular_data_source_gen.go | 14 + 37 files changed, 3575 insertions(+), 174 deletions(-) create mode 100644 internal/aws/bedrock/flow_alias_singular_data_source_gen.go create mode 100644 internal/aws/bedrock/flow_alias_singular_data_source_gen_test.go create mode 100644 internal/aws/bedrock/flow_version_singular_data_source_gen.go create mode 100644 internal/aws/bedrock/flow_version_singular_data_source_gen_test.go create mode 100644 internal/aws/bedrock/prompt_plural_data_source_gen.go create mode 100644 internal/aws/bedrock/prompt_plural_data_source_gen_test.go create mode 100644 internal/aws/bedrock/prompt_singular_data_source_gen.go create mode 100644 internal/aws/bedrock/prompt_singular_data_source_gen_test.go create mode 100644 internal/aws/bedrock/prompt_version_singular_data_source_gen.go create mode 100644 internal/aws/bedrock/prompt_version_singular_data_source_gen_test.go create mode 100644 internal/aws/glue/trigger_plural_data_source_gen.go create mode 100644 internal/aws/glue/trigger_plural_data_source_gen_test.go create mode 100644 internal/aws/glue/trigger_singular_data_source_gen.go create mode 100644 internal/aws/glue/trigger_singular_data_source_gen_test.go create mode 100644 internal/aws/secretsmanager/resource_policy_plural_data_source_gen.go create mode 100644 internal/aws/secretsmanager/resource_policy_plural_data_source_gen_test.go create mode 100644 internal/aws/secretsmanager/resource_policy_singular_data_source_gen.go create mode 100644 internal/aws/secretsmanager/resource_policy_singular_data_source_gen_test.go diff --git a/internal/aws/applicationautoscaling/scaling_policy_singular_data_source_gen.go b/internal/aws/applicationautoscaling/scaling_policy_singular_data_source_gen.go index 197e1390c..56647bade 100644 --- a/internal/aws/applicationautoscaling/scaling_policy_singular_data_source_gen.go +++ b/internal/aws/applicationautoscaling/scaling_policy_singular_data_source_gen.go @@ -26,77 +26,77 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // CloudFormation resource type schema: // // { - // "description": "ARN is a read only property for the resource.", + // "description": "", // "type": "string" // } "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "ARN is a read only property for the resource.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: PolicyName // CloudFormation resource type schema: // // { - // "description": "The name of the scaling policy.\n\nUpdates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing AWS::ApplicationAutoScaling::ScalingPolicy resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name.", + // "description": "The name of the scaling policy.\n Updates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing ``AWS::ApplicationAutoScaling::ScalingPolicy`` resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name.", // "type": "string" // } "policy_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of the scaling policy.\n\nUpdates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing AWS::ApplicationAutoScaling::ScalingPolicy resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name.", + Description: "The name of the scaling policy.\n Updates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing ``AWS::ApplicationAutoScaling::ScalingPolicy`` resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name.", Computed: true, }, /*END ATTRIBUTE*/ // Property: PolicyType // CloudFormation resource type schema: // // { - // "description": "The scaling policy type.\n\nThe following policy types are supported:\n\nTargetTrackingScaling Not supported for Amazon EMR\n\nStepScaling Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune.", + // "description": "The scaling policy type.\n The following policy types are supported: \n ``TargetTrackingScaling``—Not supported for Amazon EMR\n ``StepScaling``—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune.", // "type": "string" // } "policy_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The scaling policy type.\n\nThe following policy types are supported:\n\nTargetTrackingScaling Not supported for Amazon EMR\n\nStepScaling Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune.", + Description: "The scaling policy type.\n The following policy types are supported: \n ``TargetTrackingScaling``—Not supported for Amazon EMR\n ``StepScaling``—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune.", Computed: true, }, /*END ATTRIBUTE*/ // Property: ResourceId // CloudFormation resource type schema: // // { - // "description": "The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.", + // "description": "The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.\n + ECS service - The resource type is ``service`` and the unique identifier is the cluster name and service name. Example: ``service/my-cluster/my-service``.\n + Spot Fleet - The resource type is ``spot-fleet-request`` and the unique identifier is the Spot Fleet request ID. Example: ``spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE``.\n + EMR cluster - The resource type is ``instancegroup`` and the unique identifier is the cluster ID and instance group ID. Example: ``instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0``.\n + AppStream 2.0 fleet - The resource type is ``fleet`` and the unique identifier is the fleet name. Example: ``fleet/sample-fleet``.\n + DynamoDB table - The resource type is ``table`` and the unique identifier is the table name. Example: ``table/my-table``.\n + DynamoDB global secondary index - The resource type is ``index`` and the unique identifier is the index name. Example: ``table/my-table/index/my-table-index``.\n + Aurora DB cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:my-db-cluster``.\n + SageMaker endpoint variant - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering``.\n + Custom resources are not supported with a resource type. This parameter must specify the ``OutputValue`` from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our [GitHub repository](https://docs.aws.amazon.com/https://github.com/aws/aws-auto-scaling-custom-resource).\n + Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: ``arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE``.\n + Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: ``arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE``.\n + Lambda provisioned concurrency - The resource type is ``function`` and the unique identifier is the function name with a function version or alias name suffix that is not ``$LATEST``. Example: ``function:my-function:prod`` or ``function:my-function:1``.\n + Amazon Keyspaces table - The resource type is ``table`` and the unique identifier is the table name. Example: ``keyspace/mykeyspace/table/mytable``.\n + Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: ``arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5``.\n + Amazon ElastiCache replication group - The resource type is ``replication-group`` and the unique identifier is the replication group name. Example: ``replication-group/mycluster``.\n + Neptune cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:mycluster``.\n + SageMaker serverless endpoint - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering``.\n + SageMaker inference component - The resource type is ``inference-component`` and the unique identifier is the resource ID. Example: ``inference-component/my-inference-component``.\n + Pool of WorkSpaces - The resource type is ``workspacespool`` and the unique identifier is the pool ID. Example: ``workspacespool/wspool-123456``.", // "type": "string" // } "resource_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.", + Description: "The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.\n + ECS service - The resource type is ``service`` and the unique identifier is the cluster name and service name. Example: ``service/my-cluster/my-service``.\n + Spot Fleet - The resource type is ``spot-fleet-request`` and the unique identifier is the Spot Fleet request ID. Example: ``spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE``.\n + EMR cluster - The resource type is ``instancegroup`` and the unique identifier is the cluster ID and instance group ID. Example: ``instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0``.\n + AppStream 2.0 fleet - The resource type is ``fleet`` and the unique identifier is the fleet name. Example: ``fleet/sample-fleet``.\n + DynamoDB table - The resource type is ``table`` and the unique identifier is the table name. Example: ``table/my-table``.\n + DynamoDB global secondary index - The resource type is ``index`` and the unique identifier is the index name. Example: ``table/my-table/index/my-table-index``.\n + Aurora DB cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:my-db-cluster``.\n + SageMaker endpoint variant - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering``.\n + Custom resources are not supported with a resource type. This parameter must specify the ``OutputValue`` from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our [GitHub repository](https://docs.aws.amazon.com/https://github.com/aws/aws-auto-scaling-custom-resource).\n + Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: ``arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE``.\n + Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: ``arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE``.\n + Lambda provisioned concurrency - The resource type is ``function`` and the unique identifier is the function name with a function version or alias name suffix that is not ``$LATEST``. Example: ``function:my-function:prod`` or ``function:my-function:1``.\n + Amazon Keyspaces table - The resource type is ``table`` and the unique identifier is the table name. Example: ``keyspace/mykeyspace/table/mytable``.\n + Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: ``arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5``.\n + Amazon ElastiCache replication group - The resource type is ``replication-group`` and the unique identifier is the replication group name. Example: ``replication-group/mycluster``.\n + Neptune cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:mycluster``.\n + SageMaker serverless endpoint - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering``.\n + SageMaker inference component - The resource type is ``inference-component`` and the unique identifier is the resource ID. Example: ``inference-component/my-inference-component``.\n + Pool of WorkSpaces - The resource type is ``workspacespool`` and the unique identifier is the pool ID. Example: ``workspacespool/wspool-123456``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: ScalableDimension // CloudFormation resource type schema: // // { - // "description": "The scalable dimension. This string consists of the service namespace, resource type, and scaling property.", + // "description": "The scalable dimension. This string consists of the service namespace, resource type, and scaling property.\n + ``ecs:service:DesiredCount`` - The task count of an ECS service.\n + ``elasticmapreduce:instancegroup:InstanceCount`` - The instance count of an EMR Instance Group.\n + ``ec2:spot-fleet-request:TargetCapacity`` - The target capacity of a Spot Fleet.\n + ``appstream:fleet:DesiredCapacity`` - The capacity of an AppStream 2.0 fleet.\n + ``dynamodb:table:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB table.\n + ``dynamodb:table:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB table.\n + ``dynamodb:index:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB global secondary index.\n + ``dynamodb:index:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB global secondary index.\n + ``rds:cluster:ReadReplicaCount`` - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition.\n + ``sagemaker:variant:DesiredInstanceCount`` - The number of EC2 instances for a SageMaker model endpoint variant.\n + ``custom-resource:ResourceType:Property`` - The scalable dimension for a custom resource provided by your own application or service.\n + ``comprehend:document-classifier-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend document classification endpoint.\n + ``comprehend:entity-recognizer-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend entity recognizer endpoint.\n + ``lambda:function:ProvisionedConcurrency`` - The provisioned concurrency for a Lambda function.\n + ``cassandra:table:ReadCapacityUnits`` - The provisioned read capacity for an Amazon Keyspaces table.\n + ``cassandra:table:WriteCapacityUnits`` - The provisioned write capacity for an Amazon Keyspaces table.\n + ``kafka:broker-storage:VolumeSize`` - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster.\n + ``elasticache:replication-group:NodeGroups`` - The number of node groups for an Amazon ElastiCache replication group.\n + ``elasticache:replication-group:Replicas`` - The number of replicas per node group for an Amazon ElastiCache replication group.\n + ``neptune:cluster:ReadReplicaCount`` - The count of read replicas in an Amazon Neptune DB cluster.\n + ``sagemaker:variant:DesiredProvisionedConcurrency`` - The provisioned concurrency for a SageMaker serverless endpoint.\n + ``sagemaker:inference-component:DesiredCopyCount`` - The number of copies across an endpoint for a SageMaker inference component.\n + ``workspaces:workspacespool:DesiredUserSessions`` - The number of user sessions for the WorkSpaces in the pool.", // "type": "string" // } "scalable_dimension": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The scalable dimension. This string consists of the service namespace, resource type, and scaling property.", + Description: "The scalable dimension. This string consists of the service namespace, resource type, and scaling property.\n + ``ecs:service:DesiredCount`` - The task count of an ECS service.\n + ``elasticmapreduce:instancegroup:InstanceCount`` - The instance count of an EMR Instance Group.\n + ``ec2:spot-fleet-request:TargetCapacity`` - The target capacity of a Spot Fleet.\n + ``appstream:fleet:DesiredCapacity`` - The capacity of an AppStream 2.0 fleet.\n + ``dynamodb:table:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB table.\n + ``dynamodb:table:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB table.\n + ``dynamodb:index:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB global secondary index.\n + ``dynamodb:index:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB global secondary index.\n + ``rds:cluster:ReadReplicaCount`` - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition.\n + ``sagemaker:variant:DesiredInstanceCount`` - The number of EC2 instances for a SageMaker model endpoint variant.\n + ``custom-resource:ResourceType:Property`` - The scalable dimension for a custom resource provided by your own application or service.\n + ``comprehend:document-classifier-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend document classification endpoint.\n + ``comprehend:entity-recognizer-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend entity recognizer endpoint.\n + ``lambda:function:ProvisionedConcurrency`` - The provisioned concurrency for a Lambda function.\n + ``cassandra:table:ReadCapacityUnits`` - The provisioned read capacity for an Amazon Keyspaces table.\n + ``cassandra:table:WriteCapacityUnits`` - The provisioned write capacity for an Amazon Keyspaces table.\n + ``kafka:broker-storage:VolumeSize`` - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster.\n + ``elasticache:replication-group:NodeGroups`` - The number of node groups for an Amazon ElastiCache replication group.\n + ``elasticache:replication-group:Replicas`` - The number of replicas per node group for an Amazon ElastiCache replication group.\n + ``neptune:cluster:ReadReplicaCount`` - The count of read replicas in an Amazon Neptune DB cluster.\n + ``sagemaker:variant:DesiredProvisionedConcurrency`` - The provisioned concurrency for a SageMaker serverless endpoint.\n + ``sagemaker:inference-component:DesiredCopyCount`` - The number of copies across an endpoint for a SageMaker inference component.\n + ``workspaces:workspacespool:DesiredUserSessions`` - The number of user sessions for the WorkSpaces in the pool.", Computed: true, }, /*END ATTRIBUTE*/ // Property: ScalingTargetId // CloudFormation resource type schema: // // { - // "description": "The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the AWS::ApplicationAutoScaling::ScalableTarget resource.", + // "description": "The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the ``AWS::ApplicationAutoScaling::ScalableTarget`` resource.\n You must specify either the ``ScalingTargetId`` property, or the ``ResourceId``, ``ScalableDimension``, and ``ServiceNamespace`` properties, but not both.", // "type": "string" // } "scaling_target_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the AWS::ApplicationAutoScaling::ScalableTarget resource.", + Description: "The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the ``AWS::ApplicationAutoScaling::ScalableTarget`` resource.\n You must specify either the ``ScalingTargetId`` property, or the ``ResourceId``, ``ScalableDimension``, and ``ServiceNamespace`` properties, but not both.", Computed: true, }, /*END ATTRIBUTE*/ // Property: ServiceNamespace // CloudFormation resource type schema: // // { - // "description": "The namespace of the AWS service that provides the resource, or a custom-resource.", + // "description": "The namespace of the AWS service that provides the resource, or a ``custom-resource``.", // "type": "string" // } "service_namespace": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The namespace of the AWS service that provides the resource, or a custom-resource.", + Description: "The namespace of the AWS service that provides the resource, or a ``custom-resource``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: StepScalingPolicyConfiguration @@ -107,38 +107,38 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // "description": "A step scaling policy.", // "properties": { // "AdjustmentType": { - // "description": "Specifies how the ScalingAdjustment value in a StepAdjustment is interpreted.", + // "description": "Specifies whether the ``ScalingAdjustment`` value in the ``StepAdjustment`` property is an absolute number or a percentage of the current capacity.", // "type": "string" // }, // "Cooldown": { - // "description": "The amount of time, in seconds, to wait for a previous scaling activity to take effect.", + // "description": "The amount of time, in seconds, to wait for a previous scaling activity to take effect. If not specified, the default value is 300. For more information, see [Cooldown period](https://docs.aws.amazon.com/autoscaling/application/userguide/step-scaling-policy-overview.html#step-scaling-cooldown) in the *Application Auto Scaling User Guide*.", // "type": "integer" // }, // "MetricAggregationType": { - // "description": "The aggregation type for the CloudWatch metrics. Valid values are Minimum, Maximum, and Average. If the aggregation type is null, the value is treated as Average", + // "description": "The aggregation type for the CloudWatch metrics. Valid values are ``Minimum``, ``Maximum``, and ``Average``. If the aggregation type is null, the value is treated as ``Average``.", // "type": "string" // }, // "MinAdjustmentMagnitude": { - // "description": "The minimum value to scale by when the adjustment type is PercentChangeInCapacity.", + // "description": "The minimum value to scale by when the adjustment type is ``PercentChangeInCapacity``. For example, suppose that you create a step scaling policy to scale out an Amazon ECS service by 25 percent and you specify a ``MinAdjustmentMagnitude`` of 2. If the service has 4 tasks and the scaling policy is performed, 25 percent of 4 is 1. However, because you specified a ``MinAdjustmentMagnitude`` of 2, Application Auto Scaling scales out the service by 2 tasks.", // "type": "integer" // }, // "StepAdjustments": { - // "description": "A set of adjustments that enable you to scale based on the size of the alarm breach.", + // "description": "A set of adjustments that enable you to scale based on the size of the alarm breach.\n At least one step adjustment is required if you are adding a new step scaling policy configuration.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Represents a step adjustment for a StepScalingPolicyConfiguration. Describes an adjustment based on the difference between the value of the aggregated CloudWatch metric and the breach threshold that you've defined for the alarm.", + // "description": "``StepAdjustment`` specifies a step adjustment for the ``StepAdjustments`` property of the [AWS::ApplicationAutoScaling::ScalingPolicy StepScalingPolicyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html) property type. \n For the following examples, suppose that you have an alarm with a breach threshold of 50: \n + To trigger a step adjustment when the metric is greater than or equal to 50 and less than 60, specify a lower bound of 0 and an upper bound of 10. \n + To trigger a step adjustment when the metric is greater than 40 and less than or equal to 50, specify a lower bound of -10 and an upper bound of 0. \n \n For more information, see [Step adjustments](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html#as-scaling-steps) in the *Application Auto Scaling User Guide*.\n You can find a sample template snippet in the [Examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#aws-resource-applicationautoscaling-scalingpolicy--examples) section of the ``AWS::ApplicationAutoScaling::ScalingPolicy`` documentation.", // "properties": { // "MetricIntervalLowerBound": { - // "description": "The lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it is exclusive (the metric must be greater than the threshold plus the lower bound). A null value indicates negative infinity.", + // "description": "The lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it is exclusive (the metric must be greater than the threshold plus the lower bound). A null value indicates negative infinity.\n You must specify at least one upper or lower bound.", // "type": "number" // }, // "MetricIntervalUpperBound": { - // "description": "The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity.", + // "description": "The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity.\n You must specify at least one upper or lower bound.", // "type": "number" // }, // "ScalingAdjustment": { - // "description": "The amount by which to scale, based on the specified adjustment type. A positive value adds to the current capacity while a negative number removes from the current capacity. For exact capacity, you must specify a positive value.", + // "description": "The amount by which to scale. The adjustment is based on the value that you specified in the ``AdjustmentType`` property (either an absolute number or a percentage). A positive value adds to the current capacity and a negative number subtracts from the current capacity.", // "type": "integer" // } // }, @@ -157,22 +157,22 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: AdjustmentType "adjustment_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies how the ScalingAdjustment value in a StepAdjustment is interpreted.", + Description: "Specifies whether the ``ScalingAdjustment`` value in the ``StepAdjustment`` property is an absolute number or a percentage of the current capacity.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Cooldown "cooldown": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The amount of time, in seconds, to wait for a previous scaling activity to take effect.", + Description: "The amount of time, in seconds, to wait for a previous scaling activity to take effect. If not specified, the default value is 300. For more information, see [Cooldown period](https://docs.aws.amazon.com/autoscaling/application/userguide/step-scaling-policy-overview.html#step-scaling-cooldown) in the *Application Auto Scaling User Guide*.", Computed: true, }, /*END ATTRIBUTE*/ // Property: MetricAggregationType "metric_aggregation_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The aggregation type for the CloudWatch metrics. Valid values are Minimum, Maximum, and Average. If the aggregation type is null, the value is treated as Average", + Description: "The aggregation type for the CloudWatch metrics. Valid values are ``Minimum``, ``Maximum``, and ``Average``. If the aggregation type is null, the value is treated as ``Average``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: MinAdjustmentMagnitude "min_adjustment_magnitude": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The minimum value to scale by when the adjustment type is PercentChangeInCapacity.", + Description: "The minimum value to scale by when the adjustment type is ``PercentChangeInCapacity``. For example, suppose that you create a step scaling policy to scale out an Amazon ECS service by 25 percent and you specify a ``MinAdjustmentMagnitude`` of 2. If the service has 4 tasks and the scaling policy is performed, 25 percent of 4 is 1. However, because you specified a ``MinAdjustmentMagnitude`` of 2, Application Auto Scaling scales out the service by 2 tasks.", Computed: true, }, /*END ATTRIBUTE*/ // Property: StepAdjustments @@ -181,22 +181,22 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: MetricIntervalLowerBound "metric_interval_lower_bound": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "The lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it is exclusive (the metric must be greater than the threshold plus the lower bound). A null value indicates negative infinity.", + Description: "The lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it is exclusive (the metric must be greater than the threshold plus the lower bound). A null value indicates negative infinity.\n You must specify at least one upper or lower bound.", Computed: true, }, /*END ATTRIBUTE*/ // Property: MetricIntervalUpperBound "metric_interval_upper_bound": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity.", + Description: "The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity.\n You must specify at least one upper or lower bound.", Computed: true, }, /*END ATTRIBUTE*/ // Property: ScalingAdjustment "scaling_adjustment": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The amount by which to scale, based on the specified adjustment type. A positive value adds to the current capacity while a negative number removes from the current capacity. For exact capacity, you must specify a positive value.", + Description: "The amount by which to scale. The adjustment is based on the value that you specified in the ``AdjustmentType`` property (either an absolute number or a percentage). A positive value adds to the current capacity and a negative number subtracts from the current capacity.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "A set of adjustments that enable you to scale based on the size of the alarm breach.", + Description: "A set of adjustments that enable you to scale based on the size of the alarm breach.\n At least one step adjustment is required if you are adding a new step scaling policy configuration.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -215,11 +215,11 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // "description": "A customized metric. You can specify either a predefined metric or a customized metric.", // "properties": { // "Dimensions": { - // "description": "The dimensions of the metric.", + // "description": "The dimensions of the metric. \n Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Describes the dimension names and values associated with a metric.", + // "description": "``MetricDimension`` specifies a name/value pair that is part of the identity of a CloudWatch metric for the ``Dimensions`` property of the [AWS::ApplicationAutoScaling::ScalingPolicy CustomizedMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html) property type. Duplicate dimensions are not allowed.", // "properties": { // "Name": { // "description": "The name of the dimension.", @@ -240,7 +240,7 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // "uniqueItems": false // }, // "MetricName": { - // "description": "The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the Metric object that is returned by a call to ListMetrics.", + // "description": "The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that's returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html).", // "type": "string" // }, // "Metrics": { @@ -248,14 +248,14 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "The metric data to return. Also defines whether this call is returning data for one metric only, or whether it is performing a math expression on the values of returned metric statistics to create a new time series. A time series is a series of data points, each of which is associated with a timestamp.", + // "description": "The metric data to return. Also defines whether this call is returning data for one metric only, or whether it is performing a math expression on the values of returned metric statistics to create a new time series. A time series is a series of data points, each of which is associated with a timestamp.\n You can call for a single metric or perform math expressions on multiple metrics. Any expressions used in a metric specification must eventually return a single time series.\n For more information and examples, see [Create a target tracking scaling policy for Application Auto Scaling using metric math](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking-metric-math.html) in the *Application Auto Scaling User Guide*.\n ``TargetTrackingMetricDataQuery`` is a property of the [AWS::ApplicationAutoScaling::ScalingPolicy CustomizedMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html) property type.", // "properties": { // "Expression": { - // "description": "The math expression to perform on the returned data, if this object is performing a math expression.", + // "description": "The math expression to perform on the returned data, if this object is performing a math expression. This expression can use the ``Id`` of the other metrics to refer to those metrics, and can also use the ``Id`` of other expressions to use the result of those expressions. \n Conditional: Within each ``TargetTrackingMetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both.", // "type": "string" // }, // "Id": { - // "description": "A short name that identifies the object's results in the response.", + // "description": "A short name that identifies the object's results in the response. This name must be unique among all ``MetricDataQuery`` objects specified for a single scaling policy. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscores. The first character must be a lowercase letter.", // "type": "string" // }, // "Label": { @@ -264,18 +264,18 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // }, // "MetricStat": { // "additionalProperties": false, - // "description": "Information about the metric data to return.", + // "description": "Information about the metric data to return.\n Conditional: Within each ``MetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both.", // "properties": { // "Metric": { // "additionalProperties": false, - // "description": "The CloudWatch metric to return, including the metric name, namespace, and dimensions. ", + // "description": "The CloudWatch metric to return, including the metric name, namespace, and dimensions. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that is returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html).", // "properties": { // "Dimensions": { - // "description": "The dimensions for the metric.", + // "description": "The dimensions for the metric. For the list of available dimensions, see the AWS documentation available from the table in [services that publish CloudWatch metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) in the *Amazon CloudWatch User Guide*. \n Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Describes the dimension of a metric.", + // "description": "``TargetTrackingMetricDimension`` specifies a name/value pair that is part of the identity of a CloudWatch metric for the ``Dimensions`` property of the [AWS::ApplicationAutoScaling::ScalingPolicy TargetTrackingMetric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingmetric.html) property type. Duplicate dimensions are not allowed.", // "properties": { // "Name": { // "description": "The name of the dimension.", @@ -296,25 +296,25 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // "type": "string" // }, // "Namespace": { - // "description": "The namespace of the metric.", + // "description": "The namespace of the metric. For more information, see the table in [services that publish CloudWatch metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) in the *Amazon CloudWatch User Guide*.", // "type": "string" // } // }, // "type": "object" // }, // "Stat": { - // "description": "The statistic to return. It can include any CloudWatch statistic or extended statistic.", + // "description": "The statistic to return. It can include any CloudWatch statistic or extended statistic. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *Amazon CloudWatch User Guide*.\n The most commonly used metric for scaling is ``Average``.", // "type": "string" // }, // "Unit": { - // "description": "The unit to use for the returned data points.", + // "description": "The unit to use for the returned data points. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*.", // "type": "string" // } // }, // "type": "object" // }, // "ReturnData": { - // "description": "Indicates whether to return the timestamps and raw data values of this metric.", + // "description": "Indicates whether to return the timestamps and raw data values of this metric. \n If you use any math expressions, specify ``true`` for this value for only the final math expression that the metric specification is based on. You must specify ``false`` for ``ReturnData`` for all the other metrics and expressions used in the metric specification.\n If you are only retrieving metrics and not performing any math expressions, do not specify anything for ``ReturnData``. This sets it to its default (``true``).", // "type": "boolean" // } // }, @@ -332,14 +332,14 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // "type": "string" // }, // "Unit": { - // "description": "The unit of the metric. For a complete list of the units that CloudWatch supports, see the MetricDatum data type in the Amazon CloudWatch API Reference.", + // "description": "The unit of the metric. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*.", // "type": "string" // } // }, // "type": "object" // }, // "DisableScaleIn": { - // "description": "Indicates whether scale in by the target tracking scaling policy is disabled. If the value is true, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target. The default value is false.", + // "description": "Indicates whether scale in by the target tracking scaling policy is disabled. If the value is ``true``, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target. The default value is ``false``.", // "type": "boolean" // }, // "PredefinedMetricSpecification": { @@ -347,11 +347,11 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // "description": "A predefined metric. You can specify either a predefined metric or a customized metric.", // "properties": { // "PredefinedMetricType": { - // "description": "The metric type. The ALBRequestCountPerTarget metric type applies only to Spot Fleets and ECS services.", + // "description": "The metric type. The ``ALBRequestCountPerTarget`` metric type applies only to Spot fleet requests and ECS services.", // "type": "string" // }, // "ResourceLabel": { - // "description": "Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ALBRequestCountPerTarget and there is a target group attached to the Spot Fleet or ECS service.", + // "description": "Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ``ALBRequestCountPerTarget`` and there is a target group attached to the Spot Fleet or ECS service.\n You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). The format of the resource label is:\n ``app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff``.\n Where:\n + app/\u003cload-balancer-name\u003e/\u003cload-balancer-id\u003e is the final portion of the load balancer ARN\n + targetgroup/\u003ctarget-group-name\u003e/\u003ctarget-group-id\u003e is the final portion of the target group ARN.\n \n To find the ARN for an Application Load Balancer, use the [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operation. To find the ARN for the target group, use the [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) API operation.", // "type": "string" // } // }, @@ -361,11 +361,11 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // "type": "object" // }, // "ScaleInCooldown": { - // "description": "The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start.", + // "description": "The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start. For more information and for default values, see [Define cooldown periods](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) in the *Application Auto Scaling User Guide*.", // "type": "integer" // }, // "ScaleOutCooldown": { - // "description": "The amount of time, in seconds, to wait for a previous scale-out activity to take effect.", + // "description": "The amount of time, in seconds, to wait for a previous scale-out activity to take effect. For more information and for default values, see [Define cooldown periods](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) in the *Application Auto Scaling User Guide*.", // "type": "integer" // }, // "TargetValue": { @@ -399,12 +399,12 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The dimensions of the metric.", + Description: "The dimensions of the metric. \n Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy.", Computed: true, }, /*END ATTRIBUTE*/ // Property: MetricName "metric_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the Metric object that is returned by a call to ListMetrics.", + Description: "The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that's returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html).", Computed: true, }, /*END ATTRIBUTE*/ // Property: Metrics @@ -413,12 +413,12 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Expression "expression": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The math expression to perform on the returned data, if this object is performing a math expression.", + Description: "The math expression to perform on the returned data, if this object is performing a math expression. This expression can use the ``Id`` of the other metrics to refer to those metrics, and can also use the ``Id`` of other expressions to use the result of those expressions. \n Conditional: Within each ``TargetTrackingMetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Id "id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A short name that identifies the object's results in the response.", + Description: "A short name that identifies the object's results in the response. This name must be unique among all ``MetricDataQuery`` objects specified for a single scaling policy. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscores. The first character must be a lowercase letter.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Label @@ -448,7 +448,7 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The dimensions for the metric.", + Description: "The dimensions for the metric. For the list of available dimensions, see the AWS documentation available from the table in [services that publish CloudWatch metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) in the *Amazon CloudWatch User Guide*. \n Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy.", Computed: true, }, /*END ATTRIBUTE*/ // Property: MetricName @@ -458,30 +458,30 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) }, /*END ATTRIBUTE*/ // Property: Namespace "namespace": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The namespace of the metric.", + Description: "The namespace of the metric. For more information, see the table in [services that publish CloudWatch metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) in the *Amazon CloudWatch User Guide*.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The CloudWatch metric to return, including the metric name, namespace, and dimensions. ", + Description: "The CloudWatch metric to return, including the metric name, namespace, and dimensions. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that is returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html).", Computed: true, }, /*END ATTRIBUTE*/ // Property: Stat "stat": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The statistic to return. It can include any CloudWatch statistic or extended statistic.", + Description: "The statistic to return. It can include any CloudWatch statistic or extended statistic. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *Amazon CloudWatch User Guide*.\n The most commonly used metric for scaling is ``Average``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Unit "unit": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The unit to use for the returned data points.", + Description: "The unit to use for the returned data points. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "Information about the metric data to return.", + Description: "Information about the metric data to return.\n Conditional: Within each ``MetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both.", Computed: true, }, /*END ATTRIBUTE*/ // Property: ReturnData "return_data": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Indicates whether to return the timestamps and raw data values of this metric.", + Description: "Indicates whether to return the timestamps and raw data values of this metric. \n If you use any math expressions, specify ``true`` for this value for only the final math expression that the metric specification is based on. You must specify ``false`` for ``ReturnData`` for all the other metrics and expressions used in the metric specification.\n If you are only retrieving metrics and not performing any math expressions, do not specify anything for ``ReturnData``. This sets it to its default (``true``).", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -501,7 +501,7 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) }, /*END ATTRIBUTE*/ // Property: Unit "unit": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The unit of the metric. For a complete list of the units that CloudWatch supports, see the MetricDatum data type in the Amazon CloudWatch API Reference.", + Description: "The unit of the metric. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -510,7 +510,7 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) }, /*END ATTRIBUTE*/ // Property: DisableScaleIn "disable_scale_in": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Indicates whether scale in by the target tracking scaling policy is disabled. If the value is true, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target. The default value is false.", + Description: "Indicates whether scale in by the target tracking scaling policy is disabled. If the value is ``true``, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target. The default value is ``false``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: PredefinedMetricSpecification @@ -518,12 +518,12 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: PredefinedMetricType "predefined_metric_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The metric type. The ALBRequestCountPerTarget metric type applies only to Spot Fleets and ECS services.", + Description: "The metric type. The ``ALBRequestCountPerTarget`` metric type applies only to Spot fleet requests and ECS services.", Computed: true, }, /*END ATTRIBUTE*/ // Property: ResourceLabel "resource_label": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ALBRequestCountPerTarget and there is a target group attached to the Spot Fleet or ECS service.", + Description: "Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ``ALBRequestCountPerTarget`` and there is a target group attached to the Spot Fleet or ECS service.\n You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). The format of the resource label is:\n ``app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff``.\n Where:\n + app// is the final portion of the load balancer ARN\n + targetgroup// is the final portion of the target group ARN.\n \n To find the ARN for an Application Load Balancer, use the [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operation. To find the ARN for the target group, use the [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) API operation.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -532,12 +532,12 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) }, /*END ATTRIBUTE*/ // Property: ScaleInCooldown "scale_in_cooldown": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start.", + Description: "The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start. For more information and for default values, see [Define cooldown periods](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) in the *Application Auto Scaling User Guide*.", Computed: true, }, /*END ATTRIBUTE*/ // Property: ScaleOutCooldown "scale_out_cooldown": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The amount of time, in seconds, to wait for a previous scale-out activity to take effect.", + Description: "The amount of time, in seconds, to wait for a previous scale-out activity to take effect. For more information and for default values, see [Define cooldown periods](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) in the *Application Auto Scaling User Guide*.", Computed: true, }, /*END ATTRIBUTE*/ // Property: TargetValue diff --git a/internal/aws/bedrock/flow_alias_singular_data_source_gen.go b/internal/aws/bedrock/flow_alias_singular_data_source_gen.go new file mode 100644 index 000000000..e708a1df0 --- /dev/null +++ b/internal/aws/bedrock/flow_alias_singular_data_source_gen.go @@ -0,0 +1,227 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package bedrock + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework-timetypes/timetypes" + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_bedrock_flow_alias", flowAliasDataSource) +} + +// flowAliasDataSource returns the Terraform awscc_bedrock_flow_alias data source. +// This Terraform data source corresponds to the CloudFormation AWS::Bedrock::FlowAlias resource. +func flowAliasDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "description": "Arn of the Flow Alias", + // "maxLength": 2048, + // "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}/alias/[0-9a-zA-Z]{10}$", + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Arn of the Flow Alias", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CreatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp.", + // "format": "date-time", + // "type": "string" + // } + "created_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "Description of the Resource.", + // "maxLength": 200, + // "minLength": 1, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Description of the Resource.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: FlowArn + // CloudFormation resource type schema: + // + // { + // "description": "Arn representation of the Flow", + // "maxLength": 2048, + // "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + // "type": "string" + // } + "flow_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Arn representation of the Flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: FlowId + // CloudFormation resource type schema: + // + // { + // "description": "Identifier for a flow resource.", + // "pattern": "^[0-9a-zA-Z]{10}$", + // "type": "string" + // } + "flow_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Identifier for a flow resource.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "description": "Id for a Flow Alias generated at the server side.", + // "maxLength": 10, + // "minLength": 10, + // "pattern": "^(\\bTSTALIASID\\b|[0-9a-zA-Z]+)$", + // "type": "string" + // } + "flow_alias_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Id for a Flow Alias generated at the server side.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "Name for a resource.", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a resource.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RoutingConfiguration + // CloudFormation resource type schema: + // + // { + // "description": "Routing configuration for a Flow alias.", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Details about the routing configuration for a Flow alias.", + // "properties": { + // "FlowVersion": { + // "description": "Version.", + // "maxLength": 1, + // "minLength": 1, + // "pattern": "^(DRAFT|[0-9]{0,4}[1-9][0-9]{0,4})$", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "maxItems": 1, + // "minItems": 1, + // "type": "array" + // } + "routing_configuration": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: FlowVersion + "flow_version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Version.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "Routing configuration for a Flow alias.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "A map of tag keys and values", + // "patternProperties": { + // "": { + // "description": "Value of a tag", + // "maxLength": 256, + // "minLength": 0, + // "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + // "type": "string" + // } + // }, + // "type": "object" + // } + "tags": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A map of tag keys and values", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: UpdatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp.", + // "format": "date-time", + // "type": "string" + // } + "updated_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp.", + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::Bedrock::FlowAlias", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Bedrock::FlowAlias").WithTerraformTypeName("awscc_bedrock_flow_alias") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "arn": "Arn", + "created_at": "CreatedAt", + "description": "Description", + "flow_alias_id": "Id", + "flow_arn": "FlowArn", + "flow_id": "FlowId", + "flow_version": "FlowVersion", + "name": "Name", + "routing_configuration": "RoutingConfiguration", + "tags": "Tags", + "updated_at": "UpdatedAt", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/bedrock/flow_alias_singular_data_source_gen_test.go b/internal/aws/bedrock/flow_alias_singular_data_source_gen_test.go new file mode 100644 index 000000000..388881795 --- /dev/null +++ b/internal/aws/bedrock/flow_alias_singular_data_source_gen_test.go @@ -0,0 +1,36 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package bedrock_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSBedrockFlowAliasDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Bedrock::FlowAlias", "awscc_bedrock_flow_alias", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSBedrockFlowAliasDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Bedrock::FlowAlias", "awscc_bedrock_flow_alias", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/bedrock/flow_version_singular_data_source_gen.go b/internal/aws/bedrock/flow_version_singular_data_source_gen.go new file mode 100644 index 000000000..c1910e7b8 --- /dev/null +++ b/internal/aws/bedrock/flow_version_singular_data_source_gen.go @@ -0,0 +1,1010 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package bedrock + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework-jsontypes/jsontypes" + "github.com/hashicorp/terraform-plugin-framework-timetypes/timetypes" + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_bedrock_flow_version", flowVersionDataSource) +} + +// flowVersionDataSource returns the Terraform awscc_bedrock_flow_version data source. +// This Terraform data source corresponds to the CloudFormation AWS::Bedrock::FlowVersion resource. +func flowVersionDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CreatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp.", + // "format": "date-time", + // "type": "string" + // } + "created_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Definition + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Flow definition", + // "properties": { + // "Connections": { + // "description": "List of connections", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Flow connection", + // "properties": { + // "Configuration": { + // "description": "Connection configuration", + // "properties": { + // "Conditional": { + // "additionalProperties": false, + // "description": "Conditional connection configuration", + // "properties": { + // "Condition": { + // "description": "Name of a condition in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // } + // }, + // "required": [ + // "Condition" + // ], + // "type": "object" + // }, + // "Data": { + // "additionalProperties": false, + // "description": "Data connection configuration", + // "properties": { + // "SourceOutput": { + // "description": "Name of a node output in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // }, + // "TargetInput": { + // "description": "Name of a node input in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // } + // }, + // "required": [ + // "SourceOutput", + // "TargetInput" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "Name": { + // "description": "Name of a connection in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,100}$", + // "type": "string" + // }, + // "Source": { + // "description": "Name of a node in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // }, + // "Target": { + // "description": "Name of a node in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // }, + // "Type": { + // "description": "Connection type", + // "enum": [ + // "Data", + // "Conditional" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "Source", + // "Target", + // "Type" + // ], + // "type": "object" + // }, + // "maxItems": 20, + // "type": "array" + // }, + // "Nodes": { + // "description": "List of nodes in a flow", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Internal mixin for flow node", + // "properties": { + // "Configuration": { + // "description": "Node configuration in a flow", + // "properties": { + // "Condition": { + // "additionalProperties": false, + // "description": "Condition flow node configuration", + // "properties": { + // "Conditions": { + // "description": "List of conditions in a condition node", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Condition branch for a condition node", + // "properties": { + // "Expression": { + // "description": "Expression for a condition in a flow", + // "maxLength": 64, + // "minLength": 1, + // "type": "string" + // }, + // "Name": { + // "description": "Name of a condition in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "maxItems": 5, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "Conditions" + // ], + // "type": "object" + // }, + // "Input": { + // "additionalProperties": false, + // "description": "Input flow node configuration", + // "type": "object" + // }, + // "KnowledgeBase": { + // "additionalProperties": false, + // "description": "Knowledge base flow node configuration", + // "properties": { + // "KnowledgeBaseId": { + // "description": "Identifier of the KnowledgeBase", + // "maxLength": 10, + // "pattern": "^[0-9a-zA-Z]+$", + // "type": "string" + // }, + // "ModelId": { + // "description": "ARN or name of a Bedrock model.", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$", + // "type": "string" + // } + // }, + // "required": [ + // "KnowledgeBaseId" + // ], + // "type": "object" + // }, + // "LambdaFunction": { + // "additionalProperties": false, + // "description": "Lambda function flow node configuration", + // "properties": { + // "LambdaArn": { + // "description": "ARN of a Lambda.", + // "maxLength": 2048, + // "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + // "type": "string" + // } + // }, + // "required": [ + // "LambdaArn" + // ], + // "type": "object" + // }, + // "Lex": { + // "additionalProperties": false, + // "description": "Lex flow node configuration", + // "properties": { + // "BotAliasArn": { + // "description": "ARN of a Lex bot alias", + // "maxLength": 78, + // "pattern": "^arn:aws(|-us-gov):lex:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:bot-alias/[0-9a-zA-Z]+/[0-9a-zA-Z]+$", + // "type": "string" + // }, + // "LocaleId": { + // "description": "Lex bot locale id", + // "maxLength": 10, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "BotAliasArn", + // "LocaleId" + // ], + // "type": "object" + // }, + // "Output": { + // "additionalProperties": false, + // "description": "Output flow node configuration", + // "type": "object" + // }, + // "Prompt": { + // "additionalProperties": false, + // "description": "Prompt flow node configuration", + // "properties": { + // "SourceConfiguration": { + // "description": "Prompt source configuration for prompt node", + // "properties": { + // "Inline": { + // "additionalProperties": false, + // "description": "Inline prompt configuration for prompt node", + // "properties": { + // "InferenceConfiguration": { + // "description": "Model inference configuration", + // "properties": { + // "Text": { + // "additionalProperties": false, + // "description": "Prompt model inference configuration", + // "properties": { + // "MaxTokens": { + // "description": "Maximum length of output", + // "maximum": 4096, + // "minimum": 0, + // "type": "number" + // }, + // "StopSequences": { + // "description": "List of stop sequences", + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "maxItems": 4, + // "minItems": 0, + // "type": "array" + // }, + // "Temperature": { + // "description": "Controls randomness, higher values increase diversity", + // "maximum": 1, + // "minimum": 0, + // "type": "number" + // }, + // "TopK": { + // "description": "Sample from the k most likely next tokens", + // "maximum": 500, + // "minimum": 0, + // "type": "number" + // }, + // "TopP": { + // "description": "Cumulative probability cutoff for token selection", + // "maximum": 1, + // "minimum": 0, + // "type": "number" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "ModelId": { + // "description": "ARN or name of a Bedrock model.", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + // "type": "string" + // }, + // "TemplateConfiguration": { + // "description": "Prompt template configuration", + // "properties": { + // "Text": { + // "additionalProperties": false, + // "description": "Configuration for text prompt template", + // "properties": { + // "InputVariables": { + // "description": "List of input variables", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Input variable", + // "properties": { + // "Name": { + // "description": "Name for an input variable", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "maxItems": 5, + // "minItems": 0, + // "type": "array" + // }, + // "Text": { + // "description": "Prompt content for String prompt template", + // "maxLength": 200000, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Text" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "TemplateType": { + // "description": "Prompt template type", + // "enum": [ + // "TEXT" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "ModelId", + // "TemplateConfiguration", + // "TemplateType" + // ], + // "type": "object" + // }, + // "Resource": { + // "additionalProperties": false, + // "description": "Resource prompt configuration for prompt node", + // "properties": { + // "PromptArn": { + // "description": "ARN of a prompt resource possibly with a version", + // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}(?::[0-9]{1,5})?)$", + // "type": "string" + // } + // }, + // "required": [ + // "PromptArn" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // } + // }, + // "required": [ + // "SourceConfiguration" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "Inputs": { + // "description": "List of node inputs in a flow", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Input to a node in a flow", + // "properties": { + // "Expression": { + // "description": "Expression for a node input in a flow", + // "maxLength": 64, + // "minLength": 1, + // "type": "string" + // }, + // "Name": { + // "description": "Name of a node input in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // }, + // "Type": { + // "description": "Type of input/output for a node in a flow", + // "enum": [ + // "String", + // "Number", + // "Boolean", + // "Object", + // "Array" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Expression", + // "Name", + // "Type" + // ], + // "type": "object" + // }, + // "maxItems": 5, + // "type": "array" + // }, + // "Name": { + // "description": "Name of a node in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // }, + // "Outputs": { + // "description": "List of node outputs in a flow", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Output of a node in a flow", + // "properties": { + // "Name": { + // "description": "Name of a node output in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // }, + // "Type": { + // "description": "Type of input/output for a node in a flow", + // "enum": [ + // "String", + // "Number", + // "Boolean", + // "Object", + // "Array" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "Type" + // ], + // "type": "object" + // }, + // "maxItems": 5, + // "type": "array" + // }, + // "Type": { + // "description": "Flow node types", + // "enum": [ + // "Input", + // "Output", + // "KnowledgeBase", + // "Condition", + // "Lex", + // "Prompt", + // "LambdaFunction" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "Type" + // ], + // "type": "object" + // }, + // "maxItems": 20, + // "type": "array" + // } + // }, + // "type": "object" + // } + "definition": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Connections + "connections": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Configuration + "configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Conditional + "conditional": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Condition + "condition": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a condition in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Conditional connection configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Data + "data": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SourceOutput + "source_output": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a node output in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TargetInput + "target_input": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a node input in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Data connection configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Connection configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a connection in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Source + "source": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a node in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Target + "target": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a node in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Connection type", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of connections", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Nodes + "nodes": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Configuration + "configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Condition + "condition": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Conditions + "conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Expression + "expression": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Expression for a condition in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a condition in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of conditions in a condition node", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Condition flow node configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Input + "input": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Description: "Input flow node configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: KnowledgeBase + "knowledge_base": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: KnowledgeBaseId + "knowledge_base_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Identifier of the KnowledgeBase", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ModelId + "model_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN or name of a Bedrock model.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Knowledge base flow node configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LambdaFunction + "lambda_function": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: LambdaArn + "lambda_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN of a Lambda.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Lambda function flow node configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Lex + "lex": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BotAliasArn + "bot_alias_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN of a Lex bot alias", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LocaleId + "locale_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Lex bot locale id", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Lex flow node configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Output + "output": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Description: "Output flow node configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Prompt + "prompt": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SourceConfiguration + "source_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Inline + "inline": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InferenceConfiguration + "inference_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaxTokens + "max_tokens": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Maximum length of output", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: StopSequences + "stop_sequences": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "List of stop sequences", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Temperature + "temperature": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Controls randomness, higher values increase diversity", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TopK + "top_k": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Sample from the k most likely next tokens", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TopP + "top_p": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Cumulative probability cutoff for token selection", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt model inference configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Model inference configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ModelId + "model_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN or name of a Bedrock model.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TemplateConfiguration + "template_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InputVariables + "input_variables": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for an input variable", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of input variables", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Text + "text": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Prompt content for String prompt template", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Configuration for text prompt template", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt template configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TemplateType + "template_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Prompt template type", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Inline prompt configuration for prompt node", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Resource + "resource": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PromptArn + "prompt_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN of a prompt resource possibly with a version", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Resource prompt configuration for prompt node", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt source configuration for prompt node", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt flow node configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Node configuration in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Inputs + "inputs": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Expression + "expression": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Expression for a node input in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a node input in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Type of input/output for a node in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of node inputs in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a node in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Outputs + "outputs": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a node output in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Type of input/output for a node in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of node outputs in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Flow node types", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of nodes in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Flow definition", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "Description of the flow version", + // "maxLength": 200, + // "minLength": 1, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Description of the flow version", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ExecutionRoleArn + // CloudFormation resource type schema: + // + // { + // "description": "ARN of a IAM role", + // "maxLength": 2048, + // "pattern": "^arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/(service-role/)?.+$", + // "type": "string" + // } + "execution_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN of a IAM role", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: FlowArn + // CloudFormation resource type schema: + // + // { + // "description": "Arn representation of the Flow", + // "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + // "type": "string" + // } + "flow_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Arn representation of the Flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: FlowId + // CloudFormation resource type schema: + // + // { + // "description": "Identifier for a Flow", + // "pattern": "^[0-9a-zA-Z]{10}$", + // "type": "string" + // } + "flow_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Identifier for a Flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "Name for the flow", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for the flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Status + // CloudFormation resource type schema: + // + // { + // "description": "Schema Type for Flow APIs", + // "enum": [ + // "Failed", + // "Prepared", + // "Preparing", + // "NotPrepared" + // ], + // "type": "string" + // } + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Schema Type for Flow APIs", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Version + // CloudFormation resource type schema: + // + // { + // "description": "Numerical Version.", + // "pattern": "^[0-9]{1,5}$", + // "type": "string" + // } + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Numerical Version.", + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::Bedrock::FlowVersion", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Bedrock::FlowVersion").WithTerraformTypeName("awscc_bedrock_flow_version") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "bot_alias_arn": "BotAliasArn", + "condition": "Condition", + "conditional": "Conditional", + "conditions": "Conditions", + "configuration": "Configuration", + "connections": "Connections", + "created_at": "CreatedAt", + "data": "Data", + "definition": "Definition", + "description": "Description", + "execution_role_arn": "ExecutionRoleArn", + "expression": "Expression", + "flow_arn": "FlowArn", + "flow_id": "FlowId", + "inference_configuration": "InferenceConfiguration", + "inline": "Inline", + "input": "Input", + "input_variables": "InputVariables", + "inputs": "Inputs", + "knowledge_base": "KnowledgeBase", + "knowledge_base_id": "KnowledgeBaseId", + "lambda_arn": "LambdaArn", + "lambda_function": "LambdaFunction", + "lex": "Lex", + "locale_id": "LocaleId", + "max_tokens": "MaxTokens", + "model_id": "ModelId", + "name": "Name", + "nodes": "Nodes", + "output": "Output", + "outputs": "Outputs", + "prompt": "Prompt", + "prompt_arn": "PromptArn", + "resource": "Resource", + "source": "Source", + "source_configuration": "SourceConfiguration", + "source_output": "SourceOutput", + "status": "Status", + "stop_sequences": "StopSequences", + "target": "Target", + "target_input": "TargetInput", + "temperature": "Temperature", + "template_configuration": "TemplateConfiguration", + "template_type": "TemplateType", + "text": "Text", + "top_k": "TopK", + "top_p": "TopP", + "type": "Type", + "version": "Version", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/bedrock/flow_version_singular_data_source_gen_test.go b/internal/aws/bedrock/flow_version_singular_data_source_gen_test.go new file mode 100644 index 000000000..f37982117 --- /dev/null +++ b/internal/aws/bedrock/flow_version_singular_data_source_gen_test.go @@ -0,0 +1,36 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package bedrock_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSBedrockFlowVersionDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Bedrock::FlowVersion", "awscc_bedrock_flow_version", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSBedrockFlowVersionDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Bedrock::FlowVersion", "awscc_bedrock_flow_version", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/bedrock/knowledge_base_singular_data_source_gen.go b/internal/aws/bedrock/knowledge_base_singular_data_source_gen.go index 7acb848cb..5be3ba3bb 100644 --- a/internal/aws/bedrock/knowledge_base_singular_data_source_gen.go +++ b/internal/aws/bedrock/knowledge_base_singular_data_source_gen.go @@ -102,8 +102,28 @@ func knowledgeBaseDataSource(ctx context.Context) (datasource.DataSource, error) // "description": "The ARN of the model used to create vector embeddings for the knowledge base.", // "maxLength": 2048, // "minLength": 20, - // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + // "pattern": "^(arn:aws(-[^:]+)?:[a-z0-9-]+:[a-z0-9-]{1,20}:[0-9]{0,12}:[a-zA-Z0-9-:/._+]+)$", // "type": "string" + // }, + // "EmbeddingModelConfiguration": { + // "additionalProperties": false, + // "description": "The embeddings model configuration details for the vector model used in Knowledge Base.", + // "properties": { + // "BedrockEmbeddingModelConfiguration": { + // "additionalProperties": false, + // "description": "The vector configuration details for the Bedrock embeddings model.", + // "properties": { + // "Dimensions": { + // "description": "The dimensions details for the vector configuration used on the Bedrock embeddings model.", + // "maximum": 4096, + // "minimum": 0, + // "type": "integer" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" // } // }, // "required": [ @@ -133,6 +153,25 @@ func knowledgeBaseDataSource(ctx context.Context) (datasource.DataSource, error) Description: "The ARN of the model used to create vector embeddings for the knowledge base.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: EmbeddingModelConfiguration + "embedding_model_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BedrockEmbeddingModelConfiguration + "bedrock_embedding_model_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Dimensions + "dimensions": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The dimensions details for the vector configuration used on the Bedrock embeddings model.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The vector configuration details for the Bedrock embeddings model.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The embeddings model configuration details for the vector model used in Knowledge Base.", + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "Contains details about the model used to create vector embeddings for the knowledge base.", Computed: true, @@ -218,9 +257,94 @@ func knowledgeBaseDataSource(ctx context.Context) (datasource.DataSource, error) // "required": [ // "RdsConfiguration" // ] + // }, + // { + // "required": [ + // "MongoDbAtlasConfiguration" + // ] // } // ], // "properties": { + // "MongoDbAtlasConfiguration": { + // "additionalProperties": false, + // "description": "Contains the storage configuration of the knowledge base in MongoDb Atlas Cloud.", + // "properties": { + // "CollectionName": { + // "description": "Name of the collection within MongoDB Atlas.", + // "maxLength": 63, + // "pattern": "^.*$", + // "type": "string" + // }, + // "CredentialsSecretArn": { + // "description": "The ARN of the secret that you created in AWS Secrets Manager that is linked to your Amazon Mongo database.", + // "pattern": "^arn:aws(|-cn|-us-gov):secretsmanager:[a-z0-9-]{1,20}:([0-9]{12}|):secret:[a-zA-Z0-9!/_+=.@-]{1,512}$", + // "type": "string" + // }, + // "DatabaseName": { + // "description": "Name of the database within MongoDB Atlas.", + // "maxLength": 63, + // "pattern": "^.*$", + // "type": "string" + // }, + // "Endpoint": { + // "description": "MongoDB Atlas endpoint.", + // "maxLength": 2048, + // "pattern": "^[a-zA-Z0-9_-]+\\.[a-zA-Z0-9_-]+\\.mongodb\\.net$", + // "type": "string" + // }, + // "EndpointServiceName": { + // "description": "MongoDB Atlas endpoint service name.", + // "maxLength": 255, + // "pattern": "^(?:arn:aws(?:-us-gov|-cn|-iso|-iso-[a-z])*:.+:.*:\\d+:.+/.+$|[a-zA-Z0-9*]+[a-zA-Z0-9._-]*)$", + // "type": "string" + // }, + // "FieldMapping": { + // "additionalProperties": false, + // "description": "Contains the names of the fields to which to map information about the vector store.", + // "properties": { + // "MetadataField": { + // "description": "The name of the field in which Amazon Bedrock stores metadata about the vector store.", + // "maxLength": 2048, + // "pattern": "^.*$", + // "type": "string" + // }, + // "TextField": { + // "description": "The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose.", + // "maxLength": 2048, + // "pattern": "^.*$", + // "type": "string" + // }, + // "VectorField": { + // "description": "The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources.", + // "maxLength": 2048, + // "pattern": "^.*$", + // "type": "string" + // } + // }, + // "required": [ + // "VectorField", + // "MetadataField", + // "TextField" + // ], + // "type": "object" + // }, + // "VectorIndexName": { + // "description": "Name of a MongoDB Atlas index.", + // "maxLength": 2048, + // "pattern": "^.*$", + // "type": "string" + // } + // }, + // "required": [ + // "Endpoint", + // "CredentialsSecretArn", + // "DatabaseName", + // "CollectionName", + // "VectorIndexName", + // "FieldMapping" + // ], + // "type": "object" + // }, // "OpensearchServerlessConfiguration": { // "additionalProperties": false, // "description": "Contains the storage configuration of the knowledge base in Amazon OpenSearch Service.", @@ -405,7 +529,8 @@ func knowledgeBaseDataSource(ctx context.Context) (datasource.DataSource, error) // "enum": [ // "OPENSEARCH_SERVERLESS", // "PINECONE", - // "RDS" + // "RDS", + // "MONGO_DB_ATLAS" // ], // "type": "string" // } @@ -417,6 +542,65 @@ func knowledgeBaseDataSource(ctx context.Context) (datasource.DataSource, error) // } "storage_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MongoDbAtlasConfiguration + "mongo_db_atlas_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CollectionName + "collection_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of the collection within MongoDB Atlas.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CredentialsSecretArn + "credentials_secret_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of the secret that you created in AWS Secrets Manager that is linked to your Amazon Mongo database.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DatabaseName + "database_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of the database within MongoDB Atlas.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Endpoint + "endpoint": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "MongoDB Atlas endpoint.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EndpointServiceName + "endpoint_service_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "MongoDB Atlas endpoint service name.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: FieldMapping + "field_mapping": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MetadataField + "metadata_field": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the field in which Amazon Bedrock stores metadata about the vector store.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TextField + "text_field": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: VectorField + "vector_field": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Contains the names of the fields to which to map information about the vector store.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: VectorIndexName + "vector_index_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a MongoDB Atlas index.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Contains the storage configuration of the knowledge base in MongoDb Atlas Cloud.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: OpensearchServerlessConfiguration "opensearch_serverless_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -609,37 +793,44 @@ func knowledgeBaseDataSource(ctx context.Context) (datasource.DataSource, error) opts = opts.WithCloudFormationTypeName("AWS::Bedrock::KnowledgeBase").WithTerraformTypeName("awscc_bedrock_knowledge_base") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "collection_arn": "CollectionArn", - "connection_string": "ConnectionString", - "created_at": "CreatedAt", - "credentials_secret_arn": "CredentialsSecretArn", - "database_name": "DatabaseName", - "description": "Description", - "embedding_model_arn": "EmbeddingModelArn", - "failure_reasons": "FailureReasons", - "field_mapping": "FieldMapping", - "knowledge_base_arn": "KnowledgeBaseArn", - "knowledge_base_configuration": "KnowledgeBaseConfiguration", - "knowledge_base_id": "KnowledgeBaseId", - "metadata_field": "MetadataField", - "name": "Name", - "namespace": "Namespace", - "opensearch_serverless_configuration": "OpensearchServerlessConfiguration", - "pinecone_configuration": "PineconeConfiguration", - "primary_key_field": "PrimaryKeyField", - "rds_configuration": "RdsConfiguration", - "resource_arn": "ResourceArn", - "role_arn": "RoleArn", - "status": "Status", - "storage_configuration": "StorageConfiguration", - "table_name": "TableName", - "tags": "Tags", - "text_field": "TextField", - "type": "Type", - "updated_at": "UpdatedAt", - "vector_field": "VectorField", - "vector_index_name": "VectorIndexName", - "vector_knowledge_base_configuration": "VectorKnowledgeBaseConfiguration", + "bedrock_embedding_model_configuration": "BedrockEmbeddingModelConfiguration", + "collection_arn": "CollectionArn", + "collection_name": "CollectionName", + "connection_string": "ConnectionString", + "created_at": "CreatedAt", + "credentials_secret_arn": "CredentialsSecretArn", + "database_name": "DatabaseName", + "description": "Description", + "dimensions": "Dimensions", + "embedding_model_arn": "EmbeddingModelArn", + "embedding_model_configuration": "EmbeddingModelConfiguration", + "endpoint": "Endpoint", + "endpoint_service_name": "EndpointServiceName", + "failure_reasons": "FailureReasons", + "field_mapping": "FieldMapping", + "knowledge_base_arn": "KnowledgeBaseArn", + "knowledge_base_configuration": "KnowledgeBaseConfiguration", + "knowledge_base_id": "KnowledgeBaseId", + "metadata_field": "MetadataField", + "mongo_db_atlas_configuration": "MongoDbAtlasConfiguration", + "name": "Name", + "namespace": "Namespace", + "opensearch_serverless_configuration": "OpensearchServerlessConfiguration", + "pinecone_configuration": "PineconeConfiguration", + "primary_key_field": "PrimaryKeyField", + "rds_configuration": "RdsConfiguration", + "resource_arn": "ResourceArn", + "role_arn": "RoleArn", + "status": "Status", + "storage_configuration": "StorageConfiguration", + "table_name": "TableName", + "tags": "Tags", + "text_field": "TextField", + "type": "Type", + "updated_at": "UpdatedAt", + "vector_field": "VectorField", + "vector_index_name": "VectorIndexName", + "vector_knowledge_base_configuration": "VectorKnowledgeBaseConfiguration", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/bedrock/prompt_plural_data_source_gen.go b/internal/aws/bedrock/prompt_plural_data_source_gen.go new file mode 100644 index 000000000..08ff42f51 --- /dev/null +++ b/internal/aws/bedrock/prompt_plural_data_source_gen.go @@ -0,0 +1,54 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package bedrock + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_bedrock_prompts", promptsDataSource) +} + +// promptsDataSource returns the Terraform awscc_bedrock_prompts data source. +// This Terraform data source corresponds to the CloudFormation AWS::Bedrock::Prompt resource. +func promptsDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ + "id": schema.StringAttribute{ + Description: "Uniquely identifies the data source.", + Computed: true, + }, + "ids": schema.SetAttribute{ + Description: "Set of Resource Identifiers.", + ElementType: types.StringType, + Computed: true, + }, + } + + schema := schema.Schema{ + Description: "Plural Data Source schema for AWS::Bedrock::Prompt", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Bedrock::Prompt").WithTerraformTypeName("awscc_bedrock_prompts") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/bedrock/prompt_plural_data_source_gen_test.go b/internal/aws/bedrock/prompt_plural_data_source_gen_test.go new file mode 100644 index 000000000..234618e87 --- /dev/null +++ b/internal/aws/bedrock/prompt_plural_data_source_gen_test.go @@ -0,0 +1,27 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package bedrock_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSBedrockPromptsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Bedrock::Prompt", "awscc_bedrock_prompts", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet(fmt.Sprintf("data.%s", td.ResourceName), "ids.#"), + ), + }, + }) +} diff --git a/internal/aws/bedrock/prompt_singular_data_source_gen.go b/internal/aws/bedrock/prompt_singular_data_source_gen.go new file mode 100644 index 000000000..13d4524ba --- /dev/null +++ b/internal/aws/bedrock/prompt_singular_data_source_gen.go @@ -0,0 +1,491 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package bedrock + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework-timetypes/timetypes" + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_bedrock_prompt", promptDataSource) +} + +// promptDataSource returns the Terraform awscc_bedrock_prompt data source. +// This Terraform data source corresponds to the CloudFormation AWS::Bedrock::Prompt resource. +func promptDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "description": "ARN of a prompt resource possibly with a version", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10})$", + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN of a prompt resource possibly with a version", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CreatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp.", + // "format": "date-time", + // "type": "string" + // } + "created_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CustomerEncryptionKeyArn + // CloudFormation resource type schema: + // + // { + // "description": "A KMS key ARN", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", + // "type": "string" + // } + "customer_encryption_key_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A KMS key ARN", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DefaultVariant + // CloudFormation resource type schema: + // + // { + // "description": "Name for a variant.", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + "default_variant": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a variant.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "Name for a prompt resource.", + // "maxLength": 200, + // "minLength": 1, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a prompt resource.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "description": "Identifier for a Prompt", + // "pattern": "^[0-9a-zA-Z]{10}$", + // "type": "string" + // } + "prompt_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Identifier for a Prompt", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "Name for a prompt resource.", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a prompt resource.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "A map of tag keys and values", + // "patternProperties": { + // "": { + // "description": "Value of a tag", + // "maxLength": 256, + // "minLength": 0, + // "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + // "type": "string" + // } + // }, + // "type": "object" + // } + "tags": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A map of tag keys and values", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: UpdatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp.", + // "format": "date-time", + // "type": "string" + // } + "updated_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Variants + // CloudFormation resource type schema: + // + // { + // "description": "List of prompt variants", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Prompt variant", + // "properties": { + // "InferenceConfiguration": { + // "description": "Model inference configuration", + // "properties": { + // "Text": { + // "additionalProperties": false, + // "description": "Prompt model inference configuration", + // "properties": { + // "MaxTokens": { + // "description": "Maximum length of output", + // "maximum": 4096, + // "minimum": 0, + // "type": "number" + // }, + // "StopSequences": { + // "description": "List of stop sequences", + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "maxItems": 4, + // "minItems": 0, + // "type": "array" + // }, + // "Temperature": { + // "description": "Controls randomness, higher values increase diversity", + // "maximum": 1, + // "minimum": 0, + // "type": "number" + // }, + // "TopK": { + // "description": "Sample from the k most likely next tokens", + // "maximum": 500, + // "minimum": 0, + // "type": "number" + // }, + // "TopP": { + // "description": "Cumulative probability cutoff for token selection", + // "maximum": 1, + // "minimum": 0, + // "type": "number" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "ModelId": { + // "description": "ARN or name of a Bedrock model.", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + // "type": "string" + // }, + // "Name": { + // "description": "Name for a variant.", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // }, + // "TemplateConfiguration": { + // "description": "Prompt template configuration", + // "properties": { + // "Text": { + // "additionalProperties": false, + // "description": "Configuration for text prompt template", + // "properties": { + // "InputVariables": { + // "description": "List of input variables", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Input variable", + // "properties": { + // "Name": { + // "description": "Name for an input variable", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "maxItems": 5, + // "minItems": 0, + // "type": "array" + // }, + // "Text": { + // "description": "Prompt content for String prompt template", + // "maxLength": 200000, + // "minLength": 1, + // "type": "string" + // }, + // "TextS3Location": { + // "additionalProperties": false, + // "description": "The identifier for the S3 resource.", + // "properties": { + // "Bucket": { + // "description": "A bucket in S3", + // "maxLength": 63, + // "minLength": 3, + // "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + // "type": "string" + // }, + // "Key": { + // "description": "A object key in S3", + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // }, + // "Version": { + // "description": "The version of the the S3 object to use", + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Bucket", + // "Key" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "TemplateType": { + // "description": "Prompt template type", + // "enum": [ + // "TEXT" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "TemplateType" + // ], + // "type": "object" + // }, + // "maxItems": 3, + // "minItems": 0, + // "type": "array" + // } + "variants": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InferenceConfiguration + "inference_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaxTokens + "max_tokens": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Maximum length of output", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: StopSequences + "stop_sequences": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "List of stop sequences", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Temperature + "temperature": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Controls randomness, higher values increase diversity", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TopK + "top_k": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Sample from the k most likely next tokens", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TopP + "top_p": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Cumulative probability cutoff for token selection", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt model inference configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Model inference configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ModelId + "model_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN or name of a Bedrock model.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a variant.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TemplateConfiguration + "template_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InputVariables + "input_variables": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for an input variable", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of input variables", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Text + "text": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Prompt content for String prompt template", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TextS3Location + "text_s3_location": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Bucket + "bucket": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A bucket in S3", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A object key in S3", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Version + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The version of the the S3 object to use", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The identifier for the S3 resource.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Configuration for text prompt template", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt template configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TemplateType + "template_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Prompt template type", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of prompt variants", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Version + // CloudFormation resource type schema: + // + // { + // "description": "Draft Version.", + // "maxLength": 5, + // "minLength": 5, + // "pattern": "^DRAFT$", + // "type": "string" + // } + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Draft Version.", + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::Bedrock::Prompt", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Bedrock::Prompt").WithTerraformTypeName("awscc_bedrock_prompt") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "arn": "Arn", + "bucket": "Bucket", + "created_at": "CreatedAt", + "customer_encryption_key_arn": "CustomerEncryptionKeyArn", + "default_variant": "DefaultVariant", + "description": "Description", + "inference_configuration": "InferenceConfiguration", + "input_variables": "InputVariables", + "key": "Key", + "max_tokens": "MaxTokens", + "model_id": "ModelId", + "name": "Name", + "prompt_id": "Id", + "stop_sequences": "StopSequences", + "tags": "Tags", + "temperature": "Temperature", + "template_configuration": "TemplateConfiguration", + "template_type": "TemplateType", + "text": "Text", + "text_s3_location": "TextS3Location", + "top_k": "TopK", + "top_p": "TopP", + "updated_at": "UpdatedAt", + "variants": "Variants", + "version": "Version", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/bedrock/prompt_singular_data_source_gen_test.go b/internal/aws/bedrock/prompt_singular_data_source_gen_test.go new file mode 100644 index 000000000..8ff1f3fed --- /dev/null +++ b/internal/aws/bedrock/prompt_singular_data_source_gen_test.go @@ -0,0 +1,36 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package bedrock_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSBedrockPromptDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Bedrock::Prompt", "awscc_bedrock_prompt", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSBedrockPromptDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Bedrock::Prompt", "awscc_bedrock_prompt", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/bedrock/prompt_version_singular_data_source_gen.go b/internal/aws/bedrock/prompt_version_singular_data_source_gen.go new file mode 100644 index 000000000..24f9a03a2 --- /dev/null +++ b/internal/aws/bedrock/prompt_version_singular_data_source_gen.go @@ -0,0 +1,415 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package bedrock + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework-timetypes/timetypes" + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_bedrock_prompt_version", promptVersionDataSource) +} + +// promptVersionDataSource returns the Terraform awscc_bedrock_prompt_version data source. +// This Terraform data source corresponds to the CloudFormation AWS::Bedrock::PromptVersion resource. +func promptVersionDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "description": "ARN of a prompt version resource", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}:[0-9]{1,20})$", + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN of a prompt version resource", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CreatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp.", + // "format": "date-time", + // "type": "string" + // } + "created_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DefaultVariant + // CloudFormation resource type schema: + // + // { + // "description": "Name for a variant.", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + "default_variant": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a variant.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "Description for a prompt version resource.", + // "maxLength": 200, + // "minLength": 1, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Description for a prompt version resource.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "Name for a prompt resource.", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a prompt resource.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PromptArn + // CloudFormation resource type schema: + // + // { + // "description": "ARN of a prompt resource possibly with a version", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10})$", + // "type": "string" + // } + "prompt_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN of a prompt resource possibly with a version", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PromptId + // CloudFormation resource type schema: + // + // { + // "description": "Identifier for a Prompt", + // "pattern": "^[0-9a-zA-Z]{10}$", + // "type": "string" + // } + "prompt_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Identifier for a Prompt", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: UpdatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp.", + // "format": "date-time", + // "type": "string" + // } + "updated_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Variants + // CloudFormation resource type schema: + // + // { + // "description": "List of prompt variants", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Prompt variant", + // "properties": { + // "InferenceConfiguration": { + // "description": "Model inference configuration", + // "properties": { + // "Text": { + // "additionalProperties": false, + // "description": "Prompt model inference configuration", + // "properties": { + // "MaxTokens": { + // "description": "Maximum length of output", + // "maximum": 4096, + // "minimum": 0, + // "type": "number" + // }, + // "StopSequences": { + // "description": "List of stop sequences", + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "maxItems": 4, + // "minItems": 0, + // "type": "array" + // }, + // "Temperature": { + // "description": "Controls randomness, higher values increase diversity", + // "maximum": 1, + // "minimum": 0, + // "type": "number" + // }, + // "TopK": { + // "description": "Sample from the k most likely next tokens", + // "maximum": 500, + // "minimum": 0, + // "type": "number" + // }, + // "TopP": { + // "description": "Cumulative probability cutoff for token selection", + // "maximum": 1, + // "minimum": 0, + // "type": "number" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "ModelId": { + // "description": "ARN or name of a Bedrock model.", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + // "type": "string" + // }, + // "Name": { + // "description": "Name for a variant.", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // }, + // "TemplateConfiguration": { + // "description": "Prompt template configuration", + // "properties": { + // "Text": { + // "additionalProperties": false, + // "description": "Configuration for text prompt template", + // "properties": { + // "InputVariables": { + // "description": "List of input variables", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Input variable", + // "properties": { + // "Name": { + // "description": "Name for an input variable", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "maxItems": 5, + // "minItems": 1, + // "type": "array" + // }, + // "Text": { + // "description": "Prompt content for String prompt template", + // "maxLength": 200000, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Text" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "TemplateType": { + // "description": "Prompt template type", + // "enum": [ + // "TEXT" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "TemplateType" + // ], + // "type": "object" + // }, + // "maxItems": 3, + // "minItems": 1, + // "type": "array" + // } + "variants": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InferenceConfiguration + "inference_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaxTokens + "max_tokens": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Maximum length of output", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: StopSequences + "stop_sequences": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "List of stop sequences", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Temperature + "temperature": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Controls randomness, higher values increase diversity", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TopK + "top_k": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Sample from the k most likely next tokens", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TopP + "top_p": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Cumulative probability cutoff for token selection", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt model inference configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Model inference configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ModelId + "model_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN or name of a Bedrock model.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a variant.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TemplateConfiguration + "template_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InputVariables + "input_variables": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for an input variable", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of input variables", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Text + "text": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Prompt content for String prompt template", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Configuration for text prompt template", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt template configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TemplateType + "template_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Prompt template type", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of prompt variants", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Version + // CloudFormation resource type schema: + // + // { + // "description": "Version.", + // "maxLength": 5, + // "minLength": 1, + // "pattern": "^(DRAFT|[0-9]{0,4}[1-9][0-9]{0,4})$", + // "type": "string" + // } + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Version.", + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::Bedrock::PromptVersion", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Bedrock::PromptVersion").WithTerraformTypeName("awscc_bedrock_prompt_version") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "arn": "Arn", + "created_at": "CreatedAt", + "default_variant": "DefaultVariant", + "description": "Description", + "inference_configuration": "InferenceConfiguration", + "input_variables": "InputVariables", + "max_tokens": "MaxTokens", + "model_id": "ModelId", + "name": "Name", + "prompt_arn": "PromptArn", + "prompt_id": "PromptId", + "stop_sequences": "StopSequences", + "temperature": "Temperature", + "template_configuration": "TemplateConfiguration", + "template_type": "TemplateType", + "text": "Text", + "top_k": "TopK", + "top_p": "TopP", + "updated_at": "UpdatedAt", + "variants": "Variants", + "version": "Version", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/bedrock/prompt_version_singular_data_source_gen_test.go b/internal/aws/bedrock/prompt_version_singular_data_source_gen_test.go new file mode 100644 index 000000000..587e3c3b5 --- /dev/null +++ b/internal/aws/bedrock/prompt_version_singular_data_source_gen_test.go @@ -0,0 +1,36 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package bedrock_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSBedrockPromptVersionDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Bedrock::PromptVersion", "awscc_bedrock_prompt_version", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSBedrockPromptVersionDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Bedrock::PromptVersion", "awscc_bedrock_prompt_version", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/dms/replication_config_singular_data_source_gen_test.go b/internal/aws/dms/replication_config_singular_data_source_gen_test.go index 0fd265ad7..85a85aa79 100644 --- a/internal/aws/dms/replication_config_singular_data_source_gen_test.go +++ b/internal/aws/dms/replication_config_singular_data_source_gen_test.go @@ -6,7 +6,6 @@ package dms_test import ( - "fmt" "regexp" "testing" @@ -19,11 +18,8 @@ func TestAccAWSDMSReplicationConfigDataSource_basic(t *testing.T) { td.DataSourceTest(t, []resource.TestStep{ { - Config: td.DataSourceWithEmptyResourceConfig(), - Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttrPair(fmt.Sprintf("data.%s", td.ResourceName), "id", td.ResourceName, "id"), - resource.TestCheckResourceAttrPair(fmt.Sprintf("data.%s", td.ResourceName), "arn", td.ResourceName, "arn"), - ), + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), }, }) } diff --git a/internal/aws/ec2/eip_association_singular_data_source_gen.go b/internal/aws/ec2/eip_association_singular_data_source_gen.go index c46e7156b..df69a769e 100644 --- a/internal/aws/ec2/eip_association_singular_data_source_gen.go +++ b/internal/aws/ec2/eip_association_singular_data_source_gen.go @@ -26,66 +26,66 @@ func eIPAssociationDataSource(ctx context.Context) (datasource.DataSource, error // CloudFormation resource type schema: // // { - // "description": "The allocation ID. This is required for EC2-VPC.", + // "description": "The allocation ID. This is required.", // "type": "string" // } "allocation_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The allocation ID. This is required for EC2-VPC.", + Description: "The allocation ID. This is required.", Computed: true, }, /*END ATTRIBUTE*/ // Property: EIP // CloudFormation resource type schema: // // { - // "description": "The Elastic IP address to associate with the instance.", + // "description": "", // "type": "string" // } "eip": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Elastic IP address to associate with the instance.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Id // CloudFormation resource type schema: // // { - // "description": "Composite ID of non-empty properties, to determine the identification.", + // "description": "", // "type": "string" // } "eip_association_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Composite ID of non-empty properties, to determine the identification.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: InstanceId // CloudFormation resource type schema: // // { - // "description": "The ID of the instance.", + // "description": "The ID of the instance. The instance must have exactly one attached network interface. You can specify either the instance ID or the network interface ID, but not both.", // "type": "string" // } "instance_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ID of the instance.", + Description: "The ID of the instance. The instance must have exactly one attached network interface. You can specify either the instance ID or the network interface ID, but not both.", Computed: true, }, /*END ATTRIBUTE*/ // Property: NetworkInterfaceId // CloudFormation resource type schema: // // { - // "description": "The ID of the network interface.", + // "description": "The ID of the network interface. If the instance has more than one network interface, you must specify a network interface ID.\n You can specify either the instance ID or the network interface ID, but not both.", // "type": "string" // } "network_interface_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ID of the network interface.", + Description: "The ID of the network interface. If the instance has more than one network interface, you must specify a network interface ID.\n You can specify either the instance ID or the network interface ID, but not both.", Computed: true, }, /*END ATTRIBUTE*/ // Property: PrivateIpAddress // CloudFormation resource type schema: // // { - // "description": "The primary or secondary private IP address to associate with the Elastic IP address.", + // "description": "The primary or secondary private IP address to associate with the Elastic IP address. If no private IP address is specified, the Elastic IP address is associated with the primary private IP address.", // "type": "string" // } "private_ip_address": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The primary or secondary private IP address to associate with the Elastic IP address.", + Description: "The primary or secondary private IP address to associate with the Elastic IP address. If no private IP address is specified, the Elastic IP address is associated with the primary private IP address.", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/ec2/launch_template_singular_data_source_gen.go b/internal/aws/ec2/launch_template_singular_data_source_gen.go index 5b47164cb..8f6201ebb 100644 --- a/internal/aws/ec2/launch_template_singular_data_source_gen.go +++ b/internal/aws/ec2/launch_template_singular_data_source_gen.go @@ -143,7 +143,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // }, // "CpuOptions": { // "additionalProperties": false, - // "description": "The CPU options for the instance. For more information, see [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon Elastic Compute Cloud User Guide*.", + // "description": "The CPU options for the instance. For more information, see [Optimize CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon EC2 User Guide*.", // "properties": { // "AmdSevSnp": { // "description": "Indicates whether to enable the instance for AMD SEV-SNP. AMD SEV-SNP is supported with M6a, R6a, and C6a instance types only. For more information, see [AMD SEV-SNP](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sev-snp.html).", @@ -176,7 +176,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // "type": "object" // }, // "DisableApiStop": { - // "description": "Indicates whether to enable the instance for stop protection. For more information, see [Stop protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection) in the *Amazon Elastic Compute Cloud User Guide*.", + // "description": "Indicates whether to enable the instance for stop protection. For more information, see [Enable stop protection for your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-stop-protection.html) in the *Amazon EC2 User Guide*.", // "type": "boolean" // }, // "DisableApiTermination": { @@ -194,7 +194,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // "description": "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.\n Specifies a specification for an Elastic GPU for an Amazon EC2 launch template.\n ``ElasticGpuSpecification`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).", // "properties": { // "Type": { - // "description": "The type of Elastic Graphics accelerator. For more information about the values to specify for ``Type``, see [Elastic Graphics Basics](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html#elastic-graphics-basics), specifically the Elastic Graphics accelerator column, in the *Amazon Elastic Compute Cloud User Guide for Windows Instances*.", + // "description": "The type of Elastic Graphics accelerator.", // "type": "string" // } // }, @@ -236,7 +236,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // }, // "HibernationOptions": { // "additionalProperties": false, - // "description": "Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon Elastic Compute Cloud User Guide*.", + // "description": "Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your Amazon EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon EC2 User Guide*.", // "properties": { // "Configured": { // "description": "If you set this parameter to ``true``, the instance is enabled for hibernation.\n Default: ``false``", @@ -433,7 +433,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // "uniqueItems": false // }, // "MaxSpotPriceAsPercentageOfOptimalOnDemandPrice": { - // "description": "[Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price.\n Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``.", + // "description": "[Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price.\n Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``.", // "type": "integer" // }, // "MemoryGiBPerVCpu": { @@ -542,7 +542,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // "type": "object" // }, // "InstanceType": { - // "description": "The instance type. 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*.\n If you specify ``InstanceType``, you can't specify ``InstanceRequirements``.", + // "description": "The instance type. For more information, see [Amazon EC2 instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*.\n If you specify ``InstanceType``, you can't specify ``InstanceRequirements``.", // "type": "string" // }, // "KernelId": { @@ -582,7 +582,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // }, // "MetadataOptions": { // "additionalProperties": false, - // "description": "The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon Elastic Compute Cloud User Guide*.", + // "description": "The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon EC2 User Guide*.", // "properties": { // "HttpEndpoint": { // "description": "Enables or disables the HTTP metadata endpoint on your instances. If the parameter is not specified, the default state is ``enabled``.\n If you specify a value of ``disabled``, you will not be able to access your instance metadata.", @@ -694,7 +694,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // "uniqueItems": false // }, // "InterfaceType": { - // "description": "The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon Elastic Compute Cloud User Guide*.\n If you are not creating an EFA, specify ``interface`` or omit this parameter.\n Valid values: ``interface`` | ``efa``", + // "description": "The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon EC2 User Guide*.\n If you are not creating an EFA, specify ``interface`` or omit this parameter.\n Valid values: ``interface`` | ``efa``", // "type": "string" // }, // "Ipv4PrefixCount": { @@ -708,7 +708,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // "description": "Specifies an IPv4 prefix for a network interface.\n ``Ipv4PrefixSpecification`` is a property of [AWS::EC2::LaunchTemplate NetworkInterface](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html).", // "properties": { // "Ipv4Prefix": { - // "description": "The IPv4 prefix. For information, see [Assigning prefixes to Amazon EC2 network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon Elastic Compute Cloud User Guide*.", + // "description": "The IPv4 prefix. For information, see [Assigning prefixes to network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon EC2 User Guide*.", // "type": "string" // } // }, @@ -870,7 +870,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // "type": "object" // }, // "RamDiskId": { - // "description": "The ID of the RAM disk.\n We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon Elastic Compute Cloud User Guide*.", + // "description": "The ID of the RAM disk.\n We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide*.", // "type": "string" // }, // "SecurityGroupIds": { @@ -896,7 +896,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // "description": "Specifies the tags to apply to a resource when the resource is created for the launch template.\n ``TagSpecification`` is a property type of [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications). [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications) is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).", // "properties": { // "ResourceType": { - // "description": "The type of resource to tag.\n Valid Values lists all resource types for Amazon EC2 that can be tagged. When you create a launch template, you can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume.\n To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).", + // "description": "The type of resource to tag. You can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume.\n To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).", // "type": "string" // }, // "Tags": { @@ -930,7 +930,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // "uniqueItems": false // }, // "UserData": { - // "description": "The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Linux instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) (Linux) or [Work with instance user data](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instancedata-add-user-data.html) (Windows) in the *Amazon Elastic Compute Cloud User Guide*.\n If you are creating the launch template for use with BATCH, the user data must be provided in the [MIME multi-part archive format](https://docs.aws.amazon.com/https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *User Guide*.", + // "description": "The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Amazon EC2 instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) in the *Amazon EC2 User Guide*.\n If you are creating the launch template for use with BATCH, the user data must be provided in the [MIME multi-part archive format](https://docs.aws.amazon.com/https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *User Guide*.", // "type": "string" // } // }, @@ -1057,7 +1057,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The CPU options for the instance. For more information, see [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon Elastic Compute Cloud User Guide*.", + Description: "The CPU options for the instance. For more information, see [Optimize CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon EC2 User Guide*.", Computed: true, }, /*END ATTRIBUTE*/ // Property: CreditSpecification @@ -1074,7 +1074,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error }, /*END ATTRIBUTE*/ // Property: DisableApiStop "disable_api_stop": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Indicates whether to enable the instance for stop protection. For more information, see [Stop protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection) in the *Amazon Elastic Compute Cloud User Guide*.", + Description: "Indicates whether to enable the instance for stop protection. For more information, see [Enable stop protection for your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-stop-protection.html) in the *Amazon EC2 User Guide*.", Computed: true, }, /*END ATTRIBUTE*/ // Property: DisableApiTermination @@ -1093,7 +1093,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Type "type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of Elastic Graphics accelerator. For more information about the values to specify for ``Type``, see [Elastic Graphics Basics](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html#elastic-graphics-basics), specifically the Elastic Graphics accelerator column, in the *Amazon Elastic Compute Cloud User Guide for Windows Instances*.", + Description: "The type of Elastic Graphics accelerator.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -1141,7 +1141,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon Elastic Compute Cloud User Guide*.", + Description: "Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your Amazon EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon EC2 User Guide*.", Computed: true, }, /*END ATTRIBUTE*/ // Property: IamInstanceProfile @@ -1334,7 +1334,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error }, /*END ATTRIBUTE*/ // Property: MaxSpotPriceAsPercentageOfOptimalOnDemandPrice "max_spot_price_as_percentage_of_optimal_on_demand_price": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "[Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price.\n Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``.", + Description: "[Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price.\n Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: MemoryGiBPerVCpu @@ -1460,7 +1460,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error }, /*END ATTRIBUTE*/ // Property: InstanceType "instance_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The instance type. 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*.\n If you specify ``InstanceType``, you can't specify ``InstanceRequirements``.", + Description: "The instance type. For more information, see [Amazon EC2 instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*.\n If you specify ``InstanceType``, you can't specify ``InstanceRequirements``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: KernelId @@ -1528,7 +1528,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon Elastic Compute Cloud User Guide*.", + Description: "The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon EC2 User Guide*.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Monitoring @@ -1626,7 +1626,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error }, /*END ATTRIBUTE*/ // Property: InterfaceType "interface_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon Elastic Compute Cloud User Guide*.\n If you are not creating an EFA, specify ``interface`` or omit this parameter.\n Valid values: ``interface`` | ``efa``", + Description: "The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon EC2 User Guide*.\n If you are not creating an EFA, specify ``interface`` or omit this parameter.\n Valid values: ``interface`` | ``efa``", Computed: true, }, /*END ATTRIBUTE*/ // Property: Ipv4PrefixCount @@ -1640,7 +1640,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Ipv4Prefix "ipv_4_prefix": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The IPv4 prefix. For information, see [Assigning prefixes to Amazon EC2 network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon Elastic Compute Cloud User Guide*.", + Description: "The IPv4 prefix. For information, see [Assigning prefixes to network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon EC2 User Guide*.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -1816,7 +1816,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error }, /*END ATTRIBUTE*/ // Property: RamDiskId "ram_disk_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ID of the RAM disk.\n We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon Elastic Compute Cloud User Guide*.", + Description: "The ID of the RAM disk.\n We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide*.", Computed: true, }, /*END ATTRIBUTE*/ // Property: SecurityGroupIds @@ -1837,7 +1837,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: ResourceType "resource_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of resource to tag.\n Valid Values lists all resource types for Amazon EC2 that can be tagged. When you create a launch template, you can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume.\n To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).", + Description: "The type of resource to tag. You can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume.\n To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).", Computed: true, }, /*END ATTRIBUTE*/ // Property: Tags @@ -1866,7 +1866,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error }, /*END ATTRIBUTE*/ // Property: UserData "user_data": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Linux instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) (Linux) or [Work with instance user data](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instancedata-add-user-data.html) (Windows) in the *Amazon Elastic Compute Cloud User Guide*.\n If you are creating the launch template for use with BATCH, the user data must be provided in the [MIME multi-part archive format](https://docs.aws.amazon.com/https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *User Guide*.", + Description: "The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Amazon EC2 instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) in the *Amazon EC2 User Guide*.\n If you are creating the launch template for use with BATCH, the user data must be provided in the [MIME multi-part archive format](https://docs.aws.amazon.com/https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *User Guide*.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -1905,7 +1905,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // "description": "Specifies the tags to apply to the launch template during creation.\n ``LaunchTemplateTagSpecification`` is a property of [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html).", // "properties": { // "ResourceType": { - // "description": "The type of resource. To tag the launch template, ``ResourceType`` must be ``launch-template``.", + // "description": "The type of resource. To tag a launch template, ``ResourceType`` must be ``launch-template``.", // "type": "string" // }, // "Tags": { @@ -1943,7 +1943,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: ResourceType "resource_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of resource. To tag the launch template, ``ResourceType`` must be ``launch-template``.", + Description: "The type of resource. To tag a launch template, ``ResourceType`` must be ``launch-template``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Tags diff --git a/internal/aws/ec2/network_interface_attachment_singular_data_source_gen.go b/internal/aws/ec2/network_interface_attachment_singular_data_source_gen.go index 7ae32f750..a4a677e5a 100644 --- a/internal/aws/ec2/network_interface_attachment_singular_data_source_gen.go +++ b/internal/aws/ec2/network_interface_attachment_singular_data_source_gen.go @@ -26,11 +26,11 @@ func networkInterfaceAttachmentDataSource(ctx context.Context) (datasource.DataS // CloudFormation resource type schema: // // { - // "description": "The ID of the network interface attachment.", + // "description": "", // "type": "string" // } "attachment_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ID of the network interface attachment.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: DeleteOnTermination @@ -38,22 +38,22 @@ func networkInterfaceAttachmentDataSource(ctx context.Context) (datasource.DataS // // { // "default": true, - // "description": "Whether to delete the network interface when the instance terminates. By default, this value is set to true.", + // "description": "Whether to delete the network interface when the instance terminates. By default, this value is set to ``true``.", // "type": "boolean" // } "delete_on_termination": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Whether to delete the network interface when the instance terminates. By default, this value is set to true.", + Description: "Whether to delete the network interface when the instance terminates. By default, this value is set to ``true``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: DeviceIndex // CloudFormation resource type schema: // // { - // "description": "The network interface's position in the attachment order. For example, the first attached network interface has a DeviceIndex of 0.", + // "description": "The network interface's position in the attachment order. For example, the first attached network interface has a ``DeviceIndex`` of 0.", // "type": "string" // } "device_index": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The network interface's position in the attachment order. For example, the first attached network interface has a DeviceIndex of 0.", + Description: "The network interface's position in the attachment order. For example, the first attached network interface has a ``DeviceIndex`` of 0.", Computed: true, }, /*END ATTRIBUTE*/ // Property: EnaSrdSpecification @@ -61,12 +61,15 @@ func networkInterfaceAttachmentDataSource(ctx context.Context) (datasource.DataS // // { // "additionalProperties": false, + // "description": "Configures ENA Express for the network interface that this action attaches to the instance.", // "properties": { // "EnaSrdEnabled": { + // "description": "Indicates whether ENA Express is enabled for the network interface.", // "type": "boolean" // }, // "EnaSrdUdpSpecification": { // "additionalProperties": false, + // "description": "Configures ENA Express for UDP network traffic.", // "properties": { // "EnaSrdUdpEnabled": { // "type": "boolean" @@ -81,7 +84,8 @@ func networkInterfaceAttachmentDataSource(ctx context.Context) (datasource.DataS Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: EnaSrdEnabled "ena_srd_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "Indicates whether ENA Express is enabled for the network interface.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: EnaSrdUdpSpecification "ena_srd_udp_specification": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ @@ -91,10 +95,12 @@ func networkInterfaceAttachmentDataSource(ctx context.Context) (datasource.DataS Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Computed: true, + Description: "Configures ENA Express for UDP network traffic.", + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Computed: true, + Description: "Configures ENA Express for the network interface that this action attaches to the instance.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: InstanceId // CloudFormation resource type schema: diff --git a/internal/aws/ecr/repository_creation_template_singular_data_source_gen.go b/internal/aws/ecr/repository_creation_template_singular_data_source_gen.go index 41d5f6506..ef24b4752 100644 --- a/internal/aws/ecr/repository_creation_template_singular_data_source_gen.go +++ b/internal/aws/ecr/repository_creation_template_singular_data_source_gen.go @@ -56,6 +56,19 @@ func repositoryCreationTemplateDataSource(ctx context.Context) (datasource.DataS Description: "Create timestamp of the template.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: CustomRoleArn + // CloudFormation resource type schema: + // + // { + // "description": "The ARN of the role to be assumed by ECR. This role must be in the same account as the registry that you are configuring.", + // "maxLength": 2048, + // "pattern": "^arn:aws[-a-z0-9]*:iam::[0-9]{12}:role/[A-Za-z0-9+=,-.@_]*$", + // "type": "string" + // } + "custom_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of the role to be assumed by ECR. This role must be in the same account as the registry that you are configuring.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Description // CloudFormation resource type schema: // @@ -246,6 +259,7 @@ func repositoryCreationTemplateDataSource(ctx context.Context) (datasource.DataS opts = opts.WithAttributeNameMap(map[string]string{ "applied_for": "AppliedFor", "created_at": "CreatedAt", + "custom_role_arn": "CustomRoleArn", "description": "Description", "encryption_configuration": "EncryptionConfiguration", "encryption_type": "EncryptionType", diff --git a/internal/aws/ecr/repository_singular_data_source_gen.go b/internal/aws/ecr/repository_singular_data_source_gen.go index b69f018b3..d94e9dcb4 100644 --- a/internal/aws/ecr/repository_singular_data_source_gen.go +++ b/internal/aws/ecr/repository_singular_data_source_gen.go @@ -52,7 +52,7 @@ func repositoryDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "The encryption configuration for the repository. This determines how the contents of your repository are encrypted at rest.", // "properties": { // "EncryptionType": { - // "description": "The encryption type to use.\n If you use the ``KMS`` encryption type, the contents of the repository will be encrypted using server-side encryption with KMSlong key stored in KMS. When you use KMS to encrypt your data, you can either use the default AWS managed KMS key for Amazon ECR, or specify your own KMS key, which you already created. For more information, see [Protecting data using server-side encryption with an key stored in (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*.\n 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 *Ama", + // "description": "The encryption type to use.\n If you use the ``KMS`` encryption type, the contents of the repository will be encrypted using server-side encryption with KMSlong key stored in KMS. When you use KMS to encrypt your data, you can either use the default AWS managed KMS key for Amazon ECR, or specify your own KMS key, which you already created. For more information, see [Protecting data using server-side encryption with an key stored in (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*.\n 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*.", // "enum": [ // "AES256", // "KMS" @@ -75,7 +75,7 @@ func repositoryDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: EncryptionType "encryption_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The encryption type to use.\n If you use the ``KMS`` encryption type, the contents of the repository will be encrypted using server-side encryption with KMSlong key stored in KMS. When you use KMS to encrypt your data, you can either use the default AWS managed KMS key for Amazon ECR, or specify your own KMS key, which you already created. For more information, see [Protecting data using server-side encryption with an key stored in (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*.\n 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 *Ama", + Description: "The encryption type to use.\n If you use the ``KMS`` encryption type, the contents of the repository will be encrypted using server-side encryption with KMSlong key stored in KMS. When you use KMS to encrypt your data, you can either use the default AWS managed KMS key for Amazon ECR, or specify your own KMS key, which you already created. For more information, see [Protecting data using server-side encryption with an key stored in (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*.\n 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*.", Computed: true, }, /*END ATTRIBUTE*/ // Property: KmsKey diff --git a/internal/aws/eks/cluster_singular_data_source_gen.go b/internal/aws/eks/cluster_singular_data_source_gen.go index b004798e1..f29215883 100644 --- a/internal/aws/eks/cluster_singular_data_source_gen.go +++ b/internal/aws/eks/cluster_singular_data_source_gen.go @@ -546,6 +546,35 @@ func clusterDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "An array of key-value pairs to apply to this resource.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: UpgradePolicy + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "An object representing the Upgrade Policy to use for the cluster.", + // "properties": { + // "SupportType": { + // "description": "Specify the support type for your cluster.", + // "enum": [ + // "STANDARD", + // "EXTENDED" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // } + "upgrade_policy": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SupportType + "support_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specify the support type for your cluster.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "An object representing the Upgrade Policy to use for the cluster.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Version // CloudFormation resource type schema: // @@ -611,8 +640,10 @@ func clusterDataSource(ctx context.Context) (datasource.DataSource, error) { "service_ipv_4_cidr": "ServiceIpv4Cidr", "service_ipv_6_cidr": "ServiceIpv6Cidr", "subnet_ids": "SubnetIds", + "support_type": "SupportType", "tags": "Tags", "type": "Type", + "upgrade_policy": "UpgradePolicy", "value": "Value", "version": "Version", }) diff --git a/internal/aws/entityresolution/id_mapping_workflow_singular_data_source_gen.go b/internal/aws/entityresolution/id_mapping_workflow_singular_data_source_gen.go index a9e679dfc..17f753518 100644 --- a/internal/aws/entityresolution/id_mapping_workflow_singular_data_source_gen.go +++ b/internal/aws/entityresolution/id_mapping_workflow_singular_data_source_gen.go @@ -91,7 +91,7 @@ func idMappingWorkflowDataSource(ctx context.Context) (datasource.DataSource, er // }, // "ProviderServiceArn": { // "description": "Arn of the Provider Service being used.", - // "pattern": "^arn:(aws|aws-us-gov|aws-cn):entityresolution:([A-Za-z0-9]+(-[A-Za-z0-9]+)+)::providerservice/[A-Za-z0-9]+/[A-Za-z0-9]+$", + // "pattern": "^arn:(aws|aws-us-gov|aws-cn):(entityresolution):([a-z]{2}-[a-z]{1,10}-[0-9])::providerservice/([a-zA-Z0-9_-]{1,255})/([a-zA-Z0-9_-]{1,255})$", // "type": "string" // } // }, diff --git a/internal/aws/fms/policy_singular_data_source_gen.go b/internal/aws/fms/policy_singular_data_source_gen.go index cfdd7ea4a..dc60545aa 100644 --- a/internal/aws/fms/policy_singular_data_source_gen.go +++ b/internal/aws/fms/policy_singular_data_source_gen.go @@ -306,7 +306,7 @@ func policyDataSource(ctx context.Context) (datasource.DataSource, error) { // "properties": { // "ManagedServiceData": { // "description": "Firewall managed service data.", - // "maxLength": 8192, + // "maxLength": 30000, // "minLength": 1, // "type": "string" // }, diff --git a/internal/aws/globalaccelerator/cross_account_attachment_singular_data_source_gen.go b/internal/aws/globalaccelerator/cross_account_attachment_singular_data_source_gen.go index 962aac904..eedc86d2f 100644 --- a/internal/aws/globalaccelerator/cross_account_attachment_singular_data_source_gen.go +++ b/internal/aws/globalaccelerator/cross_account_attachment_singular_data_source_gen.go @@ -72,6 +72,9 @@ func crossAccountAttachmentDataSource(ctx context.Context) (datasource.DataSourc // "additionalProperties": false, // "description": "ARN of resource to share.", // "properties": { + // "Cidr": { + // "type": "string" + // }, // "EndpointId": { // "type": "string" // }, @@ -79,9 +82,6 @@ func crossAccountAttachmentDataSource(ctx context.Context) (datasource.DataSourc // "type": "string" // } // }, - // "required": [ - // "EndpointId" - // ], // "type": "object" // }, // "type": "array" @@ -89,6 +89,10 @@ func crossAccountAttachmentDataSource(ctx context.Context) (datasource.DataSourc "resources": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Cidr + "cidr": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: EndpointId "endpoint_id": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, @@ -166,6 +170,7 @@ func crossAccountAttachmentDataSource(ctx context.Context) (datasource.DataSourc opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ "attachment_arn": "AttachmentArn", + "cidr": "Cidr", "endpoint_id": "EndpointId", "key": "Key", "name": "Name", diff --git a/internal/aws/glue/trigger_plural_data_source_gen.go b/internal/aws/glue/trigger_plural_data_source_gen.go new file mode 100644 index 000000000..89806a95e --- /dev/null +++ b/internal/aws/glue/trigger_plural_data_source_gen.go @@ -0,0 +1,54 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package glue + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_glue_triggers", triggersDataSource) +} + +// triggersDataSource returns the Terraform awscc_glue_triggers data source. +// This Terraform data source corresponds to the CloudFormation AWS::Glue::Trigger resource. +func triggersDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ + "id": schema.StringAttribute{ + Description: "Uniquely identifies the data source.", + Computed: true, + }, + "ids": schema.SetAttribute{ + Description: "Set of Resource Identifiers.", + ElementType: types.StringType, + Computed: true, + }, + } + + schema := schema.Schema{ + Description: "Plural Data Source schema for AWS::Glue::Trigger", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Glue::Trigger").WithTerraformTypeName("awscc_glue_triggers") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/glue/trigger_plural_data_source_gen_test.go b/internal/aws/glue/trigger_plural_data_source_gen_test.go new file mode 100644 index 000000000..3e9094f56 --- /dev/null +++ b/internal/aws/glue/trigger_plural_data_source_gen_test.go @@ -0,0 +1,27 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package glue_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSGlueTriggersDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Glue::Trigger", "awscc_glue_triggers", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet(fmt.Sprintf("data.%s", td.ResourceName), "ids.#"), + ), + }, + }) +} diff --git a/internal/aws/glue/trigger_singular_data_source_gen.go b/internal/aws/glue/trigger_singular_data_source_gen.go new file mode 100644 index 000000000..325eddd76 --- /dev/null +++ b/internal/aws/glue/trigger_singular_data_source_gen.go @@ -0,0 +1,374 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package glue + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework-jsontypes/jsontypes" + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_glue_trigger", triggerDataSource) +} + +// triggerDataSource returns the Terraform awscc_glue_trigger data source. +// This Terraform data source corresponds to the CloudFormation AWS::Glue::Trigger resource. +func triggerDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Actions + // CloudFormation resource type schema: + // + // { + // "description": "The actions initiated by this trigger.", + // "items": { + // "additionalProperties": false, + // "description": "The actions initiated by this trigger.", + // "properties": { + // "Arguments": { + // "description": "The job arguments used when this trigger fires. For this job run, they replace the default arguments set in the job definition itself.", + // "type": "object" + // }, + // "CrawlerName": { + // "description": "The name of the crawler to be used with this action.", + // "type": "string" + // }, + // "JobName": { + // "description": "The name of a job to be executed.", + // "type": "string" + // }, + // "NotificationProperty": { + // "additionalProperties": false, + // "description": "Specifies configuration properties of a job run notification.", + // "properties": { + // "NotifyDelayAfter": { + // "description": "After a job run starts, the number of minutes to wait before sending a job run delay notification", + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "SecurityConfiguration": { + // "description": "The name of the SecurityConfiguration structure to be used with this action.", + // "type": "string" + // }, + // "Timeout": { + // "description": "The JobRun timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status. The default is 2,880 minutes (48 hours). This overrides the timeout value set in the parent job.", + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + "actions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arguments + "arguments": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Description: "The job arguments used when this trigger fires. For this job run, they replace the default arguments set in the job definition itself.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CrawlerName + "crawler_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the crawler to be used with this action.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: JobName + "job_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of a job to be executed.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: NotificationProperty + "notification_property": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: NotifyDelayAfter + "notify_delay_after": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "After a job run starts, the number of minutes to wait before sending a job run delay notification", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies configuration properties of a job run notification.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SecurityConfiguration + "security_configuration": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the SecurityConfiguration structure to be used with this action.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Timeout + "timeout": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The JobRun timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status. The default is 2,880 minutes (48 hours). This overrides the timeout value set in the parent job.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The actions initiated by this trigger.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "A description of this trigger.", + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A description of this trigger.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EventBatchingCondition + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Batch condition that must be met (specified number of events received or batch time window expired) before EventBridge event trigger fires.", + // "properties": { + // "BatchSize": { + // "description": "Number of events that must be received from Amazon EventBridge before EventBridge event trigger fires.", + // "type": "integer" + // }, + // "BatchWindow": { + // "description": "Window of time in seconds after which EventBridge event trigger fires. Window starts when first event is received.", + // "type": "integer" + // } + // }, + // "required": [ + // "BatchSize" + // ], + // "type": "object" + // } + "event_batching_condition": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BatchSize + "batch_size": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Number of events that must be received from Amazon EventBridge before EventBridge event trigger fires.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: BatchWindow + "batch_window": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Window of time in seconds after which EventBridge event trigger fires. Window starts when first event is received.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Batch condition that must be met (specified number of events received or batch time window expired) before EventBridge event trigger fires.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "The name of the trigger.", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the trigger.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Predicate + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The predicate of this trigger, which defines when it will fire.", + // "properties": { + // "Conditions": { + // "description": "A list of the conditions that determine when the trigger will fire.", + // "items": { + // "additionalProperties": false, + // "description": "Defines a condition under which a trigger fires.", + // "properties": { + // "CrawlState": { + // "description": "The state of the crawler to which this condition applies.", + // "type": "string" + // }, + // "CrawlerName": { + // "description": "The name of the crawler to which this condition applies.", + // "type": "string" + // }, + // "JobName": { + // "description": "The name of the job whose JobRuns this condition applies to, and on which this trigger waits.", + // "type": "string" + // }, + // "LogicalOperator": { + // "description": "A logical operator.", + // "type": "string" + // }, + // "State": { + // "description": "The condition state. Currently, the values supported are SUCCEEDED, STOPPED, TIMEOUT, and FAILED.", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Logical": { + // "description": "An optional field if only one condition is listed. If multiple conditions are listed, then this field is required.", + // "type": "string" + // } + // }, + // "type": "object" + // } + "predicate": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Conditions + "conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CrawlState + "crawl_state": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The state of the crawler to which this condition applies.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CrawlerName + "crawler_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the crawler to which this condition applies.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: JobName + "job_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the job whose JobRuns this condition applies to, and on which this trigger waits.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LogicalOperator + "logical_operator": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A logical operator.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: State + "state": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The condition state. Currently, the values supported are SUCCEEDED, STOPPED, TIMEOUT, and FAILED.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of the conditions that determine when the trigger will fire.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Logical + "logical": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "An optional field if only one condition is listed. If multiple conditions are listed, then this field is required.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The predicate of this trigger, which defines when it will fire.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Schedule + // CloudFormation resource type schema: + // + // { + // "description": "A cron expression used to specify the schedule.", + // "type": "string" + // } + "schedule": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A cron expression used to specify the schedule.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: StartOnCreation + // CloudFormation resource type schema: + // + // { + // "description": "Set to true to start SCHEDULED and CONDITIONAL triggers when created. True is not supported for ON_DEMAND triggers.", + // "type": "boolean" + // } + "start_on_creation": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Set to true to start SCHEDULED and CONDITIONAL triggers when created. True is not supported for ON_DEMAND triggers.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "The tags to use with this trigger.", + // "type": "object" + // } + "tags": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Description: "The tags to use with this trigger.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + // CloudFormation resource type schema: + // + // { + // "description": "The type of trigger that this is.", + // "type": "string" + // } + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The type of trigger that this is.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: WorkflowName + // CloudFormation resource type schema: + // + // { + // "description": "The name of the workflow associated with the trigger.", + // "type": "string" + // } + "workflow_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the workflow associated with the trigger.", + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::Glue::Trigger", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Glue::Trigger").WithTerraformTypeName("awscc_glue_trigger") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "actions": "Actions", + "arguments": "Arguments", + "batch_size": "BatchSize", + "batch_window": "BatchWindow", + "conditions": "Conditions", + "crawl_state": "CrawlState", + "crawler_name": "CrawlerName", + "description": "Description", + "event_batching_condition": "EventBatchingCondition", + "job_name": "JobName", + "logical": "Logical", + "logical_operator": "LogicalOperator", + "name": "Name", + "notification_property": "NotificationProperty", + "notify_delay_after": "NotifyDelayAfter", + "predicate": "Predicate", + "schedule": "Schedule", + "security_configuration": "SecurityConfiguration", + "start_on_creation": "StartOnCreation", + "state": "State", + "tags": "Tags", + "timeout": "Timeout", + "type": "Type", + "workflow_name": "WorkflowName", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/glue/trigger_singular_data_source_gen_test.go b/internal/aws/glue/trigger_singular_data_source_gen_test.go new file mode 100644 index 000000000..595471fed --- /dev/null +++ b/internal/aws/glue/trigger_singular_data_source_gen_test.go @@ -0,0 +1,36 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package glue_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSGlueTriggerDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Glue::Trigger", "awscc_glue_trigger", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSGlueTriggerDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Glue::Trigger", "awscc_glue_trigger", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/lightsail/alarm_singular_data_source_gen.go b/internal/aws/lightsail/alarm_singular_data_source_gen.go index 95001907d..5725877c0 100644 --- a/internal/aws/lightsail/alarm_singular_data_source_gen.go +++ b/internal/aws/lightsail/alarm_singular_data_source_gen.go @@ -109,11 +109,11 @@ func alarmDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The validation status of the SSL/TLS certificate.", + // "description": "The name of the Lightsail resource that the alarm monitors.", // "type": "string" // } "monitored_resource_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The validation status of the SSL/TLS certificate.", + Description: "The name of the Lightsail resource that the alarm monitors.", Computed: true, }, /*END ATTRIBUTE*/ // Property: NotificationEnabled diff --git a/internal/aws/mediaconnect/flow_output_singular_data_source_gen.go b/internal/aws/mediaconnect/flow_output_singular_data_source_gen.go index 4ed4bb0c1..f93c727bd 100644 --- a/internal/aws/mediaconnect/flow_output_singular_data_source_gen.go +++ b/internal/aws/mediaconnect/flow_output_singular_data_source_gen.go @@ -339,6 +339,21 @@ func flowOutputDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The ARN of the output.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: OutputStatus + // CloudFormation resource type schema: + // + // { + // "description": "An indication of whether the output should transmit data or not.", + // "enum": [ + // "ENABLED", + // "DISABLED" + // ], + // "type": "string" + // } + "output_status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "An indication of whether the output should transmit data or not.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Port // CloudFormation resource type schema: // @@ -469,6 +484,7 @@ func flowOutputDataSource(ctx context.Context) (datasource.DataSource, error) { "min_latency": "MinLatency", "name": "Name", "output_arn": "OutputArn", + "output_status": "OutputStatus", "port": "Port", "protocol": "Protocol", "remote_id": "RemoteId", diff --git a/internal/aws/mediapackagev2/channel_singular_data_source_gen.go b/internal/aws/mediapackagev2/channel_singular_data_source_gen.go index 7b1f99df6..ab4aa7eac 100644 --- a/internal/aws/mediapackagev2/channel_singular_data_source_gen.go +++ b/internal/aws/mediapackagev2/channel_singular_data_source_gen.go @@ -138,6 +138,19 @@ func channelDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "

The list of ingest endpoints.

", Computed: true, }, /*END ATTRIBUTE*/ + // Property: InputType + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "HLS", + // "CMAF" + // ], + // "type": "string" + // } + "input_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: ModifiedAt // CloudFormation resource type schema: // @@ -210,6 +223,7 @@ func channelDataSource(ctx context.Context) (datasource.DataSource, error) { "id": "Id", "ingest_endpoint_urls": "IngestEndpointUrls", "ingest_endpoints": "IngestEndpoints", + "input_type": "InputType", "key": "Key", "modified_at": "ModifiedAt", "tags": "Tags", diff --git a/internal/aws/mediapackagev2/origin_endpoint_singular_data_source_gen.go b/internal/aws/mediapackagev2/origin_endpoint_singular_data_source_gen.go index 7eae0474b..33e450527 100644 --- a/internal/aws/mediapackagev2/origin_endpoint_singular_data_source_gen.go +++ b/internal/aws/mediapackagev2/origin_endpoint_singular_data_source_gen.go @@ -348,6 +348,41 @@ func originEndpointDataSource(ctx context.Context) (datasource.DataSource, error Description: "

Enter any descriptive text that helps you to identify the origin endpoint.

", Computed: true, }, /*END ATTRIBUTE*/ + // Property: ForceEndpointErrorConfiguration + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "\u003cp\u003eThe failover settings for the endpoint.\u003c/p\u003e", + // "properties": { + // "EndpointErrorConditions": { + // "description": "\u003cp\u003eThe failover settings for the endpoint. The options are:\u003c/p\u003e\n \u003cul\u003e\n \u003cli\u003e\n \u003cp\u003e\n \u003ccode\u003eSTALE_MANIFEST\u003c/code\u003e - The manifest stalled and there a no new segments or parts.\u003c/p\u003e\n \u003c/li\u003e\n \u003cli\u003e\n \u003cp\u003e\n \u003ccode\u003eINCOMPLETE_MANIFEST\u003c/code\u003e - There is a gap in the manifest.\u003c/p\u003e\n \u003c/li\u003e\n \u003cli\u003e\n \u003cp\u003e\n \u003ccode\u003eMISSING_DRM_KEY\u003c/code\u003e - Key rotation is enabled but we're unable to fetch the key for the current key period.\u003c/p\u003e\n \u003c/li\u003e\n \u003c/ul\u003e", + // "items": { + // "enum": [ + // "STALE_MANIFEST", + // "INCOMPLETE_MANIFEST", + // "MISSING_DRM_KEY", + // "SLATE_INPUT" + // ], + // "type": "string" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // } + "force_endpoint_error_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EndpointErrorConditions + "endpoint_error_conditions": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "

The failover settings for the endpoint. The options are:

\n
    \n
  • \n

    \n STALE_MANIFEST - The manifest stalled and there a no new segments or parts.

    \n
  • \n
  • \n

    \n INCOMPLETE_MANIFEST - There is a gap in the manifest.

    \n
  • \n
  • \n

    \n MISSING_DRM_KEY - Key rotation is enabled but we're unable to fetch the key for the current key period.

    \n
  • \n
", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "

The failover settings for the endpoint.

", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: HlsManifestUrls // CloudFormation resource type schema: // @@ -1108,7 +1143,9 @@ func originEndpointDataSource(ctx context.Context) (datasource.DataSource, error "encryption_contract_configuration": "EncryptionContractConfiguration", "encryption_method": "EncryptionMethod", "end": "End", + "endpoint_error_conditions": "EndpointErrorConditions", "filter_configuration": "FilterConfiguration", + "force_endpoint_error_configuration": "ForceEndpointErrorConfiguration", "hls_manifest_urls": "HlsManifestUrls", "hls_manifests": "HlsManifests", "include_iframe_only_streams": "IncludeIframeOnlyStreams", diff --git a/internal/aws/rds/db_cluster_singular_data_source_gen.go b/internal/aws/rds/db_cluster_singular_data_source_gen.go index 5d957bc75..6134ef285 100644 --- a/internal/aws/rds/db_cluster_singular_data_source_gen.go +++ b/internal/aws/rds/db_cluster_singular_data_source_gen.go @@ -485,7 +485,7 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "string" // }, // "SecretArn": { - // "description": "The Amazon Resource Name (ARN) of the secret.", + // "description": "The Amazon Resource Name (ARN) of the secret. This parameter is a return value that you can retrieve using the ``Fn::GetAtt`` intrinsic function. For more information, see [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#aws-resource-rds-dbcluster-return-values).", // "type": "string" // } // }, @@ -500,7 +500,7 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END ATTRIBUTE*/ // Property: SecretArn "secret_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Amazon Resource Name (ARN) of the secret.", + Description: "The Amazon Resource Name (ARN) of the secret. This parameter is a return value that you can retrieve using the ``Fn::GetAtt`` intrinsic function. For more information, see [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#aws-resource-rds-dbcluster-return-values).", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -624,11 +624,11 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP address from within the DB cluster's virtual private cloud (VPC). It resolves to the public IP address from outside of the DB cluster's VPC. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", + // "description": "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", // "type": "boolean" // } "publicly_accessible": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP address from within the DB cluster's virtual private cloud (VPC). It resolves to the public IP address from outside of the DB cluster's VPC. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", + Description: "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", Computed: true, }, /*END ATTRIBUTE*/ // Property: ReadEndpoint diff --git a/internal/aws/rds/db_instance_singular_data_source_gen.go b/internal/aws/rds/db_instance_singular_data_source_gen.go index 6f273bc4f..55e1d0076 100644 --- a/internal/aws/rds/db_instance_singular_data_source_gen.go +++ b/internal/aws/rds/db_instance_singular_data_source_gen.go @@ -117,11 +117,11 @@ func dBInstanceDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The destination region for the backup replication of the DB instance. For more info, see [Replicating automated backups to another Region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReplicateBackups.html) in the *Amazon RDS User Guide*.", + // "description": "", // "type": "string" // } "automatic_backup_replication_region": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The destination region for the backup replication of the DB instance. For more info, see [Replicating automated backups to another Region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReplicateBackups.html) in the *Amazon RDS User Guide*.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: AvailabilityZone @@ -339,11 +339,11 @@ func dBInstanceDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.\n By specifying this property, you can create a DB instance from the specified DB snapshot. If the ``DBSnapshotIdentifier`` property is an empty string or the ``AWS::RDS::DBInstance`` declaration has no ``DBSnapshotIdentifier`` property, AWS CloudFormation creates a new database. If the property contains a value (other than an empty string), AWS CloudFormation creates a database from the specified snapshot. If a snapshot with the specified name doesn't exist, AWS CloudFormation can't create the database and it rolls back the stack.\n Some DB instance properties aren't valid when you restore from a snapshot, such as the ``MasterUsername`` and ``MasterUserPassword`` properties. For information about the properties that you can specify, see the ``RestoreDBInstanceFromDBSnapshot`` action in the *Amazon RDS API Reference*.\n After you restore a DB instance with a ``DBSnapshotIdentifier`` property, you must specify the same ``DBSnapshotIdentifier`` property for any future updates to the DB instance. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. However, if you don't specify the ``DBSnapshotIdentifier`` property, an empty DB instance is created, and the original DB instance is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified ``DBSnapshotIdentifier`` property, and the original DB instance is deleted.\n If you specify the ``DBSnapshotIdentifier`` property to restore a DB instance (as opposed to specifying it for DB instance updates), then don't specify the following properties:\n + ``CharacterSetName`` \n + ``DBClusterIdentifier`` \n + ``DBName`` \n + ``DeleteAutomatedBackups`` \n + ``EnablePerformanceInsights`` \n + ``KmsKeyId`` \n + ``MasterUsername`` \n + ``MasterUserPassword`` \n + ``PerformanceInsightsKMSKeyId`` \n + ``PerformanceInsightsRetentionPeriod`` \n + ``PromotionTier`` \n + ``SourceDBInstanceIdentifier`` \n + ``SourceRegion`` \n + ``StorageEncrypted`` (for an encrypted snapshot)\n + ``Timezone`` \n \n *Amazon Aurora* \n Not applicable. Snapshot restore is managed by the DB cluster.", + // "description": "The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.\n By specifying this property, you can create a DB instance from the specified DB snapshot. If the ``DBSnapshotIdentifier`` property is an empty string or the ``AWS::RDS::DBInstance`` declaration has no ``DBSnapshotIdentifier`` property, AWS CloudFormation creates a new database. If the property contains a value (other than an empty string), AWS CloudFormation creates a database from the specified snapshot. If a snapshot with the specified name doesn't exist, AWS CloudFormation can't create the database and it rolls back the stack.\n Some DB instance properties aren't valid when you restore from a snapshot, such as the ``MasterUsername`` and ``MasterUserPassword`` properties. For information about the properties that you can specify, see the ``RestoreDBInstanceFromDBSnapshot`` action in the *Amazon RDS API Reference*.\n After you restore a DB instance with a ``DBSnapshotIdentifier`` property, you must specify the same ``DBSnapshotIdentifier`` property for any future updates to the DB instance. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. However, if you don't specify the ``DBSnapshotIdentifier`` property, an empty DB instance is created, and the original DB instance is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified ``DBSnapshotIdentifier`` property, and the original DB instance is deleted.\n If you specify the ``DBSnapshotIdentifier`` property to restore a DB instance (as opposed to specifying it for DB instance updates), then don't specify the following properties:\n + ``CharacterSetName`` \n + ``DBClusterIdentifier`` \n + ``DBName`` \n + ``DeleteAutomatedBackups`` \n + ``KmsKeyId`` \n + ``MasterUsername`` \n + ``MasterUserPassword`` \n + ``PerformanceInsightsKMSKeyId`` \n + ``PerformanceInsightsRetentionPeriod`` \n + ``PromotionTier`` \n + ``SourceDBInstanceIdentifier`` \n + ``SourceRegion`` \n + ``StorageEncrypted`` (for an encrypted snapshot)\n + ``Timezone`` \n \n *Amazon Aurora* \n Not applicable. Snapshot restore is managed by the DB cluster.", // "type": "string" // } "db_snapshot_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.\n By specifying this property, you can create a DB instance from the specified DB snapshot. If the ``DBSnapshotIdentifier`` property is an empty string or the ``AWS::RDS::DBInstance`` declaration has no ``DBSnapshotIdentifier`` property, AWS CloudFormation creates a new database. If the property contains a value (other than an empty string), AWS CloudFormation creates a database from the specified snapshot. If a snapshot with the specified name doesn't exist, AWS CloudFormation can't create the database and it rolls back the stack.\n Some DB instance properties aren't valid when you restore from a snapshot, such as the ``MasterUsername`` and ``MasterUserPassword`` properties. For information about the properties that you can specify, see the ``RestoreDBInstanceFromDBSnapshot`` action in the *Amazon RDS API Reference*.\n After you restore a DB instance with a ``DBSnapshotIdentifier`` property, you must specify the same ``DBSnapshotIdentifier`` property for any future updates to the DB instance. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. However, if you don't specify the ``DBSnapshotIdentifier`` property, an empty DB instance is created, and the original DB instance is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified ``DBSnapshotIdentifier`` property, and the original DB instance is deleted.\n If you specify the ``DBSnapshotIdentifier`` property to restore a DB instance (as opposed to specifying it for DB instance updates), then don't specify the following properties:\n + ``CharacterSetName`` \n + ``DBClusterIdentifier`` \n + ``DBName`` \n + ``DeleteAutomatedBackups`` \n + ``EnablePerformanceInsights`` \n + ``KmsKeyId`` \n + ``MasterUsername`` \n + ``MasterUserPassword`` \n + ``PerformanceInsightsKMSKeyId`` \n + ``PerformanceInsightsRetentionPeriod`` \n + ``PromotionTier`` \n + ``SourceDBInstanceIdentifier`` \n + ``SourceRegion`` \n + ``StorageEncrypted`` (for an encrypted snapshot)\n + ``Timezone`` \n \n *Amazon Aurora* \n Not applicable. Snapshot restore is managed by the DB cluster.", + Description: "The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.\n By specifying this property, you can create a DB instance from the specified DB snapshot. If the ``DBSnapshotIdentifier`` property is an empty string or the ``AWS::RDS::DBInstance`` declaration has no ``DBSnapshotIdentifier`` property, AWS CloudFormation creates a new database. If the property contains a value (other than an empty string), AWS CloudFormation creates a database from the specified snapshot. If a snapshot with the specified name doesn't exist, AWS CloudFormation can't create the database and it rolls back the stack.\n Some DB instance properties aren't valid when you restore from a snapshot, such as the ``MasterUsername`` and ``MasterUserPassword`` properties. For information about the properties that you can specify, see the ``RestoreDBInstanceFromDBSnapshot`` action in the *Amazon RDS API Reference*.\n After you restore a DB instance with a ``DBSnapshotIdentifier`` property, you must specify the same ``DBSnapshotIdentifier`` property for any future updates to the DB instance. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. However, if you don't specify the ``DBSnapshotIdentifier`` property, an empty DB instance is created, and the original DB instance is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified ``DBSnapshotIdentifier`` property, and the original DB instance is deleted.\n If you specify the ``DBSnapshotIdentifier`` property to restore a DB instance (as opposed to specifying it for DB instance updates), then don't specify the following properties:\n + ``CharacterSetName`` \n + ``DBClusterIdentifier`` \n + ``DBName`` \n + ``DeleteAutomatedBackups`` \n + ``KmsKeyId`` \n + ``MasterUsername`` \n + ``MasterUserPassword`` \n + ``PerformanceInsightsKMSKeyId`` \n + ``PerformanceInsightsRetentionPeriod`` \n + ``PromotionTier`` \n + ``SourceDBInstanceIdentifier`` \n + ``SourceRegion`` \n + ``StorageEncrypted`` (for an encrypted snapshot)\n + ``Timezone`` \n \n *Amazon Aurora* \n Not applicable. Snapshot restore is managed by the DB cluster.", Computed: true, }, /*END ATTRIBUTE*/ // Property: DBSubnetGroupName @@ -662,7 +662,7 @@ func dBInstanceDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "string" // }, // "SecretArn": { - // "description": "The Amazon Resource Name (ARN) of the secret.", + // "description": "The Amazon Resource Name (ARN) of the secret. This parameter is a return value that you can retrieve using the ``Fn::GetAtt`` intrinsic function. For more information, see [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#aws-resource-rds-dbinstance-return-values).", // "type": "string" // } // }, @@ -677,7 +677,7 @@ func dBInstanceDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END ATTRIBUTE*/ // Property: SecretArn "secret_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Amazon Resource Name (ARN) of the secret.", + Description: "The Amazon Resource Name (ARN) of the secret. This parameter is a return value that you can retrieve using the ``Fn::GetAtt`` intrinsic function. For more information, see [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#aws-resource-rds-dbinstance-return-values).", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -839,7 +839,7 @@ func dBInstanceDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.\n This setting doesn't apply to Amazon Aurora or RDS Custom DB instances.", // "items": { // "additionalProperties": false, - // "description": "The ``ProcessorFeature`` property type specifies the processor features of a DB instance class status.", + // "description": "The ``ProcessorFeature`` property type specifies the processor features of a DB instance class.", // "properties": { // "Name": { // "description": "The name of the processor feature. Valid names are ``coreCount`` and ``threadsPerCore``.", diff --git a/internal/aws/secretsmanager/resource_policy_plural_data_source_gen.go b/internal/aws/secretsmanager/resource_policy_plural_data_source_gen.go new file mode 100644 index 000000000..11294c487 --- /dev/null +++ b/internal/aws/secretsmanager/resource_policy_plural_data_source_gen.go @@ -0,0 +1,54 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package secretsmanager + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_secretsmanager_resource_policies", resourcePoliciesDataSource) +} + +// resourcePoliciesDataSource returns the Terraform awscc_secretsmanager_resource_policies data source. +// This Terraform data source corresponds to the CloudFormation AWS::SecretsManager::ResourcePolicy resource. +func resourcePoliciesDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ + "id": schema.StringAttribute{ + Description: "Uniquely identifies the data source.", + Computed: true, + }, + "ids": schema.SetAttribute{ + Description: "Set of Resource Identifiers.", + ElementType: types.StringType, + Computed: true, + }, + } + + schema := schema.Schema{ + Description: "Plural Data Source schema for AWS::SecretsManager::ResourcePolicy", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::SecretsManager::ResourcePolicy").WithTerraformTypeName("awscc_secretsmanager_resource_policies") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/secretsmanager/resource_policy_plural_data_source_gen_test.go b/internal/aws/secretsmanager/resource_policy_plural_data_source_gen_test.go new file mode 100644 index 000000000..a7ea265eb --- /dev/null +++ b/internal/aws/secretsmanager/resource_policy_plural_data_source_gen_test.go @@ -0,0 +1,27 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package secretsmanager_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSSecretsManagerResourcePoliciesDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::SecretsManager::ResourcePolicy", "awscc_secretsmanager_resource_policies", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet(fmt.Sprintf("data.%s", td.ResourceName), "ids.#"), + ), + }, + }) +} diff --git a/internal/aws/secretsmanager/resource_policy_singular_data_source_gen.go b/internal/aws/secretsmanager/resource_policy_singular_data_source_gen.go new file mode 100644 index 000000000..dbde13ddf --- /dev/null +++ b/internal/aws/secretsmanager/resource_policy_singular_data_source_gen.go @@ -0,0 +1,101 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package secretsmanager + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_secretsmanager_resource_policy", resourcePolicyDataSource) +} + +// resourcePolicyDataSource returns the Terraform awscc_secretsmanager_resource_policy data source. +// This Terraform data source corresponds to the CloudFormation AWS::SecretsManager::ResourcePolicy resource. +func resourcePolicyDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BlockPublicPolicy + // CloudFormation resource type schema: + // + // { + // "description": "Specifies whether to block resource-based policies that allow broad access to the secret.", + // "type": "boolean" + // } + "block_public_policy": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies whether to block resource-based policies that allow broad access to the secret.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "description": "The Arn of the secret.", + // "type": "string" + // } + "resource_policy_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Arn of the secret.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ResourcePolicy + // CloudFormation resource type schema: + // + // { + // "description": "A JSON-formatted string for an AWS resource-based policy.", + // "type": "string" + // } + "resource_policy": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A JSON-formatted string for an AWS resource-based policy.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SecretId + // CloudFormation resource type schema: + // + // { + // "description": "The ARN or name of the secret to attach the resource-based policy.", + // "maxLength": 2048, + // "minLength": 1, + // "type": "string" + // } + "secret_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN or name of the secret to attach the resource-based policy.", + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::SecretsManager::ResourcePolicy", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::SecretsManager::ResourcePolicy").WithTerraformTypeName("awscc_secretsmanager_resource_policy") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "block_public_policy": "BlockPublicPolicy", + "resource_policy": "ResourcePolicy", + "resource_policy_id": "Id", + "secret_id": "SecretId", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/secretsmanager/resource_policy_singular_data_source_gen_test.go b/internal/aws/secretsmanager/resource_policy_singular_data_source_gen_test.go new file mode 100644 index 000000000..5a2d6a3de --- /dev/null +++ b/internal/aws/secretsmanager/resource_policy_singular_data_source_gen_test.go @@ -0,0 +1,36 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package secretsmanager_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSSecretsManagerResourcePolicyDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::SecretsManager::ResourcePolicy", "awscc_secretsmanager_resource_policy", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSSecretsManagerResourcePolicyDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::SecretsManager::ResourcePolicy", "awscc_secretsmanager_resource_policy", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/workspacesweb/user_settings_singular_data_source_gen.go b/internal/aws/workspacesweb/user_settings_singular_data_source_gen.go index d83e09319..fc4863e05 100644 --- a/internal/aws/workspacesweb/user_settings_singular_data_source_gen.go +++ b/internal/aws/workspacesweb/user_settings_singular_data_source_gen.go @@ -206,6 +206,19 @@ func userSettingsDataSource(ctx context.Context) (datasource.DataSource, error) "customer_managed_key": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: DeepLinkAllowed + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "Disabled", + // "Enabled" + // ], + // "type": "string" + // } + "deep_link_allowed": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: DisconnectTimeoutInMinutes // CloudFormation resource type schema: // @@ -362,6 +375,7 @@ func userSettingsDataSource(ctx context.Context) (datasource.DataSource, error) "cookie_synchronization_configuration": "CookieSynchronizationConfiguration", "copy_allowed": "CopyAllowed", "customer_managed_key": "CustomerManagedKey", + "deep_link_allowed": "DeepLinkAllowed", "disconnect_timeout_in_minutes": "DisconnectTimeoutInMinutes", "domain": "Domain", "download_allowed": "DownloadAllowed", From 8ac397e80c90d41e0a5df667093e7a65117619c1 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 25 Jul 2024 15:31:48 -0400 Subject: [PATCH 27/89] Run 'make docs'. --- .../applicationautoscaling_scaling_policy.md | 124 ++++++--- docs/data-sources/bedrock_flow_alias.md | 40 +++ docs/data-sources/bedrock_flow_version.md | 245 +++++++++++++++++ docs/data-sources/bedrock_knowledge_base.md | 42 +++ docs/data-sources/bedrock_prompt.md | 98 +++++++ docs/data-sources/bedrock_prompt_version.md | 86 ++++++ docs/data-sources/bedrock_prompts.md | 21 ++ docs/data-sources/ec2_eip_association.md | 13 +- docs/data-sources/ec2_launch_template.md | 27 +- .../ec2_network_interface_attachment.md | 12 +- docs/data-sources/ecr_repository.md | 2 +- .../ecr_repository_creation_template.md | 1 + docs/data-sources/eks_cluster.md | 9 + ...balaccelerator_cross_account_attachment.md | 1 + docs/data-sources/glue_trigger.md | 82 ++++++ docs/data-sources/glue_triggers.md | 21 ++ docs/data-sources/lightsail_alarm.md | 2 +- docs/data-sources/mediaconnect_flow_output.md | 1 + docs/data-sources/mediapackagev2_channel.md | 1 + .../mediapackagev2_origin_endpoint.md | 23 ++ docs/data-sources/rds_db_cluster.md | 4 +- docs/data-sources/rds_db_instance.md | 5 +- .../secretsmanager_resource_policies.md | 21 ++ .../secretsmanager_resource_policy.md | 27 ++ .../workspacesweb_user_settings.md | 1 + .../applicationautoscaling_scaling_policy.md | 130 ++++++--- docs/resources/bedrock_flow_alias.md | 51 ++++ docs/resources/bedrock_flow_version.md | 256 ++++++++++++++++++ docs/resources/bedrock_knowledge_base.md | 48 ++++ docs/resources/bedrock_prompt.md | 115 ++++++++ docs/resources/bedrock_prompt_version.md | 97 +++++++ docs/resources/dms_replication_config.md | 13 +- docs/resources/ec2_eip_association.md | 19 +- docs/resources/ec2_launch_template.md | 27 +- .../ec2_network_interface_attachment.md | 16 +- docs/resources/ecr_repository.md | 2 +- .../ecr_repository_creation_template.md | 1 + docs/resources/eks_cluster.md | 9 + ...balaccelerator_cross_account_attachment.md | 6 +- docs/resources/glue_trigger.md | 96 +++++++ docs/resources/lightsail_alarm.md | 2 +- docs/resources/lightsail_certificate.md | 4 +- docs/resources/mediaconnect_flow_output.md | 1 + docs/resources/mediapackagev2_channel.md | 1 + .../mediapackagev2_origin_endpoint.md | 23 ++ docs/resources/rds_db_cluster.md | 4 +- docs/resources/rds_db_instance.md | 5 +- .../secretsmanager_resource_policy.md | 38 +++ docs/resources/workspacesweb_user_settings.md | 1 + .../awscc_bedrock_flow_alias/import.sh | 1 + .../awscc_bedrock_flow_version/import.sh | 1 + .../resources/awscc_bedrock_prompt/import.sh | 1 + .../awscc_bedrock_prompt_version/import.sh | 1 + .../resources/awscc_glue_trigger/import.sh | 1 + .../import.sh | 1 + 55 files changed, 1729 insertions(+), 151 deletions(-) create mode 100644 docs/data-sources/bedrock_flow_alias.md create mode 100644 docs/data-sources/bedrock_flow_version.md create mode 100644 docs/data-sources/bedrock_prompt.md create mode 100644 docs/data-sources/bedrock_prompt_version.md create mode 100644 docs/data-sources/bedrock_prompts.md create mode 100644 docs/data-sources/glue_trigger.md create mode 100644 docs/data-sources/glue_triggers.md create mode 100644 docs/data-sources/secretsmanager_resource_policies.md create mode 100644 docs/data-sources/secretsmanager_resource_policy.md create mode 100644 docs/resources/bedrock_flow_alias.md create mode 100644 docs/resources/bedrock_flow_version.md create mode 100644 docs/resources/bedrock_prompt.md create mode 100644 docs/resources/bedrock_prompt_version.md create mode 100644 docs/resources/glue_trigger.md create mode 100644 docs/resources/secretsmanager_resource_policy.md create mode 100644 examples/resources/awscc_bedrock_flow_alias/import.sh create mode 100644 examples/resources/awscc_bedrock_flow_version/import.sh create mode 100644 examples/resources/awscc_bedrock_prompt/import.sh create mode 100644 examples/resources/awscc_bedrock_prompt_version/import.sh create mode 100644 examples/resources/awscc_glue_trigger/import.sh create mode 100644 examples/resources/awscc_secretsmanager_resource_policy/import.sh diff --git a/docs/data-sources/applicationautoscaling_scaling_policy.md b/docs/data-sources/applicationautoscaling_scaling_policy.md index b39c4bb2a..599fc961a 100644 --- a/docs/data-sources/applicationautoscaling_scaling_policy.md +++ b/docs/data-sources/applicationautoscaling_scaling_policy.md @@ -21,21 +21,60 @@ Data Source schema for AWS::ApplicationAutoScaling::ScalingPolicy ### Read-Only -- `arn` (String) ARN is a read only property for the resource. +- `arn` (String) - `policy_name` (String) The name of the scaling policy. - -Updates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing AWS::ApplicationAutoScaling::ScalingPolicy resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name. + Updates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing ``AWS::ApplicationAutoScaling::ScalingPolicy`` resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name. - `policy_type` (String) The scaling policy type. - -The following policy types are supported: - -TargetTrackingScaling Not supported for Amazon EMR - -StepScaling Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune. + The following policy types are supported: + ``TargetTrackingScaling``—Not supported for Amazon EMR + ``StepScaling``—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune. - `resource_id` (String) The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. + + ECS service - The resource type is ``service`` and the unique identifier is the cluster name and service name. Example: ``service/my-cluster/my-service``. + + Spot Fleet - The resource type is ``spot-fleet-request`` and the unique identifier is the Spot Fleet request ID. Example: ``spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE``. + + EMR cluster - The resource type is ``instancegroup`` and the unique identifier is the cluster ID and instance group ID. Example: ``instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0``. + + AppStream 2.0 fleet - The resource type is ``fleet`` and the unique identifier is the fleet name. Example: ``fleet/sample-fleet``. + + DynamoDB table - The resource type is ``table`` and the unique identifier is the table name. Example: ``table/my-table``. + + DynamoDB global secondary index - The resource type is ``index`` and the unique identifier is the index name. Example: ``table/my-table/index/my-table-index``. + + Aurora DB cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:my-db-cluster``. + + SageMaker endpoint variant - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering``. + + Custom resources are not supported with a resource type. This parameter must specify the ``OutputValue`` from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our [GitHub repository](https://docs.aws.amazon.com/https://github.com/aws/aws-auto-scaling-custom-resource). + + Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: ``arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE``. + + Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: ``arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE``. + + Lambda provisioned concurrency - The resource type is ``function`` and the unique identifier is the function name with a function version or alias name suffix that is not ``$LATEST``. Example: ``function:my-function:prod`` or ``function:my-function:1``. + + Amazon Keyspaces table - The resource type is ``table`` and the unique identifier is the table name. Example: ``keyspace/mykeyspace/table/mytable``. + + Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: ``arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5``. + + Amazon ElastiCache replication group - The resource type is ``replication-group`` and the unique identifier is the replication group name. Example: ``replication-group/mycluster``. + + Neptune cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:mycluster``. + + SageMaker serverless endpoint - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering``. + + SageMaker inference component - The resource type is ``inference-component`` and the unique identifier is the resource ID. Example: ``inference-component/my-inference-component``. + + Pool of WorkSpaces - The resource type is ``workspacespool`` and the unique identifier is the pool ID. Example: ``workspacespool/wspool-123456``. - `scalable_dimension` (String) The scalable dimension. This string consists of the service namespace, resource type, and scaling property. -- `scaling_target_id` (String) The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the AWS::ApplicationAutoScaling::ScalableTarget resource. -- `service_namespace` (String) The namespace of the AWS service that provides the resource, or a custom-resource. + + ``ecs:service:DesiredCount`` - The task count of an ECS service. + + ``elasticmapreduce:instancegroup:InstanceCount`` - The instance count of an EMR Instance Group. + + ``ec2:spot-fleet-request:TargetCapacity`` - The target capacity of a Spot Fleet. + + ``appstream:fleet:DesiredCapacity`` - The capacity of an AppStream 2.0 fleet. + + ``dynamodb:table:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB table. + + ``dynamodb:table:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB table. + + ``dynamodb:index:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB global secondary index. + + ``dynamodb:index:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB global secondary index. + + ``rds:cluster:ReadReplicaCount`` - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. + + ``sagemaker:variant:DesiredInstanceCount`` - The number of EC2 instances for a SageMaker model endpoint variant. + + ``custom-resource:ResourceType:Property`` - The scalable dimension for a custom resource provided by your own application or service. + + ``comprehend:document-classifier-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend document classification endpoint. + + ``comprehend:entity-recognizer-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend entity recognizer endpoint. + + ``lambda:function:ProvisionedConcurrency`` - The provisioned concurrency for a Lambda function. + + ``cassandra:table:ReadCapacityUnits`` - The provisioned read capacity for an Amazon Keyspaces table. + + ``cassandra:table:WriteCapacityUnits`` - The provisioned write capacity for an Amazon Keyspaces table. + + ``kafka:broker-storage:VolumeSize`` - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster. + + ``elasticache:replication-group:NodeGroups`` - The number of node groups for an Amazon ElastiCache replication group. + + ``elasticache:replication-group:Replicas`` - The number of replicas per node group for an Amazon ElastiCache replication group. + + ``neptune:cluster:ReadReplicaCount`` - The count of read replicas in an Amazon Neptune DB cluster. + + ``sagemaker:variant:DesiredProvisionedConcurrency`` - The provisioned concurrency for a SageMaker serverless endpoint. + + ``sagemaker:inference-component:DesiredCopyCount`` - The number of copies across an endpoint for a SageMaker inference component. + + ``workspaces:workspacespool:DesiredUserSessions`` - The number of user sessions for the WorkSpaces in the pool. +- `scaling_target_id` (String) The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the ``AWS::ApplicationAutoScaling::ScalableTarget`` resource. + You must specify either the ``ScalingTargetId`` property, or the ``ResourceId``, ``ScalableDimension``, and ``ServiceNamespace`` properties, but not both. +- `service_namespace` (String) The namespace of the AWS service that provides the resource, or a ``custom-resource``. - `step_scaling_policy_configuration` (Attributes) A step scaling policy. (see [below for nested schema](#nestedatt--step_scaling_policy_configuration)) - `target_tracking_scaling_policy_configuration` (Attributes) A target tracking scaling policy. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration)) @@ -44,11 +83,12 @@ StepScaling Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspa Read-Only: -- `adjustment_type` (String) Specifies how the ScalingAdjustment value in a StepAdjustment is interpreted. -- `cooldown` (Number) The amount of time, in seconds, to wait for a previous scaling activity to take effect. -- `metric_aggregation_type` (String) The aggregation type for the CloudWatch metrics. Valid values are Minimum, Maximum, and Average. If the aggregation type is null, the value is treated as Average -- `min_adjustment_magnitude` (Number) The minimum value to scale by when the adjustment type is PercentChangeInCapacity. -- `step_adjustments` (Attributes Set) A set of adjustments that enable you to scale based on the size of the alarm breach. (see [below for nested schema](#nestedatt--step_scaling_policy_configuration--step_adjustments)) +- `adjustment_type` (String) Specifies whether the ``ScalingAdjustment`` value in the ``StepAdjustment`` property is an absolute number or a percentage of the current capacity. +- `cooldown` (Number) The amount of time, in seconds, to wait for a previous scaling activity to take effect. If not specified, the default value is 300. For more information, see [Cooldown period](https://docs.aws.amazon.com/autoscaling/application/userguide/step-scaling-policy-overview.html#step-scaling-cooldown) in the *Application Auto Scaling User Guide*. +- `metric_aggregation_type` (String) The aggregation type for the CloudWatch metrics. Valid values are ``Minimum``, ``Maximum``, and ``Average``. If the aggregation type is null, the value is treated as ``Average``. +- `min_adjustment_magnitude` (Number) The minimum value to scale by when the adjustment type is ``PercentChangeInCapacity``. For example, suppose that you create a step scaling policy to scale out an Amazon ECS service by 25 percent and you specify a ``MinAdjustmentMagnitude`` of 2. If the service has 4 tasks and the scaling policy is performed, 25 percent of 4 is 1. However, because you specified a ``MinAdjustmentMagnitude`` of 2, Application Auto Scaling scales out the service by 2 tasks. +- `step_adjustments` (Attributes Set) A set of adjustments that enable you to scale based on the size of the alarm breach. + At least one step adjustment is required if you are adding a new step scaling policy configuration. (see [below for nested schema](#nestedatt--step_scaling_policy_configuration--step_adjustments)) ### Nested Schema for `step_scaling_policy_configuration.step_adjustments` @@ -56,8 +96,10 @@ Read-Only: Read-Only: - `metric_interval_lower_bound` (Number) The lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it is exclusive (the metric must be greater than the threshold plus the lower bound). A null value indicates negative infinity. + You must specify at least one upper or lower bound. - `metric_interval_upper_bound` (Number) The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity. -- `scaling_adjustment` (Number) The amount by which to scale, based on the specified adjustment type. A positive value adds to the current capacity while a negative number removes from the current capacity. For exact capacity, you must specify a positive value. + You must specify at least one upper or lower bound. +- `scaling_adjustment` (Number) The amount by which to scale. The adjustment is based on the value that you specified in the ``AdjustmentType`` property (either an absolute number or a percentage). A positive value adds to the current capacity and a negative number subtracts from the current capacity. @@ -67,10 +109,10 @@ Read-Only: Read-Only: - `customized_metric_specification` (Attributes) A customized metric. You can specify either a predefined metric or a customized metric. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification)) -- `disable_scale_in` (Boolean) Indicates whether scale in by the target tracking scaling policy is disabled. If the value is true, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target. The default value is false. +- `disable_scale_in` (Boolean) Indicates whether scale in by the target tracking scaling policy is disabled. If the value is ``true``, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target. The default value is ``false``. - `predefined_metric_specification` (Attributes) A predefined metric. You can specify either a predefined metric or a customized metric. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--predefined_metric_specification)) -- `scale_in_cooldown` (Number) The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start. -- `scale_out_cooldown` (Number) The amount of time, in seconds, to wait for a previous scale-out activity to take effect. +- `scale_in_cooldown` (Number) The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start. For more information and for default values, see [Define cooldown periods](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) in the *Application Auto Scaling User Guide*. +- `scale_out_cooldown` (Number) The amount of time, in seconds, to wait for a previous scale-out activity to take effect. For more information and for default values, see [Define cooldown periods](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) in the *Application Auto Scaling User Guide*. - `target_value` (Number) The target value for the metric. Although this property accepts numbers of type Double, it won't accept values that are either too small or too large. Values must be in the range of -2^360 to 2^360. The value must be a valid number based on the choice of metric. For example, if the metric is CPU utilization, then the target value is a percent value that represents how much of the CPU can be used before scaling out. @@ -78,12 +120,13 @@ Read-Only: Read-Only: -- `dimensions` (Attributes List) The dimensions of the metric. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--dimensions)) -- `metric_name` (String) The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the Metric object that is returned by a call to ListMetrics. +- `dimensions` (Attributes List) The dimensions of the metric. + Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--dimensions)) +- `metric_name` (String) The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that's returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html). - `metrics` (Attributes List) The metrics to include in the target tracking scaling policy, as a metric data query. This can include both raw metric and metric math expressions. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--metrics)) - `namespace` (String) The namespace of the metric. - `statistic` (String) The statistic of the metric. -- `unit` (String) The unit of the metric. For a complete list of the units that CloudWatch supports, see the MetricDatum data type in the Amazon CloudWatch API Reference. +- `unit` (String) The unit of the metric. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*. ### Nested Schema for `target_tracking_scaling_policy_configuration.customized_metric_specification.dimensions` @@ -99,29 +142,35 @@ Read-Only: Read-Only: -- `expression` (String) The math expression to perform on the returned data, if this object is performing a math expression. -- `id` (String) A short name that identifies the object's results in the response. +- `expression` (String) The math expression to perform on the returned data, if this object is performing a math expression. This expression can use the ``Id`` of the other metrics to refer to those metrics, and can also use the ``Id`` of other expressions to use the result of those expressions. + Conditional: Within each ``TargetTrackingMetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both. +- `id` (String) A short name that identifies the object's results in the response. This name must be unique among all ``MetricDataQuery`` objects specified for a single scaling policy. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscores. The first character must be a lowercase letter. - `label` (String) A human-readable label for this metric or expression. This is especially useful if this is a math expression, so that you know what the value represents. -- `metric_stat` (Attributes) Information about the metric data to return. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--metrics--metric_stat)) -- `return_data` (Boolean) Indicates whether to return the timestamps and raw data values of this metric. +- `metric_stat` (Attributes) Information about the metric data to return. + Conditional: Within each ``MetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--metrics--metric_stat)) +- `return_data` (Boolean) Indicates whether to return the timestamps and raw data values of this metric. + If you use any math expressions, specify ``true`` for this value for only the final math expression that the metric specification is based on. You must specify ``false`` for ``ReturnData`` for all the other metrics and expressions used in the metric specification. + If you are only retrieving metrics and not performing any math expressions, do not specify anything for ``ReturnData``. This sets it to its default (``true``). ### Nested Schema for `target_tracking_scaling_policy_configuration.customized_metric_specification.metrics.metric_stat` Read-Only: -- `metric` (Attributes) The CloudWatch metric to return, including the metric name, namespace, and dimensions. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--metrics--metric_stat--metric)) -- `stat` (String) The statistic to return. It can include any CloudWatch statistic or extended statistic. -- `unit` (String) The unit to use for the returned data points. +- `metric` (Attributes) The CloudWatch metric to return, including the metric name, namespace, and dimensions. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that is returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html). (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--metrics--metric_stat--metric)) +- `stat` (String) The statistic to return. It can include any CloudWatch statistic or extended statistic. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *Amazon CloudWatch User Guide*. + The most commonly used metric for scaling is ``Average``. +- `unit` (String) The unit to use for the returned data points. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*. ### Nested Schema for `target_tracking_scaling_policy_configuration.customized_metric_specification.metrics.metric_stat.metric` Read-Only: -- `dimensions` (Attributes List) The dimensions for the metric. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--metrics--metric_stat--metric--dimensions)) +- `dimensions` (Attributes List) The dimensions for the metric. For the list of available dimensions, see the AWS documentation available from the table in [services that publish CloudWatch metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) in the *Amazon CloudWatch User Guide*. + Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--metrics--metric_stat--metric--dimensions)) - `metric_name` (String) The name of the metric. -- `namespace` (String) The namespace of the metric. +- `namespace` (String) The namespace of the metric. For more information, see the table in [services that publish CloudWatch metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) in the *Amazon CloudWatch User Guide*. ### Nested Schema for `target_tracking_scaling_policy_configuration.customized_metric_specification.metrics.metric_stat.metric.dimensions` @@ -141,5 +190,12 @@ Read-Only: Read-Only: -- `predefined_metric_type` (String) The metric type. The ALBRequestCountPerTarget metric type applies only to Spot Fleets and ECS services. -- `resource_label` (String) Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ALBRequestCountPerTarget and there is a target group attached to the Spot Fleet or ECS service. +- `predefined_metric_type` (String) The metric type. The ``ALBRequestCountPerTarget`` metric type applies only to Spot fleet requests and ECS services. +- `resource_label` (String) Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ``ALBRequestCountPerTarget`` and there is a target group attached to the Spot Fleet or ECS service. + You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). The format of the resource label is: + ``app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff``. + Where: + + app// is the final portion of the load balancer ARN + + targetgroup// is the final portion of the target group ARN. + + To find the ARN for an Application Load Balancer, use the [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operation. To find the ARN for the target group, use the [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) API operation. diff --git a/docs/data-sources/bedrock_flow_alias.md b/docs/data-sources/bedrock_flow_alias.md new file mode 100644 index 000000000..b791f7c65 --- /dev/null +++ b/docs/data-sources/bedrock_flow_alias.md @@ -0,0 +1,40 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_bedrock_flow_alias Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Bedrock::FlowAlias +--- + +# awscc_bedrock_flow_alias (Data Source) + +Data Source schema for AWS::Bedrock::FlowAlias + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `arn` (String) Arn of the Flow Alias +- `created_at` (String) Time Stamp. +- `description` (String) Description of the Resource. +- `flow_alias_id` (String) Id for a Flow Alias generated at the server side. +- `flow_arn` (String) Arn representation of the Flow +- `flow_id` (String) Identifier for a flow resource. +- `name` (String) Name for a resource. +- `routing_configuration` (Attributes List) Routing configuration for a Flow alias. (see [below for nested schema](#nestedatt--routing_configuration)) +- `tags` (Map of String) A map of tag keys and values +- `updated_at` (String) Time Stamp. + + +### Nested Schema for `routing_configuration` + +Read-Only: + +- `flow_version` (String) Version. diff --git a/docs/data-sources/bedrock_flow_version.md b/docs/data-sources/bedrock_flow_version.md new file mode 100644 index 000000000..5a014a641 --- /dev/null +++ b/docs/data-sources/bedrock_flow_version.md @@ -0,0 +1,245 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_bedrock_flow_version Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Bedrock::FlowVersion +--- + +# awscc_bedrock_flow_version (Data Source) + +Data Source schema for AWS::Bedrock::FlowVersion + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `created_at` (String) Time Stamp. +- `definition` (Attributes) Flow definition (see [below for nested schema](#nestedatt--definition)) +- `description` (String) Description of the flow version +- `execution_role_arn` (String) ARN of a IAM role +- `flow_arn` (String) Arn representation of the Flow +- `flow_id` (String) Identifier for a Flow +- `name` (String) Name for the flow +- `status` (String) Schema Type for Flow APIs +- `version` (String) Numerical Version. + + +### Nested Schema for `definition` + +Read-Only: + +- `connections` (Attributes List) List of connections (see [below for nested schema](#nestedatt--definition--connections)) +- `nodes` (Attributes List) List of nodes in a flow (see [below for nested schema](#nestedatt--definition--nodes)) + + +### Nested Schema for `definition.connections` + +Read-Only: + +- `configuration` (Attributes) Connection configuration (see [below for nested schema](#nestedatt--definition--connections--configuration)) +- `name` (String) Name of a connection in a flow +- `source` (String) Name of a node in a flow +- `target` (String) Name of a node in a flow +- `type` (String) Connection type + + +### Nested Schema for `definition.connections.configuration` + +Read-Only: + +- `conditional` (Attributes) Conditional connection configuration (see [below for nested schema](#nestedatt--definition--connections--configuration--conditional)) +- `data` (Attributes) Data connection configuration (see [below for nested schema](#nestedatt--definition--connections--configuration--data)) + + +### Nested Schema for `definition.connections.configuration.conditional` + +Read-Only: + +- `condition` (String) Name of a condition in a flow + + + +### Nested Schema for `definition.connections.configuration.data` + +Read-Only: + +- `source_output` (String) Name of a node output in a flow +- `target_input` (String) Name of a node input in a flow + + + + + +### Nested Schema for `definition.nodes` + +Read-Only: + +- `configuration` (Attributes) Node configuration in a flow (see [below for nested schema](#nestedatt--definition--nodes--configuration)) +- `inputs` (Attributes List) List of node inputs in a flow (see [below for nested schema](#nestedatt--definition--nodes--inputs)) +- `name` (String) Name of a node in a flow +- `outputs` (Attributes List) List of node outputs in a flow (see [below for nested schema](#nestedatt--definition--nodes--outputs)) +- `type` (String) Flow node types + + +### Nested Schema for `definition.nodes.configuration` + +Read-Only: + +- `condition` (Attributes) Condition flow node configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--condition)) +- `input` (String) Input flow node configuration +- `knowledge_base` (Attributes) Knowledge base flow node configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--knowledge_base)) +- `lambda_function` (Attributes) Lambda function flow node configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--lambda_function)) +- `lex` (Attributes) Lex flow node configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--lex)) +- `output` (String) Output flow node configuration +- `prompt` (Attributes) Prompt flow node configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt)) + + +### Nested Schema for `definition.nodes.configuration.condition` + +Read-Only: + +- `conditions` (Attributes List) List of conditions in a condition node (see [below for nested schema](#nestedatt--definition--nodes--configuration--condition--conditions)) + + +### Nested Schema for `definition.nodes.configuration.condition.conditions` + +Read-Only: + +- `expression` (String) Expression for a condition in a flow +- `name` (String) Name of a condition in a flow + + + + +### Nested Schema for `definition.nodes.configuration.knowledge_base` + +Read-Only: + +- `knowledge_base_id` (String) Identifier of the KnowledgeBase +- `model_id` (String) ARN or name of a Bedrock model. + + + +### Nested Schema for `definition.nodes.configuration.lambda_function` + +Read-Only: + +- `lambda_arn` (String) ARN of a Lambda. + + + +### Nested Schema for `definition.nodes.configuration.lex` + +Read-Only: + +- `bot_alias_arn` (String) ARN of a Lex bot alias +- `locale_id` (String) Lex bot locale id + + + +### Nested Schema for `definition.nodes.configuration.prompt` + +Read-Only: + +- `source_configuration` (Attributes) Prompt source configuration for prompt node (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration)) + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration` + +Read-Only: + +- `inline` (Attributes) Inline prompt configuration for prompt node (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration--inline)) +- `resource` (Attributes) Resource prompt configuration for prompt node (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration--resource)) + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration.inline` + +Read-Only: + +- `inference_configuration` (Attributes) Model inference configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration--inline--inference_configuration)) +- `model_id` (String) ARN or name of a Bedrock model. +- `template_configuration` (Attributes) Prompt template configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration--inline--template_configuration)) +- `template_type` (String) Prompt template type + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration.inline.inference_configuration` + +Read-Only: + +- `text` (Attributes) Prompt model inference configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration--inline--inference_configuration--text)) + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration.inline.inference_configuration.text` + +Read-Only: + +- `max_tokens` (Number) Maximum length of output +- `stop_sequences` (List of String) List of stop sequences +- `temperature` (Number) Controls randomness, higher values increase diversity +- `top_k` (Number) Sample from the k most likely next tokens +- `top_p` (Number) Cumulative probability cutoff for token selection + + + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration.inline.template_configuration` + +Read-Only: + +- `text` (Attributes) Configuration for text prompt template (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration--inline--template_configuration--text)) + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration.inline.template_configuration.text` + +Read-Only: + +- `input_variables` (Attributes List) List of input variables (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration--inline--template_configuration--text--input_variables)) +- `text` (String) Prompt content for String prompt template + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration.inline.template_configuration.text.input_variables` + +Read-Only: + +- `name` (String) Name for an input variable + + + + + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration.resource` + +Read-Only: + +- `prompt_arn` (String) ARN of a prompt resource possibly with a version + + + + + + +### Nested Schema for `definition.nodes.inputs` + +Read-Only: + +- `expression` (String) Expression for a node input in a flow +- `name` (String) Name of a node input in a flow +- `type` (String) Type of input/output for a node in a flow + + + +### Nested Schema for `definition.nodes.outputs` + +Read-Only: + +- `name` (String) Name of a node output in a flow +- `type` (String) Type of input/output for a node in a flow diff --git a/docs/data-sources/bedrock_knowledge_base.md b/docs/data-sources/bedrock_knowledge_base.md index 76be225ed..7dc4f0029 100644 --- a/docs/data-sources/bedrock_knowledge_base.md +++ b/docs/data-sources/bedrock_knowledge_base.md @@ -48,6 +48,23 @@ Read-Only: Read-Only: - `embedding_model_arn` (String) The ARN of the model used to create vector embeddings for the knowledge base. +- `embedding_model_configuration` (Attributes) The embeddings model configuration details for the vector model used in Knowledge Base. (see [below for nested schema](#nestedatt--knowledge_base_configuration--vector_knowledge_base_configuration--embedding_model_configuration)) + + +### Nested Schema for `knowledge_base_configuration.vector_knowledge_base_configuration.embedding_model_configuration` + +Read-Only: + +- `bedrock_embedding_model_configuration` (Attributes) The vector configuration details for the Bedrock embeddings model. (see [below for nested schema](#nestedatt--knowledge_base_configuration--vector_knowledge_base_configuration--embedding_model_configuration--bedrock_embedding_model_configuration)) + + +### Nested Schema for `knowledge_base_configuration.vector_knowledge_base_configuration.embedding_model_configuration.bedrock_embedding_model_configuration` + +Read-Only: + +- `dimensions` (Number) The dimensions details for the vector configuration used on the Bedrock embeddings model. + + @@ -56,11 +73,36 @@ Read-Only: Read-Only: +- `mongo_db_atlas_configuration` (Attributes) Contains the storage configuration of the knowledge base in MongoDb Atlas Cloud. (see [below for nested schema](#nestedatt--storage_configuration--mongo_db_atlas_configuration)) - `opensearch_serverless_configuration` (Attributes) Contains the storage configuration of the knowledge base in Amazon OpenSearch Service. (see [below for nested schema](#nestedatt--storage_configuration--opensearch_serverless_configuration)) - `pinecone_configuration` (Attributes) Contains the storage configuration of the knowledge base in Pinecone. (see [below for nested schema](#nestedatt--storage_configuration--pinecone_configuration)) - `rds_configuration` (Attributes) Contains details about the storage configuration of the knowledge base in Amazon RDS. For more information, see Create a vector index in Amazon RDS. (see [below for nested schema](#nestedatt--storage_configuration--rds_configuration)) - `type` (String) The storage type of a knowledge base. + +### Nested Schema for `storage_configuration.mongo_db_atlas_configuration` + +Read-Only: + +- `collection_name` (String) Name of the collection within MongoDB Atlas. +- `credentials_secret_arn` (String) The ARN of the secret that you created in AWS Secrets Manager that is linked to your Amazon Mongo database. +- `database_name` (String) Name of the database within MongoDB Atlas. +- `endpoint` (String) MongoDB Atlas endpoint. +- `endpoint_service_name` (String) MongoDB Atlas endpoint service name. +- `field_mapping` (Attributes) Contains the names of the fields to which to map information about the vector store. (see [below for nested schema](#nestedatt--storage_configuration--mongo_db_atlas_configuration--field_mapping)) +- `vector_index_name` (String) Name of a MongoDB Atlas index. + + +### Nested Schema for `storage_configuration.mongo_db_atlas_configuration.field_mapping` + +Read-Only: + +- `metadata_field` (String) The name of the field in which Amazon Bedrock stores metadata about the vector store. +- `text_field` (String) The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. +- `vector_field` (String) The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources. + + + ### Nested Schema for `storage_configuration.opensearch_serverless_configuration` diff --git a/docs/data-sources/bedrock_prompt.md b/docs/data-sources/bedrock_prompt.md new file mode 100644 index 000000000..3de85f0ec --- /dev/null +++ b/docs/data-sources/bedrock_prompt.md @@ -0,0 +1,98 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_bedrock_prompt Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Bedrock::Prompt +--- + +# awscc_bedrock_prompt (Data Source) + +Data Source schema for AWS::Bedrock::Prompt + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `arn` (String) ARN of a prompt resource possibly with a version +- `created_at` (String) Time Stamp. +- `customer_encryption_key_arn` (String) A KMS key ARN +- `default_variant` (String) Name for a variant. +- `description` (String) Name for a prompt resource. +- `name` (String) Name for a prompt resource. +- `prompt_id` (String) Identifier for a Prompt +- `tags` (Map of String) A map of tag keys and values +- `updated_at` (String) Time Stamp. +- `variants` (Attributes List) List of prompt variants (see [below for nested schema](#nestedatt--variants)) +- `version` (String) Draft Version. + + +### Nested Schema for `variants` + +Read-Only: + +- `inference_configuration` (Attributes) Model inference configuration (see [below for nested schema](#nestedatt--variants--inference_configuration)) +- `model_id` (String) ARN or name of a Bedrock model. +- `name` (String) Name for a variant. +- `template_configuration` (Attributes) Prompt template configuration (see [below for nested schema](#nestedatt--variants--template_configuration)) +- `template_type` (String) Prompt template type + + +### Nested Schema for `variants.inference_configuration` + +Read-Only: + +- `text` (Attributes) Prompt model inference configuration (see [below for nested schema](#nestedatt--variants--inference_configuration--text)) + + +### Nested Schema for `variants.inference_configuration.text` + +Read-Only: + +- `max_tokens` (Number) Maximum length of output +- `stop_sequences` (List of String) List of stop sequences +- `temperature` (Number) Controls randomness, higher values increase diversity +- `top_k` (Number) Sample from the k most likely next tokens +- `top_p` (Number) Cumulative probability cutoff for token selection + + + + +### Nested Schema for `variants.template_configuration` + +Read-Only: + +- `text` (Attributes) Configuration for text prompt template (see [below for nested schema](#nestedatt--variants--template_configuration--text)) + + +### Nested Schema for `variants.template_configuration.text` + +Read-Only: + +- `input_variables` (Attributes List) List of input variables (see [below for nested schema](#nestedatt--variants--template_configuration--text--input_variables)) +- `text` (String) Prompt content for String prompt template +- `text_s3_location` (Attributes) The identifier for the S3 resource. (see [below for nested schema](#nestedatt--variants--template_configuration--text--text_s3_location)) + + +### Nested Schema for `variants.template_configuration.text.input_variables` + +Read-Only: + +- `name` (String) Name for an input variable + + + +### Nested Schema for `variants.template_configuration.text.text_s3_location` + +Read-Only: + +- `bucket` (String) A bucket in S3 +- `key` (String) A object key in S3 +- `version` (String) The version of the the S3 object to use diff --git a/docs/data-sources/bedrock_prompt_version.md b/docs/data-sources/bedrock_prompt_version.md new file mode 100644 index 000000000..e9c4d5caa --- /dev/null +++ b/docs/data-sources/bedrock_prompt_version.md @@ -0,0 +1,86 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_bedrock_prompt_version Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Bedrock::PromptVersion +--- + +# awscc_bedrock_prompt_version (Data Source) + +Data Source schema for AWS::Bedrock::PromptVersion + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `arn` (String) ARN of a prompt version resource +- `created_at` (String) Time Stamp. +- `default_variant` (String) Name for a variant. +- `description` (String) Description for a prompt version resource. +- `name` (String) Name for a prompt resource. +- `prompt_arn` (String) ARN of a prompt resource possibly with a version +- `prompt_id` (String) Identifier for a Prompt +- `updated_at` (String) Time Stamp. +- `variants` (Attributes List) List of prompt variants (see [below for nested schema](#nestedatt--variants)) +- `version` (String) Version. + + +### Nested Schema for `variants` + +Read-Only: + +- `inference_configuration` (Attributes) Model inference configuration (see [below for nested schema](#nestedatt--variants--inference_configuration)) +- `model_id` (String) ARN or name of a Bedrock model. +- `name` (String) Name for a variant. +- `template_configuration` (Attributes) Prompt template configuration (see [below for nested schema](#nestedatt--variants--template_configuration)) +- `template_type` (String) Prompt template type + + +### Nested Schema for `variants.inference_configuration` + +Read-Only: + +- `text` (Attributes) Prompt model inference configuration (see [below for nested schema](#nestedatt--variants--inference_configuration--text)) + + +### Nested Schema for `variants.inference_configuration.text` + +Read-Only: + +- `max_tokens` (Number) Maximum length of output +- `stop_sequences` (List of String) List of stop sequences +- `temperature` (Number) Controls randomness, higher values increase diversity +- `top_k` (Number) Sample from the k most likely next tokens +- `top_p` (Number) Cumulative probability cutoff for token selection + + + + +### Nested Schema for `variants.template_configuration` + +Read-Only: + +- `text` (Attributes) Configuration for text prompt template (see [below for nested schema](#nestedatt--variants--template_configuration--text)) + + +### Nested Schema for `variants.template_configuration.text` + +Read-Only: + +- `input_variables` (Attributes List) List of input variables (see [below for nested schema](#nestedatt--variants--template_configuration--text--input_variables)) +- `text` (String) Prompt content for String prompt template + + +### Nested Schema for `variants.template_configuration.text.input_variables` + +Read-Only: + +- `name` (String) Name for an input variable diff --git a/docs/data-sources/bedrock_prompts.md b/docs/data-sources/bedrock_prompts.md new file mode 100644 index 000000000..1716a0b0d --- /dev/null +++ b/docs/data-sources/bedrock_prompts.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_bedrock_prompts Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::Bedrock::Prompt +--- + +# awscc_bedrock_prompts (Data Source) + +Plural Data Source schema for AWS::Bedrock::Prompt + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/ec2_eip_association.md b/docs/data-sources/ec2_eip_association.md index 9f417e411..7bab91e45 100644 --- a/docs/data-sources/ec2_eip_association.md +++ b/docs/data-sources/ec2_eip_association.md @@ -21,9 +21,10 @@ Data Source schema for AWS::EC2::EIPAssociation ### Read-Only -- `allocation_id` (String) The allocation ID. This is required for EC2-VPC. -- `eip` (String) The Elastic IP address to associate with the instance. -- `eip_association_id` (String) Composite ID of non-empty properties, to determine the identification. -- `instance_id` (String) The ID of the instance. -- `network_interface_id` (String) The ID of the network interface. -- `private_ip_address` (String) The primary or secondary private IP address to associate with the Elastic IP address. +- `allocation_id` (String) The allocation ID. This is required. +- `eip` (String) +- `eip_association_id` (String) +- `instance_id` (String) The ID of the instance. The instance must have exactly one attached network interface. You can specify either the instance ID or the network interface ID, but not both. +- `network_interface_id` (String) The ID of the network interface. If the instance has more than one network interface, you must specify a network interface ID. + You can specify either the instance ID or the network interface ID, but not both. +- `private_ip_address` (String) The primary or secondary private IP address to associate with the Elastic IP address. If no private IP address is specified, the Elastic IP address is associated with the primary private IP address. diff --git a/docs/data-sources/ec2_launch_template.md b/docs/data-sources/ec2_launch_template.md index 4181e6fea..8e6f39a07 100644 --- a/docs/data-sources/ec2_launch_template.md +++ b/docs/data-sources/ec2_launch_template.md @@ -37,9 +37,9 @@ Read-Only: - `block_device_mappings` (Attributes List) The block device mapping. (see [below for nested schema](#nestedatt--launch_template_data--block_device_mappings)) - `capacity_reservation_specification` (Attributes) The Capacity Reservation targeting option. If you do not specify this parameter, the instance's Capacity Reservation preference defaults to ``open``, which enables it to run in any open Capacity Reservation that has matching attributes (instance type, platform, Availability Zone). (see [below for nested schema](#nestedatt--launch_template_data--capacity_reservation_specification)) -- `cpu_options` (Attributes) The CPU options for the instance. For more information, see [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon Elastic Compute Cloud User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--cpu_options)) +- `cpu_options` (Attributes) The CPU options for the instance. For more information, see [Optimize CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon EC2 User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--cpu_options)) - `credit_specification` (Attributes) The credit option for CPU usage of the instance. Valid only for T instances. (see [below for nested schema](#nestedatt--launch_template_data--credit_specification)) -- `disable_api_stop` (Boolean) Indicates whether to enable the instance for stop protection. For more information, see [Stop protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection) in the *Amazon Elastic Compute Cloud User Guide*. +- `disable_api_stop` (Boolean) Indicates whether to enable the instance for stop protection. For more information, see [Enable stop protection for your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-stop-protection.html) in the *Amazon EC2 User Guide*. - `disable_api_termination` (Boolean) If you set this parameter to ``true``, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can. To change this attribute after launch, use [ModifyInstanceAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html). Alternatively, if you set ``InstanceInitiatedShutdownBehavior`` to ``terminate``, you can terminate the instance by running the shutdown command from the instance. - `ebs_optimized` (Boolean) Indicates whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance. - `elastic_gpu_specifications` (Attributes List) Deprecated. @@ -49,7 +49,7 @@ Read-Only: 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. (see [below for nested schema](#nestedatt--launch_template_data--elastic_inference_accelerators)) - `enclave_options` (Attributes) Indicates whether the instance is enabled for AWS Nitro Enclaves. For more information, see [What is Nitro Enclaves?](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html) in the *Nitro Enclaves User Guide*. You can't enable AWS Nitro Enclaves and hibernation on the same instance. (see [below for nested schema](#nestedatt--launch_template_data--enclave_options)) -- `hibernation_options` (Attributes) Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon Elastic Compute Cloud User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--hibernation_options)) +- `hibernation_options` (Attributes) Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your Amazon EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon EC2 User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--hibernation_options)) - `iam_instance_profile` (Attributes) The name or Amazon Resource Name (ARN) of an IAM instance profile. (see [below for nested schema](#nestedatt--launch_template_data--iam_instance_profile)) - `image_id` (String) The ID of the AMI. Alternatively, you can specify a Systems Manager parameter, which will resolve to an AMI ID on launch. Valid formats: @@ -72,7 +72,7 @@ Read-Only: If you specify ``InstanceRequirements``, you can't specify ``InstanceType``. Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``. For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements)) -- `instance_type` (String) The instance type. 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*. +- `instance_type` (String) The instance type. For more information, see [Amazon EC2 instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*. If you specify ``InstanceType``, you can't specify ``InstanceRequirements``. - `kernel_id` (String) The ID of the kernel. We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User Provided Kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide*. @@ -80,13 +80,13 @@ Read-Only: If you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in. - `license_specifications` (Attributes List) The license configurations. (see [below for nested schema](#nestedatt--launch_template_data--license_specifications)) - `maintenance_options` (Attributes) The maintenance options of your instance. (see [below for nested schema](#nestedatt--launch_template_data--maintenance_options)) -- `metadata_options` (Attributes) The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon Elastic Compute Cloud User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--metadata_options)) +- `metadata_options` (Attributes) The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon EC2 User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--metadata_options)) - `monitoring` (Attributes) The monitoring for the instance. (see [below for nested schema](#nestedatt--launch_template_data--monitoring)) - `network_interfaces` (Attributes List) The network interfaces for the instance. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces)) - `placement` (Attributes) The placement for the instance. (see [below for nested schema](#nestedatt--launch_template_data--placement)) - `private_dns_name_options` (Attributes) The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--private_dns_name_options)) - `ram_disk_id` (String) The ID of the RAM disk. - We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon Elastic Compute Cloud User Guide*. + We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide*. - `security_group_ids` (List of String) 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. - `security_groups` (List of String) The names of the security groups. For a nondefault VPC, you must use security group IDs instead. @@ -94,7 +94,7 @@ Read-Only: - `tag_specifications` (Attributes List) The tags to apply to the resources that are created during instance launch. To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html). To tag the launch template itself, use [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#cfn-ec2-launchtemplate-tagspecifications). (see [below for nested schema](#nestedatt--launch_template_data--tag_specifications)) -- `user_data` (String) The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Linux instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) (Linux) or [Work with instance user data](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instancedata-add-user-data.html) (Windows) in the *Amazon Elastic Compute Cloud User Guide*. +- `user_data` (String) The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Amazon EC2 instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) in the *Amazon EC2 User Guide*. If you are creating the launch template for use with BATCH, the user data must be provided in the [MIME multi-part archive format](https://docs.aws.amazon.com/https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *User Guide*. @@ -180,7 +180,7 @@ Read-Only: Read-Only: -- `type` (String) The type of Elastic Graphics accelerator. For more information about the values to specify for ``Type``, see [Elastic Graphics Basics](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html#elastic-graphics-basics), specifically the Elastic Graphics accelerator column, in the *Amazon Elastic Compute Cloud User Guide for Windows Instances*. +- `type` (String) The type of Elastic Graphics accelerator. @@ -333,7 +333,7 @@ Read-Only: Default: ``hdd`` and ``ssd`` - `max_spot_price_as_percentage_of_optimal_on_demand_price` (Number) [Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold. The parameter accepts an integer, which Amazon EC2 interprets as a percentage. - If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price. + If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price. Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``. - `memory_gi_b_per_v_cpu` (Attributes) The minimum and maximum amount of memory per vCPU, in GiB. Default: No minimum or maximum limits (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--memory_gi_b_per_v_cpu)) @@ -503,7 +503,7 @@ Read-Only: - `device_index` (Number) The device index for the network interface attachment. Each network interface requires a device index. If you create a launch template that includes secondary network interfaces but not a primary network interface, then you must add a primary network interface as a launch parameter when you launch an instance from the template. - `ena_srd_specification` (Attributes) The ENA Express configuration for the network interface. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces--ena_srd_specification)) - `groups` (List of String) The IDs of one or more security groups. -- `interface_type` (String) The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon Elastic Compute Cloud User Guide*. +- `interface_type` (String) The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon EC2 User Guide*. If you are not creating an EFA, specify ``interface`` or omit this parameter. Valid values: ``interface`` | ``efa`` - `ipv_4_prefix_count` (Number) The number of IPv4 prefixes to be automatically assigned to the network interface. You cannot use this option if you use the ``Ipv4Prefix`` option. @@ -552,7 +552,7 @@ Read-Only: Read-Only: -- `ipv_4_prefix` (String) The IPv4 prefix. For information, see [Assigning prefixes to Amazon EC2 network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon Elastic Compute Cloud User Guide*. +- `ipv_4_prefix` (String) The IPv4 prefix. For information, see [Assigning prefixes to network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon EC2 User Guide*. @@ -612,8 +612,7 @@ Read-Only: Read-Only: -- `resource_type` (String) The type of resource to tag. - Valid Values lists all resource types for Amazon EC2 that can be tagged. When you create a launch template, you can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume. +- `resource_type` (String) The type of resource to tag. You can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume. To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html). - `tags` (Attributes List) The tags to apply to the resource. (see [below for nested schema](#nestedatt--launch_template_data--tag_specifications--tags)) @@ -633,7 +632,7 @@ Read-Only: Read-Only: -- `resource_type` (String) The type of resource. To tag the launch template, ``ResourceType`` must be ``launch-template``. +- `resource_type` (String) The type of resource. To tag a launch template, ``ResourceType`` must be ``launch-template``. - `tags` (Attributes List) The tags for the resource. (see [below for nested schema](#nestedatt--tag_specifications--tags)) diff --git a/docs/data-sources/ec2_network_interface_attachment.md b/docs/data-sources/ec2_network_interface_attachment.md index 9b31ed872..94d7f0890 100644 --- a/docs/data-sources/ec2_network_interface_attachment.md +++ b/docs/data-sources/ec2_network_interface_attachment.md @@ -21,10 +21,10 @@ Data Source schema for AWS::EC2::NetworkInterfaceAttachment ### Read-Only -- `attachment_id` (String) The ID of the network interface attachment. -- `delete_on_termination` (Boolean) Whether to delete the network interface when the instance terminates. By default, this value is set to true. -- `device_index` (String) The network interface's position in the attachment order. For example, the first attached network interface has a DeviceIndex of 0. -- `ena_srd_specification` (Attributes) (see [below for nested schema](#nestedatt--ena_srd_specification)) +- `attachment_id` (String) +- `delete_on_termination` (Boolean) Whether to delete the network interface when the instance terminates. By default, this value is set to ``true``. +- `device_index` (String) The network interface's position in the attachment order. For example, the first attached network interface has a ``DeviceIndex`` of 0. +- `ena_srd_specification` (Attributes) Configures ENA Express for the network interface that this action attaches to the instance. (see [below for nested schema](#nestedatt--ena_srd_specification)) - `instance_id` (String) The ID of the instance to which you will attach the ENI. - `network_interface_id` (String) The ID of the ENI that you want to attach. @@ -33,8 +33,8 @@ Data Source schema for AWS::EC2::NetworkInterfaceAttachment Read-Only: -- `ena_srd_enabled` (Boolean) -- `ena_srd_udp_specification` (Attributes) (see [below for nested schema](#nestedatt--ena_srd_specification--ena_srd_udp_specification)) +- `ena_srd_enabled` (Boolean) Indicates whether ENA Express is enabled for the network interface. +- `ena_srd_udp_specification` (Attributes) Configures ENA Express for UDP network traffic. (see [below for nested schema](#nestedatt--ena_srd_specification--ena_srd_udp_specification)) ### Nested Schema for `ena_srd_specification.ena_srd_udp_specification` diff --git a/docs/data-sources/ecr_repository.md b/docs/data-sources/ecr_repository.md index 80f4ff12d..70adadcb8 100644 --- a/docs/data-sources/ecr_repository.md +++ b/docs/data-sources/ecr_repository.md @@ -41,7 +41,7 @@ Read-Only: - `encryption_type` (String) 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 KMSlong key stored in KMS. When you use KMS to encrypt your data, you can either use the default AWS managed KMS key for Amazon ECR, or specify your own KMS key, which you already created. For more information, see [Protecting data using server-side encryption with an key stored in (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 *Ama + 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*. - `kms_key` (String) If you use the ``KMS`` encryption type, specify the KMS key to use for encryption. The alias, key ID, or full ARN of the 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 KMS key for Amazon ECR will be used. diff --git a/docs/data-sources/ecr_repository_creation_template.md b/docs/data-sources/ecr_repository_creation_template.md index 946d056c5..ca55306d6 100644 --- a/docs/data-sources/ecr_repository_creation_template.md +++ b/docs/data-sources/ecr_repository_creation_template.md @@ -23,6 +23,7 @@ Data Source schema for AWS::ECR::RepositoryCreationTemplate - `applied_for` (Set of String) A list of enumerable Strings representing the repository creation scenarios that the template will apply towards. - `created_at` (String) Create timestamp of the template. +- `custom_role_arn` (String) The ARN of the role to be assumed by ECR. This role must be in the same account as the registry that you are configuring. - `description` (String) The description of the template. - `encryption_configuration` (Attributes) 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. diff --git a/docs/data-sources/eks_cluster.md b/docs/data-sources/eks_cluster.md index fa672e03f..33afcbb17 100644 --- a/docs/data-sources/eks_cluster.md +++ b/docs/data-sources/eks_cluster.md @@ -38,6 +38,7 @@ Data Source schema for AWS::EKS::Cluster - `resources_vpc_config` (Attributes) An object representing the VPC configuration to use for an Amazon EKS cluster. (see [below for nested schema](#nestedatt--resources_vpc_config)) - `role_arn` (String) The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. - `tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) +- `upgrade_policy` (Attributes) An object representing the Upgrade Policy to use for the cluster. (see [below for nested schema](#nestedatt--upgrade_policy)) - `version` (String) The desired Kubernetes version for your cluster. If you don't specify a value here, the latest version available in Amazon EKS is used. @@ -137,3 +138,11 @@ Read-Only: - `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. - `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + + + +### Nested Schema for `upgrade_policy` + +Read-Only: + +- `support_type` (String) Specify the support type for your cluster. diff --git a/docs/data-sources/globalaccelerator_cross_account_attachment.md b/docs/data-sources/globalaccelerator_cross_account_attachment.md index 9c55de391..19a61fb41 100644 --- a/docs/data-sources/globalaccelerator_cross_account_attachment.md +++ b/docs/data-sources/globalaccelerator_cross_account_attachment.md @@ -32,6 +32,7 @@ Data Source schema for AWS::GlobalAccelerator::CrossAccountAttachment Read-Only: +- `cidr` (String) - `endpoint_id` (String) - `region` (String) diff --git a/docs/data-sources/glue_trigger.md b/docs/data-sources/glue_trigger.md new file mode 100644 index 000000000..c0619bb06 --- /dev/null +++ b/docs/data-sources/glue_trigger.md @@ -0,0 +1,82 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_glue_trigger Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Glue::Trigger +--- + +# awscc_glue_trigger (Data Source) + +Data Source schema for AWS::Glue::Trigger + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `actions` (Attributes List) The actions initiated by this trigger. (see [below for nested schema](#nestedatt--actions)) +- `description` (String) A description of this trigger. +- `event_batching_condition` (Attributes) Batch condition that must be met (specified number of events received or batch time window expired) before EventBridge event trigger fires. (see [below for nested schema](#nestedatt--event_batching_condition)) +- `name` (String) The name of the trigger. +- `predicate` (Attributes) The predicate of this trigger, which defines when it will fire. (see [below for nested schema](#nestedatt--predicate)) +- `schedule` (String) A cron expression used to specify the schedule. +- `start_on_creation` (Boolean) Set to true to start SCHEDULED and CONDITIONAL triggers when created. True is not supported for ON_DEMAND triggers. +- `tags` (String) The tags to use with this trigger. +- `type` (String) The type of trigger that this is. +- `workflow_name` (String) The name of the workflow associated with the trigger. + + +### Nested Schema for `actions` + +Read-Only: + +- `arguments` (String) The job arguments used when this trigger fires. For this job run, they replace the default arguments set in the job definition itself. +- `crawler_name` (String) The name of the crawler to be used with this action. +- `job_name` (String) The name of a job to be executed. +- `notification_property` (Attributes) Specifies configuration properties of a job run notification. (see [below for nested schema](#nestedatt--actions--notification_property)) +- `security_configuration` (String) The name of the SecurityConfiguration structure to be used with this action. +- `timeout` (Number) The JobRun timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status. The default is 2,880 minutes (48 hours). This overrides the timeout value set in the parent job. + + +### Nested Schema for `actions.notification_property` + +Read-Only: + +- `notify_delay_after` (Number) After a job run starts, the number of minutes to wait before sending a job run delay notification + + + + +### Nested Schema for `event_batching_condition` + +Read-Only: + +- `batch_size` (Number) Number of events that must be received from Amazon EventBridge before EventBridge event trigger fires. +- `batch_window` (Number) Window of time in seconds after which EventBridge event trigger fires. Window starts when first event is received. + + + +### Nested Schema for `predicate` + +Read-Only: + +- `conditions` (Attributes List) A list of the conditions that determine when the trigger will fire. (see [below for nested schema](#nestedatt--predicate--conditions)) +- `logical` (String) An optional field if only one condition is listed. If multiple conditions are listed, then this field is required. + + +### Nested Schema for `predicate.conditions` + +Read-Only: + +- `crawl_state` (String) The state of the crawler to which this condition applies. +- `crawler_name` (String) The name of the crawler to which this condition applies. +- `job_name` (String) The name of the job whose JobRuns this condition applies to, and on which this trigger waits. +- `logical_operator` (String) A logical operator. +- `state` (String) The condition state. Currently, the values supported are SUCCEEDED, STOPPED, TIMEOUT, and FAILED. diff --git a/docs/data-sources/glue_triggers.md b/docs/data-sources/glue_triggers.md new file mode 100644 index 000000000..13bf7f946 --- /dev/null +++ b/docs/data-sources/glue_triggers.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_glue_triggers Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::Glue::Trigger +--- + +# awscc_glue_triggers (Data Source) + +Plural Data Source schema for AWS::Glue::Trigger + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/lightsail_alarm.md b/docs/data-sources/lightsail_alarm.md index 6fe85204a..db8e9e9a3 100644 --- a/docs/data-sources/lightsail_alarm.md +++ b/docs/data-sources/lightsail_alarm.md @@ -28,7 +28,7 @@ Data Source schema for AWS::Lightsail::Alarm - `datapoints_to_alarm` (Number) The number of data points that must be not within the specified threshold to trigger the alarm. If you are setting an "M out of N" alarm, this value (datapointsToAlarm) is the M. - `evaluation_periods` (Number) The number of most recent periods over which data is compared to the specified threshold. If you are setting an "M out of N" alarm, this value (evaluationPeriods) is the N. - `metric_name` (String) The name of the metric to associate with the alarm. -- `monitored_resource_name` (String) The validation status of the SSL/TLS certificate. +- `monitored_resource_name` (String) The name of the Lightsail resource that the alarm monitors. - `notification_enabled` (Boolean) Indicates whether the alarm is enabled. Notifications are enabled by default if you don't specify this parameter. - `notification_triggers` (Set of String) The alarm states that trigger a notification. - `state` (String) The current state of the alarm. diff --git a/docs/data-sources/mediaconnect_flow_output.md b/docs/data-sources/mediaconnect_flow_output.md index d1c16ab02..e4f277833 100644 --- a/docs/data-sources/mediaconnect_flow_output.md +++ b/docs/data-sources/mediaconnect_flow_output.md @@ -31,6 +31,7 @@ Data Source schema for AWS::MediaConnect::FlowOutput - `min_latency` (Number) The minimum latency in milliseconds. - `name` (String) The name of the output. This value must be unique within the current flow. - `output_arn` (String) The ARN of the output. +- `output_status` (String) An indication of whether the output should transmit data or not. - `port` (Number) The port to use when content is distributed to this output. - `protocol` (String) The protocol that is used by the source or output. - `remote_id` (String) The remote ID for the Zixi-pull stream. diff --git a/docs/data-sources/mediapackagev2_channel.md b/docs/data-sources/mediapackagev2_channel.md index 56db9af97..2ba2484b2 100644 --- a/docs/data-sources/mediapackagev2_channel.md +++ b/docs/data-sources/mediapackagev2_channel.md @@ -28,6 +28,7 @@ Data Source schema for AWS::MediaPackageV2::Channel - `description` (String)

Enter any descriptive text that helps you to identify the channel.

- `ingest_endpoint_urls` (List of String) - `ingest_endpoints` (Attributes List)

The list of ingest endpoints.

(see [below for nested schema](#nestedatt--ingest_endpoints)) +- `input_type` (String) - `modified_at` (String)

The date and time the channel was modified.

- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) diff --git a/docs/data-sources/mediapackagev2_origin_endpoint.md b/docs/data-sources/mediapackagev2_origin_endpoint.md index 0243177e9..1bcdd5b3e 100644 --- a/docs/data-sources/mediapackagev2_origin_endpoint.md +++ b/docs/data-sources/mediapackagev2_origin_endpoint.md @@ -29,6 +29,7 @@ Data Source schema for AWS::MediaPackageV2::OriginEndpoint - `dash_manifest_urls` (List of String) - `dash_manifests` (Attributes List)

A DASH manifest configuration.

(see [below for nested schema](#nestedatt--dash_manifests)) - `description` (String)

Enter any descriptive text that helps you to identify the origin endpoint.

+- `force_endpoint_error_configuration` (Attributes)

The failover settings for the endpoint.

(see [below for nested schema](#nestedatt--force_endpoint_error_configuration)) - `hls_manifest_urls` (List of String) - `hls_manifests` (Attributes List)

An HTTP live streaming (HLS) manifest configuration.

(see [below for nested schema](#nestedatt--hls_manifests)) - `low_latency_hls_manifest_urls` (List of String) @@ -86,6 +87,28 @@ Read-Only: + +### Nested Schema for `force_endpoint_error_configuration` + +Read-Only: + +- `endpoint_error_conditions` (List of String)

The failover settings for the endpoint. The options are:

+
    +
  • +

    + STALE_MANIFEST - The manifest stalled and there a no new segments or parts.

    +
  • +
  • +

    + INCOMPLETE_MANIFEST - There is a gap in the manifest.

    +
  • +
  • +

    + MISSING_DRM_KEY - Key rotation is enabled but we're unable to fetch the key for the current key period.

    +
  • +
+ + ### Nested Schema for `hls_manifests` diff --git a/docs/data-sources/rds_db_cluster.md b/docs/data-sources/rds_db_cluster.md index 28ef886e4..09b38643b 100644 --- a/docs/data-sources/rds_db_cluster.md +++ b/docs/data-sources/rds_db_cluster.md @@ -237,7 +237,7 @@ Data Source schema for AWS::RDS::DBCluster Constraints: Minimum 30-minute window. Valid for: Aurora DB clusters and Multi-AZ DB clusters - `publicly_accessible` (Boolean) Specifies whether the DB cluster is publicly accessible. - When the DB cluster is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP address from within the DB cluster's virtual private cloud (VPC). It resolves to the public IP address from outside of the DB cluster's VPC. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it. + When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it. When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address. Valid for Cluster Type: Multi-AZ DB clusters only Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified. @@ -358,7 +358,7 @@ Read-Only: Read-Only: - `kms_key_id` (String) The AWS KMS key identifier that is used to encrypt the secret. -- `secret_arn` (String) The Amazon Resource Name (ARN) of the secret. +- `secret_arn` (String) The Amazon Resource Name (ARN) of the secret. This parameter is a return value that you can retrieve using the ``Fn::GetAtt`` intrinsic function. For more information, see [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#aws-resource-rds-dbcluster-return-values). diff --git a/docs/data-sources/rds_db_instance.md b/docs/data-sources/rds_db_instance.md index 6edc5f52d..50541cc7f 100644 --- a/docs/data-sources/rds_db_instance.md +++ b/docs/data-sources/rds_db_instance.md @@ -74,7 +74,7 @@ Data Source schema for AWS::RDS::DBInstance Not applicable. The associated roles are managed by the DB cluster. (see [below for nested schema](#nestedatt--associated_roles)) - `auto_minor_version_upgrade` (Boolean) A value that indicates whether minor engine upgrades are applied automatically to the DB instance during the maintenance window. By default, minor engine upgrades are applied automatically. - `automatic_backup_replication_kms_key_id` (String) The AWS KMS key identifier for encryption of the replicated automated backups. The KMS key ID is the Amazon Resource Name (ARN) for the KMS encryption key in the destination AWS-Region, for example, ``arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE``. -- `automatic_backup_replication_region` (String) The destination region for the backup replication of the DB instance. For more info, see [Replicating automated backups to another Region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReplicateBackups.html) in the *Amazon RDS User Guide*. +- `automatic_backup_replication_region` (String) - `availability_zone` (String) The Availability Zone (AZ) where the database will be created. For information on AWS-Regions and Availability Zones, see [Regions and Availability Zones](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html). For Amazon Aurora, each Aurora DB cluster hosts copies of its storage in three separate Availability Zones. Specify one of these Availability Zones. Aurora automatically chooses an appropriate Availability Zone if you don't specify one. Default: A random, system-chosen Availability Zone in the endpoint's AWS-Region. @@ -205,7 +205,6 @@ Data Source schema for AWS::RDS::DBInstance + ``DBClusterIdentifier`` + ``DBName`` + ``DeleteAutomatedBackups`` - + ``EnablePerformanceInsights`` + ``KmsKeyId`` + ``MasterUsername`` + ``MasterUserPassword`` @@ -580,7 +579,7 @@ Read-Only: Read-Only: - `kms_key_id` (String) The AWS KMS key identifier that is used to encrypt the secret. -- `secret_arn` (String) The Amazon Resource Name (ARN) of the secret. +- `secret_arn` (String) The Amazon Resource Name (ARN) of the secret. This parameter is a return value that you can retrieve using the ``Fn::GetAtt`` intrinsic function. For more information, see [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#aws-resource-rds-dbinstance-return-values). diff --git a/docs/data-sources/secretsmanager_resource_policies.md b/docs/data-sources/secretsmanager_resource_policies.md new file mode 100644 index 000000000..39ac01167 --- /dev/null +++ b/docs/data-sources/secretsmanager_resource_policies.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_secretsmanager_resource_policies Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::SecretsManager::ResourcePolicy +--- + +# awscc_secretsmanager_resource_policies (Data Source) + +Plural Data Source schema for AWS::SecretsManager::ResourcePolicy + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/secretsmanager_resource_policy.md b/docs/data-sources/secretsmanager_resource_policy.md new file mode 100644 index 000000000..f07345a52 --- /dev/null +++ b/docs/data-sources/secretsmanager_resource_policy.md @@ -0,0 +1,27 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_secretsmanager_resource_policy Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::SecretsManager::ResourcePolicy +--- + +# awscc_secretsmanager_resource_policy (Data Source) + +Data Source schema for AWS::SecretsManager::ResourcePolicy + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `block_public_policy` (Boolean) Specifies whether to block resource-based policies that allow broad access to the secret. +- `resource_policy` (String) A JSON-formatted string for an AWS resource-based policy. +- `resource_policy_id` (String) The Arn of the secret. +- `secret_id` (String) The ARN or name of the secret to attach the resource-based policy. diff --git a/docs/data-sources/workspacesweb_user_settings.md b/docs/data-sources/workspacesweb_user_settings.md index aade698d1..69d77149e 100644 --- a/docs/data-sources/workspacesweb_user_settings.md +++ b/docs/data-sources/workspacesweb_user_settings.md @@ -26,6 +26,7 @@ Data Source schema for AWS::WorkSpacesWeb::UserSettings - `cookie_synchronization_configuration` (Attributes) (see [below for nested schema](#nestedatt--cookie_synchronization_configuration)) - `copy_allowed` (String) - `customer_managed_key` (String) +- `deep_link_allowed` (String) - `disconnect_timeout_in_minutes` (Number) - `download_allowed` (String) - `idle_disconnect_timeout_in_minutes` (Number) diff --git a/docs/resources/applicationautoscaling_scaling_policy.md b/docs/resources/applicationautoscaling_scaling_policy.md index 20d85fbda..10297577f 100644 --- a/docs/resources/applicationautoscaling_scaling_policy.md +++ b/docs/resources/applicationautoscaling_scaling_policy.md @@ -3,12 +3,14 @@ page_title: "awscc_applicationautoscaling_scaling_policy Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource Type definition for AWS::ApplicationAutoScaling::ScalingPolicy + The AWS::ApplicationAutoScaling::ScalingPolicy resource defines a scaling policy that Application Auto Scaling uses to adjust the capacity of a scalable target. + For more information, see Target tracking scaling policies https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html and Step scaling policies https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html in the Application Auto Scaling User Guide. --- # awscc_applicationautoscaling_scaling_policy (Resource) -Resource Type definition for AWS::ApplicationAutoScaling::ScalingPolicy +The ``AWS::ApplicationAutoScaling::ScalingPolicy`` resource defines a scaling policy that Application Auto Scaling uses to adjust the capacity of a scalable target. + For more information, see [Target tracking scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) and [Step scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html) in the *Application Auto Scaling User Guide*. @@ -18,28 +20,67 @@ Resource Type definition for AWS::ApplicationAutoScaling::ScalingPolicy ### Required - `policy_name` (String) The name of the scaling policy. - -Updates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing AWS::ApplicationAutoScaling::ScalingPolicy resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name. + Updates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing ``AWS::ApplicationAutoScaling::ScalingPolicy`` resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name. - `policy_type` (String) The scaling policy type. - -The following policy types are supported: - -TargetTrackingScaling Not supported for Amazon EMR - -StepScaling Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune. + The following policy types are supported: + ``TargetTrackingScaling``—Not supported for Amazon EMR + ``StepScaling``—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune. ### Optional - `resource_id` (String) The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. + + ECS service - The resource type is ``service`` and the unique identifier is the cluster name and service name. Example: ``service/my-cluster/my-service``. + + Spot Fleet - The resource type is ``spot-fleet-request`` and the unique identifier is the Spot Fleet request ID. Example: ``spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE``. + + EMR cluster - The resource type is ``instancegroup`` and the unique identifier is the cluster ID and instance group ID. Example: ``instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0``. + + AppStream 2.0 fleet - The resource type is ``fleet`` and the unique identifier is the fleet name. Example: ``fleet/sample-fleet``. + + DynamoDB table - The resource type is ``table`` and the unique identifier is the table name. Example: ``table/my-table``. + + DynamoDB global secondary index - The resource type is ``index`` and the unique identifier is the index name. Example: ``table/my-table/index/my-table-index``. + + Aurora DB cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:my-db-cluster``. + + SageMaker endpoint variant - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering``. + + Custom resources are not supported with a resource type. This parameter must specify the ``OutputValue`` from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our [GitHub repository](https://docs.aws.amazon.com/https://github.com/aws/aws-auto-scaling-custom-resource). + + Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: ``arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE``. + + Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: ``arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE``. + + Lambda provisioned concurrency - The resource type is ``function`` and the unique identifier is the function name with a function version or alias name suffix that is not ``$LATEST``. Example: ``function:my-function:prod`` or ``function:my-function:1``. + + Amazon Keyspaces table - The resource type is ``table`` and the unique identifier is the table name. Example: ``keyspace/mykeyspace/table/mytable``. + + Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: ``arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5``. + + Amazon ElastiCache replication group - The resource type is ``replication-group`` and the unique identifier is the replication group name. Example: ``replication-group/mycluster``. + + Neptune cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:mycluster``. + + SageMaker serverless endpoint - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering``. + + SageMaker inference component - The resource type is ``inference-component`` and the unique identifier is the resource ID. Example: ``inference-component/my-inference-component``. + + Pool of WorkSpaces - The resource type is ``workspacespool`` and the unique identifier is the pool ID. Example: ``workspacespool/wspool-123456``. - `scalable_dimension` (String) The scalable dimension. This string consists of the service namespace, resource type, and scaling property. -- `scaling_target_id` (String) The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the AWS::ApplicationAutoScaling::ScalableTarget resource. -- `service_namespace` (String) The namespace of the AWS service that provides the resource, or a custom-resource. + + ``ecs:service:DesiredCount`` - The task count of an ECS service. + + ``elasticmapreduce:instancegroup:InstanceCount`` - The instance count of an EMR Instance Group. + + ``ec2:spot-fleet-request:TargetCapacity`` - The target capacity of a Spot Fleet. + + ``appstream:fleet:DesiredCapacity`` - The capacity of an AppStream 2.0 fleet. + + ``dynamodb:table:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB table. + + ``dynamodb:table:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB table. + + ``dynamodb:index:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB global secondary index. + + ``dynamodb:index:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB global secondary index. + + ``rds:cluster:ReadReplicaCount`` - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. + + ``sagemaker:variant:DesiredInstanceCount`` - The number of EC2 instances for a SageMaker model endpoint variant. + + ``custom-resource:ResourceType:Property`` - The scalable dimension for a custom resource provided by your own application or service. + + ``comprehend:document-classifier-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend document classification endpoint. + + ``comprehend:entity-recognizer-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend entity recognizer endpoint. + + ``lambda:function:ProvisionedConcurrency`` - The provisioned concurrency for a Lambda function. + + ``cassandra:table:ReadCapacityUnits`` - The provisioned read capacity for an Amazon Keyspaces table. + + ``cassandra:table:WriteCapacityUnits`` - The provisioned write capacity for an Amazon Keyspaces table. + + ``kafka:broker-storage:VolumeSize`` - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster. + + ``elasticache:replication-group:NodeGroups`` - The number of node groups for an Amazon ElastiCache replication group. + + ``elasticache:replication-group:Replicas`` - The number of replicas per node group for an Amazon ElastiCache replication group. + + ``neptune:cluster:ReadReplicaCount`` - The count of read replicas in an Amazon Neptune DB cluster. + + ``sagemaker:variant:DesiredProvisionedConcurrency`` - The provisioned concurrency for a SageMaker serverless endpoint. + + ``sagemaker:inference-component:DesiredCopyCount`` - The number of copies across an endpoint for a SageMaker inference component. + + ``workspaces:workspacespool:DesiredUserSessions`` - The number of user sessions for the WorkSpaces in the pool. +- `scaling_target_id` (String) The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the ``AWS::ApplicationAutoScaling::ScalableTarget`` resource. + You must specify either the ``ScalingTargetId`` property, or the ``ResourceId``, ``ScalableDimension``, and ``ServiceNamespace`` properties, but not both. +- `service_namespace` (String) The namespace of the AWS service that provides the resource, or a ``custom-resource``. - `step_scaling_policy_configuration` (Attributes) A step scaling policy. (see [below for nested schema](#nestedatt--step_scaling_policy_configuration)) - `target_tracking_scaling_policy_configuration` (Attributes) A target tracking scaling policy. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration)) ### Read-Only -- `arn` (String) ARN is a read only property for the resource. +- `arn` (String) - `id` (String) Uniquely identifies the resource. @@ -47,23 +88,26 @@ StepScaling Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspa Optional: -- `adjustment_type` (String) Specifies how the ScalingAdjustment value in a StepAdjustment is interpreted. -- `cooldown` (Number) The amount of time, in seconds, to wait for a previous scaling activity to take effect. -- `metric_aggregation_type` (String) The aggregation type for the CloudWatch metrics. Valid values are Minimum, Maximum, and Average. If the aggregation type is null, the value is treated as Average -- `min_adjustment_magnitude` (Number) The minimum value to scale by when the adjustment type is PercentChangeInCapacity. -- `step_adjustments` (Attributes Set) A set of adjustments that enable you to scale based on the size of the alarm breach. (see [below for nested schema](#nestedatt--step_scaling_policy_configuration--step_adjustments)) +- `adjustment_type` (String) Specifies whether the ``ScalingAdjustment`` value in the ``StepAdjustment`` property is an absolute number or a percentage of the current capacity. +- `cooldown` (Number) The amount of time, in seconds, to wait for a previous scaling activity to take effect. If not specified, the default value is 300. For more information, see [Cooldown period](https://docs.aws.amazon.com/autoscaling/application/userguide/step-scaling-policy-overview.html#step-scaling-cooldown) in the *Application Auto Scaling User Guide*. +- `metric_aggregation_type` (String) The aggregation type for the CloudWatch metrics. Valid values are ``Minimum``, ``Maximum``, and ``Average``. If the aggregation type is null, the value is treated as ``Average``. +- `min_adjustment_magnitude` (Number) The minimum value to scale by when the adjustment type is ``PercentChangeInCapacity``. For example, suppose that you create a step scaling policy to scale out an Amazon ECS service by 25 percent and you specify a ``MinAdjustmentMagnitude`` of 2. If the service has 4 tasks and the scaling policy is performed, 25 percent of 4 is 1. However, because you specified a ``MinAdjustmentMagnitude`` of 2, Application Auto Scaling scales out the service by 2 tasks. +- `step_adjustments` (Attributes Set) A set of adjustments that enable you to scale based on the size of the alarm breach. + At least one step adjustment is required if you are adding a new step scaling policy configuration. (see [below for nested schema](#nestedatt--step_scaling_policy_configuration--step_adjustments)) ### Nested Schema for `step_scaling_policy_configuration.step_adjustments` Required: -- `scaling_adjustment` (Number) The amount by which to scale, based on the specified adjustment type. A positive value adds to the current capacity while a negative number removes from the current capacity. For exact capacity, you must specify a positive value. +- `scaling_adjustment` (Number) The amount by which to scale. The adjustment is based on the value that you specified in the ``AdjustmentType`` property (either an absolute number or a percentage). A positive value adds to the current capacity and a negative number subtracts from the current capacity. Optional: - `metric_interval_lower_bound` (Number) The lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it is exclusive (the metric must be greater than the threshold plus the lower bound). A null value indicates negative infinity. + You must specify at least one upper or lower bound. - `metric_interval_upper_bound` (Number) The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity. + You must specify at least one upper or lower bound. @@ -77,22 +121,23 @@ Required: Optional: - `customized_metric_specification` (Attributes) A customized metric. You can specify either a predefined metric or a customized metric. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification)) -- `disable_scale_in` (Boolean) Indicates whether scale in by the target tracking scaling policy is disabled. If the value is true, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target. The default value is false. +- `disable_scale_in` (Boolean) Indicates whether scale in by the target tracking scaling policy is disabled. If the value is ``true``, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target. The default value is ``false``. - `predefined_metric_specification` (Attributes) A predefined metric. You can specify either a predefined metric or a customized metric. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--predefined_metric_specification)) -- `scale_in_cooldown` (Number) The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start. -- `scale_out_cooldown` (Number) The amount of time, in seconds, to wait for a previous scale-out activity to take effect. +- `scale_in_cooldown` (Number) The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start. For more information and for default values, see [Define cooldown periods](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) in the *Application Auto Scaling User Guide*. +- `scale_out_cooldown` (Number) The amount of time, in seconds, to wait for a previous scale-out activity to take effect. For more information and for default values, see [Define cooldown periods](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) in the *Application Auto Scaling User Guide*. ### Nested Schema for `target_tracking_scaling_policy_configuration.customized_metric_specification` Optional: -- `dimensions` (Attributes List) The dimensions of the metric. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--dimensions)) -- `metric_name` (String) The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the Metric object that is returned by a call to ListMetrics. +- `dimensions` (Attributes List) The dimensions of the metric. + Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--dimensions)) +- `metric_name` (String) The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that's returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html). - `metrics` (Attributes List) The metrics to include in the target tracking scaling policy, as a metric data query. This can include both raw metric and metric math expressions. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--metrics)) - `namespace` (String) The namespace of the metric. - `statistic` (String) The statistic of the metric. -- `unit` (String) The unit of the metric. For a complete list of the units that CloudWatch supports, see the MetricDatum data type in the Amazon CloudWatch API Reference. +- `unit` (String) The unit of the metric. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*. ### Nested Schema for `target_tracking_scaling_policy_configuration.customized_metric_specification.dimensions` @@ -108,29 +153,35 @@ Required: Optional: -- `expression` (String) The math expression to perform on the returned data, if this object is performing a math expression. -- `id` (String) A short name that identifies the object's results in the response. +- `expression` (String) The math expression to perform on the returned data, if this object is performing a math expression. This expression can use the ``Id`` of the other metrics to refer to those metrics, and can also use the ``Id`` of other expressions to use the result of those expressions. + Conditional: Within each ``TargetTrackingMetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both. +- `id` (String) A short name that identifies the object's results in the response. This name must be unique among all ``MetricDataQuery`` objects specified for a single scaling policy. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscores. The first character must be a lowercase letter. - `label` (String) A human-readable label for this metric or expression. This is especially useful if this is a math expression, so that you know what the value represents. -- `metric_stat` (Attributes) Information about the metric data to return. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--metrics--metric_stat)) -- `return_data` (Boolean) Indicates whether to return the timestamps and raw data values of this metric. +- `metric_stat` (Attributes) Information about the metric data to return. + Conditional: Within each ``MetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--metrics--metric_stat)) +- `return_data` (Boolean) Indicates whether to return the timestamps and raw data values of this metric. + If you use any math expressions, specify ``true`` for this value for only the final math expression that the metric specification is based on. You must specify ``false`` for ``ReturnData`` for all the other metrics and expressions used in the metric specification. + If you are only retrieving metrics and not performing any math expressions, do not specify anything for ``ReturnData``. This sets it to its default (``true``). ### Nested Schema for `target_tracking_scaling_policy_configuration.customized_metric_specification.metrics.metric_stat` Optional: -- `metric` (Attributes) The CloudWatch metric to return, including the metric name, namespace, and dimensions. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--metrics--metric_stat--metric)) -- `stat` (String) The statistic to return. It can include any CloudWatch statistic or extended statistic. -- `unit` (String) The unit to use for the returned data points. +- `metric` (Attributes) The CloudWatch metric to return, including the metric name, namespace, and dimensions. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that is returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html). (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--metrics--metric_stat--metric)) +- `stat` (String) The statistic to return. It can include any CloudWatch statistic or extended statistic. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *Amazon CloudWatch User Guide*. + The most commonly used metric for scaling is ``Average``. +- `unit` (String) The unit to use for the returned data points. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*. ### Nested Schema for `target_tracking_scaling_policy_configuration.customized_metric_specification.metrics.metric_stat.metric` Optional: -- `dimensions` (Attributes List) The dimensions for the metric. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--metrics--metric_stat--metric--dimensions)) +- `dimensions` (Attributes List) The dimensions for the metric. For the list of available dimensions, see the AWS documentation available from the table in [services that publish CloudWatch metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) in the *Amazon CloudWatch User Guide*. + Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--metrics--metric_stat--metric--dimensions)) - `metric_name` (String) The name of the metric. -- `namespace` (String) The namespace of the metric. +- `namespace` (String) The namespace of the metric. For more information, see the table in [services that publish CloudWatch metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) in the *Amazon CloudWatch User Guide*. ### Nested Schema for `target_tracking_scaling_policy_configuration.customized_metric_specification.metrics.metric_stat.metric.dimensions` @@ -150,11 +201,18 @@ Optional: Required: -- `predefined_metric_type` (String) The metric type. The ALBRequestCountPerTarget metric type applies only to Spot Fleets and ECS services. +- `predefined_metric_type` (String) The metric type. The ``ALBRequestCountPerTarget`` metric type applies only to Spot fleet requests and ECS services. Optional: -- `resource_label` (String) Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ALBRequestCountPerTarget and there is a target group attached to the Spot Fleet or ECS service. +- `resource_label` (String) Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ``ALBRequestCountPerTarget`` and there is a target group attached to the Spot Fleet or ECS service. + You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). The format of the resource label is: + ``app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff``. + Where: + + app// is the final portion of the load balancer ARN + + targetgroup// is the final portion of the target group ARN. + + To find the ARN for an Application Load Balancer, use the [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operation. To find the ARN for the target group, use the [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) API operation. ## Import diff --git a/docs/resources/bedrock_flow_alias.md b/docs/resources/bedrock_flow_alias.md new file mode 100644 index 000000000..c8ffd99d4 --- /dev/null +++ b/docs/resources/bedrock_flow_alias.md @@ -0,0 +1,51 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_bedrock_flow_alias Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Definition of AWS::Bedrock::FlowAlias Resource Type +--- + +# awscc_bedrock_flow_alias (Resource) + +Definition of AWS::Bedrock::FlowAlias Resource Type + + + + +## Schema + +### Required + +- `flow_arn` (String) Arn representation of the Flow +- `name` (String) Name for a resource. +- `routing_configuration` (Attributes List) Routing configuration for a Flow alias. (see [below for nested schema](#nestedatt--routing_configuration)) + +### Optional + +- `description` (String) Description of the Resource. +- `tags` (Map of String) A map of tag keys and values + +### Read-Only + +- `arn` (String) Arn of the Flow Alias +- `created_at` (String) Time Stamp. +- `flow_alias_id` (String) Id for a Flow Alias generated at the server side. +- `flow_id` (String) Identifier for a flow resource. +- `id` (String) Uniquely identifies the resource. +- `updated_at` (String) Time Stamp. + + +### Nested Schema for `routing_configuration` + +Optional: + +- `flow_version` (String) Version. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_bedrock_flow_alias.example +``` diff --git a/docs/resources/bedrock_flow_version.md b/docs/resources/bedrock_flow_version.md new file mode 100644 index 000000000..39e6c9709 --- /dev/null +++ b/docs/resources/bedrock_flow_version.md @@ -0,0 +1,256 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_bedrock_flow_version Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Definition of AWS::Bedrock::FlowVersion Resource Type +--- + +# awscc_bedrock_flow_version (Resource) + +Definition of AWS::Bedrock::FlowVersion Resource Type + + + + +## Schema + +### Required + +- `flow_arn` (String) Arn representation of the Flow + +### Optional + +- `description` (String) Description of the flow version + +### Read-Only + +- `created_at` (String) Time Stamp. +- `definition` (Attributes) Flow definition (see [below for nested schema](#nestedatt--definition)) +- `execution_role_arn` (String) ARN of a IAM role +- `flow_id` (String) Identifier for a Flow +- `id` (String) Uniquely identifies the resource. +- `name` (String) Name for the flow +- `status` (String) Schema Type for Flow APIs +- `version` (String) Numerical Version. + + +### Nested Schema for `definition` + +Read-Only: + +- `connections` (Attributes List) List of connections (see [below for nested schema](#nestedatt--definition--connections)) +- `nodes` (Attributes List) List of nodes in a flow (see [below for nested schema](#nestedatt--definition--nodes)) + + +### Nested Schema for `definition.connections` + +Read-Only: + +- `configuration` (Attributes) Connection configuration (see [below for nested schema](#nestedatt--definition--connections--configuration)) +- `name` (String) Name of a connection in a flow +- `source` (String) Name of a node in a flow +- `target` (String) Name of a node in a flow +- `type` (String) Connection type + + +### Nested Schema for `definition.connections.configuration` + +Read-Only: + +- `conditional` (Attributes) Conditional connection configuration (see [below for nested schema](#nestedatt--definition--connections--configuration--conditional)) +- `data` (Attributes) Data connection configuration (see [below for nested schema](#nestedatt--definition--connections--configuration--data)) + + +### Nested Schema for `definition.connections.configuration.conditional` + +Read-Only: + +- `condition` (String) Name of a condition in a flow + + + +### Nested Schema for `definition.connections.configuration.data` + +Read-Only: + +- `source_output` (String) Name of a node output in a flow +- `target_input` (String) Name of a node input in a flow + + + + + +### Nested Schema for `definition.nodes` + +Read-Only: + +- `configuration` (Attributes) Node configuration in a flow (see [below for nested schema](#nestedatt--definition--nodes--configuration)) +- `inputs` (Attributes List) List of node inputs in a flow (see [below for nested schema](#nestedatt--definition--nodes--inputs)) +- `name` (String) Name of a node in a flow +- `outputs` (Attributes List) List of node outputs in a flow (see [below for nested schema](#nestedatt--definition--nodes--outputs)) +- `type` (String) Flow node types + + +### Nested Schema for `definition.nodes.configuration` + +Read-Only: + +- `condition` (Attributes) Condition flow node configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--condition)) +- `input` (String) Input flow node configuration +- `knowledge_base` (Attributes) Knowledge base flow node configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--knowledge_base)) +- `lambda_function` (Attributes) Lambda function flow node configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--lambda_function)) +- `lex` (Attributes) Lex flow node configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--lex)) +- `output` (String) Output flow node configuration +- `prompt` (Attributes) Prompt flow node configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt)) + + +### Nested Schema for `definition.nodes.configuration.condition` + +Read-Only: + +- `conditions` (Attributes List) List of conditions in a condition node (see [below for nested schema](#nestedatt--definition--nodes--configuration--condition--conditions)) + + +### Nested Schema for `definition.nodes.configuration.condition.conditions` + +Read-Only: + +- `expression` (String) Expression for a condition in a flow +- `name` (String) Name of a condition in a flow + + + + +### Nested Schema for `definition.nodes.configuration.knowledge_base` + +Read-Only: + +- `knowledge_base_id` (String) Identifier of the KnowledgeBase +- `model_id` (String) ARN or name of a Bedrock model. + + + +### Nested Schema for `definition.nodes.configuration.lambda_function` + +Read-Only: + +- `lambda_arn` (String) ARN of a Lambda. + + + +### Nested Schema for `definition.nodes.configuration.lex` + +Read-Only: + +- `bot_alias_arn` (String) ARN of a Lex bot alias +- `locale_id` (String) Lex bot locale id + + + +### Nested Schema for `definition.nodes.configuration.prompt` + +Read-Only: + +- `source_configuration` (Attributes) Prompt source configuration for prompt node (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration)) + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration` + +Read-Only: + +- `inline` (Attributes) Inline prompt configuration for prompt node (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration--inline)) +- `resource` (Attributes) Resource prompt configuration for prompt node (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration--resource)) + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration.inline` + +Read-Only: + +- `inference_configuration` (Attributes) Model inference configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration--inline--inference_configuration)) +- `model_id` (String) ARN or name of a Bedrock model. +- `template_configuration` (Attributes) Prompt template configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration--inline--template_configuration)) +- `template_type` (String) Prompt template type + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration.inline.inference_configuration` + +Read-Only: + +- `text` (Attributes) Prompt model inference configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration--inline--inference_configuration--text)) + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration.inline.inference_configuration.text` + +Read-Only: + +- `max_tokens` (Number) Maximum length of output +- `stop_sequences` (List of String) List of stop sequences +- `temperature` (Number) Controls randomness, higher values increase diversity +- `top_k` (Number) Sample from the k most likely next tokens +- `top_p` (Number) Cumulative probability cutoff for token selection + + + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration.inline.template_configuration` + +Read-Only: + +- `text` (Attributes) Configuration for text prompt template (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration--inline--template_configuration--text)) + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration.inline.template_configuration.text` + +Read-Only: + +- `input_variables` (Attributes List) List of input variables (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration--inline--template_configuration--text--input_variables)) +- `text` (String) Prompt content for String prompt template + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration.inline.template_configuration.text.input_variables` + +Read-Only: + +- `name` (String) Name for an input variable + + + + + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration.resource` + +Read-Only: + +- `prompt_arn` (String) ARN of a prompt resource possibly with a version + + + + + + +### Nested Schema for `definition.nodes.inputs` + +Read-Only: + +- `expression` (String) Expression for a node input in a flow +- `name` (String) Name of a node input in a flow +- `type` (String) Type of input/output for a node in a flow + + + +### Nested Schema for `definition.nodes.outputs` + +Read-Only: + +- `name` (String) Name of a node output in a flow +- `type` (String) Type of input/output for a node in a flow + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_bedrock_flow_version.example +``` diff --git a/docs/resources/bedrock_knowledge_base.md b/docs/resources/bedrock_knowledge_base.md index 48c5fcd85..6b52768f1 100644 --- a/docs/resources/bedrock_knowledge_base.md +++ b/docs/resources/bedrock_knowledge_base.md @@ -104,6 +104,26 @@ Required: - `embedding_model_arn` (String) The ARN of the model used to create vector embeddings for the knowledge base. +Optional: + +- `embedding_model_configuration` (Attributes) The embeddings model configuration details for the vector model used in Knowledge Base. (see [below for nested schema](#nestedatt--knowledge_base_configuration--vector_knowledge_base_configuration--embedding_model_configuration)) + + +### Nested Schema for `knowledge_base_configuration.vector_knowledge_base_configuration.embedding_model_configuration` + +Optional: + +- `bedrock_embedding_model_configuration` (Attributes) The vector configuration details for the Bedrock embeddings model. (see [below for nested schema](#nestedatt--knowledge_base_configuration--vector_knowledge_base_configuration--embedding_model_configuration--bedrock_embedding_model_configuration)) + + +### Nested Schema for `knowledge_base_configuration.vector_knowledge_base_configuration.embedding_model_configuration.bedrock_embedding_model_configuration` + +Optional: + +- `dimensions` (Number) The dimensions details for the vector configuration used on the Bedrock embeddings model. + + + @@ -115,10 +135,38 @@ Required: Optional: +- `mongo_db_atlas_configuration` (Attributes) Contains the storage configuration of the knowledge base in MongoDb Atlas Cloud. (see [below for nested schema](#nestedatt--storage_configuration--mongo_db_atlas_configuration)) - `opensearch_serverless_configuration` (Attributes) Contains the storage configuration of the knowledge base in Amazon OpenSearch Service. (see [below for nested schema](#nestedatt--storage_configuration--opensearch_serverless_configuration)) - `pinecone_configuration` (Attributes) Contains the storage configuration of the knowledge base in Pinecone. (see [below for nested schema](#nestedatt--storage_configuration--pinecone_configuration)) - `rds_configuration` (Attributes) Contains details about the storage configuration of the knowledge base in Amazon RDS. For more information, see Create a vector index in Amazon RDS. (see [below for nested schema](#nestedatt--storage_configuration--rds_configuration)) + +### Nested Schema for `storage_configuration.mongo_db_atlas_configuration` + +Required: + +- `collection_name` (String) Name of the collection within MongoDB Atlas. +- `credentials_secret_arn` (String) The ARN of the secret that you created in AWS Secrets Manager that is linked to your Amazon Mongo database. +- `database_name` (String) Name of the database within MongoDB Atlas. +- `endpoint` (String) MongoDB Atlas endpoint. +- `field_mapping` (Attributes) Contains the names of the fields to which to map information about the vector store. (see [below for nested schema](#nestedatt--storage_configuration--mongo_db_atlas_configuration--field_mapping)) +- `vector_index_name` (String) Name of a MongoDB Atlas index. + +Optional: + +- `endpoint_service_name` (String) MongoDB Atlas endpoint service name. + + +### Nested Schema for `storage_configuration.mongo_db_atlas_configuration.field_mapping` + +Required: + +- `metadata_field` (String) The name of the field in which Amazon Bedrock stores metadata about the vector store. +- `text_field` (String) The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. +- `vector_field` (String) The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources. + + + ### Nested Schema for `storage_configuration.opensearch_serverless_configuration` diff --git a/docs/resources/bedrock_prompt.md b/docs/resources/bedrock_prompt.md new file mode 100644 index 000000000..dc97d0a67 --- /dev/null +++ b/docs/resources/bedrock_prompt.md @@ -0,0 +1,115 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_bedrock_prompt Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Definition of AWS::Bedrock::Prompt Resource Type +--- + +# awscc_bedrock_prompt (Resource) + +Definition of AWS::Bedrock::Prompt Resource Type + + + + +## Schema + +### Required + +- `name` (String) Name for a prompt resource. + +### Optional + +- `customer_encryption_key_arn` (String) A KMS key ARN +- `default_variant` (String) Name for a variant. +- `description` (String) Name for a prompt resource. +- `tags` (Map of String) A map of tag keys and values +- `variants` (Attributes List) List of prompt variants (see [below for nested schema](#nestedatt--variants)) + +### Read-Only + +- `arn` (String) ARN of a prompt resource possibly with a version +- `created_at` (String) Time Stamp. +- `id` (String) Uniquely identifies the resource. +- `prompt_id` (String) Identifier for a Prompt +- `updated_at` (String) Time Stamp. +- `version` (String) Draft Version. + + +### Nested Schema for `variants` + +Required: + +- `name` (String) Name for a variant. +- `template_type` (String) Prompt template type + +Optional: + +- `inference_configuration` (Attributes) Model inference configuration (see [below for nested schema](#nestedatt--variants--inference_configuration)) +- `model_id` (String) ARN or name of a Bedrock model. +- `template_configuration` (Attributes) Prompt template configuration (see [below for nested schema](#nestedatt--variants--template_configuration)) + + +### Nested Schema for `variants.inference_configuration` + +Optional: + +- `text` (Attributes) Prompt model inference configuration (see [below for nested schema](#nestedatt--variants--inference_configuration--text)) + + +### Nested Schema for `variants.inference_configuration.text` + +Optional: + +- `max_tokens` (Number) Maximum length of output +- `stop_sequences` (List of String) List of stop sequences +- `temperature` (Number) Controls randomness, higher values increase diversity +- `top_k` (Number) Sample from the k most likely next tokens +- `top_p` (Number) Cumulative probability cutoff for token selection + + + + +### Nested Schema for `variants.template_configuration` + +Optional: + +- `text` (Attributes) Configuration for text prompt template (see [below for nested schema](#nestedatt--variants--template_configuration--text)) + + +### Nested Schema for `variants.template_configuration.text` + +Optional: + +- `input_variables` (Attributes List) List of input variables (see [below for nested schema](#nestedatt--variants--template_configuration--text--input_variables)) +- `text` (String) Prompt content for String prompt template +- `text_s3_location` (Attributes) The identifier for the S3 resource. (see [below for nested schema](#nestedatt--variants--template_configuration--text--text_s3_location)) + + +### Nested Schema for `variants.template_configuration.text.input_variables` + +Optional: + +- `name` (String) Name for an input variable + + + +### Nested Schema for `variants.template_configuration.text.text_s3_location` + +Required: + +- `bucket` (String) A bucket in S3 +- `key` (String) A object key in S3 + +Optional: + +- `version` (String) The version of the the S3 object to use + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_bedrock_prompt.example +``` diff --git a/docs/resources/bedrock_prompt_version.md b/docs/resources/bedrock_prompt_version.md new file mode 100644 index 000000000..7aad1490d --- /dev/null +++ b/docs/resources/bedrock_prompt_version.md @@ -0,0 +1,97 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_bedrock_prompt_version Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Definition of AWS::Bedrock::PromptVersion Resource Type +--- + +# awscc_bedrock_prompt_version (Resource) + +Definition of AWS::Bedrock::PromptVersion Resource Type + + + + +## Schema + +### Required + +- `prompt_arn` (String) ARN of a prompt resource possibly with a version + +### Optional + +- `description` (String) Description for a prompt version resource. + +### Read-Only + +- `arn` (String) ARN of a prompt version resource +- `created_at` (String) Time Stamp. +- `default_variant` (String) Name for a variant. +- `id` (String) Uniquely identifies the resource. +- `name` (String) Name for a prompt resource. +- `prompt_id` (String) Identifier for a Prompt +- `updated_at` (String) Time Stamp. +- `variants` (Attributes List) List of prompt variants (see [below for nested schema](#nestedatt--variants)) +- `version` (String) Version. + + +### Nested Schema for `variants` + +Read-Only: + +- `inference_configuration` (Attributes) Model inference configuration (see [below for nested schema](#nestedatt--variants--inference_configuration)) +- `model_id` (String) ARN or name of a Bedrock model. +- `name` (String) Name for a variant. +- `template_configuration` (Attributes) Prompt template configuration (see [below for nested schema](#nestedatt--variants--template_configuration)) +- `template_type` (String) Prompt template type + + +### Nested Schema for `variants.inference_configuration` + +Read-Only: + +- `text` (Attributes) Prompt model inference configuration (see [below for nested schema](#nestedatt--variants--inference_configuration--text)) + + +### Nested Schema for `variants.inference_configuration.text` + +Read-Only: + +- `max_tokens` (Number) Maximum length of output +- `stop_sequences` (List of String) List of stop sequences +- `temperature` (Number) Controls randomness, higher values increase diversity +- `top_k` (Number) Sample from the k most likely next tokens +- `top_p` (Number) Cumulative probability cutoff for token selection + + + + +### Nested Schema for `variants.template_configuration` + +Read-Only: + +- `text` (Attributes) Configuration for text prompt template (see [below for nested schema](#nestedatt--variants--template_configuration--text)) + + +### Nested Schema for `variants.template_configuration.text` + +Read-Only: + +- `input_variables` (Attributes List) List of input variables (see [below for nested schema](#nestedatt--variants--template_configuration--text--input_variables)) +- `text` (String) Prompt content for String prompt template + + +### Nested Schema for `variants.template_configuration.text.input_variables` + +Read-Only: + +- `name` (String) Name for an input variable + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_bedrock_prompt_version.example +``` diff --git a/docs/resources/dms_replication_config.md b/docs/resources/dms_replication_config.md index 1d2e51327..d6e4a2862 100644 --- a/docs/resources/dms_replication_config.md +++ b/docs/resources/dms_replication_config.md @@ -15,19 +15,22 @@ A replication configuration that you later provide to configure and start a AWS ## Schema -### Optional +### Required - `compute_config` (Attributes) Configuration parameters for provisioning a AWS DMS Serverless replication (see [below for nested schema](#nestedatt--compute_config)) - `replication_config_identifier` (String) A unique identifier of replication configuration -- `replication_settings` (String) JSON settings for Servereless replications that are provisioned using this replication configuration - `replication_type` (String) The type of AWS DMS Serverless replication to provision using this replication configuration -- `resource_identifier` (String) A unique value or name that you get set for a given resource that can be used to construct an Amazon Resource Name (ARN) for that resource - `source_endpoint_arn` (String) The Amazon Resource Name (ARN) of the source endpoint for this AWS DMS Serverless replication configuration -- `supplemental_settings` (String) JSON settings for specifying supplemental data - `table_mappings` (String) JSON table mappings for AWS DMS Serverless replications that are provisioned using this replication configuration -- `tags` (Attributes List)

Contains a map of the key-value pairs for the resource tag or tags assigned to the dataset.

(see [below for nested schema](#nestedatt--tags)) - `target_endpoint_arn` (String) The Amazon Resource Name (ARN) of the target endpoint for this AWS DMS Serverless replication configuration +### Optional + +- `replication_settings` (String) JSON settings for Servereless replications that are provisioned using this replication configuration +- `resource_identifier` (String) A unique value or name that you get set for a given resource that can be used to construct an Amazon Resource Name (ARN) for that resource +- `supplemental_settings` (String) JSON settings for specifying supplemental data +- `tags` (Attributes List)

Contains a map of the key-value pairs for the resource tag or tags assigned to the dataset.

(see [below for nested schema](#nestedatt--tags)) + ### Read-Only - `id` (String) Uniquely identifies the resource. diff --git a/docs/resources/ec2_eip_association.md b/docs/resources/ec2_eip_association.md index 46b20c5e2..0c30d777c 100644 --- a/docs/resources/ec2_eip_association.md +++ b/docs/resources/ec2_eip_association.md @@ -3,12 +3,14 @@ page_title: "awscc_ec2_eip_association Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource schema for EC2 EIP association. + Associates an Elastic IP address with an instance or a network interface. Before you can use an Elastic IP address, you must allocate it to your account. For more information about working with Elastic IP addresses, see Elastic IP address concepts and rules https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#vpc-eip-overview. + You must specify AllocationId and either InstanceId, NetworkInterfaceId, or PrivateIpAddress. --- # awscc_ec2_eip_association (Resource) -Resource schema for EC2 EIP association. +Associates an Elastic IP address with an instance or a network interface. Before you can use an Elastic IP address, you must allocate it to your account. For more information about working with Elastic IP addresses, see [Elastic IP address concepts and rules](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#vpc-eip-overview). + You must specify ``AllocationId`` and either ``InstanceId``, ``NetworkInterfaceId``, or ``PrivateIpAddress``. @@ -17,15 +19,16 @@ Resource schema for EC2 EIP association. ### Optional -- `allocation_id` (String) The allocation ID. This is required for EC2-VPC. -- `eip` (String) The Elastic IP address to associate with the instance. -- `instance_id` (String) The ID of the instance. -- `network_interface_id` (String) The ID of the network interface. -- `private_ip_address` (String) The primary or secondary private IP address to associate with the Elastic IP address. +- `allocation_id` (String) The allocation ID. This is required. +- `eip` (String) +- `instance_id` (String) The ID of the instance. The instance must have exactly one attached network interface. You can specify either the instance ID or the network interface ID, but not both. +- `network_interface_id` (String) The ID of the network interface. If the instance has more than one network interface, you must specify a network interface ID. + You can specify either the instance ID or the network interface ID, but not both. +- `private_ip_address` (String) The primary or secondary private IP address to associate with the Elastic IP address. If no private IP address is specified, the Elastic IP address is associated with the primary private IP address. ### Read-Only -- `eip_association_id` (String) Composite ID of non-empty properties, to determine the identification. +- `eip_association_id` (String) - `id` (String) Uniquely identifies the resource. ## Import diff --git a/docs/resources/ec2_launch_template.md b/docs/resources/ec2_launch_template.md index 33e310da6..0ef49a900 100644 --- a/docs/resources/ec2_launch_template.md +++ b/docs/resources/ec2_launch_template.md @@ -143,9 +143,9 @@ Optional: - `block_device_mappings` (Attributes List) The block device mapping. (see [below for nested schema](#nestedatt--launch_template_data--block_device_mappings)) - `capacity_reservation_specification` (Attributes) The Capacity Reservation targeting option. If you do not specify this parameter, the instance's Capacity Reservation preference defaults to ``open``, which enables it to run in any open Capacity Reservation that has matching attributes (instance type, platform, Availability Zone). (see [below for nested schema](#nestedatt--launch_template_data--capacity_reservation_specification)) -- `cpu_options` (Attributes) The CPU options for the instance. For more information, see [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon Elastic Compute Cloud User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--cpu_options)) +- `cpu_options` (Attributes) The CPU options for the instance. For more information, see [Optimize CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon EC2 User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--cpu_options)) - `credit_specification` (Attributes) The credit option for CPU usage of the instance. Valid only for T instances. (see [below for nested schema](#nestedatt--launch_template_data--credit_specification)) -- `disable_api_stop` (Boolean) Indicates whether to enable the instance for stop protection. For more information, see [Stop protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection) in the *Amazon Elastic Compute Cloud User Guide*. +- `disable_api_stop` (Boolean) Indicates whether to enable the instance for stop protection. For more information, see [Enable stop protection for your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-stop-protection.html) in the *Amazon EC2 User Guide*. - `disable_api_termination` (Boolean) If you set this parameter to ``true``, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can. To change this attribute after launch, use [ModifyInstanceAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html). Alternatively, if you set ``InstanceInitiatedShutdownBehavior`` to ``terminate``, you can terminate the instance by running the shutdown command from the instance. - `ebs_optimized` (Boolean) Indicates whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance. - `elastic_gpu_specifications` (Attributes List) Deprecated. @@ -155,7 +155,7 @@ Optional: 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. (see [below for nested schema](#nestedatt--launch_template_data--elastic_inference_accelerators)) - `enclave_options` (Attributes) Indicates whether the instance is enabled for AWS Nitro Enclaves. For more information, see [What is Nitro Enclaves?](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html) in the *Nitro Enclaves User Guide*. You can't enable AWS Nitro Enclaves and hibernation on the same instance. (see [below for nested schema](#nestedatt--launch_template_data--enclave_options)) -- `hibernation_options` (Attributes) Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon Elastic Compute Cloud User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--hibernation_options)) +- `hibernation_options` (Attributes) Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your Amazon EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon EC2 User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--hibernation_options)) - `iam_instance_profile` (Attributes) The name or Amazon Resource Name (ARN) of an IAM instance profile. (see [below for nested schema](#nestedatt--launch_template_data--iam_instance_profile)) - `image_id` (String) The ID of the AMI. Alternatively, you can specify a Systems Manager parameter, which will resolve to an AMI ID on launch. Valid formats: @@ -178,7 +178,7 @@ Optional: If you specify ``InstanceRequirements``, you can't specify ``InstanceType``. Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``. For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements)) -- `instance_type` (String) The instance type. 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*. +- `instance_type` (String) The instance type. For more information, see [Amazon EC2 instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*. If you specify ``InstanceType``, you can't specify ``InstanceRequirements``. - `kernel_id` (String) The ID of the kernel. We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User Provided Kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide*. @@ -186,13 +186,13 @@ Optional: If you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in. - `license_specifications` (Attributes List) The license configurations. (see [below for nested schema](#nestedatt--launch_template_data--license_specifications)) - `maintenance_options` (Attributes) The maintenance options of your instance. (see [below for nested schema](#nestedatt--launch_template_data--maintenance_options)) -- `metadata_options` (Attributes) The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon Elastic Compute Cloud User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--metadata_options)) +- `metadata_options` (Attributes) The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon EC2 User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--metadata_options)) - `monitoring` (Attributes) The monitoring for the instance. (see [below for nested schema](#nestedatt--launch_template_data--monitoring)) - `network_interfaces` (Attributes List) The network interfaces for the instance. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces)) - `placement` (Attributes) The placement for the instance. (see [below for nested schema](#nestedatt--launch_template_data--placement)) - `private_dns_name_options` (Attributes) The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--private_dns_name_options)) - `ram_disk_id` (String) The ID of the RAM disk. - We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon Elastic Compute Cloud User Guide*. + We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide*. - `security_group_ids` (List of String) 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. - `security_groups` (List of String) The names of the security groups. For a nondefault VPC, you must use security group IDs instead. @@ -200,7 +200,7 @@ Optional: - `tag_specifications` (Attributes List) The tags to apply to the resources that are created during instance launch. To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html). To tag the launch template itself, use [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#cfn-ec2-launchtemplate-tagspecifications). (see [below for nested schema](#nestedatt--launch_template_data--tag_specifications)) -- `user_data` (String) The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Linux instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) (Linux) or [Work with instance user data](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instancedata-add-user-data.html) (Windows) in the *Amazon Elastic Compute Cloud User Guide*. +- `user_data` (String) The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Amazon EC2 instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) in the *Amazon EC2 User Guide*. If you are creating the launch template for use with BATCH, the user data must be provided in the [MIME multi-part archive format](https://docs.aws.amazon.com/https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *User Guide*. @@ -286,7 +286,7 @@ Optional: Optional: -- `type` (String) The type of Elastic Graphics accelerator. For more information about the values to specify for ``Type``, see [Elastic Graphics Basics](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html#elastic-graphics-basics), specifically the Elastic Graphics accelerator column, in the *Amazon Elastic Compute Cloud User Guide for Windows Instances*. +- `type` (String) The type of Elastic Graphics accelerator. @@ -439,7 +439,7 @@ Optional: Default: ``hdd`` and ``ssd`` - `max_spot_price_as_percentage_of_optimal_on_demand_price` (Number) [Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold. The parameter accepts an integer, which Amazon EC2 interprets as a percentage. - If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price. + If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price. Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``. - `memory_gi_b_per_v_cpu` (Attributes) The minimum and maximum amount of memory per vCPU, in GiB. Default: No minimum or maximum limits (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--memory_gi_b_per_v_cpu)) @@ -609,7 +609,7 @@ Optional: - `device_index` (Number) The device index for the network interface attachment. Each network interface requires a device index. If you create a launch template that includes secondary network interfaces but not a primary network interface, then you must add a primary network interface as a launch parameter when you launch an instance from the template. - `ena_srd_specification` (Attributes) The ENA Express configuration for the network interface. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces--ena_srd_specification)) - `groups` (List of String) The IDs of one or more security groups. -- `interface_type` (String) The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon Elastic Compute Cloud User Guide*. +- `interface_type` (String) The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon EC2 User Guide*. If you are not creating an EFA, specify ``interface`` or omit this parameter. Valid values: ``interface`` | ``efa`` - `ipv_4_prefix_count` (Number) The number of IPv4 prefixes to be automatically assigned to the network interface. You cannot use this option if you use the ``Ipv4Prefix`` option. @@ -658,7 +658,7 @@ Optional: Optional: -- `ipv_4_prefix` (String) The IPv4 prefix. For information, see [Assigning prefixes to Amazon EC2 network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon Elastic Compute Cloud User Guide*. +- `ipv_4_prefix` (String) The IPv4 prefix. For information, see [Assigning prefixes to network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon EC2 User Guide*. @@ -718,8 +718,7 @@ Optional: Optional: -- `resource_type` (String) The type of resource to tag. - Valid Values lists all resource types for Amazon EC2 that can be tagged. When you create a launch template, you can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume. +- `resource_type` (String) The type of resource to tag. You can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume. To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html). - `tags` (Attributes List) The tags to apply to the resource. (see [below for nested schema](#nestedatt--launch_template_data--tag_specifications--tags)) @@ -739,7 +738,7 @@ Required: Optional: -- `resource_type` (String) The type of resource. To tag the launch template, ``ResourceType`` must be ``launch-template``. +- `resource_type` (String) The type of resource. To tag a launch template, ``ResourceType`` must be ``launch-template``. - `tags` (Attributes List) The tags for the resource. (see [below for nested schema](#nestedatt--tag_specifications--tags)) diff --git a/docs/resources/ec2_network_interface_attachment.md b/docs/resources/ec2_network_interface_attachment.md index 5e42dccf4..b2c202f1b 100644 --- a/docs/resources/ec2_network_interface_attachment.md +++ b/docs/resources/ec2_network_interface_attachment.md @@ -3,12 +3,12 @@ page_title: "awscc_ec2_network_interface_attachment Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource Type definition for AWS::EC2::NetworkInterfaceAttachment + Attaches an elastic network interface (ENI) to an Amazon EC2 instance. You can use this resource type to attach additional network interfaces to an instance without interruption. --- # awscc_ec2_network_interface_attachment (Resource) -Resource Type definition for AWS::EC2::NetworkInterfaceAttachment +Attaches an elastic network interface (ENI) to an Amazon EC2 instance. You can use this resource type to attach additional network interfaces to an instance without interruption. @@ -17,18 +17,18 @@ Resource Type definition for AWS::EC2::NetworkInterfaceAttachment ### Required -- `device_index` (String) The network interface's position in the attachment order. For example, the first attached network interface has a DeviceIndex of 0. +- `device_index` (String) The network interface's position in the attachment order. For example, the first attached network interface has a ``DeviceIndex`` of 0. - `instance_id` (String) The ID of the instance to which you will attach the ENI. - `network_interface_id` (String) The ID of the ENI that you want to attach. ### Optional -- `delete_on_termination` (Boolean) Whether to delete the network interface when the instance terminates. By default, this value is set to true. -- `ena_srd_specification` (Attributes) (see [below for nested schema](#nestedatt--ena_srd_specification)) +- `delete_on_termination` (Boolean) Whether to delete the network interface when the instance terminates. By default, this value is set to ``true``. +- `ena_srd_specification` (Attributes) Configures ENA Express for the network interface that this action attaches to the instance. (see [below for nested schema](#nestedatt--ena_srd_specification)) ### Read-Only -- `attachment_id` (String) The ID of the network interface attachment. +- `attachment_id` (String) - `id` (String) Uniquely identifies the resource. @@ -36,8 +36,8 @@ Resource Type definition for AWS::EC2::NetworkInterfaceAttachment Optional: -- `ena_srd_enabled` (Boolean) -- `ena_srd_udp_specification` (Attributes) (see [below for nested schema](#nestedatt--ena_srd_specification--ena_srd_udp_specification)) +- `ena_srd_enabled` (Boolean) Indicates whether ENA Express is enabled for the network interface. +- `ena_srd_udp_specification` (Attributes) Configures ENA Express for UDP network traffic. (see [below for nested schema](#nestedatt--ena_srd_specification--ena_srd_udp_specification)) ### Nested Schema for `ena_srd_specification.ena_srd_udp_specification` diff --git a/docs/resources/ecr_repository.md b/docs/resources/ecr_repository.md index 76818a454..5c36fde84 100644 --- a/docs/resources/ecr_repository.md +++ b/docs/resources/ecr_repository.md @@ -124,7 +124,7 @@ Required: - `encryption_type` (String) 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 KMSlong key stored in KMS. When you use KMS to encrypt your data, you can either use the default AWS managed KMS key for Amazon ECR, or specify your own KMS key, which you already created. For more information, see [Protecting data using server-side encryption with an key stored in (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 *Ama + 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*. Optional: diff --git a/docs/resources/ecr_repository_creation_template.md b/docs/resources/ecr_repository_creation_template.md index eaf03dbf5..4101bb647 100644 --- a/docs/resources/ecr_repository_creation_template.md +++ b/docs/resources/ecr_repository_creation_template.md @@ -22,6 +22,7 @@ AWS::ECR::RepositoryCreationTemplate is used to create repository with configura ### Optional +- `custom_role_arn` (String) The ARN of the role to be assumed by ECR. This role must be in the same account as the registry that you are configuring. - `description` (String) The description of the template. - `encryption_configuration` (Attributes) 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. diff --git a/docs/resources/eks_cluster.md b/docs/resources/eks_cluster.md index c6a6176b6..658179feb 100644 --- a/docs/resources/eks_cluster.md +++ b/docs/resources/eks_cluster.md @@ -221,6 +221,7 @@ resource "awscc_kms_key" "main" { - `name` (String) The unique name to give to your cluster. - `outpost_config` (Attributes) An object representing the Outpost configuration to use for AWS EKS outpost cluster. (see [below for nested schema](#nestedatt--outpost_config)) - `tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) +- `upgrade_policy` (Attributes) An object representing the Upgrade Policy to use for the cluster. (see [below for nested schema](#nestedatt--upgrade_policy)) - `version` (String) The desired Kubernetes version for your cluster. If you don't specify a value here, the latest version available in Amazon EKS is used. ### Read-Only @@ -341,6 +342,14 @@ Required: - `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. - `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + + +### Nested Schema for `upgrade_policy` + +Optional: + +- `support_type` (String) Specify the support type for your cluster. + ## Import Import is supported using the following syntax: diff --git a/docs/resources/globalaccelerator_cross_account_attachment.md b/docs/resources/globalaccelerator_cross_account_attachment.md index 03e0ee682..e2d43d64b 100644 --- a/docs/resources/globalaccelerator_cross_account_attachment.md +++ b/docs/resources/globalaccelerator_cross_account_attachment.md @@ -33,12 +33,10 @@ Resource Type definition for AWS::GlobalAccelerator::CrossAccountAttachment ### Nested Schema for `resources` -Required: - -- `endpoint_id` (String) - Optional: +- `cidr` (String) +- `endpoint_id` (String) - `region` (String) diff --git a/docs/resources/glue_trigger.md b/docs/resources/glue_trigger.md new file mode 100644 index 000000000..66a6ec6c2 --- /dev/null +++ b/docs/resources/glue_trigger.md @@ -0,0 +1,96 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_glue_trigger Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::Glue::Trigger +--- + +# awscc_glue_trigger (Resource) + +Resource Type definition for AWS::Glue::Trigger + + + + +## Schema + +### Required + +- `actions` (Attributes List) The actions initiated by this trigger. (see [below for nested schema](#nestedatt--actions)) +- `type` (String) The type of trigger that this is. + +### Optional + +- `description` (String) A description of this trigger. +- `event_batching_condition` (Attributes) Batch condition that must be met (specified number of events received or batch time window expired) before EventBridge event trigger fires. (see [below for nested schema](#nestedatt--event_batching_condition)) +- `name` (String) The name of the trigger. +- `predicate` (Attributes) The predicate of this trigger, which defines when it will fire. (see [below for nested schema](#nestedatt--predicate)) +- `schedule` (String) A cron expression used to specify the schedule. +- `start_on_creation` (Boolean) Set to true to start SCHEDULED and CONDITIONAL triggers when created. True is not supported for ON_DEMAND triggers. +- `tags` (String) The tags to use with this trigger. +- `workflow_name` (String) The name of the workflow associated with the trigger. + +### Read-Only + +- `id` (String) Uniquely identifies the resource. + + +### Nested Schema for `actions` + +Optional: + +- `arguments` (String) The job arguments used when this trigger fires. For this job run, they replace the default arguments set in the job definition itself. +- `crawler_name` (String) The name of the crawler to be used with this action. +- `job_name` (String) The name of a job to be executed. +- `notification_property` (Attributes) Specifies configuration properties of a job run notification. (see [below for nested schema](#nestedatt--actions--notification_property)) +- `security_configuration` (String) The name of the SecurityConfiguration structure to be used with this action. +- `timeout` (Number) The JobRun timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status. The default is 2,880 minutes (48 hours). This overrides the timeout value set in the parent job. + + +### Nested Schema for `actions.notification_property` + +Optional: + +- `notify_delay_after` (Number) After a job run starts, the number of minutes to wait before sending a job run delay notification + + + + +### Nested Schema for `event_batching_condition` + +Required: + +- `batch_size` (Number) Number of events that must be received from Amazon EventBridge before EventBridge event trigger fires. + +Optional: + +- `batch_window` (Number) Window of time in seconds after which EventBridge event trigger fires. Window starts when first event is received. + + + +### Nested Schema for `predicate` + +Optional: + +- `conditions` (Attributes List) A list of the conditions that determine when the trigger will fire. (see [below for nested schema](#nestedatt--predicate--conditions)) +- `logical` (String) An optional field if only one condition is listed. If multiple conditions are listed, then this field is required. + + +### Nested Schema for `predicate.conditions` + +Optional: + +- `crawl_state` (String) The state of the crawler to which this condition applies. +- `crawler_name` (String) The name of the crawler to which this condition applies. +- `job_name` (String) The name of the job whose JobRuns this condition applies to, and on which this trigger waits. +- `logical_operator` (String) A logical operator. +- `state` (String) The condition state. Currently, the values supported are SUCCEEDED, STOPPED, TIMEOUT, and FAILED. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_glue_trigger.example +``` diff --git a/docs/resources/lightsail_alarm.md b/docs/resources/lightsail_alarm.md index 96c17a69d..7593e24e8 100644 --- a/docs/resources/lightsail_alarm.md +++ b/docs/resources/lightsail_alarm.md @@ -102,7 +102,7 @@ resource "awscc_lightsail_alarm" "example" { - `comparison_operator` (String) The arithmetic operation to use when comparing the specified statistic to the threshold. The specified statistic value is used as the first operand. - `evaluation_periods` (Number) The number of most recent periods over which data is compared to the specified threshold. If you are setting an "M out of N" alarm, this value (evaluationPeriods) is the N. - `metric_name` (String) The name of the metric to associate with the alarm. -- `monitored_resource_name` (String) The validation status of the SSL/TLS certificate. +- `monitored_resource_name` (String) The name of the Lightsail resource that the alarm monitors. - `threshold` (Number) The value against which the specified statistic is compared. ### Optional diff --git a/docs/resources/lightsail_certificate.md b/docs/resources/lightsail_certificate.md index 501c3e634..41cc9ee93 100644 --- a/docs/resources/lightsail_certificate.md +++ b/docs/resources/lightsail_certificate.md @@ -2,12 +2,12 @@ page_title: "awscc_lightsail_certificate Resource - terraform-provider-awscc" subcategory: "" description: |- - An example resource schema demonstrating some basic constructs and validation rules. + Resource Type definition for AWS::Lightsail::Certificate. --- # awscc_lightsail_certificate (Resource) -An example resource schema demonstrating some basic constructs and validation rules. +Resource Type definition for AWS::Lightsail::Certificate. ## Example Usage diff --git a/docs/resources/mediaconnect_flow_output.md b/docs/resources/mediaconnect_flow_output.md index 556f4693b..2c8de6d88 100644 --- a/docs/resources/mediaconnect_flow_output.md +++ b/docs/resources/mediaconnect_flow_output.md @@ -30,6 +30,7 @@ Resource schema for AWS::MediaConnect::FlowOutput - `media_stream_output_configurations` (Attributes List) The definition for each media stream that is associated with the output. (see [below for nested schema](#nestedatt--media_stream_output_configurations)) - `min_latency` (Number) The minimum latency in milliseconds. - `name` (String) The name of the output. This value must be unique within the current flow. +- `output_status` (String) An indication of whether the output should transmit data or not. - `port` (Number) The port to use when content is distributed to this output. - `remote_id` (String) The remote ID for the Zixi-pull stream. - `smoothing_latency` (Number) The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC streams. diff --git a/docs/resources/mediapackagev2_channel.md b/docs/resources/mediapackagev2_channel.md index cf3d94ce4..df5490793 100644 --- a/docs/resources/mediapackagev2_channel.md +++ b/docs/resources/mediapackagev2_channel.md @@ -23,6 +23,7 @@ description: |- ### Optional - `description` (String)

Enter any descriptive text that helps you to identify the channel.

+- `input_type` (String) - `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) ### Read-Only diff --git a/docs/resources/mediapackagev2_origin_endpoint.md b/docs/resources/mediapackagev2_origin_endpoint.md index eb0ef2e5c..d3766b0bb 100644 --- a/docs/resources/mediapackagev2_origin_endpoint.md +++ b/docs/resources/mediapackagev2_origin_endpoint.md @@ -26,6 +26,7 @@ description: |- - `container_type` (String) - `dash_manifests` (Attributes List)

A DASH manifest configuration.

(see [below for nested schema](#nestedatt--dash_manifests)) - `description` (String)

Enter any descriptive text that helps you to identify the origin endpoint.

+- `force_endpoint_error_configuration` (Attributes)

The failover settings for the endpoint.

(see [below for nested schema](#nestedatt--force_endpoint_error_configuration)) - `hls_manifests` (Attributes List)

An HTTP live streaming (HLS) manifest configuration.

(see [below for nested schema](#nestedatt--hls_manifests)) - `low_latency_hls_manifests` (Attributes List)

A low-latency HLS manifest configuration.

(see [below for nested schema](#nestedatt--low_latency_hls_manifests)) - `segment` (Attributes)

The segment configuration, including the segment name, duration, and other configuration values.

(see [below for nested schema](#nestedatt--segment)) @@ -92,6 +93,28 @@ Optional: + +### Nested Schema for `force_endpoint_error_configuration` + +Optional: + +- `endpoint_error_conditions` (List of String)

The failover settings for the endpoint. The options are:

+
    +
  • +

    + STALE_MANIFEST - The manifest stalled and there a no new segments or parts.

    +
  • +
  • +

    + INCOMPLETE_MANIFEST - There is a gap in the manifest.

    +
  • +
  • +

    + MISSING_DRM_KEY - Key rotation is enabled but we're unable to fetch the key for the current key period.

    +
  • +
+ + ### Nested Schema for `hls_manifests` diff --git a/docs/resources/rds_db_cluster.md b/docs/resources/rds_db_cluster.md index de869ff08..b69e9668c 100644 --- a/docs/resources/rds_db_cluster.md +++ b/docs/resources/rds_db_cluster.md @@ -269,7 +269,7 @@ resource "awscc_rds_db_cluster" "example_db_cluster" { Constraints: Minimum 30-minute window. Valid for: Aurora DB clusters and Multi-AZ DB clusters - `publicly_accessible` (Boolean) Specifies whether the DB cluster is publicly accessible. - When the DB cluster is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP address from within the DB cluster's virtual private cloud (VPC). It resolves to the public IP address from outside of the DB cluster's VPC. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it. + When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it. When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address. Valid for Cluster Type: Multi-AZ DB clusters only Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified. @@ -394,7 +394,7 @@ Optional: Read-Only: -- `secret_arn` (String) The Amazon Resource Name (ARN) of the secret. +- `secret_arn` (String) The Amazon Resource Name (ARN) of the secret. This parameter is a return value that you can retrieve using the ``Fn::GetAtt`` intrinsic function. For more information, see [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#aws-resource-rds-dbcluster-return-values). diff --git a/docs/resources/rds_db_instance.md b/docs/resources/rds_db_instance.md index d16a660e7..5a65f505d 100644 --- a/docs/resources/rds_db_instance.md +++ b/docs/resources/rds_db_instance.md @@ -198,7 +198,7 @@ resource "awscc_rds_db_instance" "this" { Not applicable. The associated roles are managed by the DB cluster. (see [below for nested schema](#nestedatt--associated_roles)) - `auto_minor_version_upgrade` (Boolean) A value that indicates whether minor engine upgrades are applied automatically to the DB instance during the maintenance window. By default, minor engine upgrades are applied automatically. - `automatic_backup_replication_kms_key_id` (String) The AWS KMS key identifier for encryption of the replicated automated backups. The KMS key ID is the Amazon Resource Name (ARN) for the KMS encryption key in the destination AWS-Region, for example, ``arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE``. -- `automatic_backup_replication_region` (String) The destination region for the backup replication of the DB instance. For more info, see [Replicating automated backups to another Region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReplicateBackups.html) in the *Amazon RDS User Guide*. +- `automatic_backup_replication_region` (String) - `availability_zone` (String) The Availability Zone (AZ) where the database will be created. For information on AWS-Regions and Availability Zones, see [Regions and Availability Zones](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html). For Amazon Aurora, each Aurora DB cluster hosts copies of its storage in three separate Availability Zones. Specify one of these Availability Zones. Aurora automatically chooses an appropriate Availability Zone if you don't specify one. Default: A random, system-chosen Availability Zone in the endpoint's AWS-Region. @@ -328,7 +328,6 @@ resource "awscc_rds_db_instance" "this" { + ``DBClusterIdentifier`` + ``DBName`` + ``DeleteAutomatedBackups`` - + ``EnablePerformanceInsights`` + ``KmsKeyId`` + ``MasterUsername`` + ``MasterUserPassword`` @@ -711,7 +710,7 @@ Optional: Read-Only: -- `secret_arn` (String) The Amazon Resource Name (ARN) of the secret. +- `secret_arn` (String) The Amazon Resource Name (ARN) of the secret. This parameter is a return value that you can retrieve using the ``Fn::GetAtt`` intrinsic function. For more information, see [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#aws-resource-rds-dbinstance-return-values). diff --git a/docs/resources/secretsmanager_resource_policy.md b/docs/resources/secretsmanager_resource_policy.md new file mode 100644 index 000000000..30d1925b7 --- /dev/null +++ b/docs/resources/secretsmanager_resource_policy.md @@ -0,0 +1,38 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_secretsmanager_resource_policy Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::SecretsManager::ResourcePolicy +--- + +# awscc_secretsmanager_resource_policy (Resource) + +Resource Type definition for AWS::SecretsManager::ResourcePolicy + + + + +## Schema + +### Required + +- `resource_policy` (String) A JSON-formatted string for an AWS resource-based policy. +- `secret_id` (String) The ARN or name of the secret to attach the resource-based policy. + +### Optional + +- `block_public_policy` (Boolean) Specifies whether to block resource-based policies that allow broad access to the secret. + +### Read-Only + +- `id` (String) Uniquely identifies the resource. +- `resource_policy_id` (String) The Arn of the secret. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_secretsmanager_resource_policy.example +``` diff --git a/docs/resources/workspacesweb_user_settings.md b/docs/resources/workspacesweb_user_settings.md index a440b0802..68f712efe 100644 --- a/docs/resources/workspacesweb_user_settings.md +++ b/docs/resources/workspacesweb_user_settings.md @@ -28,6 +28,7 @@ Definition of AWS::WorkSpacesWeb::UserSettings Resource Type - `additional_encryption_context` (Map of String) - `cookie_synchronization_configuration` (Attributes) (see [below for nested schema](#nestedatt--cookie_synchronization_configuration)) - `customer_managed_key` (String) +- `deep_link_allowed` (String) - `disconnect_timeout_in_minutes` (Number) - `idle_disconnect_timeout_in_minutes` (Number) - `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) diff --git a/examples/resources/awscc_bedrock_flow_alias/import.sh b/examples/resources/awscc_bedrock_flow_alias/import.sh new file mode 100644 index 000000000..4d851093b --- /dev/null +++ b/examples/resources/awscc_bedrock_flow_alias/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_bedrock_flow_alias.example \ No newline at end of file diff --git a/examples/resources/awscc_bedrock_flow_version/import.sh b/examples/resources/awscc_bedrock_flow_version/import.sh new file mode 100644 index 000000000..56f7a9156 --- /dev/null +++ b/examples/resources/awscc_bedrock_flow_version/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_bedrock_flow_version.example \ No newline at end of file diff --git a/examples/resources/awscc_bedrock_prompt/import.sh b/examples/resources/awscc_bedrock_prompt/import.sh new file mode 100644 index 000000000..384400c14 --- /dev/null +++ b/examples/resources/awscc_bedrock_prompt/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_bedrock_prompt.example \ No newline at end of file diff --git a/examples/resources/awscc_bedrock_prompt_version/import.sh b/examples/resources/awscc_bedrock_prompt_version/import.sh new file mode 100644 index 000000000..9f6bcf6d8 --- /dev/null +++ b/examples/resources/awscc_bedrock_prompt_version/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_bedrock_prompt_version.example \ No newline at end of file diff --git a/examples/resources/awscc_glue_trigger/import.sh b/examples/resources/awscc_glue_trigger/import.sh new file mode 100644 index 000000000..77260aba1 --- /dev/null +++ b/examples/resources/awscc_glue_trigger/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_glue_trigger.example \ No newline at end of file diff --git a/examples/resources/awscc_secretsmanager_resource_policy/import.sh b/examples/resources/awscc_secretsmanager_resource_policy/import.sh new file mode 100644 index 000000000..b1441fac0 --- /dev/null +++ b/examples/resources/awscc_secretsmanager_resource_policy/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_secretsmanager_resource_policy.example \ No newline at end of file From 2e5eeb326542d32cac2ecabe474b203adf7261aa Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 25 Jul 2024 15:33:04 -0400 Subject: [PATCH 28/89] Add CHANGELOG entries. --- CHANGELOG.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c6d2825a..ee0ac57c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,23 @@ ## 1.7.0 (Unreleased) + +FEATURES: + +* **New Data Source:** `awscc_bedrock_flow_alias` +* **New Data Source:** `awscc_bedrock_flow_version` +* **New Data Source:** `awscc_bedrock_prompt` +* **New Data Source:** `awscc_bedrock_prompt_version` +* **New Data Source:** `awscc_bedrock_prompts` +* **New Data Source:** `awscc_glue_trigger` +* **New Data Source:** `awscc_glue_triggers` +* **New Data Source:** `awscc_secretsmanager_resource_policies` +* **New Data Source:** `awscc_secretsmanager_resource_policy` +* **New Resource:** `awscc_bedrock_flow_alias` +* **New Resource:** `awscc_bedrock_flow_version` +* **New Resource:** `awscc_bedrock_prompt` +* **New Resource:** `awscc_bedrock_prompt_version` +* **New Resource:** `awscc_glue_trigger` +* **New Resource:** `awscc_secretsmanager_resource_policy` + ## 1.6.0 (July 18, 2024) FEATURES: From 70d4c3a28b921894be0ce9e328f13590b08844e6 Mon Sep 17 00:00:00 2001 From: changelogbot Date: Thu, 25 Jul 2024 20:03:01 +0000 Subject: [PATCH 29/89] Update CHANGELOG.md after v1.7.0 --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ee0ac57c9..4920e5a64 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ -## 1.7.0 (Unreleased) +## 1.8.0 (Unreleased) +## 1.7.0 (July 25, 2024) FEATURES: From 769fe929a9e5dd14c9ed4730691680260f3f0ea6 Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Thu, 25 Jul 2024 19:20:49 -0400 Subject: [PATCH 30/89] docs: added example for awscc_bedrock_prompt --- docs/resources/bedrock_prompt.md | 43 +++++++++++++++++-- .../awscc_bedrock_prompt/bedrock_prompt.tf | 35 +++++++++++++++ templates/resources/bedrock_prompt.md.tmpl | 25 +++++++++++ 3 files changed, 100 insertions(+), 3 deletions(-) create mode 100644 examples/resources/awscc_bedrock_prompt/bedrock_prompt.tf create mode 100644 templates/resources/bedrock_prompt.md.tmpl diff --git a/docs/resources/bedrock_prompt.md b/docs/resources/bedrock_prompt.md index dc97d0a67..3a513cec4 100644 --- a/docs/resources/bedrock_prompt.md +++ b/docs/resources/bedrock_prompt.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_bedrock_prompt Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,7 +9,45 @@ description: |- Definition of AWS::Bedrock::Prompt Resource Type - +## Example Usage + +```terraform +resource "awscc_bedrock_prompt" "example" { + name = "example" + description = "example" + customer_encryption_key_arn = awscc_kms_key.example.arn + default_variant = "variant-example" + + variants = [ + { + name = "variant-example" + template_type = "TEXT" + model_id = "amazon.titan-text-express-v1" + inference_configuration = { + text = { + temperature = 1 + top_p = 0.9900000095367432 + max_tokens = 300 + stop_sequences = ["\\n\\nHuman:"] + top_k = 250 + } + } + template_configuration = { + text = { + input_variables = [ + { + name = "topic" + } + ] + text = "Make me a {{genre}} playlist consisting of the following number of songs: {{number}}." + } + } + } + + ] + +} +``` ## Schema @@ -112,4 +149,4 @@ Import is supported using the following syntax: ```shell $ terraform import awscc_bedrock_prompt.example -``` +``` \ No newline at end of file diff --git a/examples/resources/awscc_bedrock_prompt/bedrock_prompt.tf b/examples/resources/awscc_bedrock_prompt/bedrock_prompt.tf new file mode 100644 index 000000000..6b0691995 --- /dev/null +++ b/examples/resources/awscc_bedrock_prompt/bedrock_prompt.tf @@ -0,0 +1,35 @@ +resource "awscc_bedrock_prompt" "example" { + name = "example" + description = "example" + customer_encryption_key_arn = awscc_kms_key.example.arn + default_variant = "variant-example" + + variants = [ + { + name = "variant-example" + template_type = "TEXT" + model_id = "amazon.titan-text-express-v1" + inference_configuration = { + text = { + temperature = 1 + top_p = 0.9900000095367432 + max_tokens = 300 + stop_sequences = ["\\n\\nHuman:"] + top_k = 250 + } + } + template_configuration = { + text = { + input_variables = [ + { + name = "topic" + } + ] + text = "Make me a {{genre}} playlist consisting of the following number of songs: {{number}}." + } + } + } + + ] + +} diff --git a/templates/resources/bedrock_prompt.md.tmpl b/templates/resources/bedrock_prompt.md.tmpl new file mode 100644 index 000000000..34fba34cc --- /dev/null +++ b/templates/resources/bedrock_prompt.md.tmpl @@ -0,0 +1,25 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +{{ tffile (printf "examples/resources/%s/bedrock_prompt.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} \ No newline at end of file From 0f88f96f51bc64708f9972b7771da02994553640 Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Thu, 25 Jul 2024 19:46:30 -0400 Subject: [PATCH 31/89] docs: added example for awscc_bedrock_prompt_version --- docs/resources/bedrock_prompt_version.md | 48 +++++++++++++++++-- .../bedrock_prompt_version.tf | 40 ++++++++++++++++ .../resources/bedrock_prompt_version.md.tmpl | 25 ++++++++++ 3 files changed, 110 insertions(+), 3 deletions(-) create mode 100644 examples/resources/awscc_bedrock_prompt_version/bedrock_prompt_version.tf create mode 100644 templates/resources/bedrock_prompt_version.md.tmpl diff --git a/docs/resources/bedrock_prompt_version.md b/docs/resources/bedrock_prompt_version.md index 7aad1490d..ca04b2df8 100644 --- a/docs/resources/bedrock_prompt_version.md +++ b/docs/resources/bedrock_prompt_version.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_bedrock_prompt_version Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,7 +9,50 @@ description: |- Definition of AWS::Bedrock::PromptVersion Resource Type - +## Example Usage + +```terraform +resource "awscc_bedrock_prompt_version" "example" { + prompt_arn = awscc_bedrock_prompt.example.arn + description = "example" +} + +resource "awscc_bedrock_prompt" "example" { + name = "example" + description = "example" + customer_encryption_key_arn = awscc_kms_key.example.arn + default_variant = "variant-example" + + variants = [ + { + name = "variant-example" + template_type = "TEXT" + model_id = "amazon.titan-text-express-v1" + inference_configuration = { + text = { + temperature = 1 + top_p = 0.9900000095367432 + max_tokens = 300 + stop_sequences = ["\\n\\nHuman:"] + top_k = 250 + } + } + template_configuration = { + text = { + input_variables = [ + { + name = "topic" + } + ] + text = "Make me a {{genre}} playlist consisting of the following number of songs: {{number}}." + } + } + } + + ] + +} +``` ## Schema @@ -94,4 +136,4 @@ Import is supported using the following syntax: ```shell $ terraform import awscc_bedrock_prompt_version.example -``` +``` \ No newline at end of file diff --git a/examples/resources/awscc_bedrock_prompt_version/bedrock_prompt_version.tf b/examples/resources/awscc_bedrock_prompt_version/bedrock_prompt_version.tf new file mode 100644 index 000000000..6a8095691 --- /dev/null +++ b/examples/resources/awscc_bedrock_prompt_version/bedrock_prompt_version.tf @@ -0,0 +1,40 @@ +resource "awscc_bedrock_prompt_version" "example" { + prompt_arn = awscc_bedrock_prompt.example.arn + description = "example" +} + +resource "awscc_bedrock_prompt" "example" { + name = "example" + description = "example" + customer_encryption_key_arn = awscc_kms_key.example.arn + default_variant = "variant-example" + + variants = [ + { + name = "variant-example" + template_type = "TEXT" + model_id = "amazon.titan-text-express-v1" + inference_configuration = { + text = { + temperature = 1 + top_p = 0.9900000095367432 + max_tokens = 300 + stop_sequences = ["\\n\\nHuman:"] + top_k = 250 + } + } + template_configuration = { + text = { + input_variables = [ + { + name = "topic" + } + ] + text = "Make me a {{genre}} playlist consisting of the following number of songs: {{number}}." + } + } + } + + ] + +} diff --git a/templates/resources/bedrock_prompt_version.md.tmpl b/templates/resources/bedrock_prompt_version.md.tmpl new file mode 100644 index 000000000..d5c2b2858 --- /dev/null +++ b/templates/resources/bedrock_prompt_version.md.tmpl @@ -0,0 +1,25 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +{{ tffile (printf "examples/resources/%s/bedrock_prompt_version.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} \ No newline at end of file From 5c5019c535a3772f3b4c9a84922fdf68d00334a4 Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Thu, 25 Jul 2024 20:03:16 -0400 Subject: [PATCH 32/89] docs: added example for awscc_secretsmanager_resource_policy --- .../secretsmanager_resource_policy.md | 31 +++++++++++++++++-- .../secretsmanager_resource_policy.tf | 25 +++++++++++++++ .../secretsmanager_resource_policy.md.tmpl | 25 +++++++++++++++ 3 files changed, 79 insertions(+), 2 deletions(-) create mode 100644 examples/resources/awscc_secretsmanager_resource_policy/secretsmanager_resource_policy.tf create mode 100644 templates/resources/secretsmanager_resource_policy.md.tmpl diff --git a/docs/resources/secretsmanager_resource_policy.md b/docs/resources/secretsmanager_resource_policy.md index 30d1925b7..9e659ac02 100644 --- a/docs/resources/secretsmanager_resource_policy.md +++ b/docs/resources/secretsmanager_resource_policy.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_secretsmanager_resource_policy Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,7 +9,35 @@ description: |- Resource Type definition for AWS::SecretsManager::ResourcePolicy +## Example Usage +```terraform +resource "awscc_secretsmanager_resource_policy" "example" { + + resource_policy = jsonencode({ + "Version" : "2012-10-17", + "Statement" : [ + { + "Effect" : "Deny", + "Principal" : { + "AWS" : "arn:aws:iam::${data.aws_caller_identity.current.account_id}:root" + } + "Action" : "secretsmanager:DeleteSecret", + "Resource" : "*" + } + ] + }) + secret_id = awscc_secretsmanager_secret.example.id + block_public_policy = true +} + +resource "awscc_secretsmanager_secret" "example" { + name = "example" + description = "example" +} + +data "aws_caller_identity" "current" {} +``` ## Schema @@ -35,4 +62,4 @@ Import is supported using the following syntax: ```shell $ terraform import awscc_secretsmanager_resource_policy.example -``` +``` \ No newline at end of file diff --git a/examples/resources/awscc_secretsmanager_resource_policy/secretsmanager_resource_policy.tf b/examples/resources/awscc_secretsmanager_resource_policy/secretsmanager_resource_policy.tf new file mode 100644 index 000000000..27aaaba42 --- /dev/null +++ b/examples/resources/awscc_secretsmanager_resource_policy/secretsmanager_resource_policy.tf @@ -0,0 +1,25 @@ +resource "awscc_secretsmanager_resource_policy" "example" { + + resource_policy = jsonencode({ + "Version" : "2012-10-17", + "Statement" : [ + { + "Effect" : "Deny", + "Principal" : { + "AWS" : "arn:aws:iam::${data.aws_caller_identity.current.account_id}:root" + } + "Action" : "secretsmanager:DeleteSecret", + "Resource" : "*" + } + ] + }) + secret_id = awscc_secretsmanager_secret.example.id + block_public_policy = true +} + +resource "awscc_secretsmanager_secret" "example" { + name = "example" + description = "example" +} + +data "aws_caller_identity" "current" {} \ No newline at end of file diff --git a/templates/resources/secretsmanager_resource_policy.md.tmpl b/templates/resources/secretsmanager_resource_policy.md.tmpl new file mode 100644 index 000000000..70d0a07aa --- /dev/null +++ b/templates/resources/secretsmanager_resource_policy.md.tmpl @@ -0,0 +1,25 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +{{ tffile (printf "examples/resources/%s/secretsmanager_resource_policy.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} \ No newline at end of file From 2a7a215515be46575e9451110e1657ad7b2186fd Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Fri, 26 Jul 2024 13:02:57 -0400 Subject: [PATCH 33/89] docs: added example for awscc_bedrock_flow_version --- docs/resources/bedrock_flow_version.md | 10 ++++++-- .../bedrock_flow_version.tf | 4 +++ .../resources/bedrock_flow_version.md.tmpl | 25 +++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 examples/resources/awscc_bedrock_flow_version/bedrock_flow_version.tf create mode 100644 templates/resources/bedrock_flow_version.md.tmpl diff --git a/docs/resources/bedrock_flow_version.md b/docs/resources/bedrock_flow_version.md index 39e6c9709..26705a177 100644 --- a/docs/resources/bedrock_flow_version.md +++ b/docs/resources/bedrock_flow_version.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_bedrock_flow_version Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,7 +9,14 @@ description: |- Definition of AWS::Bedrock::FlowVersion Resource Type +## Example Usage +```terraform +resource "awscc_bedrock_flow_version" "example" { + flow_arn = "arn:aws:bedrock:us-east-1:123456789012:flow/ASERNAQ7HX" + description = "example" +} +``` ## Schema @@ -253,4 +259,4 @@ Import is supported using the following syntax: ```shell $ terraform import awscc_bedrock_flow_version.example -``` +``` \ No newline at end of file diff --git a/examples/resources/awscc_bedrock_flow_version/bedrock_flow_version.tf b/examples/resources/awscc_bedrock_flow_version/bedrock_flow_version.tf new file mode 100644 index 000000000..c6e220562 --- /dev/null +++ b/examples/resources/awscc_bedrock_flow_version/bedrock_flow_version.tf @@ -0,0 +1,4 @@ +resource "awscc_bedrock_flow_version" "example" { + flow_arn = "arn:aws:bedrock:us-east-1:123456789012:flow/ASERNAQ7HX" + description = "example" +} diff --git a/templates/resources/bedrock_flow_version.md.tmpl b/templates/resources/bedrock_flow_version.md.tmpl new file mode 100644 index 000000000..70f149aba --- /dev/null +++ b/templates/resources/bedrock_flow_version.md.tmpl @@ -0,0 +1,25 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +{{ tffile (printf "examples/resources/%s/bedrock_flow_version.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} \ No newline at end of file From dd18acb220c5a28014eccb3eed6ca9793c4b6f75 Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Fri, 26 Jul 2024 15:23:48 -0400 Subject: [PATCH 34/89] docs: added example for awscc_bedrock_flow_alias --- docs/resources/bedrock_flow_alias.md | 23 ++++++++++++++--- .../bedrock_flow_alias.tf | 15 +++++++++++ .../resources/bedrock_flow_alias.md.tmpl | 25 +++++++++++++++++++ 3 files changed, 60 insertions(+), 3 deletions(-) create mode 100644 examples/resources/awscc_bedrock_flow_alias/bedrock_flow_alias.tf create mode 100644 templates/resources/bedrock_flow_alias.md.tmpl diff --git a/docs/resources/bedrock_flow_alias.md b/docs/resources/bedrock_flow_alias.md index c8ffd99d4..8e8a9e692 100644 --- a/docs/resources/bedrock_flow_alias.md +++ b/docs/resources/bedrock_flow_alias.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_bedrock_flow_alias Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,7 +9,25 @@ description: |- Definition of AWS::Bedrock::FlowAlias Resource Type - +## Example Usage + +```terraform +resource "awscc_bedrock_flow_alias" "example" { + name = "example" + flow_arn = "arn:aws:bedrock:us-east-1:123456789012:flow/ASERNAQ7HX" + description = "example" + routing_configuration = [ + { + flow_version = awscc_bedrock_flow_version.example.version + } + ] +} + +resource "awscc_bedrock_flow_version" "example" { + flow_arn = "arn:aws:bedrock:us-east-1:123456789012:flow/ASERNAQ7HX" + description = "example" +} +``` ## Schema @@ -48,4 +65,4 @@ Import is supported using the following syntax: ```shell $ terraform import awscc_bedrock_flow_alias.example -``` +``` \ No newline at end of file diff --git a/examples/resources/awscc_bedrock_flow_alias/bedrock_flow_alias.tf b/examples/resources/awscc_bedrock_flow_alias/bedrock_flow_alias.tf new file mode 100644 index 000000000..0109f15e9 --- /dev/null +++ b/examples/resources/awscc_bedrock_flow_alias/bedrock_flow_alias.tf @@ -0,0 +1,15 @@ +resource "awscc_bedrock_flow_alias" "example" { + name = "example" + flow_arn = "arn:aws:bedrock:us-east-1:123456789012:flow/ASERNAQ7HX" + description = "example" + routing_configuration = [ + { + flow_version = awscc_bedrock_flow_version.example.version + } + ] +} + +resource "awscc_bedrock_flow_version" "example" { + flow_arn = "arn:aws:bedrock:us-east-1:123456789012:flow/ASERNAQ7HX" + description = "example" +} diff --git a/templates/resources/bedrock_flow_alias.md.tmpl b/templates/resources/bedrock_flow_alias.md.tmpl new file mode 100644 index 000000000..6ec97ba1e --- /dev/null +++ b/templates/resources/bedrock_flow_alias.md.tmpl @@ -0,0 +1,25 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +{{ tffile (printf "examples/resources/%s/bedrock_flow_alias.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} \ No newline at end of file From 72d80a31a83fa9198b857dca7011650462291c02 Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Fri, 26 Jul 2024 15:35:34 -0400 Subject: [PATCH 35/89] docs: added example for awscc_resourceexplorer2_view --- docs/resources/resourceexplorer2_view.md | 20 +++++++++++++-- .../resourceexplorer2_view.tf | 14 +++++++++++ .../resources/resourceexplorer2_view.md.tmpl | 25 +++++++++++++++++++ 3 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 examples/resources/awscc_resourceexplorer2_view/resourceexplorer2_view.tf create mode 100644 templates/resources/resourceexplorer2_view.md.tmpl diff --git a/docs/resources/resourceexplorer2_view.md b/docs/resources/resourceexplorer2_view.md index fbfaeb1b9..52f098390 100644 --- a/docs/resources/resourceexplorer2_view.md +++ b/docs/resources/resourceexplorer2_view.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_resourceexplorer2_view Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,7 +9,24 @@ description: |- Definition of AWS::ResourceExplorer2::View Resource Type +## Example Usage +```terraform +resource "awscc_resourceexplorer2_view" "example" { + view_name = "example" + included_properties = [ + { + name = "tags" + } + ] + + depends_on = [awscc_resourceexplorer2_index.example] +} + +resource "awscc_resourceexplorer2_index" "example" { + type = "LOCAL" +} +``` ## Schema @@ -52,4 +68,4 @@ Import is supported using the following syntax: ```shell $ terraform import awscc_resourceexplorer2_view.example -``` +``` \ No newline at end of file diff --git a/examples/resources/awscc_resourceexplorer2_view/resourceexplorer2_view.tf b/examples/resources/awscc_resourceexplorer2_view/resourceexplorer2_view.tf new file mode 100644 index 000000000..7f95d7c9c --- /dev/null +++ b/examples/resources/awscc_resourceexplorer2_view/resourceexplorer2_view.tf @@ -0,0 +1,14 @@ +resource "awscc_resourceexplorer2_view" "example" { + view_name = "example" + included_properties = [ + { + name = "tags" + } + ] + + depends_on = [awscc_resourceexplorer2_index.example] +} + +resource "awscc_resourceexplorer2_index" "example" { + type = "LOCAL" +} \ No newline at end of file diff --git a/templates/resources/resourceexplorer2_view.md.tmpl b/templates/resources/resourceexplorer2_view.md.tmpl new file mode 100644 index 000000000..613c22206 --- /dev/null +++ b/templates/resources/resourceexplorer2_view.md.tmpl @@ -0,0 +1,25 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +{{ tffile (printf "examples/resources/%s/resourceexplorer2_view.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} \ No newline at end of file From 59ea41e9bef8ccf68f0618ad642193a47e4130ce Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Fri, 26 Jul 2024 15:39:34 -0400 Subject: [PATCH 36/89] docs: added example for awscc_resourceexplorer2_index --- docs/resources/resourceexplorer2_index.md | 9 +++++-- .../resourceexplorer2_index.tf | 3 +++ .../resources/resourceexplorer2_index.md.tmpl | 25 +++++++++++++++++++ 3 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 examples/resources/awscc_resourceexplorer2_index/resourceexplorer2_index.tf create mode 100644 templates/resources/resourceexplorer2_index.md.tmpl diff --git a/docs/resources/resourceexplorer2_index.md b/docs/resources/resourceexplorer2_index.md index 26d04b8a9..42d121b8b 100644 --- a/docs/resources/resourceexplorer2_index.md +++ b/docs/resources/resourceexplorer2_index.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_resourceexplorer2_index Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,7 +9,13 @@ description: |- Definition of AWS::ResourceExplorer2::Index Resource Type +## Example Usage +```terraform +resource "awscc_resourceexplorer2_index" "example" { + type = "LOCAL" +} +``` ## Schema @@ -35,4 +40,4 @@ Import is supported using the following syntax: ```shell $ terraform import awscc_resourceexplorer2_index.example -``` +``` \ No newline at end of file diff --git a/examples/resources/awscc_resourceexplorer2_index/resourceexplorer2_index.tf b/examples/resources/awscc_resourceexplorer2_index/resourceexplorer2_index.tf new file mode 100644 index 000000000..617bf15a0 --- /dev/null +++ b/examples/resources/awscc_resourceexplorer2_index/resourceexplorer2_index.tf @@ -0,0 +1,3 @@ +resource "awscc_resourceexplorer2_index" "example" { + type = "LOCAL" +} diff --git a/templates/resources/resourceexplorer2_index.md.tmpl b/templates/resources/resourceexplorer2_index.md.tmpl new file mode 100644 index 000000000..8ecf3f89b --- /dev/null +++ b/templates/resources/resourceexplorer2_index.md.tmpl @@ -0,0 +1,25 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +{{ tffile (printf "examples/resources/%s/resourceexplorer2_index.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} \ No newline at end of file From 8db5b7b953ebc6d7bb92aa11989549f9019c5575 Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Fri, 26 Jul 2024 17:53:37 -0400 Subject: [PATCH 37/89] docs: added examples for awscc_s3_storage_lens_group --- docs/resources/s3_storage_lens_group.md | 55 ++++++++++++++++++- .../s3_storage_lens_group_filter.tf | 21 +++++++ .../s3_storage_lens_group_logical_operator.tf | 21 +++++++ .../resources/s3_storage_lens_group.md.tmpl | 31 +++++++++++ 4 files changed, 126 insertions(+), 2 deletions(-) create mode 100644 examples/resources/awscc_s3_storage_lens_group/s3_storage_lens_group_filter.tf create mode 100644 examples/resources/awscc_s3_storage_lens_group/s3_storage_lens_group_logical_operator.tf create mode 100644 templates/resources/s3_storage_lens_group.md.tmpl diff --git a/docs/resources/s3_storage_lens_group.md b/docs/resources/s3_storage_lens_group.md index 19d1be6d4..da4c1c3e7 100644 --- a/docs/resources/s3_storage_lens_group.md +++ b/docs/resources/s3_storage_lens_group.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_s3_storage_lens_group Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,7 +9,59 @@ description: |- The AWS::S3::StorageLensGroup resource is an Amazon S3 resource type that you can use to create Storage Lens Group. +## Example Usage + +### Storage lens group with object filters + +```terraform +resource "awscc_s3_storage_lens_group" "example" { + name = "example" + filter = { + match_any_tag = [ + { + key = "key1", + value = "value1" + }, + { + key = "key2", + value = "value2" + } + ] + } + + + tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} +``` +### Storange lens with logical operators + +```terraform +resource "awscc_s3_storage_lens_group" "example" { + name = "example" + filter = { + and = { + match_any_prefix = ["group1"], + match_object_age = { + days_greater_than = 10, + days_less_than = 60 + }, + match_object_size = { + bytes_greater_than = 10, + bytes_less_than = 60 + } + } + } + + tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} +``` ## Schema @@ -162,4 +213,4 @@ Import is supported using the following syntax: ```shell $ terraform import awscc_s3_storage_lens_group.example -``` +``` \ No newline at end of file diff --git a/examples/resources/awscc_s3_storage_lens_group/s3_storage_lens_group_filter.tf b/examples/resources/awscc_s3_storage_lens_group/s3_storage_lens_group_filter.tf new file mode 100644 index 000000000..4bcaff434 --- /dev/null +++ b/examples/resources/awscc_s3_storage_lens_group/s3_storage_lens_group_filter.tf @@ -0,0 +1,21 @@ +resource "awscc_s3_storage_lens_group" "example" { + name = "example" + filter = { + match_any_tag = [ + { + key = "key1", + value = "value1" + }, + { + key = "key2", + value = "value2" + } + ] + } + + + tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} diff --git a/examples/resources/awscc_s3_storage_lens_group/s3_storage_lens_group_logical_operator.tf b/examples/resources/awscc_s3_storage_lens_group/s3_storage_lens_group_logical_operator.tf new file mode 100644 index 000000000..fcab2a909 --- /dev/null +++ b/examples/resources/awscc_s3_storage_lens_group/s3_storage_lens_group_logical_operator.tf @@ -0,0 +1,21 @@ +resource "awscc_s3_storage_lens_group" "example" { + name = "example" + filter = { + and = { + match_any_prefix = ["group1"], + match_object_age = { + days_greater_than = 10, + days_less_than = 60 + }, + match_object_size = { + bytes_greater_than = 10, + bytes_less_than = 60 + } + } + } + + tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} diff --git a/templates/resources/s3_storage_lens_group.md.tmpl b/templates/resources/s3_storage_lens_group.md.tmpl new file mode 100644 index 000000000..e484865a4 --- /dev/null +++ b/templates/resources/s3_storage_lens_group.md.tmpl @@ -0,0 +1,31 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +### Storage lens group with object filters + +{{ tffile (printf "examples/resources/%s/s3_storage_lens_group_filter.tf" .Name)}} + +### Storange lens with logical operators + +{{ tffile (printf "examples/resources/%s/s3_storage_lens_group_logical_operator.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} \ No newline at end of file From 0fab6f01a6a2d56838366c46ccb6a7aa7818c3b1 Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Sun, 28 Jul 2024 11:11:04 -0400 Subject: [PATCH 38/89] fix: added example for awscc_s3_storage_lens --- docs/resources/s3_storage_lens.md | 77 ++++++++++++++++++- .../awscc_s3_storage_lens/s3_storage_lens.tf | 70 +++++++++++++++++ templates/resources/s3_storage_lens.md.tmpl | 28 +++++++ 3 files changed, 174 insertions(+), 1 deletion(-) create mode 100644 examples/resources/awscc_s3_storage_lens/s3_storage_lens.tf create mode 100644 templates/resources/s3_storage_lens.md.tmpl diff --git a/docs/resources/s3_storage_lens.md b/docs/resources/s3_storage_lens.md index 4329dac06..e1e21c53f 100644 --- a/docs/resources/s3_storage_lens.md +++ b/docs/resources/s3_storage_lens.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_s3_storage_lens Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,6 +9,82 @@ description: |- The AWS::S3::StorageLens resource is an Amazon S3 resource type that you can use to create Storage Lens configurations. +## Example Usage + +### Creating an advanced S3 Storage Lens configuration + +```terraform +resource "awscc_s3_storage_lens" "example" { + + storage_lens_configuration = { + is_enabled = true + id = "example" + account_level = { + activity_metrics = { + is_enabled = true + } + advanced_cost_optimization_metrics = { + is_enabled = true + } + advanced_data_protection_metrics = { + is_enabled = true + } + detailed_status_codes_metrics = { + is_enabled = true + } + + bucket_level = { + activity_metrics = { + is_enabled = true + } + advanced_cost_optimization_metrics = { + is_enabled = true + } + advanced_data_protection_metrics = { + is_enabled = true + } + detailed_status_codes_metrics = { + is_enabled = true + } + prefix_level = { + storage_metrics = { + is_enabled = true + selection_criteria = { + delimiter = "/" + max_depth = 5 + min_storage_bytes_percentage = 1.23 + } + } + } + } + } + exclude = { + buckets = [ + "arn:aws:s3:::example_bucket_1", + "arn:aws:s3:::example_bucket_2", + ] + } + data_export = { + s3_bucket_destination = { + account_id = data.aws_caller_identity.current.account_id + arn = "arn:aws:s3:::destination_bucket" + output_schema_version = "V_1" + format = "CSV" + prefix = "/" + cloudwatch_metrics = { + is_enabled = true + } + } + } + } + tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} + +data "aws_caller_identity" "current" {} +``` diff --git a/examples/resources/awscc_s3_storage_lens/s3_storage_lens.tf b/examples/resources/awscc_s3_storage_lens/s3_storage_lens.tf new file mode 100644 index 000000000..7742c7279 --- /dev/null +++ b/examples/resources/awscc_s3_storage_lens/s3_storage_lens.tf @@ -0,0 +1,70 @@ +resource "awscc_s3_storage_lens" "example" { + + storage_lens_configuration = { + is_enabled = true + id = "example" + account_level = { + activity_metrics = { + is_enabled = true + } + advanced_cost_optimization_metrics = { + is_enabled = true + } + advanced_data_protection_metrics = { + is_enabled = true + } + detailed_status_codes_metrics = { + is_enabled = true + } + + bucket_level = { + activity_metrics = { + is_enabled = true + } + advanced_cost_optimization_metrics = { + is_enabled = true + } + advanced_data_protection_metrics = { + is_enabled = true + } + detailed_status_codes_metrics = { + is_enabled = true + } + prefix_level = { + storage_metrics = { + is_enabled = true + selection_criteria = { + delimiter = "/" + max_depth = 5 + min_storage_bytes_percentage = 1.23 + } + } + } + } + } + exclude = { + buckets = [ + "arn:aws:s3:::example_bucket_1", + "arn:aws:s3:::example_bucket_2", + ] + } + data_export = { + s3_bucket_destination = { + account_id = data.aws_caller_identity.current.account_id + arn = "arn:aws:s3:::destination_bucket" + output_schema_version = "V_1" + format = "CSV" + prefix = "/" + cloudwatch_metrics = { + is_enabled = true + } + } + } + } + tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} + +data "aws_caller_identity" "current" {} diff --git a/templates/resources/s3_storage_lens.md.tmpl b/templates/resources/s3_storage_lens.md.tmpl new file mode 100644 index 000000000..2e39840c5 --- /dev/null +++ b/templates/resources/s3_storage_lens.md.tmpl @@ -0,0 +1,28 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +### Creating an advanced S3 Storage Lens configuration + +{{ tffile (printf "examples/resources/%s/s3_storage_lens.tf" .Name)}} + + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} From fd740def286bb34b6484781aebc05f0792f58247 Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Sun, 28 Jul 2024 12:05:00 -0400 Subject: [PATCH 39/89] docs: added example for awscc_s3express_directory_bucket --- docs/resources/s3express_directory_bucket.md | 11 +++++++- .../s3express_directory_bucket.tf | 5 ++++ .../s3express_directory_bucket.md.tmpl | 27 +++++++++++++++++++ 3 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 examples/resources/awscc_s3express_directory_bucket/s3express_directory_bucket.tf create mode 100644 templates/resources/s3express_directory_bucket.md.tmpl diff --git a/docs/resources/s3express_directory_bucket.md b/docs/resources/s3express_directory_bucket.md index 8630a4676..62c732050 100644 --- a/docs/resources/s3express_directory_bucket.md +++ b/docs/resources/s3express_directory_bucket.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_s3express_directory_bucket Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,7 +9,17 @@ description: |- Resource Type definition for AWS::S3Express::DirectoryBucket. +## Example Usage +### Create an express S3 bucket. `bucket_name` should be of the format `bucket_base_name--az_id--x-s3` + +```terraform +resource "awscc_s3express_directory_bucket" "example" { + bucket_name = "example-bucket--use1-az4--x-s3" + data_redundancy = "SingleAvailabilityZone" + location_name = "use1-az4" +} +``` ## Schema diff --git a/examples/resources/awscc_s3express_directory_bucket/s3express_directory_bucket.tf b/examples/resources/awscc_s3express_directory_bucket/s3express_directory_bucket.tf new file mode 100644 index 000000000..183ddd460 --- /dev/null +++ b/examples/resources/awscc_s3express_directory_bucket/s3express_directory_bucket.tf @@ -0,0 +1,5 @@ +resource "awscc_s3express_directory_bucket" "example" { + bucket_name = "example-bucket--use1-az4--x-s3" + data_redundancy = "SingleAvailabilityZone" + location_name = "use1-az4" +} \ No newline at end of file diff --git a/templates/resources/s3express_directory_bucket.md.tmpl b/templates/resources/s3express_directory_bucket.md.tmpl new file mode 100644 index 000000000..994eb7da0 --- /dev/null +++ b/templates/resources/s3express_directory_bucket.md.tmpl @@ -0,0 +1,27 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +### Create an express S3 bucket. `bucket_name` should be of the format `bucket_base_name--az_id--x-s3` + +{{ tffile (printf "examples/resources/%s/s3express_directory_bucket.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} From 4bf59e1002c4fbc6fe7f47366a8d113cf473e88f Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Sun, 28 Jul 2024 12:28:15 -0400 Subject: [PATCH 40/89] docs: added examples for awscc_s3express_bucket_policy --- docs/resources/s3express_bucket_policy.md | 54 ++++++++++++++++++- .../s3express_bucket_policy_readonly.tf | 24 +++++++++ .../s3express_bucket_policy_readwrite.tf | 19 +++++++ .../resources/s3express_bucket_policy.md.tmpl | 31 +++++++++++ 4 files changed, 127 insertions(+), 1 deletion(-) create mode 100644 examples/resources/awscc_s3express_bucket_policy/s3express_bucket_policy_readonly.tf create mode 100644 examples/resources/awscc_s3express_bucket_policy/s3express_bucket_policy_readwrite.tf create mode 100644 templates/resources/s3express_bucket_policy.md.tmpl diff --git a/docs/resources/s3express_bucket_policy.md b/docs/resources/s3express_bucket_policy.md index 6647953ae..4183a2e99 100644 --- a/docs/resources/s3express_bucket_policy.md +++ b/docs/resources/s3express_bucket_policy.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_s3express_bucket_policy Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,7 +9,60 @@ description: |- Resource Type definition for AWS::S3Express::BucketPolicy. +## Example Usage +### Bucket policy to allow CreateSession calls with the default ReadWrite session + +```terraform +resource "awscc_s3express_bucket_policy" "example" { + bucket = awscc_s3express_directory_bucket.example.id + policy_document = jsonencode({ + Version = "2012-10-17" + Statement = [ + { + Sid = "ReadWriteAccess" + Action = "s3express:CreateSession" + Effect = "Allow" + Resource = awscc_s3express_directory_bucket.example.arn + Principal = { + AWS = "arn:aws:iam::${data.aws_caller_identity.current.account_id}:root" + } + } + ] + }) +} + +data "aws_caller_identity" "current" {} +``` + +### Bucket policy to allow CreateSession calls with a ReadOnly session + +```terraform +resource "awscc_s3express_bucket_policy" "example" { + bucket = awscc_s3express_directory_bucket.example.id + policy_document = jsonencode({ + Version = "2012-10-17" + Statement = [ + { + Sid = "ReadOnlyAccess" + Action = "s3express:CreateSession" + Effect = "Allow" + Resource = awscc_s3express_directory_bucket.example.arn + Principal = { + AWS = "arn:aws:iam::${data.aws_caller_identity.current.account_id}:root" + } + Condition = { + StringEquals = { + "s3express:SessionMode" = "ReadOnly" + } + } + } + ] + }) +} + +data "aws_caller_identity" "current" {} +``` ## Schema diff --git a/examples/resources/awscc_s3express_bucket_policy/s3express_bucket_policy_readonly.tf b/examples/resources/awscc_s3express_bucket_policy/s3express_bucket_policy_readonly.tf new file mode 100644 index 000000000..8e9cd49e5 --- /dev/null +++ b/examples/resources/awscc_s3express_bucket_policy/s3express_bucket_policy_readonly.tf @@ -0,0 +1,24 @@ +resource "awscc_s3express_bucket_policy" "example" { + bucket = awscc_s3express_directory_bucket.example.id + policy_document = jsonencode({ + Version = "2012-10-17" + Statement = [ + { + Sid = "ReadOnlyAccess" + Action = "s3express:CreateSession" + Effect = "Allow" + Resource = awscc_s3express_directory_bucket.example.arn + Principal = { + AWS = "arn:aws:iam::${data.aws_caller_identity.current.account_id}:root" + } + Condition = { + StringEquals = { + "s3express:SessionMode" = "ReadOnly" + } + } + } + ] + }) +} + +data "aws_caller_identity" "current" {} \ No newline at end of file diff --git a/examples/resources/awscc_s3express_bucket_policy/s3express_bucket_policy_readwrite.tf b/examples/resources/awscc_s3express_bucket_policy/s3express_bucket_policy_readwrite.tf new file mode 100644 index 000000000..6bb1d500c --- /dev/null +++ b/examples/resources/awscc_s3express_bucket_policy/s3express_bucket_policy_readwrite.tf @@ -0,0 +1,19 @@ +resource "awscc_s3express_bucket_policy" "example" { + bucket = awscc_s3express_directory_bucket.example.id + policy_document = jsonencode({ + Version = "2012-10-17" + Statement = [ + { + Sid = "ReadWriteAccess" + Action = "s3express:CreateSession" + Effect = "Allow" + Resource = awscc_s3express_directory_bucket.example.arn + Principal = { + AWS = "arn:aws:iam::${data.aws_caller_identity.current.account_id}:root" + } + } + ] + }) +} + +data "aws_caller_identity" "current" {} \ No newline at end of file diff --git a/templates/resources/s3express_bucket_policy.md.tmpl b/templates/resources/s3express_bucket_policy.md.tmpl new file mode 100644 index 000000000..09d11da92 --- /dev/null +++ b/templates/resources/s3express_bucket_policy.md.tmpl @@ -0,0 +1,31 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +### Bucket policy to allow CreateSession calls with the default ReadWrite session + +{{ tffile (printf "examples/resources/%s/s3express_bucket_policy_readwrite.tf" .Name)}} + +### Bucket policy to allow CreateSession calls with a ReadOnly session + +{{ tffile (printf "examples/resources/%s/s3express_bucket_policy_readonly.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} From 8d69d45ebb80594deebd514f9d6365e631d14aa8 Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Sun, 28 Jul 2024 12:42:42 -0400 Subject: [PATCH 41/89] docs: added example for awscc_s3outposts_bucket --- docs/resources/s3outposts_bucket.md | 36 +++++++++++++++++-- .../s3outposts_bucket.tf | 30 ++++++++++++++++ templates/resources/s3outposts_bucket.md.tmpl | 25 +++++++++++++ 3 files changed, 89 insertions(+), 2 deletions(-) create mode 100644 examples/resources/awscc_s3outposts_bucket/s3outposts_bucket.tf create mode 100644 templates/resources/s3outposts_bucket.md.tmpl diff --git a/docs/resources/s3outposts_bucket.md b/docs/resources/s3outposts_bucket.md index 4a363f4d1..f32fb17d7 100644 --- a/docs/resources/s3outposts_bucket.md +++ b/docs/resources/s3outposts_bucket.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_s3outposts_bucket Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,7 +9,40 @@ description: |- Resource Type Definition for AWS::S3Outposts::Bucket - +## Example Usage + +```terraform +resource "awscc_s3outposts_bucket" "example" { + bucket_name = "example-bucket" + outpost_id = "op-01ac5d28a6a232904" + + lifecycle_configuration = { + rules = [ + { + id = "rule1" + expiration_in_days = 30 + status = "Enabled" + }, + { + id = "rule2" + abort_incomplete_multipart_upload = { + days_after_initiation = 7 + } + status = "Enabled" + filter = { + prefix = "documents/" + } + } + ] + } + + + tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} +``` ## Schema diff --git a/examples/resources/awscc_s3outposts_bucket/s3outposts_bucket.tf b/examples/resources/awscc_s3outposts_bucket/s3outposts_bucket.tf new file mode 100644 index 000000000..064f003f8 --- /dev/null +++ b/examples/resources/awscc_s3outposts_bucket/s3outposts_bucket.tf @@ -0,0 +1,30 @@ +resource "awscc_s3outposts_bucket" "example" { + bucket_name = "example-bucket" + outpost_id = "op-01ac5d28a6a232904" + + lifecycle_configuration = { + rules = [ + { + id = "rule1" + expiration_in_days = 30 + status = "Enabled" + }, + { + id = "rule2" + abort_incomplete_multipart_upload = { + days_after_initiation = 7 + } + status = "Enabled" + filter = { + prefix = "documents/" + } + } + ] + } + + + tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} \ No newline at end of file diff --git a/templates/resources/s3outposts_bucket.md.tmpl b/templates/resources/s3outposts_bucket.md.tmpl new file mode 100644 index 000000000..29481af17 --- /dev/null +++ b/templates/resources/s3outposts_bucket.md.tmpl @@ -0,0 +1,25 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +{{ tffile (printf "examples/resources/%s/s3outposts_bucket.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} From e1cb419bedadd8e8eadbc58d3d13b04f838a9ada Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Sun, 28 Jul 2024 12:48:33 -0400 Subject: [PATCH 42/89] docs: added example for awscc_s3outposts_bucket_policy --- docs/resources/s3outposts_bucket_policy.md | 24 ++++++++++++++++-- .../s3outposts_bucket_policy.tf | 18 +++++++++++++ .../s3outposts_bucket_policy.md.tmpl | 25 +++++++++++++++++++ 3 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 examples/resources/awscc_s3outposts_bucket_policy/s3outposts_bucket_policy.tf create mode 100644 templates/resources/s3outposts_bucket_policy.md.tmpl diff --git a/docs/resources/s3outposts_bucket_policy.md b/docs/resources/s3outposts_bucket_policy.md index 37f921316..c9bb87abf 100644 --- a/docs/resources/s3outposts_bucket_policy.md +++ b/docs/resources/s3outposts_bucket_policy.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_s3outposts_bucket_policy Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,7 +9,28 @@ description: |- Resource Type Definition for AWS::S3Outposts::BucketPolicy - +## Example Usage + +```terraform +resource "awscc_s3outposts_bucket_policy" "example" { + bucket = awscc_s3outposts_bucket.example.id + policy_document = jsonencode({ + Version = "2012-10-17" + Statement = [ + { + Sid = "AllowAll" + Action = "s3-outposts:*" + Effect = "Allow" + Resource = awscc_s3outposts_bucket.example.arn + Principal = { + AWS = "arn:aws:iam::${data.aws_caller_identity.current.account_id}:root" + } + } + ] + }) +} +data "aws_caller_identity" "current" {} +``` ## Schema diff --git a/examples/resources/awscc_s3outposts_bucket_policy/s3outposts_bucket_policy.tf b/examples/resources/awscc_s3outposts_bucket_policy/s3outposts_bucket_policy.tf new file mode 100644 index 000000000..bb2cb1532 --- /dev/null +++ b/examples/resources/awscc_s3outposts_bucket_policy/s3outposts_bucket_policy.tf @@ -0,0 +1,18 @@ +resource "awscc_s3outposts_bucket_policy" "example" { + bucket = awscc_s3outposts_bucket.example.id + policy_document = jsonencode({ + Version = "2012-10-17" + Statement = [ + { + Sid = "AllowAll" + Action = "s3-outposts:*" + Effect = "Allow" + Resource = awscc_s3outposts_bucket.example.arn + Principal = { + AWS = "arn:aws:iam::${data.aws_caller_identity.current.account_id}:root" + } + } + ] + }) +} +data "aws_caller_identity" "current" {} diff --git a/templates/resources/s3outposts_bucket_policy.md.tmpl b/templates/resources/s3outposts_bucket_policy.md.tmpl new file mode 100644 index 000000000..7f02916d4 --- /dev/null +++ b/templates/resources/s3outposts_bucket_policy.md.tmpl @@ -0,0 +1,25 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +{{ tffile (printf "examples/resources/%s/s3outposts_bucket_policy.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} From efc2f9008b4cd5f2522cbfee062a717e89e31d00 Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Mon, 29 Jul 2024 15:57:34 -0400 Subject: [PATCH 43/89] docs: added example for awscc_cloudtrail_event_data_store --- docs/resources/cloudtrail_event_data_store.md | 56 ++++++++++++++++++- .../cloudtrail_event_data_store_insights.tf | 22 ++++++++ .../cloudtrail_event_data_store_management.tf | 21 +++++++ .../cloudtrail_event_data_store.md.tmpl | 31 ++++++++++ 4 files changed, 128 insertions(+), 2 deletions(-) create mode 100644 examples/resources/awscc_cloudtrail_event_data_store/cloudtrail_event_data_store_insights.tf create mode 100644 examples/resources/awscc_cloudtrail_event_data_store/cloudtrail_event_data_store_management.tf create mode 100644 templates/resources/cloudtrail_event_data_store.md.tmpl diff --git a/docs/resources/cloudtrail_event_data_store.md b/docs/resources/cloudtrail_event_data_store.md index 07b25b5bb..8bfbb7e61 100644 --- a/docs/resources/cloudtrail_event_data_store.md +++ b/docs/resources/cloudtrail_event_data_store.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_cloudtrail_event_data_store Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,7 +9,60 @@ description: |- A storage lake of event data against which you can run complex SQL-based queries. An event data store can include events that you have logged on your account from the last 7 to 2557 or 3653 days (about seven or ten years) depending on the selected BillingMode. +## Example Usage + +Create an event data store for management events + +```terraform +resource "awscc_cloudtrail_event_data_store" "example" { + name = "example" + retention_period = 90 + federation_enabled = false + termination_protection_enabled = false + multi_region_enabled = false + ingestion_enabled = true + billing_mode = "EXTENDABLE_RETENTION_PRICING" + organization_enabled = false + advanced_event_selectors = [{ + field_selectors = [{ + field = "eventCategory" + equals = ["Management"] + }] + }] + + tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} +``` +Create an event data store to collect Insights events + +```terraform +resource "awscc_cloudtrail_event_data_store" "example" { + name = "example" + retention_period = 90 + federation_enabled = false + termination_protection_enabled = false + multi_region_enabled = false + ingestion_enabled = true + billing_mode = "EXTENDABLE_RETENTION_PRICING" + organization_enabled = false + kms_key_id = awscc_kms_key.example.arn + advanced_event_selectors = [{ + field_selectors = [{ + field = "eventCategory" + equals = ["Insight"] + }] + }] + + tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} +``` ## Schema @@ -91,4 +143,4 @@ Import is supported using the following syntax: ```shell $ terraform import awscc_cloudtrail_event_data_store.example -``` +``` \ No newline at end of file diff --git a/examples/resources/awscc_cloudtrail_event_data_store/cloudtrail_event_data_store_insights.tf b/examples/resources/awscc_cloudtrail_event_data_store/cloudtrail_event_data_store_insights.tf new file mode 100644 index 000000000..8ddd22d4d --- /dev/null +++ b/examples/resources/awscc_cloudtrail_event_data_store/cloudtrail_event_data_store_insights.tf @@ -0,0 +1,22 @@ +resource "awscc_cloudtrail_event_data_store" "example" { + name = "example" + retention_period = 90 + federation_enabled = false + termination_protection_enabled = false + multi_region_enabled = false + ingestion_enabled = true + billing_mode = "EXTENDABLE_RETENTION_PRICING" + organization_enabled = false + kms_key_id = awscc_kms_key.example.arn + advanced_event_selectors = [{ + field_selectors = [{ + field = "eventCategory" + equals = ["Insight"] + }] + }] + + tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} \ No newline at end of file diff --git a/examples/resources/awscc_cloudtrail_event_data_store/cloudtrail_event_data_store_management.tf b/examples/resources/awscc_cloudtrail_event_data_store/cloudtrail_event_data_store_management.tf new file mode 100644 index 000000000..ac8eeea74 --- /dev/null +++ b/examples/resources/awscc_cloudtrail_event_data_store/cloudtrail_event_data_store_management.tf @@ -0,0 +1,21 @@ +resource "awscc_cloudtrail_event_data_store" "example" { + name = "example" + retention_period = 90 + federation_enabled = false + termination_protection_enabled = false + multi_region_enabled = false + ingestion_enabled = true + billing_mode = "EXTENDABLE_RETENTION_PRICING" + organization_enabled = false + advanced_event_selectors = [{ + field_selectors = [{ + field = "eventCategory" + equals = ["Management"] + }] + }] + + tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} diff --git a/templates/resources/cloudtrail_event_data_store.md.tmpl b/templates/resources/cloudtrail_event_data_store.md.tmpl new file mode 100644 index 000000000..556a47e2f --- /dev/null +++ b/templates/resources/cloudtrail_event_data_store.md.tmpl @@ -0,0 +1,31 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +Create an event data store for management events + +{{ tffile (printf "examples/resources/%s/cloudtrail_event_data_store_management.tf" .Name)}} + +Create an event data store to collect Insights events + +{{ tffile (printf "examples/resources/%s/cloudtrail_event_data_store_insights.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} \ No newline at end of file From 3cc0a0f3e979c459b0dfde8ab400601e1e36cee4 Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Mon, 29 Jul 2024 16:40:10 -0400 Subject: [PATCH 44/89] docs: added example for awscc_cloudtrail_channel --- docs/resources/cloudtrail_channel.md | 43 +++++++++++++++++-- .../cloudtrail_channel.tf | 35 +++++++++++++++ .../resources/cloudtrail_channel.md.tmpl | 25 +++++++++++ 3 files changed, 100 insertions(+), 3 deletions(-) create mode 100644 examples/resources/awscc_cloudtrail_channel/cloudtrail_channel.tf create mode 100644 templates/resources/cloudtrail_channel.md.tmpl diff --git a/docs/resources/cloudtrail_channel.md b/docs/resources/cloudtrail_channel.md index 68974313c..ab8862564 100644 --- a/docs/resources/cloudtrail_channel.md +++ b/docs/resources/cloudtrail_channel.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_cloudtrail_channel Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,7 +9,45 @@ description: |- A channel receives events from a specific source (such as an on-premises storage solution or application, or a partner event data source), and delivers the events to one or more event data stores. You use channels to ingest events into CloudTrail from sources outside AWS. - +## Example Usage + +```terraform +resource "awscc_cloudtrail_channel" "example" { + name = "example" + source = "Custom" + destinations = [{ + type = "EVENT_DATA_STORE" + location = awscc_cloudtrail_event_data_store.example.event_data_store_arn + }] + tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} + + +resource "awscc_cloudtrail_event_data_store" "example" { + name = "example" + retention_period = 90 + federation_enabled = false + termination_protection_enabled = false + multi_region_enabled = false + ingestion_enabled = true + billing_mode = "EXTENDABLE_RETENTION_PRICING" + organization_enabled = false + advanced_event_selectors = [{ + field_selectors = [{ + field = "eventCategory" + equals = ["ActivityAuditLog"] + }] + }] + + tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} +``` ## Schema @@ -50,4 +87,4 @@ Import is supported using the following syntax: ```shell $ terraform import awscc_cloudtrail_channel.example -``` +``` \ No newline at end of file diff --git a/examples/resources/awscc_cloudtrail_channel/cloudtrail_channel.tf b/examples/resources/awscc_cloudtrail_channel/cloudtrail_channel.tf new file mode 100644 index 000000000..2c701a12b --- /dev/null +++ b/examples/resources/awscc_cloudtrail_channel/cloudtrail_channel.tf @@ -0,0 +1,35 @@ +resource "awscc_cloudtrail_channel" "example" { + name = "example" + source = "Custom" + destinations = [{ + type = "EVENT_DATA_STORE" + location = awscc_cloudtrail_event_data_store.example.event_data_store_arn + }] + tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} + + +resource "awscc_cloudtrail_event_data_store" "example" { + name = "example" + retention_period = 90 + federation_enabled = false + termination_protection_enabled = false + multi_region_enabled = false + ingestion_enabled = true + billing_mode = "EXTENDABLE_RETENTION_PRICING" + organization_enabled = false + advanced_event_selectors = [{ + field_selectors = [{ + field = "eventCategory" + equals = ["ActivityAuditLog"] + }] + }] + + tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} diff --git a/templates/resources/cloudtrail_channel.md.tmpl b/templates/resources/cloudtrail_channel.md.tmpl new file mode 100644 index 000000000..56563cc92 --- /dev/null +++ b/templates/resources/cloudtrail_channel.md.tmpl @@ -0,0 +1,25 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +{{ tffile (printf "examples/resources/%s/cloudtrail_channel.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} \ No newline at end of file From d963f6edeb6bdd9f8c6ccfa988346b7eb29fe322 Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Mon, 29 Jul 2024 16:56:50 -0400 Subject: [PATCH 45/89] docs: added example for awscc_cloudtrail_resource_policy --- docs/resources/cloudtrail_resource_policy.md | 27 ++++++++++++++++--- .../cloudtrail_resource_policy.tf | 19 +++++++++++++ .../cloudtrail_resource_policy.md.tmpl | 25 +++++++++++++++++ 3 files changed, 68 insertions(+), 3 deletions(-) create mode 100644 examples/resources/awscc_cloudtrail_resource_policy/cloudtrail_resource_policy.tf create mode 100644 templates/resources/cloudtrail_resource_policy.md.tmpl diff --git a/docs/resources/cloudtrail_resource_policy.md b/docs/resources/cloudtrail_resource_policy.md index 2c02a5286..c14f845c3 100644 --- a/docs/resources/cloudtrail_resource_policy.md +++ b/docs/resources/cloudtrail_resource_policy.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_cloudtrail_resource_policy Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,7 +9,29 @@ description: |- Resource Type definition for AWS::CloudTrail::ResourcePolicy - +## Example Usage + +```terraform +resource "awscc_cloudtrail_resource_policy" "example" { + resource_arn = awscc_cloudtrail_channel.example.channel_arn + resource_policy = jsonencode({ + "Version" : "2012-10-17", + "Statement" : [ + { + "Sid" : "DeliverEventsThroughChannel", + "Effect" : "Allow", + "Principal" : { + "AWS" : "arn:aws:iam::${data.aws_caller_identity.current.account_id}:root" + }, + "Action" : "cloudtrail-data:PutAuditEvents", + "Resource" : awscc_cloudtrail_channel.example.channel_arn + } + ] + }) +} + +data "aws_caller_identity" "current" {} +``` ## Schema @@ -30,4 +51,4 @@ Import is supported using the following syntax: ```shell $ terraform import awscc_cloudtrail_resource_policy.example -``` +``` \ No newline at end of file diff --git a/examples/resources/awscc_cloudtrail_resource_policy/cloudtrail_resource_policy.tf b/examples/resources/awscc_cloudtrail_resource_policy/cloudtrail_resource_policy.tf new file mode 100644 index 000000000..372451026 --- /dev/null +++ b/examples/resources/awscc_cloudtrail_resource_policy/cloudtrail_resource_policy.tf @@ -0,0 +1,19 @@ +resource "awscc_cloudtrail_resource_policy" "example" { + resource_arn = awscc_cloudtrail_channel.example.channel_arn + resource_policy = jsonencode({ + "Version" : "2012-10-17", + "Statement" : [ + { + "Sid" : "DeliverEventsThroughChannel", + "Effect" : "Allow", + "Principal" : { + "AWS" : "arn:aws:iam::${data.aws_caller_identity.current.account_id}:root" + }, + "Action" : "cloudtrail-data:PutAuditEvents", + "Resource" : awscc_cloudtrail_channel.example.channel_arn + } + ] + }) +} + +data "aws_caller_identity" "current" {} diff --git a/templates/resources/cloudtrail_resource_policy.md.tmpl b/templates/resources/cloudtrail_resource_policy.md.tmpl new file mode 100644 index 000000000..fd70c3b95 --- /dev/null +++ b/templates/resources/cloudtrail_resource_policy.md.tmpl @@ -0,0 +1,25 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +{{ tffile (printf "examples/resources/%s/cloudtrail_resource_policy.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} \ No newline at end of file From 0b2d5866f670f8ad3f2352c49cbade59add759a2 Mon Sep 17 00:00:00 2001 From: Justin Retzolk <44710313+justinretzolk@users.noreply.github.com> Date: Mon, 29 Jul 2024 17:44:18 -0500 Subject: [PATCH 46/89] Fix community check --- .github/actions/community_check/action.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/actions/community_check/action.yml b/.github/actions/community_check/action.yml index dbe02a6ea..1e9966980 100644 --- a/.github/actions/community_check/action.yml +++ b/.github/actions/community_check/action.yml @@ -41,16 +41,16 @@ runs: id: core_contributor if: inputs.core_contributors != '' shell: bash - run: echo "check=$(echo $INPUT_CORE_CONTRIBUTORS | base64 --decode | jq --arg u $INPUT_USER_LOGIN '. | contains([$u])')" >> "$GITHUB_OUTPUT" + run: echo "check=$(echo ${{ inputs.core_contributors }} | base64 --decode | jq --arg u ${{ inputs.user_login }} '. | contains([$u])')" >> "$GITHUB_OUTPUT" - name: Maintainers id: maintainer if: inputs.maintainers != '' shell: bash - run: echo "check=$(echo $INPUT_MAINTAINERS | base64 --decode | jq --arg u $INPUT_USER_LOGIN '. | contains([$u])')" >> "$GITHUB_OUTPUT" + run: echo "check=$(echo ${{ inputs.maintainers }} | base64 --decode | jq --arg u ${{ inputs.user_login }} '. | contains([$u])')" >> "$GITHUB_OUTPUT" - name: Partners id: partner if: inputs.partners != '' shell: bash - run: echo "check=$(echo $INPUT_PARTNERS | base64 --decode | jq --arg u $INPUT_USER_LOGIN '. | contains([$u])')" >> "$GITHUB_OUTPUT" + run: echo "check=$(echo ${{ inputs.partners }} | base64 --decode | jq --arg u ${{ inputs.user_login }} '. | contains([$u])')" >> "$GITHUB_OUTPUT" From a0b2a595bde159c5291606b1d37fb766967c8f21 Mon Sep 17 00:00:00 2001 From: Justin Retzolk <44710313+justinretzolk@users.noreply.github.com> Date: Wed, 31 Jul 2024 09:09:54 -0500 Subject: [PATCH 47/89] Add bug label to bug report template --- .github/ISSUE_TEMPLATE/Bug_Report.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/Bug_Report.md b/.github/ISSUE_TEMPLATE/Bug_Report.md index 297f2b449..c4650dddb 100644 --- a/.github/ISSUE_TEMPLATE/Bug_Report.md +++ b/.github/ISSUE_TEMPLATE/Bug_Report.md @@ -1,7 +1,7 @@ --- name: 🐛 Bug Report about: If something isn't working as expected 🤔. - +labels: ["bug"] --- ## Schema @@ -46,4 +57,4 @@ Import is supported using the following syntax: ```shell $ terraform import awscc_mediapackagev2_channel_group.example -``` +``` \ No newline at end of file diff --git a/examples/resources/awscc_mediapackagev2_channel_group/mediapackagev2_channel_group.tf b/examples/resources/awscc_mediapackagev2_channel_group/mediapackagev2_channel_group.tf new file mode 100644 index 000000000..fe6e7215c --- /dev/null +++ b/examples/resources/awscc_mediapackagev2_channel_group/mediapackagev2_channel_group.tf @@ -0,0 +1,9 @@ +resource "awscc_mediapackagev2_channel_group" "example" { + channel_group_name = "example" + description = "example" + + tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} diff --git a/templates/resources/mediapackagev2_channel_group.md.tmpl b/templates/resources/mediapackagev2_channel_group.md.tmpl new file mode 100644 index 000000000..c6da012bd --- /dev/null +++ b/templates/resources/mediapackagev2_channel_group.md.tmpl @@ -0,0 +1,25 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage to create a MediaPackage V2 channel group. + +{{ tffile (printf "examples/resources/%s/mediapackagev2_channel_group.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} \ No newline at end of file From c9c91024593a8f9e57c9bd92587f238a1d00d189 Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Wed, 31 Jul 2024 23:56:09 -0400 Subject: [PATCH 49/89] docs: added example for awscc_mediapackagev2_channel --- docs/resources/mediapackagev2_channel.md | 29 +++++++++++++++++-- .../mediapackagev2_channel.tf | 21 ++++++++++++++ .../resources/mediapackagev2_channel.md.tmpl | 25 ++++++++++++++++ 3 files changed, 72 insertions(+), 3 deletions(-) create mode 100644 examples/resources/awscc_mediapackagev2_channel/mediapackagev2_channel.tf create mode 100644 templates/resources/mediapackagev2_channel.md.tmpl diff --git a/docs/resources/mediapackagev2_channel.md b/docs/resources/mediapackagev2_channel.md index df5490793..081ccafb3 100644 --- a/docs/resources/mediapackagev2_channel.md +++ b/docs/resources/mediapackagev2_channel.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_mediapackagev2_channel Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,7 +9,31 @@ description: |-

Represents an entry point into AWS Elemental MediaPackage for an ABR video content stream sent from an upstream encoder such as AWS Elemental MediaLive. The channel continuously analyzes the content that it receives and prepares it to be distributed to consumers via one or more origin endpoints.

- +## Example Usage + +```terraform +resource "awscc_mediapackagev2_channel" "example" { + channel_group_name = awscc_mediapackagev2_channel_group.example.channel_group_name + channel_name = "example" + description = "example" + input_type = "HLS" + + tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} + +resource "awscc_mediapackagev2_channel_group" "example" { + channel_group_name = "example" + description = "example" + + tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} +``` ## Schema @@ -58,4 +81,4 @@ Import is supported using the following syntax: ```shell $ terraform import awscc_mediapackagev2_channel.example -``` +``` \ No newline at end of file diff --git a/examples/resources/awscc_mediapackagev2_channel/mediapackagev2_channel.tf b/examples/resources/awscc_mediapackagev2_channel/mediapackagev2_channel.tf new file mode 100644 index 000000000..6f68d4bc8 --- /dev/null +++ b/examples/resources/awscc_mediapackagev2_channel/mediapackagev2_channel.tf @@ -0,0 +1,21 @@ +resource "awscc_mediapackagev2_channel" "example" { + channel_group_name = awscc_mediapackagev2_channel_group.example.channel_group_name + channel_name = "example" + description = "example" + input_type = "HLS" + + tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} + +resource "awscc_mediapackagev2_channel_group" "example" { + channel_group_name = "example" + description = "example" + + tags = [{ + key = "Modified By" + value = "AWSCC" + }] +} diff --git a/templates/resources/mediapackagev2_channel.md.tmpl b/templates/resources/mediapackagev2_channel.md.tmpl new file mode 100644 index 000000000..4dd423506 --- /dev/null +++ b/templates/resources/mediapackagev2_channel.md.tmpl @@ -0,0 +1,25 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +{{ tffile (printf "examples/resources/%s/mediapackagev2_channel.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} \ No newline at end of file From c8ced78980d91dd199e5650916202f8541ed8d19 Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Thu, 1 Aug 2024 01:05:23 -0400 Subject: [PATCH 50/89] docs: added example for awscc_mediapackagev2_channel_policy --- .../mediapackagev2_channel_policy.md | 34 +++++++++++++++++-- .../mediapackagev2_channel_policy.tf | 28 +++++++++++++++ .../mediapackagev2_channel_policy.md.tmpl | 25 ++++++++++++++ 3 files changed, 85 insertions(+), 2 deletions(-) create mode 100644 examples/resources/awscc_mediapackagev2_channel_policy/mediapackagev2_channel_policy.tf create mode 100644 templates/resources/mediapackagev2_channel_policy.md.tmpl diff --git a/docs/resources/mediapackagev2_channel_policy.md b/docs/resources/mediapackagev2_channel_policy.md index c5eabf9a5..81ffee11f 100644 --- a/docs/resources/mediapackagev2_channel_policy.md +++ b/docs/resources/mediapackagev2_channel_policy.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_mediapackagev2_channel_policy Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,7 +9,38 @@ description: |-

Represents a resource-based policy that allows or denies access to a channel.

+## Channel policy that permits a Role to ingest MediaPackage. +```terraform +resource "awscc_mediapackagev2_channel_policy" "example" { + channel_group_name = awscc_mediapackagev2_channel_group.example.channel_group_name + channel_name = awscc_mediapackagev2_channel.example.channel_name + policy = jsonencode( + { + "Version" : "2012-10-17", + "Id" : "AllowMediaLiveChannelToIngestToEmpChannel", + "Statement" : [ + { + "Sid" : "AllowMediaLiveRoleToAccessEmpChannel", + "Effect" : "Allow", + "Principal" : { + "AWS" : awscc_iam_role.example.arn + }, + "Action" : "mediapackagev2:PutObject", + "Resource" : awscc_mediapackagev2_channel.example.arn, + "Condition" : { + "IpAddress" : { + "aws:SourceIp" : "0.0.0.0/24" + } + } + } + ] + } + ) +} + +data "aws_caller_identity" "current" {} +``` ## Schema @@ -31,4 +61,4 @@ Import is supported using the following syntax: ```shell $ terraform import awscc_mediapackagev2_channel_policy.example -``` +``` \ No newline at end of file diff --git a/examples/resources/awscc_mediapackagev2_channel_policy/mediapackagev2_channel_policy.tf b/examples/resources/awscc_mediapackagev2_channel_policy/mediapackagev2_channel_policy.tf new file mode 100644 index 000000000..944279ad4 --- /dev/null +++ b/examples/resources/awscc_mediapackagev2_channel_policy/mediapackagev2_channel_policy.tf @@ -0,0 +1,28 @@ +resource "awscc_mediapackagev2_channel_policy" "example" { + channel_group_name = awscc_mediapackagev2_channel_group.example.channel_group_name + channel_name = awscc_mediapackagev2_channel.example.channel_name + policy = jsonencode( + { + "Version" : "2012-10-17", + "Id" : "AllowMediaLiveChannelToIngestToEmpChannel", + "Statement" : [ + { + "Sid" : "AllowMediaLiveRoleToAccessEmpChannel", + "Effect" : "Allow", + "Principal" : { + "AWS" : awscc_iam_role.example.arn + }, + "Action" : "mediapackagev2:PutObject", + "Resource" : awscc_mediapackagev2_channel.example.arn, + "Condition" : { + "IpAddress" : { + "aws:SourceIp" : "0.0.0.0/24" + } + } + } + ] + } + ) +} + +data "aws_caller_identity" "current" {} \ No newline at end of file diff --git a/templates/resources/mediapackagev2_channel_policy.md.tmpl b/templates/resources/mediapackagev2_channel_policy.md.tmpl new file mode 100644 index 000000000..08b1d87e0 --- /dev/null +++ b/templates/resources/mediapackagev2_channel_policy.md.tmpl @@ -0,0 +1,25 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Channel policy that permits a Role to ingest MediaPackage. + +{{ tffile (printf "examples/resources/%s/mediapackagev2_channel_policy.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} \ No newline at end of file From 89429bf19a4c32dcc048277fc9a5299e6cd169eb Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Thu, 1 Aug 2024 01:08:06 -0400 Subject: [PATCH 51/89] fix: removed the called_identity datasource reference --- docs/resources/mediapackagev2_channel_policy.md | 2 -- .../mediapackagev2_channel_policy.tf | 4 +--- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/docs/resources/mediapackagev2_channel_policy.md b/docs/resources/mediapackagev2_channel_policy.md index 81ffee11f..28c9cbf57 100644 --- a/docs/resources/mediapackagev2_channel_policy.md +++ b/docs/resources/mediapackagev2_channel_policy.md @@ -38,8 +38,6 @@ resource "awscc_mediapackagev2_channel_policy" "example" { } ) } - -data "aws_caller_identity" "current" {} ``` diff --git a/examples/resources/awscc_mediapackagev2_channel_policy/mediapackagev2_channel_policy.tf b/examples/resources/awscc_mediapackagev2_channel_policy/mediapackagev2_channel_policy.tf index 944279ad4..092ea1a2d 100644 --- a/examples/resources/awscc_mediapackagev2_channel_policy/mediapackagev2_channel_policy.tf +++ b/examples/resources/awscc_mediapackagev2_channel_policy/mediapackagev2_channel_policy.tf @@ -23,6 +23,4 @@ resource "awscc_mediapackagev2_channel_policy" "example" { ] } ) -} - -data "aws_caller_identity" "current" {} \ No newline at end of file +} \ No newline at end of file From bc630e1948a7ddb861ae090233958b3f07ac022b Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 1 Aug 2024 10:31:11 -0400 Subject: [PATCH 52/89] Update provider.go Fix spelling mistake --- internal/provider/provider.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/provider/provider.go b/internal/provider/provider.go index 0c6ce5a56..eed048176 100644 --- a/internal/provider/provider.go +++ b/internal/provider/provider.go @@ -187,7 +187,7 @@ func (p *ccProvider) Schema(ctx context.Context, request provider.SchemaRequest, }, }, Optional: true, - Description: "An `endpoints` block (documented blow). Only one `endpoints` block may be in the configuration.", + Description: "An `endpoints` block (documented below). Only one `endpoints` block may be in the configuration.", }, "http_proxy": schema.StringAttribute{ Description: "URL of a proxy to use for HTTP requests when accessing the AWS API. Can also be set using the `HTTP_PROXY` or `http_proxy` environment variables.", From 54184a8bb5b77d42776ff573c4024abfd2b7c8c8 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 1 Aug 2024 10:35:18 -0400 Subject: [PATCH 53/89] Cosmetics. --- internal/provider/provider.go | 6 +++--- internal/provider/provider_test.go | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/provider/provider.go b/internal/provider/provider.go index eed048176..6950b0783 100644 --- a/internal/provider/provider.go +++ b/internal/provider/provider.go @@ -315,7 +315,7 @@ type assumeRoleData struct { } type endpointData struct { - CloudControlApi types.String `tfsdk:"cloudcontrolapi"` + CloudControlAPI types.String `tfsdk:"cloudcontrolapi"` IAM types.String `tfsdk:"iam"` SSO types.String `tfsdk:"sso"` STS types.String `tfsdk:"sts"` @@ -551,8 +551,8 @@ func newProviderData(ctx context.Context, c *config) (*providerData, diag.Diagno } ccAPIClient := cloudcontrol.NewFromConfig(cfg, func(o *cloudcontrol.Options) { - if !c.Endpoints.CloudControlApi.IsNull() { - o.BaseEndpoint = flex.StringFromFramework(ctx, c.Endpoints.CloudControlApi) + if !c.Endpoints.CloudControlAPI.IsNull() { + o.BaseEndpoint = flex.StringFromFramework(ctx, c.Endpoints.CloudControlAPI) } }) diff --git a/internal/provider/provider_test.go b/internal/provider/provider_test.go index a2dd45888..96489cdbb 100644 --- a/internal/provider/provider_test.go +++ b/internal/provider/provider_test.go @@ -64,7 +64,7 @@ func TestAccCloudControlEndpointOverride(t *testing.T) { ccEndpoint := "http://localhost:8081" overrideEndpointConfig := &config{Endpoints: &endpointData{ - CloudControlApi: types.StringValue(ccEndpoint), + CloudControlAPI: types.StringValue(ccEndpoint), }} endpointProviderData, diags := newProviderData(ctx, overrideEndpointConfig) From 4b88901005447e42bd94295c7a6b221271359a63 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 1 Aug 2024 10:36:27 -0400 Subject: [PATCH 54/89] Run 'make docs'. --- docs/index.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/index.md b/docs/index.md index f82b063f1..b023319b9 100644 --- a/docs/index.md +++ b/docs/index.md @@ -236,6 +236,7 @@ credential_process = custom-process --username jdoe - `access_key` (String) This is the AWS access key. It must be provided, but it can also be sourced from the `AWS_ACCESS_KEY_ID` environment variable, or via a shared credentials file if `profile` is specified. - `assume_role` (Attributes) An `assume_role` block (documented below). Only one `assume_role` block may be in the configuration. (see [below for nested schema](#nestedatt--assume_role)) - `assume_role_with_web_identity` (Attributes) An `assume_role_with_web_identity` block (documented below). Only one `assume_role_with_web_identity` block may be in the configuration. (see [below for nested schema](#nestedatt--assume_role_with_web_identity)) +- `endpoints` (Attributes) An `endpoints` block (documented below). Only one `endpoints` block may be in the configuration. (see [below for nested schema](#nestedatt--endpoints)) - `http_proxy` (String) URL of a proxy to use for HTTP requests when accessing the AWS API. Can also be set using the `HTTP_PROXY` or `http_proxy` environment variables. - `https_proxy` (String) URL of a proxy to use for HTTPS requests when accessing the AWS API. Can also be set using the `HTTPS_PROXY` or `https_proxy` environment variables. - `insecure` (Boolean) Explicitly allow the provider to perform "insecure" SSL requests. If not set, defaults to `false`. @@ -287,6 +288,17 @@ Optional: - `web_identity_token_file` (String) File containing a web identity token from an OpenID Connect (OIDC) or OAuth provider. Can also be set with the environment variable`AWS_WEB_IDENTITY_TOKEN_FILE`. One of `web_identity_token_file` or `web_identity_token` is required. + +### Nested Schema for `endpoints` + +Optional: + +- `cloudcontrolapi` (String) Use this to override the default Cloud Control API service endpoint URL +- `iam` (String) Use this to override the default IAM service endpoint URL +- `sso` (String) Use this to override the default SSO service endpoint URL +- `sts` (String) Use this to override the default STS service endpoint URL + + ### Nested Schema for `user_agent` From 51eed547654b71c8aee40fdd01b6be70207d46c3 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 1 Aug 2024 10:37:21 -0400 Subject: [PATCH 55/89] Fix golangci-lint 'whitespace'. --- internal/provider/provider_test.go | 4 ---- 1 file changed, 4 deletions(-) diff --git a/internal/provider/provider_test.go b/internal/provider/provider_test.go index 96489cdbb..2d1fe10e2 100644 --- a/internal/provider/provider_test.go +++ b/internal/provider/provider_test.go @@ -58,7 +58,6 @@ func TestUserAgentProducts(t *testing.T) { } func TestAccCloudControlEndpointOverride(t *testing.T) { - ctx := context.TODO() ccEndpoint := "http://localhost:8081" @@ -78,11 +77,9 @@ func TestAccCloudControlEndpointOverride(t *testing.T) { t.Errorf("expected %q, got %q", ccEndpoint, *endpointProviderData.ccAPIClient.Options().BaseEndpoint) return } - } func TestAccStsEndpointOverride(t *testing.T) { - ctx := context.TODO() stsEndpoint := "http://localhost:8081" @@ -103,5 +100,4 @@ func TestAccStsEndpointOverride(t *testing.T) { return } t.Errorf("expected error for sts endpoint") - } From 89be42f679158ff240e4857cc25ceb6eb60374dd Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 1 Aug 2024 10:40:52 -0400 Subject: [PATCH 56/89] Endpoint overrides can't be unit tests. --- internal/provider/provider_test.go | 47 ------------------------------ 1 file changed, 47 deletions(-) diff --git a/internal/provider/provider_test.go b/internal/provider/provider_test.go index 2d1fe10e2..06345e20b 100644 --- a/internal/provider/provider_test.go +++ b/internal/provider/provider_test.go @@ -4,8 +4,6 @@ package provider import ( - "context" - "strings" "testing" "github.com/google/go-cmp/cmp" @@ -56,48 +54,3 @@ func TestUserAgentProducts(t *testing.T) { }) } } - -func TestAccCloudControlEndpointOverride(t *testing.T) { - ctx := context.TODO() - - ccEndpoint := "http://localhost:8081" - - overrideEndpointConfig := &config{Endpoints: &endpointData{ - CloudControlAPI: types.StringValue(ccEndpoint), - }} - - endpointProviderData, diags := newProviderData(ctx, overrideEndpointConfig) - - if diags.HasError() { - t.Errorf("failed to create provider data: %q", diags) - return - } - - if !cmp.Equal(*endpointProviderData.ccAPIClient.Options().BaseEndpoint, ccEndpoint) { - t.Errorf("expected %q, got %q", ccEndpoint, *endpointProviderData.ccAPIClient.Options().BaseEndpoint) - return - } -} - -func TestAccStsEndpointOverride(t *testing.T) { - ctx := context.TODO() - - stsEndpoint := "http://localhost:8081" - - overrideEndpointConfig := &config{Endpoints: &endpointData{ - STS: types.StringValue(stsEndpoint), - }} - - _, diags := newProviderData(ctx, overrideEndpointConfig) - - if diags.HasError() { - for _, err := range diags.Errors() { - if strings.Contains(err.Summary(), stsEndpoint) { - return // we got the right error - } - } - t.Errorf("failed to create provider data: %q", diags) - return - } - t.Errorf("expected error for sts endpoint") -} From d1a2057e3e32c76d08d5befa1a3721b34cc5e1c4 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 1 Aug 2024 10:42:13 -0400 Subject: [PATCH 57/89] Add CHANGELOG entry. --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4920e5a64..1fb366d3d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,9 @@ ## 1.8.0 (Unreleased) + +FEATURES: + +* provider: Add `endpoints` argument + ## 1.7.0 (July 25, 2024) FEATURES: From 7bc87ed0a46a383526fbe860fc10b6b78a6e1f6a Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 1 Aug 2024 11:05:14 -0400 Subject: [PATCH 58/89] 07/31/2024 CloudFormation schemas in us-east-1; Refresh existing schemas. --- ...onalShift_ZonalAutoshiftConfiguration.json | 8 +- .../schemas/AWS_Bedrock_Guardrail.json | 48 ++ .../AWS_CleanRooms_AnalysisTemplate.json | 7 +- .../AWS_CleanRooms_ConfiguredTable.json | 35 +- ...CleanRooms_ConfiguredTableAssociation.json | 179 ++++++- .../schemas/AWS_CleanRooms_Membership.json | 7 +- .../AWS_CleanRooms_PrivacyBudgetTemplate.json | 7 +- .../AWS_CodeArtifact_PackageGroup.json | 7 +- .../schemas/AWS_DynamoDB_Table.json | 2 +- .../schemas/AWS_EC2_CapacityReservation.json | 1 - ...2_TransitGatewayRouteTablePropagation.json | 72 +-- .../schemas/AWS_EC2_VPNConnection.json | 206 ++++---- .../schemas/AWS_EC2_VPNConnectionRoute.json | 62 +-- ...S_ElasticLoadBalancingV2_LoadBalancer.json | 320 ++++++------ ...WS_EntityResolution_IdMappingWorkflow.json | 454 +++++++++--------- .../schemas/AWS_IVSChat_Room.json | 7 +- .../AWS_InspectorV2_CisScanConfiguration.json | 6 + .../AWS_KinesisFirehose_DeliveryStream.json | 123 +++++ .../schemas/AWS_MWAA_Environment.json | 12 +- .../AWS_Panorama_ApplicationInstance.json | 27 +- .../schemas/AWS_Panorama_Package.json | 47 +- .../schemas/AWS_Panorama_PackageVersion.json | 38 +- .../schemas/AWS_RDS_Integration.json | 34 +- .../schemas/AWS_Route53_CidrCollection.json | 3 +- .../schemas/AWS_S3_BucketPolicy.json | 70 +-- .../cloudformation/schemas/AWS_SNS_Topic.json | 12 +- .../schemas/AWS_SageMaker_App.json | 6 + .../schemas/AWS_SageMaker_Domain.json | 22 +- .../schemas/AWS_SageMaker_Space.json | 32 ++ .../schemas/AWS_SageMaker_UserProfile.json | 28 +- .../AWS_SecurityHub_SecurityControl.json | 3 + 31 files changed, 1225 insertions(+), 660 deletions(-) diff --git a/internal/service/cloudformation/schemas/AWS_ARCZonalShift_ZonalAutoshiftConfiguration.json b/internal/service/cloudformation/schemas/AWS_ARCZonalShift_ZonalAutoshiftConfiguration.json index 9aaca0789..3a51d1b93 100644 --- a/internal/service/cloudformation/schemas/AWS_ARCZonalShift_ZonalAutoshiftConfiguration.json +++ b/internal/service/cloudformation/schemas/AWS_ARCZonalShift_ZonalAutoshiftConfiguration.json @@ -18,7 +18,7 @@ "type": "string", "maxLength": 1024, "minLength": 8, - "pattern": "^arn:.*$" + "pattern": "^.*$" } }, "required": [ @@ -29,9 +29,9 @@ }, "ControlConditionType": { "type": "string", - "enum": [ - "CLOUDWATCH" - ] + "minLength": 8, + "maxLength": 10, + "pattern": "^[a-zA-Z]*$" }, "PracticeRunConfiguration": { "type": "object", diff --git a/internal/service/cloudformation/schemas/AWS_Bedrock_Guardrail.json b/internal/service/cloudformation/schemas/AWS_Bedrock_Guardrail.json index 496cd8a80..5ad09cc92 100644 --- a/internal/service/cloudformation/schemas/AWS_Bedrock_Guardrail.json +++ b/internal/service/cloudformation/schemas/AWS_Bedrock_Guardrail.json @@ -75,6 +75,51 @@ ], "additionalProperties": false }, + "ContextualGroundingFilterConfig": { + "type": "object", + "description": "A config for grounding filter.", + "properties": { + "Type": { + "$ref": "#/definitions/ContextualGroundingFilterType" + }, + "Threshold": { + "type": "number", + "minimum": 0, + "description": "The threshold for this filter." + } + }, + "required": [ + "Threshold", + "Type" + ], + "additionalProperties": false + }, + "ContextualGroundingFilterType": { + "type": "string", + "description": "Type of contextual grounding filter", + "enum": [ + "GROUNDING", + "RELEVANCE" + ] + }, + "ContextualGroundingPolicyConfig": { + "type": "object", + "description": "Contextual grounding policy config for a guardrail.", + "properties": { + "FiltersConfig": { + "type": "array", + "items": { + "$ref": "#/definitions/ContextualGroundingFilterConfig" + }, + "minItems": 1, + "description": "List of contextual grounding filter configs." + } + }, + "required": [ + "FiltersConfig" + ], + "additionalProperties": false + }, "FilterStrength": { "type": "string", "description": "Strength for filters", @@ -447,6 +492,9 @@ "ContentPolicyConfig": { "$ref": "#/definitions/ContentPolicyConfig" }, + "ContextualGroundingPolicyConfig": { + "$ref": "#/definitions/ContextualGroundingPolicyConfig" + }, "CreatedAt": { "type": "string", "description": "Time Stamp", diff --git a/internal/service/cloudformation/schemas/AWS_CleanRooms_AnalysisTemplate.json b/internal/service/cloudformation/schemas/AWS_CleanRooms_AnalysisTemplate.json index 0188c7b0c..2b54e84f4 100644 --- a/internal/service/cloudformation/schemas/AWS_CleanRooms_AnalysisTemplate.json +++ b/internal/service/cloudformation/schemas/AWS_CleanRooms_AnalysisTemplate.json @@ -210,7 +210,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "cleanrooms:ListTagsForResource", + "cleanrooms:UntagResource", + "cleanrooms:TagResource" + ] }, "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms", "handlers": { diff --git a/internal/service/cloudformation/schemas/AWS_CleanRooms_ConfiguredTable.json b/internal/service/cloudformation/schemas/AWS_CleanRooms_ConfiguredTable.json index 1f60691e8..ed960a221 100644 --- a/internal/service/cloudformation/schemas/AWS_CleanRooms_ConfiguredTable.json +++ b/internal/service/cloudformation/schemas/AWS_CleanRooms_ConfiguredTable.json @@ -165,6 +165,9 @@ "$ref": "#/definitions/AggregationConstraint" }, "minItems": 1 + }, + "AdditionalAnalyses": { + "$ref": "#/definitions/AdditionalAnalyses" } }, "required": [ @@ -201,6 +204,9 @@ "items": { "$ref": "#/definitions/AnalysisRuleColumnName" } + }, + "AdditionalAnalyses": { + "$ref": "#/definitions/AdditionalAnalyses" } }, "required": [ @@ -237,6 +243,22 @@ "$ref": "#/definitions/AllowedAnalysisProvider" } }, + "DisallowedOutputColumns": { + "type": "array", + "insertionOrder": false, + "minItems": 0, + "items": { + "$ref": "#/definitions/AnalysisRuleColumnName" + } + }, + "AdditionalAnalyses": { + "type": "string", + "enum": [ + "ALLOWED", + "REQUIRED", + "NOT_ALLOWED" + ] + }, "DifferentialPrivacyColumn": { "type": "object", "properties": { @@ -277,6 +299,12 @@ }, "DifferentialPrivacy": { "$ref": "#/definitions/DifferentialPrivacy" + }, + "DisallowedOutputColumns": { + "$ref": "#/definitions/DisallowedOutputColumns" + }, + "AdditionalAnalyses": { + "$ref": "#/definitions/AdditionalAnalyses" } }, "required": [ @@ -499,7 +527,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "cleanrooms:ListTagsForResource", + "cleanrooms:UntagResource", + "cleanrooms:TagResource" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_CleanRooms_ConfiguredTableAssociation.json b/internal/service/cloudformation/schemas/AWS_CleanRooms_ConfiguredTableAssociation.json index 4197eee60..304cb8082 100644 --- a/internal/service/cloudformation/schemas/AWS_CleanRooms_ConfiguredTableAssociation.json +++ b/internal/service/cloudformation/schemas/AWS_CleanRooms_ConfiguredTableAssociation.json @@ -21,6 +21,150 @@ "Value", "Key" ] + }, + "ConfiguredTableAssociationAnalysisRuleType": { + "type": "string", + "enum": [ + "AGGREGATION", + "LIST", + "CUSTOM" + ] + }, + "AllowedResultReceiver": { + "type": "string", + "minLength": 12, + "maxLength": 12, + "pattern": "\\d+" + }, + "AllowedResultReceivers": { + "type": "array", + "insertionOrder": false, + "minItems": 0, + "items": { + "$ref": "#/definitions/AllowedResultReceiver" + } + }, + "AllowedAdditionalAnalysis": { + "type": "string", + "maxLength": 256, + "pattern": "^arn:aws:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:([\\d]{12}|\\*):membership\\/[\\*\\d\\w-]+\\/configuredaudiencemodelassociation\\/[\\*\\d\\w-]+$|^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:([0-9]{12}|\\*):configured-model-algorithm-association\\/([-a-zA-Z0-9_\\/.]+|\\*)$" + }, + "AllowedAdditionalAnalyses": { + "type": "array", + "insertionOrder": false, + "minItems": 0, + "maxItems": 25, + "items": { + "$ref": "#/definitions/AllowedAdditionalAnalysis" + } + }, + "ConfiguredTableAssociationAnalysisRuleCustom": { + "type": "object", + "properties": { + "AllowedResultReceivers": { + "$ref": "#/definitions/AllowedResultReceivers" + }, + "AllowedAdditionalAnalyses": { + "$ref": "#/definitions/AllowedAdditionalAnalyses" + } + }, + "additionalProperties": false + }, + "ConfiguredTableAssociationAnalysisRuleAggregation": { + "type": "object", + "properties": { + "AllowedResultReceivers": { + "$ref": "#/definitions/AllowedResultReceivers" + }, + "AllowedAdditionalAnalyses": { + "$ref": "#/definitions/AllowedAdditionalAnalyses" + } + }, + "additionalProperties": false + }, + "ConfiguredTableAssociationAnalysisRuleList": { + "type": "object", + "properties": { + "AllowedResultReceivers": { + "$ref": "#/definitions/AllowedResultReceivers" + }, + "AllowedAdditionalAnalyses": { + "$ref": "#/definitions/AllowedAdditionalAnalyses" + } + }, + "additionalProperties": false + }, + "ConfiguredTableAssociationAnalysisRulePolicyV1": { + "oneOf": [ + { + "type": "object", + "title": "List", + "properties": { + "List": { + "$ref": "#/definitions/ConfiguredTableAssociationAnalysisRuleList" + } + }, + "required": [ + "List" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Aggregation", + "properties": { + "Aggregation": { + "$ref": "#/definitions/ConfiguredTableAssociationAnalysisRuleAggregation" + } + }, + "required": [ + "Aggregation" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Custom", + "properties": { + "Custom": { + "$ref": "#/definitions/ConfiguredTableAssociationAnalysisRuleCustom" + } + }, + "required": [ + "Custom" + ], + "additionalProperties": false + } + ] + }, + "ConfiguredTableAssociationAnalysisRulePolicy": { + "type": "object", + "title": "V1", + "properties": { + "V1": { + "$ref": "#/definitions/ConfiguredTableAssociationAnalysisRulePolicyV1" + } + }, + "required": [ + "V1" + ], + "additionalProperties": false + }, + "ConfiguredTableAssociationAnalysisRule": { + "type": "object", + "properties": { + "Type": { + "$ref": "#/definitions/ConfiguredTableAssociationAnalysisRuleType" + }, + "Policy": { + "$ref": "#/definitions/ConfiguredTableAssociationAnalysisRulePolicy" + } + }, + "required": [ + "Type", + "Policy" + ], + "additionalProperties": false } }, "properties": { @@ -68,6 +212,15 @@ "type": "string", "maxLength": 512, "minLength": 32 + }, + "ConfiguredTableAssociationAnalysisRules": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ConfiguredTableAssociationAnalysisRule" + }, + "maxItems": 1, + "minItems": 1 } }, "required": [ @@ -94,7 +247,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "cleanrooms:ListTagsForResource", + "cleanrooms:UntagResource", + "cleanrooms:TagResource" + ] }, "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms", "handlers": { @@ -105,13 +263,18 @@ "cleanrooms:ListTagsForResource", "cleanrooms:TagResource", "cleanrooms:GetConfiguredTableAssociation", - "cleanrooms:ListConfiguredTableAssociations" + "cleanrooms:ListConfiguredTableAssociations", + "cleanrooms:DeleteConfiguredTableAssociation", + "cleanrooms:DeleteConfiguredTableAssociationAnalysisRule", + "cleanrooms:CreateConfiguredTableAssociationAnalysisRule", + "cleanrooms:GetConfiguredTableAssociationAnalysisRule" ] }, "read": { "permissions": [ "cleanrooms:GetConfiguredTableAssociation", - "cleanrooms:ListTagsForResource" + "cleanrooms:ListTagsForResource", + "cleanrooms:GetConfiguredTableAssociationAnalysisRule" ] }, "update": { @@ -121,7 +284,11 @@ "iam:PassRole", "cleanrooms:ListTagsForResource", "cleanrooms:TagResource", - "cleanrooms:UntagResource" + "cleanrooms:UntagResource", + "cleanrooms:DeleteConfiguredTableAssociationAnalysisRule", + "cleanrooms:CreateConfiguredTableAssociationAnalysisRule", + "cleanrooms:GetConfiguredTableAssociationAnalysisRule", + "cleanrooms:UpdateConfiguredTableAssociationAnalysisRule" ] }, "delete": { @@ -130,7 +297,9 @@ "cleanrooms:GetConfiguredTableAssociation", "cleanrooms:ListConfiguredTableAssociations", "cleanrooms:ListTagsForResource", - "cleanrooms:UntagResource" + "cleanrooms:UntagResource", + "cleanrooms:DeleteConfiguredTableAssociationAnalysisRule", + "cleanrooms:GetConfiguredTableAssociationAnalysisRule" ] }, "list": { diff --git a/internal/service/cloudformation/schemas/AWS_CleanRooms_Membership.json b/internal/service/cloudformation/schemas/AWS_CleanRooms_Membership.json index be8b11f44..b489e4788 100644 --- a/internal/service/cloudformation/schemas/AWS_CleanRooms_Membership.json +++ b/internal/service/cloudformation/schemas/AWS_CleanRooms_Membership.json @@ -186,7 +186,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "cleanrooms:ListTagsForResource", + "cleanrooms:UntagResource", + "cleanrooms:TagResource" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_CleanRooms_PrivacyBudgetTemplate.json b/internal/service/cloudformation/schemas/AWS_CleanRooms_PrivacyBudgetTemplate.json index 79206bf6a..f5ef68d7d 100644 --- a/internal/service/cloudformation/schemas/AWS_CleanRooms_PrivacyBudgetTemplate.json +++ b/internal/service/cloudformation/schemas/AWS_CleanRooms_PrivacyBudgetTemplate.json @@ -124,7 +124,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "cleanrooms:ListTagsForResource", + "cleanrooms:UntagResource", + "cleanrooms:TagResource" + ] }, "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms", "handlers": { diff --git a/internal/service/cloudformation/schemas/AWS_CodeArtifact_PackageGroup.json b/internal/service/cloudformation/schemas/AWS_CodeArtifact_PackageGroup.json index 39240eef9..ea7eb3912 100644 --- a/internal/service/cloudformation/schemas/AWS_CodeArtifact_PackageGroup.json +++ b/internal/service/cloudformation/schemas/AWS_CodeArtifact_PackageGroup.json @@ -206,6 +206,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "codeartifact:ListTagsForResource", + "codeartifact:UntagResource", + "codeartifact:TagResource" + ] } } diff --git a/internal/service/cloudformation/schemas/AWS_DynamoDB_Table.json b/internal/service/cloudformation/schemas/AWS_DynamoDB_Table.json index e3a0a536b..c76ccbdbc 100644 --- a/internal/service/cloudformation/schemas/AWS_DynamoDB_Table.json +++ b/internal/service/cloudformation/schemas/AWS_DynamoDB_Table.json @@ -23,7 +23,7 @@ "KeySchema" ], "propertyTransform": { - "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,4}[-]{1}[1-4]{1}:[0-9]{12}[:]{1}key\\/\", KMSMasterKeyId])" + "/properties/SSESpecification/KMSMasterKeyId": "$join([\"arn:aws(-[a-z]{1,4}){0,2}:kms:[a-z]{2,4}(-[a-z]{1,4})?-[a-z]{1,10}-[0-9]:[0-9]{12}:key\\/\", SSESpecification.KMSMasterKeyId]) $OR $join([\"arn:aws(-[a-z]{1,4}){0,2}:kms:[a-z]{2,4}(-[a-z]{1,4})?-[a-z]{1,10}-[0-9]:[0-9]{12}:key\\/\", KMSMasterKeyId])" }, "handlers": { "read": { diff --git a/internal/service/cloudformation/schemas/AWS_EC2_CapacityReservation.json b/internal/service/cloudformation/schemas/AWS_EC2_CapacityReservation.json index 1dfe2997a..7411ff165 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_CapacityReservation.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_CapacityReservation.json @@ -100,7 +100,6 @@ ], "createOnlyProperties": [ "/properties/Tenancy", - "/properties/InstanceMatchCriteria", "/properties/InstancePlatform", "/properties/InstanceType", "/properties/AvailabilityZone", diff --git a/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayRouteTablePropagation.json b/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayRouteTablePropagation.json index 863c7df7f..f4052d232 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayRouteTablePropagation.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayRouteTablePropagation.json @@ -1,56 +1,27 @@ { - "typeName": "AWS::EC2::TransitGatewayRouteTablePropagation", - "description": "AWS::EC2::TransitGatewayRouteTablePropagation Type", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transitgateway/aws-ec2-transitgatewayroutetablepropagation", - "properties": { - "TransitGatewayRouteTableId": { - "description": "The ID of transit gateway route table.", - "type": "string" - }, - "TransitGatewayAttachmentId": { - "description": "The ID of transit gateway attachment.", - "type": "string" - } - }, "tagging": { "taggable": false, "tagOnCreate": false, "tagUpdatable": false, "cloudFormationSystemTags": false }, - "definitions": {}, - "additionalProperties": false, - "required": [ - "TransitGatewayRouteTableId", - "TransitGatewayAttachmentId" - ], - "createOnlyProperties": [ - "/properties/TransitGatewayAttachmentId", - "/properties/TransitGatewayRouteTableId" - ], - "primaryIdentifier": [ - "/properties/TransitGatewayRouteTableId", - "/properties/TransitGatewayAttachmentId" - ], "handlers": { - "create": { - "permissions": [ - "ec2:GetTransitGatewayRouteTablePropagations", - "ec2:EnableTransitGatewayRouteTablePropagation" - ] - }, "read": { "permissions": [ "ec2:GetTransitGatewayRouteTablePropagations" ] }, - "delete": { + "create": { "permissions": [ "ec2:GetTransitGatewayRouteTablePropagations", - "ec2:DisableTransitGatewayRouteTablePropagation" + "ec2:EnableTransitGatewayRouteTablePropagation" ] }, "list": { + "permissions": [ + "ec2:GetTransitGatewayRouteTablePropagations" + ], "handlerSchema": { "properties": { "TransitGatewayRouteTableId": { @@ -60,10 +31,39 @@ "required": [ "TransitGatewayRouteTableId" ] - }, + } + }, + "delete": { "permissions": [ - "ec2:GetTransitGatewayRouteTablePropagations" + "ec2:GetTransitGatewayRouteTablePropagations", + "ec2:DisableTransitGatewayRouteTablePropagation" ] } + }, + "typeName": "AWS::EC2::TransitGatewayRouteTablePropagation", + "description": "AWS::EC2::TransitGatewayRouteTablePropagation Type", + "createOnlyProperties": [ + "/properties/TransitGatewayAttachmentId", + "/properties/TransitGatewayRouteTableId" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/TransitGatewayRouteTableId", + "/properties/TransitGatewayAttachmentId" + ], + "definitions": {}, + "required": [ + "TransitGatewayRouteTableId", + "TransitGatewayAttachmentId" + ], + "properties": { + "TransitGatewayRouteTableId": { + "description": "The ID of transit gateway route table.", + "type": "string" + }, + "TransitGatewayAttachmentId": { + "description": "The ID of transit gateway attachment.", + "type": "string" + } } } diff --git a/internal/service/cloudformation/schemas/AWS_EC2_VPNConnection.json b/internal/service/cloudformation/schemas/AWS_EC2_VPNConnection.json index 000c5c76a..e53c0b80f 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_VPNConnection.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_VPNConnection.json @@ -1,73 +1,89 @@ { - "typeName": "AWS::EC2::VPNConnection", + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": false + }, "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/blob/master/src/main/resources/schema/provider.definition.schema.v1.json", - "description": "Resource Type definition for AWS::EC2::VPNConnection", - "additionalProperties": false, - "properties": { - "VpnConnectionId": { - "description": "The provider-assigned unique ID for this managed resource", - "type": "string" - }, - "CustomerGatewayId": { - "description": "The ID of the customer gateway at your end of the VPN connection.", - "type": "string" - }, - "StaticRoutesOnly": { - "description": "Indicates whether the VPN connection uses static routes only.", - "type": "boolean" - }, - "Tags": { - "description": "Any tags assigned to the VPN connection.", - "type": "array", - "uniqueItems": false, - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - } + "handlers": { + "read": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] }, - "TransitGatewayId": { - "description": "The ID of the transit gateway associated with the VPN connection.", - "type": "string" + "create": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateVpnConnection", + "ec2:CreateTags" + ] }, - "Type": { - "description": "The type of VPN connection.", - "type": "string" + "update": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:CreateTags", + "ec2:DeleteTags" + ] }, - "VpnGatewayId": { - "description": "The ID of the virtual private gateway at the AWS side of the VPN connection.", - "type": "string" + "list": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] }, - "VpnTunnelOptionsSpecifications": { - "description": "The tunnel options for the VPN connection.", - "type": "array", - "uniqueItems": false, - "insertionOrder": false, - "items": { - "$ref": "#/definitions/VpnTunnelOptionsSpecification" - } + "delete": { + "permissions": [ + "ec2:DescribeVpnConnections", + "ec2:DeleteVpnConnection" + ] } }, + "typeName": "AWS::EC2::VPNConnection", + "readOnlyProperties": [ + "/properties/VpnConnectionId" + ], + "description": "Specifies a VPN connection between a virtual private gateway and a VPN customer gateway or a transit gateway and a VPN customer gateway.\n To specify a VPN connection between a transit gateway and customer gateway, use the ``TransitGatewayId`` and ``CustomerGatewayId`` properties.\n To specify a VPN connection between a virtual private gateway and customer gateway, use the ``VpnGatewayId`` and ``CustomerGatewayId`` properties.\n For more information, see [](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the *User Guide*.", + "createOnlyProperties": [ + "/properties/Type", + "/properties/CustomerGatewayId", + "/properties/VpnGatewayId", + "/properties/TransitGatewayId", + "/properties/EnableAcceleration", + "/properties/VpnTunnelOptionsSpecifications", + "/properties/StaticRoutesOnly" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/VpnConnectionId" + ], "definitions": { "VpnTunnelOptionsSpecification": { - "type": "object", + "description": "The tunnel options for a single VPN tunnel.", "additionalProperties": false, + "type": "object", "properties": { "PreSharedKey": { + "description": "The pre-shared key (PSK) to establish initial authentication between the virtual private gateway and customer gateway.\n Constraints: Allowed characters are alphanumeric characters, periods (.), and underscores (_). Must be between 8 and 64 characters in length and cannot start with zero (0).", "type": "string" }, "TunnelInsideCidr": { + "description": "The range of inside IP addresses for the tunnel. Any specified CIDR blocks must be unique across all VPN connections that use the same virtual private gateway. \n Constraints: A size /30 CIDR block from the ``169.254.0.0/16`` range. The following CIDR blocks are reserved and cannot be used:\n + ``169.254.0.0/30`` \n + ``169.254.1.0/30`` \n + ``169.254.2.0/30`` \n + ``169.254.3.0/30`` \n + ``169.254.4.0/30`` \n + ``169.254.5.0/30`` \n + ``169.254.169.252/30``", "type": "string" } } }, "Tag": { - "type": "object", + "description": "Specifies a tag. For more information, see [Add tags to a resource](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#cloudformation-add-tag-specifications).", "additionalProperties": false, + "type": "object", "properties": { - "Key": { + "Value": { + "description": "The tag value.", "type": "string" }, - "Value": { + "Key": { + "description": "The tag key.", "type": "string" } }, @@ -77,62 +93,56 @@ ] } }, - "required": [ - "Type", - "CustomerGatewayId" - ], - "createOnlyProperties": [ - "/properties/Type", - "/properties/CustomerGatewayId", - "/properties/VpnGatewayId", - "/properties/TransitGatewayId", - "/properties/VpnTunnelOptionsSpecifications", - "/properties/StaticRoutesOnly" - ], - "readOnlyProperties": [ - "/properties/VpnConnectionId" - ], - "primaryIdentifier": [ - "/properties/VpnConnectionId" - ], - "tagging": { - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" - }, - "handlers": { - "create": { - "permissions": [ - "ec2:DescribeVpnConnections", - "ec2:CreateVpnConnection", - "ec2:CreateTags" - ] + "properties": { + "EnableAcceleration": { + "description": "", + "type": "boolean" }, - "delete": { - "permissions": [ - "ec2:DescribeVpnConnections", - "ec2:DeleteVpnConnection", - "ec2:DeleteTags" - ] + "TransitGatewayId": { + "description": "The ID of the transit gateway associated with the VPN connection.\n You must specify either ``TransitGatewayId`` or ``VpnGatewayId``, but not both.", + "type": "string" }, - "update": { - "permissions": [ - "ec2:DescribeVpnConnections", - "ec2:CreateTags", - "ec2:DeleteTags" - ] + "Type": { + "description": "The type of VPN connection.", + "type": "string" }, - "read": { - "permissions": [ - "ec2:DescribeVpnConnections" - ] + "VpnTunnelOptionsSpecifications": { + "uniqueItems": false, + "description": "The tunnel options for the VPN connection.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/VpnTunnelOptionsSpecification" + } }, - "list": { - "permissions": [ - "ec2:DescribeVpnConnections" - ] + "CustomerGatewayId": { + "description": "The ID of the customer gateway at your end of the VPN connection.", + "type": "string" + }, + "VpnGatewayId": { + "description": "The ID of the virtual private gateway at the AWS side of the VPN connection.\n You must specify either ``TransitGatewayId`` or ``VpnGatewayId``, but not both.", + "type": "string" + }, + "VpnConnectionId": { + "description": "", + "type": "string" + }, + "StaticRoutesOnly": { + "description": "Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP.\n If you are creating a VPN connection for a device that does not support Border Gateway Protocol (BGP), you must specify ``true``.", + "type": "boolean" + }, + "Tags": { + "uniqueItems": false, + "description": "Any tags assigned to the VPN connection.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + } } - } + }, + "required": [ + "Type", + "CustomerGatewayId" + ] } diff --git a/internal/service/cloudformation/schemas/AWS_EC2_VPNConnectionRoute.json b/internal/service/cloudformation/schemas/AWS_EC2_VPNConnectionRoute.json index f15951819..545efb99b 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_VPNConnectionRoute.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_VPNConnectionRoute.json @@ -1,41 +1,21 @@ { - "typeName": "AWS::EC2::VPNConnectionRoute", - "description": "Resource Type definition for AWS::EC2::VPNConnectionRoute", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", - "properties": { - "DestinationCidrBlock": { - "description": "The CIDR block associated with the local subnet of the customer network.", - "type": "string" - }, - "VpnConnectionId": { - "description": "The ID of the VPN connection.", - "type": "string" - } - }, - "additionalProperties": false, "tagging": { "taggable": false }, - "required": [ - "DestinationCidrBlock", - "VpnConnectionId" - ], - "createOnlyProperties": [ - "/properties/DestinationCidrBlock", - "/properties/VpnConnectionId" - ], - "primaryIdentifier": [ - "/properties/DestinationCidrBlock", - "/properties/VpnConnectionId" - ], "handlers": { + "read": { + "permissions": [ + "ec2:DescribeVpnConnections" + ] + }, "create": { "permissions": [ "ec2:CreateVpnConnectionRoute", "ec2:DescribeVpnConnections" ] }, - "read": { + "list": { "permissions": [ "ec2:DescribeVpnConnections" ] @@ -45,11 +25,31 @@ "ec2:DeleteVpnConnectionRoute", "ec2:DescribeVpnConnections" ] + } + }, + "typeName": "AWS::EC2::VPNConnectionRoute", + "description": "Specifies a static route for a VPN connection between an existing virtual private gateway and a VPN customer gateway. The static route allows traffic to be routed from the virtual private gateway to the VPN customer gateway.\n For more information, see [](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the *User Guide*.", + "createOnlyProperties": [ + "/properties/DestinationCidrBlock", + "/properties/VpnConnectionId" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/DestinationCidrBlock", + "/properties/VpnConnectionId" + ], + "properties": { + "DestinationCidrBlock": { + "description": "The CIDR block associated with the local subnet of the customer network.", + "type": "string" }, - "list": { - "permissions": [ - "ec2:DescribeVpnConnections" - ] + "VpnConnectionId": { + "description": "The ID of the VPN connection.", + "type": "string" } - } + }, + "required": [ + "DestinationCidrBlock", + "VpnConnectionId" + ] } diff --git a/internal/service/cloudformation/schemas/AWS_ElasticLoadBalancingV2_LoadBalancer.json b/internal/service/cloudformation/schemas/AWS_ElasticLoadBalancingV2_LoadBalancer.json index 4e3a748dd..1792dacd1 100644 --- a/internal/service/cloudformation/schemas/AWS_ElasticLoadBalancingV2_LoadBalancer.json +++ b/internal/service/cloudformation/schemas/AWS_ElasticLoadBalancingV2_LoadBalancer.json @@ -1,217 +1,217 @@ { - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", - "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html", - "tagging": { - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": false - }, - "handlers": { - "read": { - "permissions": [ - "elasticloadbalancing:DescribeLoadBalancers", - "elasticloadbalancing:DescribeLoadBalancerAttributes", - "elasticloadbalancing:DescribeTags" - ] - }, - "create": { - "permissions": [ - "elasticloadbalancing:CreateLoadBalancer", - "elasticloadbalancing:DescribeLoadBalancers", - "elasticloadbalancing:ModifyLoadBalancerAttributes", - "elasticloadbalancing:AddTags" - ], - "timeoutInMinutes": 30 - }, - "update": { - "permissions": [ - "elasticloadbalancing:ModifyLoadBalancerAttributes", - "elasticloadbalancing:SetSubnets", - "elasticloadbalancing:SetIpAddressType", - "elasticloadbalancing:SetSecurityGroups", - "elasticloadbalancing:AddTags", - "elasticloadbalancing:RemoveTags" - ] - }, - "list": { - "permissions": [ - "elasticloadbalancing:DescribeLoadBalancers" - ] - }, - "delete": { - "permissions": [ - "elasticloadbalancing:DescribeLoadBalancers", - "elasticloadbalancing:DeleteLoadBalancer" - ] - } - }, "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer", - "readOnlyProperties": [ - "/properties/LoadBalancerName", - "/properties/LoadBalancerFullName", - "/properties/CanonicalHostedZoneID", - "/properties/LoadBalancerArn", - "/properties/DNSName" - ], "description": "Specifies an Application Load Balancer, a Network Load Balancer, or a Gateway Load Balancer.", - "createOnlyProperties": [ - "/properties/Name", - "/properties/Type", - "/properties/Scheme" - ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", + "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html", "additionalProperties": false, - "primaryIdentifier": [ - "/properties/LoadBalancerArn" - ], - "definitions": { - "SubnetMapping": { - "description": "Specifies a subnet for a load balancer.", - "additionalProperties": false, - "type": "object", - "properties": { - "AllocationId": { - "description": "[Network Load Balancers] The allocation ID of the Elastic IP address for an internet-facing load balancer.", - "type": "string" - }, - "IPv6Address": { - "description": "[Network Load Balancers] The IPv6 address.", - "type": "string" - }, - "SubnetId": { - "description": "The ID of the subnet.", - "type": "string" - }, - "PrivateIPv4Address": { - "description": "[Network Load Balancers] The private IPv4 address for an internal load balancer.", - "type": "string" - } - }, - "required": [ - "SubnetId" - ] - }, - "LoadBalancerAttribute": { - "description": "Specifies an attribute for an Application Load Balancer, a Network Load Balancer, or a Gateway Load Balancer.", - "additionalProperties": false, - "type": "object", - "properties": { - "Value": { - "description": "The value of the attribute.", - "type": "string" - }, - "Key": { - "description": "The name of the attribute.\n The following attributes are supported by all load balancers:\n + ``deletion_protection.enabled`` - Indicates whether deletion protection is enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and cannot be changed.\n \n The following attributes are supported by both Application Load Balancers and Network Load Balancers:\n + ``access_logs.s3.enabled`` - Indicates whether access logs are enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``access_logs.s3.bucket`` - The name of the S3 bucket for the access logs. This attribute is required if access logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.\n + ``access_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the access logs.\n + ``ipv6.deny_all_igw_traffic`` - Blocks internet gateway (IGW) access to the load balancer. It is set to ``false`` for internet-facing load balancers and ``true`` for internal load balancers, preventing unintended access to your internal load balancer through an internet gateway.\n \n The following attributes are supported by only Application Load Balancers:\n + ``idle_timeout.timeout_seconds`` - The idle timeout value, in seconds. The valid range is 1-4000 seconds. The default is 60 seconds.\n + ``client_keep_alive.seconds`` - The client keep alive value, in seconds. The valid range is 60-604800 seconds. The default is 3600 seconds.\n + ``connection_logs.s3.enabled`` - Indicates whether connection logs are enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``connection_logs.s3.bucket`` - The name of the S3 bucket for the connection logs. This attribute is required if connection logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.\n + ``connection_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the connection logs.\n + ``routing.http.desync_mitigation_mode`` - Determines how the load balancer handles requests that might pose a security risk to your application. The possible values are ``monitor``, ``defensive``, and ``strictest``. The default is ``defensive``.\n + ``routing.http.drop_invalid_header_fields.enabled`` - Indicates whether HTTP headers with invalid header fields are removed by the load balancer (``true``) or routed to targets (``false``). The default is ``false``.\n + ``routing.http.preserve_host_header.enabled`` - Indicates whether the Application Load Balancer should preserve the ``Host`` header in the HTTP request and send it to the target without any change. The possible values are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.x_amzn_tls_version_and_cipher_suite.enabled`` - 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. The possible values for the attribute are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.xff_client_port.enabled`` - Indicates whether the ``X-Forwarded-For`` header should preserve the source port that the client used to connect to the load balancer. The possible values are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.xff_header_processing.mode`` - 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. The possible values are ``append``, ``preserve``, and ``remove``. The default is ``append``.\n + If the value is ``append``, the Application Load Balancer adds the client IP address (of the last hop) to the ``X-Forwarded-For`` header in the HTTP request before it sends it to targets.\n + If the value is ``preserve`` the Application Load Balancer preserves the ``X-Forwarded-For`` header in the HTTP request, and sends it to targets without any change.\n + If the value is ``remove``, the Application Load Balancer removes the ``X-Forwarded-For`` header in the HTTP request before it sends it to targets.\n \n + ``routing.http2.enabled`` - Indicates whether HTTP/2 is enabled. The possible values are ``true`` and ``false``. The default is ``true``. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens.\n + ``waf.fail_open.enabled`` - 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. The possible values are ``true`` and ``false``. The default is ``false``.\n \n The following attributes are supported by only Network Load Balancers:\n + ``dns_record.client_routing_policy`` - Indicates how traffic is distributed among the load balancer Availability Zones. The possible values are ``availability_zone_affinity`` with 100 percent zonal affinity, ``partial_availability_zone_affinity`` with 85 percent zonal affinity, and ``any_availability_zone`` with 0 percent zonal affinity.", - "type": "string" - } - } - }, - "Tag": { - "description": "Information about a tag.", - "additionalProperties": false, - "type": "object", - "properties": { - "Value": { - "description": "The value of the tag.", - "type": "string" - }, - "Key": { - "description": "The key of the tag.", - "type": "string" - } - }, - "required": [ - "Key" - ] - } - }, "properties": { "IpAddressType": { - "description": "Note: Internal load balancers must use the ``ipv4`` IP address type.\n [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses).\n [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can\u2019t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener.\n [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses).", - "type": "string" + "type": "string", + "description": "Note: Internal load balancers must use the ``ipv4`` IP address type.\n [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses).\n [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can?t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener.\n [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses)." }, "SecurityGroups": { - "uniqueItems": true, + "type": "array", "description": "[Application Load Balancers and Network Load Balancers] The IDs of the security groups for the load balancer.", + "uniqueItems": true, "insertionOrder": false, - "type": "array", "items": { "type": "string" } }, "LoadBalancerAttributes": { - "arrayType": "AttributeList", - "uniqueItems": true, + "type": "array", "description": "The load balancer attributes.", + "uniqueItems": true, "insertionOrder": false, - "type": "array", + "arrayType": "AttributeList", "items": { "$ref": "#/definitions/LoadBalancerAttribute" } }, "Scheme": { - "description": "The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the internet.\n The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer.\n The default is an Internet-facing load balancer.\n You cannot specify a scheme for a Gateway Load Balancer.", - "type": "string" + "type": "string", + "description": "The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the internet.\n The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer.\n The default is an Internet-facing load balancer.\n You cannot specify a scheme for a Gateway Load Balancer." }, "DNSName": { - "description": "", - "type": "string" + "type": "string", + "description": "" }, "Name": { - "description": "The name of the load balancer. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, must not begin or end with a hyphen, and must not begin with \"internal-\".\n If you don't specify a name, AWS CloudFormation generates a unique physical ID for the load balancer. If you specify a name, you cannot perform updates that require replacement of this resource, but you can perform other updates. To replace the resource, specify a new name.", - "type": "string" + "type": "string", + "description": "The name of the load balancer. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, must not begin or end with a hyphen, and must not begin with \"internal-\".\n If you don't specify a name, AWS CloudFormation generates a unique physical ID for the load balancer. If you specify a name, you cannot perform updates that require replacement of this resource, but you can perform other updates. To replace the resource, specify a new name." }, "LoadBalancerName": { - "description": "", - "type": "string" + "type": "string", + "description": "" + }, + "LoadBalancerFullName": { + "type": "string", + "description": "" }, "Subnets": { - "uniqueItems": true, + "type": "array", "description": "The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. To specify an Elastic IP address, specify subnet mappings instead of subnets.\n [Application Load Balancers] You must specify subnets from at least two Availability Zones.\n [Application Load Balancers on Outposts] You must specify one Outpost subnet.\n [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.\n [Network Load Balancers] You can specify subnets from one or more Availability Zones.\n [Gateway Load Balancers] You can specify subnets from one or more Availability Zones.", + "uniqueItems": true, "insertionOrder": false, - "type": "array", "items": { "type": "string" } }, "Type": { - "description": "The type of load balancer. The default is ``application``.", - "type": "string" + "type": "string", + "description": "The type of load balancer. The default is ``application``." }, "CanonicalHostedZoneID": { - "description": "", - "type": "string" - }, - "LoadBalancerArn": { - "description": "", - "type": "string" - }, - "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { - "description": "Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink.", - "type": "string" + "type": "string", + "description": "" }, "Tags": { - "uniqueItems": false, + "type": "array", "description": "The tags to assign to the load balancer.", + "uniqueItems": false, "insertionOrder": false, - "type": "array", "items": { "$ref": "#/definitions/Tag" } }, - "LoadBalancerFullName": { - "description": "", - "type": "string" + "LoadBalancerArn": { + "type": "string", + "description": "" }, "SubnetMappings": { - "uniqueItems": true, + "type": "array", "description": "The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both.\n [Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets.\n [Application Load Balancers on Outposts] You must specify one Outpost subnet.\n [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.\n [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet.\n [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You cannot specify Elastic IP addresses for your subnets.", + "uniqueItems": true, "insertionOrder": false, - "type": "array", "items": { "$ref": "#/definitions/SubnetMapping" } + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string", + "description": "Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink." + } + }, + "definitions": { + "SubnetMapping": { + "type": "object", + "additionalProperties": false, + "properties": { + "SubnetId": { + "type": "string", + "description": "The ID of the subnet." + }, + "AllocationId": { + "type": "string", + "description": "[Network Load Balancers] The allocation ID of the Elastic IP address for an internet-facing load balancer." + }, + "PrivateIPv4Address": { + "type": "string", + "description": "[Network Load Balancers] The private IPv4 address for an internal load balancer." + }, + "IPv6Address": { + "type": "string", + "description": "[Network Load Balancers] The IPv6 address." + } + }, + "required": [ + "SubnetId" + ], + "description": "Specifies a subnet for a load balancer." + }, + "LoadBalancerAttribute": { + "type": "object", + "additionalProperties": false, + "properties": { + "Value": { + "type": "string", + "description": "The value of the attribute." + }, + "Key": { + "type": "string", + "description": "The name of the attribute.\n The following attributes are supported by all load balancers:\n + ``deletion_protection.enabled`` - Indicates whether deletion protection is enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and cannot be changed.\n \n The following attributes are supported by both Application Load Balancers and Network Load Balancers:\n + ``access_logs.s3.enabled`` - Indicates whether access logs are enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``access_logs.s3.bucket`` - The name of the S3 bucket for the access logs. This attribute is required if access logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.\n + ``access_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the access logs.\n + ``ipv6.deny_all_igw_traffic`` - Blocks internet gateway (IGW) access to the load balancer. It is set to ``false`` for internet-facing load balancers and ``true`` for internal load balancers, preventing unintended access to your internal load balancer through an internet gateway.\n \n The following attributes are supported by only Application Load Balancers:\n + ``idle_timeout.timeout_seconds`` - The idle timeout value, in seconds. The valid range is 1-4000 seconds. The default is 60 seconds.\n + ``client_keep_alive.seconds`` - The client keep alive value, in seconds. The valid range is 60-604800 seconds. The default is 3600 seconds.\n + ``connection_logs.s3.enabled`` - Indicates whether connection logs are enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``connection_logs.s3.bucket`` - The name of the S3 bucket for the connection logs. This attribute is required if connection logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.\n + ``connection_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the connection logs.\n + ``routing.http.desync_mitigation_mode`` - Determines how the load balancer handles requests that might pose a security risk to your application. The possible values are ``monitor``, ``defensive``, and ``strictest``. The default is ``defensive``.\n + ``routing.http.drop_invalid_header_fields.enabled`` - Indicates whether HTTP headers with invalid header fields are removed by the load balancer (``true``) or routed to targets (``false``). The default is ``false``.\n + ``routing.http.preserve_host_header.enabled`` - Indicates whether the Application Load Balancer should preserve the ``Host`` header in the HTTP request and send it to the target without any change. The possible values are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.x_amzn_tls_version_and_cipher_suite.enabled`` - 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. The possible values for the attribute are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.xff_client_port.enabled`` - Indicates whether the ``X-Forwarded-For`` header should preserve the source port that the client used to connect to the load balancer. The possible values are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.xff_header_processing.mode`` - 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. The possible values are ``append``, ``preserve``, and ``remove``. The default is ``append``.\n + If the value is ``append``, the Application Load Balancer adds the client IP address (of the last hop) to the ``X-Forwarded-For`` header in the HTTP request before it sends it to targets.\n + If the value is ``preserve`` the Application Load Balancer preserves the ``X-Forwarded-For`` header in the HTTP request, and sends it to targets without any change.\n + If the value is ``remove``, the Application Load Balancer removes the ``X-Forwarded-For`` header in the HTTP request before it sends it to targets.\n \n + ``routing.http2.enabled`` - Indicates whether HTTP/2 is enabled. The possible values are ``true`` and ``false``. The default is ``true``. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens.\n + ``waf.fail_open.enabled`` - 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. The possible values are ``true`` and ``false``. The default is ``false``.\n \n The following attributes are supported by only Network Load Balancers:\n + ``dns_record.client_routing_policy`` - Indicates how traffic is distributed among the load balancer Availability Zones. The possible values are ``availability_zone_affinity`` with 100 percent zonal affinity, ``partial_availability_zone_affinity`` with 85 percent zonal affinity, and ``any_availability_zone`` with 0 percent zonal affinity." + } + }, + "description": "Specifies an attribute for an Application Load Balancer, a Network Load Balancer, or a Gateway Load Balancer." + }, + "Tag": { + "type": "object", + "additionalProperties": false, + "properties": { + "Value": { + "type": "string", + "description": "The value of the tag." + }, + "Key": { + "type": "string", + "description": "The key of the tag." + } + }, + "required": [ + "Key" + ], + "description": "Information about a tag." + } + }, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type", + "/properties/Scheme" + ], + "primaryIdentifier": [ + "/properties/LoadBalancerArn" + ], + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/LoadBalancerFullName", + "/properties/CanonicalHostedZoneID", + "/properties/LoadBalancerArn", + "/properties/DNSName" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags" + }, + "handlers": { + "create": { + "permissions": [ + "elasticloadbalancing:CreateLoadBalancer", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:AddTags" + ], + "timeoutInMinutes": 30 + }, + "delete": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DeleteLoadBalancer" + ] + }, + "list": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers" + ] + }, + "read": { + "permissions": [ + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DescribeTags" + ] + }, + "update": { + "permissions": [ + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:SetSubnets", + "elasticloadbalancing:SetIpAddressType", + "elasticloadbalancing:SetSecurityGroups", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:RemoveTags" + ] } } } diff --git a/internal/service/cloudformation/schemas/AWS_EntityResolution_IdMappingWorkflow.json b/internal/service/cloudformation/schemas/AWS_EntityResolution_IdMappingWorkflow.json index 06ef2632c..8ed84d89c 100644 --- a/internal/service/cloudformation/schemas/AWS_EntityResolution_IdMappingWorkflow.json +++ b/internal/service/cloudformation/schemas/AWS_EntityResolution_IdMappingWorkflow.json @@ -1,122 +1,173 @@ { + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true + }, "typeName": "AWS::EntityResolution::IdMappingWorkflow", + "readOnlyProperties": [ + "/properties/WorkflowArn", + "/properties/UpdatedAt", + "/properties/CreatedAt" + ], "description": "IdMappingWorkflow defined in AWS Entity Resolution service", + "createOnlyProperties": [ + "/properties/WorkflowName" + ], + "primaryIdentifier": [ + "/properties/WorkflowName" + ], + "required": [ + "WorkflowName", + "InputSourceConfig", + "IdMappingTechniques", + "RoleArn" + ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-entity-resolution.git", - "definitions": { - "EntityName": { - "type": "string", - "pattern": "^[a-zA-Z_0-9-]*$", - "minLength": 0, - "maxLength": 255 + "handlers": { + "read": { + "permissions": [ + "entityresolution:GetIdMappingWorkflow", + "entityresolution:ListTagsForResource" + ] }, - "Description": { - "type": "string", - "minLength": 0, - "maxLength": 255 + "create": { + "permissions": [ + "entityresolution:CreateIdMappingWorkflow", + "entityresolution:GetIdMappingWorkflow", + "entityresolution:TagResource", + "kms:CreateGrant", + "kms:DescribeKey", + "iam:PassRole" + ] }, - "AttributeName": { - "type": "string", - "pattern": "^[a-zA-Z_0-9- \\t]*$", - "minLength": 0, - "maxLength": 255 + "update": { + "permissions": [ + "entityresolution:GetIdMappingWorkflow", + "entityresolution:UpdateIdMappingWorkflow", + "entityresolution:ListTagsForResource", + "entityresolution:TagResource", + "entityresolution:UntagResource", + "iam:PassRole", + "kms:CreateGrant", + "kms:DescribeKey" + ] }, - "SchemaMappingArn": { - "description": "The SchemaMapping arn associated with the Schema", - "type": "string", - "pattern": "^arn:(aws|aws-us-gov|aws-cn):entityresolution:.*:[0-9]+:(schemamapping/.*)$" + "list": { + "permissions": [ + "entityresolution:ListIdMappingWorkflows" + ] }, - "KMSArn": { - "type": "string", - "pattern": "^arn:(aws|aws-us-gov|aws-cn):kms:.*:[0-9]+:.*$" + "delete": { + "permissions": [ + "entityresolution:DeleteIdMappingWorkflow", + "entityresolution:GetIdMappingWorkflow", + "entityresolution:UntagResource" + ] + } + }, + "writeOnlyProperties": [ + "/properties/IdMappingTechniques/NormalizationVersion" + ], + "additionalProperties": false, + "definitions": { + "IdMappingWorkflowOutputSource": { + "additionalProperties": false, + "type": "object", + "properties": { + "KMSArn": { + "$ref": "#/definitions/KMSArn" + }, + "OutputS3Path": { + "pattern": "^s3://([^/]+)/?(.*?([^/]+)/?)$", + "description": "The S3 path to which Entity Resolution will write the output table", + "type": "string" + } + }, + "required": [ + "OutputS3Path" + ] }, - "IdMappingWorkflowArn": { - "description": "The default IdMappingWorkflow arn", + "Description": { + "minLength": 0, "type": "string", - "pattern": "^arn:(aws|aws-us-gov|aws-cn):entityresolution:.*:[0-9]+:(idmappingworkflow/.*)$" - }, - "CreatedAt": { - "description": "The time of this IdMappingWorkflow got created", - "type": "string" - }, - "UpdatedAt": { - "description": "The time of this IdMappingWorkflow got last updated at", - "type": "string" + "maxLength": 255 }, "IdMappingWorkflowInputSource": { + "additionalProperties": false, "type": "object", "properties": { - "InputSourceARN": { - "description": "An Glue table ARN for the input source table, MatchingWorkflow arn or IdNamespace ARN", - "type": "string", - "pattern": "^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(idnamespace/[a-zA-Z_0-9-]{1,255})$|^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(matchingworkflow/[a-zA-Z_0-9-]{1,255})$|^arn:(aws|aws-us-gov|aws-cn):glue:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(table/[a-zA-Z_0-9-]{1,255}/[a-zA-Z_0-9-]{1,255})$" - }, - "SchemaArn": { - "type": "string", - "$ref": "#/definitions/SchemaMappingArn" - }, "Type": { "type": "string", "enum": [ "SOURCE", "TARGET" ] + }, + "InputSourceARN": { + "pattern": "^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(idnamespace/[a-zA-Z_0-9-]{1,255})$|^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(matchingworkflow/[a-zA-Z_0-9-]{1,255})$|^arn:(aws|aws-us-gov|aws-cn):glue:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(table/[a-zA-Z_0-9-]{1,255}/[a-zA-Z_0-9-]{1,255})$", + "description": "An Glue table ARN for the input source table, MatchingWorkflow arn or IdNamespace ARN", + "type": "string" + }, + "SchemaArn": { + "type": "string", + "$ref": "#/definitions/SchemaMappingArn" } }, "required": [ "InputSourceARN" - ], - "additionalProperties": false + ] }, - "IdMappingWorkflowOutputSource": { - "type": "object", - "properties": { - "OutputS3Path": { - "description": "The S3 path to which Entity Resolution will write the output table", - "type": "string", - "pattern": "^s3://([^/]+)/?(.*?([^/]+)/?)$" - }, - "KMSArn": { - "$ref": "#/definitions/KMSArn" - } - }, - "required": [ - "OutputS3Path" - ], - "additionalProperties": false + "EntityName": { + "minLength": 0, + "pattern": "^[a-zA-Z_0-9-]*$", + "type": "string", + "maxLength": 255 }, "IdMappingTechniques": { + "additionalProperties": false, "type": "object", "properties": { + "RuleBasedProperties": { + "$ref": "#/definitions/IdMappingRuleBasedProperties" + }, + "ProviderProperties": { + "$ref": "#/definitions/ProviderProperties" + }, "IdMappingType": { "type": "string", "enum": [ "PROVIDER", "RULE_BASED" ] - }, - "NormalizationVersion": { - "type": "string" - }, - "RuleBasedProperties": { - "$ref": "#/definitions/IdMappingRuleBasedProperties" - }, - "ProviderProperties": { - "$ref": "#/definitions/ProviderProperties" } - }, - "additionalProperties": false + } + }, + "CreatedAt": { + "description": "The time of this IdMappingWorkflow got created", + "type": "string" + }, + "IdMappingWorkflowArn": { + "pattern": "^arn:(aws|aws-us-gov|aws-cn):entityresolution:.*:[0-9]+:(idmappingworkflow/.*)$", + "description": "The default IdMappingWorkflow arn", + "type": "string" + }, + "UpdatedAt": { + "description": "The time of this IdMappingWorkflow got last updated at", + "type": "string" }, "IdMappingRuleBasedProperties": { + "additionalProperties": false, "type": "object", "properties": { - "Rules": { - "type": "array", - "insertionOrder": false, - "minItems": 1, - "maxItems": 25, - "items": { - "$ref": "#/definitions/Rule" - } + "AttributeMatchingModel": { + "type": "string", + "enum": [ + "ONE_TO_ONE", + "MANY_TO_MANY" + ] }, "RuleDefinitionType": { "type": "string", @@ -125,12 +176,14 @@ "TARGET" ] }, - "AttributeMatchingModel": { - "type": "string", - "enum": [ - "ONE_TO_ONE", - "MANY_TO_MANY" - ] + "Rules": { + "minItems": 1, + "maxItems": 25, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Rule" + } }, "RecordMatchingModel": { "type": "string", @@ -143,217 +196,164 @@ "required": [ "AttributeMatchingModel", "RecordMatchingModel" - ], - "additionalProperties": false + ] }, - "Rule": { - "type": "object", - "properties": { - "RuleName": { - "type": "string", - "pattern": "^[a-zA-Z_0-9- \\t]*$", - "minLength": 0, - "maxLength": 255 - }, - "MatchingKeys": { - "type": "array", - "insertionOrder": false, - "minItems": 1, - "maxItems": 15, - "items": { - "$ref": "#/definitions/AttributeName" - } - } - }, - "required": [ - "RuleName", - "MatchingKeys" - ], - "additionalProperties": false + "KMSArn": { + "pattern": "^arn:(aws|aws-us-gov|aws-cn):kms:.*:[0-9]+:.*$", + "type": "string" }, "ProviderProperties": { + "additionalProperties": false, "type": "object", "properties": { + "IntermediateSourceConfiguration": { + "$ref": "#/definitions/IntermediateSourceConfiguration" + }, "ProviderServiceArn": { - "type": "string", + "pattern": "^arn:(aws|aws-us-gov|aws-cn):(entityresolution):([a-z]{2}-[a-z]{1,10}-[0-9])::providerservice/([a-zA-Z0-9_-]{1,255})/([a-zA-Z0-9_-]{1,255})$", "description": "Arn of the Provider Service being used.", - "pattern": "^arn:(aws|aws-us-gov|aws-cn):(entityresolution):([a-z]{2}-[a-z]{1,10}-[0-9])::providerservice/([a-zA-Z0-9_-]{1,255})/([a-zA-Z0-9_-]{1,255})$" + "type": "string" }, "ProviderConfiguration": { - "type": "object", - "additionalProperties": false, "patternProperties": { "": { "type": "string" } }, - "description": "Additional Provider configuration that would be required for the provider service. The Configuration must be in JSON string format" - }, - "IntermediateSourceConfiguration": { - "$ref": "#/definitions/IntermediateSourceConfiguration" + "description": "Additional Provider configuration that would be required for the provider service. The Configuration must be in JSON string format", + "additionalProperties": false, + "type": "object" } }, "required": [ "ProviderServiceArn" - ], - "additionalProperties": false + ] }, "IntermediateSourceConfiguration": { + "additionalProperties": false, "type": "object", "properties": { "IntermediateS3Path": { - "type": "string", - "description": "The s3 path that would be used to stage the intermediate data being generated during workflow execution." + "description": "The s3 path that would be used to stage the intermediate data being generated during workflow execution.", + "type": "string" } }, "required": [ "IntermediateS3Path" - ], - "additionalProperties": false + ] + }, + "SchemaMappingArn": { + "pattern": "^arn:(aws|aws-us-gov|aws-cn):entityresolution:.*:[0-9]+:(schemamapping/.*)$", + "description": "The SchemaMapping arn associated with the Schema", + "type": "string" + }, + "AttributeName": { + "minLength": 0, + "pattern": "^[a-zA-Z_0-9- \\t]*$", + "type": "string", + "maxLength": 255 + }, + "Rule": { + "additionalProperties": false, + "type": "object", + "properties": { + "MatchingKeys": { + "minItems": 1, + "maxItems": 15, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/AttributeName" + } + }, + "RuleName": { + "minLength": 0, + "pattern": "^[a-zA-Z_0-9- \\t]*$", + "type": "string", + "maxLength": 255 + } + }, + "required": [ + "RuleName", + "MatchingKeys" + ] }, "Tag": { "description": "A key-value pair to associate with a resource", + "additionalProperties": false, "type": "object", "properties": { - "Key": { - "type": "string", - "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "minLength": 1, - "maxLength": 128 - }, "Value": { - "type": "string", - "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", "minLength": 0, + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "type": "string", "maxLength": 256 + }, + "Key": { + "minLength": 1, + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "type": "string", + "maxLength": 128 } }, "required": [ "Key", "Value" - ], - "additionalProperties": false + ] } }, "properties": { - "WorkflowName": { - "description": "The name of the IdMappingWorkflow", - "$ref": "#/definitions/EntityName" - }, "Description": { "description": "The description of the IdMappingWorkflow", "$ref": "#/definitions/Description" }, "InputSourceConfig": { - "type": "array", - "insertionOrder": false, "minItems": 1, "maxItems": 20, + "insertionOrder": false, + "type": "array", "items": { "$ref": "#/definitions/IdMappingWorkflowInputSource" } }, + "IdMappingTechniques": { + "$ref": "#/definitions/IdMappingTechniques" + }, + "WorkflowName": { + "description": "The name of the IdMappingWorkflow", + "$ref": "#/definitions/EntityName" + }, + "CreatedAt": { + "$ref": "#/definitions/CreatedAt" + }, "OutputSourceConfig": { - "type": "array", - "insertionOrder": false, "minItems": 1, "maxItems": 1, + "insertionOrder": false, + "type": "array", "items": { "$ref": "#/definitions/IdMappingWorkflowOutputSource" } }, - "IdMappingTechniques": { - "$ref": "#/definitions/IdMappingTechniques" + "WorkflowArn": { + "$ref": "#/definitions/IdMappingWorkflowArn" + }, + "UpdatedAt": { + "$ref": "#/definitions/UpdatedAt" }, "RoleArn": { - "type": "string", - "pattern": "^arn:(aws|aws-us-gov|aws-cn):iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$" + "pattern": "^arn:(aws|aws-us-gov|aws-cn):iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "type": "string" }, "Tags": { - "type": "array", - "uniqueItems": true, - "insertionOrder": false, "minItems": 0, "maxItems": 200, + "uniqueItems": true, + "insertionOrder": false, + "type": "array", "items": { "$ref": "#/definitions/Tag" } - }, - "WorkflowArn": { - "$ref": "#/definitions/IdMappingWorkflowArn" - }, - "CreatedAt": { - "$ref": "#/definitions/CreatedAt" - }, - "UpdatedAt": { - "$ref": "#/definitions/UpdatedAt" - } - }, - "createOnlyProperties": [ - "/properties/WorkflowName" - ], - "readOnlyProperties": [ - "/properties/WorkflowArn", - "/properties/UpdatedAt", - "/properties/CreatedAt" - ], - "primaryIdentifier": [ - "/properties/WorkflowName" - ], - "tagging": { - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" - }, - "handlers": { - "create": { - "permissions": [ - "entityresolution:CreateIdMappingWorkflow", - "entityresolution:GetIdMappingWorkflow", - "entityresolution:TagResource", - "kms:CreateGrant", - "kms:DescribeKey", - "iam:PassRole" - ] - }, - "update": { - "permissions": [ - "entityresolution:GetIdMappingWorkflow", - "entityresolution:UpdateIdMappingWorkflow", - "entityresolution:ListTagsForResource", - "entityresolution:TagResource", - "entityresolution:UntagResource", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey" - ] - }, - "read": { - "permissions": [ - "entityresolution:GetIdMappingWorkflow", - "entityresolution:ListTagsForResource" - ] - }, - "delete": { - "permissions": [ - "entityresolution:DeleteIdMappingWorkflow", - "entityresolution:GetIdMappingWorkflow", - "entityresolution:UntagResource" - ] - }, - "list": { - "permissions": [ - "entityresolution:ListIdMappingWorkflows" - ] } - }, - "required": [ - "WorkflowName", - "InputSourceConfig", - "IdMappingTechniques", - "RoleArn" - ], - "additionalProperties": false + } } diff --git a/internal/service/cloudformation/schemas/AWS_IVSChat_Room.json b/internal/service/cloudformation/schemas/AWS_IVSChat_Room.json index 65141bf2f..93122bd74 100644 --- a/internal/service/cloudformation/schemas/AWS_IVSChat_Room.json +++ b/internal/service/cloudformation/schemas/AWS_IVSChat_Room.json @@ -120,7 +120,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "ivschat:TagResource", + "ivschat:ListTagsForResource", + "ivschat:UntagResource" + ] }, "required": [], "readOnlyProperties": [ diff --git a/internal/service/cloudformation/schemas/AWS_InspectorV2_CisScanConfiguration.json b/internal/service/cloudformation/schemas/AWS_InspectorV2_CisScanConfiguration.json index b58fe4e1e..958bc044d 100644 --- a/internal/service/cloudformation/schemas/AWS_InspectorV2_CisScanConfiguration.json +++ b/internal/service/cloudformation/schemas/AWS_InspectorV2_CisScanConfiguration.json @@ -185,6 +185,12 @@ "$ref": "#/definitions/CisTagMap" } }, + "required": [ + "ScanName", + "SecurityLevel", + "Schedule", + "Targets" + ], "additionalProperties": false, "readOnlyProperties": [ "/properties/Arn" diff --git a/internal/service/cloudformation/schemas/AWS_KinesisFirehose_DeliveryStream.json b/internal/service/cloudformation/schemas/AWS_KinesisFirehose_DeliveryStream.json index e6457d2f2..464f1612a 100644 --- a/internal/service/cloudformation/schemas/AWS_KinesisFirehose_DeliveryStream.json +++ b/internal/service/cloudformation/schemas/AWS_KinesisFirehose_DeliveryStream.json @@ -56,6 +56,9 @@ "SnowflakeDestinationConfiguration": { "$ref": "#/definitions/SnowflakeDestinationConfiguration" }, + "IcebergDestinationConfiguration": { + "$ref": "#/definitions/IcebergDestinationConfiguration" + }, "Tags": { "type": "array", "items": { @@ -893,6 +896,9 @@ }, "SecretsManagerConfiguration": { "$ref": "#/definitions/SecretsManagerConfiguration" + }, + "BufferingHints": { + "$ref": "#/definitions/SnowflakeBufferingHints" } }, "required": [ @@ -904,6 +910,104 @@ "S3Configuration" ] }, + "IcebergDestinationConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "DestinationTableConfigurationList": { + "$ref": "#/definitions/DestinationTableConfigurationList" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CatalogConfiguration": { + "$ref": "#/definitions/CatalogConfiguration" + }, + "RoleARN": { + "type": "string", + "minLength": 1, + "maxLength": 512, + "pattern": "arn:.*", + "relationshipRef": { + "typeName": "AWS::IAM::Role", + "propertyPath": "/properties/Arn" + } + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + }, + "s3BackupMode": { + "type": "string", + "enum": [ + "AllData", + "FailedDataOnly" + ] + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + } + }, + "required": [ + "RoleARN", + "CatalogConfiguration", + "S3Configuration" + ] + }, + "CatalogConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "CatalogArn": { + "type": "string", + "minLength": 1, + "maxLength": 512, + "pattern": "arn:.*" + } + } + }, + "DestinationTableConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "DestinationTableName": { + "type": "string", + "minLength": 1, + "maxLength": 512 + }, + "DestinationDatabaseName": { + "type": "string", + "minLength": 1, + "maxLength": 512 + }, + "S3ErrorOutputPrefix": { + "type": "string", + "minLength": 1, + "maxLength": 1024 + }, + "UniqueKeys": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/UniqueKey" + } + } + }, + "required": [ + "DestinationDatabaseName", + "DestinationTableName" + ] + }, + "UniqueKey": { + "type": "string", + "minLength": 1, + "maxLength": 512 + }, "BufferingHints": { "type": "object", "additionalProperties": false, @@ -932,6 +1036,12 @@ } } }, + "DestinationTableConfigurationList": { + "type": "array", + "items": { + "$ref": "#/definitions/DestinationTableConfiguration" + } + }, "SplunkRetryOptions": { "type": "object", "additionalProperties": false, @@ -1112,6 +1222,18 @@ } } }, + "SnowflakeBufferingHints": { + "type": "object", + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + } + }, "CloudWatchLoggingOptions": { "type": "object", "additionalProperties": false, @@ -1598,6 +1720,7 @@ "/properties/AmazonOpenSearchServerlessDestinationConfiguration/VpcConfiguration", "/properties/KinesisStreamSourceConfiguration", "/properties/MSKSourceConfiguration", + "/properties/IcebergDestinationConfiguration", "/properties/SnowflakeDestinationConfiguration/SnowflakeVpcConfiguration" ], "primaryIdentifier": [ diff --git a/internal/service/cloudformation/schemas/AWS_MWAA_Environment.json b/internal/service/cloudformation/schemas/AWS_MWAA_Environment.json index 0c15df154..3a589ebf6 100644 --- a/internal/service/cloudformation/schemas/AWS_MWAA_Environment.json +++ b/internal/service/cloudformation/schemas/AWS_MWAA_Environment.json @@ -476,7 +476,6 @@ "/properties/LoggingConfiguration/WorkerLogs/CloudWatchLogGroupArn", "/properties/LoggingConfiguration/TaskLogs/CloudWatchLogGroupArn" ], - "taggable": true, "primaryIdentifier": [ "/properties/Name" ], @@ -510,5 +509,16 @@ "airflow:ListEnvironments" ] } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "airflow:UntagResource", + "airflow:TagResource" + ] } } diff --git a/internal/service/cloudformation/schemas/AWS_Panorama_ApplicationInstance.json b/internal/service/cloudformation/schemas/AWS_Panorama_ApplicationInstance.json index 3bb71214a..7ec508835 100644 --- a/internal/service/cloudformation/schemas/AWS_Panorama_ApplicationInstance.json +++ b/internal/service/cloudformation/schemas/AWS_Panorama_ApplicationInstance.json @@ -11,7 +11,7 @@ "/properties/CreatedTime", "/properties/LastUpdatedTime" ], - "description": "Schema for ApplicationInstance CloudFormation Resource", + "description": "Creates an application instance and deploys it to a device.", "createOnlyProperties": [ "/properties/Name", "/properties/Description", @@ -127,10 +127,12 @@ ] }, "ManifestOverridesPayload": { + "description": "Parameter overrides for an application instance. This is a JSON document that has a single key (``PayloadData``) where the value is an escaped string representation of the overrides document.", "additionalProperties": false, "type": "object", "properties": { "PayloadData": { + "description": "The overrides document.", "$ref": "#/definitions/ManifestOverridesPayloadData" } } @@ -191,10 +193,12 @@ } }, "ManifestPayload": { + "description": "A application verion's manifest file. This is a JSON document that has a single key (``PayloadData``) where the value is an escaped string representation of the application manifest (``graph.json``). This file is located in the ``graphs`` folder in your application source.", "additionalProperties": false, "type": "object", "properties": { "PayloadData": { + "description": "The application manifest.", "$ref": "#/definitions/ManifestPayloadData" } } @@ -216,20 +220,21 @@ "maxLength": 255 }, "Tag": { + "description": "", "additionalProperties": false, "type": "object", "properties": { "Value": { "minLength": 0, "pattern": "^.+$", - "description": "A string containing the value for the tag", + "description": "", "type": "string", "maxLength": 256 }, "Key": { "minLength": 1, "pattern": "^.+$", - "description": "A string used to identify this tag", + "description": "", "type": "string", "maxLength": 128 } @@ -248,51 +253,67 @@ }, "properties": { "DefaultRuntimeContextDeviceName": { + "description": "", "$ref": "#/definitions/DeviceName" }, "Status": { + "description": "", "$ref": "#/definitions/ApplicationInstanceStatus" }, "DefaultRuntimeContextDevice": { + "description": "The device's ID.", "$ref": "#/definitions/DefaultRuntimeContextDevice" }, "Description": { + "description": "A description for the application instance.", "$ref": "#/definitions/Description" }, "ApplicationInstanceIdToReplace": { + "description": "The ID of an application instance to replace with the new instance.", "$ref": "#/definitions/ApplicationInstanceId" }, "CreatedTime": { + "description": "", "$ref": "#/definitions/Timestamp" }, "HealthStatus": { + "description": "", "$ref": "#/definitions/ApplicationInstanceHealthStatus" }, "ManifestOverridesPayload": { + "description": "Setting overrides for the application manifest.", "$ref": "#/definitions/ManifestOverridesPayload" }, "LastUpdatedTime": { + "description": "", "$ref": "#/definitions/Timestamp" }, "RuntimeRoleArn": { + "description": "The ARN of a runtime role for the application instance.", "$ref": "#/definitions/RuntimeRoleArn" }, "Name": { + "description": "A name for the application instance.", "$ref": "#/definitions/Name" }, "ApplicationInstanceId": { + "description": "", "$ref": "#/definitions/ApplicationInstanceId" }, "StatusDescription": { + "description": "", "$ref": "#/definitions/ApplicationInstanceStatusDescription" }, "ManifestPayload": { + "description": "The application's manifest document.", "$ref": "#/definitions/ManifestPayload" }, "Arn": { + "description": "", "$ref": "#/definitions/ApplicationInstanceArn" }, "Tags": { + "description": "Tags for the application instance.", "$ref": "#/definitions/TagList" } } diff --git a/internal/service/cloudformation/schemas/AWS_Panorama_Package.json b/internal/service/cloudformation/schemas/AWS_Panorama_Package.json index 0d7657d14..46ac46246 100644 --- a/internal/service/cloudformation/schemas/AWS_Panorama_Package.json +++ b/internal/service/cloudformation/schemas/AWS_Panorama_Package.json @@ -1,6 +1,6 @@ { "typeName": "AWS::Panorama::Package", - "description": "Schema for Package CloudFormation Resource", + "description": "Creates a package and storage location in an Amazon S3 access point.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "definitions": { "NodePackageName": { @@ -27,22 +27,28 @@ "type": "object", "properties": { "Bucket": { - "type": "string" + "type": "string", + "description": "The location's bucket." }, "RepoPrefixLocation": { - "type": "string" + "type": "string", + "description": "The location's repo prefix." }, "GeneratedPrefixLocation": { - "type": "string" + "type": "string", + "description": "The location's generated prefix." }, "BinaryPrefixLocation": { - "type": "string" + "type": "string", + "description": "The location's binary prefix." }, "ManifestPrefixLocation": { - "type": "string" + "type": "string", + "description": "The location's manifest prefix." } }, - "additionalProperties": false + "additionalProperties": false, + "description": "A storage location." }, "Tag": { "type": "object", @@ -51,20 +57,23 @@ "type": "string", "minLength": 1, "maxLength": 128, - "pattern": "^.+$" + "pattern": "^.+$", + "description": "" }, "Value": { "type": "string", "minLength": 0, "maxLength": 256, - "pattern": "^.+$" + "pattern": "^.+$", + "description": "" } }, "required": [ "Key", "Value" ], - "additionalProperties": false + "additionalProperties": false, + "description": "" }, "TagList": { "type": "array", @@ -77,22 +86,28 @@ }, "properties": { "PackageName": { - "$ref": "#/definitions/NodePackageName" + "$ref": "#/definitions/NodePackageName", + "description": "A name for the package." }, "PackageId": { - "$ref": "#/definitions/NodePackageId" + "$ref": "#/definitions/NodePackageId", + "description": "" }, "Arn": { - "$ref": "#/definitions/NodePackageArn" + "$ref": "#/definitions/NodePackageArn", + "description": "" }, "StorageLocation": { - "$ref": "#/definitions/StorageLocation" + "$ref": "#/definitions/StorageLocation", + "description": "A storage location." }, "CreatedTime": { - "$ref": "#/definitions/Timestamp" + "$ref": "#/definitions/Timestamp", + "description": "" }, "Tags": { - "$ref": "#/definitions/TagList" + "$ref": "#/definitions/TagList", + "description": "Tags for the package." } }, "additionalProperties": false, diff --git a/internal/service/cloudformation/schemas/AWS_Panorama_PackageVersion.json b/internal/service/cloudformation/schemas/AWS_Panorama_PackageVersion.json index 51cb34f27..a8b5caf96 100644 --- a/internal/service/cloudformation/schemas/AWS_Panorama_PackageVersion.json +++ b/internal/service/cloudformation/schemas/AWS_Panorama_PackageVersion.json @@ -1,6 +1,6 @@ { "typeName": "AWS::Panorama::PackageVersion", - "description": "Schema for PackageVersion Resource Type", + "description": "Registers a package version.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-panorama.git", "definitions": { "PackageOwnerAccount": { @@ -58,40 +58,52 @@ }, "properties": { "OwnerAccount": { - "$ref": "#/definitions/PackageOwnerAccount" + "$ref": "#/definitions/PackageOwnerAccount", + "description": "An owner account." }, "PackageId": { - "$ref": "#/definitions/NodePackageId" + "$ref": "#/definitions/NodePackageId", + "description": "A package ID." }, "PackageArn": { - "$ref": "#/definitions/NodePackageArn" + "$ref": "#/definitions/NodePackageArn", + "description": "" }, "PackageVersion": { - "$ref": "#/definitions/NodePackageVersion" + "$ref": "#/definitions/NodePackageVersion", + "description": "A package version." }, "PatchVersion": { - "$ref": "#/definitions/NodePackagePatchVersion" + "$ref": "#/definitions/NodePackagePatchVersion", + "description": "A patch version." }, "MarkLatest": { - "type": "boolean" + "type": "boolean", + "description": "Whether to mark the new version as the latest version." }, "IsLatestPatch": { - "type": "boolean" + "type": "boolean", + "description": "" }, "PackageName": { - "$ref": "#/definitions/NodePackageName" + "$ref": "#/definitions/NodePackageName", + "description": "" }, "Status": { - "$ref": "#/definitions/PackageVersionStatus" + "$ref": "#/definitions/PackageVersionStatus", + "description": "" }, "StatusDescription": { - "$ref": "#/definitions/PackageVersionStatusDescription" + "$ref": "#/definitions/PackageVersionStatusDescription", + "description": "" }, "RegisteredTime": { - "$ref": "#/definitions/TimeStamp" + "$ref": "#/definitions/TimeStamp", + "description": "" }, "UpdatedLatestPatchVersion": { - "$ref": "#/definitions/NodePackagePatchVersion" + "$ref": "#/definitions/NodePackagePatchVersion", + "description": "If the version was marked latest, the new version to maker as latest." } }, "additionalProperties": false, diff --git a/internal/service/cloudformation/schemas/AWS_RDS_Integration.json b/internal/service/cloudformation/schemas/AWS_RDS_Integration.json index 5a3181788..bf88d1021 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_Integration.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_Integration.json @@ -1,6 +1,6 @@ { "typeName": "AWS::RDS::Integration", - "description": "Creates a zero-ETL integration with Amazon Redshift.", + "description": "A zero-ETL integration with Amazon Redshift.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "properties": { "IntegrationName": { @@ -11,7 +11,7 @@ }, "Description": { "type": "string", - "description": "The description of the integration.", + "description": "A description of the integration.", "minLength": 1, "maxLength": 1000 }, @@ -20,21 +20,21 @@ "maxItems": 50, "uniqueItems": true, "insertionOrder": false, - "description": "An array of key-value pairs to apply to this resource.", + "description": "A list of tags. For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide.*.", "items": { "$ref": "#/definitions/Tag" } }, "DataFilter": { "type": "string", - "description": "The data filter for the integration.", + "description": "Data filters for the integration. These filters determine which tables from the source database are sent to the target Amazon Redshift data warehouse.", "minLength": 1, "maxLength": 25600, "pattern": "[a-zA-Z0-9_ \"\\\\\\-$,*.:?+\\/]*" }, "SourceArn": { "type": "string", - "description": "The Amazon Resource Name (ARN) of the Aurora DB cluster to use as the source for replication." + "description": "The Amazon Resource Name (ARN) of the database to use as the source for replication." }, "TargetArn": { "type": "string", @@ -42,17 +42,19 @@ }, "IntegrationArn": { "type": "string", - "description": "The ARN of the integration." + "description": "" }, "KMSKeyId": { "type": "string", - "description": "An optional AWS Key Management System (AWS KMS) key ARN for the key used to to encrypt the integration. The resource accepts the key ID and the key ARN forms. The key ID form can be used if the KMS key is owned by te same account. If the KMS key belongs to a different account than the calling account, the full key ARN must be specified. Do not use the key alias or the key alias ARN as this will cause a false drift of the resource." + "description": "The AWS Key Management System (AWS KMS) key identifier for the key to use to encrypt the integration. If you don't specify an encryption key, RDS uses a default AWS owned key." }, "AdditionalEncryptionContext": { - "$ref": "#/definitions/EncryptionContextMap" + "$ref": "#/definitions/EncryptionContextMap", + "description": "An optional set of non-secret key?value pairs that contains additional contextual information about the data. For more information, see [Encryption context](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) in the *Key Management Service Developer Guide*.\n You can only include this parameter if you specify the ``KMSKeyId`` parameter." }, "CreateTime": { - "type": "string" + "type": "string", + "description": "" } }, "required": [ @@ -71,19 +73,19 @@ } }, "Tag": { - "description": "A key-value pair to associate with a resource.", + "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", "type": "object", "additionalProperties": false, "properties": { "Key": { "type": "string", - "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "description": "A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", "minLength": 1, "maxLength": 128 }, "Value": { "type": "string", - "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "description": "A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", "minLength": 0, "maxLength": 256 } @@ -101,7 +103,7 @@ "minLength": 0 } }, - "description": "An optional set of non-secret key\u2013value pairs that contains additional contextual information about the data.", + "description": "An optional set of non-secret key?value pairs that contains additional contextual information about the data.", "additionalProperties": false } }, @@ -162,7 +164,11 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "rds:AddTagsToResource", + "rds:RemoveTagsFromResource" + ] }, "additionalProperties": false } diff --git a/internal/service/cloudformation/schemas/AWS_Route53_CidrCollection.json b/internal/service/cloudformation/schemas/AWS_Route53_CidrCollection.json index 4ccd24fd5..037bb16dc 100644 --- a/internal/service/cloudformation/schemas/AWS_Route53_CidrCollection.json +++ b/internal/service/cloudformation/schemas/AWS_Route53_CidrCollection.json @@ -90,7 +90,8 @@ "delete": { "permissions": [ "route53:DeleteCidrCollection", - "route53:ChangeCidrCollection" + "route53:ChangeCidrCollection", + "route53:ListCidrBlocks" ] }, "list": { diff --git a/internal/service/cloudformation/schemas/AWS_S3_BucketPolicy.json b/internal/service/cloudformation/schemas/AWS_S3_BucketPolicy.json index c375c6793..6d091d165 100644 --- a/internal/service/cloudformation/schemas/AWS_S3_BucketPolicy.json +++ b/internal/service/cloudformation/schemas/AWS_S3_BucketPolicy.json @@ -1,32 +1,52 @@ { + "typeName": "AWS::S3::BucketPolicy", + "description": "Applies an Amazon S3 bucket policy to an Amazon S3 bucket. If you are using an identity other than the root user of the AWS-account that owns the bucket, the calling identity must have the ``PutBucketPolicy`` permissions on the specified bucket and belong to the bucket owner's account in order to use this operation.\n If you don't have ``PutBucketPolicy`` permissions, Amazon S3 returns a ``403 Access Denied`` error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a ``405 Method Not Allowed`` error.\n As a security precaution, the root user of the AWS-account that owns a bucket can always use this operation, even if the policy explicitly denies the root user the ability to perform this action. \n For more information, see [Bucket policy examples](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html).\n The following operations are related to ``PutBucketPolicy``:\n + [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) \n + [DeleteBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html)", + "additionalProperties": false, "tagging": { "taggable": false, "tagOnCreate": false, "tagUpdatable": false, "cloudFormationSystemTags": false }, - "handlers": { - "read": { - "permissions": [ - "s3:GetBucketPolicy" - ] + "properties": { + "Bucket": { + "description": "The name of the Amazon S3 bucket to which the policy applies.", + "type": "string" }, + "PolicyDocument": { + "description": "A policy document containing permissions to add to the specified bucket. In IAM, you must provide policy documents in JSON format. However, in CloudFormation you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to IAM. For more information, see the AWS::IAM::Policy [PolicyDocument](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-policydocument) resource description in this guide and [Access Policy Language Overview](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-policy-language-overview.html) in the *Amazon S3 User Guide*.", + "type": [ + "object", + "string" + ] + } + }, + "primaryIdentifier": [ + "/properties/Bucket" + ], + "createOnlyProperties": [ + "/properties/Bucket" + ], + "required": [ + "Bucket", + "PolicyDocument" + ], + "handlers": { "create": { "permissions": [ "s3:GetBucketPolicy", "s3:PutBucketPolicy" ] }, - "update": { + "read": { "permissions": [ - "s3:GetBucketPolicy", - "s3:PutBucketPolicy" + "s3:GetBucketPolicy" ] }, - "list": { + "update": { "permissions": [ "s3:GetBucketPolicy", - "s3:ListAllMyBuckets" + "s3:PutBucketPolicy" ] }, "delete": { @@ -34,32 +54,12 @@ "s3:GetBucketPolicy", "s3:DeleteBucketPolicy" ] - } - }, - "typeName": "AWS::S3::BucketPolicy", - "description": "Applies an Amazon S3 bucket policy to an Amazon S3 bucket. If you are using an identity other than the root user of the AWS-account that owns the bucket, the calling identity must have the ``PutBucketPolicy`` permissions on the specified bucket and belong to the bucket owner's account in order to use this operation.\n If you don't have ``PutBucketPolicy`` permissions, Amazon S3 returns a ``403 Access Denied`` error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a ``405 Method Not Allowed`` error.\n As a security precaution, the root user of the AWS-account that owns a bucket can always use this operation, even if the policy explicitly denies the root user the ability to perform this action. \n For more information, see [Bucket policy examples](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html).\n The following operations are related to ``PutBucketPolicy``:\n + [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) \n + [DeleteBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html)", - "createOnlyProperties": [ - "/properties/Bucket" - ], - "additionalProperties": false, - "primaryIdentifier": [ - "/properties/Bucket" - ], - "properties": { - "Bucket": { - "description": "The name of the Amazon S3 bucket to which the policy applies.", - "type": "string" }, - "PolicyDocument": { - "description": "A policy document containing permissions to add to the specified bucket. In IAM, you must provide policy documents in JSON format. However, in CloudFormation you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to IAM. For more information, see the AWS::IAM::Policy [PolicyDocument](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-policydocument) resource description in this guide and [Access Policy Language Overview](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-policy-language-overview.html) in the *Amazon S3 User Guide*.", - "type": [ - "object", - "string" + "list": { + "permissions": [ + "s3:GetBucketPolicy", + "s3:ListAllMyBuckets" ] } - }, - "required": [ - "Bucket", - "PolicyDocument" - ] + } } diff --git a/internal/service/cloudformation/schemas/AWS_SNS_Topic.json b/internal/service/cloudformation/schemas/AWS_SNS_Topic.json index c3087d2e5..6936b0168 100644 --- a/internal/service/cloudformation/schemas/AWS_SNS_Topic.json +++ b/internal/service/cloudformation/schemas/AWS_SNS_Topic.json @@ -83,7 +83,7 @@ "type": "string" }, "DeliveryStatusLogging": { - "description": "", + "description": "The ``DeliveryStatusLogging`` configuration enables you to log the delivery status of messages sent from your Amazon SNS topic to subscribed endpoints with the following supported delivery protocols:\n + HTTP \n + Amazon Kinesis Data Firehose\n + AWS Lambda\n + Platform application endpoint\n + Amazon Simple Queue Service\n \n Once configured, log entries are sent to Amazon CloudWatch Logs.", "type": "array", "uniqueItems": true, "insertionOrder": false, @@ -151,7 +151,7 @@ "properties": { "Protocol": { "type": "string", - "description": "", + "description": "Indicates one of the supported protocols for the Amazon SNS topic.\n At least one of the other three ``LoggingConfig`` properties is recommend along with ``Protocol``.", "enum": [ "http/s", "sqs", @@ -162,21 +162,21 @@ }, "SuccessFeedbackRoleArn": { "type": "string", - "description": "" + "description": "The IAM role ARN to be used when logging successful message deliveries in Amazon CloudWatch." }, "SuccessFeedbackSampleRate": { "type": "string", - "description": "" + "description": "The percentage of successful message deliveries to be logged in Amazon CloudWatch. Valid percentage values range from 0 to 100." }, "FailureFeedbackRoleArn": { "type": "string", - "description": "" + "description": "The IAM role ARN to be used when logging failed message deliveries in Amazon CloudWatch." } }, "required": [ "Protocol" ], - "description": "" + "description": "The ``LoggingConfig`` property type specifies the ``Delivery`` status logging configuration for an [AWS::SNS::Topic](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html)." } }, "tagging": { diff --git a/internal/service/cloudformation/schemas/AWS_SageMaker_App.json b/internal/service/cloudformation/schemas/AWS_SageMaker_App.json index 3db2ffe5d..f541cb827 100644 --- a/internal/service/cloudformation/schemas/AWS_SageMaker_App.json +++ b/internal/service/cloudformation/schemas/AWS_SageMaker_App.json @@ -143,6 +143,12 @@ "minLength": 1, "maxLength": 256, "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$" + }, + "LifecycleConfigArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*" } } }, diff --git a/internal/service/cloudformation/schemas/AWS_SageMaker_Domain.json b/internal/service/cloudformation/schemas/AWS_SageMaker_Domain.json index e175ceb8b..47cc5c2e5 100644 --- a/internal/service/cloudformation/schemas/AWS_SageMaker_Domain.json +++ b/internal/service/cloudformation/schemas/AWS_SageMaker_Domain.json @@ -271,6 +271,16 @@ "properties": { "DefaultResourceSpec": { "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "type": "array", + "description": "A list of LifecycleConfigArns available for use with JupyterServer apps.", + "uniqueItems": false, + "minItems": 0, + "maxItems": 30, + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + } } } }, @@ -386,6 +396,16 @@ "DefaultResourceSpec": { "$ref": "#/definitions/ResourceSpec", "description": "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app." + }, + "LifecycleConfigArns": { + "type": "array", + "description": "A list of LifecycleConfigArns available for use with KernelGateway apps.", + "uniqueItems": false, + "minItems": 0, + "maxItems": 30, + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + } } } }, @@ -803,7 +823,7 @@ "DataWrangler", "FeatureStore", "EmrClusters", - "AutoML", + "AutoMl", "Experiments", "Training", "ModelEvaluation", diff --git a/internal/service/cloudformation/schemas/AWS_SageMaker_Space.json b/internal/service/cloudformation/schemas/AWS_SageMaker_Space.json index f3927203a..63a1c14ed 100644 --- a/internal/service/cloudformation/schemas/AWS_SageMaker_Space.json +++ b/internal/service/cloudformation/schemas/AWS_SageMaker_Space.json @@ -215,6 +215,16 @@ "properties": { "DefaultResourceSpec": { "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "type": "array", + "description": "A list of LifecycleConfigArns available for use with JupyterServer apps.", + "uniqueItems": false, + "minItems": 0, + "maxItems": 30, + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + } } } }, @@ -330,6 +340,12 @@ "description": "The ARN of the image version created on the instance.", "maxLength": 256, "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$" + }, + "LifecycleConfigArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*" } } }, @@ -351,9 +367,25 @@ "DefaultResourceSpec": { "$ref": "#/definitions/ResourceSpec", "description": "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app." + }, + "LifecycleConfigArns": { + "type": "array", + "description": "A list of LifecycleConfigArns available for use with KernelGateway apps.", + "uniqueItems": false, + "minItems": 0, + "maxItems": 30, + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + } } } }, + "StudioLifecycleConfigArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*" + }, "CustomImage": { "type": "object", "description": "A custom SageMaker image.", diff --git a/internal/service/cloudformation/schemas/AWS_SageMaker_UserProfile.json b/internal/service/cloudformation/schemas/AWS_SageMaker_UserProfile.json index 5e50e120c..f04f367bc 100644 --- a/internal/service/cloudformation/schemas/AWS_SageMaker_UserProfile.json +++ b/internal/service/cloudformation/schemas/AWS_SageMaker_UserProfile.json @@ -136,6 +136,16 @@ "properties": { "DefaultResourceSpec": { "$ref": "#/definitions/ResourceSpec" + }, + "LifecycleConfigArns": { + "type": "array", + "description": "A list of LifecycleConfigArns available for use with JupyterServer apps.", + "uniqueItems": false, + "minItems": 0, + "maxItems": 30, + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + } } } }, @@ -223,6 +233,12 @@ "description": "The ARN of the image version created on the instance.", "maxLength": 256, "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$" + }, + "LifecycleConfigArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*" } } }, @@ -244,6 +260,16 @@ "DefaultResourceSpec": { "$ref": "#/definitions/ResourceSpec", "description": "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app." + }, + "LifecycleConfigArns": { + "type": "array", + "description": "A list of LifecycleConfigArns available for use with KernelGateway apps.", + "uniqueItems": false, + "minItems": 0, + "maxItems": 30, + "items": { + "$ref": "#/definitions/StudioLifecycleConfigArn" + } } } }, @@ -555,7 +581,7 @@ "DataWrangler", "FeatureStore", "EmrClusters", - "AutoML", + "AutoMl", "Experiments", "Training", "ModelEvaluation", diff --git a/internal/service/cloudformation/schemas/AWS_SecurityHub_SecurityControl.json b/internal/service/cloudformation/schemas/AWS_SecurityHub_SecurityControl.json index ebd941af4..60d21a511 100644 --- a/internal/service/cloudformation/schemas/AWS_SecurityHub_SecurityControl.json +++ b/internal/service/cloudformation/schemas/AWS_SecurityHub_SecurityControl.json @@ -163,6 +163,9 @@ "required": [ "Parameters" ], + "createOnlyProperties": [ + "/properties/SecurityControlId" + ], "primaryIdentifier": [ "/properties/SecurityControlId" ], From 188a0f2236d4d8bb30deadf86cec2a9a31b6fb21 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 1 Aug 2024 11:28:01 -0400 Subject: [PATCH 59/89] 07/31/2024 CloudFormation schemas in us-east-1; New schemas. --- internal/provider/all_schemas.hcl | 25 +- .../available_schemas.2024-07-31.hcl | 4398 +++++++++++++++++ internal/provider/plural_data_sources.go | 2 + internal/provider/resources.go | 3 + internal/provider/singular_data_sources.go | 3 + ...t_AutoshiftObserverNotificationStatus.json | 80 + .../AWS_CleanRooms_IdMappingTable.json | 241 + ...AWS_CleanRooms_IdNamespaceAssociation.json | 238 + .../AWS_SageMaker_StudioLifecycleConfig.json | 130 + 9 files changed, 5119 insertions(+), 1 deletion(-) create mode 100644 internal/provider/generators/allschemas/available_schemas.2024-07-31.hcl create mode 100644 internal/service/cloudformation/schemas/AWS_ARCZonalShift_AutoshiftObserverNotificationStatus.json create mode 100644 internal/service/cloudformation/schemas/AWS_CleanRooms_IdMappingTable.json create mode 100644 internal/service/cloudformation/schemas/AWS_CleanRooms_IdNamespaceAssociation.json create mode 100644 internal/service/cloudformation/schemas/AWS_SageMaker_StudioLifecycleConfig.json diff --git a/internal/provider/all_schemas.hcl b/internal/provider/all_schemas.hcl index cddf7ca15..58045e5d9 100644 --- a/internal/provider/all_schemas.hcl +++ b/internal/provider/all_schemas.hcl @@ -10,7 +10,7 @@ meta_schema { path = "../service/cloudformation/meta-schemas/provider.definition.schema.v1.json" } -# 1033 CloudFormation resource types schemas are available for use with the Cloud Control API. +# 1037 CloudFormation resource types schemas are available for use with the Cloud Control API. resource_schema "aws_acmpca_certificate" { cloudformation_type_name = "AWS::ACMPCA::Certificate" @@ -44,6 +44,10 @@ resource_schema "aws_aps_workspace" { cloudformation_type_name = "AWS::APS::Workspace" } +resource_schema "aws_arczonalshift_autoshift_observer_notification_status" { + cloudformation_type_name = "AWS::ARCZonalShift::AutoshiftObserverNotificationStatus" +} + resource_schema "aws_arczonalshift_zonal_autoshift_configuration" { cloudformation_type_name = "AWS::ARCZonalShift::ZonalAutoshiftConfiguration" } @@ -649,6 +653,21 @@ resource_schema "aws_cleanrooms_configured_table_association" { suppress_plural_data_source_generation = true } +resource_schema "aws_cleanrooms_id_mapping_table" { + cloudformation_type_name = "AWS::CleanRooms::IdMappingTable" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_id_namespace_association" { + cloudformation_type_name = "AWS::CleanRooms::IdNamespaceAssociation" + suppress_plural_data_source_generation = true + + # Suppression Reason: InputReferenceProperties/IdMappingWorkflowsSupported is of unsupported type: list of undefined schema + # https://github.com/hashicorp/terraform-provider-awscc/issues/1933 + suppress_resource_generation = true + suppress_singular_data_source_generation = true +} + resource_schema "aws_cleanrooms_membership" { cloudformation_type_name = "AWS::CleanRooms::Membership" } @@ -4181,6 +4200,10 @@ resource_schema "aws_sagemaker_space" { cloudformation_type_name = "AWS::SageMaker::Space" } +resource_schema "aws_sagemaker_studio_lifecycle_config" { + cloudformation_type_name = "AWS::SageMaker::StudioLifecycleConfig" +} + resource_schema "aws_sagemaker_user_profile" { cloudformation_type_name = "AWS::SageMaker::UserProfile" } diff --git a/internal/provider/generators/allschemas/available_schemas.2024-07-31.hcl b/internal/provider/generators/allschemas/available_schemas.2024-07-31.hcl new file mode 100644 index 000000000..7505ddce2 --- /dev/null +++ b/internal/provider/generators/allschemas/available_schemas.2024-07-31.hcl @@ -0,0 +1,4398 @@ +# 1037 CloudFormation resource types schemas are available for use with the Cloud Control API. + +resource_schema "aws_acmpca_certificate" { + cloudformation_type_name = "AWS::ACMPCA::Certificate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_acmpca_certificate_authority" { + cloudformation_type_name = "AWS::ACMPCA::CertificateAuthority" +} + +resource_schema "aws_acmpca_certificate_authority_activation" { + cloudformation_type_name = "AWS::ACMPCA::CertificateAuthorityActivation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_acmpca_permission" { + cloudformation_type_name = "AWS::ACMPCA::Permission" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_aps_rule_groups_namespace" { + cloudformation_type_name = "AWS::APS::RuleGroupsNamespace" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_aps_scraper" { + cloudformation_type_name = "AWS::APS::Scraper" +} + +resource_schema "aws_aps_workspace" { + cloudformation_type_name = "AWS::APS::Workspace" +} + +resource_schema "aws_arczonalshift_autoshift_observer_notification_status" { + cloudformation_type_name = "AWS::ARCZonalShift::AutoshiftObserverNotificationStatus" +} + +resource_schema "aws_arczonalshift_zonal_autoshift_configuration" { + cloudformation_type_name = "AWS::ARCZonalShift::ZonalAutoshiftConfiguration" +} + +resource_schema "aws_accessanalyzer_analyzer" { + cloudformation_type_name = "AWS::AccessAnalyzer::Analyzer" +} + +resource_schema "aws_amplify_app" { + cloudformation_type_name = "AWS::Amplify::App" +} + +resource_schema "aws_amplify_branch" { + cloudformation_type_name = "AWS::Amplify::Branch" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplify_domain" { + cloudformation_type_name = "AWS::Amplify::Domain" +} + +resource_schema "aws_amplifyuibuilder_component" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Component" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplifyuibuilder_form" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Form" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplifyuibuilder_theme" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Theme" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_account" { + cloudformation_type_name = "AWS::ApiGateway::Account" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_api_key" { + cloudformation_type_name = "AWS::ApiGateway::ApiKey" +} + +resource_schema "aws_apigateway_authorizer" { + cloudformation_type_name = "AWS::ApiGateway::Authorizer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_base_path_mapping" { + cloudformation_type_name = "AWS::ApiGateway::BasePathMapping" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_client_certificate" { + cloudformation_type_name = "AWS::ApiGateway::ClientCertificate" +} + +resource_schema "aws_apigateway_deployment" { + cloudformation_type_name = "AWS::ApiGateway::Deployment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_documentation_part" { + cloudformation_type_name = "AWS::ApiGateway::DocumentationPart" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_documentation_version" { + cloudformation_type_name = "AWS::ApiGateway::DocumentationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_domain_name" { + cloudformation_type_name = "AWS::ApiGateway::DomainName" +} + +resource_schema "aws_apigateway_gateway_response" { + cloudformation_type_name = "AWS::ApiGateway::GatewayResponse" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_method" { + cloudformation_type_name = "AWS::ApiGateway::Method" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_model" { + cloudformation_type_name = "AWS::ApiGateway::Model" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_request_validator" { + cloudformation_type_name = "AWS::ApiGateway::RequestValidator" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_resource" { + cloudformation_type_name = "AWS::ApiGateway::Resource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_rest_api" { + cloudformation_type_name = "AWS::ApiGateway::RestApi" +} + +resource_schema "aws_apigateway_stage" { + cloudformation_type_name = "AWS::ApiGateway::Stage" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_usage_plan" { + cloudformation_type_name = "AWS::ApiGateway::UsagePlan" +} + +resource_schema "aws_apigateway_usage_plan_key" { + cloudformation_type_name = "AWS::ApiGateway::UsagePlanKey" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_vpc_link" { + cloudformation_type_name = "AWS::ApiGateway::VpcLink" +} + +resource_schema "aws_apigatewayv2_api" { + cloudformation_type_name = "AWS::ApiGatewayV2::Api" +} + +resource_schema "aws_apigatewayv2_api_mapping" { + cloudformation_type_name = "AWS::ApiGatewayV2::ApiMapping" +} + +resource_schema "aws_apigatewayv2_authorizer" { + cloudformation_type_name = "AWS::ApiGatewayV2::Authorizer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_deployment" { + cloudformation_type_name = "AWS::ApiGatewayV2::Deployment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_domain_name" { + cloudformation_type_name = "AWS::ApiGatewayV2::DomainName" +} + +resource_schema "aws_apigatewayv2_integration_response" { + cloudformation_type_name = "AWS::ApiGatewayV2::IntegrationResponse" +} + +resource_schema "aws_apigatewayv2_model" { + cloudformation_type_name = "AWS::ApiGatewayV2::Model" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_route" { + cloudformation_type_name = "AWS::ApiGatewayV2::Route" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_route_response" { + cloudformation_type_name = "AWS::ApiGatewayV2::RouteResponse" +} + +resource_schema "aws_apigatewayv2_vpc_link" { + cloudformation_type_name = "AWS::ApiGatewayV2::VpcLink" +} + +resource_schema "aws_appconfig_application" { + cloudformation_type_name = "AWS::AppConfig::Application" +} + +resource_schema "aws_appconfig_configuration_profile" { + cloudformation_type_name = "AWS::AppConfig::ConfigurationProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appconfig_environment" { + cloudformation_type_name = "AWS::AppConfig::Environment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appconfig_extension" { + cloudformation_type_name = "AWS::AppConfig::Extension" +} + +resource_schema "aws_appconfig_extension_association" { + cloudformation_type_name = "AWS::AppConfig::ExtensionAssociation" +} + +resource_schema "aws_appconfig_hosted_configuration_version" { + cloudformation_type_name = "AWS::AppConfig::HostedConfigurationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appflow_connector" { + cloudformation_type_name = "AWS::AppFlow::Connector" +} + +resource_schema "aws_appflow_connector_profile" { + cloudformation_type_name = "AWS::AppFlow::ConnectorProfile" +} + +resource_schema "aws_appflow_flow" { + cloudformation_type_name = "AWS::AppFlow::Flow" +} + +resource_schema "aws_appintegrations_application" { + cloudformation_type_name = "AWS::AppIntegrations::Application" +} + +resource_schema "aws_appintegrations_data_integration" { + cloudformation_type_name = "AWS::AppIntegrations::DataIntegration" +} + +resource_schema "aws_appintegrations_event_integration" { + cloudformation_type_name = "AWS::AppIntegrations::EventIntegration" +} + +resource_schema "aws_apprunner_auto_scaling_configuration" { + cloudformation_type_name = "AWS::AppRunner::AutoScalingConfiguration" +} + +resource_schema "aws_apprunner_observability_configuration" { + cloudformation_type_name = "AWS::AppRunner::ObservabilityConfiguration" +} + +resource_schema "aws_apprunner_service" { + cloudformation_type_name = "AWS::AppRunner::Service" +} + +resource_schema "aws_apprunner_vpc_connector" { + cloudformation_type_name = "AWS::AppRunner::VpcConnector" +} + +resource_schema "aws_apprunner_vpc_ingress_connection" { + cloudformation_type_name = "AWS::AppRunner::VpcIngressConnection" +} + +resource_schema "aws_appstream_app_block" { + cloudformation_type_name = "AWS::AppStream::AppBlock" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_app_block_builder" { + cloudformation_type_name = "AWS::AppStream::AppBlockBuilder" +} + +resource_schema "aws_appstream_application" { + cloudformation_type_name = "AWS::AppStream::Application" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_application_entitlement_association" { + cloudformation_type_name = "AWS::AppStream::ApplicationEntitlementAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_application_fleet_association" { + cloudformation_type_name = "AWS::AppStream::ApplicationFleetAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_directory_config" { + cloudformation_type_name = "AWS::AppStream::DirectoryConfig" +} + +resource_schema "aws_appstream_entitlement" { + cloudformation_type_name = "AWS::AppStream::Entitlement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_image_builder" { + cloudformation_type_name = "AWS::AppStream::ImageBuilder" +} + +resource_schema "aws_appsync_domain_name" { + cloudformation_type_name = "AWS::AppSync::DomainName" +} + +resource_schema "aws_appsync_domain_name_api_association" { + cloudformation_type_name = "AWS::AppSync::DomainNameApiAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_function_configuration" { + cloudformation_type_name = "AWS::AppSync::FunctionConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_resolver" { + cloudformation_type_name = "AWS::AppSync::Resolver" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_source_api_association" { + cloudformation_type_name = "AWS::AppSync::SourceApiAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apptest_test_case" { + cloudformation_type_name = "AWS::AppTest::TestCase" +} + +resource_schema "aws_applicationautoscaling_scalable_target" { + cloudformation_type_name = "AWS::ApplicationAutoScaling::ScalableTarget" +} + +resource_schema "aws_applicationautoscaling_scaling_policy" { + cloudformation_type_name = "AWS::ApplicationAutoScaling::ScalingPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_applicationinsights_application" { + cloudformation_type_name = "AWS::ApplicationInsights::Application" +} + +resource_schema "aws_applicationsignals_service_level_objective" { + cloudformation_type_name = "AWS::ApplicationSignals::ServiceLevelObjective" +} + +resource_schema "aws_athena_capacity_reservation" { + cloudformation_type_name = "AWS::Athena::CapacityReservation" +} + +resource_schema "aws_athena_data_catalog" { + cloudformation_type_name = "AWS::Athena::DataCatalog" +} + +resource_schema "aws_athena_named_query" { + cloudformation_type_name = "AWS::Athena::NamedQuery" +} + +resource_schema "aws_athena_prepared_statement" { + cloudformation_type_name = "AWS::Athena::PreparedStatement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_athena_work_group" { + cloudformation_type_name = "AWS::Athena::WorkGroup" +} + +resource_schema "aws_auditmanager_assessment" { + cloudformation_type_name = "AWS::AuditManager::Assessment" +} + +resource_schema "aws_autoscaling_auto_scaling_group" { + cloudformation_type_name = "AWS::AutoScaling::AutoScalingGroup" +} + +resource_schema "aws_autoscaling_launch_configuration" { + cloudformation_type_name = "AWS::AutoScaling::LaunchConfiguration" +} + +resource_schema "aws_autoscaling_lifecycle_hook" { + cloudformation_type_name = "AWS::AutoScaling::LifecycleHook" +} + +resource_schema "aws_autoscaling_scaling_policy" { + cloudformation_type_name = "AWS::AutoScaling::ScalingPolicy" +} + +resource_schema "aws_autoscaling_scheduled_action" { + cloudformation_type_name = "AWS::AutoScaling::ScheduledAction" +} + +resource_schema "aws_autoscaling_warm_pool" { + cloudformation_type_name = "AWS::AutoScaling::WarmPool" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_b2bi_capability" { + cloudformation_type_name = "AWS::B2BI::Capability" +} + +resource_schema "aws_b2bi_partnership" { + cloudformation_type_name = "AWS::B2BI::Partnership" +} + +resource_schema "aws_b2bi_profile" { + cloudformation_type_name = "AWS::B2BI::Profile" +} + +resource_schema "aws_b2bi_transformer" { + cloudformation_type_name = "AWS::B2BI::Transformer" +} + +resource_schema "aws_bcmdataexports_export" { + cloudformation_type_name = "AWS::BCMDataExports::Export" +} + +resource_schema "aws_backup_backup_plan" { + cloudformation_type_name = "AWS::Backup::BackupPlan" +} + +resource_schema "aws_backup_backup_selection" { + cloudformation_type_name = "AWS::Backup::BackupSelection" +} + +resource_schema "aws_backup_backup_vault" { + cloudformation_type_name = "AWS::Backup::BackupVault" +} + +resource_schema "aws_backup_framework" { + cloudformation_type_name = "AWS::Backup::Framework" +} + +resource_schema "aws_backup_report_plan" { + cloudformation_type_name = "AWS::Backup::ReportPlan" +} + +resource_schema "aws_backup_restore_testing_plan" { + cloudformation_type_name = "AWS::Backup::RestoreTestingPlan" +} + +resource_schema "aws_backup_restore_testing_selection" { + cloudformation_type_name = "AWS::Backup::RestoreTestingSelection" +} + +resource_schema "aws_backupgateway_hypervisor" { + cloudformation_type_name = "AWS::BackupGateway::Hypervisor" +} + +resource_schema "aws_batch_compute_environment" { + cloudformation_type_name = "AWS::Batch::ComputeEnvironment" +} + +resource_schema "aws_batch_job_queue" { + cloudformation_type_name = "AWS::Batch::JobQueue" +} + +resource_schema "aws_batch_scheduling_policy" { + cloudformation_type_name = "AWS::Batch::SchedulingPolicy" +} + +resource_schema "aws_bedrock_agent" { + cloudformation_type_name = "AWS::Bedrock::Agent" +} + +resource_schema "aws_bedrock_agent_alias" { + cloudformation_type_name = "AWS::Bedrock::AgentAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_data_source" { + cloudformation_type_name = "AWS::Bedrock::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_flow" { + cloudformation_type_name = "AWS::Bedrock::Flow" +} + +resource_schema "aws_bedrock_flow_alias" { + cloudformation_type_name = "AWS::Bedrock::FlowAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_flow_version" { + cloudformation_type_name = "AWS::Bedrock::FlowVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_guardrail" { + cloudformation_type_name = "AWS::Bedrock::Guardrail" +} + +resource_schema "aws_bedrock_guardrail_version" { + cloudformation_type_name = "AWS::Bedrock::GuardrailVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_knowledge_base" { + cloudformation_type_name = "AWS::Bedrock::KnowledgeBase" +} + +resource_schema "aws_bedrock_prompt" { + cloudformation_type_name = "AWS::Bedrock::Prompt" +} + +resource_schema "aws_bedrock_prompt_version" { + cloudformation_type_name = "AWS::Bedrock::PromptVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_billingconductor_billing_group" { + cloudformation_type_name = "AWS::BillingConductor::BillingGroup" +} + +resource_schema "aws_billingconductor_custom_line_item" { + cloudformation_type_name = "AWS::BillingConductor::CustomLineItem" +} + +resource_schema "aws_billingconductor_pricing_plan" { + cloudformation_type_name = "AWS::BillingConductor::PricingPlan" +} + +resource_schema "aws_billingconductor_pricing_rule" { + cloudformation_type_name = "AWS::BillingConductor::PricingRule" +} + +resource_schema "aws_budgets_budgets_action" { + cloudformation_type_name = "AWS::Budgets::BudgetsAction" +} + +resource_schema "aws_ce_anomaly_monitor" { + cloudformation_type_name = "AWS::CE::AnomalyMonitor" +} + +resource_schema "aws_ce_anomaly_subscription" { + cloudformation_type_name = "AWS::CE::AnomalySubscription" +} + +resource_schema "aws_ce_cost_category" { + cloudformation_type_name = "AWS::CE::CostCategory" +} + +resource_schema "aws_cur_report_definition" { + cloudformation_type_name = "AWS::CUR::ReportDefinition" +} + +resource_schema "aws_cassandra_keyspace" { + cloudformation_type_name = "AWS::Cassandra::Keyspace" +} + +resource_schema "aws_cassandra_table" { + cloudformation_type_name = "AWS::Cassandra::Table" +} + +resource_schema "aws_certificatemanager_account" { + cloudformation_type_name = "AWS::CertificateManager::Account" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_chatbot_microsoft_teams_channel_configuration" { + cloudformation_type_name = "AWS::Chatbot::MicrosoftTeamsChannelConfiguration" +} + +resource_schema "aws_chatbot_slack_channel_configuration" { + cloudformation_type_name = "AWS::Chatbot::SlackChannelConfiguration" +} + +resource_schema "aws_cleanrooms_analysis_template" { + cloudformation_type_name = "AWS::CleanRooms::AnalysisTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_collaboration" { + cloudformation_type_name = "AWS::CleanRooms::Collaboration" +} + +resource_schema "aws_cleanrooms_configured_table" { + cloudformation_type_name = "AWS::CleanRooms::ConfiguredTable" +} + +resource_schema "aws_cleanrooms_configured_table_association" { + cloudformation_type_name = "AWS::CleanRooms::ConfiguredTableAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_id_mapping_table" { + cloudformation_type_name = "AWS::CleanRooms::IdMappingTable" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_id_namespace_association" { + cloudformation_type_name = "AWS::CleanRooms::IdNamespaceAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_membership" { + cloudformation_type_name = "AWS::CleanRooms::Membership" +} + +resource_schema "aws_cleanrooms_privacy_budget_template" { + cloudformation_type_name = "AWS::CleanRooms::PrivacyBudgetTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanroomsml_training_dataset" { + cloudformation_type_name = "AWS::CleanRoomsML::TrainingDataset" +} + +resource_schema "aws_cloudformation_hook_default_version" { + cloudformation_type_name = "AWS::CloudFormation::HookDefaultVersion" +} + +resource_schema "aws_cloudformation_hook_type_config" { + cloudformation_type_name = "AWS::CloudFormation::HookTypeConfig" +} + +resource_schema "aws_cloudformation_hook_version" { + cloudformation_type_name = "AWS::CloudFormation::HookVersion" +} + +resource_schema "aws_cloudformation_module_default_version" { + cloudformation_type_name = "AWS::CloudFormation::ModuleDefaultVersion" +} + +resource_schema "aws_cloudformation_module_version" { + cloudformation_type_name = "AWS::CloudFormation::ModuleVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudformation_public_type_version" { + cloudformation_type_name = "AWS::CloudFormation::PublicTypeVersion" +} + +resource_schema "aws_cloudformation_publisher" { + cloudformation_type_name = "AWS::CloudFormation::Publisher" +} + +resource_schema "aws_cloudformation_resource_default_version" { + cloudformation_type_name = "AWS::CloudFormation::ResourceDefaultVersion" +} + +resource_schema "aws_cloudformation_resource_version" { + cloudformation_type_name = "AWS::CloudFormation::ResourceVersion" +} + +resource_schema "aws_cloudformation_stack" { + cloudformation_type_name = "AWS::CloudFormation::Stack" +} + +resource_schema "aws_cloudformation_stack_set" { + cloudformation_type_name = "AWS::CloudFormation::StackSet" +} + +resource_schema "aws_cloudformation_type_activation" { + cloudformation_type_name = "AWS::CloudFormation::TypeActivation" +} + +resource_schema "aws_cloudfront_cache_policy" { + cloudformation_type_name = "AWS::CloudFront::CachePolicy" +} + +resource_schema "aws_cloudfront_cloudfront_origin_access_identity" { + cloudformation_type_name = "AWS::CloudFront::CloudFrontOriginAccessIdentity" +} + +resource_schema "aws_cloudfront_continuous_deployment_policy" { + cloudformation_type_name = "AWS::CloudFront::ContinuousDeploymentPolicy" +} + +resource_schema "aws_cloudfront_distribution" { + cloudformation_type_name = "AWS::CloudFront::Distribution" +} + +resource_schema "aws_cloudfront_function" { + cloudformation_type_name = "AWS::CloudFront::Function" +} + +resource_schema "aws_cloudfront_key_group" { + cloudformation_type_name = "AWS::CloudFront::KeyGroup" +} + +resource_schema "aws_cloudfront_key_value_store" { + cloudformation_type_name = "AWS::CloudFront::KeyValueStore" +} + +resource_schema "aws_cloudfront_monitoring_subscription" { + cloudformation_type_name = "AWS::CloudFront::MonitoringSubscription" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudfront_origin_access_control" { + cloudformation_type_name = "AWS::CloudFront::OriginAccessControl" +} + +resource_schema "aws_cloudfront_origin_request_policy" { + cloudformation_type_name = "AWS::CloudFront::OriginRequestPolicy" +} + +resource_schema "aws_cloudfront_public_key" { + cloudformation_type_name = "AWS::CloudFront::PublicKey" +} + +resource_schema "aws_cloudfront_realtime_log_config" { + cloudformation_type_name = "AWS::CloudFront::RealtimeLogConfig" +} + +resource_schema "aws_cloudfront_response_headers_policy" { + cloudformation_type_name = "AWS::CloudFront::ResponseHeadersPolicy" +} + +resource_schema "aws_cloudtrail_channel" { + cloudformation_type_name = "AWS::CloudTrail::Channel" +} + +resource_schema "aws_cloudtrail_event_data_store" { + cloudformation_type_name = "AWS::CloudTrail::EventDataStore" +} + +resource_schema "aws_cloudtrail_resource_policy" { + cloudformation_type_name = "AWS::CloudTrail::ResourcePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudtrail_trail" { + cloudformation_type_name = "AWS::CloudTrail::Trail" +} + +resource_schema "aws_cloudwatch_alarm" { + cloudformation_type_name = "AWS::CloudWatch::Alarm" +} + +resource_schema "aws_cloudwatch_composite_alarm" { + cloudformation_type_name = "AWS::CloudWatch::CompositeAlarm" +} + +resource_schema "aws_cloudwatch_dashboard" { + cloudformation_type_name = "AWS::CloudWatch::Dashboard" +} + +resource_schema "aws_cloudwatch_metric_stream" { + cloudformation_type_name = "AWS::CloudWatch::MetricStream" +} + +resource_schema "aws_codeartifact_domain" { + cloudformation_type_name = "AWS::CodeArtifact::Domain" +} + +resource_schema "aws_codeartifact_package_group" { + cloudformation_type_name = "AWS::CodeArtifact::PackageGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_codeartifact_repository" { + cloudformation_type_name = "AWS::CodeArtifact::Repository" +} + +resource_schema "aws_codebuild_fleet" { + cloudformation_type_name = "AWS::CodeBuild::Fleet" +} + +resource_schema "aws_codeconnections_connection" { + cloudformation_type_name = "AWS::CodeConnections::Connection" +} + +resource_schema "aws_codedeploy_application" { + cloudformation_type_name = "AWS::CodeDeploy::Application" +} + +resource_schema "aws_codedeploy_deployment_config" { + cloudformation_type_name = "AWS::CodeDeploy::DeploymentConfig" +} + +resource_schema "aws_codeguruprofiler_profiling_group" { + cloudformation_type_name = "AWS::CodeGuruProfiler::ProfilingGroup" +} + +resource_schema "aws_codegurureviewer_repository_association" { + cloudformation_type_name = "AWS::CodeGuruReviewer::RepositoryAssociation" +} + +resource_schema "aws_codepipeline_custom_action_type" { + cloudformation_type_name = "AWS::CodePipeline::CustomActionType" +} + +resource_schema "aws_codepipeline_pipeline" { + cloudformation_type_name = "AWS::CodePipeline::Pipeline" +} + +resource_schema "aws_codestarconnections_connection" { + cloudformation_type_name = "AWS::CodeStarConnections::Connection" +} + +resource_schema "aws_codestarconnections_repository_link" { + cloudformation_type_name = "AWS::CodeStarConnections::RepositoryLink" +} + +resource_schema "aws_codestarconnections_sync_configuration" { + cloudformation_type_name = "AWS::CodeStarConnections::SyncConfiguration" +} + +resource_schema "aws_codestarnotifications_notification_rule" { + cloudformation_type_name = "AWS::CodeStarNotifications::NotificationRule" +} + +resource_schema "aws_cognito_identity_pool" { + cloudformation_type_name = "AWS::Cognito::IdentityPool" +} + +resource_schema "aws_cognito_identity_pool_principal_tag" { + cloudformation_type_name = "AWS::Cognito::IdentityPoolPrincipalTag" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_identity_pool_role_attachment" { + cloudformation_type_name = "AWS::Cognito::IdentityPoolRoleAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_log_delivery_configuration" { + cloudformation_type_name = "AWS::Cognito::LogDeliveryConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool" { + cloudformation_type_name = "AWS::Cognito::UserPool" +} + +resource_schema "aws_cognito_user_pool_client" { + cloudformation_type_name = "AWS::Cognito::UserPoolClient" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_group" { + cloudformation_type_name = "AWS::Cognito::UserPoolGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_resource_server" { + cloudformation_type_name = "AWS::Cognito::UserPoolResourceServer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_risk_configuration_attachment" { + cloudformation_type_name = "AWS::Cognito::UserPoolRiskConfigurationAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_ui_customization_attachment" { + cloudformation_type_name = "AWS::Cognito::UserPoolUICustomizationAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_user" { + cloudformation_type_name = "AWS::Cognito::UserPoolUser" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_user_to_group_attachment" { + cloudformation_type_name = "AWS::Cognito::UserPoolUserToGroupAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_comprehend_document_classifier" { + cloudformation_type_name = "AWS::Comprehend::DocumentClassifier" +} + +resource_schema "aws_comprehend_flywheel" { + cloudformation_type_name = "AWS::Comprehend::Flywheel" +} + +resource_schema "aws_config_aggregation_authorization" { + cloudformation_type_name = "AWS::Config::AggregationAuthorization" +} + +resource_schema "aws_config_config_rule" { + cloudformation_type_name = "AWS::Config::ConfigRule" +} + +resource_schema "aws_config_configuration_aggregator" { + cloudformation_type_name = "AWS::Config::ConfigurationAggregator" +} + +resource_schema "aws_config_conformance_pack" { + cloudformation_type_name = "AWS::Config::ConformancePack" +} + +resource_schema "aws_config_organization_conformance_pack" { + cloudformation_type_name = "AWS::Config::OrganizationConformancePack" +} + +resource_schema "aws_config_stored_query" { + cloudformation_type_name = "AWS::Config::StoredQuery" +} + +resource_schema "aws_connect_approved_origin" { + cloudformation_type_name = "AWS::Connect::ApprovedOrigin" +} + +resource_schema "aws_connect_contact_flow" { + cloudformation_type_name = "AWS::Connect::ContactFlow" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_contact_flow_module" { + cloudformation_type_name = "AWS::Connect::ContactFlowModule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_evaluation_form" { + cloudformation_type_name = "AWS::Connect::EvaluationForm" +} + +resource_schema "aws_connect_hours_of_operation" { + cloudformation_type_name = "AWS::Connect::HoursOfOperation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_instance" { + cloudformation_type_name = "AWS::Connect::Instance" +} + +resource_schema "aws_connect_instance_storage_config" { + cloudformation_type_name = "AWS::Connect::InstanceStorageConfig" +} + +resource_schema "aws_connect_integration_association" { + cloudformation_type_name = "AWS::Connect::IntegrationAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_phone_number" { + cloudformation_type_name = "AWS::Connect::PhoneNumber" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_predefined_attribute" { + cloudformation_type_name = "AWS::Connect::PredefinedAttribute" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_prompt" { + cloudformation_type_name = "AWS::Connect::Prompt" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_queue" { + cloudformation_type_name = "AWS::Connect::Queue" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_quick_connect" { + cloudformation_type_name = "AWS::Connect::QuickConnect" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_routing_profile" { + cloudformation_type_name = "AWS::Connect::RoutingProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_rule" { + cloudformation_type_name = "AWS::Connect::Rule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_security_key" { + cloudformation_type_name = "AWS::Connect::SecurityKey" +} + +resource_schema "aws_connect_security_profile" { + cloudformation_type_name = "AWS::Connect::SecurityProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_task_template" { + cloudformation_type_name = "AWS::Connect::TaskTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_traffic_distribution_group" { + cloudformation_type_name = "AWS::Connect::TrafficDistributionGroup" +} + +resource_schema "aws_connect_user" { + cloudformation_type_name = "AWS::Connect::User" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_user_hierarchy_group" { + cloudformation_type_name = "AWS::Connect::UserHierarchyGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_view" { + cloudformation_type_name = "AWS::Connect::View" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_view_version" { + cloudformation_type_name = "AWS::Connect::ViewVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connectcampaigns_campaign" { + cloudformation_type_name = "AWS::ConnectCampaigns::Campaign" +} + +resource_schema "aws_controltower_enabled_baseline" { + cloudformation_type_name = "AWS::ControlTower::EnabledBaseline" +} + +resource_schema "aws_controltower_enabled_control" { + cloudformation_type_name = "AWS::ControlTower::EnabledControl" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_controltower_landing_zone" { + cloudformation_type_name = "AWS::ControlTower::LandingZone" +} + +resource_schema "aws_customerprofiles_calculated_attribute_definition" { + cloudformation_type_name = "AWS::CustomerProfiles::CalculatedAttributeDefinition" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_domain" { + cloudformation_type_name = "AWS::CustomerProfiles::Domain" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_event_stream" { + cloudformation_type_name = "AWS::CustomerProfiles::EventStream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_integration" { + cloudformation_type_name = "AWS::CustomerProfiles::Integration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_object_type" { + cloudformation_type_name = "AWS::CustomerProfiles::ObjectType" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_dms_data_provider" { + cloudformation_type_name = "AWS::DMS::DataProvider" +} + +resource_schema "aws_dms_instance_profile" { + cloudformation_type_name = "AWS::DMS::InstanceProfile" +} + +resource_schema "aws_dms_migration_project" { + cloudformation_type_name = "AWS::DMS::MigrationProject" +} + +resource_schema "aws_dms_replication_config" { + cloudformation_type_name = "AWS::DMS::ReplicationConfig" +} + +resource_schema "aws_databrew_dataset" { + cloudformation_type_name = "AWS::DataBrew::Dataset" +} + +resource_schema "aws_databrew_job" { + cloudformation_type_name = "AWS::DataBrew::Job" +} + +resource_schema "aws_databrew_project" { + cloudformation_type_name = "AWS::DataBrew::Project" +} + +resource_schema "aws_databrew_recipe" { + cloudformation_type_name = "AWS::DataBrew::Recipe" +} + +resource_schema "aws_databrew_ruleset" { + cloudformation_type_name = "AWS::DataBrew::Ruleset" +} + +resource_schema "aws_databrew_schedule" { + cloudformation_type_name = "AWS::DataBrew::Schedule" +} + +resource_schema "aws_datapipeline_pipeline" { + cloudformation_type_name = "AWS::DataPipeline::Pipeline" +} + +resource_schema "aws_datasync_agent" { + cloudformation_type_name = "AWS::DataSync::Agent" +} + +resource_schema "aws_datasync_location_azure_blob" { + cloudformation_type_name = "AWS::DataSync::LocationAzureBlob" +} + +resource_schema "aws_datasync_location_efs" { + cloudformation_type_name = "AWS::DataSync::LocationEFS" +} + +resource_schema "aws_datasync_location_fsx_lustre" { + cloudformation_type_name = "AWS::DataSync::LocationFSxLustre" +} + +resource_schema "aws_datasync_location_fsx_ontap" { + cloudformation_type_name = "AWS::DataSync::LocationFSxONTAP" +} + +resource_schema "aws_datasync_location_fsx_open_zfs" { + cloudformation_type_name = "AWS::DataSync::LocationFSxOpenZFS" +} + +resource_schema "aws_datasync_location_fsx_windows" { + cloudformation_type_name = "AWS::DataSync::LocationFSxWindows" +} + +resource_schema "aws_datasync_location_hdfs" { + cloudformation_type_name = "AWS::DataSync::LocationHDFS" +} + +resource_schema "aws_datasync_location_nfs" { + cloudformation_type_name = "AWS::DataSync::LocationNFS" +} + +resource_schema "aws_datasync_location_object_storage" { + cloudformation_type_name = "AWS::DataSync::LocationObjectStorage" +} + +resource_schema "aws_datasync_location_s3" { + cloudformation_type_name = "AWS::DataSync::LocationS3" +} + +resource_schema "aws_datasync_location_smb" { + cloudformation_type_name = "AWS::DataSync::LocationSMB" +} + +resource_schema "aws_datasync_storage_system" { + cloudformation_type_name = "AWS::DataSync::StorageSystem" +} + +resource_schema "aws_datasync_task" { + cloudformation_type_name = "AWS::DataSync::Task" +} + +resource_schema "aws_datazone_data_source" { + cloudformation_type_name = "AWS::DataZone::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_domain" { + cloudformation_type_name = "AWS::DataZone::Domain" +} + +resource_schema "aws_datazone_environment" { + cloudformation_type_name = "AWS::DataZone::Environment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_environment_blueprint_configuration" { + cloudformation_type_name = "AWS::DataZone::EnvironmentBlueprintConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_environment_profile" { + cloudformation_type_name = "AWS::DataZone::EnvironmentProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_group_profile" { + cloudformation_type_name = "AWS::DataZone::GroupProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_project" { + cloudformation_type_name = "AWS::DataZone::Project" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_project_membership" { + cloudformation_type_name = "AWS::DataZone::ProjectMembership" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_subscription_target" { + cloudformation_type_name = "AWS::DataZone::SubscriptionTarget" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_user_profile" { + cloudformation_type_name = "AWS::DataZone::UserProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_farm" { + cloudformation_type_name = "AWS::Deadline::Farm" +} + +resource_schema "aws_deadline_fleet" { + cloudformation_type_name = "AWS::Deadline::Fleet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_license_endpoint" { + cloudformation_type_name = "AWS::Deadline::LicenseEndpoint" +} + +resource_schema "aws_deadline_metered_product" { + cloudformation_type_name = "AWS::Deadline::MeteredProduct" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_monitor" { + cloudformation_type_name = "AWS::Deadline::Monitor" +} + +resource_schema "aws_deadline_queue" { + cloudformation_type_name = "AWS::Deadline::Queue" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_queue_environment" { + cloudformation_type_name = "AWS::Deadline::QueueEnvironment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_queue_fleet_association" { + cloudformation_type_name = "AWS::Deadline::QueueFleetAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_storage_profile" { + cloudformation_type_name = "AWS::Deadline::StorageProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_detective_graph" { + cloudformation_type_name = "AWS::Detective::Graph" +} + +resource_schema "aws_detective_member_invitation" { + cloudformation_type_name = "AWS::Detective::MemberInvitation" +} + +resource_schema "aws_detective_organization_admin" { + cloudformation_type_name = "AWS::Detective::OrganizationAdmin" +} + +resource_schema "aws_devopsguru_log_anomaly_detection_integration" { + cloudformation_type_name = "AWS::DevOpsGuru::LogAnomalyDetectionIntegration" +} + +resource_schema "aws_devopsguru_notification_channel" { + cloudformation_type_name = "AWS::DevOpsGuru::NotificationChannel" +} + +resource_schema "aws_devopsguru_resource_collection" { + cloudformation_type_name = "AWS::DevOpsGuru::ResourceCollection" +} + +resource_schema "aws_directoryservice_simple_ad" { + cloudformation_type_name = "AWS::DirectoryService::SimpleAD" +} + +resource_schema "aws_docdbelastic_cluster" { + cloudformation_type_name = "AWS::DocDBElastic::Cluster" +} + +resource_schema "aws_dynamodb_global_table" { + cloudformation_type_name = "AWS::DynamoDB::GlobalTable" +} + +resource_schema "aws_dynamodb_table" { + cloudformation_type_name = "AWS::DynamoDB::Table" +} + +resource_schema "aws_ec2_capacity_reservation" { + cloudformation_type_name = "AWS::EC2::CapacityReservation" +} + +resource_schema "aws_ec2_capacity_reservation_fleet" { + cloudformation_type_name = "AWS::EC2::CapacityReservationFleet" +} + +resource_schema "aws_ec2_carrier_gateway" { + cloudformation_type_name = "AWS::EC2::CarrierGateway" +} + +resource_schema "aws_ec2_customer_gateway" { + cloudformation_type_name = "AWS::EC2::CustomerGateway" +} + +resource_schema "aws_ec2_dhcp_options" { + cloudformation_type_name = "AWS::EC2::DHCPOptions" +} + +resource_schema "aws_ec2_ec2_fleet" { + cloudformation_type_name = "AWS::EC2::EC2Fleet" +} + +resource_schema "aws_ec2_eip" { + cloudformation_type_name = "AWS::EC2::EIP" +} + +resource_schema "aws_ec2_eip_association" { + cloudformation_type_name = "AWS::EC2::EIPAssociation" +} + +resource_schema "aws_ec2_egress_only_internet_gateway" { + cloudformation_type_name = "AWS::EC2::EgressOnlyInternetGateway" +} + +resource_schema "aws_ec2_enclave_certificate_iam_role_association" { + cloudformation_type_name = "AWS::EC2::EnclaveCertificateIamRoleAssociation" +} + +resource_schema "aws_ec2_flow_log" { + cloudformation_type_name = "AWS::EC2::FlowLog" +} + +resource_schema "aws_ec2_gateway_route_table_association" { + cloudformation_type_name = "AWS::EC2::GatewayRouteTableAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_host" { + cloudformation_type_name = "AWS::EC2::Host" +} + +resource_schema "aws_ec2_ipam" { + cloudformation_type_name = "AWS::EC2::IPAM" +} + +resource_schema "aws_ec2_ipam_allocation" { + cloudformation_type_name = "AWS::EC2::IPAMAllocation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_ipam_pool" { + cloudformation_type_name = "AWS::EC2::IPAMPool" +} + +resource_schema "aws_ec2_ipam_pool_cidr" { + cloudformation_type_name = "AWS::EC2::IPAMPoolCidr" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_ipam_resource_discovery" { + cloudformation_type_name = "AWS::EC2::IPAMResourceDiscovery" +} + +resource_schema "aws_ec2_ipam_resource_discovery_association" { + cloudformation_type_name = "AWS::EC2::IPAMResourceDiscoveryAssociation" +} + +resource_schema "aws_ec2_ipam_scope" { + cloudformation_type_name = "AWS::EC2::IPAMScope" +} + +resource_schema "aws_ec2_instance" { + cloudformation_type_name = "AWS::EC2::Instance" +} + +resource_schema "aws_ec2_instance_connect_endpoint" { + cloudformation_type_name = "AWS::EC2::InstanceConnectEndpoint" +} + +resource_schema "aws_ec2_internet_gateway" { + cloudformation_type_name = "AWS::EC2::InternetGateway" +} + +resource_schema "aws_ec2_key_pair" { + cloudformation_type_name = "AWS::EC2::KeyPair" +} + +resource_schema "aws_ec2_launch_template" { + cloudformation_type_name = "AWS::EC2::LaunchTemplate" +} + +resource_schema "aws_ec2_local_gateway_route" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRoute" +} + +resource_schema "aws_ec2_local_gateway_route_table" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRouteTable" +} + +resource_schema "aws_ec2_local_gateway_route_table_vpc_association" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRouteTableVPCAssociation" +} + +resource_schema "aws_ec2_local_gateway_route_table_virtual_interface_group_association" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRouteTableVirtualInterfaceGroupAssociation" +} + +resource_schema "aws_ec2_nat_gateway" { + cloudformation_type_name = "AWS::EC2::NatGateway" +} + +resource_schema "aws_ec2_network_acl" { + cloudformation_type_name = "AWS::EC2::NetworkAcl" +} + +resource_schema "aws_ec2_network_insights_access_scope" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsAccessScope" +} + +resource_schema "aws_ec2_network_insights_access_scope_analysis" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsAccessScopeAnalysis" +} + +resource_schema "aws_ec2_network_insights_analysis" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsAnalysis" +} + +resource_schema "aws_ec2_network_insights_path" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsPath" +} + +resource_schema "aws_ec2_network_interface" { + cloudformation_type_name = "AWS::EC2::NetworkInterface" +} + +resource_schema "aws_ec2_network_interface_attachment" { + cloudformation_type_name = "AWS::EC2::NetworkInterfaceAttachment" +} + +resource_schema "aws_ec2_network_performance_metric_subscription" { + cloudformation_type_name = "AWS::EC2::NetworkPerformanceMetricSubscription" +} + +resource_schema "aws_ec2_placement_group" { + cloudformation_type_name = "AWS::EC2::PlacementGroup" +} + +resource_schema "aws_ec2_prefix_list" { + cloudformation_type_name = "AWS::EC2::PrefixList" +} + +resource_schema "aws_ec2_route" { + cloudformation_type_name = "AWS::EC2::Route" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_route_table" { + cloudformation_type_name = "AWS::EC2::RouteTable" +} + +resource_schema "aws_ec2_security_group" { + cloudformation_type_name = "AWS::EC2::SecurityGroup" +} + +resource_schema "aws_ec2_security_group_egress" { + cloudformation_type_name = "AWS::EC2::SecurityGroupEgress" +} + +resource_schema "aws_ec2_security_group_ingress" { + cloudformation_type_name = "AWS::EC2::SecurityGroupIngress" +} + +resource_schema "aws_ec2_snapshot_block_public_access" { + cloudformation_type_name = "AWS::EC2::SnapshotBlockPublicAccess" +} + +resource_schema "aws_ec2_spot_fleet" { + cloudformation_type_name = "AWS::EC2::SpotFleet" +} + +resource_schema "aws_ec2_subnet" { + cloudformation_type_name = "AWS::EC2::Subnet" +} + +resource_schema "aws_ec2_subnet_cidr_block" { + cloudformation_type_name = "AWS::EC2::SubnetCidrBlock" +} + +resource_schema "aws_ec2_subnet_network_acl_association" { + cloudformation_type_name = "AWS::EC2::SubnetNetworkAclAssociation" +} + +resource_schema "aws_ec2_subnet_route_table_association" { + cloudformation_type_name = "AWS::EC2::SubnetRouteTableAssociation" +} + +resource_schema "aws_ec2_transit_gateway" { + cloudformation_type_name = "AWS::EC2::TransitGateway" +} + +resource_schema "aws_ec2_transit_gateway_attachment" { + cloudformation_type_name = "AWS::EC2::TransitGatewayAttachment" +} + +resource_schema "aws_ec2_transit_gateway_connect" { + cloudformation_type_name = "AWS::EC2::TransitGatewayConnect" +} + +resource_schema "aws_ec2_transit_gateway_multicast_domain" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastDomain" +} + +resource_schema "aws_ec2_transit_gateway_multicast_domain_association" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastDomainAssociation" +} + +resource_schema "aws_ec2_transit_gateway_multicast_group_member" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastGroupMember" +} + +resource_schema "aws_ec2_transit_gateway_multicast_group_source" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastGroupSource" +} + +resource_schema "aws_ec2_transit_gateway_peering_attachment" { + cloudformation_type_name = "AWS::EC2::TransitGatewayPeeringAttachment" +} + +resource_schema "aws_ec2_transit_gateway_route" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRoute" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_route_table" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRouteTable" +} + +resource_schema "aws_ec2_transit_gateway_route_table_association" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRouteTableAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_route_table_propagation" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRouteTablePropagation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_vpc_attachment" { + cloudformation_type_name = "AWS::EC2::TransitGatewayVpcAttachment" +} + +resource_schema "aws_ec2_vpc" { + cloudformation_type_name = "AWS::EC2::VPC" +} + +resource_schema "aws_ec2_vpc_cidr_block" { + cloudformation_type_name = "AWS::EC2::VPCCidrBlock" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_vpcdhcp_options_association" { + cloudformation_type_name = "AWS::EC2::VPCDHCPOptionsAssociation" +} + +resource_schema "aws_ec2_vpc_endpoint" { + cloudformation_type_name = "AWS::EC2::VPCEndpoint" +} + +resource_schema "aws_ec2_vpc_endpoint_connection_notification" { + cloudformation_type_name = "AWS::EC2::VPCEndpointConnectionNotification" +} + +resource_schema "aws_ec2_vpc_endpoint_service" { + cloudformation_type_name = "AWS::EC2::VPCEndpointService" +} + +resource_schema "aws_ec2_vpc_endpoint_service_permissions" { + cloudformation_type_name = "AWS::EC2::VPCEndpointServicePermissions" +} + +resource_schema "aws_ec2_vpc_gateway_attachment" { + cloudformation_type_name = "AWS::EC2::VPCGatewayAttachment" +} + +resource_schema "aws_ec2_vpc_peering_connection" { + cloudformation_type_name = "AWS::EC2::VPCPeeringConnection" +} + +resource_schema "aws_ec2_vpn_connection" { + cloudformation_type_name = "AWS::EC2::VPNConnection" +} + +resource_schema "aws_ec2_vpn_connection_route" { + cloudformation_type_name = "AWS::EC2::VPNConnectionRoute" +} + +resource_schema "aws_ec2_vpn_gateway" { + cloudformation_type_name = "AWS::EC2::VPNGateway" +} + +resource_schema "aws_ec2_verified_access_endpoint" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessEndpoint" +} + +resource_schema "aws_ec2_verified_access_group" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessGroup" +} + +resource_schema "aws_ec2_verified_access_instance" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessInstance" +} + +resource_schema "aws_ec2_verified_access_trust_provider" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessTrustProvider" +} + +resource_schema "aws_ec2_volume" { + cloudformation_type_name = "AWS::EC2::Volume" +} + +resource_schema "aws_ec2_volume_attachment" { + cloudformation_type_name = "AWS::EC2::VolumeAttachment" +} + +resource_schema "aws_ecr_public_repository" { + cloudformation_type_name = "AWS::ECR::PublicRepository" +} + +resource_schema "aws_ecr_pull_through_cache_rule" { + cloudformation_type_name = "AWS::ECR::PullThroughCacheRule" +} + +resource_schema "aws_ecr_registry_policy" { + cloudformation_type_name = "AWS::ECR::RegistryPolicy" +} + +resource_schema "aws_ecr_replication_configuration" { + cloudformation_type_name = "AWS::ECR::ReplicationConfiguration" +} + +resource_schema "aws_ecr_repository" { + cloudformation_type_name = "AWS::ECR::Repository" +} + +resource_schema "aws_ecr_repository_creation_template" { + cloudformation_type_name = "AWS::ECR::RepositoryCreationTemplate" +} + +resource_schema "aws_ecs_capacity_provider" { + cloudformation_type_name = "AWS::ECS::CapacityProvider" +} + +resource_schema "aws_ecs_cluster" { + cloudformation_type_name = "AWS::ECS::Cluster" +} + +resource_schema "aws_ecs_cluster_capacity_provider_associations" { + cloudformation_type_name = "AWS::ECS::ClusterCapacityProviderAssociations" +} + +resource_schema "aws_ecs_primary_task_set" { + cloudformation_type_name = "AWS::ECS::PrimaryTaskSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ecs_service" { + cloudformation_type_name = "AWS::ECS::Service" +} + +resource_schema "aws_ecs_task_definition" { + cloudformation_type_name = "AWS::ECS::TaskDefinition" +} + +resource_schema "aws_ecs_task_set" { + cloudformation_type_name = "AWS::ECS::TaskSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_efs_access_point" { + cloudformation_type_name = "AWS::EFS::AccessPoint" +} + +resource_schema "aws_efs_file_system" { + cloudformation_type_name = "AWS::EFS::FileSystem" +} + +resource_schema "aws_efs_mount_target" { + cloudformation_type_name = "AWS::EFS::MountTarget" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_access_entry" { + cloudformation_type_name = "AWS::EKS::AccessEntry" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_addon" { + cloudformation_type_name = "AWS::EKS::Addon" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_cluster" { + cloudformation_type_name = "AWS::EKS::Cluster" +} + +resource_schema "aws_eks_fargate_profile" { + cloudformation_type_name = "AWS::EKS::FargateProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_identity_provider_config" { + cloudformation_type_name = "AWS::EKS::IdentityProviderConfig" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_nodegroup" { + cloudformation_type_name = "AWS::EKS::Nodegroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_pod_identity_association" { + cloudformation_type_name = "AWS::EKS::PodIdentityAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_emr_security_configuration" { + cloudformation_type_name = "AWS::EMR::SecurityConfiguration" +} + +resource_schema "aws_emr_studio" { + cloudformation_type_name = "AWS::EMR::Studio" +} + +resource_schema "aws_emr_studio_session_mapping" { + cloudformation_type_name = "AWS::EMR::StudioSessionMapping" +} + +resource_schema "aws_emr_wal_workspace" { + cloudformation_type_name = "AWS::EMR::WALWorkspace" +} + +resource_schema "aws_emrcontainers_virtual_cluster" { + cloudformation_type_name = "AWS::EMRContainers::VirtualCluster" +} + +resource_schema "aws_emrserverless_application" { + cloudformation_type_name = "AWS::EMRServerless::Application" +} + +resource_schema "aws_elasticache_global_replication_group" { + cloudformation_type_name = "AWS::ElastiCache::GlobalReplicationGroup" +} + +resource_schema "aws_elasticache_parameter_group" { + cloudformation_type_name = "AWS::ElastiCache::ParameterGroup" +} + +resource_schema "aws_elasticache_serverless_cache" { + cloudformation_type_name = "AWS::ElastiCache::ServerlessCache" +} + +resource_schema "aws_elasticache_subnet_group" { + cloudformation_type_name = "AWS::ElastiCache::SubnetGroup" +} + +resource_schema "aws_elasticache_user" { + cloudformation_type_name = "AWS::ElastiCache::User" +} + +resource_schema "aws_elasticache_user_group" { + cloudformation_type_name = "AWS::ElastiCache::UserGroup" +} + +resource_schema "aws_elasticbeanstalk_application" { + cloudformation_type_name = "AWS::ElasticBeanstalk::Application" +} + +resource_schema "aws_elasticbeanstalk_application_version" { + cloudformation_type_name = "AWS::ElasticBeanstalk::ApplicationVersion" +} + +resource_schema "aws_elasticbeanstalk_configuration_template" { + cloudformation_type_name = "AWS::ElasticBeanstalk::ConfigurationTemplate" +} + +resource_schema "aws_elasticbeanstalk_environment" { + cloudformation_type_name = "AWS::ElasticBeanstalk::Environment" +} + +resource_schema "aws_elasticloadbalancingv2_listener" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::Listener" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_elasticloadbalancingv2_listener_rule" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::ListenerRule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_elasticloadbalancingv2_load_balancer" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::LoadBalancer" +} + +resource_schema "aws_elasticloadbalancingv2_target_group" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::TargetGroup" +} + +resource_schema "aws_elasticloadbalancingv2_trust_store" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::TrustStore" +} + +resource_schema "aws_elasticloadbalancingv2_trust_store_revocation" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::TrustStoreRevocation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_entityresolution_id_mapping_workflow" { + cloudformation_type_name = "AWS::EntityResolution::IdMappingWorkflow" +} + +resource_schema "aws_entityresolution_id_namespace" { + cloudformation_type_name = "AWS::EntityResolution::IdNamespace" +} + +resource_schema "aws_entityresolution_matching_workflow" { + cloudformation_type_name = "AWS::EntityResolution::MatchingWorkflow" +} + +resource_schema "aws_entityresolution_policy_statement" { + cloudformation_type_name = "AWS::EntityResolution::PolicyStatement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_entityresolution_schema_mapping" { + cloudformation_type_name = "AWS::EntityResolution::SchemaMapping" +} + +resource_schema "aws_eventschemas_discoverer" { + cloudformation_type_name = "AWS::EventSchemas::Discoverer" +} + +resource_schema "aws_eventschemas_registry" { + cloudformation_type_name = "AWS::EventSchemas::Registry" +} + +resource_schema "aws_eventschemas_registry_policy" { + cloudformation_type_name = "AWS::EventSchemas::RegistryPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eventschemas_schema" { + cloudformation_type_name = "AWS::EventSchemas::Schema" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_events_api_destination" { + cloudformation_type_name = "AWS::Events::ApiDestination" +} + +resource_schema "aws_events_archive" { + cloudformation_type_name = "AWS::Events::Archive" +} + +resource_schema "aws_events_connection" { + cloudformation_type_name = "AWS::Events::Connection" +} + +resource_schema "aws_events_endpoint" { + cloudformation_type_name = "AWS::Events::Endpoint" +} + +resource_schema "aws_events_event_bus" { + cloudformation_type_name = "AWS::Events::EventBus" +} + +resource_schema "aws_events_rule" { + cloudformation_type_name = "AWS::Events::Rule" +} + +resource_schema "aws_evidently_experiment" { + cloudformation_type_name = "AWS::Evidently::Experiment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_feature" { + cloudformation_type_name = "AWS::Evidently::Feature" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_launch" { + cloudformation_type_name = "AWS::Evidently::Launch" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_project" { + cloudformation_type_name = "AWS::Evidently::Project" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_segment" { + cloudformation_type_name = "AWS::Evidently::Segment" +} + +resource_schema "aws_fis_experiment_template" { + cloudformation_type_name = "AWS::FIS::ExperimentTemplate" +} + +resource_schema "aws_fis_target_account_configuration" { + cloudformation_type_name = "AWS::FIS::TargetAccountConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_fms_notification_channel" { + cloudformation_type_name = "AWS::FMS::NotificationChannel" +} + +resource_schema "aws_fms_policy" { + cloudformation_type_name = "AWS::FMS::Policy" +} + +resource_schema "aws_fms_resource_set" { + cloudformation_type_name = "AWS::FMS::ResourceSet" +} + +resource_schema "aws_fsx_data_repository_association" { + cloudformation_type_name = "AWS::FSx::DataRepositoryAssociation" +} + +resource_schema "aws_finspace_environment" { + cloudformation_type_name = "AWS::FinSpace::Environment" +} + +resource_schema "aws_forecast_dataset" { + cloudformation_type_name = "AWS::Forecast::Dataset" +} + +resource_schema "aws_forecast_dataset_group" { + cloudformation_type_name = "AWS::Forecast::DatasetGroup" +} + +resource_schema "aws_frauddetector_detector" { + cloudformation_type_name = "AWS::FraudDetector::Detector" +} + +resource_schema "aws_frauddetector_entity_type" { + cloudformation_type_name = "AWS::FraudDetector::EntityType" +} + +resource_schema "aws_frauddetector_event_type" { + cloudformation_type_name = "AWS::FraudDetector::EventType" +} + +resource_schema "aws_frauddetector_label" { + cloudformation_type_name = "AWS::FraudDetector::Label" +} + +resource_schema "aws_frauddetector_list" { + cloudformation_type_name = "AWS::FraudDetector::List" +} + +resource_schema "aws_frauddetector_outcome" { + cloudformation_type_name = "AWS::FraudDetector::Outcome" +} + +resource_schema "aws_frauddetector_variable" { + cloudformation_type_name = "AWS::FraudDetector::Variable" +} + +resource_schema "aws_gamelift_alias" { + cloudformation_type_name = "AWS::GameLift::Alias" +} + +resource_schema "aws_gamelift_build" { + cloudformation_type_name = "AWS::GameLift::Build" +} + +resource_schema "aws_gamelift_container_group_definition" { + cloudformation_type_name = "AWS::GameLift::ContainerGroupDefinition" +} + +resource_schema "aws_gamelift_fleet" { + cloudformation_type_name = "AWS::GameLift::Fleet" +} + +resource_schema "aws_gamelift_game_server_group" { + cloudformation_type_name = "AWS::GameLift::GameServerGroup" +} + +resource_schema "aws_gamelift_game_session_queue" { + cloudformation_type_name = "AWS::GameLift::GameSessionQueue" +} + +resource_schema "aws_gamelift_location" { + cloudformation_type_name = "AWS::GameLift::Location" +} + +resource_schema "aws_gamelift_matchmaking_configuration" { + cloudformation_type_name = "AWS::GameLift::MatchmakingConfiguration" +} + +resource_schema "aws_gamelift_matchmaking_rule_set" { + cloudformation_type_name = "AWS::GameLift::MatchmakingRuleSet" +} + +resource_schema "aws_gamelift_script" { + cloudformation_type_name = "AWS::GameLift::Script" +} + +resource_schema "aws_globalaccelerator_accelerator" { + cloudformation_type_name = "AWS::GlobalAccelerator::Accelerator" +} + +resource_schema "aws_globalaccelerator_cross_account_attachment" { + cloudformation_type_name = "AWS::GlobalAccelerator::CrossAccountAttachment" +} + +resource_schema "aws_globalaccelerator_endpoint_group" { + cloudformation_type_name = "AWS::GlobalAccelerator::EndpointGroup" +} + +resource_schema "aws_globalaccelerator_listener" { + cloudformation_type_name = "AWS::GlobalAccelerator::Listener" +} + +resource_schema "aws_glue_registry" { + cloudformation_type_name = "AWS::Glue::Registry" +} + +resource_schema "aws_glue_schema" { + cloudformation_type_name = "AWS::Glue::Schema" +} + +resource_schema "aws_glue_schema_version" { + cloudformation_type_name = "AWS::Glue::SchemaVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_glue_schema_version_metadata" { + cloudformation_type_name = "AWS::Glue::SchemaVersionMetadata" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_glue_trigger" { + cloudformation_type_name = "AWS::Glue::Trigger" +} + +resource_schema "aws_grafana_workspace" { + cloudformation_type_name = "AWS::Grafana::Workspace" +} + +resource_schema "aws_greengrassv2_component_version" { + cloudformation_type_name = "AWS::GreengrassV2::ComponentVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_greengrassv2_deployment" { + cloudformation_type_name = "AWS::GreengrassV2::Deployment" +} + +resource_schema "aws_groundstation_config" { + cloudformation_type_name = "AWS::GroundStation::Config" +} + +resource_schema "aws_groundstation_dataflow_endpoint_group" { + cloudformation_type_name = "AWS::GroundStation::DataflowEndpointGroup" +} + +resource_schema "aws_groundstation_mission_profile" { + cloudformation_type_name = "AWS::GroundStation::MissionProfile" +} + +resource_schema "aws_guardduty_detector" { + cloudformation_type_name = "AWS::GuardDuty::Detector" +} + +resource_schema "aws_guardduty_filter" { + cloudformation_type_name = "AWS::GuardDuty::Filter" +} + +resource_schema "aws_guardduty_ip_set" { + cloudformation_type_name = "AWS::GuardDuty::IPSet" +} + +resource_schema "aws_guardduty_malware_protection_plan" { + cloudformation_type_name = "AWS::GuardDuty::MalwareProtectionPlan" +} + +resource_schema "aws_guardduty_master" { + cloudformation_type_name = "AWS::GuardDuty::Master" +} + +resource_schema "aws_guardduty_member" { + cloudformation_type_name = "AWS::GuardDuty::Member" +} + +resource_schema "aws_guardduty_threat_intel_set" { + cloudformation_type_name = "AWS::GuardDuty::ThreatIntelSet" +} + +resource_schema "aws_healthimaging_datastore" { + cloudformation_type_name = "AWS::HealthImaging::Datastore" +} + +resource_schema "aws_healthlake_fhir_datastore" { + cloudformation_type_name = "AWS::HealthLake::FHIRDatastore" +} + +resource_schema "aws_iam_group" { + cloudformation_type_name = "AWS::IAM::Group" +} + +resource_schema "aws_iam_group_policy" { + cloudformation_type_name = "AWS::IAM::GroupPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_instance_profile" { + cloudformation_type_name = "AWS::IAM::InstanceProfile" +} + +resource_schema "aws_iam_managed_policy" { + cloudformation_type_name = "AWS::IAM::ManagedPolicy" +} + +resource_schema "aws_iam_oidc_provider" { + cloudformation_type_name = "AWS::IAM::OIDCProvider" +} + +resource_schema "aws_iam_role" { + cloudformation_type_name = "AWS::IAM::Role" +} + +resource_schema "aws_iam_role_policy" { + cloudformation_type_name = "AWS::IAM::RolePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_saml_provider" { + cloudformation_type_name = "AWS::IAM::SAMLProvider" +} + +resource_schema "aws_iam_server_certificate" { + cloudformation_type_name = "AWS::IAM::ServerCertificate" +} + +resource_schema "aws_iam_service_linked_role" { + cloudformation_type_name = "AWS::IAM::ServiceLinkedRole" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_user" { + cloudformation_type_name = "AWS::IAM::User" +} + +resource_schema "aws_iam_user_policy" { + cloudformation_type_name = "AWS::IAM::UserPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_virtual_mfa_device" { + cloudformation_type_name = "AWS::IAM::VirtualMFADevice" +} + +resource_schema "aws_ivs_channel" { + cloudformation_type_name = "AWS::IVS::Channel" +} + +resource_schema "aws_ivs_encoder_configuration" { + cloudformation_type_name = "AWS::IVS::EncoderConfiguration" +} + +resource_schema "aws_ivs_playback_key_pair" { + cloudformation_type_name = "AWS::IVS::PlaybackKeyPair" +} + +resource_schema "aws_ivs_playback_restriction_policy" { + cloudformation_type_name = "AWS::IVS::PlaybackRestrictionPolicy" +} + +resource_schema "aws_ivs_recording_configuration" { + cloudformation_type_name = "AWS::IVS::RecordingConfiguration" +} + +resource_schema "aws_ivs_stage" { + cloudformation_type_name = "AWS::IVS::Stage" +} + +resource_schema "aws_ivs_storage_configuration" { + cloudformation_type_name = "AWS::IVS::StorageConfiguration" +} + +resource_schema "aws_ivs_stream_key" { + cloudformation_type_name = "AWS::IVS::StreamKey" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ivschat_logging_configuration" { + cloudformation_type_name = "AWS::IVSChat::LoggingConfiguration" +} + +resource_schema "aws_ivschat_room" { + cloudformation_type_name = "AWS::IVSChat::Room" +} + +resource_schema "aws_identitystore_group" { + cloudformation_type_name = "AWS::IdentityStore::Group" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_identitystore_group_membership" { + cloudformation_type_name = "AWS::IdentityStore::GroupMembership" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_imagebuilder_component" { + cloudformation_type_name = "AWS::ImageBuilder::Component" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_imagebuilder_container_recipe" { + cloudformation_type_name = "AWS::ImageBuilder::ContainerRecipe" +} + +resource_schema "aws_imagebuilder_distribution_configuration" { + cloudformation_type_name = "AWS::ImageBuilder::DistributionConfiguration" +} + +resource_schema "aws_imagebuilder_image" { + cloudformation_type_name = "AWS::ImageBuilder::Image" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_imagebuilder_image_pipeline" { + cloudformation_type_name = "AWS::ImageBuilder::ImagePipeline" +} + +resource_schema "aws_imagebuilder_image_recipe" { + cloudformation_type_name = "AWS::ImageBuilder::ImageRecipe" +} + +resource_schema "aws_imagebuilder_infrastructure_configuration" { + cloudformation_type_name = "AWS::ImageBuilder::InfrastructureConfiguration" +} + +resource_schema "aws_imagebuilder_lifecycle_policy" { + cloudformation_type_name = "AWS::ImageBuilder::LifecyclePolicy" +} + +resource_schema "aws_imagebuilder_workflow" { + cloudformation_type_name = "AWS::ImageBuilder::Workflow" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_inspector_assessment_target" { + cloudformation_type_name = "AWS::Inspector::AssessmentTarget" +} + +resource_schema "aws_inspector_assessment_template" { + cloudformation_type_name = "AWS::Inspector::AssessmentTemplate" +} + +resource_schema "aws_inspector_resource_group" { + cloudformation_type_name = "AWS::Inspector::ResourceGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_inspectorv2_cis_scan_configuration" { + cloudformation_type_name = "AWS::InspectorV2::CisScanConfiguration" +} + +resource_schema "aws_inspectorv2_filter" { + cloudformation_type_name = "AWS::InspectorV2::Filter" +} + +resource_schema "aws_internetmonitor_monitor" { + cloudformation_type_name = "AWS::InternetMonitor::Monitor" +} + +resource_schema "aws_iot_account_audit_configuration" { + cloudformation_type_name = "AWS::IoT::AccountAuditConfiguration" +} + +resource_schema "aws_iot_authorizer" { + cloudformation_type_name = "AWS::IoT::Authorizer" +} + +resource_schema "aws_iot_billing_group" { + cloudformation_type_name = "AWS::IoT::BillingGroup" +} + +resource_schema "aws_iot_ca_certificate" { + cloudformation_type_name = "AWS::IoT::CACertificate" +} + +resource_schema "aws_iot_certificate" { + cloudformation_type_name = "AWS::IoT::Certificate" +} + +resource_schema "aws_iot_certificate_provider" { + cloudformation_type_name = "AWS::IoT::CertificateProvider" +} + +resource_schema "aws_iot_custom_metric" { + cloudformation_type_name = "AWS::IoT::CustomMetric" +} + +resource_schema "aws_iot_dimension" { + cloudformation_type_name = "AWS::IoT::Dimension" +} + +resource_schema "aws_iot_domain_configuration" { + cloudformation_type_name = "AWS::IoT::DomainConfiguration" +} + +resource_schema "aws_iot_fleet_metric" { + cloudformation_type_name = "AWS::IoT::FleetMetric" +} + +resource_schema "aws_iot_job_template" { + cloudformation_type_name = "AWS::IoT::JobTemplate" +} + +resource_schema "aws_iot_logging" { + cloudformation_type_name = "AWS::IoT::Logging" +} + +resource_schema "aws_iot_mitigation_action" { + cloudformation_type_name = "AWS::IoT::MitigationAction" +} + +resource_schema "aws_iot_policy" { + cloudformation_type_name = "AWS::IoT::Policy" +} + +resource_schema "aws_iot_provisioning_template" { + cloudformation_type_name = "AWS::IoT::ProvisioningTemplate" +} + +resource_schema "aws_iot_resource_specific_logging" { + cloudformation_type_name = "AWS::IoT::ResourceSpecificLogging" +} + +resource_schema "aws_iot_role_alias" { + cloudformation_type_name = "AWS::IoT::RoleAlias" +} + +resource_schema "aws_iot_scheduled_audit" { + cloudformation_type_name = "AWS::IoT::ScheduledAudit" +} + +resource_schema "aws_iot_security_profile" { + cloudformation_type_name = "AWS::IoT::SecurityProfile" +} + +resource_schema "aws_iot_software_package" { + cloudformation_type_name = "AWS::IoT::SoftwarePackage" +} + +resource_schema "aws_iot_software_package_version" { + cloudformation_type_name = "AWS::IoT::SoftwarePackageVersion" +} + +resource_schema "aws_iot_thing" { + cloudformation_type_name = "AWS::IoT::Thing" +} + +resource_schema "aws_iot_thing_group" { + cloudformation_type_name = "AWS::IoT::ThingGroup" +} + +resource_schema "aws_iot_thing_type" { + cloudformation_type_name = "AWS::IoT::ThingType" +} + +resource_schema "aws_iot_topic_rule" { + cloudformation_type_name = "AWS::IoT::TopicRule" +} + +resource_schema "aws_iot_topic_rule_destination" { + cloudformation_type_name = "AWS::IoT::TopicRuleDestination" +} + +resource_schema "aws_iotanalytics_channel" { + cloudformation_type_name = "AWS::IoTAnalytics::Channel" +} + +resource_schema "aws_iotanalytics_dataset" { + cloudformation_type_name = "AWS::IoTAnalytics::Dataset" +} + +resource_schema "aws_iotanalytics_datastore" { + cloudformation_type_name = "AWS::IoTAnalytics::Datastore" +} + +resource_schema "aws_iotanalytics_pipeline" { + cloudformation_type_name = "AWS::IoTAnalytics::Pipeline" +} + +resource_schema "aws_iotcoredeviceadvisor_suite_definition" { + cloudformation_type_name = "AWS::IoTCoreDeviceAdvisor::SuiteDefinition" +} + +resource_schema "aws_iotevents_alarm_model" { + cloudformation_type_name = "AWS::IoTEvents::AlarmModel" +} + +resource_schema "aws_iotevents_detector_model" { + cloudformation_type_name = "AWS::IoTEvents::DetectorModel" +} + +resource_schema "aws_iotevents_input" { + cloudformation_type_name = "AWS::IoTEvents::Input" +} + +resource_schema "aws_iotfleethub_application" { + cloudformation_type_name = "AWS::IoTFleetHub::Application" +} + +resource_schema "aws_iotfleetwise_campaign" { + cloudformation_type_name = "AWS::IoTFleetWise::Campaign" +} + +resource_schema "aws_iotfleetwise_decoder_manifest" { + cloudformation_type_name = "AWS::IoTFleetWise::DecoderManifest" +} + +resource_schema "aws_iotfleetwise_fleet" { + cloudformation_type_name = "AWS::IoTFleetWise::Fleet" +} + +resource_schema "aws_iotfleetwise_model_manifest" { + cloudformation_type_name = "AWS::IoTFleetWise::ModelManifest" +} + +resource_schema "aws_iotfleetwise_signal_catalog" { + cloudformation_type_name = "AWS::IoTFleetWise::SignalCatalog" +} + +resource_schema "aws_iotfleetwise_vehicle" { + cloudformation_type_name = "AWS::IoTFleetWise::Vehicle" +} + +resource_schema "aws_iotsitewise_access_policy" { + cloudformation_type_name = "AWS::IoTSiteWise::AccessPolicy" +} + +resource_schema "aws_iotsitewise_asset" { + cloudformation_type_name = "AWS::IoTSiteWise::Asset" +} + +resource_schema "aws_iotsitewise_asset_model" { + cloudformation_type_name = "AWS::IoTSiteWise::AssetModel" +} + +resource_schema "aws_iotsitewise_dashboard" { + cloudformation_type_name = "AWS::IoTSiteWise::Dashboard" +} + +resource_schema "aws_iotsitewise_gateway" { + cloudformation_type_name = "AWS::IoTSiteWise::Gateway" +} + +resource_schema "aws_iotsitewise_portal" { + cloudformation_type_name = "AWS::IoTSiteWise::Portal" +} + +resource_schema "aws_iotsitewise_project" { + cloudformation_type_name = "AWS::IoTSiteWise::Project" +} + +resource_schema "aws_iottwinmaker_component_type" { + cloudformation_type_name = "AWS::IoTTwinMaker::ComponentType" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_entity" { + cloudformation_type_name = "AWS::IoTTwinMaker::Entity" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_scene" { + cloudformation_type_name = "AWS::IoTTwinMaker::Scene" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_sync_job" { + cloudformation_type_name = "AWS::IoTTwinMaker::SyncJob" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_workspace" { + cloudformation_type_name = "AWS::IoTTwinMaker::Workspace" +} + +resource_schema "aws_iotwireless_destination" { + cloudformation_type_name = "AWS::IoTWireless::Destination" +} + +resource_schema "aws_iotwireless_device_profile" { + cloudformation_type_name = "AWS::IoTWireless::DeviceProfile" +} + +resource_schema "aws_iotwireless_fuota_task" { + cloudformation_type_name = "AWS::IoTWireless::FuotaTask" +} + +resource_schema "aws_iotwireless_multicast_group" { + cloudformation_type_name = "AWS::IoTWireless::MulticastGroup" +} + +resource_schema "aws_iotwireless_network_analyzer_configuration" { + cloudformation_type_name = "AWS::IoTWireless::NetworkAnalyzerConfiguration" +} + +resource_schema "aws_iotwireless_partner_account" { + cloudformation_type_name = "AWS::IoTWireless::PartnerAccount" +} + +resource_schema "aws_iotwireless_service_profile" { + cloudformation_type_name = "AWS::IoTWireless::ServiceProfile" +} + +resource_schema "aws_iotwireless_task_definition" { + cloudformation_type_name = "AWS::IoTWireless::TaskDefinition" +} + +resource_schema "aws_iotwireless_wireless_device" { + cloudformation_type_name = "AWS::IoTWireless::WirelessDevice" +} + +resource_schema "aws_iotwireless_wireless_device_import_task" { + cloudformation_type_name = "AWS::IoTWireless::WirelessDeviceImportTask" +} + +resource_schema "aws_iotwireless_wireless_gateway" { + cloudformation_type_name = "AWS::IoTWireless::WirelessGateway" +} + +resource_schema "aws_kms_alias" { + cloudformation_type_name = "AWS::KMS::Alias" +} + +resource_schema "aws_kms_key" { + cloudformation_type_name = "AWS::KMS::Key" +} + +resource_schema "aws_kms_replica_key" { + cloudformation_type_name = "AWS::KMS::ReplicaKey" +} + +resource_schema "aws_kafkaconnect_connector" { + cloudformation_type_name = "AWS::KafkaConnect::Connector" +} + +resource_schema "aws_kafkaconnect_custom_plugin" { + cloudformation_type_name = "AWS::KafkaConnect::CustomPlugin" +} + +resource_schema "aws_kafkaconnect_worker_configuration" { + cloudformation_type_name = "AWS::KafkaConnect::WorkerConfiguration" +} + +resource_schema "aws_kendra_data_source" { + cloudformation_type_name = "AWS::Kendra::DataSource" +} + +resource_schema "aws_kendra_faq" { + cloudformation_type_name = "AWS::Kendra::Faq" +} + +resource_schema "aws_kendra_index" { + cloudformation_type_name = "AWS::Kendra::Index" +} + +resource_schema "aws_kendraranking_execution_plan" { + cloudformation_type_name = "AWS::KendraRanking::ExecutionPlan" +} + +resource_schema "aws_kinesis_stream" { + cloudformation_type_name = "AWS::Kinesis::Stream" +} + +resource_schema "aws_kinesisanalyticsv2_application" { + cloudformation_type_name = "AWS::KinesisAnalyticsV2::Application" +} + +resource_schema "aws_kinesisfirehose_delivery_stream" { + cloudformation_type_name = "AWS::KinesisFirehose::DeliveryStream" +} + +resource_schema "aws_kinesisvideo_signaling_channel" { + cloudformation_type_name = "AWS::KinesisVideo::SignalingChannel" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_kinesisvideo_stream" { + cloudformation_type_name = "AWS::KinesisVideo::Stream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lakeformation_data_cells_filter" { + cloudformation_type_name = "AWS::LakeFormation::DataCellsFilter" +} + +resource_schema "aws_lakeformation_principal_permissions" { + cloudformation_type_name = "AWS::LakeFormation::PrincipalPermissions" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lakeformation_tag" { + cloudformation_type_name = "AWS::LakeFormation::Tag" +} + +resource_schema "aws_lakeformation_tag_association" { + cloudformation_type_name = "AWS::LakeFormation::TagAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_alias" { + cloudformation_type_name = "AWS::Lambda::Alias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_code_signing_config" { + cloudformation_type_name = "AWS::Lambda::CodeSigningConfig" +} + +resource_schema "aws_lambda_event_invoke_config" { + cloudformation_type_name = "AWS::Lambda::EventInvokeConfig" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_event_source_mapping" { + cloudformation_type_name = "AWS::Lambda::EventSourceMapping" +} + +resource_schema "aws_lambda_function" { + cloudformation_type_name = "AWS::Lambda::Function" +} + +resource_schema "aws_lambda_layer_version" { + cloudformation_type_name = "AWS::Lambda::LayerVersion" +} + +resource_schema "aws_lambda_layer_version_permission" { + cloudformation_type_name = "AWS::Lambda::LayerVersionPermission" +} + +resource_schema "aws_lambda_permission" { + cloudformation_type_name = "AWS::Lambda::Permission" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_url" { + cloudformation_type_name = "AWS::Lambda::Url" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_version" { + cloudformation_type_name = "AWS::Lambda::Version" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_launchwizard_deployment" { + cloudformation_type_name = "AWS::LaunchWizard::Deployment" +} + +resource_schema "aws_lex_bot" { + cloudformation_type_name = "AWS::Lex::Bot" +} + +resource_schema "aws_lex_bot_alias" { + cloudformation_type_name = "AWS::Lex::BotAlias" +} + +resource_schema "aws_lex_bot_version" { + cloudformation_type_name = "AWS::Lex::BotVersion" +} + +resource_schema "aws_lex_resource_policy" { + cloudformation_type_name = "AWS::Lex::ResourcePolicy" +} + +resource_schema "aws_licensemanager_grant" { + cloudformation_type_name = "AWS::LicenseManager::Grant" +} + +resource_schema "aws_licensemanager_license" { + cloudformation_type_name = "AWS::LicenseManager::License" +} + +resource_schema "aws_lightsail_alarm" { + cloudformation_type_name = "AWS::Lightsail::Alarm" +} + +resource_schema "aws_lightsail_bucket" { + cloudformation_type_name = "AWS::Lightsail::Bucket" +} + +resource_schema "aws_lightsail_certificate" { + cloudformation_type_name = "AWS::Lightsail::Certificate" +} + +resource_schema "aws_lightsail_container" { + cloudformation_type_name = "AWS::Lightsail::Container" +} + +resource_schema "aws_lightsail_database" { + cloudformation_type_name = "AWS::Lightsail::Database" +} + +resource_schema "aws_lightsail_disk" { + cloudformation_type_name = "AWS::Lightsail::Disk" +} + +resource_schema "aws_lightsail_distribution" { + cloudformation_type_name = "AWS::Lightsail::Distribution" +} + +resource_schema "aws_lightsail_instance" { + cloudformation_type_name = "AWS::Lightsail::Instance" +} + +resource_schema "aws_lightsail_load_balancer" { + cloudformation_type_name = "AWS::Lightsail::LoadBalancer" +} + +resource_schema "aws_lightsail_load_balancer_tls_certificate" { + cloudformation_type_name = "AWS::Lightsail::LoadBalancerTlsCertificate" +} + +resource_schema "aws_lightsail_static_ip" { + cloudformation_type_name = "AWS::Lightsail::StaticIp" +} + +resource_schema "aws_location_api_key" { + cloudformation_type_name = "AWS::Location::APIKey" +} + +resource_schema "aws_location_geofence_collection" { + cloudformation_type_name = "AWS::Location::GeofenceCollection" +} + +resource_schema "aws_location_map" { + cloudformation_type_name = "AWS::Location::Map" +} + +resource_schema "aws_location_place_index" { + cloudformation_type_name = "AWS::Location::PlaceIndex" +} + +resource_schema "aws_location_route_calculator" { + cloudformation_type_name = "AWS::Location::RouteCalculator" +} + +resource_schema "aws_location_tracker" { + cloudformation_type_name = "AWS::Location::Tracker" +} + +resource_schema "aws_location_tracker_consumer" { + cloudformation_type_name = "AWS::Location::TrackerConsumer" +} + +resource_schema "aws_logs_account_policy" { + cloudformation_type_name = "AWS::Logs::AccountPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_logs_delivery" { + cloudformation_type_name = "AWS::Logs::Delivery" +} + +resource_schema "aws_logs_delivery_destination" { + cloudformation_type_name = "AWS::Logs::DeliveryDestination" +} + +resource_schema "aws_logs_delivery_source" { + cloudformation_type_name = "AWS::Logs::DeliverySource" +} + +resource_schema "aws_logs_destination" { + cloudformation_type_name = "AWS::Logs::Destination" +} + +resource_schema "aws_logs_log_anomaly_detector" { + cloudformation_type_name = "AWS::Logs::LogAnomalyDetector" +} + +resource_schema "aws_logs_log_group" { + cloudformation_type_name = "AWS::Logs::LogGroup" +} + +resource_schema "aws_logs_log_stream" { + cloudformation_type_name = "AWS::Logs::LogStream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_logs_metric_filter" { + cloudformation_type_name = "AWS::Logs::MetricFilter" +} + +resource_schema "aws_logs_query_definition" { + cloudformation_type_name = "AWS::Logs::QueryDefinition" +} + +resource_schema "aws_logs_resource_policy" { + cloudformation_type_name = "AWS::Logs::ResourcePolicy" +} + +resource_schema "aws_logs_subscription_filter" { + cloudformation_type_name = "AWS::Logs::SubscriptionFilter" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lookoutequipment_inference_scheduler" { + cloudformation_type_name = "AWS::LookoutEquipment::InferenceScheduler" +} + +resource_schema "aws_lookoutmetrics_alert" { + cloudformation_type_name = "AWS::LookoutMetrics::Alert" +} + +resource_schema "aws_lookoutmetrics_anomaly_detector" { + cloudformation_type_name = "AWS::LookoutMetrics::AnomalyDetector" +} + +resource_schema "aws_lookoutvision_project" { + cloudformation_type_name = "AWS::LookoutVision::Project" +} + +resource_schema "aws_m2_application" { + cloudformation_type_name = "AWS::M2::Application" +} + +resource_schema "aws_m2_environment" { + cloudformation_type_name = "AWS::M2::Environment" +} + +resource_schema "aws_msk_batch_scram_secret" { + cloudformation_type_name = "AWS::MSK::BatchScramSecret" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_msk_cluster" { + cloudformation_type_name = "AWS::MSK::Cluster" +} + +resource_schema "aws_msk_cluster_policy" { + cloudformation_type_name = "AWS::MSK::ClusterPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_msk_configuration" { + cloudformation_type_name = "AWS::MSK::Configuration" +} + +resource_schema "aws_msk_replicator" { + cloudformation_type_name = "AWS::MSK::Replicator" +} + +resource_schema "aws_msk_serverless_cluster" { + cloudformation_type_name = "AWS::MSK::ServerlessCluster" +} + +resource_schema "aws_msk_vpc_connection" { + cloudformation_type_name = "AWS::MSK::VpcConnection" +} + +resource_schema "aws_mwaa_environment" { + cloudformation_type_name = "AWS::MWAA::Environment" +} + +resource_schema "aws_macie_allow_list" { + cloudformation_type_name = "AWS::Macie::AllowList" +} + +resource_schema "aws_macie_custom_data_identifier" { + cloudformation_type_name = "AWS::Macie::CustomDataIdentifier" +} + +resource_schema "aws_macie_findings_filter" { + cloudformation_type_name = "AWS::Macie::FindingsFilter" +} + +resource_schema "aws_macie_session" { + cloudformation_type_name = "AWS::Macie::Session" +} + +resource_schema "aws_managedblockchain_accessor" { + cloudformation_type_name = "AWS::ManagedBlockchain::Accessor" +} + +resource_schema "aws_mediaconnect_bridge" { + cloudformation_type_name = "AWS::MediaConnect::Bridge" +} + +resource_schema "aws_mediaconnect_bridge_output" { + cloudformation_type_name = "AWS::MediaConnect::BridgeOutput" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediaconnect_bridge_source" { + cloudformation_type_name = "AWS::MediaConnect::BridgeSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediaconnect_flow" { + cloudformation_type_name = "AWS::MediaConnect::Flow" +} + +resource_schema "aws_mediaconnect_flow_entitlement" { + cloudformation_type_name = "AWS::MediaConnect::FlowEntitlement" +} + +resource_schema "aws_mediaconnect_flow_output" { + cloudformation_type_name = "AWS::MediaConnect::FlowOutput" +} + +resource_schema "aws_mediaconnect_flow_source" { + cloudformation_type_name = "AWS::MediaConnect::FlowSource" +} + +resource_schema "aws_mediaconnect_flow_vpc_interface" { + cloudformation_type_name = "AWS::MediaConnect::FlowVpcInterface" +} + +resource_schema "aws_mediaconnect_gateway" { + cloudformation_type_name = "AWS::MediaConnect::Gateway" +} + +resource_schema "aws_medialive_multiplex" { + cloudformation_type_name = "AWS::MediaLive::Multiplex" +} + +resource_schema "aws_medialive_multiplexprogram" { + cloudformation_type_name = "AWS::MediaLive::Multiplexprogram" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackage_asset" { + cloudformation_type_name = "AWS::MediaPackage::Asset" +} + +resource_schema "aws_mediapackage_channel" { + cloudformation_type_name = "AWS::MediaPackage::Channel" +} + +resource_schema "aws_mediapackage_origin_endpoint" { + cloudformation_type_name = "AWS::MediaPackage::OriginEndpoint" +} + +resource_schema "aws_mediapackage_packaging_configuration" { + cloudformation_type_name = "AWS::MediaPackage::PackagingConfiguration" +} + +resource_schema "aws_mediapackage_packaging_group" { + cloudformation_type_name = "AWS::MediaPackage::PackagingGroup" +} + +resource_schema "aws_mediapackagev2_channel" { + cloudformation_type_name = "AWS::MediaPackageV2::Channel" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackagev2_channel_group" { + cloudformation_type_name = "AWS::MediaPackageV2::ChannelGroup" +} + +resource_schema "aws_mediapackagev2_channel_policy" { + cloudformation_type_name = "AWS::MediaPackageV2::ChannelPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackagev2_origin_endpoint" { + cloudformation_type_name = "AWS::MediaPackageV2::OriginEndpoint" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackagev2_origin_endpoint_policy" { + cloudformation_type_name = "AWS::MediaPackageV2::OriginEndpointPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediatailor_channel" { + cloudformation_type_name = "AWS::MediaTailor::Channel" +} + +resource_schema "aws_mediatailor_channel_policy" { + cloudformation_type_name = "AWS::MediaTailor::ChannelPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediatailor_live_source" { + cloudformation_type_name = "AWS::MediaTailor::LiveSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediatailor_playback_configuration" { + cloudformation_type_name = "AWS::MediaTailor::PlaybackConfiguration" +} + +resource_schema "aws_mediatailor_source_location" { + cloudformation_type_name = "AWS::MediaTailor::SourceLocation" +} + +resource_schema "aws_mediatailor_vod_source" { + cloudformation_type_name = "AWS::MediaTailor::VodSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_memorydb_acl" { + cloudformation_type_name = "AWS::MemoryDB::ACL" +} + +resource_schema "aws_memorydb_cluster" { + cloudformation_type_name = "AWS::MemoryDB::Cluster" +} + +resource_schema "aws_memorydb_parameter_group" { + cloudformation_type_name = "AWS::MemoryDB::ParameterGroup" +} + +resource_schema "aws_memorydb_subnet_group" { + cloudformation_type_name = "AWS::MemoryDB::SubnetGroup" +} + +resource_schema "aws_memorydb_user" { + cloudformation_type_name = "AWS::MemoryDB::User" +} + +resource_schema "aws_neptune_db_cluster" { + cloudformation_type_name = "AWS::Neptune::DBCluster" +} + +resource_schema "aws_neptunegraph_graph" { + cloudformation_type_name = "AWS::NeptuneGraph::Graph" +} + +resource_schema "aws_neptunegraph_private_graph_endpoint" { + cloudformation_type_name = "AWS::NeptuneGraph::PrivateGraphEndpoint" +} + +resource_schema "aws_networkfirewall_firewall" { + cloudformation_type_name = "AWS::NetworkFirewall::Firewall" +} + +resource_schema "aws_networkfirewall_firewall_policy" { + cloudformation_type_name = "AWS::NetworkFirewall::FirewallPolicy" +} + +resource_schema "aws_networkfirewall_logging_configuration" { + cloudformation_type_name = "AWS::NetworkFirewall::LoggingConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkfirewall_rule_group" { + cloudformation_type_name = "AWS::NetworkFirewall::RuleGroup" +} + +resource_schema "aws_networkfirewall_tls_inspection_configuration" { + cloudformation_type_name = "AWS::NetworkFirewall::TLSInspectionConfiguration" +} + +resource_schema "aws_networkmanager_connect_attachment" { + cloudformation_type_name = "AWS::NetworkManager::ConnectAttachment" +} + +resource_schema "aws_networkmanager_connect_peer" { + cloudformation_type_name = "AWS::NetworkManager::ConnectPeer" +} + +resource_schema "aws_networkmanager_core_network" { + cloudformation_type_name = "AWS::NetworkManager::CoreNetwork" +} + +resource_schema "aws_networkmanager_customer_gateway_association" { + cloudformation_type_name = "AWS::NetworkManager::CustomerGatewayAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_device" { + cloudformation_type_name = "AWS::NetworkManager::Device" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_global_network" { + cloudformation_type_name = "AWS::NetworkManager::GlobalNetwork" +} + +resource_schema "aws_networkmanager_link" { + cloudformation_type_name = "AWS::NetworkManager::Link" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_link_association" { + cloudformation_type_name = "AWS::NetworkManager::LinkAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_site" { + cloudformation_type_name = "AWS::NetworkManager::Site" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_site_to_site_vpn_attachment" { + cloudformation_type_name = "AWS::NetworkManager::SiteToSiteVpnAttachment" +} + +resource_schema "aws_networkmanager_transit_gateway_peering" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayPeering" +} + +resource_schema "aws_networkmanager_transit_gateway_registration" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayRegistration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_transit_gateway_route_table_attachment" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayRouteTableAttachment" +} + +resource_schema "aws_networkmanager_vpc_attachment" { + cloudformation_type_name = "AWS::NetworkManager::VpcAttachment" +} + +resource_schema "aws_nimblestudio_launch_profile" { + cloudformation_type_name = "AWS::NimbleStudio::LaunchProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_nimblestudio_streaming_image" { + cloudformation_type_name = "AWS::NimbleStudio::StreamingImage" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_nimblestudio_studio" { + cloudformation_type_name = "AWS::NimbleStudio::Studio" +} + +resource_schema "aws_nimblestudio_studio_component" { + cloudformation_type_name = "AWS::NimbleStudio::StudioComponent" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_osis_pipeline" { + cloudformation_type_name = "AWS::OSIS::Pipeline" +} + +resource_schema "aws_oam_link" { + cloudformation_type_name = "AWS::Oam::Link" +} + +resource_schema "aws_oam_sink" { + cloudformation_type_name = "AWS::Oam::Sink" +} + +resource_schema "aws_omics_annotation_store" { + cloudformation_type_name = "AWS::Omics::AnnotationStore" +} + +resource_schema "aws_omics_reference_store" { + cloudformation_type_name = "AWS::Omics::ReferenceStore" +} + +resource_schema "aws_omics_run_group" { + cloudformation_type_name = "AWS::Omics::RunGroup" +} + +resource_schema "aws_omics_sequence_store" { + cloudformation_type_name = "AWS::Omics::SequenceStore" +} + +resource_schema "aws_omics_variant_store" { + cloudformation_type_name = "AWS::Omics::VariantStore" +} + +resource_schema "aws_omics_workflow" { + cloudformation_type_name = "AWS::Omics::Workflow" +} + +resource_schema "aws_opensearchserverless_access_policy" { + cloudformation_type_name = "AWS::OpenSearchServerless::AccessPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_collection" { + cloudformation_type_name = "AWS::OpenSearchServerless::Collection" +} + +resource_schema "aws_opensearchserverless_lifecycle_policy" { + cloudformation_type_name = "AWS::OpenSearchServerless::LifecyclePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_security_config" { + cloudformation_type_name = "AWS::OpenSearchServerless::SecurityConfig" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_security_policy" { + cloudformation_type_name = "AWS::OpenSearchServerless::SecurityPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_vpc_endpoint" { + cloudformation_type_name = "AWS::OpenSearchServerless::VpcEndpoint" +} + +resource_schema "aws_opensearchservice_domain" { + cloudformation_type_name = "AWS::OpenSearchService::Domain" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opsworkscm_server" { + cloudformation_type_name = "AWS::OpsWorksCM::Server" +} + +resource_schema "aws_organizations_account" { + cloudformation_type_name = "AWS::Organizations::Account" +} + +resource_schema "aws_organizations_organization" { + cloudformation_type_name = "AWS::Organizations::Organization" +} + +resource_schema "aws_organizations_organizational_unit" { + cloudformation_type_name = "AWS::Organizations::OrganizationalUnit" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_organizations_policy" { + cloudformation_type_name = "AWS::Organizations::Policy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_organizations_resource_policy" { + cloudformation_type_name = "AWS::Organizations::ResourcePolicy" +} + +resource_schema "aws_pcaconnectorad_connector" { + cloudformation_type_name = "AWS::PCAConnectorAD::Connector" +} + +resource_schema "aws_pcaconnectorad_directory_registration" { + cloudformation_type_name = "AWS::PCAConnectorAD::DirectoryRegistration" +} + +resource_schema "aws_pcaconnectorad_service_principal_name" { + cloudformation_type_name = "AWS::PCAConnectorAD::ServicePrincipalName" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorad_template" { + cloudformation_type_name = "AWS::PCAConnectorAD::Template" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorad_template_group_access_control_entry" { + cloudformation_type_name = "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_panorama_application_instance" { + cloudformation_type_name = "AWS::Panorama::ApplicationInstance" +} + +resource_schema "aws_panorama_package" { + cloudformation_type_name = "AWS::Panorama::Package" +} + +resource_schema "aws_panorama_package_version" { + cloudformation_type_name = "AWS::Panorama::PackageVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_paymentcryptography_alias" { + cloudformation_type_name = "AWS::PaymentCryptography::Alias" +} + +resource_schema "aws_paymentcryptography_key" { + cloudformation_type_name = "AWS::PaymentCryptography::Key" +} + +resource_schema "aws_personalize_dataset" { + cloudformation_type_name = "AWS::Personalize::Dataset" +} + +resource_schema "aws_personalize_dataset_group" { + cloudformation_type_name = "AWS::Personalize::DatasetGroup" +} + +resource_schema "aws_personalize_schema" { + cloudformation_type_name = "AWS::Personalize::Schema" +} + +resource_schema "aws_personalize_solution" { + cloudformation_type_name = "AWS::Personalize::Solution" +} + +resource_schema "aws_pinpoint_in_app_template" { + cloudformation_type_name = "AWS::Pinpoint::InAppTemplate" +} + +resource_schema "aws_pipes_pipe" { + cloudformation_type_name = "AWS::Pipes::Pipe" +} + +resource_schema "aws_proton_environment_account_connection" { + cloudformation_type_name = "AWS::Proton::EnvironmentAccountConnection" +} + +resource_schema "aws_proton_environment_template" { + cloudformation_type_name = "AWS::Proton::EnvironmentTemplate" +} + +resource_schema "aws_proton_service_template" { + cloudformation_type_name = "AWS::Proton::ServiceTemplate" +} + +resource_schema "aws_qbusiness_application" { + cloudformation_type_name = "AWS::QBusiness::Application" +} + +resource_schema "aws_qbusiness_data_source" { + cloudformation_type_name = "AWS::QBusiness::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_index" { + cloudformation_type_name = "AWS::QBusiness::Index" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_plugin" { + cloudformation_type_name = "AWS::QBusiness::Plugin" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_retriever" { + cloudformation_type_name = "AWS::QBusiness::Retriever" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_web_experience" { + cloudformation_type_name = "AWS::QBusiness::WebExperience" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qldb_stream" { + cloudformation_type_name = "AWS::QLDB::Stream" +} + +resource_schema "aws_quicksight_analysis" { + cloudformation_type_name = "AWS::QuickSight::Analysis" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_dashboard" { + cloudformation_type_name = "AWS::QuickSight::Dashboard" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_data_set" { + cloudformation_type_name = "AWS::QuickSight::DataSet" +} + +resource_schema "aws_quicksight_data_source" { + cloudformation_type_name = "AWS::QuickSight::DataSource" +} + +resource_schema "aws_quicksight_refresh_schedule" { + cloudformation_type_name = "AWS::QuickSight::RefreshSchedule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_template" { + cloudformation_type_name = "AWS::QuickSight::Template" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_theme" { + cloudformation_type_name = "AWS::QuickSight::Theme" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_topic" { + cloudformation_type_name = "AWS::QuickSight::Topic" +} + +resource_schema "aws_quicksight_vpc_connection" { + cloudformation_type_name = "AWS::QuickSight::VPCConnection" +} + +resource_schema "aws_ram_permission" { + cloudformation_type_name = "AWS::RAM::Permission" +} + +resource_schema "aws_rds_custom_db_engine_version" { + cloudformation_type_name = "AWS::RDS::CustomDBEngineVersion" +} + +resource_schema "aws_rds_db_cluster" { + cloudformation_type_name = "AWS::RDS::DBCluster" +} + +resource_schema "aws_rds_db_cluster_parameter_group" { + cloudformation_type_name = "AWS::RDS::DBClusterParameterGroup" +} + +resource_schema "aws_rds_db_instance" { + cloudformation_type_name = "AWS::RDS::DBInstance" +} + +resource_schema "aws_rds_db_parameter_group" { + cloudformation_type_name = "AWS::RDS::DBParameterGroup" +} + +resource_schema "aws_rds_db_proxy" { + cloudformation_type_name = "AWS::RDS::DBProxy" +} + +resource_schema "aws_rds_db_proxy_endpoint" { + cloudformation_type_name = "AWS::RDS::DBProxyEndpoint" +} + +resource_schema "aws_rds_db_proxy_target_group" { + cloudformation_type_name = "AWS::RDS::DBProxyTargetGroup" +} + +resource_schema "aws_rds_db_subnet_group" { + cloudformation_type_name = "AWS::RDS::DBSubnetGroup" +} + +resource_schema "aws_rds_event_subscription" { + cloudformation_type_name = "AWS::RDS::EventSubscription" +} + +resource_schema "aws_rds_global_cluster" { + cloudformation_type_name = "AWS::RDS::GlobalCluster" +} + +resource_schema "aws_rds_integration" { + cloudformation_type_name = "AWS::RDS::Integration" +} + +resource_schema "aws_rds_option_group" { + cloudformation_type_name = "AWS::RDS::OptionGroup" +} + +resource_schema "aws_rum_app_monitor" { + cloudformation_type_name = "AWS::RUM::AppMonitor" +} + +resource_schema "aws_redshift_cluster" { + cloudformation_type_name = "AWS::Redshift::Cluster" +} + +resource_schema "aws_redshift_cluster_parameter_group" { + cloudformation_type_name = "AWS::Redshift::ClusterParameterGroup" +} + +resource_schema "aws_redshift_cluster_subnet_group" { + cloudformation_type_name = "AWS::Redshift::ClusterSubnetGroup" +} + +resource_schema "aws_redshift_endpoint_access" { + cloudformation_type_name = "AWS::Redshift::EndpointAccess" +} + +resource_schema "aws_redshift_endpoint_authorization" { + cloudformation_type_name = "AWS::Redshift::EndpointAuthorization" +} + +resource_schema "aws_redshift_event_subscription" { + cloudformation_type_name = "AWS::Redshift::EventSubscription" +} + +resource_schema "aws_redshift_scheduled_action" { + cloudformation_type_name = "AWS::Redshift::ScheduledAction" +} + +resource_schema "aws_redshiftserverless_namespace" { + cloudformation_type_name = "AWS::RedshiftServerless::Namespace" +} + +resource_schema "aws_redshiftserverless_workgroup" { + cloudformation_type_name = "AWS::RedshiftServerless::Workgroup" +} + +resource_schema "aws_refactorspaces_application" { + cloudformation_type_name = "AWS::RefactorSpaces::Application" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_refactorspaces_environment" { + cloudformation_type_name = "AWS::RefactorSpaces::Environment" +} + +resource_schema "aws_refactorspaces_route" { + cloudformation_type_name = "AWS::RefactorSpaces::Route" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_refactorspaces_service" { + cloudformation_type_name = "AWS::RefactorSpaces::Service" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_rekognition_collection" { + cloudformation_type_name = "AWS::Rekognition::Collection" +} + +resource_schema "aws_rekognition_project" { + cloudformation_type_name = "AWS::Rekognition::Project" +} + +resource_schema "aws_rekognition_stream_processor" { + cloudformation_type_name = "AWS::Rekognition::StreamProcessor" +} + +resource_schema "aws_resiliencehub_app" { + cloudformation_type_name = "AWS::ResilienceHub::App" +} + +resource_schema "aws_resiliencehub_resiliency_policy" { + cloudformation_type_name = "AWS::ResilienceHub::ResiliencyPolicy" +} + +resource_schema "aws_resourceexplorer2_default_view_association" { + cloudformation_type_name = "AWS::ResourceExplorer2::DefaultViewAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_resourceexplorer2_index" { + cloudformation_type_name = "AWS::ResourceExplorer2::Index" +} + +resource_schema "aws_resourceexplorer2_view" { + cloudformation_type_name = "AWS::ResourceExplorer2::View" +} + +resource_schema "aws_resourcegroups_group" { + cloudformation_type_name = "AWS::ResourceGroups::Group" +} + +resource_schema "aws_robomaker_fleet" { + cloudformation_type_name = "AWS::RoboMaker::Fleet" +} + +resource_schema "aws_robomaker_robot" { + cloudformation_type_name = "AWS::RoboMaker::Robot" +} + +resource_schema "aws_robomaker_robot_application" { + cloudformation_type_name = "AWS::RoboMaker::RobotApplication" +} + +resource_schema "aws_robomaker_robot_application_version" { + cloudformation_type_name = "AWS::RoboMaker::RobotApplicationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_robomaker_simulation_application" { + cloudformation_type_name = "AWS::RoboMaker::SimulationApplication" +} + +resource_schema "aws_robomaker_simulation_application_version" { + cloudformation_type_name = "AWS::RoboMaker::SimulationApplicationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_rolesanywhere_crl" { + cloudformation_type_name = "AWS::RolesAnywhere::CRL" +} + +resource_schema "aws_rolesanywhere_profile" { + cloudformation_type_name = "AWS::RolesAnywhere::Profile" +} + +resource_schema "aws_rolesanywhere_trust_anchor" { + cloudformation_type_name = "AWS::RolesAnywhere::TrustAnchor" +} + +resource_schema "aws_route53_cidr_collection" { + cloudformation_type_name = "AWS::Route53::CidrCollection" +} + +resource_schema "aws_route53_dnssec" { + cloudformation_type_name = "AWS::Route53::DNSSEC" +} + +resource_schema "aws_route53_health_check" { + cloudformation_type_name = "AWS::Route53::HealthCheck" +} + +resource_schema "aws_route53_hosted_zone" { + cloudformation_type_name = "AWS::Route53::HostedZone" +} + +resource_schema "aws_route53_key_signing_key" { + cloudformation_type_name = "AWS::Route53::KeySigningKey" +} + +resource_schema "aws_route53profiles_profile" { + cloudformation_type_name = "AWS::Route53Profiles::Profile" +} + +resource_schema "aws_route53profiles_profile_association" { + cloudformation_type_name = "AWS::Route53Profiles::ProfileAssociation" +} + +resource_schema "aws_route53profiles_profile_resource_association" { + cloudformation_type_name = "AWS::Route53Profiles::ProfileResourceAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53recoverycontrol_cluster" { + cloudformation_type_name = "AWS::Route53RecoveryControl::Cluster" +} + +resource_schema "aws_route53recoverycontrol_control_panel" { + cloudformation_type_name = "AWS::Route53RecoveryControl::ControlPanel" +} + +resource_schema "aws_route53recoverycontrol_routing_control" { + cloudformation_type_name = "AWS::Route53RecoveryControl::RoutingControl" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53recoverycontrol_safety_rule" { + cloudformation_type_name = "AWS::Route53RecoveryControl::SafetyRule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53recoveryreadiness_cell" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::Cell" +} + +resource_schema "aws_route53recoveryreadiness_readiness_check" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::ReadinessCheck" +} + +resource_schema "aws_route53recoveryreadiness_recovery_group" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::RecoveryGroup" +} + +resource_schema "aws_route53recoveryreadiness_resource_set" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::ResourceSet" +} + +resource_schema "aws_route53resolver_firewall_domain_list" { + cloudformation_type_name = "AWS::Route53Resolver::FirewallDomainList" +} + +resource_schema "aws_route53resolver_firewall_rule_group" { + cloudformation_type_name = "AWS::Route53Resolver::FirewallRuleGroup" +} + +resource_schema "aws_route53resolver_firewall_rule_group_association" { + cloudformation_type_name = "AWS::Route53Resolver::FirewallRuleGroupAssociation" +} + +resource_schema "aws_route53resolver_outpost_resolver" { + cloudformation_type_name = "AWS::Route53Resolver::OutpostResolver" +} + +resource_schema "aws_route53resolver_resolver_config" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverConfig" +} + +resource_schema "aws_route53resolver_resolver_dnssec_config" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverDNSSECConfig" +} + +resource_schema "aws_route53resolver_resolver_query_logging_config" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverQueryLoggingConfig" +} + +resource_schema "aws_route53resolver_resolver_query_logging_config_association" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation" +} + +resource_schema "aws_route53resolver_resolver_rule" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverRule" +} + +resource_schema "aws_route53resolver_resolver_rule_association" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverRuleAssociation" +} + +resource_schema "aws_s3_access_grant" { + cloudformation_type_name = "AWS::S3::AccessGrant" +} + +resource_schema "aws_s3_access_grants_instance" { + cloudformation_type_name = "AWS::S3::AccessGrantsInstance" +} + +resource_schema "aws_s3_access_grants_location" { + cloudformation_type_name = "AWS::S3::AccessGrantsLocation" +} + +resource_schema "aws_s3_access_point" { + cloudformation_type_name = "AWS::S3::AccessPoint" +} + +resource_schema "aws_s3_bucket" { + cloudformation_type_name = "AWS::S3::Bucket" +} + +resource_schema "aws_s3_bucket_policy" { + cloudformation_type_name = "AWS::S3::BucketPolicy" +} + +resource_schema "aws_s3_multi_region_access_point" { + cloudformation_type_name = "AWS::S3::MultiRegionAccessPoint" +} + +resource_schema "aws_s3_multi_region_access_point_policy" { + cloudformation_type_name = "AWS::S3::MultiRegionAccessPointPolicy" +} + +resource_schema "aws_s3_storage_lens" { + cloudformation_type_name = "AWS::S3::StorageLens" +} + +resource_schema "aws_s3_storage_lens_group" { + cloudformation_type_name = "AWS::S3::StorageLensGroup" +} + +resource_schema "aws_s3express_bucket_policy" { + cloudformation_type_name = "AWS::S3Express::BucketPolicy" +} + +resource_schema "aws_s3express_directory_bucket" { + cloudformation_type_name = "AWS::S3Express::DirectoryBucket" +} + +resource_schema "aws_s3objectlambda_access_point" { + cloudformation_type_name = "AWS::S3ObjectLambda::AccessPoint" +} + +resource_schema "aws_s3objectlambda_access_point_policy" { + cloudformation_type_name = "AWS::S3ObjectLambda::AccessPointPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_access_point" { + cloudformation_type_name = "AWS::S3Outposts::AccessPoint" +} + +resource_schema "aws_s3outposts_bucket" { + cloudformation_type_name = "AWS::S3Outposts::Bucket" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_bucket_policy" { + cloudformation_type_name = "AWS::S3Outposts::BucketPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_endpoint" { + cloudformation_type_name = "AWS::S3Outposts::Endpoint" +} + +resource_schema "aws_ses_configuration_set" { + cloudformation_type_name = "AWS::SES::ConfigurationSet" +} + +resource_schema "aws_ses_configuration_set_event_destination" { + cloudformation_type_name = "AWS::SES::ConfigurationSetEventDestination" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ses_contact_list" { + cloudformation_type_name = "AWS::SES::ContactList" +} + +resource_schema "aws_ses_dedicated_ip_pool" { + cloudformation_type_name = "AWS::SES::DedicatedIpPool" +} + +resource_schema "aws_ses_email_identity" { + cloudformation_type_name = "AWS::SES::EmailIdentity" +} + +resource_schema "aws_ses_mail_manager_addon_instance" { + cloudformation_type_name = "AWS::SES::MailManagerAddonInstance" +} + +resource_schema "aws_ses_mail_manager_addon_subscription" { + cloudformation_type_name = "AWS::SES::MailManagerAddonSubscription" +} + +resource_schema "aws_ses_mail_manager_archive" { + cloudformation_type_name = "AWS::SES::MailManagerArchive" +} + +resource_schema "aws_ses_mail_manager_ingress_point" { + cloudformation_type_name = "AWS::SES::MailManagerIngressPoint" +} + +resource_schema "aws_ses_mail_manager_relay" { + cloudformation_type_name = "AWS::SES::MailManagerRelay" +} + +resource_schema "aws_ses_mail_manager_rule_set" { + cloudformation_type_name = "AWS::SES::MailManagerRuleSet" +} + +resource_schema "aws_ses_mail_manager_traffic_policy" { + cloudformation_type_name = "AWS::SES::MailManagerTrafficPolicy" +} + +resource_schema "aws_ses_template" { + cloudformation_type_name = "AWS::SES::Template" +} + +resource_schema "aws_ses_vdm_attributes" { + cloudformation_type_name = "AWS::SES::VdmAttributes" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sns_topic" { + cloudformation_type_name = "AWS::SNS::Topic" +} + +resource_schema "aws_sns_topic_inline_policy" { + cloudformation_type_name = "AWS::SNS::TopicInlinePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sqs_queue" { + cloudformation_type_name = "AWS::SQS::Queue" +} + +resource_schema "aws_sqs_queue_inline_policy" { + cloudformation_type_name = "AWS::SQS::QueueInlinePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ssm_association" { + cloudformation_type_name = "AWS::SSM::Association" +} + +resource_schema "aws_ssm_document" { + cloudformation_type_name = "AWS::SSM::Document" +} + +resource_schema "aws_ssm_parameter" { + cloudformation_type_name = "AWS::SSM::Parameter" +} + +resource_schema "aws_ssm_patch_baseline" { + cloudformation_type_name = "AWS::SSM::PatchBaseline" +} + +resource_schema "aws_ssm_resource_data_sync" { + cloudformation_type_name = "AWS::SSM::ResourceDataSync" +} + +resource_schema "aws_ssm_resource_policy" { + cloudformation_type_name = "AWS::SSM::ResourcePolicy" +} + +resource_schema "aws_ssmcontacts_contact" { + cloudformation_type_name = "AWS::SSMContacts::Contact" +} + +resource_schema "aws_ssmcontacts_contact_channel" { + cloudformation_type_name = "AWS::SSMContacts::ContactChannel" +} + +resource_schema "aws_ssmcontacts_plan" { + cloudformation_type_name = "AWS::SSMContacts::Plan" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ssmcontacts_rotation" { + cloudformation_type_name = "AWS::SSMContacts::Rotation" +} + +resource_schema "aws_ssmincidents_replication_set" { + cloudformation_type_name = "AWS::SSMIncidents::ReplicationSet" +} + +resource_schema "aws_ssmincidents_response_plan" { + cloudformation_type_name = "AWS::SSMIncidents::ResponsePlan" +} + +resource_schema "aws_sso_application" { + cloudformation_type_name = "AWS::SSO::Application" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sso_application_assignment" { + cloudformation_type_name = "AWS::SSO::ApplicationAssignment" +} + +resource_schema "aws_sso_assignment" { + cloudformation_type_name = "AWS::SSO::Assignment" +} + +resource_schema "aws_sso_instance" { + cloudformation_type_name = "AWS::SSO::Instance" +} + +resource_schema "aws_sso_instance_access_control_attribute_configuration" { + cloudformation_type_name = "AWS::SSO::InstanceAccessControlAttributeConfiguration" +} + +resource_schema "aws_sso_permission_set" { + cloudformation_type_name = "AWS::SSO::PermissionSet" +} + +resource_schema "aws_sagemaker_app" { + cloudformation_type_name = "AWS::SageMaker::App" +} + +resource_schema "aws_sagemaker_app_image_config" { + cloudformation_type_name = "AWS::SageMaker::AppImageConfig" +} + +resource_schema "aws_sagemaker_data_quality_job_definition" { + cloudformation_type_name = "AWS::SageMaker::DataQualityJobDefinition" +} + +resource_schema "aws_sagemaker_device" { + cloudformation_type_name = "AWS::SageMaker::Device" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_device_fleet" { + cloudformation_type_name = "AWS::SageMaker::DeviceFleet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_domain" { + cloudformation_type_name = "AWS::SageMaker::Domain" +} + +resource_schema "aws_sagemaker_feature_group" { + cloudformation_type_name = "AWS::SageMaker::FeatureGroup" +} + +resource_schema "aws_sagemaker_image" { + cloudformation_type_name = "AWS::SageMaker::Image" +} + +resource_schema "aws_sagemaker_image_version" { + cloudformation_type_name = "AWS::SageMaker::ImageVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_inference_component" { + cloudformation_type_name = "AWS::SageMaker::InferenceComponent" +} + +resource_schema "aws_sagemaker_inference_experiment" { + cloudformation_type_name = "AWS::SageMaker::InferenceExperiment" +} + +resource_schema "aws_sagemaker_mlflow_tracking_server" { + cloudformation_type_name = "AWS::SageMaker::MlflowTrackingServer" +} + +resource_schema "aws_sagemaker_model_bias_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelBiasJobDefinition" +} + +resource_schema "aws_sagemaker_model_card" { + cloudformation_type_name = "AWS::SageMaker::ModelCard" +} + +resource_schema "aws_sagemaker_model_explainability_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelExplainabilityJobDefinition" +} + +resource_schema "aws_sagemaker_model_package" { + cloudformation_type_name = "AWS::SageMaker::ModelPackage" +} + +resource_schema "aws_sagemaker_model_package_group" { + cloudformation_type_name = "AWS::SageMaker::ModelPackageGroup" +} + +resource_schema "aws_sagemaker_model_quality_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelQualityJobDefinition" +} + +resource_schema "aws_sagemaker_monitoring_schedule" { + cloudformation_type_name = "AWS::SageMaker::MonitoringSchedule" +} + +resource_schema "aws_sagemaker_pipeline" { + cloudformation_type_name = "AWS::SageMaker::Pipeline" +} + +resource_schema "aws_sagemaker_project" { + cloudformation_type_name = "AWS::SageMaker::Project" +} + +resource_schema "aws_sagemaker_space" { + cloudformation_type_name = "AWS::SageMaker::Space" +} + +resource_schema "aws_sagemaker_studio_lifecycle_config" { + cloudformation_type_name = "AWS::SageMaker::StudioLifecycleConfig" +} + +resource_schema "aws_sagemaker_user_profile" { + cloudformation_type_name = "AWS::SageMaker::UserProfile" +} + +resource_schema "aws_scheduler_schedule" { + cloudformation_type_name = "AWS::Scheduler::Schedule" +} + +resource_schema "aws_scheduler_schedule_group" { + cloudformation_type_name = "AWS::Scheduler::ScheduleGroup" +} + +resource_schema "aws_secretsmanager_resource_policy" { + cloudformation_type_name = "AWS::SecretsManager::ResourcePolicy" +} + +resource_schema "aws_secretsmanager_secret" { + cloudformation_type_name = "AWS::SecretsManager::Secret" +} + +resource_schema "aws_securityhub_automation_rule" { + cloudformation_type_name = "AWS::SecurityHub::AutomationRule" +} + +resource_schema "aws_securityhub_configuration_policy" { + cloudformation_type_name = "AWS::SecurityHub::ConfigurationPolicy" +} + +resource_schema "aws_securityhub_delegated_admin" { + cloudformation_type_name = "AWS::SecurityHub::DelegatedAdmin" +} + +resource_schema "aws_securityhub_finding_aggregator" { + cloudformation_type_name = "AWS::SecurityHub::FindingAggregator" +} + +resource_schema "aws_securityhub_hub" { + cloudformation_type_name = "AWS::SecurityHub::Hub" +} + +resource_schema "aws_securityhub_insight" { + cloudformation_type_name = "AWS::SecurityHub::Insight" +} + +resource_schema "aws_securityhub_organization_configuration" { + cloudformation_type_name = "AWS::SecurityHub::OrganizationConfiguration" +} + +resource_schema "aws_securityhub_policy_association" { + cloudformation_type_name = "AWS::SecurityHub::PolicyAssociation" +} + +resource_schema "aws_securityhub_product_subscription" { + cloudformation_type_name = "AWS::SecurityHub::ProductSubscription" +} + +resource_schema "aws_securityhub_security_control" { + cloudformation_type_name = "AWS::SecurityHub::SecurityControl" +} + +resource_schema "aws_securityhub_standard" { + cloudformation_type_name = "AWS::SecurityHub::Standard" +} + +resource_schema "aws_securitylake_aws_log_source" { + cloudformation_type_name = "AWS::SecurityLake::AwsLogSource" +} + +resource_schema "aws_securitylake_data_lake" { + cloudformation_type_name = "AWS::SecurityLake::DataLake" +} + +resource_schema "aws_securitylake_subscriber" { + cloudformation_type_name = "AWS::SecurityLake::Subscriber" +} + +resource_schema "aws_securitylake_subscriber_notification" { + cloudformation_type_name = "AWS::SecurityLake::SubscriberNotification" +} + +resource_schema "aws_servicecatalog_cloudformation_provisioned_product" { + cloudformation_type_name = "AWS::ServiceCatalog::CloudFormationProvisionedProduct" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_servicecatalog_service_action" { + cloudformation_type_name = "AWS::ServiceCatalog::ServiceAction" +} + +resource_schema "aws_servicecatalog_service_action_association" { + cloudformation_type_name = "AWS::ServiceCatalog::ServiceActionAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_servicecatalogappregistry_application" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::Application" +} + +resource_schema "aws_servicecatalogappregistry_attribute_group" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::AttributeGroup" +} + +resource_schema "aws_servicecatalogappregistry_attribute_group_association" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_servicecatalogappregistry_resource_association" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::ResourceAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_shield_drt_access" { + cloudformation_type_name = "AWS::Shield::DRTAccess" +} + +resource_schema "aws_shield_proactive_engagement" { + cloudformation_type_name = "AWS::Shield::ProactiveEngagement" +} + +resource_schema "aws_shield_protection" { + cloudformation_type_name = "AWS::Shield::Protection" +} + +resource_schema "aws_shield_protection_group" { + cloudformation_type_name = "AWS::Shield::ProtectionGroup" +} + +resource_schema "aws_signer_profile_permission" { + cloudformation_type_name = "AWS::Signer::ProfilePermission" +} + +resource_schema "aws_signer_signing_profile" { + cloudformation_type_name = "AWS::Signer::SigningProfile" +} + +resource_schema "aws_simspaceweaver_simulation" { + cloudformation_type_name = "AWS::SimSpaceWeaver::Simulation" +} + +resource_schema "aws_stepfunctions_activity" { + cloudformation_type_name = "AWS::StepFunctions::Activity" +} + +resource_schema "aws_stepfunctions_state_machine" { + cloudformation_type_name = "AWS::StepFunctions::StateMachine" +} + +resource_schema "aws_stepfunctions_state_machine_alias" { + cloudformation_type_name = "AWS::StepFunctions::StateMachineAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_stepfunctions_state_machine_version" { + cloudformation_type_name = "AWS::StepFunctions::StateMachineVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_supportapp_account_alias" { + cloudformation_type_name = "AWS::SupportApp::AccountAlias" +} + +resource_schema "aws_supportapp_slack_channel_configuration" { + cloudformation_type_name = "AWS::SupportApp::SlackChannelConfiguration" +} + +resource_schema "aws_supportapp_slack_workspace_configuration" { + cloudformation_type_name = "AWS::SupportApp::SlackWorkspaceConfiguration" +} + +resource_schema "aws_synthetics_canary" { + cloudformation_type_name = "AWS::Synthetics::Canary" +} + +resource_schema "aws_synthetics_group" { + cloudformation_type_name = "AWS::Synthetics::Group" +} + +resource_schema "aws_systemsmanagersap_application" { + cloudformation_type_name = "AWS::SystemsManagerSAP::Application" +} + +resource_schema "aws_timestream_database" { + cloudformation_type_name = "AWS::Timestream::Database" +} + +resource_schema "aws_timestream_influx_db_instance" { + cloudformation_type_name = "AWS::Timestream::InfluxDBInstance" +} + +resource_schema "aws_timestream_scheduled_query" { + cloudformation_type_name = "AWS::Timestream::ScheduledQuery" +} + +resource_schema "aws_timestream_table" { + cloudformation_type_name = "AWS::Timestream::Table" +} + +resource_schema "aws_transfer_agreement" { + cloudformation_type_name = "AWS::Transfer::Agreement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_transfer_certificate" { + cloudformation_type_name = "AWS::Transfer::Certificate" +} + +resource_schema "aws_transfer_connector" { + cloudformation_type_name = "AWS::Transfer::Connector" +} + +resource_schema "aws_transfer_profile" { + cloudformation_type_name = "AWS::Transfer::Profile" +} + +resource_schema "aws_transfer_workflow" { + cloudformation_type_name = "AWS::Transfer::Workflow" +} + +resource_schema "aws_verifiedpermissions_identity_source" { + cloudformation_type_name = "AWS::VerifiedPermissions::IdentitySource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_verifiedpermissions_policy" { + cloudformation_type_name = "AWS::VerifiedPermissions::Policy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_verifiedpermissions_policy_store" { + cloudformation_type_name = "AWS::VerifiedPermissions::PolicyStore" +} + +resource_schema "aws_verifiedpermissions_policy_template" { + cloudformation_type_name = "AWS::VerifiedPermissions::PolicyTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_voiceid_domain" { + cloudformation_type_name = "AWS::VoiceID::Domain" +} + +resource_schema "aws_vpclattice_access_log_subscription" { + cloudformation_type_name = "AWS::VpcLattice::AccessLogSubscription" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_auth_policy" { + cloudformation_type_name = "AWS::VpcLattice::AuthPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_listener" { + cloudformation_type_name = "AWS::VpcLattice::Listener" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_resource_policy" { + cloudformation_type_name = "AWS::VpcLattice::ResourcePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_rule" { + cloudformation_type_name = "AWS::VpcLattice::Rule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_service" { + cloudformation_type_name = "AWS::VpcLattice::Service" +} + +resource_schema "aws_vpclattice_service_network" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetwork" +} + +resource_schema "aws_vpclattice_service_network_service_association" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetworkServiceAssociation" +} + +resource_schema "aws_vpclattice_service_network_vpc_association" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetworkVpcAssociation" +} + +resource_schema "aws_vpclattice_target_group" { + cloudformation_type_name = "AWS::VpcLattice::TargetGroup" +} + +resource_schema "aws_wafv2_ip_set" { + cloudformation_type_name = "AWS::WAFv2::IPSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_logging_configuration" { + cloudformation_type_name = "AWS::WAFv2::LoggingConfiguration" +} + +resource_schema "aws_wafv2_regex_pattern_set" { + cloudformation_type_name = "AWS::WAFv2::RegexPatternSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_rule_group" { + cloudformation_type_name = "AWS::WAFv2::RuleGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_web_acl" { + cloudformation_type_name = "AWS::WAFv2::WebACL" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_web_acl_association" { + cloudformation_type_name = "AWS::WAFv2::WebACLAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_assistant" { + cloudformation_type_name = "AWS::Wisdom::Assistant" +} + +resource_schema "aws_wisdom_assistant_association" { + cloudformation_type_name = "AWS::Wisdom::AssistantAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_knowledge_base" { + cloudformation_type_name = "AWS::Wisdom::KnowledgeBase" +} + +resource_schema "aws_workspaces_connection_alias" { + cloudformation_type_name = "AWS::WorkSpaces::ConnectionAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_workspaces_workspaces_pool" { + cloudformation_type_name = "AWS::WorkSpaces::WorkspacesPool" +} + +resource_schema "aws_workspacesthinclient_environment" { + cloudformation_type_name = "AWS::WorkSpacesThinClient::Environment" +} + +resource_schema "aws_workspacesweb_browser_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::BrowserSettings" +} + +resource_schema "aws_workspacesweb_identity_provider" { + cloudformation_type_name = "AWS::WorkSpacesWeb::IdentityProvider" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_workspacesweb_ip_access_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::IpAccessSettings" +} + +resource_schema "aws_workspacesweb_network_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::NetworkSettings" +} + +resource_schema "aws_workspacesweb_portal" { + cloudformation_type_name = "AWS::WorkSpacesWeb::Portal" +} + +resource_schema "aws_workspacesweb_trust_store" { + cloudformation_type_name = "AWS::WorkSpacesWeb::TrustStore" +} + +resource_schema "aws_workspacesweb_user_access_logging_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::UserAccessLoggingSettings" +} + +resource_schema "aws_workspacesweb_user_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::UserSettings" +} + +resource_schema "aws_xray_group" { + cloudformation_type_name = "AWS::XRay::Group" +} + +resource_schema "aws_xray_resource_policy" { + cloudformation_type_name = "AWS::XRay::ResourcePolicy" +} + +resource_schema "aws_xray_sampling_rule" { + cloudformation_type_name = "AWS::XRay::SamplingRule" +} diff --git a/internal/provider/plural_data_sources.go b/internal/provider/plural_data_sources.go index 7ec5c3fa3..613583541 100644 --- a/internal/provider/plural_data_sources.go +++ b/internal/provider/plural_data_sources.go @@ -5,6 +5,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_acmpca_certificate_authorities -cftype AWS::ACMPCA::CertificateAuthority -package acmpca ../aws/acmpca/certificate_authority_plural_data_source_gen.go ../aws/acmpca/certificate_authority_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_aps_scrapers -cftype AWS::APS::Scraper -package aps ../aws/aps/scraper_plural_data_source_gen.go ../aws/aps/scraper_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_aps_workspaces -cftype AWS::APS::Workspace -package aps ../aws/aps/workspace_plural_data_source_gen.go ../aws/aps/workspace_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_arczonalshift_autoshift_observer_notification_statuses -cftype AWS::ARCZonalShift::AutoshiftObserverNotificationStatus -package arczonalshift ../aws/arczonalshift/autoshift_observer_notification_status_plural_data_source_gen.go ../aws/arczonalshift/autoshift_observer_notification_status_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_arczonalshift_zonal_autoshift_configurations -cftype AWS::ARCZonalShift::ZonalAutoshiftConfiguration -package arczonalshift ../aws/arczonalshift/zonal_autoshift_configuration_plural_data_source_gen.go ../aws/arczonalshift/zonal_autoshift_configuration_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_accessanalyzer_analyzers -cftype AWS::AccessAnalyzer::Analyzer -package accessanalyzer ../aws/accessanalyzer/analyzer_plural_data_source_gen.go ../aws/accessanalyzer/analyzer_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_amplify_apps -cftype AWS::Amplify::App -package amplify ../aws/amplify/app_plural_data_source_gen.go ../aws/amplify/app_plural_data_source_gen_test.go @@ -710,6 +711,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_sagemaker_pipelines -cftype AWS::SageMaker::Pipeline -package sagemaker ../aws/sagemaker/pipeline_plural_data_source_gen.go ../aws/sagemaker/pipeline_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_sagemaker_projects -cftype AWS::SageMaker::Project -package sagemaker ../aws/sagemaker/project_plural_data_source_gen.go ../aws/sagemaker/project_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_sagemaker_spaces -cftype AWS::SageMaker::Space -package sagemaker ../aws/sagemaker/space_plural_data_source_gen.go ../aws/sagemaker/space_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_sagemaker_studio_lifecycle_configs -cftype AWS::SageMaker::StudioLifecycleConfig -package sagemaker ../aws/sagemaker/studio_lifecycle_config_plural_data_source_gen.go ../aws/sagemaker/studio_lifecycle_config_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_sagemaker_user_profiles -cftype AWS::SageMaker::UserProfile -package sagemaker ../aws/sagemaker/user_profile_plural_data_source_gen.go ../aws/sagemaker/user_profile_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_scheduler_schedule_groups -cftype AWS::Scheduler::ScheduleGroup -package scheduler ../aws/scheduler/schedule_group_plural_data_source_gen.go ../aws/scheduler/schedule_group_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_secretsmanager_resource_policies -cftype AWS::SecretsManager::ResourcePolicy -package secretsmanager ../aws/secretsmanager/resource_policy_plural_data_source_gen.go ../aws/secretsmanager/resource_policy_plural_data_source_gen_test.go diff --git a/internal/provider/resources.go b/internal/provider/resources.go index 173d6f96c..76c11ab05 100644 --- a/internal/provider/resources.go +++ b/internal/provider/resources.go @@ -9,6 +9,7 @@ //go:generate go run generators/resource/main.go -resource awscc_aps_rule_groups_namespace -cfschema ../service/cloudformation/schemas/AWS_APS_RuleGroupsNamespace.json -package aps -- ../aws/aps/rule_groups_namespace_resource_gen.go ../aws/aps/rule_groups_namespace_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_aps_scraper -cfschema ../service/cloudformation/schemas/AWS_APS_Scraper.json -package aps -- ../aws/aps/scraper_resource_gen.go ../aws/aps/scraper_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_aps_workspace -cfschema ../service/cloudformation/schemas/AWS_APS_Workspace.json -package aps -- ../aws/aps/workspace_resource_gen.go ../aws/aps/workspace_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_arczonalshift_autoshift_observer_notification_status -cfschema ../service/cloudformation/schemas/AWS_ARCZonalShift_AutoshiftObserverNotificationStatus.json -package arczonalshift -- ../aws/arczonalshift/autoshift_observer_notification_status_resource_gen.go ../aws/arczonalshift/autoshift_observer_notification_status_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_arczonalshift_zonal_autoshift_configuration -cfschema ../service/cloudformation/schemas/AWS_ARCZonalShift_ZonalAutoshiftConfiguration.json -package arczonalshift -- ../aws/arczonalshift/zonal_autoshift_configuration_resource_gen.go ../aws/arczonalshift/zonal_autoshift_configuration_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_accessanalyzer_analyzer -cfschema ../service/cloudformation/schemas/AWS_AccessAnalyzer_Analyzer.json -package accessanalyzer -- ../aws/accessanalyzer/analyzer_resource_gen.go ../aws/accessanalyzer/analyzer_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_amplify_app -cfschema ../service/cloudformation/schemas/AWS_Amplify_App.json -package amplify -- ../aws/amplify/app_resource_gen.go ../aws/amplify/app_resource_gen_test.go @@ -131,6 +132,7 @@ //go:generate go run generators/resource/main.go -resource awscc_cleanrooms_collaboration -cfschema ../service/cloudformation/schemas/AWS_CleanRooms_Collaboration.json -package cleanrooms -- ../aws/cleanrooms/collaboration_resource_gen.go ../aws/cleanrooms/collaboration_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_cleanrooms_configured_table -cfschema ../service/cloudformation/schemas/AWS_CleanRooms_ConfiguredTable.json -package cleanrooms -- ../aws/cleanrooms/configured_table_resource_gen.go ../aws/cleanrooms/configured_table_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_cleanrooms_configured_table_association -cfschema ../service/cloudformation/schemas/AWS_CleanRooms_ConfiguredTableAssociation.json -package cleanrooms -- ../aws/cleanrooms/configured_table_association_resource_gen.go ../aws/cleanrooms/configured_table_association_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_cleanrooms_id_mapping_table -cfschema ../service/cloudformation/schemas/AWS_CleanRooms_IdMappingTable.json -package cleanrooms -- ../aws/cleanrooms/id_mapping_table_resource_gen.go ../aws/cleanrooms/id_mapping_table_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_cleanrooms_membership -cfschema ../service/cloudformation/schemas/AWS_CleanRooms_Membership.json -package cleanrooms -- ../aws/cleanrooms/membership_resource_gen.go ../aws/cleanrooms/membership_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_cleanrooms_privacy_budget_template -cfschema ../service/cloudformation/schemas/AWS_CleanRooms_PrivacyBudgetTemplate.json -package cleanrooms -- ../aws/cleanrooms/privacy_budget_template_resource_gen.go ../aws/cleanrooms/privacy_budget_template_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_cleanroomsml_training_dataset -cfschema ../service/cloudformation/schemas/AWS_CleanRoomsML_TrainingDataset.json -package cleanroomsml -- ../aws/cleanroomsml/training_dataset_resource_gen.go ../aws/cleanroomsml/training_dataset_resource_gen_test.go @@ -921,6 +923,7 @@ //go:generate go run generators/resource/main.go -resource awscc_sagemaker_pipeline -cfschema ../service/cloudformation/schemas/AWS_SageMaker_Pipeline.json -package sagemaker -- ../aws/sagemaker/pipeline_resource_gen.go ../aws/sagemaker/pipeline_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_sagemaker_project -cfschema ../service/cloudformation/schemas/AWS_SageMaker_Project.json -package sagemaker -- ../aws/sagemaker/project_resource_gen.go ../aws/sagemaker/project_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_sagemaker_space -cfschema ../service/cloudformation/schemas/AWS_SageMaker_Space.json -package sagemaker -- ../aws/sagemaker/space_resource_gen.go ../aws/sagemaker/space_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_sagemaker_studio_lifecycle_config -cfschema ../service/cloudformation/schemas/AWS_SageMaker_StudioLifecycleConfig.json -package sagemaker -- ../aws/sagemaker/studio_lifecycle_config_resource_gen.go ../aws/sagemaker/studio_lifecycle_config_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_sagemaker_user_profile -cfschema ../service/cloudformation/schemas/AWS_SageMaker_UserProfile.json -package sagemaker -- ../aws/sagemaker/user_profile_resource_gen.go ../aws/sagemaker/user_profile_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_scheduler_schedule_group -cfschema ../service/cloudformation/schemas/AWS_Scheduler_ScheduleGroup.json -package scheduler -- ../aws/scheduler/schedule_group_resource_gen.go ../aws/scheduler/schedule_group_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_secretsmanager_resource_policy -cfschema ../service/cloudformation/schemas/AWS_SecretsManager_ResourcePolicy.json -package secretsmanager -- ../aws/secretsmanager/resource_policy_resource_gen.go ../aws/secretsmanager/resource_policy_resource_gen_test.go diff --git a/internal/provider/singular_data_sources.go b/internal/provider/singular_data_sources.go index ecdbd935d..690fd2da3 100644 --- a/internal/provider/singular_data_sources.go +++ b/internal/provider/singular_data_sources.go @@ -9,6 +9,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_aps_rule_groups_namespace -cfschema ../service/cloudformation/schemas/AWS_APS_RuleGroupsNamespace.json -package aps ../aws/aps/rule_groups_namespace_singular_data_source_gen.go ../aws/aps/rule_groups_namespace_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_aps_scraper -cfschema ../service/cloudformation/schemas/AWS_APS_Scraper.json -package aps ../aws/aps/scraper_singular_data_source_gen.go ../aws/aps/scraper_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_aps_workspace -cfschema ../service/cloudformation/schemas/AWS_APS_Workspace.json -package aps ../aws/aps/workspace_singular_data_source_gen.go ../aws/aps/workspace_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_arczonalshift_autoshift_observer_notification_status -cfschema ../service/cloudformation/schemas/AWS_ARCZonalShift_AutoshiftObserverNotificationStatus.json -package arczonalshift ../aws/arczonalshift/autoshift_observer_notification_status_singular_data_source_gen.go ../aws/arczonalshift/autoshift_observer_notification_status_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_arczonalshift_zonal_autoshift_configuration -cfschema ../service/cloudformation/schemas/AWS_ARCZonalShift_ZonalAutoshiftConfiguration.json -package arczonalshift ../aws/arczonalshift/zonal_autoshift_configuration_singular_data_source_gen.go ../aws/arczonalshift/zonal_autoshift_configuration_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_accessanalyzer_analyzer -cfschema ../service/cloudformation/schemas/AWS_AccessAnalyzer_Analyzer.json -package accessanalyzer ../aws/accessanalyzer/analyzer_singular_data_source_gen.go ../aws/accessanalyzer/analyzer_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_amplify_app -cfschema ../service/cloudformation/schemas/AWS_Amplify_App.json -package amplify ../aws/amplify/app_singular_data_source_gen.go ../aws/amplify/app_singular_data_source_gen_test.go @@ -131,6 +132,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_cleanrooms_collaboration -cfschema ../service/cloudformation/schemas/AWS_CleanRooms_Collaboration.json -package cleanrooms ../aws/cleanrooms/collaboration_singular_data_source_gen.go ../aws/cleanrooms/collaboration_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_cleanrooms_configured_table -cfschema ../service/cloudformation/schemas/AWS_CleanRooms_ConfiguredTable.json -package cleanrooms ../aws/cleanrooms/configured_table_singular_data_source_gen.go ../aws/cleanrooms/configured_table_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_cleanrooms_configured_table_association -cfschema ../service/cloudformation/schemas/AWS_CleanRooms_ConfiguredTableAssociation.json -package cleanrooms ../aws/cleanrooms/configured_table_association_singular_data_source_gen.go ../aws/cleanrooms/configured_table_association_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_cleanrooms_id_mapping_table -cfschema ../service/cloudformation/schemas/AWS_CleanRooms_IdMappingTable.json -package cleanrooms ../aws/cleanrooms/id_mapping_table_singular_data_source_gen.go ../aws/cleanrooms/id_mapping_table_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_cleanrooms_membership -cfschema ../service/cloudformation/schemas/AWS_CleanRooms_Membership.json -package cleanrooms ../aws/cleanrooms/membership_singular_data_source_gen.go ../aws/cleanrooms/membership_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_cleanrooms_privacy_budget_template -cfschema ../service/cloudformation/schemas/AWS_CleanRooms_PrivacyBudgetTemplate.json -package cleanrooms ../aws/cleanrooms/privacy_budget_template_singular_data_source_gen.go ../aws/cleanrooms/privacy_budget_template_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_cleanroomsml_training_dataset -cfschema ../service/cloudformation/schemas/AWS_CleanRoomsML_TrainingDataset.json -package cleanroomsml ../aws/cleanroomsml/training_dataset_singular_data_source_gen.go ../aws/cleanroomsml/training_dataset_singular_data_source_gen_test.go @@ -921,6 +923,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_sagemaker_pipeline -cfschema ../service/cloudformation/schemas/AWS_SageMaker_Pipeline.json -package sagemaker ../aws/sagemaker/pipeline_singular_data_source_gen.go ../aws/sagemaker/pipeline_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_sagemaker_project -cfschema ../service/cloudformation/schemas/AWS_SageMaker_Project.json -package sagemaker ../aws/sagemaker/project_singular_data_source_gen.go ../aws/sagemaker/project_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_sagemaker_space -cfschema ../service/cloudformation/schemas/AWS_SageMaker_Space.json -package sagemaker ../aws/sagemaker/space_singular_data_source_gen.go ../aws/sagemaker/space_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_sagemaker_studio_lifecycle_config -cfschema ../service/cloudformation/schemas/AWS_SageMaker_StudioLifecycleConfig.json -package sagemaker ../aws/sagemaker/studio_lifecycle_config_singular_data_source_gen.go ../aws/sagemaker/studio_lifecycle_config_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_sagemaker_user_profile -cfschema ../service/cloudformation/schemas/AWS_SageMaker_UserProfile.json -package sagemaker ../aws/sagemaker/user_profile_singular_data_source_gen.go ../aws/sagemaker/user_profile_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_scheduler_schedule_group -cfschema ../service/cloudformation/schemas/AWS_Scheduler_ScheduleGroup.json -package scheduler ../aws/scheduler/schedule_group_singular_data_source_gen.go ../aws/scheduler/schedule_group_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_secretsmanager_resource_policy -cfschema ../service/cloudformation/schemas/AWS_SecretsManager_ResourcePolicy.json -package secretsmanager ../aws/secretsmanager/resource_policy_singular_data_source_gen.go ../aws/secretsmanager/resource_policy_singular_data_source_gen_test.go diff --git a/internal/service/cloudformation/schemas/AWS_ARCZonalShift_AutoshiftObserverNotificationStatus.json b/internal/service/cloudformation/schemas/AWS_ARCZonalShift_AutoshiftObserverNotificationStatus.json new file mode 100644 index 000000000..408902ca2 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_ARCZonalShift_AutoshiftObserverNotificationStatus.json @@ -0,0 +1,80 @@ +{ + "typeName": "AWS::ARCZonalShift::AutoshiftObserverNotificationStatus", + "description": "Definition of AWS::ARCZonalShift::AutoshiftObserverNotificationStatus Resource Type", + "definitions": { + "AccountId": { + "description": "User account id, used as part of the primary identifier for the resource", + "type": "string", + "pattern": "^\\d{12}$" + }, + "Region": { + "description": "Region, used as part of the primary identifier for the resource", + "type": "string", + "pattern": "^[a-z0-9-]*$", + "maxLength": 30, + "minLength": 5 + }, + "AutoshiftObserverNotificationStatus": { + "type": "string", + "enum": [ + "ENABLED" + ] + } + }, + "properties": { + "Status": { + "$ref": "#/definitions/AutoshiftObserverNotificationStatus" + }, + "AccountId": { + "$ref": "#/definitions/AccountId" + }, + "Region": { + "$ref": "#/definitions/Region" + } + }, + "readOnlyProperties": [ + "/properties/AccountId", + "/properties/Region" + ], + "primaryIdentifier": [ + "/properties/AccountId", + "/properties/Region" + ], + "createOnlyProperties": [ + "/properties/Status" + ], + "required": [ + "Status" + ], + "handlers": { + "create": { + "permissions": [ + "arc-zonal-shift:UpdateAutoshiftObserverNotificationStatus" + ] + }, + "read": { + "permissions": [ + "arc-zonal-shift:GetAutoshiftObserverNotificationStatus" + ] + }, + "delete": { + "permissions": [ + "arc-zonal-shift:UpdateAutoshiftObserverNotificationStatus", + "arc-zonal-shift:GetAutoshiftObserverNotificationStatus" + ] + }, + "list": { + "permissions": [ + "arc-zonal-shift:GetAutoshiftObserverNotificationStatus" + ] + } + }, + "additionalProperties": false, + "tagging": { + "taggable": false + } +} + + + + diff --git a/internal/service/cloudformation/schemas/AWS_CleanRooms_IdMappingTable.json b/internal/service/cloudformation/schemas/AWS_CleanRooms_IdMappingTable.json new file mode 100644 index 000000000..fa04f2d7f --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_CleanRooms_IdMappingTable.json @@ -0,0 +1,241 @@ +{ + "typeName": "AWS::CleanRooms::IdMappingTable", + "description": "Represents an association between an ID mapping workflow and a collaboration", + "definitions": { + "UUID": { + "type": "string", + "maxLength": 36, + "minLength": 36, + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" + }, + "IdMappingTableInputReferenceConfig": { + "type": "object", + "properties": { + "InputReferenceArn": { + "type": "string", + "maxLength": 2048, + "minLength": 20 + }, + "ManageResourcePolicies": { + "type": "boolean" + } + }, + "required": [ + "InputReferenceArn", + "ManageResourcePolicies" + ], + "additionalProperties": false + }, + "IdMappingTableInputSource": { + "type": "object", + "properties": { + "IdNamespaceAssociationId": { + "type": "string" + }, + "Type": { + "type": "string", + "enum": [ + "SOURCE", + "TARGET" + ] + } + }, + "required": [ + "IdNamespaceAssociationId", + "Type" + ], + "additionalProperties": false + }, + "IdMappingTableInputReferenceProperties": { + "type": "object", + "properties": { + "IdMappingTableInputSource": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/IdMappingTableInputSource" + }, + "maxItems": 2, + "minItems": 2 + } + }, + "required": [ + "IdMappingTableInputSource" + ], + "additionalProperties": false + }, + "Tag": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "maxLength": 128, + "minLength": 1 + }, + "Value": { + "type": "string", + "maxLength": 256, + "minLength": 1 + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false + } + }, + "properties": { + "IdMappingTableIdentifier": { + "$ref": "#/definitions/UUID" + }, + "Arn": { + "type": "string", + "maxLength": 200 + }, + "InputReferenceConfig": { + "$ref": "#/definitions/IdMappingTableInputReferenceConfig" + }, + "MembershipIdentifier": { + "$ref": "#/definitions/UUID" + }, + "MembershipArn": { + "type": "string", + "maxLength": 100 + }, + "CollaborationIdentifier": { + "$ref": "#/definitions/UUID" + }, + "CollaborationArn": { + "type": "string", + "maxLength": 100 + }, + "Description": { + "type": "string", + "maxLength": 255, + "pattern": "" + }, + "Name": { + "type": "string", + "maxLength": 128, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$" + }, + "InputReferenceProperties": { + "$ref": "#/definitions/IdMappingTableInputReferenceProperties" + }, + "KmsKeyArn": { + "type": "string", + "maxLength": 2048, + "minLength": 4 + }, + "Tags": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "uniqueItems": true + } + }, + "required": [ + "MembershipIdentifier", + "Name", + "InputReferenceConfig" + ], + "readOnlyProperties": [ + "/properties/IdMappingTableIdentifier", + "/properties/Arn", + "/properties/MembershipArn", + "/properties/CollaborationIdentifier", + "/properties/CollaborationArn", + "/properties/InputReferenceProperties" + ], + "createOnlyProperties": [ + "/properties/MembershipIdentifier", + "/properties/Name", + "/properties/InputReferenceConfig" + ], + "primaryIdentifier": [ + "/properties/IdMappingTableIdentifier", + "/properties/MembershipIdentifier" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "cleanrooms:ListTagsForResource", + "cleanrooms:UntagResource", + "cleanrooms:TagResource" + ] + }, + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms", + "handlers": { + "create": { + "permissions": [ + "cleanrooms:CreateIdMappingTable", + "cleanrooms:GetIdMappingTable", + "cleanrooms:ListIdMappingTables", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:GetMembership", + "cleanrooms:GetCollaboration", + "entityresolution:GetIdMappingWorkflow", + "entityresolution:AddPolicyStatement" + ] + }, + "read": { + "permissions": [ + "cleanrooms:GetIdMappingTable", + "cleanrooms:ListTagsForResource", + "cleanrooms:GetMembership", + "cleanrooms:GetCollaboration" + ] + }, + "update": { + "permissions": [ + "cleanrooms:UpdateIdMappingTable", + "cleanrooms:GetIdMappingTable", + "cleanrooms:GetMembership", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:UntagResource", + "entityresolution:GetIdMappingWorkflow", + "entityresolution:AddPolicyStatement" + ] + }, + "delete": { + "permissions": [ + "cleanrooms:DeleteIdMappingTable", + "cleanrooms:GetIdMappingTable", + "cleanrooms:ListIdMappingTables", + "cleanrooms:GetMembership", + "cleanrooms:ListTagsForResource", + "cleanrooms:UntagResource", + "entityresolution:GetIdMappingWorkflow", + "entityresolution:AddPolicyStatement", + "entityresolution:DeletePolicyStatement" + ] + }, + "list": { + "permissions": [ + "cleanrooms:ListIdMappingTables", + "cleanrooms:GetMembership", + "cleanrooms:GetCollaboration" + ], + "handlerSchema": { + "properties": { + "MembershipIdentifier": { + "$ref": "resource-schema.json#/properties/MembershipIdentifier" + } + }, + "required": [ + "MembershipIdentifier" + ] + } + } + }, + "additionalProperties": false +} diff --git a/internal/service/cloudformation/schemas/AWS_CleanRooms_IdNamespaceAssociation.json b/internal/service/cloudformation/schemas/AWS_CleanRooms_IdNamespaceAssociation.json new file mode 100644 index 000000000..cf27fa673 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_CleanRooms_IdNamespaceAssociation.json @@ -0,0 +1,238 @@ +{ + "typeName": "AWS::CleanRooms::IdNamespaceAssociation", + "description": "Represents an association between an ID namespace and a collaboration", + "definitions": { + "UUID": { + "type": "string", + "maxLength": 36, + "minLength": 36, + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" + }, + "Document": { + "type": "object" + }, + "IdNamespaceAssociationInputReferenceConfig": { + "type": "object", + "properties": { + "InputReferenceArn": { + "type": "string", + "maxLength": 256 + }, + "ManageResourcePolicies": { + "type": "boolean" + } + }, + "required": [ + "InputReferenceArn", + "ManageResourcePolicies" + ], + "additionalProperties": false + }, + "Tag": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "maxLength": 128, + "minLength": 1 + }, + "Value": { + "type": "string", + "maxLength": 256, + "minLength": 1 + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false + }, + "IdMappingConfig": { + "type": "object", + "properties": { + "AllowUseAsDimensionColumn": { + "type": "boolean" + } + }, + "required": [ + "AllowUseAsDimensionColumn" + ], + "additionalProperties": false + }, + "IdNamespaceAssociationInputReferenceProperties": { + "type": "object", + "properties": { + "IdNamespaceType": { + "type": "string", + "enum": [ + "SOURCE", + "TARGET" + ] + }, + "IdMappingWorkflowsSupported": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Document" + } + } + }, + "required": [], + "additionalProperties": false + } + }, + "properties": { + "IdNamespaceAssociationIdentifier": { + "$ref": "#/definitions/UUID" + }, + "Arn": { + "type": "string", + "maxLength": 256 + }, + "MembershipIdentifier": { + "$ref": "#/definitions/UUID" + }, + "MembershipArn": { + "type": "string", + "maxLength": 100 + }, + "CollaborationIdentifier": { + "$ref": "#/definitions/UUID" + }, + "CollaborationArn": { + "type": "string", + "maxLength": 100 + }, + "InputReferenceConfig": { + "$ref": "#/definitions/IdNamespaceAssociationInputReferenceConfig" + }, + "Tags": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "uniqueItems": true + }, + "Name": { + "type": "string", + "maxLength": 100, + "minLength": 1, + "pattern": "" + }, + "Description": { + "type": "string", + "maxLength": 255, + "pattern": "" + }, + "IdMappingConfig": { + "$ref": "#/definitions/IdMappingConfig" + }, + "InputReferenceProperties": { + "$ref": "#/definitions/IdNamespaceAssociationInputReferenceProperties" + } + }, + "required": [ + "MembershipIdentifier", + "InputReferenceConfig", + "Name" + ], + "readOnlyProperties": [ + "/properties/IdNamespaceAssociationIdentifier", + "/properties/Arn", + "/properties/MembershipArn", + "/properties/CollaborationIdentifier", + "/properties/CollaborationArn", + "/properties/InputReferenceProperties" + ], + "createOnlyProperties": [ + "/properties/MembershipIdentifier", + "/properties/InputReferenceConfig" + ], + "primaryIdentifier": [ + "/properties/IdNamespaceAssociationIdentifier", + "/properties/MembershipIdentifier" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "cleanrooms:ListTagsForResource", + "cleanrooms:UntagResource", + "cleanrooms:TagResource" + ] + }, + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms", + "handlers": { + "create": { + "permissions": [ + "cleanrooms:CreateIdNamespaceAssociation", + "cleanrooms:GetIdNamespaceAssociation", + "cleanrooms:ListIdNamespaceAssociations", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:GetMembership", + "cleanrooms:GetCollaboration", + "entityresolution:GetIdNamespace", + "entityresolution:AddPolicyStatement" + ] + }, + "read": { + "permissions": [ + "cleanrooms:GetIdNamespaceAssociation", + "cleanrooms:ListTagsForResource", + "cleanrooms:GetMembership", + "cleanrooms:GetCollaboration", + "entityresolution:GetIdNamespace" + ] + }, + "update": { + "permissions": [ + "cleanrooms:UpdateIdNamespaceAssociation", + "cleanrooms:GetIdNamespaceAssociation", + "cleanrooms:GetMembership", + "cleanrooms:GetCollaboration", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:UntagResource", + "entityresolution:GetIdNamespace", + "entityresolution:AddPolicyStatement" + ] + }, + "delete": { + "permissions": [ + "cleanrooms:DeleteIdNamespaceAssociation", + "cleanrooms:GetIdNamespaceAssociation", + "cleanrooms:ListIdNamespaceAssociations", + "cleanrooms:GetMembership", + "cleanrooms:GetCollaboration", + "cleanrooms:ListTagsForResource", + "cleanrooms:UntagResource", + "entityresolution:GetIdNamespace", + "entityresolution:DeletePolicyStatement" + ] + }, + "list": { + "permissions": [ + "cleanrooms:ListIdNamespaceAssociations", + "cleanrooms:GetMembership", + "cleanrooms:GetCollaboration" + ], + "handlerSchema": { + "properties": { + "MembershipIdentifier": { + "$ref": "resource-schema.json#/properties/MembershipIdentifier" + } + }, + "required": [ + "MembershipIdentifier" + ] + } + } + }, + "additionalProperties": false +} diff --git a/internal/service/cloudformation/schemas/AWS_SageMaker_StudioLifecycleConfig.json b/internal/service/cloudformation/schemas/AWS_SageMaker_StudioLifecycleConfig.json new file mode 100644 index 000000000..b87b6524d --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_SageMaker_StudioLifecycleConfig.json @@ -0,0 +1,130 @@ +{ + "typeName": "AWS::SageMaker::StudioLifecycleConfig", + "description": "Resource Type definition for AWS::SageMaker::StudioLifecycleConfig", + "additionalProperties": false, + "properties": { + "StudioLifecycleConfigArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration.", + "minLength": 1, + "maxLength": 256, + "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*" + }, + "StudioLifecycleConfigAppType": { + "type": "string", + "description": "The App type that the Lifecycle Configuration is attached to.", + "enum": [ + "JupyterServer", + "KernelGateway", + "CodeEditor", + "JupyterLab" + ] + }, + "StudioLifecycleConfigContent": { + "type": "string", + "description": "The content of your Amazon SageMaker Studio Lifecycle Configuration script.", + "minLength": 1, + "maxLength": 16384, + "pattern": "[\\S\\s]+" + }, + "StudioLifecycleConfigName": { + "type": "string", + "description": "The name of the Amazon SageMaker Studio Lifecycle Configuration.", + "minLength": 1, + "maxLength": 63, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}" + }, + "Tags": { + "type": "array", + "description": "Tags to be associated with the Lifecycle Configuration.", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "minItems": 0, + "maxItems": 50 + } + }, + "definitions": { + "Tag": { + "type": "object", + "additionalProperties": false, + "properties": { + "Value": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "Key": { + "type": "string", + "minLength": 1, + "maxLength": 128 + } + }, + "required": [ + "Key", + "Value" + ] + } + }, + "required": [ + "StudioLifecycleConfigAppType", + "StudioLifecycleConfigContent", + "StudioLifecycleConfigName" + ], + "createOnlyProperties": [ + "/properties/StudioLifecycleConfigAppType", + "/properties/StudioLifecycleConfigContent", + "/properties/StudioLifecycleConfigName", + "/properties/Tags" + ], + "readOnlyProperties": [ + "/properties/StudioLifecycleConfigArn" + ], + "primaryIdentifier": [ + "/properties/StudioLifecycleConfigName" + ], + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateStudioLifecycleConfig", + "sagemaker:DescribeStudioLifecycleConfig", + "sagemaker:AddTags", + "sagemaker:ListTags" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeStudioLifecycleConfig", + "sagemaker:ListTags" + ] + }, + "delete": { + "permissions": [ + "sagemaker:DeleteStudioLifecycleConfig", + "sagemaker:DescribeStudioLifecycleConfig", + "sagemaker:DeleteTags", + "sagemaker:ListTags" + ] + }, + "list": { + "permissions": [ + "sagemaker:ListStudioLifecycleConfigs", + "sagemaker:ListTags" + ] + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": false, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "sagemaker:AddTags", + "sagemaker:ListTags", + "sagemaker:DeleteTags" + ] + } +} From 98bbf75a093911ff92a401e496ae2b73d3259d4f Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 1 Aug 2024 11:44:04 -0400 Subject: [PATCH 60/89] 07/31/2024 CloudFormation schemas in us-east-1; Generate Terraform resource schemas. --- ...server_notification_status_resource_gen.go | 119 +++ ...r_notification_status_resource_gen_test.go | 25 + ...al_autoshift_configuration_resource_gen.go | 30 +- .../aws/bedrock/guardrail_resource_gen.go | 86 ++ ...nfigured_table_association_resource_gen.go | 327 +++++++- .../configured_table_resource_gen.go | 99 +++ .../id_mapping_table_resource_gen.go | 386 +++++++++ .../id_mapping_table_resource_gen_test.go | 25 + .../ec2/capacity_reservation_resource_gen.go | 1 - .../aws/ec2/vpn_connection_resource_gen.go | 57 +- .../ec2/vpn_connection_route_resource_gen.go | 2 +- .../load_balancer_resource_gen.go | 4 +- .../id_mapping_workflow_resource_gen.go | 15 +- .../cis_scan_configuration_resource_gen.go | 24 +- ...is_scan_configuration_resource_gen_test.go | 27 +- .../delivery_stream_resource_gen.go | 750 ++++++++++++++++++ .../application_instance_resource_gen.go | 65 +- internal/aws/panorama/package_resource_gen.go | 47 +- .../panorama/package_version_resource_gen.go | 36 +- internal/aws/rds/integration_resource_gen.go | 44 +- internal/aws/sagemaker/app_resource_gen.go | 20 + internal/aws/sagemaker/domain_resource_gen.go | 124 ++- internal/aws/sagemaker/space_resource_gen.go | 139 ++++ .../studio_lifecycle_config_resource_gen.go | 223 ++++++ ...udio_lifecycle_config_resource_gen_test.go | 25 + .../sagemaker/user_profile_resource_gen.go | 141 +++- .../security_control_resource_gen.go | 1 + internal/aws/sns/topic_resource_gen.go | 22 +- 28 files changed, 2680 insertions(+), 184 deletions(-) create mode 100644 internal/aws/arczonalshift/autoshift_observer_notification_status_resource_gen.go create mode 100644 internal/aws/arczonalshift/autoshift_observer_notification_status_resource_gen_test.go create mode 100644 internal/aws/cleanrooms/id_mapping_table_resource_gen.go create mode 100644 internal/aws/cleanrooms/id_mapping_table_resource_gen_test.go create mode 100644 internal/aws/sagemaker/studio_lifecycle_config_resource_gen.go create mode 100644 internal/aws/sagemaker/studio_lifecycle_config_resource_gen_test.go diff --git a/internal/aws/arczonalshift/autoshift_observer_notification_status_resource_gen.go b/internal/aws/arczonalshift/autoshift_observer_notification_status_resource_gen.go new file mode 100644 index 000000000..016de4f43 --- /dev/null +++ b/internal/aws/arczonalshift/autoshift_observer_notification_status_resource_gen.go @@ -0,0 +1,119 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package arczonalshift + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_arczonalshift_autoshift_observer_notification_status", autoshiftObserverNotificationStatusResource) +} + +// autoshiftObserverNotificationStatusResource returns the Terraform awscc_arczonalshift_autoshift_observer_notification_status resource. +// This Terraform resource corresponds to the CloudFormation AWS::ARCZonalShift::AutoshiftObserverNotificationStatus resource. +func autoshiftObserverNotificationStatusResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AccountId + // CloudFormation resource type schema: + // + // { + // "description": "User account id, used as part of the primary identifier for the resource", + // "pattern": "^\\d{12}$", + // "type": "string" + // } + "account_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "User account id, used as part of the primary identifier for the resource", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Region + // CloudFormation resource type schema: + // + // { + // "description": "Region, used as part of the primary identifier for the resource", + // "maxLength": 30, + // "minLength": 5, + // "pattern": "^[a-z0-9-]*$", + // "type": "string" + // } + "region": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Region, used as part of the primary identifier for the resource", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Status + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "ENABLED" + // ], + // "type": "string" + // } + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ENABLED", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + // Corresponds to CloudFormation primaryIdentifier. + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Definition of AWS::ARCZonalShift::AutoshiftObserverNotificationStatus Resource Type", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::ARCZonalShift::AutoshiftObserverNotificationStatus").WithTerraformTypeName("awscc_arczonalshift_autoshift_observer_notification_status") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "account_id": "AccountId", + "region": "Region", + "status": "Status", + }) + + opts = opts.IsImmutableType(true) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/arczonalshift/autoshift_observer_notification_status_resource_gen_test.go b/internal/aws/arczonalshift/autoshift_observer_notification_status_resource_gen_test.go new file mode 100644 index 000000000..c2709bf87 --- /dev/null +++ b/internal/aws/arczonalshift/autoshift_observer_notification_status_resource_gen_test.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package arczonalshift_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSARCZonalShiftAutoshiftObserverNotificationStatus_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::ARCZonalShift::AutoshiftObserverNotificationStatus", "awscc_arczonalshift_autoshift_observer_notification_status", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/arczonalshift/zonal_autoshift_configuration_resource_gen.go b/internal/aws/arczonalshift/zonal_autoshift_configuration_resource_gen.go index 4d0ec1ff6..a0b4a0b1b 100644 --- a/internal/aws/arczonalshift/zonal_autoshift_configuration_resource_gen.go +++ b/internal/aws/arczonalshift/zonal_autoshift_configuration_resource_gen.go @@ -69,13 +69,13 @@ func zonalAutoshiftConfigurationResource(ctx context.Context) (resource.Resource // "AlarmIdentifier": { // "maxLength": 1024, // "minLength": 8, - // "pattern": "^arn:.*$", + // "pattern": "^.*$", // "type": "string" // }, // "Type": { - // "enum": [ - // "CLOUDWATCH" - // ], + // "maxLength": 10, + // "minLength": 8, + // "pattern": "^[a-zA-Z]*$", // "type": "string" // } // }, @@ -97,13 +97,13 @@ func zonalAutoshiftConfigurationResource(ctx context.Context) (resource.Resource // "AlarmIdentifier": { // "maxLength": 1024, // "minLength": 8, - // "pattern": "^arn:.*$", + // "pattern": "^.*$", // "type": "string" // }, // "Type": { - // "enum": [ - // "CLOUDWATCH" - // ], + // "maxLength": 10, + // "minLength": 8, + // "pattern": "^[a-zA-Z]*$", // "type": "string" // } // }, @@ -168,16 +168,15 @@ func zonalAutoshiftConfigurationResource(ctx context.Context) (resource.Resource Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(8, 1024), - stringvalidator.RegexMatches(regexp.MustCompile("^arn:.*$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^.*$"), ""), }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ // Property: Type "type": schema.StringAttribute{ /*START ATTRIBUTE*/ Required: true, Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.OneOf( - "CLOUDWATCH", - ), + stringvalidator.LengthBetween(8, 10), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z]*$"), ""), }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -201,16 +200,15 @@ func zonalAutoshiftConfigurationResource(ctx context.Context) (resource.Resource Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(8, 1024), - stringvalidator.RegexMatches(regexp.MustCompile("^arn:.*$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^.*$"), ""), }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ // Property: Type "type": schema.StringAttribute{ /*START ATTRIBUTE*/ Required: true, Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.OneOf( - "CLOUDWATCH", - ), + stringvalidator.LengthBetween(8, 10), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z]*$"), ""), }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ diff --git a/internal/aws/bedrock/guardrail_resource_gen.go b/internal/aws/bedrock/guardrail_resource_gen.go index 09280c4bc..f283ba0f3 100644 --- a/internal/aws/bedrock/guardrail_resource_gen.go +++ b/internal/aws/bedrock/guardrail_resource_gen.go @@ -10,6 +10,7 @@ import ( "regexp" "github.com/hashicorp/terraform-plugin-framework-timetypes/timetypes" + "github.com/hashicorp/terraform-plugin-framework-validators/float64validator" "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" "github.com/hashicorp/terraform-plugin-framework/resource" @@ -190,6 +191,89 @@ func guardrailResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: ContextualGroundingPolicyConfig + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Contextual grounding policy config for a guardrail.", + // "properties": { + // "FiltersConfig": { + // "description": "List of contextual grounding filter configs.", + // "items": { + // "additionalProperties": false, + // "description": "A config for grounding filter.", + // "properties": { + // "Threshold": { + // "description": "The threshold for this filter.", + // "minimum": 0, + // "type": "number" + // }, + // "Type": { + // "description": "Type of contextual grounding filter", + // "enum": [ + // "GROUNDING", + // "RELEVANCE" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Threshold", + // "Type" + // ], + // "type": "object" + // }, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "FiltersConfig" + // ], + // "type": "object" + // } + "contextual_grounding_policy_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: FiltersConfig + "filters_config": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Threshold + "threshold": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "The threshold for this filter.", + Required: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.AtLeast(0.000000), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Type of contextual grounding filter", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "GROUNDING", + "RELEVANCE", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of contextual grounding filter configs.", + Required: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeAtLeast(1), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Contextual grounding policy config for a guardrail.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: CreatedAt // CloudFormation resource type schema: // @@ -969,6 +1053,7 @@ func guardrailResource(ctx context.Context) (resource.Resource, error) { "blocked_input_messaging": "BlockedInputMessaging", "blocked_outputs_messaging": "BlockedOutputsMessaging", "content_policy_config": "ContentPolicyConfig", + "contextual_grounding_policy_config": "ContextualGroundingPolicyConfig", "created_at": "CreatedAt", "definition": "Definition", "description": "Description", @@ -991,6 +1076,7 @@ func guardrailResource(ctx context.Context) (resource.Resource, error) { "status_reasons": "StatusReasons", "tags": "Tags", "text": "Text", + "threshold": "Threshold", "topic_policy_config": "TopicPolicyConfig", "topics_config": "TopicsConfig", "type": "Type", diff --git a/internal/aws/cleanrooms/configured_table_association_resource_gen.go b/internal/aws/cleanrooms/configured_table_association_resource_gen.go index 4c16ff911..217f950b8 100644 --- a/internal/aws/cleanrooms/configured_table_association_resource_gen.go +++ b/internal/aws/cleanrooms/configured_table_association_resource_gen.go @@ -9,13 +9,16 @@ import ( "context" "regexp" + "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" "github.com/hashicorp/terraform-plugin-framework/resource" "github.com/hashicorp/terraform-plugin-framework/resource/schema" "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" "github.com/hashicorp/terraform-provider-awscc/internal/generic" "github.com/hashicorp/terraform-provider-awscc/internal/registry" ) @@ -41,6 +44,301 @@ func configuredTableAssociationResource(ctx context.Context) (resource.Resource, stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: ConfiguredTableAssociationAnalysisRules + // CloudFormation resource type schema: + // + // { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Policy": { + // "additionalProperties": false, + // "properties": { + // "V1": { + // "properties": { + // "Aggregation": { + // "additionalProperties": false, + // "properties": { + // "AllowedAdditionalAnalyses": { + // "insertionOrder": false, + // "items": { + // "maxLength": 256, + // "pattern": "^arn:aws:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:([\\d]{12}|\\*):membership\\/[\\*\\d\\w-]+\\/configuredaudiencemodelassociation\\/[\\*\\d\\w-]+$|^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:([0-9]{12}|\\*):configured-model-algorithm-association\\/([-a-zA-Z0-9_\\/.]+|\\*)$", + // "type": "string" + // }, + // "maxItems": 25, + // "minItems": 0, + // "type": "array" + // }, + // "AllowedResultReceivers": { + // "insertionOrder": false, + // "items": { + // "maxLength": 12, + // "minLength": 12, + // "pattern": "\\d+", + // "type": "string" + // }, + // "minItems": 0, + // "type": "array" + // } + // }, + // "type": "object" + // }, + // "Custom": { + // "additionalProperties": false, + // "properties": { + // "AllowedAdditionalAnalyses": { + // "insertionOrder": false, + // "items": { + // "maxLength": 256, + // "pattern": "^arn:aws:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:([\\d]{12}|\\*):membership\\/[\\*\\d\\w-]+\\/configuredaudiencemodelassociation\\/[\\*\\d\\w-]+$|^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:([0-9]{12}|\\*):configured-model-algorithm-association\\/([-a-zA-Z0-9_\\/.]+|\\*)$", + // "type": "string" + // }, + // "maxItems": 25, + // "minItems": 0, + // "type": "array" + // }, + // "AllowedResultReceivers": { + // "insertionOrder": false, + // "items": { + // "maxLength": 12, + // "minLength": 12, + // "pattern": "\\d+", + // "type": "string" + // }, + // "minItems": 0, + // "type": "array" + // } + // }, + // "type": "object" + // }, + // "List": { + // "additionalProperties": false, + // "properties": { + // "AllowedAdditionalAnalyses": { + // "insertionOrder": false, + // "items": { + // "maxLength": 256, + // "pattern": "^arn:aws:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:([\\d]{12}|\\*):membership\\/[\\*\\d\\w-]+\\/configuredaudiencemodelassociation\\/[\\*\\d\\w-]+$|^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:([0-9]{12}|\\*):configured-model-algorithm-association\\/([-a-zA-Z0-9_\\/.]+|\\*)$", + // "type": "string" + // }, + // "maxItems": 25, + // "minItems": 0, + // "type": "array" + // }, + // "AllowedResultReceivers": { + // "insertionOrder": false, + // "items": { + // "maxLength": 12, + // "minLength": 12, + // "pattern": "\\d+", + // "type": "string" + // }, + // "minItems": 0, + // "type": "array" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // } + // }, + // "required": [ + // "V1" + // ], + // "type": "object" + // }, + // "Type": { + // "enum": [ + // "AGGREGATION", + // "LIST", + // "CUSTOM" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Type", + // "Policy" + // ], + // "type": "object" + // }, + // "maxItems": 1, + // "minItems": 1, + // "type": "array" + // } + "configured_table_association_analysis_rules": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Policy + "policy": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: V1 + "v1": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Aggregation + "aggregation": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AllowedAdditionalAnalyses + "allowed_additional_analyses": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(0, 25), + listvalidator.ValueStringsAre( + stringvalidator.LengthAtMost(256), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:([\\d]{12}|\\*):membership\\/[\\*\\d\\w-]+\\/configuredaudiencemodelassociation\\/[\\*\\d\\w-]+$|^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:([0-9]{12}|\\*):configured-model-algorithm-association\\/([-a-zA-Z0-9_\\/.]+|\\*)$"), ""), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AllowedResultReceivers + "allowed_result_receivers": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeAtLeast(0), + listvalidator.ValueStringsAre( + stringvalidator.LengthBetween(12, 12), + stringvalidator.RegexMatches(regexp.MustCompile("\\d+"), ""), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Custom + "custom": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AllowedAdditionalAnalyses + "allowed_additional_analyses": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(0, 25), + listvalidator.ValueStringsAre( + stringvalidator.LengthAtMost(256), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:([\\d]{12}|\\*):membership\\/[\\*\\d\\w-]+\\/configuredaudiencemodelassociation\\/[\\*\\d\\w-]+$|^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:([0-9]{12}|\\*):configured-model-algorithm-association\\/([-a-zA-Z0-9_\\/.]+|\\*)$"), ""), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AllowedResultReceivers + "allowed_result_receivers": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeAtLeast(0), + listvalidator.ValueStringsAre( + stringvalidator.LengthBetween(12, 12), + stringvalidator.RegexMatches(regexp.MustCompile("\\d+"), ""), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: List + "list": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AllowedAdditionalAnalyses + "allowed_additional_analyses": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(0, 25), + listvalidator.ValueStringsAre( + stringvalidator.LengthAtMost(256), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:([\\d]{12}|\\*):membership\\/[\\*\\d\\w-]+\\/configuredaudiencemodelassociation\\/[\\*\\d\\w-]+$|^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:([0-9]{12}|\\*):configured-model-algorithm-association\\/([-a-zA-Z0-9_\\/.]+|\\*)$"), ""), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AllowedResultReceivers + "allowed_result_receivers": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeAtLeast(0), + listvalidator.ValueStringsAre( + stringvalidator.LengthBetween(12, 12), + stringvalidator.RegexMatches(regexp.MustCompile("\\d+"), ""), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "AGGREGATION", + "LIST", + "CUSTOM", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 1), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: ConfiguredTableAssociationIdentifier // CloudFormation resource type schema: // @@ -221,16 +519,25 @@ func configuredTableAssociationResource(ctx context.Context) (resource.Resource, opts = opts.WithCloudFormationTypeName("AWS::CleanRooms::ConfiguredTableAssociation").WithTerraformTypeName("awscc_cleanrooms_configured_table_association") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "arn": "Arn", - "configured_table_association_identifier": "ConfiguredTableAssociationIdentifier", - "configured_table_identifier": "ConfiguredTableIdentifier", - "description": "Description", - "key": "Key", - "membership_identifier": "MembershipIdentifier", - "name": "Name", - "role_arn": "RoleArn", - "tags": "Tags", - "value": "Value", + "aggregation": "Aggregation", + "allowed_additional_analyses": "AllowedAdditionalAnalyses", + "allowed_result_receivers": "AllowedResultReceivers", + "arn": "Arn", + "configured_table_association_analysis_rules": "ConfiguredTableAssociationAnalysisRules", + "configured_table_association_identifier": "ConfiguredTableAssociationIdentifier", + "configured_table_identifier": "ConfiguredTableIdentifier", + "custom": "Custom", + "description": "Description", + "key": "Key", + "list": "List", + "membership_identifier": "MembershipIdentifier", + "name": "Name", + "policy": "Policy", + "role_arn": "RoleArn", + "tags": "Tags", + "type": "Type", + "v1": "V1", + "value": "Value", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/cleanrooms/configured_table_resource_gen.go b/internal/aws/cleanrooms/configured_table_resource_gen.go index 690f44574..7a50fa491 100644 --- a/internal/aws/cleanrooms/configured_table_resource_gen.go +++ b/internal/aws/cleanrooms/configured_table_resource_gen.go @@ -98,6 +98,14 @@ func configuredTableResource(ctx context.Context) (resource.Resource, error) { // "Aggregation": { // "additionalProperties": false, // "properties": { + // "AdditionalAnalyses": { + // "enum": [ + // "ALLOWED", + // "REQUIRED", + // "NOT_ALLOWED" + // ], + // "type": "string" + // }, // "AggregateColumns": { // "insertionOrder": false, // "items": { @@ -251,6 +259,14 @@ func configuredTableResource(ctx context.Context) (resource.Resource, error) { // "Custom": { // "additionalProperties": false, // "properties": { + // "AdditionalAnalyses": { + // "enum": [ + // "ALLOWED", + // "REQUIRED", + // "NOT_ALLOWED" + // ], + // "type": "string" + // }, // "AllowedAnalyses": { // "insertionOrder": false, // "items": { @@ -298,6 +314,17 @@ func configuredTableResource(ctx context.Context) (resource.Resource, error) { // "Columns" // ], // "type": "object" + // }, + // "DisallowedOutputColumns": { + // "insertionOrder": false, + // "items": { + // "maxLength": 127, + // "minLength": 1, + // "pattern": "^[a-z0-9_](([a-z0-9_ ]+-)*([a-z0-9_ ]+))?$", + // "type": "string" + // }, + // "minItems": 0, + // "type": "array" // } // }, // "required": [ @@ -308,6 +335,14 @@ func configuredTableResource(ctx context.Context) (resource.Resource, error) { // "List": { // "additionalProperties": false, // "properties": { + // "AdditionalAnalyses": { + // "enum": [ + // "ALLOWED", + // "REQUIRED", + // "NOT_ALLOWED" + // ], + // "type": "string" + // }, // "AllowedJoinOperators": { // "insertionOrder": false, // "items": { @@ -388,6 +423,21 @@ func configuredTableResource(ctx context.Context) (resource.Resource, error) { // Property: Aggregation "aggregation": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AdditionalAnalyses + "additional_analyses": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ALLOWED", + "REQUIRED", + "NOT_ALLOWED", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: AggregateColumns "aggregate_columns": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ @@ -576,6 +626,21 @@ func configuredTableResource(ctx context.Context) (resource.Resource, error) { // Property: Custom "custom": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AdditionalAnalyses + "additional_analyses": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ALLOWED", + "REQUIRED", + "NOT_ALLOWED", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: AllowedAnalyses "allowed_analyses": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, @@ -636,6 +701,23 @@ func configuredTableResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: DisallowedOutputColumns + "disallowed_output_columns": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeAtLeast(0), + listvalidator.ValueStringsAre( + stringvalidator.LengthBetween(1, 127), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-z0-9_](([a-z0-9_ ]+-)*([a-z0-9_ ]+))?$"), ""), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Optional: true, Computed: true, @@ -646,6 +728,21 @@ func configuredTableResource(ctx context.Context) (resource.Resource, error) { // Property: List "list": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AdditionalAnalyses + "additional_analyses": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ALLOWED", + "REQUIRED", + "NOT_ALLOWED", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: AllowedJoinOperators "allowed_join_operators": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, @@ -930,6 +1027,7 @@ func configuredTableResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithCloudFormationTypeName("AWS::CleanRooms::ConfiguredTable").WithTerraformTypeName("awscc_cleanrooms_configured_table") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ + "additional_analyses": "AdditionalAnalyses", "aggregate_columns": "AggregateColumns", "aggregation": "Aggregation", "allowed_analyses": "AllowedAnalyses", @@ -948,6 +1046,7 @@ func configuredTableResource(ctx context.Context) (resource.Resource, error) { "description": "Description", "differential_privacy": "DifferentialPrivacy", "dimension_columns": "DimensionColumns", + "disallowed_output_columns": "DisallowedOutputColumns", "function": "Function", "glue": "Glue", "join_columns": "JoinColumns", diff --git a/internal/aws/cleanrooms/id_mapping_table_resource_gen.go b/internal/aws/cleanrooms/id_mapping_table_resource_gen.go new file mode 100644 index 000000000..772d073eb --- /dev/null +++ b/internal/aws/cleanrooms/id_mapping_table_resource_gen.go @@ -0,0 +1,386 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package cleanrooms + +import ( + "context" + "regexp" + + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/setplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_cleanrooms_id_mapping_table", idMappingTableResource) +} + +// idMappingTableResource returns the Terraform awscc_cleanrooms_id_mapping_table resource. +// This Terraform resource corresponds to the CloudFormation AWS::CleanRooms::IdMappingTable resource. +func idMappingTableResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "maxLength": 200, + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CollaborationArn + // CloudFormation resource type schema: + // + // { + // "maxLength": 100, + // "type": "string" + // } + "collaboration_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CollaborationIdentifier + // CloudFormation resource type schema: + // + // { + // "maxLength": 36, + // "minLength": 36, + // "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", + // "type": "string" + // } + "collaboration_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "maxLength": 255, + // "pattern": "", + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(255), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: IdMappingTableIdentifier + // CloudFormation resource type schema: + // + // { + // "maxLength": 36, + // "minLength": 36, + // "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", + // "type": "string" + // } + "id_mapping_table_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InputReferenceConfig + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "InputReferenceArn": { + // "maxLength": 2048, + // "minLength": 20, + // "type": "string" + // }, + // "ManageResourcePolicies": { + // "type": "boolean" + // } + // }, + // "required": [ + // "InputReferenceArn", + // "ManageResourcePolicies" + // ], + // "type": "object" + // } + "input_reference_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InputReferenceArn + "input_reference_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(20, 2048), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: ManageResourcePolicies + "manage_resource_policies": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InputReferenceProperties + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "IdMappingTableInputSource": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "IdNamespaceAssociationId": { + // "type": "string" + // }, + // "Type": { + // "enum": [ + // "SOURCE", + // "TARGET" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "IdNamespaceAssociationId", + // "Type" + // ], + // "type": "object" + // }, + // "maxItems": 2, + // "minItems": 2, + // "type": "array" + // } + // }, + // "required": [ + // "IdMappingTableInputSource" + // ], + // "type": "object" + // } + "input_reference_properties": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IdMappingTableInputSource + "id_mapping_table_input_source": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IdNamespaceAssociationId + "id_namespace_association_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: KmsKeyArn + // CloudFormation resource type schema: + // + // { + // "maxLength": 2048, + // "minLength": 4, + // "type": "string" + // } + "kms_key_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(4, 2048), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MembershipArn + // CloudFormation resource type schema: + // + // { + // "maxLength": 100, + // "type": "string" + // } + "membership_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MembershipIdentifier + // CloudFormation resource type schema: + // + // { + // "maxLength": 36, + // "minLength": 36, + // "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", + // "type": "string" + // } + "membership_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(36, 36), + stringvalidator.RegexMatches(regexp.MustCompile("^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "maxLength": 128, + // "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(128), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + // Corresponds to CloudFormation primaryIdentifier. + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Represents an association between an ID mapping workflow and a collaboration", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::CleanRooms::IdMappingTable").WithTerraformTypeName("awscc_cleanrooms_id_mapping_table") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "arn": "Arn", + "collaboration_arn": "CollaborationArn", + "collaboration_identifier": "CollaborationIdentifier", + "description": "Description", + "id_mapping_table_identifier": "IdMappingTableIdentifier", + "id_mapping_table_input_source": "IdMappingTableInputSource", + "id_namespace_association_id": "IdNamespaceAssociationId", + "input_reference_arn": "InputReferenceArn", + "input_reference_config": "InputReferenceConfig", + "input_reference_properties": "InputReferenceProperties", + "key": "Key", + "kms_key_arn": "KmsKeyArn", + "manage_resource_policies": "ManageResourcePolicies", + "membership_arn": "MembershipArn", + "membership_identifier": "MembershipIdentifier", + "name": "Name", + "tags": "Tags", + "type": "Type", + "value": "Value", + }) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/cleanrooms/id_mapping_table_resource_gen_test.go b/internal/aws/cleanrooms/id_mapping_table_resource_gen_test.go new file mode 100644 index 000000000..27d14bbc0 --- /dev/null +++ b/internal/aws/cleanrooms/id_mapping_table_resource_gen_test.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package cleanrooms_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSCleanRoomsIdMappingTable_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::CleanRooms::IdMappingTable", "awscc_cleanrooms_id_mapping_table", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/ec2/capacity_reservation_resource_gen.go b/internal/aws/ec2/capacity_reservation_resource_gen.go index 812e16b76..b1289996c 100644 --- a/internal/aws/ec2/capacity_reservation_resource_gen.go +++ b/internal/aws/ec2/capacity_reservation_resource_gen.go @@ -137,7 +137,6 @@ func capacityReservationResource(ctx context.Context) (resource.Resource, error) Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), - stringplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: InstancePlatform diff --git a/internal/aws/ec2/vpn_connection_resource_gen.go b/internal/aws/ec2/vpn_connection_resource_gen.go index b987c9e3f..7ceb200d4 100644 --- a/internal/aws/ec2/vpn_connection_resource_gen.go +++ b/internal/aws/ec2/vpn_connection_resource_gen.go @@ -40,15 +40,31 @@ func vPNConnectionResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.RequiresReplace(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: EnableAcceleration + // CloudFormation resource type schema: + // + // { + // "description": "", + // "type": "boolean" + // } + "enable_acceleration": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + boolplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: StaticRoutesOnly // CloudFormation resource type schema: // // { - // "description": "Indicates whether the VPN connection uses static routes only.", + // "description": "Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP.\n If you are creating a VPN connection for a device that does not support Border Gateway Protocol (BGP), you must specify ``true``.", // "type": "boolean" // } "static_routes_only": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Indicates whether the VPN connection uses static routes only.", + Description: "Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP.\n If you are creating a VPN connection for a device that does not support Border Gateway Protocol (BGP), you must specify ``true``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -64,11 +80,14 @@ func vPNConnectionResource(ctx context.Context) (resource.Resource, error) { // "insertionOrder": false, // "items": { // "additionalProperties": false, + // "description": "Specifies a tag. For more information, see [Add tags to a resource](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#cloudformation-add-tag-specifications).", // "properties": { // "Key": { + // "description": "The tag key.", // "type": "string" // }, // "Value": { + // "description": "The tag value.", // "type": "string" // } // }, @@ -86,11 +105,13 @@ func vPNConnectionResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Key "key": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Description: "The tag key.", + Required: true, }, /*END ATTRIBUTE*/ // Property: Value "value": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Description: "The tag value.", + Required: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ @@ -106,11 +127,11 @@ func vPNConnectionResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The ID of the transit gateway associated with the VPN connection.", + // "description": "The ID of the transit gateway associated with the VPN connection.\n You must specify either ``TransitGatewayId`` or ``VpnGatewayId``, but not both.", // "type": "string" // } "transit_gateway_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ID of the transit gateway associated with the VPN connection.", + Description: "The ID of the transit gateway associated with the VPN connection.\n You must specify either ``TransitGatewayId`` or ``VpnGatewayId``, but not both.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -136,11 +157,11 @@ func vPNConnectionResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The provider-assigned unique ID for this managed resource", + // "description": "", // "type": "string" // } "vpn_connection_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The provider-assigned unique ID for this managed resource", + Description: "", Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -150,11 +171,11 @@ func vPNConnectionResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The ID of the virtual private gateway at the AWS side of the VPN connection.", + // "description": "The ID of the virtual private gateway at the AWS side of the VPN connection.\n You must specify either ``TransitGatewayId`` or ``VpnGatewayId``, but not both.", // "type": "string" // } "vpn_gateway_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ID of the virtual private gateway at the AWS side of the VPN connection.", + Description: "The ID of the virtual private gateway at the AWS side of the VPN connection.\n You must specify either ``TransitGatewayId`` or ``VpnGatewayId``, but not both.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -170,11 +191,14 @@ func vPNConnectionResource(ctx context.Context) (resource.Resource, error) { // "insertionOrder": false, // "items": { // "additionalProperties": false, + // "description": "The tunnel options for a single VPN tunnel.", // "properties": { // "PreSharedKey": { + // "description": "The pre-shared key (PSK) to establish initial authentication between the virtual private gateway and customer gateway.\n Constraints: Allowed characters are alphanumeric characters, periods (.), and underscores (_). Must be between 8 and 64 characters in length and cannot start with zero (0).", // "type": "string" // }, // "TunnelInsideCidr": { + // "description": "The range of inside IP addresses for the tunnel. Any specified CIDR blocks must be unique across all VPN connections that use the same virtual private gateway. \n Constraints: A size /30 CIDR block from the ``169.254.0.0/16`` range. The following CIDR blocks are reserved and cannot be used:\n + ``169.254.0.0/30`` \n + ``169.254.1.0/30`` \n + ``169.254.2.0/30`` \n + ``169.254.3.0/30`` \n + ``169.254.4.0/30`` \n + ``169.254.5.0/30`` \n + ``169.254.169.252/30``", // "type": "string" // } // }, @@ -188,16 +212,18 @@ func vPNConnectionResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: PreSharedKey "pre_shared_key": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "The pre-shared key (PSK) to establish initial authentication between the virtual private gateway and customer gateway.\n Constraints: Allowed characters are alphanumeric characters, periods (.), and underscores (_). Must be between 8 and 64 characters in length and cannot start with zero (0).", + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: TunnelInsideCidr "tunnel_inside_cidr": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "The range of inside IP addresses for the tunnel. Any specified CIDR blocks must be unique across all VPN connections that use the same virtual private gateway. \n Constraints: A size /30 CIDR block from the ``169.254.0.0/16`` range. The following CIDR blocks are reserved and cannot be used:\n + ``169.254.0.0/30`` \n + ``169.254.1.0/30`` \n + ``169.254.2.0/30`` \n + ``169.254.3.0/30`` \n + ``169.254.4.0/30`` \n + ``169.254.5.0/30`` \n + ``169.254.169.252/30``", + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -225,7 +251,7 @@ func vPNConnectionResource(ctx context.Context) (resource.Resource, error) { } schema := schema.Schema{ - Description: "Resource Type definition for AWS::EC2::VPNConnection", + Description: "Specifies a VPN connection between a virtual private gateway and a VPN customer gateway or a transit gateway and a VPN customer gateway.\n To specify a VPN connection between a transit gateway and customer gateway, use the ``TransitGatewayId`` and ``CustomerGatewayId`` properties.\n To specify a VPN connection between a virtual private gateway and customer gateway, use the ``VpnGatewayId`` and ``CustomerGatewayId`` properties.\n For more information, see [](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the *User Guide*.", Version: 1, Attributes: attributes, } @@ -236,6 +262,7 @@ func vPNConnectionResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ "customer_gateway_id": "CustomerGatewayId", + "enable_acceleration": "EnableAcceleration", "key": "Key", "pre_shared_key": "PreSharedKey", "static_routes_only": "StaticRoutesOnly", diff --git a/internal/aws/ec2/vpn_connection_route_resource_gen.go b/internal/aws/ec2/vpn_connection_route_resource_gen.go index 37cfd5576..f1e1f6cf1 100644 --- a/internal/aws/ec2/vpn_connection_route_resource_gen.go +++ b/internal/aws/ec2/vpn_connection_route_resource_gen.go @@ -64,7 +64,7 @@ func vPNConnectionRouteResource(ctx context.Context) (resource.Resource, error) } schema := schema.Schema{ - Description: "Resource Type definition for AWS::EC2::VPNConnectionRoute", + Description: "Specifies a static route for a VPN connection between an existing virtual private gateway and a VPN customer gateway. The static route allows traffic to be routed from the virtual private gateway to the VPN customer gateway.\n For more information, see [](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the *User Guide*.", Version: 1, Attributes: attributes, } diff --git a/internal/aws/elasticloadbalancingv2/load_balancer_resource_gen.go b/internal/aws/elasticloadbalancingv2/load_balancer_resource_gen.go index 07200e36b..95be791b2 100644 --- a/internal/aws/elasticloadbalancingv2/load_balancer_resource_gen.go +++ b/internal/aws/elasticloadbalancingv2/load_balancer_resource_gen.go @@ -74,11 +74,11 @@ func loadBalancerResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "Note: Internal load balancers must use the ``ipv4`` IP address type.\n [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses).\n [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can’t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener.\n [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses).", + // "description": "Note: Internal load balancers must use the ``ipv4`` IP address type.\n [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses).\n [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can?t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener.\n [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses).", // "type": "string" // } "ip_address_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Note: Internal load balancers must use the ``ipv4`` IP address type.\n [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses).\n [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can’t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener.\n [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses).", + Description: "Note: Internal load balancers must use the ``ipv4`` IP address type.\n [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses).\n [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can?t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener.\n [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses).", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/entityresolution/id_mapping_workflow_resource_gen.go b/internal/aws/entityresolution/id_mapping_workflow_resource_gen.go index f3de29c99..057a195c9 100644 --- a/internal/aws/entityresolution/id_mapping_workflow_resource_gen.go +++ b/internal/aws/entityresolution/id_mapping_workflow_resource_gen.go @@ -81,9 +81,6 @@ func idMappingWorkflowResource(ctx context.Context) (resource.Resource, error) { // ], // "type": "string" // }, - // "NormalizationVersion": { - // "type": "string" - // }, // "ProviderProperties": { // "additionalProperties": false, // "properties": { @@ -205,14 +202,6 @@ func idMappingWorkflowResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ - // Property: NormalizationVersion - "normalization_version": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, - PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ - }, /*END ATTRIBUTE*/ // Property: ProviderProperties "provider_properties": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -646,7 +635,6 @@ func idMappingWorkflowResource(ctx context.Context) (resource.Resource, error) { "key": "Key", "kms_arn": "KMSArn", "matching_keys": "MatchingKeys", - "normalization_version": "NormalizationVersion", "output_s3_path": "OutputS3Path", "output_source_config": "OutputSourceConfig", "provider_configuration": "ProviderConfiguration", @@ -667,6 +655,9 @@ func idMappingWorkflowResource(ctx context.Context) (resource.Resource, error) { "workflow_name": "WorkflowName", }) + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/IdMappingTechniques/NormalizationVersion", + }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) opts = opts.WithUpdateTimeoutInMinutes(0) diff --git a/internal/aws/inspectorv2/cis_scan_configuration_resource_gen.go b/internal/aws/inspectorv2/cis_scan_configuration_resource_gen.go index 1c2ecb5e6..971ae94fb 100644 --- a/internal/aws/inspectorv2/cis_scan_configuration_resource_gen.go +++ b/internal/aws/inspectorv2/cis_scan_configuration_resource_gen.go @@ -56,14 +56,10 @@ func cisScanConfigurationResource(ctx context.Context) (resource.Resource, error // } "scan_name": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "Name of the scan", - Optional: true, - Computed: true, + Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthAtLeast(1), }, /*END VALIDATORS*/ - PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: Schedule // CloudFormation resource type schema: @@ -315,11 +311,7 @@ func cisScanConfigurationResource(ctx context.Context) (resource.Resource, error }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "Choose a Schedule cadence", - Optional: true, - Computed: true, - PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ - objectplanmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ + Required: true, }, /*END ATTRIBUTE*/ // Property: SecurityLevel // CloudFormation resource type schema: @@ -332,17 +324,13 @@ func cisScanConfigurationResource(ctx context.Context) (resource.Resource, error // "type": "string" // } "security_level": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.OneOf( "LEVEL_1", "LEVEL_2", ), }, /*END VALIDATORS*/ - PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: @@ -426,11 +414,7 @@ func cisScanConfigurationResource(ctx context.Context) (resource.Resource, error }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Optional: true, - Computed: true, - PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ - objectplanmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ + Required: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/inspectorv2/cis_scan_configuration_resource_gen_test.go b/internal/aws/inspectorv2/cis_scan_configuration_resource_gen_test.go index 7dce4d0ba..0b3976b4f 100644 --- a/internal/aws/inspectorv2/cis_scan_configuration_resource_gen_test.go +++ b/internal/aws/inspectorv2/cis_scan_configuration_resource_gen_test.go @@ -6,6 +6,7 @@ package inspectorv2_test import ( + "regexp" "testing" "github.com/hashicorp/terraform-plugin-testing/helper/resource" @@ -17,30 +18,8 @@ func TestAccAWSInspectorV2CisScanConfiguration_basic(t *testing.T) { td.ResourceTest(t, []resource.TestStep{ { - Config: td.EmptyConfig(), - Check: resource.ComposeTestCheckFunc( - td.CheckExistsInAWS(), - ), - }, - { - ResourceName: td.ResourceName, - ImportState: true, - ImportStateVerify: true, - }, - }) -} - -func TestAccAWSInspectorV2CisScanConfiguration_disappears(t *testing.T) { - td := acctest.NewTestData(t, "AWS::InspectorV2::CisScanConfiguration", "awscc_inspectorv2_cis_scan_configuration", "test") - - td.ResourceTest(t, []resource.TestStep{ - { - Config: td.EmptyConfig(), - Check: resource.ComposeTestCheckFunc( - td.CheckExistsInAWS(), - td.DeleteResource(), - ), - ExpectNonEmptyPlan: true, + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), }, }) } diff --git a/internal/aws/kinesisfirehose/delivery_stream_resource_gen.go b/internal/aws/kinesisfirehose/delivery_stream_resource_gen.go index 1952129ba..10581130f 100644 --- a/internal/aws/kinesisfirehose/delivery_stream_resource_gen.go +++ b/internal/aws/kinesisfirehose/delivery_stream_resource_gen.go @@ -4565,6 +4565,709 @@ func deliveryStreamResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: IcebergDestinationConfiguration + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "BufferingHints": { + // "additionalProperties": false, + // "properties": { + // "IntervalInSeconds": { + // "type": "integer" + // }, + // "SizeInMBs": { + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "CatalogConfiguration": { + // "additionalProperties": false, + // "properties": { + // "CatalogArn": { + // "maxLength": 512, + // "minLength": 1, + // "pattern": "arn:.*", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "CloudWatchLoggingOptions": { + // "additionalProperties": false, + // "properties": { + // "Enabled": { + // "type": "boolean" + // }, + // "LogGroupName": { + // "relationshipRef": { + // "propertyPath": "/properties/LogGroupName", + // "typeName": "AWS::Logs::LogGroup" + // }, + // "type": "string" + // }, + // "LogStreamName": { + // "relationshipRef": { + // "propertyPath": "/properties/LogStreamName", + // "typeName": "AWS::Logs::LogStream" + // }, + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "DestinationTableConfigurationList": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "DestinationDatabaseName": { + // "maxLength": 512, + // "minLength": 1, + // "type": "string" + // }, + // "DestinationTableName": { + // "maxLength": 512, + // "minLength": 1, + // "type": "string" + // }, + // "S3ErrorOutputPrefix": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // }, + // "UniqueKeys": { + // "items": { + // "maxLength": 512, + // "minLength": 1, + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "required": [ + // "DestinationDatabaseName", + // "DestinationTableName" + // ], + // "type": "object" + // }, + // "type": "array" + // }, + // "ProcessingConfiguration": { + // "additionalProperties": false, + // "properties": { + // "Enabled": { + // "type": "boolean" + // }, + // "Processors": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "Parameters": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "ParameterName": { + // "type": "string" + // }, + // "ParameterValue": { + // "anyOf": [ + // {}, + // {}, + // {} + // ], + // "type": "string" + // } + // }, + // "required": [ + // "ParameterValue", + // "ParameterName" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // }, + // "Type": { + // "enum": [ + // "RecordDeAggregation", + // "Decompression", + // "CloudWatchLogProcessing", + // "Lambda", + // "MetadataExtraction", + // "AppendDelimiterToRecord" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Type" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "type": "object" + // }, + // "RetryOptions": { + // "additionalProperties": false, + // "properties": { + // "DurationInSeconds": { + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "RoleARN": { + // "maxLength": 512, + // "minLength": 1, + // "pattern": "arn:.*", + // "relationshipRef": { + // "propertyPath": "/properties/Arn", + // "typeName": "AWS::IAM::Role" + // }, + // "type": "string" + // }, + // "S3Configuration": { + // "additionalProperties": false, + // "properties": { + // "BucketARN": { + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "arn:.*", + // "relationshipRef": { + // "propertyPath": "/properties/Arn", + // "typeName": "AWS::S3::Bucket" + // }, + // "type": "string" + // }, + // "BufferingHints": { + // "additionalProperties": false, + // "properties": { + // "IntervalInSeconds": { + // "type": "integer" + // }, + // "SizeInMBs": { + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "CloudWatchLoggingOptions": { + // "additionalProperties": false, + // "properties": { + // "Enabled": { + // "type": "boolean" + // }, + // "LogGroupName": { + // "relationshipRef": { + // "propertyPath": "/properties/LogGroupName", + // "typeName": "AWS::Logs::LogGroup" + // }, + // "type": "string" + // }, + // "LogStreamName": { + // "relationshipRef": { + // "propertyPath": "/properties/LogStreamName", + // "typeName": "AWS::Logs::LogStream" + // }, + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "CompressionFormat": { + // "enum": [ + // "UNCOMPRESSED", + // "GZIP", + // "ZIP", + // "Snappy", + // "HADOOP_SNAPPY" + // ], + // "type": "string" + // }, + // "EncryptionConfiguration": { + // "additionalProperties": false, + // "properties": { + // "KMSEncryptionConfig": { + // "additionalProperties": false, + // "properties": { + // "AWSKMSKeyARN": { + // "relationshipRef": { + // "propertyPath": "/properties/Arn", + // "typeName": "AWS::KMS::Key" + // }, + // "type": "string" + // } + // }, + // "required": [ + // "AWSKMSKeyARN" + // ], + // "type": "object" + // }, + // "NoEncryptionConfig": { + // "enum": [ + // "NoEncryption" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "ErrorOutputPrefix": { + // "maxLength": 1024, + // "minLength": 0, + // "type": "string" + // }, + // "Prefix": { + // "maxLength": 1024, + // "minLength": 0, + // "type": "string" + // }, + // "RoleARN": { + // "maxLength": 512, + // "minLength": 1, + // "pattern": "arn:.*", + // "relationshipRef": { + // "propertyPath": "/properties/Arn", + // "typeName": "AWS::IAM::Role" + // }, + // "type": "string" + // } + // }, + // "required": [ + // "BucketARN", + // "RoleARN" + // ], + // "type": "object" + // }, + // "s3BackupMode": { + // "enum": [ + // "AllData", + // "FailedDataOnly" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "RoleARN", + // "CatalogConfiguration", + // "S3Configuration" + // ], + // "type": "object" + // } + "iceberg_destination_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BufferingHints + "buffering_hints": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IntervalInSeconds + "interval_in_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SizeInMBs + "size_in_m_bs": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CatalogConfiguration + "catalog_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CatalogArn + "catalog_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 512), + stringvalidator.RegexMatches(regexp.MustCompile("arn:.*"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: CloudWatchLoggingOptions + "cloudwatch_logging_options": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Enabled + "enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LogGroupName + "log_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LogStreamName + "log_stream_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DestinationTableConfigurationList + "destination_table_configuration_list": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DestinationDatabaseName + "destination_database_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 512), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: DestinationTableName + "destination_table_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 512), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: S3ErrorOutputPrefix + "s3_error_output_prefix": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 1024), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: UniqueKeys + "unique_keys": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.UniqueValues(), + listvalidator.ValueStringsAre( + stringvalidator.LengthBetween(1, 512), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ProcessingConfiguration + "processing_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Enabled + "enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Processors + "processors": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Parameters + "parameters": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ParameterName + "parameter_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: ParameterValue + "parameter_value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.UniqueValues(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "RecordDeAggregation", + "Decompression", + "CloudWatchLogProcessing", + "Lambda", + "MetadataExtraction", + "AppendDelimiterToRecord", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.UniqueValues(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RetryOptions + "retry_options": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DurationInSeconds + "duration_in_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RoleARN + "role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 512), + stringvalidator.RegexMatches(regexp.MustCompile("arn:.*"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: S3Configuration + "s3_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BucketARN + "bucket_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 2048), + stringvalidator.RegexMatches(regexp.MustCompile("arn:.*"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: BufferingHints + "buffering_hints": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IntervalInSeconds + "interval_in_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SizeInMBs + "size_in_m_bs": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CloudWatchLoggingOptions + "cloudwatch_logging_options": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Enabled + "enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LogGroupName + "log_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LogStreamName + "log_stream_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CompressionFormat + "compression_format": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: EncryptionConfiguration + "encryption_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: KMSEncryptionConfig + "kms_encryption_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AWSKMSKeyARN + "awskms_key_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: NoEncryptionConfig + "no_encryption_config": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "NoEncryption", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ErrorOutputPrefix + "error_output_prefix": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 1024), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Prefix + "prefix": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 1024), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RoleARN + "role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 512), + stringvalidator.RegexMatches(regexp.MustCompile("arn:.*"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: s3BackupMode + "s_3_backup_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "AllData", + "FailedDataOnly", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + objectplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: KinesisStreamSourceConfiguration // CloudFormation resource type schema: // @@ -6014,6 +6717,18 @@ func deliveryStreamResource(ctx context.Context) (resource.Resource, error) { // "pattern": ".+?\\.snowflakecomputing\\.com", // "type": "string" // }, + // "BufferingHints": { + // "additionalProperties": false, + // "properties": { + // "IntervalInSeconds": { + // "type": "integer" + // }, + // "SizeInMBs": { + // "type": "integer" + // } + // }, + // "type": "object" + // }, // "CloudWatchLoggingOptions": { // "additionalProperties": false, // "properties": { @@ -6365,6 +7080,32 @@ func deliveryStreamResource(ctx context.Context) (resource.Resource, error) { stringvalidator.RegexMatches(regexp.MustCompile(".+?\\.snowflakecomputing\\.com"), ""), }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ + // Property: BufferingHints + "buffering_hints": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IntervalInSeconds + "interval_in_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SizeInMBs + "size_in_m_bs": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: CloudWatchLoggingOptions "cloudwatch_logging_options": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -7637,6 +8378,8 @@ func deliveryStreamResource(ctx context.Context) (resource.Resource, error) { "bucket_arn": "BucketARN", "buffering_hints": "BufferingHints", "case_insensitive": "CaseInsensitive", + "catalog_arn": "CatalogArn", + "catalog_configuration": "CatalogConfiguration", "catalog_id": "CatalogId", "cloudwatch_logging_options": "CloudWatchLoggingOptions", "cluster_endpoint": "ClusterEndpoint", @@ -7664,6 +8407,9 @@ func deliveryStreamResource(ctx context.Context) (resource.Resource, error) { "delivery_stream_name": "DeliveryStreamName", "delivery_stream_type": "DeliveryStreamType", "deserializer": "Deserializer", + "destination_database_name": "DestinationDatabaseName", + "destination_table_configuration_list": "DestinationTableConfigurationList", + "destination_table_name": "DestinationTableName", "dictionary_key_threshold": "DictionaryKeyThreshold", "document_id_options": "DocumentIdOptions", "domain_arn": "DomainARN", @@ -7685,6 +8431,7 @@ func deliveryStreamResource(ctx context.Context) (resource.Resource, error) { "hec_token": "HECToken", "hive_json_ser_de": "HiveJsonSerDe", "http_endpoint_destination_configuration": "HttpEndpointDestinationConfiguration", + "iceberg_destination_configuration": "IcebergDestinationConfiguration", "index_name": "IndexName", "index_rotation_period": "IndexRotationPeriod", "input_format_configuration": "InputFormatConfiguration", @@ -7729,6 +8476,8 @@ func deliveryStreamResource(ctx context.Context) (resource.Resource, error) { "s3_backup_mode": "S3BackupMode", "s3_configuration": "S3Configuration", "s3_destination_configuration": "S3DestinationConfiguration", + "s3_error_output_prefix": "S3ErrorOutputPrefix", + "s_3_backup_mode": "s3BackupMode", "schema": "Schema", "schema_configuration": "SchemaConfiguration", "secret_arn": "SecretARN", @@ -7750,6 +8499,7 @@ func deliveryStreamResource(ctx context.Context) (resource.Resource, error) { "topic_name": "TopicName", "type": "Type", "type_name": "TypeName", + "unique_keys": "UniqueKeys", "url": "Url", "user": "User", "username": "Username", diff --git a/internal/aws/panorama/application_instance_resource_gen.go b/internal/aws/panorama/application_instance_resource_gen.go index 0baea18e4..1d1725c76 100644 --- a/internal/aws/panorama/application_instance_resource_gen.go +++ b/internal/aws/panorama/application_instance_resource_gen.go @@ -49,14 +49,16 @@ func applicationInstanceResource(ctx context.Context) (resource.Resource, error) // CloudFormation resource type schema: // // { + // "description": "The ID of an application instance to replace with the new instance.", // "maxLength": 255, // "minLength": 1, // "pattern": "^[a-zA-Z0-9\\-\\_]+$", // "type": "string" // } "application_instance_id_to_replace": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "The ID of an application instance to replace with the new instance.", + Optional: true, + Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 255), stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9\\-\\_]+$"), ""), @@ -97,13 +99,15 @@ func applicationInstanceResource(ctx context.Context) (resource.Resource, error) // CloudFormation resource type schema: // // { + // "description": "The device's ID.", // "maxLength": 255, // "minLength": 1, // "pattern": "^[a-zA-Z0-9\\-\\_]+$", // "type": "string" // } "default_runtime_context_device": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Description: "The device's ID.", + Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 255), stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9\\-\\_]+$"), ""), @@ -131,14 +135,16 @@ func applicationInstanceResource(ctx context.Context) (resource.Resource, error) // CloudFormation resource type schema: // // { + // "description": "A description for the application instance.", // "maxLength": 255, // "minLength": 0, // "pattern": "^.*$", // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "A description for the application instance.", + Optional: true, + Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(0, 255), stringvalidator.RegexMatches(regexp.MustCompile("^.*$"), ""), @@ -182,8 +188,10 @@ func applicationInstanceResource(ctx context.Context) (resource.Resource, error) // // { // "additionalProperties": false, + // "description": "Setting overrides for the application manifest.", // "properties": { // "PayloadData": { + // "description": "The overrides document.", // "maxLength": 51200, // "minLength": 0, // "pattern": "^.+$", @@ -196,8 +204,9 @@ func applicationInstanceResource(ctx context.Context) (resource.Resource, error) Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: PayloadData "payload_data": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "The overrides document.", + Optional: true, + Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(0, 51200), stringvalidator.RegexMatches(regexp.MustCompile("^.+$"), ""), @@ -207,8 +216,9 @@ func applicationInstanceResource(ctx context.Context) (resource.Resource, error) }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Optional: true, - Computed: true, + Description: "Setting overrides for the application manifest.", + Optional: true, + Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ objectplanmodifier.UseStateForUnknown(), objectplanmodifier.RequiresReplaceIfConfigured(), @@ -219,8 +229,10 @@ func applicationInstanceResource(ctx context.Context) (resource.Resource, error) // // { // "additionalProperties": false, + // "description": "The application's manifest document.", // "properties": { // "PayloadData": { + // "description": "The application manifest.", // "maxLength": 51200, // "minLength": 1, // "pattern": "^.+$", @@ -233,8 +245,9 @@ func applicationInstanceResource(ctx context.Context) (resource.Resource, error) Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: PayloadData "payload_data": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "The application manifest.", + Optional: true, + Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 51200), stringvalidator.RegexMatches(regexp.MustCompile("^.+$"), ""), @@ -244,7 +257,8 @@ func applicationInstanceResource(ctx context.Context) (resource.Resource, error) }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Required: true, + Description: "The application's manifest document.", + Required: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ objectplanmodifier.RequiresReplace(), }, /*END PLAN MODIFIERS*/ @@ -253,14 +267,16 @@ func applicationInstanceResource(ctx context.Context) (resource.Resource, error) // CloudFormation resource type schema: // // { + // "description": "A name for the application instance.", // "maxLength": 255, // "minLength": 1, // "pattern": "^[a-zA-Z0-9\\-\\_]+$", // "type": "string" // } "name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "A name for the application instance.", + Optional: true, + Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 255), stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9\\-\\_]+$"), ""), @@ -274,14 +290,16 @@ func applicationInstanceResource(ctx context.Context) (resource.Resource, error) // CloudFormation resource type schema: // // { + // "description": "The ARN of a runtime role for the application instance.", // "maxLength": 255, // "minLength": 1, // "pattern": "^arn:[a-z0-9][-.a-z0-9]{0,62}:iam::[0-9]{12}:role/.+$", // "type": "string" // } "runtime_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "The ARN of a runtime role for the application instance.", + Optional: true, + Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 255), stringvalidator.RegexMatches(regexp.MustCompile("^arn:[a-z0-9][-.a-z0-9]{0,62}:iam::[0-9]{12}:role/.+$"), ""), @@ -333,20 +351,21 @@ func applicationInstanceResource(ctx context.Context) (resource.Resource, error) // CloudFormation resource type schema: // // { - // "description": "List of tags", + // "description": "Tags for the application instance.", // "insertionOrder": false, // "items": { // "additionalProperties": false, + // "description": "", // "properties": { // "Key": { - // "description": "A string used to identify this tag", + // "description": "", // "maxLength": 128, // "minLength": 1, // "pattern": "^.+$", // "type": "string" // }, // "Value": { - // "description": "A string containing the value for the tag", + // "description": "", // "maxLength": 256, // "minLength": 0, // "pattern": "^.+$", @@ -367,7 +386,7 @@ func applicationInstanceResource(ctx context.Context) (resource.Resource, error) Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Key "key": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A string used to identify this tag", + Description: "", Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 128), @@ -376,7 +395,7 @@ func applicationInstanceResource(ctx context.Context) (resource.Resource, error) }, /*END ATTRIBUTE*/ // Property: Value "value": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A string containing the value for the tag", + Description: "", Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(0, 256), @@ -385,7 +404,7 @@ func applicationInstanceResource(ctx context.Context) (resource.Resource, error) }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "List of tags", + Description: "Tags for the application instance.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ @@ -404,7 +423,7 @@ func applicationInstanceResource(ctx context.Context) (resource.Resource, error) } schema := schema.Schema{ - Description: "Schema for ApplicationInstance CloudFormation Resource", + Description: "Creates an application instance and deploys it to a device.", Version: 1, Attributes: attributes, } diff --git a/internal/aws/panorama/package_resource_gen.go b/internal/aws/panorama/package_resource_gen.go index 7f1748b2e..d0a84c9a1 100644 --- a/internal/aws/panorama/package_resource_gen.go +++ b/internal/aws/panorama/package_resource_gen.go @@ -75,13 +75,15 @@ func packageResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { + // "description": "A name for the package.", // "maxLength": 128, // "minLength": 1, // "pattern": "^[a-zA-Z0-9\\-\\_]+$", // "type": "string" // } "package_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Description: "A name for the package.", + Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 128), stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9\\-\\_]+$"), ""), @@ -95,20 +97,26 @@ func packageResource(ctx context.Context) (resource.Resource, error) { // // { // "additionalProperties": false, + // "description": "A storage location.", // "properties": { // "BinaryPrefixLocation": { + // "description": "The location's binary prefix.", // "type": "string" // }, // "Bucket": { + // "description": "The location's bucket.", // "type": "string" // }, // "GeneratedPrefixLocation": { + // "description": "The location's generated prefix.", // "type": "string" // }, // "ManifestPrefixLocation": { + // "description": "The location's manifest prefix.", // "type": "string" // }, // "RepoPrefixLocation": { + // "description": "The location's repo prefix.", // "type": "string" // } // }, @@ -118,42 +126,48 @@ func packageResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: BinaryPrefixLocation "binary_prefix_location": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "The location's binary prefix.", + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: Bucket "bucket": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "The location's bucket.", + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: GeneratedPrefixLocation "generated_prefix_location": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "The location's generated prefix.", + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: ManifestPrefixLocation "manifest_prefix_location": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "The location's manifest prefix.", + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: RepoPrefixLocation "repo_prefix_location": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "The location's repo prefix.", + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Optional: true, - Computed: true, + Description: "A storage location.", + Optional: true, + Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -162,17 +176,21 @@ func packageResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { + // "description": "Tags for the package.", // "insertionOrder": false, // "items": { // "additionalProperties": false, + // "description": "", // "properties": { // "Key": { + // "description": "", // "maxLength": 128, // "minLength": 1, // "pattern": "^.+$", // "type": "string" // }, // "Value": { + // "description": "", // "maxLength": 256, // "minLength": 0, // "pattern": "^.+$", @@ -193,7 +211,8 @@ func packageResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Key "key": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Description: "", + Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 128), stringvalidator.RegexMatches(regexp.MustCompile("^.+$"), ""), @@ -201,7 +220,8 @@ func packageResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Value "value": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Description: "", + Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(0, 256), stringvalidator.RegexMatches(regexp.MustCompile("^.+$"), ""), @@ -209,8 +229,9 @@ func packageResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Optional: true, - Computed: true, + Description: "Tags for the package.", + Optional: true, + Computed: true, PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ setplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -227,7 +248,7 @@ func packageResource(ctx context.Context) (resource.Resource, error) { } schema := schema.Schema{ - Description: "Schema for Package CloudFormation Resource", + Description: "Creates a package and storage location in an Amazon S3 access point.", Version: 1, Attributes: attributes, } diff --git a/internal/aws/panorama/package_version_resource_gen.go b/internal/aws/panorama/package_version_resource_gen.go index 1d8a00217..894a46042 100644 --- a/internal/aws/panorama/package_version_resource_gen.go +++ b/internal/aws/panorama/package_version_resource_gen.go @@ -33,10 +33,12 @@ func packageVersionResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { + // "description": "", // "type": "boolean" // } "is_latest_patch": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "", + Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ boolplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -45,11 +47,13 @@ func packageVersionResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { + // "description": "Whether to mark the new version as the latest version.", // "type": "boolean" // } "mark_latest": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "Whether to mark the new version as the latest version.", + Optional: true, + Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ boolplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -58,14 +62,16 @@ func packageVersionResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { + // "description": "An owner account.", // "maxLength": 12, // "minLength": 1, // "pattern": "^[0-9a-z\\_]+$", // "type": "string" // } "owner_account": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "An owner account.", + Optional: true, + Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 12), stringvalidator.RegexMatches(regexp.MustCompile("^[0-9a-z\\_]+$"), ""), @@ -93,13 +99,15 @@ func packageVersionResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { + // "description": "A package ID.", // "maxLength": 255, // "minLength": 1, // "pattern": "^[a-zA-Z0-9\\-\\_\\/]+$", // "type": "string" // } "package_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Description: "A package ID.", + Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 255), stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9\\-\\_\\/]+$"), ""), @@ -127,13 +135,15 @@ func packageVersionResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { + // "description": "A package version.", // "maxLength": 255, // "minLength": 1, // "pattern": "^([0-9]+)\\.([0-9]+)$", // "type": "string" // } "package_version": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Description: "A package version.", + Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 255), stringvalidator.RegexMatches(regexp.MustCompile("^([0-9]+)\\.([0-9]+)$"), ""), @@ -146,13 +156,15 @@ func packageVersionResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { + // "description": "A patch version.", // "maxLength": 255, // "minLength": 1, // "pattern": "^[a-z0-9]+$", // "type": "string" // } "patch_version": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Description: "A patch version.", + Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 255), stringvalidator.RegexMatches(regexp.MustCompile("^[a-z0-9]+$"), ""), @@ -209,14 +221,16 @@ func packageVersionResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { + // "description": "If the version was marked latest, the new version to maker as latest.", // "maxLength": 255, // "minLength": 1, // "pattern": "^[a-z0-9]+$", // "type": "string" // } "updated_latest_patch_version": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "If the version was marked latest, the new version to maker as latest.", + Optional: true, + Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 255), stringvalidator.RegexMatches(regexp.MustCompile("^[a-z0-9]+$"), ""), @@ -238,7 +252,7 @@ func packageVersionResource(ctx context.Context) (resource.Resource, error) { } schema := schema.Schema{ - Description: "Schema for PackageVersion Resource Type", + Description: "Registers a package version.", Version: 1, Attributes: attributes, } diff --git a/internal/aws/rds/integration_resource_gen.go b/internal/aws/rds/integration_resource_gen.go index 9bbbaa410..1d0f3dc39 100644 --- a/internal/aws/rds/integration_resource_gen.go +++ b/internal/aws/rds/integration_resource_gen.go @@ -36,7 +36,7 @@ func integrationResource(ctx context.Context) (resource.Resource, error) { // // { // "additionalProperties": false, - // "description": "An optional set of non-secret key–value pairs that contains additional contextual information about the data.", + // "description": "An optional set of non-secret key?value pairs that contains additional contextual information about the data. For more information, see [Encryption context](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) in the *Key Management Service Developer Guide*.\n You can only include this parameter if you specify the ``KMSKeyId`` parameter.", // "patternProperties": { // "": { // "maxLength": 131072, @@ -49,7 +49,7 @@ func integrationResource(ctx context.Context) (resource.Resource, error) { "additional_encryption_context": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "An optional set of non-secret key–value pairs that contains additional contextual information about the data.", + Description: "An optional set of non-secret key?value pairs that contains additional contextual information about the data. For more information, see [Encryption context](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) in the *Key Management Service Developer Guide*.\n You can only include this parameter if you specify the ``KMSKeyId`` parameter.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ @@ -61,10 +61,12 @@ func integrationResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { + // "description": "", // "type": "string" // } "create_time": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "", + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -73,14 +75,14 @@ func integrationResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The data filter for the integration.", + // "description": "Data filters for the integration. These filters determine which tables from the source database are sent to the target Amazon Redshift data warehouse.", // "maxLength": 25600, // "minLength": 1, // "pattern": "[a-zA-Z0-9_ \"\\\\\\-$,*.:?+\\/]*", // "type": "string" // } "data_filter": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The data filter for the integration.", + Description: "Data filters for the integration. These filters determine which tables from the source database are sent to the target Amazon Redshift data warehouse.", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -95,13 +97,13 @@ func integrationResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The description of the integration.", + // "description": "A description of the integration.", // "maxLength": 1000, // "minLength": 1, // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The description of the integration.", + Description: "A description of the integration.", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -115,11 +117,11 @@ func integrationResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The ARN of the integration.", + // "description": "", // "type": "string" // } "integration_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ARN of the integration.", + Description: "", Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -149,11 +151,11 @@ func integrationResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "An optional AWS Key Management System (AWS KMS) key ARN for the key used to to encrypt the integration. The resource accepts the key ID and the key ARN forms. The key ID form can be used if the KMS key is owned by te same account. If the KMS key belongs to a different account than the calling account, the full key ARN must be specified. Do not use the key alias or the key alias ARN as this will cause a false drift of the resource.", + // "description": "The AWS Key Management System (AWS KMS) key identifier for the key to use to encrypt the integration. If you don't specify an encryption key, RDS uses a default AWS owned key.", // "type": "string" // } "kms_key_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "An optional AWS Key Management System (AWS KMS) key ARN for the key used to to encrypt the integration. The resource accepts the key ID and the key ARN forms. The key ID form can be used if the KMS key is owned by te same account. If the KMS key belongs to a different account than the calling account, the full key ARN must be specified. Do not use the key alias or the key alias ARN as this will cause a false drift of the resource.", + Description: "The AWS Key Management System (AWS KMS) key identifier for the key to use to encrypt the integration. If you don't specify an encryption key, RDS uses a default AWS owned key.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -165,11 +167,11 @@ func integrationResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The Amazon Resource Name (ARN) of the Aurora DB cluster to use as the source for replication.", + // "description": "The Amazon Resource Name (ARN) of the database to use as the source for replication.", // "type": "string" // } "source_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Amazon Resource Name (ARN) of the Aurora DB cluster to use as the source for replication.", + Description: "The Amazon Resource Name (ARN) of the database to use as the source for replication.", Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), @@ -179,20 +181,20 @@ func integrationResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "An array of key-value pairs to apply to this resource.", + // "description": "A list of tags. For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide.*.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "A key-value pair to associate with a resource.", + // "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", // "properties": { // "Key": { - // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + // "description": "A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", // "maxLength": 128, // "minLength": 1, // "type": "string" // }, // "Value": { - // "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + // "description": "A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", // "maxLength": 256, // "minLength": 0, // "type": "string" @@ -212,7 +214,7 @@ func integrationResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Key "key": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + Description: "A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 128), @@ -220,7 +222,7 @@ func integrationResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Value "value": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + Description: "A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -232,7 +234,7 @@ func integrationResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "An array of key-value pairs to apply to this resource.", + Description: "A list of tags. For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide.*.", Optional: true, Computed: true, Validators: []validator.Set{ /*START VALIDATORS*/ @@ -268,7 +270,7 @@ func integrationResource(ctx context.Context) (resource.Resource, error) { } schema := schema.Schema{ - Description: "Creates a zero-ETL integration with Amazon Redshift.", + Description: "A zero-ETL integration with Amazon Redshift.", Version: 1, Attributes: attributes, } diff --git a/internal/aws/sagemaker/app_resource_gen.go b/internal/aws/sagemaker/app_resource_gen.go index 2a218d819..c9df6c9ca 100644 --- a/internal/aws/sagemaker/app_resource_gen.go +++ b/internal/aws/sagemaker/app_resource_gen.go @@ -193,6 +193,12 @@ func appResource(ctx context.Context) (resource.Resource, error) { // ], // "type": "string" // }, + // "LifecycleConfigArn": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, // "SageMakerImageArn": { // "description": "The ARN of the SageMaker image that the image version belongs to.", // "maxLength": 256, @@ -288,6 +294,19 @@ func appResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArn + "lifecycle_config_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(256), + stringvalidator.RegexMatches(regexp.MustCompile("arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: SageMakerImageArn "sage_maker_image_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The ARN of the SageMaker image that the image version belongs to.", @@ -433,6 +452,7 @@ func appResource(ctx context.Context) (resource.Resource, error) { "domain_id": "DomainId", "instance_type": "InstanceType", "key": "Key", + "lifecycle_config_arn": "LifecycleConfigArn", "resource_spec": "ResourceSpec", "sage_maker_image_arn": "SageMakerImageArn", "sage_maker_image_version_arn": "SageMakerImageVersionArn", diff --git a/internal/aws/sagemaker/domain_resource_gen.go b/internal/aws/sagemaker/domain_resource_gen.go index b3e583d70..df4d92bb8 100644 --- a/internal/aws/sagemaker/domain_resource_gen.go +++ b/internal/aws/sagemaker/domain_resource_gen.go @@ -444,6 +444,19 @@ func domainResource(ctx context.Context) (resource.Resource, error) { // } // }, // "type": "object" + // }, + // "LifecycleConfigArns": { + // "description": "A list of LifecycleConfigArns available for use with JupyterServer apps.", + // "items": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, + // "maxItems": 30, + // "minItems": 0, + // "type": "array", + // "uniqueItems": false // } // }, // "type": "object" @@ -581,6 +594,19 @@ func domainResource(ctx context.Context) (resource.Resource, error) { // } // }, // "type": "object" + // }, + // "LifecycleConfigArns": { + // "description": "A list of LifecycleConfigArns available for use with KernelGateway apps.", + // "items": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, + // "maxItems": 30, + // "minItems": 0, + // "type": "array", + // "uniqueItems": false // } // }, // "type": "object" @@ -1068,6 +1094,23 @@ func domainResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArns + "lifecycle_config_arns": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of LifecycleConfigArns available for use with JupyterServer apps.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(0, 30), + listvalidator.ValueStringsAre( + stringvalidator.LengthAtMost(256), + stringvalidator.RegexMatches(regexp.MustCompile("arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*"), ""), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "The Jupyter server's app settings.", Optional: true, @@ -1252,6 +1295,23 @@ func domainResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArns + "lifecycle_config_arns": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of LifecycleConfigArns available for use with KernelGateway apps.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(0, 30), + listvalidator.ValueStringsAre( + stringvalidator.LengthAtMost(256), + stringvalidator.RegexMatches(regexp.MustCompile("arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*"), ""), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "The kernel gateway app settings.", Optional: true, @@ -1812,6 +1872,19 @@ func domainResource(ctx context.Context) (resource.Resource, error) { // } // }, // "type": "object" + // }, + // "LifecycleConfigArns": { + // "description": "A list of LifecycleConfigArns available for use with JupyterServer apps.", + // "items": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, + // "maxItems": 30, + // "minItems": 0, + // "type": "array", + // "uniqueItems": false // } // }, // "type": "object" @@ -1949,6 +2022,19 @@ func domainResource(ctx context.Context) (resource.Resource, error) { // } // }, // "type": "object" + // }, + // "LifecycleConfigArns": { + // "description": "A list of LifecycleConfigArns available for use with KernelGateway apps.", + // "items": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, + // "maxItems": 30, + // "minItems": 0, + // "type": "array", + // "uniqueItems": false // } // }, // "type": "object" @@ -2221,7 +2307,7 @@ func domainResource(ctx context.Context) (resource.Resource, error) { // "DataWrangler", // "FeatureStore", // "EmrClusters", - // "AutoML", + // "AutoMl", // "Experiments", // "Training", // "ModelEvaluation", @@ -2892,6 +2978,23 @@ func domainResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArns + "lifecycle_config_arns": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of LifecycleConfigArns available for use with JupyterServer apps.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(0, 30), + listvalidator.ValueStringsAre( + stringvalidator.LengthAtMost(256), + stringvalidator.RegexMatches(regexp.MustCompile("arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*"), ""), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "The Jupyter server's app settings.", Optional: true, @@ -3076,6 +3179,23 @@ func domainResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArns + "lifecycle_config_arns": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of LifecycleConfigArns available for use with KernelGateway apps.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(0, 30), + listvalidator.ValueStringsAre( + stringvalidator.LengthAtMost(256), + stringvalidator.RegexMatches(regexp.MustCompile("arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*"), ""), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "The kernel gateway app settings.", Optional: true, @@ -3471,7 +3591,7 @@ func domainResource(ctx context.Context) (resource.Resource, error) { "DataWrangler", "FeatureStore", "EmrClusters", - "AutoML", + "AutoMl", "Experiments", "Training", "ModelEvaluation", diff --git a/internal/aws/sagemaker/space_resource_gen.go b/internal/aws/sagemaker/space_resource_gen.go index 256db8538..e597245d9 100644 --- a/internal/aws/sagemaker/space_resource_gen.go +++ b/internal/aws/sagemaker/space_resource_gen.go @@ -20,6 +20,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" "github.com/hashicorp/terraform-provider-awscc/internal/generic" "github.com/hashicorp/terraform-provider-awscc/internal/registry" ) @@ -234,6 +235,12 @@ func spaceResource(ctx context.Context) (resource.Resource, error) { // ], // "type": "string" // }, + // "LifecycleConfigArn": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, // "SageMakerImageArn": { // "description": "The ARN of the SageMaker image that the image version belongs to.", // "maxLength": 256, @@ -377,6 +384,12 @@ func spaceResource(ctx context.Context) (resource.Resource, error) { // ], // "type": "string" // }, + // "LifecycleConfigArn": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, // "SageMakerImageArn": { // "description": "The ARN of the SageMaker image that the image version belongs to.", // "maxLength": 256, @@ -471,6 +484,12 @@ func spaceResource(ctx context.Context) (resource.Resource, error) { // ], // "type": "string" // }, + // "LifecycleConfigArn": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, // "SageMakerImageArn": { // "description": "The ARN of the SageMaker image that the image version belongs to.", // "maxLength": 256, @@ -485,6 +504,19 @@ func spaceResource(ctx context.Context) (resource.Resource, error) { // } // }, // "type": "object" + // }, + // "LifecycleConfigArns": { + // "description": "A list of LifecycleConfigArns available for use with JupyterServer apps.", + // "items": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, + // "maxItems": 30, + // "minItems": 0, + // "type": "array", + // "uniqueItems": false // } // }, // "type": "object" @@ -601,6 +633,12 @@ func spaceResource(ctx context.Context) (resource.Resource, error) { // ], // "type": "string" // }, + // "LifecycleConfigArn": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, // "SageMakerImageArn": { // "description": "The ARN of the SageMaker image that the image version belongs to.", // "maxLength": 256, @@ -615,6 +653,19 @@ func spaceResource(ctx context.Context) (resource.Resource, error) { // } // }, // "type": "object" + // }, + // "LifecycleConfigArns": { + // "description": "A list of LifecycleConfigArns available for use with KernelGateway apps.", + // "items": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, + // "maxItems": 30, + // "minItems": 0, + // "type": "array", + // "uniqueItems": false // } // }, // "type": "object" @@ -748,6 +799,19 @@ func spaceResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArn + "lifecycle_config_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(256), + stringvalidator.RegexMatches(regexp.MustCompile("arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: SageMakerImageArn "sage_maker_image_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The ARN of the SageMaker image that the image version belongs to.", @@ -929,6 +993,19 @@ func spaceResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArn + "lifecycle_config_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(256), + stringvalidator.RegexMatches(regexp.MustCompile("arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: SageMakerImageArn "sage_maker_image_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The ARN of the SageMaker image that the image version belongs to.", @@ -1052,6 +1129,19 @@ func spaceResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArn + "lifecycle_config_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(256), + stringvalidator.RegexMatches(regexp.MustCompile("arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: SageMakerImageArn "sage_maker_image_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The ARN of the SageMaker image that the image version belongs to.", @@ -1085,6 +1175,23 @@ func spaceResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArns + "lifecycle_config_arns": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of LifecycleConfigArns available for use with JupyterServer apps.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(0, 30), + listvalidator.ValueStringsAre( + stringvalidator.LengthAtMost(256), + stringvalidator.RegexMatches(regexp.MustCompile("arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*"), ""), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "The Jupyter server's app settings.", Optional: true, @@ -1221,6 +1328,19 @@ func spaceResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArn + "lifecycle_config_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(256), + stringvalidator.RegexMatches(regexp.MustCompile("arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: SageMakerImageArn "sage_maker_image_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The ARN of the SageMaker image that the image version belongs to.", @@ -1255,6 +1375,23 @@ func spaceResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArns + "lifecycle_config_arns": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of LifecycleConfigArns available for use with KernelGateway apps.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(0, 30), + listvalidator.ValueStringsAre( + stringvalidator.LengthAtMost(256), + stringvalidator.RegexMatches(regexp.MustCompile("arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*"), ""), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "The kernel gateway app settings.", Optional: true, @@ -1455,6 +1592,8 @@ func spaceResource(ctx context.Context) (resource.Resource, error) { "jupyter_server_app_settings": "JupyterServerAppSettings", "kernel_gateway_app_settings": "KernelGatewayAppSettings", "key": "Key", + "lifecycle_config_arn": "LifecycleConfigArn", + "lifecycle_config_arns": "LifecycleConfigArns", "owner_user_profile_name": "OwnerUserProfileName", "ownership_settings": "OwnershipSettings", "repository_url": "RepositoryUrl", diff --git a/internal/aws/sagemaker/studio_lifecycle_config_resource_gen.go b/internal/aws/sagemaker/studio_lifecycle_config_resource_gen.go new file mode 100644 index 000000000..092a0f338 --- /dev/null +++ b/internal/aws/sagemaker/studio_lifecycle_config_resource_gen.go @@ -0,0 +1,223 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package sagemaker + +import ( + "context" + "regexp" + + "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_sagemaker_studio_lifecycle_config", studioLifecycleConfigResource) +} + +// studioLifecycleConfigResource returns the Terraform awscc_sagemaker_studio_lifecycle_config resource. +// This Terraform resource corresponds to the CloudFormation AWS::SageMaker::StudioLifecycleConfig resource. +func studioLifecycleConfigResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: StudioLifecycleConfigAppType + // CloudFormation resource type schema: + // + // { + // "description": "The App type that the Lifecycle Configuration is attached to.", + // "enum": [ + // "JupyterServer", + // "KernelGateway", + // "CodeEditor", + // "JupyterLab" + // ], + // "type": "string" + // } + "studio_lifecycle_config_app_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The App type that the Lifecycle Configuration is attached to.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "JupyterServer", + "KernelGateway", + "CodeEditor", + "JupyterLab", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: StudioLifecycleConfigArn + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration.", + // "maxLength": 256, + // "minLength": 1, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // } + "studio_lifecycle_config_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the Lifecycle Configuration.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: StudioLifecycleConfigContent + // CloudFormation resource type schema: + // + // { + // "description": "The content of your Amazon SageMaker Studio Lifecycle Configuration script.", + // "maxLength": 16384, + // "minLength": 1, + // "pattern": "[\\S\\s]+", + // "type": "string" + // } + "studio_lifecycle_config_content": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The content of your Amazon SageMaker Studio Lifecycle Configuration script.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 16384), + stringvalidator.RegexMatches(regexp.MustCompile("[\\S\\s]+"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: StudioLifecycleConfigName + // CloudFormation resource type schema: + // + // { + // "description": "The name of the Amazon SageMaker Studio Lifecycle Configuration.", + // "maxLength": 63, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + // "type": "string" + // } + "studio_lifecycle_config_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the Amazon SageMaker Studio Lifecycle Configuration.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 63), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "Tags to be associated with the Lifecycle Configuration.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 50, + // "minItems": 0, + // "type": "array", + // "uniqueItems": false + // } + "tags": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "Tags to be associated with the Lifecycle Configuration.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(0, 50), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + listplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + // Corresponds to CloudFormation primaryIdentifier. + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Resource Type definition for AWS::SageMaker::StudioLifecycleConfig", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::SageMaker::StudioLifecycleConfig").WithTerraformTypeName("awscc_sagemaker_studio_lifecycle_config") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "key": "Key", + "studio_lifecycle_config_app_type": "StudioLifecycleConfigAppType", + "studio_lifecycle_config_arn": "StudioLifecycleConfigArn", + "studio_lifecycle_config_content": "StudioLifecycleConfigContent", + "studio_lifecycle_config_name": "StudioLifecycleConfigName", + "tags": "Tags", + "value": "Value", + }) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/sagemaker/studio_lifecycle_config_resource_gen_test.go b/internal/aws/sagemaker/studio_lifecycle_config_resource_gen_test.go new file mode 100644 index 000000000..cc8983c4a --- /dev/null +++ b/internal/aws/sagemaker/studio_lifecycle_config_resource_gen_test.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package sagemaker_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSSageMakerStudioLifecycleConfig_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::SageMaker::StudioLifecycleConfig", "awscc_sagemaker_studio_lifecycle_config", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/sagemaker/user_profile_resource_gen.go b/internal/aws/sagemaker/user_profile_resource_gen.go index c550e1b19..93f079784 100644 --- a/internal/aws/sagemaker/user_profile_resource_gen.go +++ b/internal/aws/sagemaker/user_profile_resource_gen.go @@ -310,6 +310,12 @@ func userProfileResource(ctx context.Context) (resource.Resource, error) { // ], // "type": "string" // }, + // "LifecycleConfigArn": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, // "SageMakerImageArn": { // "description": "The ARN of the SageMaker image that the image version belongs to.", // "maxLength": 256, @@ -540,6 +546,12 @@ func userProfileResource(ctx context.Context) (resource.Resource, error) { // ], // "type": "string" // }, + // "LifecycleConfigArn": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, // "SageMakerImageArn": { // "description": "The ARN of the SageMaker image that the image version belongs to.", // "maxLength": 256, @@ -647,6 +659,12 @@ func userProfileResource(ctx context.Context) (resource.Resource, error) { // ], // "type": "string" // }, + // "LifecycleConfigArn": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, // "SageMakerImageArn": { // "description": "The ARN of the SageMaker image that the image version belongs to.", // "maxLength": 256, @@ -661,6 +679,19 @@ func userProfileResource(ctx context.Context) (resource.Resource, error) { // } // }, // "type": "object" + // }, + // "LifecycleConfigArns": { + // "description": "A list of LifecycleConfigArns available for use with JupyterServer apps.", + // "items": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, + // "maxItems": 30, + // "minItems": 0, + // "type": "array", + // "uniqueItems": false // } // }, // "type": "object" @@ -777,6 +808,12 @@ func userProfileResource(ctx context.Context) (resource.Resource, error) { // ], // "type": "string" // }, + // "LifecycleConfigArn": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, // "SageMakerImageArn": { // "description": "The ARN of the SageMaker image that the image version belongs to.", // "maxLength": 256, @@ -791,6 +828,19 @@ func userProfileResource(ctx context.Context) (resource.Resource, error) { // } // }, // "type": "object" + // }, + // "LifecycleConfigArns": { + // "description": "A list of LifecycleConfigArns available for use with KernelGateway apps.", + // "items": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, + // "maxItems": 30, + // "minItems": 0, + // "type": "array", + // "uniqueItems": false // } // }, // "type": "object" @@ -926,7 +976,7 @@ func userProfileResource(ctx context.Context) (resource.Resource, error) { // "DataWrangler", // "FeatureStore", // "EmrClusters", - // "AutoML", + // "AutoMl", // "Experiments", // "Training", // "ModelEvaluation", @@ -1079,6 +1129,19 @@ func userProfileResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArn + "lifecycle_config_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(256), + stringvalidator.RegexMatches(regexp.MustCompile("arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: SageMakerImageArn "sage_maker_image_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The ARN of the SageMaker image that the image version belongs to.", @@ -1385,6 +1448,19 @@ func userProfileResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArn + "lifecycle_config_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(256), + stringvalidator.RegexMatches(regexp.MustCompile("arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: SageMakerImageArn "sage_maker_image_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The ARN of the SageMaker image that the image version belongs to.", @@ -1526,6 +1602,19 @@ func userProfileResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArn + "lifecycle_config_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(256), + stringvalidator.RegexMatches(regexp.MustCompile("arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: SageMakerImageArn "sage_maker_image_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The ARN of the SageMaker image that the image version belongs to.", @@ -1559,6 +1648,23 @@ func userProfileResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArns + "lifecycle_config_arns": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of LifecycleConfigArns available for use with JupyterServer apps.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(0, 30), + listvalidator.ValueStringsAre( + stringvalidator.LengthAtMost(256), + stringvalidator.RegexMatches(regexp.MustCompile("arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*"), ""), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "The Jupyter server's app settings.", Optional: true, @@ -1695,6 +1801,19 @@ func userProfileResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArn + "lifecycle_config_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(256), + stringvalidator.RegexMatches(regexp.MustCompile("arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: SageMakerImageArn "sage_maker_image_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The ARN of the SageMaker image that the image version belongs to.", @@ -1729,6 +1848,23 @@ func userProfileResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArns + "lifecycle_config_arns": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of LifecycleConfigArns available for use with KernelGateway apps.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(0, 30), + listvalidator.ValueStringsAre( + stringvalidator.LengthAtMost(256), + stringvalidator.RegexMatches(regexp.MustCompile("arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*"), ""), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "The kernel gateway app settings.", Optional: true, @@ -1942,7 +2078,7 @@ func userProfileResource(ctx context.Context) (resource.Resource, error) { "DataWrangler", "FeatureStore", "EmrClusters", - "AutoML", + "AutoMl", "Experiments", "Training", "ModelEvaluation", @@ -2023,6 +2159,7 @@ func userProfileResource(ctx context.Context) (resource.Resource, error) { "jupyter_server_app_settings": "JupyterServerAppSettings", "kernel_gateway_app_settings": "KernelGatewayAppSettings", "key": "Key", + "lifecycle_config_arn": "LifecycleConfigArn", "lifecycle_config_arns": "LifecycleConfigArns", "maximum_ebs_volume_size_in_gb": "MaximumEbsVolumeSizeInGb", "notebook_output_option": "NotebookOutputOption", diff --git a/internal/aws/securityhub/security_control_resource_gen.go b/internal/aws/securityhub/security_control_resource_gen.go index 5279eebde..797026237 100644 --- a/internal/aws/securityhub/security_control_resource_gen.go +++ b/internal/aws/securityhub/security_control_resource_gen.go @@ -332,6 +332,7 @@ func securityControlResource(ctx context.Context) (resource.Resource, error) { }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/sns/topic_resource_gen.go b/internal/aws/sns/topic_resource_gen.go index b18d8d2bf..f7956764e 100644 --- a/internal/aws/sns/topic_resource_gen.go +++ b/internal/aws/sns/topic_resource_gen.go @@ -81,18 +81,18 @@ func topicResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "", + // "description": "The ``DeliveryStatusLogging`` configuration enables you to log the delivery status of messages sent from your Amazon SNS topic to subscribed endpoints with the following supported delivery protocols:\n + HTTP \n + Amazon Kinesis Data Firehose\n + AWS Lambda\n + Platform application endpoint\n + Amazon Simple Queue Service\n \n Once configured, log entries are sent to Amazon CloudWatch Logs.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "", + // "description": "The ``LoggingConfig`` property type specifies the ``Delivery`` status logging configuration for an [AWS::SNS::Topic](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html).", // "properties": { // "FailureFeedbackRoleArn": { - // "description": "", + // "description": "The IAM role ARN to be used when logging failed message deliveries in Amazon CloudWatch.", // "type": "string" // }, // "Protocol": { - // "description": "", + // "description": "Indicates one of the supported protocols for the Amazon SNS topic.\n At least one of the other three ``LoggingConfig`` properties is recommend along with ``Protocol``.", // "enum": [ // "http/s", // "sqs", @@ -103,11 +103,11 @@ func topicResource(ctx context.Context) (resource.Resource, error) { // "type": "string" // }, // "SuccessFeedbackRoleArn": { - // "description": "", + // "description": "The IAM role ARN to be used when logging successful message deliveries in Amazon CloudWatch.", // "type": "string" // }, // "SuccessFeedbackSampleRate": { - // "description": "", + // "description": "The percentage of successful message deliveries to be logged in Amazon CloudWatch. Valid percentage values range from 0 to 100.", // "type": "string" // } // }, @@ -124,7 +124,7 @@ func topicResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: FailureFeedbackRoleArn "failure_feedback_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "The IAM role ARN to be used when logging failed message deliveries in Amazon CloudWatch.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -133,7 +133,7 @@ func topicResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Protocol "protocol": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "Indicates one of the supported protocols for the Amazon SNS topic.\n At least one of the other three ``LoggingConfig`` properties is recommend along with ``Protocol``.", Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.OneOf( @@ -147,7 +147,7 @@ func topicResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: SuccessFeedbackRoleArn "success_feedback_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "The IAM role ARN to be used when logging successful message deliveries in Amazon CloudWatch.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -156,7 +156,7 @@ func topicResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: SuccessFeedbackSampleRate "success_feedback_sample_rate": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "The percentage of successful message deliveries to be logged in Amazon CloudWatch. Valid percentage values range from 0 to 100.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -165,7 +165,7 @@ func topicResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "", + Description: "The ``DeliveryStatusLogging`` configuration enables you to log the delivery status of messages sent from your Amazon SNS topic to subscribed endpoints with the following supported delivery protocols:\n + HTTP \n + Amazon Kinesis Data Firehose\n + AWS Lambda\n + Platform application endpoint\n + Amazon Simple Queue Service\n \n Once configured, log entries are sent to Amazon CloudWatch Logs.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ From 22005c68f9108ac25a8b9e7a353729e2e4c4b9b1 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 1 Aug 2024 12:02:17 -0400 Subject: [PATCH 61/89] 07/31/2024 CloudFormation schemas in us-east-1; Generate Terraform data source schemas. --- ...ification_status_plural_data_source_gen.go | 54 ++ ...tion_status_plural_data_source_gen_test.go | 27 + ...ication_status_singular_data_source_gen.go | 92 +++ ...on_status_singular_data_source_gen_test.go | 36 ++ ..._configuration_singular_data_source_gen.go | 16 +- .../guardrail_singular_data_source_gen.go | 69 +++ ...le_association_singular_data_source_gen.go | 226 +++++++- ...nfigured_table_singular_data_source_gen.go | 54 ++ ..._mapping_table_singular_data_source_gen.go | 305 ++++++++++ ...ing_table_singular_data_source_gen_test.go | 36 ++ ...vpn_connection_singular_data_source_gen.go | 46 +- .../load_balancer_singular_data_source_gen.go | 4 +- ...pping_workflow_singular_data_source_gen.go | 8 - ...iguration_singular_data_source_gen_test.go | 8 +- ...elivery_stream_singular_data_source_gen.go | 536 ++++++++++++++++++ ...ation_instance_singular_data_source_gen.go | 49 +- .../package_singular_data_source_gen.go | 41 +- ...ackage_version_singular_data_source_gen.go | 28 +- .../integration_singular_data_source_gen.go | 42 +- .../sagemaker/app_singular_data_source_gen.go | 12 + .../domain_singular_data_source_gen.go | 78 ++- .../space_singular_data_source_gen.go | 85 +++ ...lifecycle_config_plural_data_source_gen.go | 54 ++ ...ycle_config_plural_data_source_gen_test.go | 27 + ...fecycle_config_singular_data_source_gen.go | 164 ++++++ ...le_config_singular_data_source_gen_test.go | 36 ++ .../user_profile_singular_data_source_gen.go | 85 ++- .../aws/sns/topic_singular_data_source_gen.go | 22 +- 28 files changed, 2129 insertions(+), 111 deletions(-) create mode 100644 internal/aws/arczonalshift/autoshift_observer_notification_status_plural_data_source_gen.go create mode 100644 internal/aws/arczonalshift/autoshift_observer_notification_status_plural_data_source_gen_test.go create mode 100644 internal/aws/arczonalshift/autoshift_observer_notification_status_singular_data_source_gen.go create mode 100644 internal/aws/arczonalshift/autoshift_observer_notification_status_singular_data_source_gen_test.go create mode 100644 internal/aws/cleanrooms/id_mapping_table_singular_data_source_gen.go create mode 100644 internal/aws/cleanrooms/id_mapping_table_singular_data_source_gen_test.go create mode 100644 internal/aws/sagemaker/studio_lifecycle_config_plural_data_source_gen.go create mode 100644 internal/aws/sagemaker/studio_lifecycle_config_plural_data_source_gen_test.go create mode 100644 internal/aws/sagemaker/studio_lifecycle_config_singular_data_source_gen.go create mode 100644 internal/aws/sagemaker/studio_lifecycle_config_singular_data_source_gen_test.go diff --git a/internal/aws/arczonalshift/autoshift_observer_notification_status_plural_data_source_gen.go b/internal/aws/arczonalshift/autoshift_observer_notification_status_plural_data_source_gen.go new file mode 100644 index 000000000..61d3d0c56 --- /dev/null +++ b/internal/aws/arczonalshift/autoshift_observer_notification_status_plural_data_source_gen.go @@ -0,0 +1,54 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package arczonalshift + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_arczonalshift_autoshift_observer_notification_statuses", autoshiftObserverNotificationStatusesDataSource) +} + +// autoshiftObserverNotificationStatusesDataSource returns the Terraform awscc_arczonalshift_autoshift_observer_notification_statuses data source. +// This Terraform data source corresponds to the CloudFormation AWS::ARCZonalShift::AutoshiftObserverNotificationStatus resource. +func autoshiftObserverNotificationStatusesDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ + "id": schema.StringAttribute{ + Description: "Uniquely identifies the data source.", + Computed: true, + }, + "ids": schema.SetAttribute{ + Description: "Set of Resource Identifiers.", + ElementType: types.StringType, + Computed: true, + }, + } + + schema := schema.Schema{ + Description: "Plural Data Source schema for AWS::ARCZonalShift::AutoshiftObserverNotificationStatus", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::ARCZonalShift::AutoshiftObserverNotificationStatus").WithTerraformTypeName("awscc_arczonalshift_autoshift_observer_notification_statuses") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/arczonalshift/autoshift_observer_notification_status_plural_data_source_gen_test.go b/internal/aws/arczonalshift/autoshift_observer_notification_status_plural_data_source_gen_test.go new file mode 100644 index 000000000..f11b4a256 --- /dev/null +++ b/internal/aws/arczonalshift/autoshift_observer_notification_status_plural_data_source_gen_test.go @@ -0,0 +1,27 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package arczonalshift_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSARCZonalShiftAutoshiftObserverNotificationStatusesDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::ARCZonalShift::AutoshiftObserverNotificationStatus", "awscc_arczonalshift_autoshift_observer_notification_statuses", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet(fmt.Sprintf("data.%s", td.ResourceName), "ids.#"), + ), + }, + }) +} diff --git a/internal/aws/arczonalshift/autoshift_observer_notification_status_singular_data_source_gen.go b/internal/aws/arczonalshift/autoshift_observer_notification_status_singular_data_source_gen.go new file mode 100644 index 000000000..e79cf6018 --- /dev/null +++ b/internal/aws/arczonalshift/autoshift_observer_notification_status_singular_data_source_gen.go @@ -0,0 +1,92 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package arczonalshift + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_arczonalshift_autoshift_observer_notification_status", autoshiftObserverNotificationStatusDataSource) +} + +// autoshiftObserverNotificationStatusDataSource returns the Terraform awscc_arczonalshift_autoshift_observer_notification_status data source. +// This Terraform data source corresponds to the CloudFormation AWS::ARCZonalShift::AutoshiftObserverNotificationStatus resource. +func autoshiftObserverNotificationStatusDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AccountId + // CloudFormation resource type schema: + // + // { + // "description": "User account id, used as part of the primary identifier for the resource", + // "pattern": "^\\d{12}$", + // "type": "string" + // } + "account_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "User account id, used as part of the primary identifier for the resource", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Region + // CloudFormation resource type schema: + // + // { + // "description": "Region, used as part of the primary identifier for the resource", + // "maxLength": 30, + // "minLength": 5, + // "pattern": "^[a-z0-9-]*$", + // "type": "string" + // } + "region": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Region, used as part of the primary identifier for the resource", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Status + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "ENABLED" + // ], + // "type": "string" + // } + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::ARCZonalShift::AutoshiftObserverNotificationStatus", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::ARCZonalShift::AutoshiftObserverNotificationStatus").WithTerraformTypeName("awscc_arczonalshift_autoshift_observer_notification_status") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "account_id": "AccountId", + "region": "Region", + "status": "Status", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/arczonalshift/autoshift_observer_notification_status_singular_data_source_gen_test.go b/internal/aws/arczonalshift/autoshift_observer_notification_status_singular_data_source_gen_test.go new file mode 100644 index 000000000..29711a71e --- /dev/null +++ b/internal/aws/arczonalshift/autoshift_observer_notification_status_singular_data_source_gen_test.go @@ -0,0 +1,36 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package arczonalshift_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSARCZonalShiftAutoshiftObserverNotificationStatusDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::ARCZonalShift::AutoshiftObserverNotificationStatus", "awscc_arczonalshift_autoshift_observer_notification_status", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSARCZonalShiftAutoshiftObserverNotificationStatusDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::ARCZonalShift::AutoshiftObserverNotificationStatus", "awscc_arczonalshift_autoshift_observer_notification_status", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/arczonalshift/zonal_autoshift_configuration_singular_data_source_gen.go b/internal/aws/arczonalshift/zonal_autoshift_configuration_singular_data_source_gen.go index 27c917b24..76bb523d8 100644 --- a/internal/aws/arczonalshift/zonal_autoshift_configuration_singular_data_source_gen.go +++ b/internal/aws/arczonalshift/zonal_autoshift_configuration_singular_data_source_gen.go @@ -61,13 +61,13 @@ func zonalAutoshiftConfigurationDataSource(ctx context.Context) (datasource.Data // "AlarmIdentifier": { // "maxLength": 1024, // "minLength": 8, - // "pattern": "^arn:.*$", + // "pattern": "^.*$", // "type": "string" // }, // "Type": { - // "enum": [ - // "CLOUDWATCH" - // ], + // "maxLength": 10, + // "minLength": 8, + // "pattern": "^[a-zA-Z]*$", // "type": "string" // } // }, @@ -89,13 +89,13 @@ func zonalAutoshiftConfigurationDataSource(ctx context.Context) (datasource.Data // "AlarmIdentifier": { // "maxLength": 1024, // "minLength": 8, - // "pattern": "^arn:.*$", + // "pattern": "^.*$", // "type": "string" // }, // "Type": { - // "enum": [ - // "CLOUDWATCH" - // ], + // "maxLength": 10, + // "minLength": 8, + // "pattern": "^[a-zA-Z]*$", // "type": "string" // } // }, diff --git a/internal/aws/bedrock/guardrail_singular_data_source_gen.go b/internal/aws/bedrock/guardrail_singular_data_source_gen.go index 3b348ed60..1640b15e1 100644 --- a/internal/aws/bedrock/guardrail_singular_data_source_gen.go +++ b/internal/aws/bedrock/guardrail_singular_data_source_gen.go @@ -143,6 +143,73 @@ func guardrailDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "Content policy config for a guardrail.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: ContextualGroundingPolicyConfig + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Contextual grounding policy config for a guardrail.", + // "properties": { + // "FiltersConfig": { + // "description": "List of contextual grounding filter configs.", + // "items": { + // "additionalProperties": false, + // "description": "A config for grounding filter.", + // "properties": { + // "Threshold": { + // "description": "The threshold for this filter.", + // "minimum": 0, + // "type": "number" + // }, + // "Type": { + // "description": "Type of contextual grounding filter", + // "enum": [ + // "GROUNDING", + // "RELEVANCE" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Threshold", + // "Type" + // ], + // "type": "object" + // }, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "FiltersConfig" + // ], + // "type": "object" + // } + "contextual_grounding_policy_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: FiltersConfig + "filters_config": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Threshold + "threshold": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "The threshold for this filter.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Type of contextual grounding filter", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of contextual grounding filter configs.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Contextual grounding policy config for a guardrail.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: CreatedAt // CloudFormation resource type schema: // @@ -728,6 +795,7 @@ func guardrailDataSource(ctx context.Context) (datasource.DataSource, error) { "blocked_input_messaging": "BlockedInputMessaging", "blocked_outputs_messaging": "BlockedOutputsMessaging", "content_policy_config": "ContentPolicyConfig", + "contextual_grounding_policy_config": "ContextualGroundingPolicyConfig", "created_at": "CreatedAt", "definition": "Definition", "description": "Description", @@ -750,6 +818,7 @@ func guardrailDataSource(ctx context.Context) (datasource.DataSource, error) { "status_reasons": "StatusReasons", "tags": "Tags", "text": "Text", + "threshold": "Threshold", "topic_policy_config": "TopicPolicyConfig", "topics_config": "TopicsConfig", "type": "Type", diff --git a/internal/aws/cleanrooms/configured_table_association_singular_data_source_gen.go b/internal/aws/cleanrooms/configured_table_association_singular_data_source_gen.go index bdde3c5d4..4172c1480 100644 --- a/internal/aws/cleanrooms/configured_table_association_singular_data_source_gen.go +++ b/internal/aws/cleanrooms/configured_table_association_singular_data_source_gen.go @@ -10,6 +10,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework/datasource" "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" "github.com/hashicorp/terraform-provider-awscc/internal/generic" "github.com/hashicorp/terraform-provider-awscc/internal/registry" ) @@ -32,6 +33,202 @@ func configuredTableAssociationDataSource(ctx context.Context) (datasource.DataS "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: ConfiguredTableAssociationAnalysisRules + // CloudFormation resource type schema: + // + // { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Policy": { + // "additionalProperties": false, + // "properties": { + // "V1": { + // "properties": { + // "Aggregation": { + // "additionalProperties": false, + // "properties": { + // "AllowedAdditionalAnalyses": { + // "insertionOrder": false, + // "items": { + // "maxLength": 256, + // "pattern": "^arn:aws:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:([\\d]{12}|\\*):membership\\/[\\*\\d\\w-]+\\/configuredaudiencemodelassociation\\/[\\*\\d\\w-]+$|^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:([0-9]{12}|\\*):configured-model-algorithm-association\\/([-a-zA-Z0-9_\\/.]+|\\*)$", + // "type": "string" + // }, + // "maxItems": 25, + // "minItems": 0, + // "type": "array" + // }, + // "AllowedResultReceivers": { + // "insertionOrder": false, + // "items": { + // "maxLength": 12, + // "minLength": 12, + // "pattern": "\\d+", + // "type": "string" + // }, + // "minItems": 0, + // "type": "array" + // } + // }, + // "type": "object" + // }, + // "Custom": { + // "additionalProperties": false, + // "properties": { + // "AllowedAdditionalAnalyses": { + // "insertionOrder": false, + // "items": { + // "maxLength": 256, + // "pattern": "^arn:aws:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:([\\d]{12}|\\*):membership\\/[\\*\\d\\w-]+\\/configuredaudiencemodelassociation\\/[\\*\\d\\w-]+$|^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:([0-9]{12}|\\*):configured-model-algorithm-association\\/([-a-zA-Z0-9_\\/.]+|\\*)$", + // "type": "string" + // }, + // "maxItems": 25, + // "minItems": 0, + // "type": "array" + // }, + // "AllowedResultReceivers": { + // "insertionOrder": false, + // "items": { + // "maxLength": 12, + // "minLength": 12, + // "pattern": "\\d+", + // "type": "string" + // }, + // "minItems": 0, + // "type": "array" + // } + // }, + // "type": "object" + // }, + // "List": { + // "additionalProperties": false, + // "properties": { + // "AllowedAdditionalAnalyses": { + // "insertionOrder": false, + // "items": { + // "maxLength": 256, + // "pattern": "^arn:aws:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:([\\d]{12}|\\*):membership\\/[\\*\\d\\w-]+\\/configuredaudiencemodelassociation\\/[\\*\\d\\w-]+$|^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:([0-9]{12}|\\*):configured-model-algorithm-association\\/([-a-zA-Z0-9_\\/.]+|\\*)$", + // "type": "string" + // }, + // "maxItems": 25, + // "minItems": 0, + // "type": "array" + // }, + // "AllowedResultReceivers": { + // "insertionOrder": false, + // "items": { + // "maxLength": 12, + // "minLength": 12, + // "pattern": "\\d+", + // "type": "string" + // }, + // "minItems": 0, + // "type": "array" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // } + // }, + // "required": [ + // "V1" + // ], + // "type": "object" + // }, + // "Type": { + // "enum": [ + // "AGGREGATION", + // "LIST", + // "CUSTOM" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Type", + // "Policy" + // ], + // "type": "object" + // }, + // "maxItems": 1, + // "minItems": 1, + // "type": "array" + // } + "configured_table_association_analysis_rules": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Policy + "policy": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: V1 + "v1": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Aggregation + "aggregation": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AllowedAdditionalAnalyses + "allowed_additional_analyses": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AllowedResultReceivers + "allowed_result_receivers": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Custom + "custom": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AllowedAdditionalAnalyses + "allowed_additional_analyses": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AllowedResultReceivers + "allowed_result_receivers": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: List + "list": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AllowedAdditionalAnalyses + "allowed_additional_analyses": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AllowedResultReceivers + "allowed_result_receivers": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: ConfiguredTableAssociationIdentifier // CloudFormation resource type schema: // @@ -162,16 +359,25 @@ func configuredTableAssociationDataSource(ctx context.Context) (datasource.DataS opts = opts.WithCloudFormationTypeName("AWS::CleanRooms::ConfiguredTableAssociation").WithTerraformTypeName("awscc_cleanrooms_configured_table_association") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "arn": "Arn", - "configured_table_association_identifier": "ConfiguredTableAssociationIdentifier", - "configured_table_identifier": "ConfiguredTableIdentifier", - "description": "Description", - "key": "Key", - "membership_identifier": "MembershipIdentifier", - "name": "Name", - "role_arn": "RoleArn", - "tags": "Tags", - "value": "Value", + "aggregation": "Aggregation", + "allowed_additional_analyses": "AllowedAdditionalAnalyses", + "allowed_result_receivers": "AllowedResultReceivers", + "arn": "Arn", + "configured_table_association_analysis_rules": "ConfiguredTableAssociationAnalysisRules", + "configured_table_association_identifier": "ConfiguredTableAssociationIdentifier", + "configured_table_identifier": "ConfiguredTableIdentifier", + "custom": "Custom", + "description": "Description", + "key": "Key", + "list": "List", + "membership_identifier": "MembershipIdentifier", + "name": "Name", + "policy": "Policy", + "role_arn": "RoleArn", + "tags": "Tags", + "type": "Type", + "v1": "V1", + "value": "Value", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/cleanrooms/configured_table_singular_data_source_gen.go b/internal/aws/cleanrooms/configured_table_singular_data_source_gen.go index bc8fe304b..a480a0c46 100644 --- a/internal/aws/cleanrooms/configured_table_singular_data_source_gen.go +++ b/internal/aws/cleanrooms/configured_table_singular_data_source_gen.go @@ -69,6 +69,14 @@ func configuredTableDataSource(ctx context.Context) (datasource.DataSource, erro // "Aggregation": { // "additionalProperties": false, // "properties": { + // "AdditionalAnalyses": { + // "enum": [ + // "ALLOWED", + // "REQUIRED", + // "NOT_ALLOWED" + // ], + // "type": "string" + // }, // "AggregateColumns": { // "insertionOrder": false, // "items": { @@ -222,6 +230,14 @@ func configuredTableDataSource(ctx context.Context) (datasource.DataSource, erro // "Custom": { // "additionalProperties": false, // "properties": { + // "AdditionalAnalyses": { + // "enum": [ + // "ALLOWED", + // "REQUIRED", + // "NOT_ALLOWED" + // ], + // "type": "string" + // }, // "AllowedAnalyses": { // "insertionOrder": false, // "items": { @@ -269,6 +285,17 @@ func configuredTableDataSource(ctx context.Context) (datasource.DataSource, erro // "Columns" // ], // "type": "object" + // }, + // "DisallowedOutputColumns": { + // "insertionOrder": false, + // "items": { + // "maxLength": 127, + // "minLength": 1, + // "pattern": "^[a-z0-9_](([a-z0-9_ ]+-)*([a-z0-9_ ]+))?$", + // "type": "string" + // }, + // "minItems": 0, + // "type": "array" // } // }, // "required": [ @@ -279,6 +306,14 @@ func configuredTableDataSource(ctx context.Context) (datasource.DataSource, erro // "List": { // "additionalProperties": false, // "properties": { + // "AdditionalAnalyses": { + // "enum": [ + // "ALLOWED", + // "REQUIRED", + // "NOT_ALLOWED" + // ], + // "type": "string" + // }, // "AllowedJoinOperators": { // "insertionOrder": false, // "items": { @@ -359,6 +394,10 @@ func configuredTableDataSource(ctx context.Context) (datasource.DataSource, erro // Property: Aggregation "aggregation": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AdditionalAnalyses + "additional_analyses": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: AggregateColumns "aggregate_columns": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ @@ -426,6 +465,10 @@ func configuredTableDataSource(ctx context.Context) (datasource.DataSource, erro // Property: Custom "custom": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AdditionalAnalyses + "additional_analyses": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: AllowedAnalyses "allowed_analyses": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, @@ -454,12 +497,21 @@ func configuredTableDataSource(ctx context.Context) (datasource.DataSource, erro }, /*END SCHEMA*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: DisallowedOutputColumns + "disallowed_output_columns": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Computed: true, }, /*END ATTRIBUTE*/ // Property: List "list": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AdditionalAnalyses + "additional_analyses": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: AllowedJoinOperators "allowed_join_operators": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, @@ -650,6 +702,7 @@ func configuredTableDataSource(ctx context.Context) (datasource.DataSource, erro opts = opts.WithCloudFormationTypeName("AWS::CleanRooms::ConfiguredTable").WithTerraformTypeName("awscc_cleanrooms_configured_table") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ + "additional_analyses": "AdditionalAnalyses", "aggregate_columns": "AggregateColumns", "aggregation": "Aggregation", "allowed_analyses": "AllowedAnalyses", @@ -668,6 +721,7 @@ func configuredTableDataSource(ctx context.Context) (datasource.DataSource, erro "description": "Description", "differential_privacy": "DifferentialPrivacy", "dimension_columns": "DimensionColumns", + "disallowed_output_columns": "DisallowedOutputColumns", "function": "Function", "glue": "Glue", "join_columns": "JoinColumns", diff --git a/internal/aws/cleanrooms/id_mapping_table_singular_data_source_gen.go b/internal/aws/cleanrooms/id_mapping_table_singular_data_source_gen.go new file mode 100644 index 000000000..8c5603274 --- /dev/null +++ b/internal/aws/cleanrooms/id_mapping_table_singular_data_source_gen.go @@ -0,0 +1,305 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package cleanrooms + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_cleanrooms_id_mapping_table", idMappingTableDataSource) +} + +// idMappingTableDataSource returns the Terraform awscc_cleanrooms_id_mapping_table data source. +// This Terraform data source corresponds to the CloudFormation AWS::CleanRooms::IdMappingTable resource. +func idMappingTableDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "maxLength": 200, + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CollaborationArn + // CloudFormation resource type schema: + // + // { + // "maxLength": 100, + // "type": "string" + // } + "collaboration_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CollaborationIdentifier + // CloudFormation resource type schema: + // + // { + // "maxLength": 36, + // "minLength": 36, + // "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", + // "type": "string" + // } + "collaboration_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "maxLength": 255, + // "pattern": "", + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: IdMappingTableIdentifier + // CloudFormation resource type schema: + // + // { + // "maxLength": 36, + // "minLength": 36, + // "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", + // "type": "string" + // } + "id_mapping_table_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InputReferenceConfig + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "InputReferenceArn": { + // "maxLength": 2048, + // "minLength": 20, + // "type": "string" + // }, + // "ManageResourcePolicies": { + // "type": "boolean" + // } + // }, + // "required": [ + // "InputReferenceArn", + // "ManageResourcePolicies" + // ], + // "type": "object" + // } + "input_reference_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InputReferenceArn + "input_reference_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ManageResourcePolicies + "manage_resource_policies": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InputReferenceProperties + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "IdMappingTableInputSource": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "IdNamespaceAssociationId": { + // "type": "string" + // }, + // "Type": { + // "enum": [ + // "SOURCE", + // "TARGET" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "IdNamespaceAssociationId", + // "Type" + // ], + // "type": "object" + // }, + // "maxItems": 2, + // "minItems": 2, + // "type": "array" + // } + // }, + // "required": [ + // "IdMappingTableInputSource" + // ], + // "type": "object" + // } + "input_reference_properties": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IdMappingTableInputSource + "id_mapping_table_input_source": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IdNamespaceAssociationId + "id_namespace_association_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: KmsKeyArn + // CloudFormation resource type schema: + // + // { + // "maxLength": 2048, + // "minLength": 4, + // "type": "string" + // } + "kms_key_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MembershipArn + // CloudFormation resource type schema: + // + // { + // "maxLength": 100, + // "type": "string" + // } + "membership_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MembershipIdentifier + // CloudFormation resource type schema: + // + // { + // "maxLength": 36, + // "minLength": 36, + // "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", + // "type": "string" + // } + "membership_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "maxLength": 128, + // "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::CleanRooms::IdMappingTable", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::CleanRooms::IdMappingTable").WithTerraformTypeName("awscc_cleanrooms_id_mapping_table") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "arn": "Arn", + "collaboration_arn": "CollaborationArn", + "collaboration_identifier": "CollaborationIdentifier", + "description": "Description", + "id_mapping_table_identifier": "IdMappingTableIdentifier", + "id_mapping_table_input_source": "IdMappingTableInputSource", + "id_namespace_association_id": "IdNamespaceAssociationId", + "input_reference_arn": "InputReferenceArn", + "input_reference_config": "InputReferenceConfig", + "input_reference_properties": "InputReferenceProperties", + "key": "Key", + "kms_key_arn": "KmsKeyArn", + "manage_resource_policies": "ManageResourcePolicies", + "membership_arn": "MembershipArn", + "membership_identifier": "MembershipIdentifier", + "name": "Name", + "tags": "Tags", + "type": "Type", + "value": "Value", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/cleanrooms/id_mapping_table_singular_data_source_gen_test.go b/internal/aws/cleanrooms/id_mapping_table_singular_data_source_gen_test.go new file mode 100644 index 000000000..e9add79ef --- /dev/null +++ b/internal/aws/cleanrooms/id_mapping_table_singular_data_source_gen_test.go @@ -0,0 +1,36 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package cleanrooms_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSCleanRoomsIdMappingTableDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::CleanRooms::IdMappingTable", "awscc_cleanrooms_id_mapping_table", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSCleanRoomsIdMappingTableDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::CleanRooms::IdMappingTable", "awscc_cleanrooms_id_mapping_table", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/ec2/vpn_connection_singular_data_source_gen.go b/internal/aws/ec2/vpn_connection_singular_data_source_gen.go index 4c85ec505..85906a411 100644 --- a/internal/aws/ec2/vpn_connection_singular_data_source_gen.go +++ b/internal/aws/ec2/vpn_connection_singular_data_source_gen.go @@ -33,15 +33,26 @@ func vPNConnectionDataSource(ctx context.Context) (datasource.DataSource, error) Description: "The ID of the customer gateway at your end of the VPN connection.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: EnableAcceleration + // CloudFormation resource type schema: + // + // { + // "description": "", + // "type": "boolean" + // } + "enable_acceleration": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: StaticRoutesOnly // CloudFormation resource type schema: // // { - // "description": "Indicates whether the VPN connection uses static routes only.", + // "description": "Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP.\n If you are creating a VPN connection for a device that does not support Border Gateway Protocol (BGP), you must specify ``true``.", // "type": "boolean" // } "static_routes_only": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Indicates whether the VPN connection uses static routes only.", + Description: "Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP.\n If you are creating a VPN connection for a device that does not support Border Gateway Protocol (BGP), you must specify ``true``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Tags @@ -52,11 +63,14 @@ func vPNConnectionDataSource(ctx context.Context) (datasource.DataSource, error) // "insertionOrder": false, // "items": { // "additionalProperties": false, + // "description": "Specifies a tag. For more information, see [Add tags to a resource](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#cloudformation-add-tag-specifications).", // "properties": { // "Key": { + // "description": "The tag key.", // "type": "string" // }, // "Value": { + // "description": "The tag value.", // "type": "string" // } // }, @@ -74,11 +88,13 @@ func vPNConnectionDataSource(ctx context.Context) (datasource.DataSource, error) Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Key "key": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "The tag key.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: Value "value": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "The tag value.", + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ @@ -89,11 +105,11 @@ func vPNConnectionDataSource(ctx context.Context) (datasource.DataSource, error) // CloudFormation resource type schema: // // { - // "description": "The ID of the transit gateway associated with the VPN connection.", + // "description": "The ID of the transit gateway associated with the VPN connection.\n You must specify either ``TransitGatewayId`` or ``VpnGatewayId``, but not both.", // "type": "string" // } "transit_gateway_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ID of the transit gateway associated with the VPN connection.", + Description: "The ID of the transit gateway associated with the VPN connection.\n You must specify either ``TransitGatewayId`` or ``VpnGatewayId``, but not both.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Type @@ -111,22 +127,22 @@ func vPNConnectionDataSource(ctx context.Context) (datasource.DataSource, error) // CloudFormation resource type schema: // // { - // "description": "The provider-assigned unique ID for this managed resource", + // "description": "", // "type": "string" // } "vpn_connection_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The provider-assigned unique ID for this managed resource", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: VpnGatewayId // CloudFormation resource type schema: // // { - // "description": "The ID of the virtual private gateway at the AWS side of the VPN connection.", + // "description": "The ID of the virtual private gateway at the AWS side of the VPN connection.\n You must specify either ``TransitGatewayId`` or ``VpnGatewayId``, but not both.", // "type": "string" // } "vpn_gateway_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ID of the virtual private gateway at the AWS side of the VPN connection.", + Description: "The ID of the virtual private gateway at the AWS side of the VPN connection.\n You must specify either ``TransitGatewayId`` or ``VpnGatewayId``, but not both.", Computed: true, }, /*END ATTRIBUTE*/ // Property: VpnTunnelOptionsSpecifications @@ -137,11 +153,14 @@ func vPNConnectionDataSource(ctx context.Context) (datasource.DataSource, error) // "insertionOrder": false, // "items": { // "additionalProperties": false, + // "description": "The tunnel options for a single VPN tunnel.", // "properties": { // "PreSharedKey": { + // "description": "The pre-shared key (PSK) to establish initial authentication between the virtual private gateway and customer gateway.\n Constraints: Allowed characters are alphanumeric characters, periods (.), and underscores (_). Must be between 8 and 64 characters in length and cannot start with zero (0).", // "type": "string" // }, // "TunnelInsideCidr": { + // "description": "The range of inside IP addresses for the tunnel. Any specified CIDR blocks must be unique across all VPN connections that use the same virtual private gateway. \n Constraints: A size /30 CIDR block from the ``169.254.0.0/16`` range. The following CIDR blocks are reserved and cannot be used:\n + ``169.254.0.0/30`` \n + ``169.254.1.0/30`` \n + ``169.254.2.0/30`` \n + ``169.254.3.0/30`` \n + ``169.254.4.0/30`` \n + ``169.254.5.0/30`` \n + ``169.254.169.252/30``", // "type": "string" // } // }, @@ -155,11 +174,13 @@ func vPNConnectionDataSource(ctx context.Context) (datasource.DataSource, error) Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: PreSharedKey "pre_shared_key": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "The pre-shared key (PSK) to establish initial authentication between the virtual private gateway and customer gateway.\n Constraints: Allowed characters are alphanumeric characters, periods (.), and underscores (_). Must be between 8 and 64 characters in length and cannot start with zero (0).", + Computed: true, }, /*END ATTRIBUTE*/ // Property: TunnelInsideCidr "tunnel_inside_cidr": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "The range of inside IP addresses for the tunnel. Any specified CIDR blocks must be unique across all VPN connections that use the same virtual private gateway. \n Constraints: A size /30 CIDR block from the ``169.254.0.0/16`` range. The following CIDR blocks are reserved and cannot be used:\n + ``169.254.0.0/30`` \n + ``169.254.1.0/30`` \n + ``169.254.2.0/30`` \n + ``169.254.3.0/30`` \n + ``169.254.4.0/30`` \n + ``169.254.5.0/30`` \n + ``169.254.169.252/30``", + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ @@ -184,6 +205,7 @@ func vPNConnectionDataSource(ctx context.Context) (datasource.DataSource, error) opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ "customer_gateway_id": "CustomerGatewayId", + "enable_acceleration": "EnableAcceleration", "key": "Key", "pre_shared_key": "PreSharedKey", "static_routes_only": "StaticRoutesOnly", diff --git a/internal/aws/elasticloadbalancingv2/load_balancer_singular_data_source_gen.go b/internal/aws/elasticloadbalancingv2/load_balancer_singular_data_source_gen.go index 499e80c2b..0bdad9e42 100644 --- a/internal/aws/elasticloadbalancingv2/load_balancer_singular_data_source_gen.go +++ b/internal/aws/elasticloadbalancingv2/load_balancer_singular_data_source_gen.go @@ -60,11 +60,11 @@ func loadBalancerDataSource(ctx context.Context) (datasource.DataSource, error) // CloudFormation resource type schema: // // { - // "description": "Note: Internal load balancers must use the ``ipv4`` IP address type.\n [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses).\n [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can’t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener.\n [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses).", + // "description": "Note: Internal load balancers must use the ``ipv4`` IP address type.\n [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses).\n [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can?t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener.\n [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses).", // "type": "string" // } "ip_address_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Note: Internal load balancers must use the ``ipv4`` IP address type.\n [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses).\n [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can’t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener.\n [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses).", + Description: "Note: Internal load balancers must use the ``ipv4`` IP address type.\n [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses).\n [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can?t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener.\n [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses).", Computed: true, }, /*END ATTRIBUTE*/ // Property: LoadBalancerArn diff --git a/internal/aws/entityresolution/id_mapping_workflow_singular_data_source_gen.go b/internal/aws/entityresolution/id_mapping_workflow_singular_data_source_gen.go index 17f753518..1367a35e0 100644 --- a/internal/aws/entityresolution/id_mapping_workflow_singular_data_source_gen.go +++ b/internal/aws/entityresolution/id_mapping_workflow_singular_data_source_gen.go @@ -60,9 +60,6 @@ func idMappingWorkflowDataSource(ctx context.Context) (datasource.DataSource, er // ], // "type": "string" // }, - // "NormalizationVersion": { - // "type": "string" - // }, // "ProviderProperties": { // "additionalProperties": false, // "properties": { @@ -174,10 +171,6 @@ func idMappingWorkflowDataSource(ctx context.Context) (datasource.DataSource, er "id_mapping_type": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ - // Property: NormalizationVersion - "normalization_version": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, - }, /*END ATTRIBUTE*/ // Property: ProviderProperties "provider_properties": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -470,7 +463,6 @@ func idMappingWorkflowDataSource(ctx context.Context) (datasource.DataSource, er "key": "Key", "kms_arn": "KMSArn", "matching_keys": "MatchingKeys", - "normalization_version": "NormalizationVersion", "output_s3_path": "OutputS3Path", "output_source_config": "OutputSourceConfig", "provider_configuration": "ProviderConfiguration", diff --git a/internal/aws/inspectorv2/cis_scan_configuration_singular_data_source_gen_test.go b/internal/aws/inspectorv2/cis_scan_configuration_singular_data_source_gen_test.go index d8a35cf72..9a43e10ca 100644 --- a/internal/aws/inspectorv2/cis_scan_configuration_singular_data_source_gen_test.go +++ b/internal/aws/inspectorv2/cis_scan_configuration_singular_data_source_gen_test.go @@ -6,7 +6,6 @@ package inspectorv2_test import ( - "fmt" "regexp" "testing" @@ -19,11 +18,8 @@ func TestAccAWSInspectorV2CisScanConfigurationDataSource_basic(t *testing.T) { td.DataSourceTest(t, []resource.TestStep{ { - Config: td.DataSourceWithEmptyResourceConfig(), - Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttrPair(fmt.Sprintf("data.%s", td.ResourceName), "id", td.ResourceName, "id"), - resource.TestCheckResourceAttrPair(fmt.Sprintf("data.%s", td.ResourceName), "arn", td.ResourceName, "arn"), - ), + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), }, }) } diff --git a/internal/aws/kinesisfirehose/delivery_stream_singular_data_source_gen.go b/internal/aws/kinesisfirehose/delivery_stream_singular_data_source_gen.go index 2faa8511a..268d873d9 100644 --- a/internal/aws/kinesisfirehose/delivery_stream_singular_data_source_gen.go +++ b/internal/aws/kinesisfirehose/delivery_stream_singular_data_source_gen.go @@ -3206,6 +3206,507 @@ func deliveryStreamDataSource(ctx context.Context) (datasource.DataSource, error }, /*END SCHEMA*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: IcebergDestinationConfiguration + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "BufferingHints": { + // "additionalProperties": false, + // "properties": { + // "IntervalInSeconds": { + // "type": "integer" + // }, + // "SizeInMBs": { + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "CatalogConfiguration": { + // "additionalProperties": false, + // "properties": { + // "CatalogArn": { + // "maxLength": 512, + // "minLength": 1, + // "pattern": "arn:.*", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "CloudWatchLoggingOptions": { + // "additionalProperties": false, + // "properties": { + // "Enabled": { + // "type": "boolean" + // }, + // "LogGroupName": { + // "relationshipRef": { + // "propertyPath": "/properties/LogGroupName", + // "typeName": "AWS::Logs::LogGroup" + // }, + // "type": "string" + // }, + // "LogStreamName": { + // "relationshipRef": { + // "propertyPath": "/properties/LogStreamName", + // "typeName": "AWS::Logs::LogStream" + // }, + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "DestinationTableConfigurationList": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "DestinationDatabaseName": { + // "maxLength": 512, + // "minLength": 1, + // "type": "string" + // }, + // "DestinationTableName": { + // "maxLength": 512, + // "minLength": 1, + // "type": "string" + // }, + // "S3ErrorOutputPrefix": { + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // }, + // "UniqueKeys": { + // "items": { + // "maxLength": 512, + // "minLength": 1, + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "required": [ + // "DestinationDatabaseName", + // "DestinationTableName" + // ], + // "type": "object" + // }, + // "type": "array" + // }, + // "ProcessingConfiguration": { + // "additionalProperties": false, + // "properties": { + // "Enabled": { + // "type": "boolean" + // }, + // "Processors": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "Parameters": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "ParameterName": { + // "type": "string" + // }, + // "ParameterValue": { + // "anyOf": [ + // {}, + // {}, + // {} + // ], + // "type": "string" + // } + // }, + // "required": [ + // "ParameterValue", + // "ParameterName" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // }, + // "Type": { + // "enum": [ + // "RecordDeAggregation", + // "Decompression", + // "CloudWatchLogProcessing", + // "Lambda", + // "MetadataExtraction", + // "AppendDelimiterToRecord" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Type" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "type": "object" + // }, + // "RetryOptions": { + // "additionalProperties": false, + // "properties": { + // "DurationInSeconds": { + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "RoleARN": { + // "maxLength": 512, + // "minLength": 1, + // "pattern": "arn:.*", + // "relationshipRef": { + // "propertyPath": "/properties/Arn", + // "typeName": "AWS::IAM::Role" + // }, + // "type": "string" + // }, + // "S3Configuration": { + // "additionalProperties": false, + // "properties": { + // "BucketARN": { + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "arn:.*", + // "relationshipRef": { + // "propertyPath": "/properties/Arn", + // "typeName": "AWS::S3::Bucket" + // }, + // "type": "string" + // }, + // "BufferingHints": { + // "additionalProperties": false, + // "properties": { + // "IntervalInSeconds": { + // "type": "integer" + // }, + // "SizeInMBs": { + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "CloudWatchLoggingOptions": { + // "additionalProperties": false, + // "properties": { + // "Enabled": { + // "type": "boolean" + // }, + // "LogGroupName": { + // "relationshipRef": { + // "propertyPath": "/properties/LogGroupName", + // "typeName": "AWS::Logs::LogGroup" + // }, + // "type": "string" + // }, + // "LogStreamName": { + // "relationshipRef": { + // "propertyPath": "/properties/LogStreamName", + // "typeName": "AWS::Logs::LogStream" + // }, + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "CompressionFormat": { + // "enum": [ + // "UNCOMPRESSED", + // "GZIP", + // "ZIP", + // "Snappy", + // "HADOOP_SNAPPY" + // ], + // "type": "string" + // }, + // "EncryptionConfiguration": { + // "additionalProperties": false, + // "properties": { + // "KMSEncryptionConfig": { + // "additionalProperties": false, + // "properties": { + // "AWSKMSKeyARN": { + // "relationshipRef": { + // "propertyPath": "/properties/Arn", + // "typeName": "AWS::KMS::Key" + // }, + // "type": "string" + // } + // }, + // "required": [ + // "AWSKMSKeyARN" + // ], + // "type": "object" + // }, + // "NoEncryptionConfig": { + // "enum": [ + // "NoEncryption" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "ErrorOutputPrefix": { + // "maxLength": 1024, + // "minLength": 0, + // "type": "string" + // }, + // "Prefix": { + // "maxLength": 1024, + // "minLength": 0, + // "type": "string" + // }, + // "RoleARN": { + // "maxLength": 512, + // "minLength": 1, + // "pattern": "arn:.*", + // "relationshipRef": { + // "propertyPath": "/properties/Arn", + // "typeName": "AWS::IAM::Role" + // }, + // "type": "string" + // } + // }, + // "required": [ + // "BucketARN", + // "RoleARN" + // ], + // "type": "object" + // }, + // "s3BackupMode": { + // "enum": [ + // "AllData", + // "FailedDataOnly" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "RoleARN", + // "CatalogConfiguration", + // "S3Configuration" + // ], + // "type": "object" + // } + "iceberg_destination_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BufferingHints + "buffering_hints": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IntervalInSeconds + "interval_in_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SizeInMBs + "size_in_m_bs": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CatalogConfiguration + "catalog_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CatalogArn + "catalog_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CloudWatchLoggingOptions + "cloudwatch_logging_options": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Enabled + "enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LogGroupName + "log_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LogStreamName + "log_stream_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DestinationTableConfigurationList + "destination_table_configuration_list": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DestinationDatabaseName + "destination_database_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DestinationTableName + "destination_table_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: S3ErrorOutputPrefix + "s3_error_output_prefix": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: UniqueKeys + "unique_keys": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ProcessingConfiguration + "processing_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Enabled + "enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Processors + "processors": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Parameters + "parameters": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ParameterName + "parameter_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ParameterValue + "parameter_value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RetryOptions + "retry_options": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DurationInSeconds + "duration_in_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RoleARN + "role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: S3Configuration + "s3_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BucketARN + "bucket_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: BufferingHints + "buffering_hints": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IntervalInSeconds + "interval_in_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SizeInMBs + "size_in_m_bs": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CloudWatchLoggingOptions + "cloudwatch_logging_options": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Enabled + "enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LogGroupName + "log_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LogStreamName + "log_stream_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CompressionFormat + "compression_format": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EncryptionConfiguration + "encryption_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: KMSEncryptionConfig + "kms_encryption_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AWSKMSKeyARN + "awskms_key_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: NoEncryptionConfig + "no_encryption_config": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ErrorOutputPrefix + "error_output_prefix": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Prefix + "prefix": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RoleARN + "role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: s3BackupMode + "s_3_backup_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: KinesisStreamSourceConfiguration // CloudFormation resource type schema: // @@ -4243,6 +4744,18 @@ func deliveryStreamDataSource(ctx context.Context) (datasource.DataSource, error // "pattern": ".+?\\.snowflakecomputing\\.com", // "type": "string" // }, + // "BufferingHints": { + // "additionalProperties": false, + // "properties": { + // "IntervalInSeconds": { + // "type": "integer" + // }, + // "SizeInMBs": { + // "type": "integer" + // } + // }, + // "type": "object" + // }, // "CloudWatchLoggingOptions": { // "additionalProperties": false, // "properties": { @@ -4590,6 +5103,20 @@ func deliveryStreamDataSource(ctx context.Context) (datasource.DataSource, error "account_url": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: BufferingHints + "buffering_hints": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IntervalInSeconds + "interval_in_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SizeInMBs + "size_in_m_bs": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: CloudWatchLoggingOptions "cloudwatch_logging_options": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -5386,6 +5913,8 @@ func deliveryStreamDataSource(ctx context.Context) (datasource.DataSource, error "bucket_arn": "BucketARN", "buffering_hints": "BufferingHints", "case_insensitive": "CaseInsensitive", + "catalog_arn": "CatalogArn", + "catalog_configuration": "CatalogConfiguration", "catalog_id": "CatalogId", "cloudwatch_logging_options": "CloudWatchLoggingOptions", "cluster_endpoint": "ClusterEndpoint", @@ -5413,6 +5942,9 @@ func deliveryStreamDataSource(ctx context.Context) (datasource.DataSource, error "delivery_stream_name": "DeliveryStreamName", "delivery_stream_type": "DeliveryStreamType", "deserializer": "Deserializer", + "destination_database_name": "DestinationDatabaseName", + "destination_table_configuration_list": "DestinationTableConfigurationList", + "destination_table_name": "DestinationTableName", "dictionary_key_threshold": "DictionaryKeyThreshold", "document_id_options": "DocumentIdOptions", "domain_arn": "DomainARN", @@ -5434,6 +5966,7 @@ func deliveryStreamDataSource(ctx context.Context) (datasource.DataSource, error "hec_token": "HECToken", "hive_json_ser_de": "HiveJsonSerDe", "http_endpoint_destination_configuration": "HttpEndpointDestinationConfiguration", + "iceberg_destination_configuration": "IcebergDestinationConfiguration", "index_name": "IndexName", "index_rotation_period": "IndexRotationPeriod", "input_format_configuration": "InputFormatConfiguration", @@ -5478,6 +6011,8 @@ func deliveryStreamDataSource(ctx context.Context) (datasource.DataSource, error "s3_backup_mode": "S3BackupMode", "s3_configuration": "S3Configuration", "s3_destination_configuration": "S3DestinationConfiguration", + "s3_error_output_prefix": "S3ErrorOutputPrefix", + "s_3_backup_mode": "s3BackupMode", "schema": "Schema", "schema_configuration": "SchemaConfiguration", "secret_arn": "SecretARN", @@ -5499,6 +6034,7 @@ func deliveryStreamDataSource(ctx context.Context) (datasource.DataSource, error "topic_name": "TopicName", "type": "Type", "type_name": "TypeName", + "unique_keys": "UniqueKeys", "url": "Url", "user": "User", "username": "Username", diff --git a/internal/aws/panorama/application_instance_singular_data_source_gen.go b/internal/aws/panorama/application_instance_singular_data_source_gen.go index 207551787..fa9617feb 100644 --- a/internal/aws/panorama/application_instance_singular_data_source_gen.go +++ b/internal/aws/panorama/application_instance_singular_data_source_gen.go @@ -38,13 +38,15 @@ func applicationInstanceDataSource(ctx context.Context) (datasource.DataSource, // CloudFormation resource type schema: // // { + // "description": "The ID of an application instance to replace with the new instance.", // "maxLength": 255, // "minLength": 1, // "pattern": "^[a-zA-Z0-9\\-\\_]+$", // "type": "string" // } "application_instance_id_to_replace": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "The ID of an application instance to replace with the new instance.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: Arn // CloudFormation resource type schema: @@ -70,13 +72,15 @@ func applicationInstanceDataSource(ctx context.Context) (datasource.DataSource, // CloudFormation resource type schema: // // { + // "description": "The device's ID.", // "maxLength": 255, // "minLength": 1, // "pattern": "^[a-zA-Z0-9\\-\\_]+$", // "type": "string" // } "default_runtime_context_device": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "The device's ID.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: DefaultRuntimeContextDeviceName // CloudFormation resource type schema: @@ -94,13 +98,15 @@ func applicationInstanceDataSource(ctx context.Context) (datasource.DataSource, // CloudFormation resource type schema: // // { + // "description": "A description for the application instance.", // "maxLength": 255, // "minLength": 0, // "pattern": "^.*$", // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "A description for the application instance.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: HealthStatus // CloudFormation resource type schema: @@ -130,8 +136,10 @@ func applicationInstanceDataSource(ctx context.Context) (datasource.DataSource, // // { // "additionalProperties": false, + // "description": "Setting overrides for the application manifest.", // "properties": { // "PayloadData": { + // "description": "The overrides document.", // "maxLength": 51200, // "minLength": 0, // "pattern": "^.+$", @@ -144,18 +152,22 @@ func applicationInstanceDataSource(ctx context.Context) (datasource.DataSource, Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: PayloadData "payload_data": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "The overrides document.", + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Computed: true, + Description: "Setting overrides for the application manifest.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: ManifestPayload // CloudFormation resource type schema: // // { // "additionalProperties": false, + // "description": "The application's manifest document.", // "properties": { // "PayloadData": { + // "description": "The application manifest.", // "maxLength": 51200, // "minLength": 1, // "pattern": "^.+$", @@ -168,34 +180,40 @@ func applicationInstanceDataSource(ctx context.Context) (datasource.DataSource, Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: PayloadData "payload_data": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "The application manifest.", + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Computed: true, + Description: "The application's manifest document.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: Name // CloudFormation resource type schema: // // { + // "description": "A name for the application instance.", // "maxLength": 255, // "minLength": 1, // "pattern": "^[a-zA-Z0-9\\-\\_]+$", // "type": "string" // } "name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "A name for the application instance.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: RuntimeRoleArn // CloudFormation resource type schema: // // { + // "description": "The ARN of a runtime role for the application instance.", // "maxLength": 255, // "minLength": 1, // "pattern": "^arn:[a-z0-9][-.a-z0-9]{0,62}:iam::[0-9]{12}:role/.+$", // "type": "string" // } "runtime_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "The ARN of a runtime role for the application instance.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: Status // CloudFormation resource type schema: @@ -233,20 +251,21 @@ func applicationInstanceDataSource(ctx context.Context) (datasource.DataSource, // CloudFormation resource type schema: // // { - // "description": "List of tags", + // "description": "Tags for the application instance.", // "insertionOrder": false, // "items": { // "additionalProperties": false, + // "description": "", // "properties": { // "Key": { - // "description": "A string used to identify this tag", + // "description": "", // "maxLength": 128, // "minLength": 1, // "pattern": "^.+$", // "type": "string" // }, // "Value": { - // "description": "A string containing the value for the tag", + // "description": "", // "maxLength": 256, // "minLength": 0, // "pattern": "^.+$", @@ -267,17 +286,17 @@ func applicationInstanceDataSource(ctx context.Context) (datasource.DataSource, Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Key "key": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A string used to identify this tag", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Value "value": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A string containing the value for the tag", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "List of tags", + Description: "Tags for the application instance.", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/panorama/package_singular_data_source_gen.go b/internal/aws/panorama/package_singular_data_source_gen.go index a27a338e4..8497d891a 100644 --- a/internal/aws/panorama/package_singular_data_source_gen.go +++ b/internal/aws/panorama/package_singular_data_source_gen.go @@ -58,33 +58,41 @@ func packageDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { + // "description": "A name for the package.", // "maxLength": 128, // "minLength": 1, // "pattern": "^[a-zA-Z0-9\\-\\_]+$", // "type": "string" // } "package_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "A name for the package.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: StorageLocation // CloudFormation resource type schema: // // { // "additionalProperties": false, + // "description": "A storage location.", // "properties": { // "BinaryPrefixLocation": { + // "description": "The location's binary prefix.", // "type": "string" // }, // "Bucket": { + // "description": "The location's bucket.", // "type": "string" // }, // "GeneratedPrefixLocation": { + // "description": "The location's generated prefix.", // "type": "string" // }, // "ManifestPrefixLocation": { + // "description": "The location's manifest prefix.", // "type": "string" // }, // "RepoPrefixLocation": { + // "description": "The location's repo prefix.", // "type": "string" // } // }, @@ -94,42 +102,52 @@ func packageDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: BinaryPrefixLocation "binary_prefix_location": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "The location's binary prefix.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: Bucket "bucket": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "The location's bucket.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: GeneratedPrefixLocation "generated_prefix_location": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "The location's generated prefix.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: ManifestPrefixLocation "manifest_prefix_location": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "The location's manifest prefix.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: RepoPrefixLocation "repo_prefix_location": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "The location's repo prefix.", + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Computed: true, + Description: "A storage location.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // // { + // "description": "Tags for the package.", // "insertionOrder": false, // "items": { // "additionalProperties": false, + // "description": "", // "properties": { // "Key": { + // "description": "", // "maxLength": 128, // "minLength": 1, // "pattern": "^.+$", // "type": "string" // }, // "Value": { + // "description": "", // "maxLength": 256, // "minLength": 0, // "pattern": "^.+$", @@ -150,15 +168,18 @@ func packageDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Key "key": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "", + Computed: true, }, /*END ATTRIBUTE*/ // Property: Value "value": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "", + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Computed: true, + Description: "Tags for the package.", + Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/panorama/package_version_singular_data_source_gen.go b/internal/aws/panorama/package_version_singular_data_source_gen.go index 4f832a961..9c9e96af4 100644 --- a/internal/aws/panorama/package_version_singular_data_source_gen.go +++ b/internal/aws/panorama/package_version_singular_data_source_gen.go @@ -26,31 +26,37 @@ func packageVersionDataSource(ctx context.Context) (datasource.DataSource, error // CloudFormation resource type schema: // // { + // "description": "", // "type": "boolean" // } "is_latest_patch": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "", + Computed: true, }, /*END ATTRIBUTE*/ // Property: MarkLatest // CloudFormation resource type schema: // // { + // "description": "Whether to mark the new version as the latest version.", // "type": "boolean" // } "mark_latest": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "Whether to mark the new version as the latest version.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: OwnerAccount // CloudFormation resource type schema: // // { + // "description": "An owner account.", // "maxLength": 12, // "minLength": 1, // "pattern": "^[0-9a-z\\_]+$", // "type": "string" // } "owner_account": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "An owner account.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: PackageArn // CloudFormation resource type schema: @@ -67,13 +73,15 @@ func packageVersionDataSource(ctx context.Context) (datasource.DataSource, error // CloudFormation resource type schema: // // { + // "description": "A package ID.", // "maxLength": 255, // "minLength": 1, // "pattern": "^[a-zA-Z0-9\\-\\_\\/]+$", // "type": "string" // } "package_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "A package ID.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: PackageName // CloudFormation resource type schema: @@ -91,25 +99,29 @@ func packageVersionDataSource(ctx context.Context) (datasource.DataSource, error // CloudFormation resource type schema: // // { + // "description": "A package version.", // "maxLength": 255, // "minLength": 1, // "pattern": "^([0-9]+)\\.([0-9]+)$", // "type": "string" // } "package_version": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "A package version.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: PatchVersion // CloudFormation resource type schema: // // { + // "description": "A patch version.", // "maxLength": 255, // "minLength": 1, // "pattern": "^[a-z0-9]+$", // "type": "string" // } "patch_version": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "A patch version.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: RegisteredTime // CloudFormation resource type schema: @@ -150,13 +162,15 @@ func packageVersionDataSource(ctx context.Context) (datasource.DataSource, error // CloudFormation resource type schema: // // { + // "description": "If the version was marked latest, the new version to maker as latest.", // "maxLength": 255, // "minLength": 1, // "pattern": "^[a-z0-9]+$", // "type": "string" // } "updated_latest_patch_version": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "If the version was marked latest, the new version to maker as latest.", + Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/rds/integration_singular_data_source_gen.go b/internal/aws/rds/integration_singular_data_source_gen.go index 9b3c4c93c..04a1924e1 100644 --- a/internal/aws/rds/integration_singular_data_source_gen.go +++ b/internal/aws/rds/integration_singular_data_source_gen.go @@ -28,7 +28,7 @@ func integrationDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "additionalProperties": false, - // "description": "An optional set of non-secret key–value pairs that contains additional contextual information about the data.", + // "description": "An optional set of non-secret key?value pairs that contains additional contextual information about the data. For more information, see [Encryption context](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) in the *Key Management Service Developer Guide*.\n You can only include this parameter if you specify the ``KMSKeyId`` parameter.", // "patternProperties": { // "": { // "maxLength": 131072, @@ -41,54 +41,56 @@ func integrationDataSource(ctx context.Context) (datasource.DataSource, error) { "additional_encryption_context": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "An optional set of non-secret key–value pairs that contains additional contextual information about the data.", + Description: "An optional set of non-secret key?value pairs that contains additional contextual information about the data. For more information, see [Encryption context](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) in the *Key Management Service Developer Guide*.\n You can only include this parameter if you specify the ``KMSKeyId`` parameter.", Computed: true, }, /*END ATTRIBUTE*/ // Property: CreateTime // CloudFormation resource type schema: // // { + // "description": "", // "type": "string" // } "create_time": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "", + Computed: true, }, /*END ATTRIBUTE*/ // Property: DataFilter // CloudFormation resource type schema: // // { - // "description": "The data filter for the integration.", + // "description": "Data filters for the integration. These filters determine which tables from the source database are sent to the target Amazon Redshift data warehouse.", // "maxLength": 25600, // "minLength": 1, // "pattern": "[a-zA-Z0-9_ \"\\\\\\-$,*.:?+\\/]*", // "type": "string" // } "data_filter": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The data filter for the integration.", + Description: "Data filters for the integration. These filters determine which tables from the source database are sent to the target Amazon Redshift data warehouse.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Description // CloudFormation resource type schema: // // { - // "description": "The description of the integration.", + // "description": "A description of the integration.", // "maxLength": 1000, // "minLength": 1, // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The description of the integration.", + Description: "A description of the integration.", Computed: true, }, /*END ATTRIBUTE*/ // Property: IntegrationArn // CloudFormation resource type schema: // // { - // "description": "The ARN of the integration.", + // "description": "", // "type": "string" // } "integration_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ARN of the integration.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: IntegrationName @@ -108,42 +110,42 @@ func integrationDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "An optional AWS Key Management System (AWS KMS) key ARN for the key used to to encrypt the integration. The resource accepts the key ID and the key ARN forms. The key ID form can be used if the KMS key is owned by te same account. If the KMS key belongs to a different account than the calling account, the full key ARN must be specified. Do not use the key alias or the key alias ARN as this will cause a false drift of the resource.", + // "description": "The AWS Key Management System (AWS KMS) key identifier for the key to use to encrypt the integration. If you don't specify an encryption key, RDS uses a default AWS owned key.", // "type": "string" // } "kms_key_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "An optional AWS Key Management System (AWS KMS) key ARN for the key used to to encrypt the integration. The resource accepts the key ID and the key ARN forms. The key ID form can be used if the KMS key is owned by te same account. If the KMS key belongs to a different account than the calling account, the full key ARN must be specified. Do not use the key alias or the key alias ARN as this will cause a false drift of the resource.", + Description: "The AWS Key Management System (AWS KMS) key identifier for the key to use to encrypt the integration. If you don't specify an encryption key, RDS uses a default AWS owned key.", Computed: true, }, /*END ATTRIBUTE*/ // Property: SourceArn // CloudFormation resource type schema: // // { - // "description": "The Amazon Resource Name (ARN) of the Aurora DB cluster to use as the source for replication.", + // "description": "The Amazon Resource Name (ARN) of the database to use as the source for replication.", // "type": "string" // } "source_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Amazon Resource Name (ARN) of the Aurora DB cluster to use as the source for replication.", + Description: "The Amazon Resource Name (ARN) of the database to use as the source for replication.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // // { - // "description": "An array of key-value pairs to apply to this resource.", + // "description": "A list of tags. For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide.*.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "A key-value pair to associate with a resource.", + // "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", // "properties": { // "Key": { - // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + // "description": "A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", // "maxLength": 128, // "minLength": 1, // "type": "string" // }, // "Value": { - // "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + // "description": "A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", // "maxLength": 256, // "minLength": 0, // "type": "string" @@ -163,17 +165,17 @@ func integrationDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Key "key": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + Description: "A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", Computed: true, }, /*END ATTRIBUTE*/ // Property: Value "value": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + Description: "A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "An array of key-value pairs to apply to this resource.", + Description: "A list of tags. For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide.*.", Computed: true, }, /*END ATTRIBUTE*/ // Property: TargetArn diff --git a/internal/aws/sagemaker/app_singular_data_source_gen.go b/internal/aws/sagemaker/app_singular_data_source_gen.go index f0a8ba936..ad7ca36c1 100644 --- a/internal/aws/sagemaker/app_singular_data_source_gen.go +++ b/internal/aws/sagemaker/app_singular_data_source_gen.go @@ -157,6 +157,12 @@ func appDataSource(ctx context.Context) (datasource.DataSource, error) { // ], // "type": "string" // }, + // "LifecycleConfigArn": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, // "SageMakerImageArn": { // "description": "The ARN of the SageMaker image that the image version belongs to.", // "maxLength": 256, @@ -181,6 +187,11 @@ func appDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The instance type that the image version runs on.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArn + "lifecycle_config_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: SageMakerImageArn "sage_maker_image_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The ARN of the SageMaker image that the image version belongs to.", @@ -278,6 +289,7 @@ func appDataSource(ctx context.Context) (datasource.DataSource, error) { "domain_id": "DomainId", "instance_type": "InstanceType", "key": "Key", + "lifecycle_config_arn": "LifecycleConfigArn", "resource_spec": "ResourceSpec", "sage_maker_image_arn": "SageMakerImageArn", "sage_maker_image_version_arn": "SageMakerImageVersionArn", diff --git a/internal/aws/sagemaker/domain_singular_data_source_gen.go b/internal/aws/sagemaker/domain_singular_data_source_gen.go index 9ea4f6e5b..5a2f2a120 100644 --- a/internal/aws/sagemaker/domain_singular_data_source_gen.go +++ b/internal/aws/sagemaker/domain_singular_data_source_gen.go @@ -403,6 +403,19 @@ func domainDataSource(ctx context.Context) (datasource.DataSource, error) { // } // }, // "type": "object" + // }, + // "LifecycleConfigArns": { + // "description": "A list of LifecycleConfigArns available for use with JupyterServer apps.", + // "items": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, + // "maxItems": 30, + // "minItems": 0, + // "type": "array", + // "uniqueItems": false // } // }, // "type": "object" @@ -540,6 +553,19 @@ func domainDataSource(ctx context.Context) (datasource.DataSource, error) { // } // }, // "type": "object" + // }, + // "LifecycleConfigArns": { + // "description": "A list of LifecycleConfigArns available for use with KernelGateway apps.", + // "items": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, + // "maxItems": 30, + // "minItems": 0, + // "type": "array", + // "uniqueItems": false // } // }, // "type": "object" @@ -744,6 +770,12 @@ func domainDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END SCHEMA*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArns + "lifecycle_config_arns": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of LifecycleConfigArns available for use with JupyterServer apps.", + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "The Jupyter server's app settings.", Computed: true, @@ -802,6 +834,12 @@ func domainDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArns + "lifecycle_config_arns": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of LifecycleConfigArns available for use with KernelGateway apps.", + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "The kernel gateway app settings.", Computed: true, @@ -1328,6 +1366,19 @@ func domainDataSource(ctx context.Context) (datasource.DataSource, error) { // } // }, // "type": "object" + // }, + // "LifecycleConfigArns": { + // "description": "A list of LifecycleConfigArns available for use with JupyterServer apps.", + // "items": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, + // "maxItems": 30, + // "minItems": 0, + // "type": "array", + // "uniqueItems": false // } // }, // "type": "object" @@ -1465,6 +1516,19 @@ func domainDataSource(ctx context.Context) (datasource.DataSource, error) { // } // }, // "type": "object" + // }, + // "LifecycleConfigArns": { + // "description": "A list of LifecycleConfigArns available for use with KernelGateway apps.", + // "items": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, + // "maxItems": 30, + // "minItems": 0, + // "type": "array", + // "uniqueItems": false // } // }, // "type": "object" @@ -1737,7 +1801,7 @@ func domainDataSource(ctx context.Context) (datasource.DataSource, error) { // "DataWrangler", // "FeatureStore", // "EmrClusters", - // "AutoML", + // "AutoMl", // "Experiments", // "Training", // "ModelEvaluation", @@ -1982,6 +2046,12 @@ func domainDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END SCHEMA*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArns + "lifecycle_config_arns": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of LifecycleConfigArns available for use with JupyterServer apps.", + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "The Jupyter server's app settings.", Computed: true, @@ -2040,6 +2110,12 @@ func domainDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArns + "lifecycle_config_arns": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of LifecycleConfigArns available for use with KernelGateway apps.", + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "The kernel gateway app settings.", Computed: true, diff --git a/internal/aws/sagemaker/space_singular_data_source_gen.go b/internal/aws/sagemaker/space_singular_data_source_gen.go index 8a23bdfd2..04eba3422 100644 --- a/internal/aws/sagemaker/space_singular_data_source_gen.go +++ b/internal/aws/sagemaker/space_singular_data_source_gen.go @@ -10,6 +10,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework/datasource" "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" "github.com/hashicorp/terraform-provider-awscc/internal/generic" "github.com/hashicorp/terraform-provider-awscc/internal/registry" ) @@ -193,6 +194,12 @@ func spaceDataSource(ctx context.Context) (datasource.DataSource, error) { // ], // "type": "string" // }, + // "LifecycleConfigArn": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, // "SageMakerImageArn": { // "description": "The ARN of the SageMaker image that the image version belongs to.", // "maxLength": 256, @@ -336,6 +343,12 @@ func spaceDataSource(ctx context.Context) (datasource.DataSource, error) { // ], // "type": "string" // }, + // "LifecycleConfigArn": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, // "SageMakerImageArn": { // "description": "The ARN of the SageMaker image that the image version belongs to.", // "maxLength": 256, @@ -430,6 +443,12 @@ func spaceDataSource(ctx context.Context) (datasource.DataSource, error) { // ], // "type": "string" // }, + // "LifecycleConfigArn": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, // "SageMakerImageArn": { // "description": "The ARN of the SageMaker image that the image version belongs to.", // "maxLength": 256, @@ -444,6 +463,19 @@ func spaceDataSource(ctx context.Context) (datasource.DataSource, error) { // } // }, // "type": "object" + // }, + // "LifecycleConfigArns": { + // "description": "A list of LifecycleConfigArns available for use with JupyterServer apps.", + // "items": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, + // "maxItems": 30, + // "minItems": 0, + // "type": "array", + // "uniqueItems": false // } // }, // "type": "object" @@ -560,6 +592,12 @@ func spaceDataSource(ctx context.Context) (datasource.DataSource, error) { // ], // "type": "string" // }, + // "LifecycleConfigArn": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, // "SageMakerImageArn": { // "description": "The ARN of the SageMaker image that the image version belongs to.", // "maxLength": 256, @@ -574,6 +612,19 @@ func spaceDataSource(ctx context.Context) (datasource.DataSource, error) { // } // }, // "type": "object" + // }, + // "LifecycleConfigArns": { + // "description": "A list of LifecycleConfigArns available for use with KernelGateway apps.", + // "items": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, + // "maxItems": 30, + // "minItems": 0, + // "type": "array", + // "uniqueItems": false // } // }, // "type": "object" @@ -621,6 +672,11 @@ func spaceDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The instance type that the image version runs on.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArn + "lifecycle_config_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: SageMakerImageArn "sage_maker_image_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The ARN of the SageMaker image that the image version belongs to.", @@ -681,6 +737,11 @@ func spaceDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The instance type that the image version runs on.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArn + "lifecycle_config_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: SageMakerImageArn "sage_maker_image_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The ARN of the SageMaker image that the image version belongs to.", @@ -709,6 +770,11 @@ func spaceDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The instance type that the image version runs on.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArn + "lifecycle_config_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: SageMakerImageArn "sage_maker_image_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The ARN of the SageMaker image that the image version belongs to.", @@ -722,6 +788,12 @@ func spaceDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END SCHEMA*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArns + "lifecycle_config_arns": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of LifecycleConfigArns available for use with JupyterServer apps.", + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "The Jupyter server's app settings.", Computed: true, @@ -761,6 +833,11 @@ func spaceDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The instance type that the image version runs on.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArn + "lifecycle_config_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: SageMakerImageArn "sage_maker_image_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The ARN of the SageMaker image that the image version belongs to.", @@ -775,6 +852,12 @@ func spaceDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArns + "lifecycle_config_arns": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of LifecycleConfigArns available for use with KernelGateway apps.", + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "The kernel gateway app settings.", Computed: true, @@ -922,6 +1005,8 @@ func spaceDataSource(ctx context.Context) (datasource.DataSource, error) { "jupyter_server_app_settings": "JupyterServerAppSettings", "kernel_gateway_app_settings": "KernelGatewayAppSettings", "key": "Key", + "lifecycle_config_arn": "LifecycleConfigArn", + "lifecycle_config_arns": "LifecycleConfigArns", "owner_user_profile_name": "OwnerUserProfileName", "ownership_settings": "OwnershipSettings", "repository_url": "RepositoryUrl", diff --git a/internal/aws/sagemaker/studio_lifecycle_config_plural_data_source_gen.go b/internal/aws/sagemaker/studio_lifecycle_config_plural_data_source_gen.go new file mode 100644 index 000000000..60a0454db --- /dev/null +++ b/internal/aws/sagemaker/studio_lifecycle_config_plural_data_source_gen.go @@ -0,0 +1,54 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package sagemaker + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_sagemaker_studio_lifecycle_configs", studioLifecycleConfigsDataSource) +} + +// studioLifecycleConfigsDataSource returns the Terraform awscc_sagemaker_studio_lifecycle_configs data source. +// This Terraform data source corresponds to the CloudFormation AWS::SageMaker::StudioLifecycleConfig resource. +func studioLifecycleConfigsDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ + "id": schema.StringAttribute{ + Description: "Uniquely identifies the data source.", + Computed: true, + }, + "ids": schema.SetAttribute{ + Description: "Set of Resource Identifiers.", + ElementType: types.StringType, + Computed: true, + }, + } + + schema := schema.Schema{ + Description: "Plural Data Source schema for AWS::SageMaker::StudioLifecycleConfig", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::SageMaker::StudioLifecycleConfig").WithTerraformTypeName("awscc_sagemaker_studio_lifecycle_configs") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/sagemaker/studio_lifecycle_config_plural_data_source_gen_test.go b/internal/aws/sagemaker/studio_lifecycle_config_plural_data_source_gen_test.go new file mode 100644 index 000000000..3ba15533b --- /dev/null +++ b/internal/aws/sagemaker/studio_lifecycle_config_plural_data_source_gen_test.go @@ -0,0 +1,27 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package sagemaker_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSSageMakerStudioLifecycleConfigsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::SageMaker::StudioLifecycleConfig", "awscc_sagemaker_studio_lifecycle_configs", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet(fmt.Sprintf("data.%s", td.ResourceName), "ids.#"), + ), + }, + }) +} diff --git a/internal/aws/sagemaker/studio_lifecycle_config_singular_data_source_gen.go b/internal/aws/sagemaker/studio_lifecycle_config_singular_data_source_gen.go new file mode 100644 index 000000000..7b968b587 --- /dev/null +++ b/internal/aws/sagemaker/studio_lifecycle_config_singular_data_source_gen.go @@ -0,0 +1,164 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package sagemaker + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_sagemaker_studio_lifecycle_config", studioLifecycleConfigDataSource) +} + +// studioLifecycleConfigDataSource returns the Terraform awscc_sagemaker_studio_lifecycle_config data source. +// This Terraform data source corresponds to the CloudFormation AWS::SageMaker::StudioLifecycleConfig resource. +func studioLifecycleConfigDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: StudioLifecycleConfigAppType + // CloudFormation resource type schema: + // + // { + // "description": "The App type that the Lifecycle Configuration is attached to.", + // "enum": [ + // "JupyterServer", + // "KernelGateway", + // "CodeEditor", + // "JupyterLab" + // ], + // "type": "string" + // } + "studio_lifecycle_config_app_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The App type that the Lifecycle Configuration is attached to.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: StudioLifecycleConfigArn + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration.", + // "maxLength": 256, + // "minLength": 1, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // } + "studio_lifecycle_config_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the Lifecycle Configuration.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: StudioLifecycleConfigContent + // CloudFormation resource type schema: + // + // { + // "description": "The content of your Amazon SageMaker Studio Lifecycle Configuration script.", + // "maxLength": 16384, + // "minLength": 1, + // "pattern": "[\\S\\s]+", + // "type": "string" + // } + "studio_lifecycle_config_content": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The content of your Amazon SageMaker Studio Lifecycle Configuration script.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: StudioLifecycleConfigName + // CloudFormation resource type schema: + // + // { + // "description": "The name of the Amazon SageMaker Studio Lifecycle Configuration.", + // "maxLength": 63, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", + // "type": "string" + // } + "studio_lifecycle_config_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the Amazon SageMaker Studio Lifecycle Configuration.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "Tags to be associated with the Lifecycle Configuration.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 50, + // "minItems": 0, + // "type": "array", + // "uniqueItems": false + // } + "tags": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "Tags to be associated with the Lifecycle Configuration.", + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::SageMaker::StudioLifecycleConfig", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::SageMaker::StudioLifecycleConfig").WithTerraformTypeName("awscc_sagemaker_studio_lifecycle_config") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "key": "Key", + "studio_lifecycle_config_app_type": "StudioLifecycleConfigAppType", + "studio_lifecycle_config_arn": "StudioLifecycleConfigArn", + "studio_lifecycle_config_content": "StudioLifecycleConfigContent", + "studio_lifecycle_config_name": "StudioLifecycleConfigName", + "tags": "Tags", + "value": "Value", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/sagemaker/studio_lifecycle_config_singular_data_source_gen_test.go b/internal/aws/sagemaker/studio_lifecycle_config_singular_data_source_gen_test.go new file mode 100644 index 000000000..392a68b73 --- /dev/null +++ b/internal/aws/sagemaker/studio_lifecycle_config_singular_data_source_gen_test.go @@ -0,0 +1,36 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package sagemaker_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSSageMakerStudioLifecycleConfigDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::SageMaker::StudioLifecycleConfig", "awscc_sagemaker_studio_lifecycle_config", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSSageMakerStudioLifecycleConfigDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::SageMaker::StudioLifecycleConfig", "awscc_sagemaker_studio_lifecycle_config", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/sagemaker/user_profile_singular_data_source_gen.go b/internal/aws/sagemaker/user_profile_singular_data_source_gen.go index 3df1df780..c7c4e22c8 100644 --- a/internal/aws/sagemaker/user_profile_singular_data_source_gen.go +++ b/internal/aws/sagemaker/user_profile_singular_data_source_gen.go @@ -252,6 +252,12 @@ func userProfileDataSource(ctx context.Context) (datasource.DataSource, error) { // ], // "type": "string" // }, + // "LifecycleConfigArn": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, // "SageMakerImageArn": { // "description": "The ARN of the SageMaker image that the image version belongs to.", // "maxLength": 256, @@ -482,6 +488,12 @@ func userProfileDataSource(ctx context.Context) (datasource.DataSource, error) { // ], // "type": "string" // }, + // "LifecycleConfigArn": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, // "SageMakerImageArn": { // "description": "The ARN of the SageMaker image that the image version belongs to.", // "maxLength": 256, @@ -589,6 +601,12 @@ func userProfileDataSource(ctx context.Context) (datasource.DataSource, error) { // ], // "type": "string" // }, + // "LifecycleConfigArn": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, // "SageMakerImageArn": { // "description": "The ARN of the SageMaker image that the image version belongs to.", // "maxLength": 256, @@ -603,6 +621,19 @@ func userProfileDataSource(ctx context.Context) (datasource.DataSource, error) { // } // }, // "type": "object" + // }, + // "LifecycleConfigArns": { + // "description": "A list of LifecycleConfigArns available for use with JupyterServer apps.", + // "items": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, + // "maxItems": 30, + // "minItems": 0, + // "type": "array", + // "uniqueItems": false // } // }, // "type": "object" @@ -719,6 +750,12 @@ func userProfileDataSource(ctx context.Context) (datasource.DataSource, error) { // ], // "type": "string" // }, + // "LifecycleConfigArn": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, // "SageMakerImageArn": { // "description": "The ARN of the SageMaker image that the image version belongs to.", // "maxLength": 256, @@ -733,6 +770,19 @@ func userProfileDataSource(ctx context.Context) (datasource.DataSource, error) { // } // }, // "type": "object" + // }, + // "LifecycleConfigArns": { + // "description": "A list of LifecycleConfigArns available for use with KernelGateway apps.", + // "items": { + // "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + // "maxLength": 256, + // "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", + // "type": "string" + // }, + // "maxItems": 30, + // "minItems": 0, + // "type": "array", + // "uniqueItems": false // } // }, // "type": "object" @@ -868,7 +918,7 @@ func userProfileDataSource(ctx context.Context) (datasource.DataSource, error) { // "DataWrangler", // "FeatureStore", // "EmrClusters", - // "AutoML", + // "AutoMl", // "Experiments", // "Training", // "ModelEvaluation", @@ -928,6 +978,11 @@ func userProfileDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The instance type that the image version runs on.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArn + "lifecycle_config_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: SageMakerImageArn "sage_maker_image_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The ARN of the SageMaker image that the image version belongs to.", @@ -1047,6 +1102,11 @@ func userProfileDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The instance type that the image version runs on.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArn + "lifecycle_config_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: SageMakerImageArn "sage_maker_image_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The ARN of the SageMaker image that the image version belongs to.", @@ -1082,6 +1142,11 @@ func userProfileDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The instance type that the image version runs on.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArn + "lifecycle_config_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: SageMakerImageArn "sage_maker_image_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The ARN of the SageMaker image that the image version belongs to.", @@ -1095,6 +1160,12 @@ func userProfileDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END SCHEMA*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArns + "lifecycle_config_arns": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of LifecycleConfigArns available for use with JupyterServer apps.", + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "The Jupyter server's app settings.", Computed: true, @@ -1134,6 +1205,11 @@ func userProfileDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The instance type that the image version runs on.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArn + "lifecycle_config_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: SageMakerImageArn "sage_maker_image_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The ARN of the SageMaker image that the image version belongs to.", @@ -1148,6 +1224,12 @@ func userProfileDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: LifecycleConfigArns + "lifecycle_config_arns": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of LifecycleConfigArns available for use with KernelGateway apps.", + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "The kernel gateway app settings.", Computed: true, @@ -1292,6 +1374,7 @@ func userProfileDataSource(ctx context.Context) (datasource.DataSource, error) { "jupyter_server_app_settings": "JupyterServerAppSettings", "kernel_gateway_app_settings": "KernelGatewayAppSettings", "key": "Key", + "lifecycle_config_arn": "LifecycleConfigArn", "lifecycle_config_arns": "LifecycleConfigArns", "maximum_ebs_volume_size_in_gb": "MaximumEbsVolumeSizeInGb", "notebook_output_option": "NotebookOutputOption", diff --git a/internal/aws/sns/topic_singular_data_source_gen.go b/internal/aws/sns/topic_singular_data_source_gen.go index 84c2ac569..294cd9129 100644 --- a/internal/aws/sns/topic_singular_data_source_gen.go +++ b/internal/aws/sns/topic_singular_data_source_gen.go @@ -62,18 +62,18 @@ func topicDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "", + // "description": "The ``DeliveryStatusLogging`` configuration enables you to log the delivery status of messages sent from your Amazon SNS topic to subscribed endpoints with the following supported delivery protocols:\n + HTTP \n + Amazon Kinesis Data Firehose\n + AWS Lambda\n + Platform application endpoint\n + Amazon Simple Queue Service\n \n Once configured, log entries are sent to Amazon CloudWatch Logs.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "", + // "description": "The ``LoggingConfig`` property type specifies the ``Delivery`` status logging configuration for an [AWS::SNS::Topic](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html).", // "properties": { // "FailureFeedbackRoleArn": { - // "description": "", + // "description": "The IAM role ARN to be used when logging failed message deliveries in Amazon CloudWatch.", // "type": "string" // }, // "Protocol": { - // "description": "", + // "description": "Indicates one of the supported protocols for the Amazon SNS topic.\n At least one of the other three ``LoggingConfig`` properties is recommend along with ``Protocol``.", // "enum": [ // "http/s", // "sqs", @@ -84,11 +84,11 @@ func topicDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "string" // }, // "SuccessFeedbackRoleArn": { - // "description": "", + // "description": "The IAM role ARN to be used when logging successful message deliveries in Amazon CloudWatch.", // "type": "string" // }, // "SuccessFeedbackSampleRate": { - // "description": "", + // "description": "The percentage of successful message deliveries to be logged in Amazon CloudWatch. Valid percentage values range from 0 to 100.", // "type": "string" // } // }, @@ -105,27 +105,27 @@ func topicDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: FailureFeedbackRoleArn "failure_feedback_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "The IAM role ARN to be used when logging failed message deliveries in Amazon CloudWatch.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Protocol "protocol": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "Indicates one of the supported protocols for the Amazon SNS topic.\n At least one of the other three ``LoggingConfig`` properties is recommend along with ``Protocol``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: SuccessFeedbackRoleArn "success_feedback_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "The IAM role ARN to be used when logging successful message deliveries in Amazon CloudWatch.", Computed: true, }, /*END ATTRIBUTE*/ // Property: SuccessFeedbackSampleRate "success_feedback_sample_rate": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "The percentage of successful message deliveries to be logged in Amazon CloudWatch. Valid percentage values range from 0 to 100.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "", + Description: "The ``DeliveryStatusLogging`` configuration enables you to log the delivery status of messages sent from your Amazon SNS topic to subscribed endpoints with the following supported delivery protocols:\n + HTTP \n + Amazon Kinesis Data Firehose\n + AWS Lambda\n + Platform application endpoint\n + Amazon Simple Queue Service\n \n Once configured, log entries are sent to Amazon CloudWatch Logs.", Computed: true, }, /*END ATTRIBUTE*/ // Property: DisplayName From 0d1971a8d9d0a79fdedbccad9919f193c05b9be0 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 1 Aug 2024 12:04:57 -0400 Subject: [PATCH 62/89] Fix 'runtime error: invalid memory address or nil pointer dereference' panic. --- internal/provider/provider.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/provider/provider.go b/internal/provider/provider.go index 6950b0783..acbe72440 100644 --- a/internal/provider/provider.go +++ b/internal/provider/provider.go @@ -525,13 +525,13 @@ func newProviderData(ctx context.Context, c *config) (*providerData, diag.Diagno awsbaseConfig.EC2MetadataServiceEnableState = imds.ClientEnabled } - if !c.Endpoints.IAM.IsNull() { + if c.Endpoints != nil && !c.Endpoints.IAM.IsNull() { awsbaseConfig.IamEndpoint = c.Endpoints.IAM.ValueString() } - if !c.Endpoints.SSO.IsNull() { + if c.Endpoints != nil && !c.Endpoints.SSO.IsNull() { awsbaseConfig.SsoEndpoint = c.Endpoints.SSO.ValueString() } - if !c.Endpoints.STS.IsNull() { + if c.Endpoints != nil && !c.Endpoints.STS.IsNull() { awsbaseConfig.StsEndpoint = c.Endpoints.STS.ValueString() } @@ -551,7 +551,7 @@ func newProviderData(ctx context.Context, c *config) (*providerData, diag.Diagno } ccAPIClient := cloudcontrol.NewFromConfig(cfg, func(o *cloudcontrol.Options) { - if !c.Endpoints.CloudControlAPI.IsNull() { + if c.Endpoints != nil { o.BaseEndpoint = flex.StringFromFramework(ctx, c.Endpoints.CloudControlAPI) } }) From ad17f4e9c609beb9d7a60593d8744bcd603bf184 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 1 Aug 2024 12:07:54 -0400 Subject: [PATCH 63/89] Run 'make docs'. --- ..._autoshift_observer_notification_status.md | 26 +++ ...utoshift_observer_notification_statuses.md | 21 +++ docs/data-sources/bedrock_guardrail.md | 18 ++ .../cleanrooms_configured_table.md | 4 + ...cleanrooms_configured_table_association.md | 55 ++++++ .../cleanrooms_id_mapping_table.md | 69 ++++++++ docs/data-sources/ec2_vpn_connection.md | 25 ++- .../elasticloadbalancingv2_load_balancer.md | 2 +- .../entityresolution_id_mapping_workflow.md | 1 - .../kinesisfirehose_delivery_stream.md | 151 ++++++++++++++++ .../panorama_application_instance.md | 24 +-- docs/data-sources/panorama_package.md | 16 +- docs/data-sources/panorama_package_version.md | 12 +- docs/data-sources/rds_integration.md | 19 +- docs/data-sources/sagemaker_app.md | 1 + docs/data-sources/sagemaker_domain.md | 4 + docs/data-sources/sagemaker_space.md | 6 + .../sagemaker_studio_lifecycle_config.md | 36 ++++ .../sagemaker_studio_lifecycle_configs.md | 21 +++ docs/data-sources/sagemaker_user_profile.md | 6 + docs/data-sources/sns_topic.md | 18 +- ..._autoshift_observer_notification_status.md | 34 ++++ docs/resources/bedrock_guardrail.md | 18 ++ docs/resources/cleanrooms_configured_table.md | 4 + ...cleanrooms_configured_table_association.md | 55 ++++++ docs/resources/cleanrooms_id_mapping_table.md | 79 +++++++++ docs/resources/ec2_vpn_connection.md | 35 +++- docs/resources/ec2_vpn_connection_route.md | 6 +- .../elasticloadbalancingv2_load_balancer.md | 2 +- .../entityresolution_id_mapping_workflow.md | 1 - .../inspectorv2_cis_scan_configuration.md | 7 +- .../kinesisfirehose_delivery_stream.md | 163 ++++++++++++++++++ .../panorama_application_instance.md | 28 +-- docs/resources/panorama_package.md | 20 +-- docs/resources/panorama_package_version.md | 16 +- docs/resources/rds_integration.md | 23 +-- docs/resources/sagemaker_app.md | 1 + docs/resources/sagemaker_domain.md | 4 + docs/resources/sagemaker_space.md | 6 + .../sagemaker_studio_lifecycle_config.md | 47 +++++ docs/resources/sagemaker_user_profile.md | 6 + docs/resources/sns_topic.md | 18 +- .../import.sh | 1 + .../import.sh | 1 + .../import.sh | 1 + 45 files changed, 1001 insertions(+), 110 deletions(-) create mode 100644 docs/data-sources/arczonalshift_autoshift_observer_notification_status.md create mode 100644 docs/data-sources/arczonalshift_autoshift_observer_notification_statuses.md create mode 100644 docs/data-sources/cleanrooms_id_mapping_table.md create mode 100644 docs/data-sources/sagemaker_studio_lifecycle_config.md create mode 100644 docs/data-sources/sagemaker_studio_lifecycle_configs.md create mode 100644 docs/resources/arczonalshift_autoshift_observer_notification_status.md create mode 100644 docs/resources/cleanrooms_id_mapping_table.md create mode 100644 docs/resources/sagemaker_studio_lifecycle_config.md create mode 100644 examples/resources/awscc_arczonalshift_autoshift_observer_notification_status/import.sh create mode 100644 examples/resources/awscc_cleanrooms_id_mapping_table/import.sh create mode 100644 examples/resources/awscc_sagemaker_studio_lifecycle_config/import.sh diff --git a/docs/data-sources/arczonalshift_autoshift_observer_notification_status.md b/docs/data-sources/arczonalshift_autoshift_observer_notification_status.md new file mode 100644 index 000000000..2dffa8ea4 --- /dev/null +++ b/docs/data-sources/arczonalshift_autoshift_observer_notification_status.md @@ -0,0 +1,26 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_arczonalshift_autoshift_observer_notification_status Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::ARCZonalShift::AutoshiftObserverNotificationStatus +--- + +# awscc_arczonalshift_autoshift_observer_notification_status (Data Source) + +Data Source schema for AWS::ARCZonalShift::AutoshiftObserverNotificationStatus + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `account_id` (String) User account id, used as part of the primary identifier for the resource +- `region` (String) Region, used as part of the primary identifier for the resource +- `status` (String) diff --git a/docs/data-sources/arczonalshift_autoshift_observer_notification_statuses.md b/docs/data-sources/arczonalshift_autoshift_observer_notification_statuses.md new file mode 100644 index 000000000..e9522bbd0 --- /dev/null +++ b/docs/data-sources/arczonalshift_autoshift_observer_notification_statuses.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_arczonalshift_autoshift_observer_notification_statuses Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::ARCZonalShift::AutoshiftObserverNotificationStatus +--- + +# awscc_arczonalshift_autoshift_observer_notification_statuses (Data Source) + +Plural Data Source schema for AWS::ARCZonalShift::AutoshiftObserverNotificationStatus + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/bedrock_guardrail.md b/docs/data-sources/bedrock_guardrail.md index fe3ea22e8..22d3ee05b 100644 --- a/docs/data-sources/bedrock_guardrail.md +++ b/docs/data-sources/bedrock_guardrail.md @@ -24,6 +24,7 @@ Data Source schema for AWS::Bedrock::Guardrail - `blocked_input_messaging` (String) Messaging for when violations are detected in text - `blocked_outputs_messaging` (String) Messaging for when violations are detected in text - `content_policy_config` (Attributes) Content policy config for a guardrail. (see [below for nested schema](#nestedatt--content_policy_config)) +- `contextual_grounding_policy_config` (Attributes) Contextual grounding policy config for a guardrail. (see [below for nested schema](#nestedatt--contextual_grounding_policy_config)) - `created_at` (String) Time Stamp - `description` (String) Description of the guardrail or its version - `failure_recommendations` (List of String) List of failure recommendations @@ -58,6 +59,23 @@ Read-Only: + +### Nested Schema for `contextual_grounding_policy_config` + +Read-Only: + +- `filters_config` (Attributes List) List of contextual grounding filter configs. (see [below for nested schema](#nestedatt--contextual_grounding_policy_config--filters_config)) + + +### Nested Schema for `contextual_grounding_policy_config.filters_config` + +Read-Only: + +- `threshold` (Number) The threshold for this filter. +- `type` (String) Type of contextual grounding filter + + + ### Nested Schema for `sensitive_information_policy_config` diff --git a/docs/data-sources/cleanrooms_configured_table.md b/docs/data-sources/cleanrooms_configured_table.md index e42bde063..4071ce8b1 100644 --- a/docs/data-sources/cleanrooms_configured_table.md +++ b/docs/data-sources/cleanrooms_configured_table.md @@ -60,6 +60,7 @@ Read-Only: Read-Only: +- `additional_analyses` (String) - `aggregate_columns` (Attributes List) (see [below for nested schema](#nestedatt--analysis_rules--policy--v1--aggregation--aggregate_columns)) - `allowed_join_operators` (List of String) - `dimension_columns` (List of String) @@ -93,9 +94,11 @@ Read-Only: Read-Only: +- `additional_analyses` (String) - `allowed_analyses` (List of String) - `allowed_analysis_providers` (List of String) - `differential_privacy` (Attributes) (see [below for nested schema](#nestedatt--analysis_rules--policy--v1--custom--differential_privacy)) +- `disallowed_output_columns` (List of String) ### Nested Schema for `analysis_rules.policy.v1.custom.differential_privacy` @@ -119,6 +122,7 @@ Read-Only: Read-Only: +- `additional_analyses` (String) - `allowed_join_operators` (List of String) - `join_columns` (List of String) - `list_columns` (List of String) diff --git a/docs/data-sources/cleanrooms_configured_table_association.md b/docs/data-sources/cleanrooms_configured_table_association.md index 2ee57e79f..dac1bddbe 100644 --- a/docs/data-sources/cleanrooms_configured_table_association.md +++ b/docs/data-sources/cleanrooms_configured_table_association.md @@ -22,6 +22,7 @@ Data Source schema for AWS::CleanRooms::ConfiguredTableAssociation ### Read-Only - `arn` (String) +- `configured_table_association_analysis_rules` (Attributes List) (see [below for nested schema](#nestedatt--configured_table_association_analysis_rules)) - `configured_table_association_identifier` (String) - `configured_table_identifier` (String) - `description` (String) @@ -30,6 +31,60 @@ Data Source schema for AWS::CleanRooms::ConfiguredTableAssociation - `role_arn` (String) - `tags` (Attributes List) An arbitrary set of tags (key-value pairs) for this cleanrooms collaboration. (see [below for nested schema](#nestedatt--tags)) + +### Nested Schema for `configured_table_association_analysis_rules` + +Read-Only: + +- `policy` (Attributes) (see [below for nested schema](#nestedatt--configured_table_association_analysis_rules--policy)) +- `type` (String) + + +### Nested Schema for `configured_table_association_analysis_rules.policy` + +Read-Only: + +- `v1` (Attributes) (see [below for nested schema](#nestedatt--configured_table_association_analysis_rules--policy--v1)) + + +### Nested Schema for `configured_table_association_analysis_rules.policy.v1` + +Read-Only: + +- `aggregation` (Attributes) (see [below for nested schema](#nestedatt--configured_table_association_analysis_rules--policy--v1--aggregation)) +- `custom` (Attributes) (see [below for nested schema](#nestedatt--configured_table_association_analysis_rules--policy--v1--custom)) +- `list` (Attributes) (see [below for nested schema](#nestedatt--configured_table_association_analysis_rules--policy--v1--list)) + + +### Nested Schema for `configured_table_association_analysis_rules.policy.v1.aggregation` + +Read-Only: + +- `allowed_additional_analyses` (List of String) +- `allowed_result_receivers` (List of String) + + + +### Nested Schema for `configured_table_association_analysis_rules.policy.v1.custom` + +Read-Only: + +- `allowed_additional_analyses` (List of String) +- `allowed_result_receivers` (List of String) + + + +### Nested Schema for `configured_table_association_analysis_rules.policy.v1.list` + +Read-Only: + +- `allowed_additional_analyses` (List of String) +- `allowed_result_receivers` (List of String) + + + + + ### Nested Schema for `tags` diff --git a/docs/data-sources/cleanrooms_id_mapping_table.md b/docs/data-sources/cleanrooms_id_mapping_table.md new file mode 100644 index 000000000..6f709bf8d --- /dev/null +++ b/docs/data-sources/cleanrooms_id_mapping_table.md @@ -0,0 +1,69 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_cleanrooms_id_mapping_table Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::CleanRooms::IdMappingTable +--- + +# awscc_cleanrooms_id_mapping_table (Data Source) + +Data Source schema for AWS::CleanRooms::IdMappingTable + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `arn` (String) +- `collaboration_arn` (String) +- `collaboration_identifier` (String) +- `description` (String) +- `id_mapping_table_identifier` (String) +- `input_reference_config` (Attributes) (see [below for nested schema](#nestedatt--input_reference_config)) +- `input_reference_properties` (Attributes) (see [below for nested schema](#nestedatt--input_reference_properties)) +- `kms_key_arn` (String) +- `membership_arn` (String) +- `membership_identifier` (String) +- `name` (String) +- `tags` (Attributes Set) (see [below for nested schema](#nestedatt--tags)) + + +### Nested Schema for `input_reference_config` + +Read-Only: + +- `input_reference_arn` (String) +- `manage_resource_policies` (Boolean) + + + +### Nested Schema for `input_reference_properties` + +Read-Only: + +- `id_mapping_table_input_source` (Attributes List) (see [below for nested schema](#nestedatt--input_reference_properties--id_mapping_table_input_source)) + + +### Nested Schema for `input_reference_properties.id_mapping_table_input_source` + +Read-Only: + +- `id_namespace_association_id` (String) +- `type` (String) + + + + +### Nested Schema for `tags` + +Read-Only: + +- `key` (String) +- `value` (String) diff --git a/docs/data-sources/ec2_vpn_connection.md b/docs/data-sources/ec2_vpn_connection.md index 2f093ef50..7750eb9c2 100644 --- a/docs/data-sources/ec2_vpn_connection.md +++ b/docs/data-sources/ec2_vpn_connection.md @@ -22,12 +22,16 @@ Data Source schema for AWS::EC2::VPNConnection ### Read-Only - `customer_gateway_id` (String) The ID of the customer gateway at your end of the VPN connection. -- `static_routes_only` (Boolean) Indicates whether the VPN connection uses static routes only. +- `enable_acceleration` (Boolean) +- `static_routes_only` (Boolean) Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP. + If you are creating a VPN connection for a device that does not support Border Gateway Protocol (BGP), you must specify ``true``. - `tags` (Attributes List) Any tags assigned to the VPN connection. (see [below for nested schema](#nestedatt--tags)) - `transit_gateway_id` (String) The ID of the transit gateway associated with the VPN connection. + You must specify either ``TransitGatewayId`` or ``VpnGatewayId``, but not both. - `type` (String) The type of VPN connection. -- `vpn_connection_id` (String) The provider-assigned unique ID for this managed resource +- `vpn_connection_id` (String) - `vpn_gateway_id` (String) The ID of the virtual private gateway at the AWS side of the VPN connection. + You must specify either ``TransitGatewayId`` or ``VpnGatewayId``, but not both. - `vpn_tunnel_options_specifications` (Attributes List) The tunnel options for the VPN connection. (see [below for nested schema](#nestedatt--vpn_tunnel_options_specifications)) @@ -35,8 +39,8 @@ Data Source schema for AWS::EC2::VPNConnection Read-Only: -- `key` (String) -- `value` (String) +- `key` (String) The tag key. +- `value` (String) The tag value. @@ -44,5 +48,14 @@ Read-Only: Read-Only: -- `pre_shared_key` (String) -- `tunnel_inside_cidr` (String) +- `pre_shared_key` (String) The pre-shared key (PSK) to establish initial authentication between the virtual private gateway and customer gateway. + Constraints: Allowed characters are alphanumeric characters, periods (.), and underscores (_). Must be between 8 and 64 characters in length and cannot start with zero (0). +- `tunnel_inside_cidr` (String) The range of inside IP addresses for the tunnel. Any specified CIDR blocks must be unique across all VPN connections that use the same virtual private gateway. + Constraints: A size /30 CIDR block from the ``169.254.0.0/16`` range. The following CIDR blocks are reserved and cannot be used: + + ``169.254.0.0/30`` + + ``169.254.1.0/30`` + + ``169.254.2.0/30`` + + ``169.254.3.0/30`` + + ``169.254.4.0/30`` + + ``169.254.5.0/30`` + + ``169.254.169.252/30`` diff --git a/docs/data-sources/elasticloadbalancingv2_load_balancer.md b/docs/data-sources/elasticloadbalancingv2_load_balancer.md index 84eb874b8..77d6f472f 100644 --- a/docs/data-sources/elasticloadbalancingv2_load_balancer.md +++ b/docs/data-sources/elasticloadbalancingv2_load_balancer.md @@ -26,7 +26,7 @@ Data Source schema for AWS::ElasticLoadBalancingV2::LoadBalancer - `enforce_security_group_inbound_rules_on_private_link_traffic` (String) Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. - `ip_address_type` (String) Note: Internal load balancers must use the ``ipv4`` IP address type. [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses). - [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can’t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener. + [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can?t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener. [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). - `load_balancer_arn` (String) - `load_balancer_attributes` (Attributes Set) The load balancer attributes. (see [below for nested schema](#nestedatt--load_balancer_attributes)) diff --git a/docs/data-sources/entityresolution_id_mapping_workflow.md b/docs/data-sources/entityresolution_id_mapping_workflow.md index 80551595f..d1645084c 100644 --- a/docs/data-sources/entityresolution_id_mapping_workflow.md +++ b/docs/data-sources/entityresolution_id_mapping_workflow.md @@ -38,7 +38,6 @@ Data Source schema for AWS::EntityResolution::IdMappingWorkflow Read-Only: - `id_mapping_type` (String) -- `normalization_version` (String) - `provider_properties` (Attributes) (see [below for nested schema](#nestedatt--id_mapping_techniques--provider_properties)) - `rule_based_properties` (Attributes) (see [below for nested schema](#nestedatt--id_mapping_techniques--rule_based_properties)) diff --git a/docs/data-sources/kinesisfirehose_delivery_stream.md b/docs/data-sources/kinesisfirehose_delivery_stream.md index d16ce9550..c9ac40f19 100644 --- a/docs/data-sources/kinesisfirehose_delivery_stream.md +++ b/docs/data-sources/kinesisfirehose_delivery_stream.md @@ -30,6 +30,7 @@ Data Source schema for AWS::KinesisFirehose::DeliveryStream - `elasticsearch_destination_configuration` (Attributes) (see [below for nested schema](#nestedatt--elasticsearch_destination_configuration)) - `extended_s3_destination_configuration` (Attributes) (see [below for nested schema](#nestedatt--extended_s3_destination_configuration)) - `http_endpoint_destination_configuration` (Attributes) (see [below for nested schema](#nestedatt--http_endpoint_destination_configuration)) +- `iceberg_destination_configuration` (Attributes) (see [below for nested schema](#nestedatt--iceberg_destination_configuration)) - `kinesis_stream_source_configuration` (Attributes) (see [below for nested schema](#nestedatt--kinesis_stream_source_configuration)) - `msk_source_configuration` (Attributes) (see [below for nested schema](#nestedatt--msk_source_configuration)) - `redshift_destination_configuration` (Attributes) (see [below for nested schema](#nestedatt--redshift_destination_configuration)) @@ -886,6 +887,146 @@ Read-Only: + +### Nested Schema for `iceberg_destination_configuration` + +Read-Only: + +- `buffering_hints` (Attributes) (see [below for nested schema](#nestedatt--iceberg_destination_configuration--buffering_hints)) +- `catalog_configuration` (Attributes) (see [below for nested schema](#nestedatt--iceberg_destination_configuration--catalog_configuration)) +- `cloudwatch_logging_options` (Attributes) (see [below for nested schema](#nestedatt--iceberg_destination_configuration--cloudwatch_logging_options)) +- `destination_table_configuration_list` (Attributes List) (see [below for nested schema](#nestedatt--iceberg_destination_configuration--destination_table_configuration_list)) +- `processing_configuration` (Attributes) (see [below for nested schema](#nestedatt--iceberg_destination_configuration--processing_configuration)) +- `retry_options` (Attributes) (see [below for nested schema](#nestedatt--iceberg_destination_configuration--retry_options)) +- `role_arn` (String) +- `s3_configuration` (Attributes) (see [below for nested schema](#nestedatt--iceberg_destination_configuration--s3_configuration)) +- `s_3_backup_mode` (String) + + +### Nested Schema for `iceberg_destination_configuration.buffering_hints` + +Read-Only: + +- `interval_in_seconds` (Number) +- `size_in_m_bs` (Number) + + + +### Nested Schema for `iceberg_destination_configuration.catalog_configuration` + +Read-Only: + +- `catalog_arn` (String) + + + +### Nested Schema for `iceberg_destination_configuration.cloudwatch_logging_options` + +Read-Only: + +- `enabled` (Boolean) +- `log_group_name` (String) +- `log_stream_name` (String) + + + +### Nested Schema for `iceberg_destination_configuration.destination_table_configuration_list` + +Read-Only: + +- `destination_database_name` (String) +- `destination_table_name` (String) +- `s3_error_output_prefix` (String) +- `unique_keys` (List of String) + + + +### Nested Schema for `iceberg_destination_configuration.processing_configuration` + +Read-Only: + +- `enabled` (Boolean) +- `processors` (Attributes List) (see [below for nested schema](#nestedatt--iceberg_destination_configuration--processing_configuration--processors)) + + +### Nested Schema for `iceberg_destination_configuration.processing_configuration.processors` + +Read-Only: + +- `parameters` (Attributes List) (see [below for nested schema](#nestedatt--iceberg_destination_configuration--processing_configuration--processors--parameters)) +- `type` (String) + + +### Nested Schema for `iceberg_destination_configuration.processing_configuration.processors.parameters` + +Read-Only: + +- `parameter_name` (String) +- `parameter_value` (String) + + + + + +### Nested Schema for `iceberg_destination_configuration.retry_options` + +Read-Only: + +- `duration_in_seconds` (Number) + + + +### Nested Schema for `iceberg_destination_configuration.s3_configuration` + +Read-Only: + +- `bucket_arn` (String) +- `buffering_hints` (Attributes) (see [below for nested schema](#nestedatt--iceberg_destination_configuration--s3_configuration--buffering_hints)) +- `cloudwatch_logging_options` (Attributes) (see [below for nested schema](#nestedatt--iceberg_destination_configuration--s3_configuration--cloudwatch_logging_options)) +- `compression_format` (String) +- `encryption_configuration` (Attributes) (see [below for nested schema](#nestedatt--iceberg_destination_configuration--s3_configuration--encryption_configuration)) +- `error_output_prefix` (String) +- `prefix` (String) +- `role_arn` (String) + + +### Nested Schema for `iceberg_destination_configuration.s3_configuration.buffering_hints` + +Read-Only: + +- `interval_in_seconds` (Number) +- `size_in_m_bs` (Number) + + + +### Nested Schema for `iceberg_destination_configuration.s3_configuration.cloudwatch_logging_options` + +Read-Only: + +- `enabled` (Boolean) +- `log_group_name` (String) +- `log_stream_name` (String) + + + +### Nested Schema for `iceberg_destination_configuration.s3_configuration.encryption_configuration` + +Read-Only: + +- `kms_encryption_config` (Attributes) (see [below for nested schema](#nestedatt--iceberg_destination_configuration--s3_configuration--encryption_configuration--kms_encryption_config)) +- `no_encryption_config` (String) + + +### Nested Schema for `iceberg_destination_configuration.s3_configuration.encryption_configuration.kms_encryption_config` + +Read-Only: + +- `awskms_key_arn` (String) + + + + + ### Nested Schema for `kinesis_stream_source_configuration` @@ -1157,6 +1298,7 @@ Read-Only: Read-Only: - `account_url` (String) +- `buffering_hints` (Attributes) (see [below for nested schema](#nestedatt--snowflake_destination_configuration--buffering_hints)) - `cloudwatch_logging_options` (Attributes) (see [below for nested schema](#nestedatt--snowflake_destination_configuration--cloudwatch_logging_options)) - `content_column_name` (String) - `data_loading_option` (String) @@ -1176,6 +1318,15 @@ Read-Only: - `table` (String) - `user` (String) + +### Nested Schema for `snowflake_destination_configuration.buffering_hints` + +Read-Only: + +- `interval_in_seconds` (Number) +- `size_in_m_bs` (Number) + + ### Nested Schema for `snowflake_destination_configuration.cloudwatch_logging_options` diff --git a/docs/data-sources/panorama_application_instance.md b/docs/data-sources/panorama_application_instance.md index 6dab8936e..9f28f3fbf 100644 --- a/docs/data-sources/panorama_application_instance.md +++ b/docs/data-sources/panorama_application_instance.md @@ -22,28 +22,28 @@ Data Source schema for AWS::Panorama::ApplicationInstance ### Read-Only - `application_instance_id` (String) -- `application_instance_id_to_replace` (String) +- `application_instance_id_to_replace` (String) The ID of an application instance to replace with the new instance. - `arn` (String) - `created_time` (Number) -- `default_runtime_context_device` (String) +- `default_runtime_context_device` (String) The device's ID. - `default_runtime_context_device_name` (String) -- `description` (String) +- `description` (String) A description for the application instance. - `health_status` (String) - `last_updated_time` (Number) -- `manifest_overrides_payload` (Attributes) (see [below for nested schema](#nestedatt--manifest_overrides_payload)) -- `manifest_payload` (Attributes) (see [below for nested schema](#nestedatt--manifest_payload)) -- `name` (String) -- `runtime_role_arn` (String) +- `manifest_overrides_payload` (Attributes) Setting overrides for the application manifest. (see [below for nested schema](#nestedatt--manifest_overrides_payload)) +- `manifest_payload` (Attributes) The application's manifest document. (see [below for nested schema](#nestedatt--manifest_payload)) +- `name` (String) A name for the application instance. +- `runtime_role_arn` (String) The ARN of a runtime role for the application instance. - `status` (String) - `status_description` (String) -- `tags` (Attributes Set) List of tags (see [below for nested schema](#nestedatt--tags)) +- `tags` (Attributes Set) Tags for the application instance. (see [below for nested schema](#nestedatt--tags)) ### Nested Schema for `manifest_overrides_payload` Read-Only: -- `payload_data` (String) +- `payload_data` (String) The overrides document. @@ -51,7 +51,7 @@ Read-Only: Read-Only: -- `payload_data` (String) +- `payload_data` (String) The application manifest. @@ -59,5 +59,5 @@ Read-Only: Read-Only: -- `key` (String) A string used to identify this tag -- `value` (String) A string containing the value for the tag +- `key` (String) +- `value` (String) diff --git a/docs/data-sources/panorama_package.md b/docs/data-sources/panorama_package.md index 420d73fbb..9cea830a8 100644 --- a/docs/data-sources/panorama_package.md +++ b/docs/data-sources/panorama_package.md @@ -24,20 +24,20 @@ Data Source schema for AWS::Panorama::Package - `arn` (String) - `created_time` (Number) - `package_id` (String) -- `package_name` (String) -- `storage_location` (Attributes) (see [below for nested schema](#nestedatt--storage_location)) -- `tags` (Attributes Set) (see [below for nested schema](#nestedatt--tags)) +- `package_name` (String) A name for the package. +- `storage_location` (Attributes) A storage location. (see [below for nested schema](#nestedatt--storage_location)) +- `tags` (Attributes Set) Tags for the package. (see [below for nested schema](#nestedatt--tags)) ### Nested Schema for `storage_location` Read-Only: -- `binary_prefix_location` (String) -- `bucket` (String) -- `generated_prefix_location` (String) -- `manifest_prefix_location` (String) -- `repo_prefix_location` (String) +- `binary_prefix_location` (String) The location's binary prefix. +- `bucket` (String) The location's bucket. +- `generated_prefix_location` (String) The location's generated prefix. +- `manifest_prefix_location` (String) The location's manifest prefix. +- `repo_prefix_location` (String) The location's repo prefix. diff --git a/docs/data-sources/panorama_package_version.md b/docs/data-sources/panorama_package_version.md index 3ed49a805..8ac5c1bba 100644 --- a/docs/data-sources/panorama_package_version.md +++ b/docs/data-sources/panorama_package_version.md @@ -22,14 +22,14 @@ Data Source schema for AWS::Panorama::PackageVersion ### Read-Only - `is_latest_patch` (Boolean) -- `mark_latest` (Boolean) -- `owner_account` (String) +- `mark_latest` (Boolean) Whether to mark the new version as the latest version. +- `owner_account` (String) An owner account. - `package_arn` (String) -- `package_id` (String) +- `package_id` (String) A package ID. - `package_name` (String) -- `package_version` (String) -- `patch_version` (String) +- `package_version` (String) A package version. +- `patch_version` (String) A patch version. - `registered_time` (Number) - `status` (String) - `status_description` (String) -- `updated_latest_patch_version` (String) +- `updated_latest_patch_version` (String) If the version was marked latest, the new version to maker as latest. diff --git a/docs/data-sources/rds_integration.md b/docs/data-sources/rds_integration.md index 620429c37..74a8052cd 100644 --- a/docs/data-sources/rds_integration.md +++ b/docs/data-sources/rds_integration.md @@ -21,15 +21,16 @@ Data Source schema for AWS::RDS::Integration ### Read-Only -- `additional_encryption_context` (Map of String) An optional set of non-secret key–value pairs that contains additional contextual information about the data. +- `additional_encryption_context` (Map of String) An optional set of non-secret key?value pairs that contains additional contextual information about the data. For more information, see [Encryption context](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) in the *Key Management Service Developer Guide*. + You can only include this parameter if you specify the ``KMSKeyId`` parameter. - `create_time` (String) -- `data_filter` (String) The data filter for the integration. -- `description` (String) The description of the integration. -- `integration_arn` (String) The ARN of the integration. +- `data_filter` (String) Data filters for the integration. These filters determine which tables from the source database are sent to the target Amazon Redshift data warehouse. +- `description` (String) A description of the integration. +- `integration_arn` (String) - `integration_name` (String) The name of the integration. -- `kms_key_id` (String) An optional AWS Key Management System (AWS KMS) key ARN for the key used to to encrypt the integration. The resource accepts the key ID and the key ARN forms. The key ID form can be used if the KMS key is owned by te same account. If the KMS key belongs to a different account than the calling account, the full key ARN must be specified. Do not use the key alias or the key alias ARN as this will cause a false drift of the resource. -- `source_arn` (String) The Amazon Resource Name (ARN) of the Aurora DB cluster to use as the source for replication. -- `tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) +- `kms_key_id` (String) The AWS Key Management System (AWS KMS) key identifier for the key to use to encrypt the integration. If you don't specify an encryption key, RDS uses a default AWS owned key. +- `source_arn` (String) The Amazon Resource Name (ARN) of the database to use as the source for replication. +- `tags` (Attributes Set) A list of tags. For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide.*. (see [below for nested schema](#nestedatt--tags)) - `target_arn` (String) The ARN of the Redshift data warehouse to use as the target for replication. @@ -37,5 +38,5 @@ Data Source schema for AWS::RDS::Integration Read-Only: -- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. -- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `key` (String) A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"). +- `value` (String) A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"). diff --git a/docs/data-sources/sagemaker_app.md b/docs/data-sources/sagemaker_app.md index 770206379..c4d3fb2a0 100644 --- a/docs/data-sources/sagemaker_app.md +++ b/docs/data-sources/sagemaker_app.md @@ -35,6 +35,7 @@ Data Source schema for AWS::SageMaker::App Read-Only: - `instance_type` (String) The instance type that the image version runs on. +- `lifecycle_config_arn` (String) The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource. - `sage_maker_image_arn` (String) The ARN of the SageMaker image that the image version belongs to. - `sage_maker_image_version_arn` (String) The ARN of the image version created on the instance. diff --git a/docs/data-sources/sagemaker_domain.md b/docs/data-sources/sagemaker_domain.md index 59c5a4946..e34f17dfc 100644 --- a/docs/data-sources/sagemaker_domain.md +++ b/docs/data-sources/sagemaker_domain.md @@ -126,6 +126,7 @@ Read-Only: Read-Only: - `default_resource_spec` (Attributes) (see [below for nested schema](#nestedatt--default_space_settings--jupyter_server_app_settings--default_resource_spec)) +- `lifecycle_config_arns` (List of String) A list of LifecycleConfigArns available for use with JupyterServer apps. ### Nested Schema for `default_space_settings.jupyter_server_app_settings.default_resource_spec` @@ -146,6 +147,7 @@ Read-Only: - `custom_images` (Attributes List) A list of custom SageMaker images that are configured to run as a KernelGateway app. (see [below for nested schema](#nestedatt--default_space_settings--kernel_gateway_app_settings--custom_images)) - `default_resource_spec` (Attributes) The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app. (see [below for nested schema](#nestedatt--default_space_settings--kernel_gateway_app_settings--default_resource_spec)) +- `lifecycle_config_arns` (List of String) A list of LifecycleConfigArns available for use with KernelGateway apps. ### Nested Schema for `default_space_settings.kernel_gateway_app_settings.custom_images` @@ -311,6 +313,7 @@ Read-Only: Read-Only: - `default_resource_spec` (Attributes) (see [below for nested schema](#nestedatt--default_user_settings--jupyter_server_app_settings--default_resource_spec)) +- `lifecycle_config_arns` (List of String) A list of LifecycleConfigArns available for use with JupyterServer apps. ### Nested Schema for `default_user_settings.jupyter_server_app_settings.default_resource_spec` @@ -331,6 +334,7 @@ Read-Only: - `custom_images` (Attributes List) A list of custom SageMaker images that are configured to run as a KernelGateway app. (see [below for nested schema](#nestedatt--default_user_settings--kernel_gateway_app_settings--custom_images)) - `default_resource_spec` (Attributes) The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app. (see [below for nested schema](#nestedatt--default_user_settings--kernel_gateway_app_settings--default_resource_spec)) +- `lifecycle_config_arns` (List of String) A list of LifecycleConfigArns available for use with KernelGateway apps. ### Nested Schema for `default_user_settings.kernel_gateway_app_settings.custom_images` diff --git a/docs/data-sources/sagemaker_space.md b/docs/data-sources/sagemaker_space.md index 1c895ef6e..29b867bf1 100644 --- a/docs/data-sources/sagemaker_space.md +++ b/docs/data-sources/sagemaker_space.md @@ -65,6 +65,7 @@ Read-Only: Read-Only: - `instance_type` (String) The instance type that the image version runs on. +- `lifecycle_config_arn` (String) The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource. - `sage_maker_image_arn` (String) The ARN of the SageMaker image that the image version belongs to. - `sage_maker_image_version_arn` (String) The ARN of the image version created on the instance. @@ -108,6 +109,7 @@ Read-Only: Read-Only: - `instance_type` (String) The instance type that the image version runs on. +- `lifecycle_config_arn` (String) The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource. - `sage_maker_image_arn` (String) The ARN of the SageMaker image that the image version belongs to. - `sage_maker_image_version_arn` (String) The ARN of the image version created on the instance. @@ -119,6 +121,7 @@ Read-Only: Read-Only: - `default_resource_spec` (Attributes) (see [below for nested schema](#nestedatt--space_settings--jupyter_server_app_settings--default_resource_spec)) +- `lifecycle_config_arns` (List of String) A list of LifecycleConfigArns available for use with JupyterServer apps. ### Nested Schema for `space_settings.jupyter_server_app_settings.default_resource_spec` @@ -126,6 +129,7 @@ Read-Only: Read-Only: - `instance_type` (String) The instance type that the image version runs on. +- `lifecycle_config_arn` (String) The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource. - `sage_maker_image_arn` (String) The ARN of the SageMaker image that the image version belongs to. - `sage_maker_image_version_arn` (String) The ARN of the image version created on the instance. @@ -138,6 +142,7 @@ Read-Only: - `custom_images` (Attributes List) A list of custom SageMaker images that are configured to run as a KernelGateway app. (see [below for nested schema](#nestedatt--space_settings--kernel_gateway_app_settings--custom_images)) - `default_resource_spec` (Attributes) The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app. (see [below for nested schema](#nestedatt--space_settings--kernel_gateway_app_settings--default_resource_spec)) +- `lifecycle_config_arns` (List of String) A list of LifecycleConfigArns available for use with KernelGateway apps. ### Nested Schema for `space_settings.kernel_gateway_app_settings.custom_images` @@ -155,6 +160,7 @@ Read-Only: Read-Only: - `instance_type` (String) The instance type that the image version runs on. +- `lifecycle_config_arn` (String) The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource. - `sage_maker_image_arn` (String) The ARN of the SageMaker image that the image version belongs to. - `sage_maker_image_version_arn` (String) The ARN of the image version created on the instance. diff --git a/docs/data-sources/sagemaker_studio_lifecycle_config.md b/docs/data-sources/sagemaker_studio_lifecycle_config.md new file mode 100644 index 000000000..299a28157 --- /dev/null +++ b/docs/data-sources/sagemaker_studio_lifecycle_config.md @@ -0,0 +1,36 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_sagemaker_studio_lifecycle_config Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::SageMaker::StudioLifecycleConfig +--- + +# awscc_sagemaker_studio_lifecycle_config (Data Source) + +Data Source schema for AWS::SageMaker::StudioLifecycleConfig + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `studio_lifecycle_config_app_type` (String) The App type that the Lifecycle Configuration is attached to. +- `studio_lifecycle_config_arn` (String) The Amazon Resource Name (ARN) of the Lifecycle Configuration. +- `studio_lifecycle_config_content` (String) The content of your Amazon SageMaker Studio Lifecycle Configuration script. +- `studio_lifecycle_config_name` (String) The name of the Amazon SageMaker Studio Lifecycle Configuration. +- `tags` (Attributes List) Tags to be associated with the Lifecycle Configuration. (see [below for nested schema](#nestedatt--tags)) + + +### Nested Schema for `tags` + +Read-Only: + +- `key` (String) +- `value` (String) diff --git a/docs/data-sources/sagemaker_studio_lifecycle_configs.md b/docs/data-sources/sagemaker_studio_lifecycle_configs.md new file mode 100644 index 000000000..92aa55fb2 --- /dev/null +++ b/docs/data-sources/sagemaker_studio_lifecycle_configs.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_sagemaker_studio_lifecycle_configs Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::SageMaker::StudioLifecycleConfig +--- + +# awscc_sagemaker_studio_lifecycle_configs (Data Source) + +Plural Data Source schema for AWS::SageMaker::StudioLifecycleConfig + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/sagemaker_user_profile.md b/docs/data-sources/sagemaker_user_profile.md index e55086f4a..25440f1d9 100644 --- a/docs/data-sources/sagemaker_user_profile.md +++ b/docs/data-sources/sagemaker_user_profile.md @@ -83,6 +83,7 @@ Read-Only: Read-Only: - `instance_type` (String) The instance type that the image version runs on. +- `lifecycle_config_arn` (String) The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource. - `sage_maker_image_arn` (String) The ARN of the SageMaker image that the image version belongs to. - `sage_maker_image_version_arn` (String) The ARN of the image version created on the instance. @@ -148,6 +149,7 @@ Read-Only: Read-Only: - `instance_type` (String) The instance type that the image version runs on. +- `lifecycle_config_arn` (String) The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource. - `sage_maker_image_arn` (String) The ARN of the SageMaker image that the image version belongs to. - `sage_maker_image_version_arn` (String) The ARN of the image version created on the instance. @@ -159,6 +161,7 @@ Read-Only: Read-Only: - `default_resource_spec` (Attributes) (see [below for nested schema](#nestedatt--user_settings--jupyter_server_app_settings--default_resource_spec)) +- `lifecycle_config_arns` (List of String) A list of LifecycleConfigArns available for use with JupyterServer apps. ### Nested Schema for `user_settings.jupyter_server_app_settings.default_resource_spec` @@ -166,6 +169,7 @@ Read-Only: Read-Only: - `instance_type` (String) The instance type that the image version runs on. +- `lifecycle_config_arn` (String) The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource. - `sage_maker_image_arn` (String) The ARN of the SageMaker image that the image version belongs to. - `sage_maker_image_version_arn` (String) The ARN of the image version created on the instance. @@ -178,6 +182,7 @@ Read-Only: - `custom_images` (Attributes List) A list of custom SageMaker images that are configured to run as a KernelGateway app. (see [below for nested schema](#nestedatt--user_settings--kernel_gateway_app_settings--custom_images)) - `default_resource_spec` (Attributes) The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app. (see [below for nested schema](#nestedatt--user_settings--kernel_gateway_app_settings--default_resource_spec)) +- `lifecycle_config_arns` (List of String) A list of LifecycleConfigArns available for use with KernelGateway apps. ### Nested Schema for `user_settings.kernel_gateway_app_settings.custom_images` @@ -195,6 +200,7 @@ Read-Only: Read-Only: - `instance_type` (String) The instance type that the image version runs on. +- `lifecycle_config_arn` (String) The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource. - `sage_maker_image_arn` (String) The ARN of the SageMaker image that the image version belongs to. - `sage_maker_image_version_arn` (String) The ARN of the image version created on the instance. diff --git a/docs/data-sources/sns_topic.md b/docs/data-sources/sns_topic.md index 09a378422..bd9bdb23e 100644 --- a/docs/data-sources/sns_topic.md +++ b/docs/data-sources/sns_topic.md @@ -30,7 +30,14 @@ Data Source schema for AWS::SNS::Topic You can only add one policy per topic. The policy must be in JSON string format. Length Constraints: Maximum length of 30,720. -- `delivery_status_logging` (Attributes Set) (see [below for nested schema](#nestedatt--delivery_status_logging)) +- `delivery_status_logging` (Attributes Set) The ``DeliveryStatusLogging`` configuration enables you to log the delivery status of messages sent from your Amazon SNS topic to subscribed endpoints with the following supported delivery protocols: + + HTTP + + Amazon Kinesis Data Firehose + + AWS Lambda + + Platform application endpoint + + Amazon Simple Queue Service + + Once configured, log entries are sent to Amazon CloudWatch Logs. (see [below for nested schema](#nestedatt--delivery_status_logging)) - `display_name` (String) The display name to use for an SNS topic with SMS subscriptions. The display name must be maximum 100 characters long, including hyphens (-), underscores (_), spaces, and tabs. - `fifo_topic` (Boolean) Set to true to create a FIFO topic. - `kms_master_key_id` (String) The ID of an AWS managed customer master key (CMK) for SNS or a custom CMK. For more information, see [Key terms](https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html#sse-key-terms). For more examples, see ``KeyId`` in the *API Reference*. @@ -51,10 +58,11 @@ Data Source schema for AWS::SNS::Topic Read-Only: -- `failure_feedback_role_arn` (String) -- `protocol` (String) -- `success_feedback_role_arn` (String) -- `success_feedback_sample_rate` (String) +- `failure_feedback_role_arn` (String) The IAM role ARN to be used when logging failed message deliveries in Amazon CloudWatch. +- `protocol` (String) Indicates one of the supported protocols for the Amazon SNS topic. + At least one of the other three ``LoggingConfig`` properties is recommend along with ``Protocol``. +- `success_feedback_role_arn` (String) The IAM role ARN to be used when logging successful message deliveries in Amazon CloudWatch. +- `success_feedback_sample_rate` (String) The percentage of successful message deliveries to be logged in Amazon CloudWatch. Valid percentage values range from 0 to 100. diff --git a/docs/resources/arczonalshift_autoshift_observer_notification_status.md b/docs/resources/arczonalshift_autoshift_observer_notification_status.md new file mode 100644 index 000000000..569b9be3a --- /dev/null +++ b/docs/resources/arczonalshift_autoshift_observer_notification_status.md @@ -0,0 +1,34 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_arczonalshift_autoshift_observer_notification_status Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Definition of AWS::ARCZonalShift::AutoshiftObserverNotificationStatus Resource Type +--- + +# awscc_arczonalshift_autoshift_observer_notification_status (Resource) + +Definition of AWS::ARCZonalShift::AutoshiftObserverNotificationStatus Resource Type + + + + +## Schema + +### Required + +- `status` (String) + +### Read-Only + +- `account_id` (String) User account id, used as part of the primary identifier for the resource +- `id` (String) Uniquely identifies the resource. +- `region` (String) Region, used as part of the primary identifier for the resource + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_arczonalshift_autoshift_observer_notification_status.example +``` diff --git a/docs/resources/bedrock_guardrail.md b/docs/resources/bedrock_guardrail.md index 164fa3200..c88274820 100644 --- a/docs/resources/bedrock_guardrail.md +++ b/docs/resources/bedrock_guardrail.md @@ -228,6 +228,7 @@ variable "kms_key_arn" { ### Optional - `content_policy_config` (Attributes) Content policy config for a guardrail. (see [below for nested schema](#nestedatt--content_policy_config)) +- `contextual_grounding_policy_config` (Attributes) Contextual grounding policy config for a guardrail. (see [below for nested schema](#nestedatt--contextual_grounding_policy_config)) - `description` (String) Description of the guardrail or its version - `kms_key_arn` (String) The KMS key with which the guardrail was encrypted at rest - `sensitive_information_policy_config` (Attributes) Sensitive information policy config for a guardrail. (see [below for nested schema](#nestedatt--sensitive_information_policy_config)) @@ -265,6 +266,23 @@ Required: + +### Nested Schema for `contextual_grounding_policy_config` + +Required: + +- `filters_config` (Attributes List) List of contextual grounding filter configs. (see [below for nested schema](#nestedatt--contextual_grounding_policy_config--filters_config)) + + +### Nested Schema for `contextual_grounding_policy_config.filters_config` + +Required: + +- `threshold` (Number) The threshold for this filter. +- `type` (String) Type of contextual grounding filter + + + ### Nested Schema for `sensitive_information_policy_config` diff --git a/docs/resources/cleanrooms_configured_table.md b/docs/resources/cleanrooms_configured_table.md index 30ac1c4f8..240e2c652 100644 --- a/docs/resources/cleanrooms_configured_table.md +++ b/docs/resources/cleanrooms_configured_table.md @@ -88,6 +88,7 @@ Required: Optional: +- `additional_analyses` (String) - `allowed_join_operators` (List of String) - `join_required` (String) @@ -120,8 +121,10 @@ Required: Optional: +- `additional_analyses` (String) - `allowed_analysis_providers` (List of String) - `differential_privacy` (Attributes) (see [below for nested schema](#nestedatt--analysis_rules--policy--v1--custom--differential_privacy)) +- `disallowed_output_columns` (List of String) ### Nested Schema for `analysis_rules.policy.v1.custom.differential_privacy` @@ -150,6 +153,7 @@ Required: Optional: +- `additional_analyses` (String) - `allowed_join_operators` (List of String) diff --git a/docs/resources/cleanrooms_configured_table_association.md b/docs/resources/cleanrooms_configured_table_association.md index f5bc84677..2f865aa70 100644 --- a/docs/resources/cleanrooms_configured_table_association.md +++ b/docs/resources/cleanrooms_configured_table_association.md @@ -24,6 +24,7 @@ Represents a table that can be queried within a collaboration ### Optional +- `configured_table_association_analysis_rules` (Attributes List) (see [below for nested schema](#nestedatt--configured_table_association_analysis_rules)) - `description` (String) - `tags` (Attributes List) An arbitrary set of tags (key-value pairs) for this cleanrooms collaboration. (see [below for nested schema](#nestedatt--tags)) @@ -33,6 +34,60 @@ Represents a table that can be queried within a collaboration - `configured_table_association_identifier` (String) - `id` (String) Uniquely identifies the resource. + +### Nested Schema for `configured_table_association_analysis_rules` + +Required: + +- `policy` (Attributes) (see [below for nested schema](#nestedatt--configured_table_association_analysis_rules--policy)) +- `type` (String) + + +### Nested Schema for `configured_table_association_analysis_rules.policy` + +Required: + +- `v1` (Attributes) (see [below for nested schema](#nestedatt--configured_table_association_analysis_rules--policy--v1)) + + +### Nested Schema for `configured_table_association_analysis_rules.policy.v1` + +Optional: + +- `aggregation` (Attributes) (see [below for nested schema](#nestedatt--configured_table_association_analysis_rules--policy--v1--aggregation)) +- `custom` (Attributes) (see [below for nested schema](#nestedatt--configured_table_association_analysis_rules--policy--v1--custom)) +- `list` (Attributes) (see [below for nested schema](#nestedatt--configured_table_association_analysis_rules--policy--v1--list)) + + +### Nested Schema for `configured_table_association_analysis_rules.policy.v1.aggregation` + +Optional: + +- `allowed_additional_analyses` (List of String) +- `allowed_result_receivers` (List of String) + + + +### Nested Schema for `configured_table_association_analysis_rules.policy.v1.custom` + +Optional: + +- `allowed_additional_analyses` (List of String) +- `allowed_result_receivers` (List of String) + + + +### Nested Schema for `configured_table_association_analysis_rules.policy.v1.list` + +Optional: + +- `allowed_additional_analyses` (List of String) +- `allowed_result_receivers` (List of String) + + + + + ### Nested Schema for `tags` diff --git a/docs/resources/cleanrooms_id_mapping_table.md b/docs/resources/cleanrooms_id_mapping_table.md new file mode 100644 index 000000000..657f5f7c2 --- /dev/null +++ b/docs/resources/cleanrooms_id_mapping_table.md @@ -0,0 +1,79 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_cleanrooms_id_mapping_table Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Represents an association between an ID mapping workflow and a collaboration +--- + +# awscc_cleanrooms_id_mapping_table (Resource) + +Represents an association between an ID mapping workflow and a collaboration + + + + +## Schema + +### Required + +- `input_reference_config` (Attributes) (see [below for nested schema](#nestedatt--input_reference_config)) +- `membership_identifier` (String) +- `name` (String) + +### Optional + +- `description` (String) +- `kms_key_arn` (String) +- `tags` (Attributes Set) (see [below for nested schema](#nestedatt--tags)) + +### Read-Only + +- `arn` (String) +- `collaboration_arn` (String) +- `collaboration_identifier` (String) +- `id` (String) Uniquely identifies the resource. +- `id_mapping_table_identifier` (String) +- `input_reference_properties` (Attributes) (see [below for nested schema](#nestedatt--input_reference_properties)) +- `membership_arn` (String) + + +### Nested Schema for `input_reference_config` + +Required: + +- `input_reference_arn` (String) +- `manage_resource_policies` (Boolean) + + + +### Nested Schema for `tags` + +Required: + +- `key` (String) +- `value` (String) + + + +### Nested Schema for `input_reference_properties` + +Read-Only: + +- `id_mapping_table_input_source` (Attributes List) (see [below for nested schema](#nestedatt--input_reference_properties--id_mapping_table_input_source)) + + +### Nested Schema for `input_reference_properties.id_mapping_table_input_source` + +Read-Only: + +- `id_namespace_association_id` (String) +- `type` (String) + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_cleanrooms_id_mapping_table.example +``` diff --git a/docs/resources/ec2_vpn_connection.md b/docs/resources/ec2_vpn_connection.md index 52be7e971..14c076db0 100644 --- a/docs/resources/ec2_vpn_connection.md +++ b/docs/resources/ec2_vpn_connection.md @@ -3,12 +3,18 @@ page_title: "awscc_ec2_vpn_connection Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource Type definition for AWS::EC2::VPNConnection + Specifies a VPN connection between a virtual private gateway and a VPN customer gateway or a transit gateway and a VPN customer gateway. + To specify a VPN connection between a transit gateway and customer gateway, use the TransitGatewayId and CustomerGatewayId properties. + To specify a VPN connection between a virtual private gateway and customer gateway, use the VpnGatewayId and CustomerGatewayId properties. + For more information, see https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html in the User Guide. --- # awscc_ec2_vpn_connection (Resource) -Resource Type definition for AWS::EC2::VPNConnection +Specifies a VPN connection between a virtual private gateway and a VPN customer gateway or a transit gateway and a VPN customer gateway. + To specify a VPN connection between a transit gateway and customer gateway, use the ``TransitGatewayId`` and ``CustomerGatewayId`` properties. + To specify a VPN connection between a virtual private gateway and customer gateway, use the ``VpnGatewayId`` and ``CustomerGatewayId`` properties. + For more information, see [](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the *User Guide*. @@ -22,24 +28,28 @@ Resource Type definition for AWS::EC2::VPNConnection ### Optional -- `static_routes_only` (Boolean) Indicates whether the VPN connection uses static routes only. +- `enable_acceleration` (Boolean) +- `static_routes_only` (Boolean) Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP. + If you are creating a VPN connection for a device that does not support Border Gateway Protocol (BGP), you must specify ``true``. - `tags` (Attributes List) Any tags assigned to the VPN connection. (see [below for nested schema](#nestedatt--tags)) - `transit_gateway_id` (String) The ID of the transit gateway associated with the VPN connection. + You must specify either ``TransitGatewayId`` or ``VpnGatewayId``, but not both. - `vpn_gateway_id` (String) The ID of the virtual private gateway at the AWS side of the VPN connection. + You must specify either ``TransitGatewayId`` or ``VpnGatewayId``, but not both. - `vpn_tunnel_options_specifications` (Attributes List) The tunnel options for the VPN connection. (see [below for nested schema](#nestedatt--vpn_tunnel_options_specifications)) ### Read-Only - `id` (String) Uniquely identifies the resource. -- `vpn_connection_id` (String) The provider-assigned unique ID for this managed resource +- `vpn_connection_id` (String) ### Nested Schema for `tags` Required: -- `key` (String) -- `value` (String) +- `key` (String) The tag key. +- `value` (String) The tag value. @@ -47,8 +57,17 @@ Required: Optional: -- `pre_shared_key` (String) -- `tunnel_inside_cidr` (String) +- `pre_shared_key` (String) The pre-shared key (PSK) to establish initial authentication between the virtual private gateway and customer gateway. + Constraints: Allowed characters are alphanumeric characters, periods (.), and underscores (_). Must be between 8 and 64 characters in length and cannot start with zero (0). +- `tunnel_inside_cidr` (String) The range of inside IP addresses for the tunnel. Any specified CIDR blocks must be unique across all VPN connections that use the same virtual private gateway. + Constraints: A size /30 CIDR block from the ``169.254.0.0/16`` range. The following CIDR blocks are reserved and cannot be used: + + ``169.254.0.0/30`` + + ``169.254.1.0/30`` + + ``169.254.2.0/30`` + + ``169.254.3.0/30`` + + ``169.254.4.0/30`` + + ``169.254.5.0/30`` + + ``169.254.169.252/30`` ## Import diff --git a/docs/resources/ec2_vpn_connection_route.md b/docs/resources/ec2_vpn_connection_route.md index 3a95a152c..6080fc32c 100644 --- a/docs/resources/ec2_vpn_connection_route.md +++ b/docs/resources/ec2_vpn_connection_route.md @@ -3,12 +3,14 @@ page_title: "awscc_ec2_vpn_connection_route Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource Type definition for AWS::EC2::VPNConnectionRoute + Specifies a static route for a VPN connection between an existing virtual private gateway and a VPN customer gateway. The static route allows traffic to be routed from the virtual private gateway to the VPN customer gateway. + For more information, see https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html in the User Guide. --- # awscc_ec2_vpn_connection_route (Resource) -Resource Type definition for AWS::EC2::VPNConnectionRoute +Specifies a static route for a VPN connection between an existing virtual private gateway and a VPN customer gateway. The static route allows traffic to be routed from the virtual private gateway to the VPN customer gateway. + For more information, see [](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the *User Guide*. diff --git a/docs/resources/elasticloadbalancingv2_load_balancer.md b/docs/resources/elasticloadbalancingv2_load_balancer.md index 4c66702ba..1ccf57510 100644 --- a/docs/resources/elasticloadbalancingv2_load_balancer.md +++ b/docs/resources/elasticloadbalancingv2_load_balancer.md @@ -156,7 +156,7 @@ resource "awscc_elasticloadbalancingv2_load_balancer" "example" { - `enforce_security_group_inbound_rules_on_private_link_traffic` (String) Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. - `ip_address_type` (String) Note: Internal load balancers must use the ``ipv4`` IP address type. [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses). - [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can’t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener. + [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can?t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener. [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). - `load_balancer_attributes` (Attributes Set) The load balancer attributes. (see [below for nested schema](#nestedatt--load_balancer_attributes)) - `name` (String) The name of the load balancer. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, must not begin or end with a hyphen, and must not begin with "internal-". diff --git a/docs/resources/entityresolution_id_mapping_workflow.md b/docs/resources/entityresolution_id_mapping_workflow.md index d03da9d2a..856012c09 100644 --- a/docs/resources/entityresolution_id_mapping_workflow.md +++ b/docs/resources/entityresolution_id_mapping_workflow.md @@ -41,7 +41,6 @@ IdMappingWorkflow defined in AWS Entity Resolution service Optional: - `id_mapping_type` (String) -- `normalization_version` (String) - `provider_properties` (Attributes) (see [below for nested schema](#nestedatt--id_mapping_techniques--provider_properties)) - `rule_based_properties` (Attributes) (see [below for nested schema](#nestedatt--id_mapping_techniques--rule_based_properties)) diff --git a/docs/resources/inspectorv2_cis_scan_configuration.md b/docs/resources/inspectorv2_cis_scan_configuration.md index 081fd99ec..4b7f46bc2 100644 --- a/docs/resources/inspectorv2_cis_scan_configuration.md +++ b/docs/resources/inspectorv2_cis_scan_configuration.md @@ -43,14 +43,17 @@ resource "awscc_inspectorv2_cis_scan_configuration" "example" { ## Schema -### Optional +### Required - `scan_name` (String) Name of the scan - `schedule` (Attributes) Choose a Schedule cadence (see [below for nested schema](#nestedatt--schedule)) - `security_level` (String) -- `tags` (Map of String) - `targets` (Attributes) (see [below for nested schema](#nestedatt--targets)) +### Optional + +- `tags` (Map of String) + ### Read-Only - `arn` (String) CIS Scan configuration unique identifier diff --git a/docs/resources/kinesisfirehose_delivery_stream.md b/docs/resources/kinesisfirehose_delivery_stream.md index 64cb4ec61..dd30a9c35 100644 --- a/docs/resources/kinesisfirehose_delivery_stream.md +++ b/docs/resources/kinesisfirehose_delivery_stream.md @@ -25,6 +25,7 @@ Resource Type definition for AWS::KinesisFirehose::DeliveryStream - `elasticsearch_destination_configuration` (Attributes) (see [below for nested schema](#nestedatt--elasticsearch_destination_configuration)) - `extended_s3_destination_configuration` (Attributes) (see [below for nested schema](#nestedatt--extended_s3_destination_configuration)) - `http_endpoint_destination_configuration` (Attributes) (see [below for nested schema](#nestedatt--http_endpoint_destination_configuration)) +- `iceberg_destination_configuration` (Attributes) (see [below for nested schema](#nestedatt--iceberg_destination_configuration)) - `kinesis_stream_source_configuration` (Attributes) (see [below for nested schema](#nestedatt--kinesis_stream_source_configuration)) - `msk_source_configuration` (Attributes) (see [below for nested schema](#nestedatt--msk_source_configuration)) - `redshift_destination_configuration` (Attributes) (see [below for nested schema](#nestedatt--redshift_destination_configuration)) @@ -940,6 +941,158 @@ Optional: + +### Nested Schema for `iceberg_destination_configuration` + +Required: + +- `catalog_configuration` (Attributes) (see [below for nested schema](#nestedatt--iceberg_destination_configuration--catalog_configuration)) +- `role_arn` (String) +- `s3_configuration` (Attributes) (see [below for nested schema](#nestedatt--iceberg_destination_configuration--s3_configuration)) + +Optional: + +- `buffering_hints` (Attributes) (see [below for nested schema](#nestedatt--iceberg_destination_configuration--buffering_hints)) +- `cloudwatch_logging_options` (Attributes) (see [below for nested schema](#nestedatt--iceberg_destination_configuration--cloudwatch_logging_options)) +- `destination_table_configuration_list` (Attributes List) (see [below for nested schema](#nestedatt--iceberg_destination_configuration--destination_table_configuration_list)) +- `processing_configuration` (Attributes) (see [below for nested schema](#nestedatt--iceberg_destination_configuration--processing_configuration)) +- `retry_options` (Attributes) (see [below for nested schema](#nestedatt--iceberg_destination_configuration--retry_options)) +- `s_3_backup_mode` (String) + + +### Nested Schema for `iceberg_destination_configuration.catalog_configuration` + +Optional: + +- `catalog_arn` (String) + + + +### Nested Schema for `iceberg_destination_configuration.s3_configuration` + +Required: + +- `bucket_arn` (String) +- `role_arn` (String) + +Optional: + +- `buffering_hints` (Attributes) (see [below for nested schema](#nestedatt--iceberg_destination_configuration--s3_configuration--buffering_hints)) +- `cloudwatch_logging_options` (Attributes) (see [below for nested schema](#nestedatt--iceberg_destination_configuration--s3_configuration--cloudwatch_logging_options)) +- `compression_format` (String) +- `encryption_configuration` (Attributes) (see [below for nested schema](#nestedatt--iceberg_destination_configuration--s3_configuration--encryption_configuration)) +- `error_output_prefix` (String) +- `prefix` (String) + + +### Nested Schema for `iceberg_destination_configuration.s3_configuration.buffering_hints` + +Optional: + +- `interval_in_seconds` (Number) +- `size_in_m_bs` (Number) + + + +### Nested Schema for `iceberg_destination_configuration.s3_configuration.cloudwatch_logging_options` + +Optional: + +- `enabled` (Boolean) +- `log_group_name` (String) +- `log_stream_name` (String) + + + +### Nested Schema for `iceberg_destination_configuration.s3_configuration.encryption_configuration` + +Optional: + +- `kms_encryption_config` (Attributes) (see [below for nested schema](#nestedatt--iceberg_destination_configuration--s3_configuration--encryption_configuration--kms_encryption_config)) +- `no_encryption_config` (String) + + +### Nested Schema for `iceberg_destination_configuration.s3_configuration.encryption_configuration.kms_encryption_config` + +Required: + +- `awskms_key_arn` (String) + + + + + +### Nested Schema for `iceberg_destination_configuration.buffering_hints` + +Optional: + +- `interval_in_seconds` (Number) +- `size_in_m_bs` (Number) + + + +### Nested Schema for `iceberg_destination_configuration.cloudwatch_logging_options` + +Optional: + +- `enabled` (Boolean) +- `log_group_name` (String) +- `log_stream_name` (String) + + + +### Nested Schema for `iceberg_destination_configuration.destination_table_configuration_list` + +Required: + +- `destination_database_name` (String) +- `destination_table_name` (String) + +Optional: + +- `s3_error_output_prefix` (String) +- `unique_keys` (List of String) + + + +### Nested Schema for `iceberg_destination_configuration.processing_configuration` + +Optional: + +- `enabled` (Boolean) +- `processors` (Attributes List) (see [below for nested schema](#nestedatt--iceberg_destination_configuration--processing_configuration--processors)) + + +### Nested Schema for `iceberg_destination_configuration.processing_configuration.processors` + +Required: + +- `type` (String) + +Optional: + +- `parameters` (Attributes List) (see [below for nested schema](#nestedatt--iceberg_destination_configuration--processing_configuration--processors--parameters)) + + +### Nested Schema for `iceberg_destination_configuration.processing_configuration.processors.parameters` + +Required: + +- `parameter_name` (String) +- `parameter_value` (String) + + + + + +### Nested Schema for `iceberg_destination_configuration.retry_options` + +Optional: + +- `duration_in_seconds` (Number) + + + ### Nested Schema for `kinesis_stream_source_configuration` @@ -1240,6 +1393,7 @@ Required: Optional: +- `buffering_hints` (Attributes) (see [below for nested schema](#nestedatt--snowflake_destination_configuration--buffering_hints)) - `cloudwatch_logging_options` (Attributes) (see [below for nested schema](#nestedatt--snowflake_destination_configuration--cloudwatch_logging_options)) - `content_column_name` (String) - `data_loading_option` (String) @@ -1308,6 +1462,15 @@ Required: + +### Nested Schema for `snowflake_destination_configuration.buffering_hints` + +Optional: + +- `interval_in_seconds` (Number) +- `size_in_m_bs` (Number) + + ### Nested Schema for `snowflake_destination_configuration.cloudwatch_logging_options` diff --git a/docs/resources/panorama_application_instance.md b/docs/resources/panorama_application_instance.md index 2bd8e8bfa..ee69efa3c 100644 --- a/docs/resources/panorama_application_instance.md +++ b/docs/resources/panorama_application_instance.md @@ -3,12 +3,12 @@ page_title: "awscc_panorama_application_instance Resource - terraform-provider-awscc" subcategory: "" description: |- - Schema for ApplicationInstance CloudFormation Resource + Creates an application instance and deploys it to a device. --- # awscc_panorama_application_instance (Resource) -Schema for ApplicationInstance CloudFormation Resource +Creates an application instance and deploys it to a device. @@ -17,17 +17,17 @@ Schema for ApplicationInstance CloudFormation Resource ### Required -- `default_runtime_context_device` (String) -- `manifest_payload` (Attributes) (see [below for nested schema](#nestedatt--manifest_payload)) +- `default_runtime_context_device` (String) The device's ID. +- `manifest_payload` (Attributes) The application's manifest document. (see [below for nested schema](#nestedatt--manifest_payload)) ### Optional -- `application_instance_id_to_replace` (String) -- `description` (String) -- `manifest_overrides_payload` (Attributes) (see [below for nested schema](#nestedatt--manifest_overrides_payload)) -- `name` (String) -- `runtime_role_arn` (String) -- `tags` (Attributes Set) List of tags (see [below for nested schema](#nestedatt--tags)) +- `application_instance_id_to_replace` (String) The ID of an application instance to replace with the new instance. +- `description` (String) A description for the application instance. +- `manifest_overrides_payload` (Attributes) Setting overrides for the application manifest. (see [below for nested schema](#nestedatt--manifest_overrides_payload)) +- `name` (String) A name for the application instance. +- `runtime_role_arn` (String) The ARN of a runtime role for the application instance. +- `tags` (Attributes Set) Tags for the application instance. (see [below for nested schema](#nestedatt--tags)) ### Read-Only @@ -46,7 +46,7 @@ Schema for ApplicationInstance CloudFormation Resource Optional: -- `payload_data` (String) +- `payload_data` (String) The application manifest. @@ -54,7 +54,7 @@ Optional: Optional: -- `payload_data` (String) +- `payload_data` (String) The overrides document. @@ -62,8 +62,8 @@ Optional: Required: -- `key` (String) A string used to identify this tag -- `value` (String) A string containing the value for the tag +- `key` (String) +- `value` (String) ## Import diff --git a/docs/resources/panorama_package.md b/docs/resources/panorama_package.md index 7eddd8c4a..2c661cdd8 100644 --- a/docs/resources/panorama_package.md +++ b/docs/resources/panorama_package.md @@ -3,12 +3,12 @@ page_title: "awscc_panorama_package Resource - terraform-provider-awscc" subcategory: "" description: |- - Schema for Package CloudFormation Resource + Creates a package and storage location in an Amazon S3 access point. --- # awscc_panorama_package (Resource) -Schema for Package CloudFormation Resource +Creates a package and storage location in an Amazon S3 access point. @@ -17,12 +17,12 @@ Schema for Package CloudFormation Resource ### Required -- `package_name` (String) +- `package_name` (String) A name for the package. ### Optional -- `storage_location` (Attributes) (see [below for nested schema](#nestedatt--storage_location)) -- `tags` (Attributes Set) (see [below for nested schema](#nestedatt--tags)) +- `storage_location` (Attributes) A storage location. (see [below for nested schema](#nestedatt--storage_location)) +- `tags` (Attributes Set) Tags for the package. (see [below for nested schema](#nestedatt--tags)) ### Read-Only @@ -36,11 +36,11 @@ Schema for Package CloudFormation Resource Read-Only: -- `binary_prefix_location` (String) -- `bucket` (String) -- `generated_prefix_location` (String) -- `manifest_prefix_location` (String) -- `repo_prefix_location` (String) +- `binary_prefix_location` (String) The location's binary prefix. +- `bucket` (String) The location's bucket. +- `generated_prefix_location` (String) The location's generated prefix. +- `manifest_prefix_location` (String) The location's manifest prefix. +- `repo_prefix_location` (String) The location's repo prefix. diff --git a/docs/resources/panorama_package_version.md b/docs/resources/panorama_package_version.md index 70febc4e2..0b2ff40d2 100644 --- a/docs/resources/panorama_package_version.md +++ b/docs/resources/panorama_package_version.md @@ -3,12 +3,12 @@ page_title: "awscc_panorama_package_version Resource - terraform-provider-awscc" subcategory: "" description: |- - Schema for PackageVersion Resource Type + Registers a package version. --- # awscc_panorama_package_version (Resource) -Schema for PackageVersion Resource Type +Registers a package version. @@ -17,15 +17,15 @@ Schema for PackageVersion Resource Type ### Required -- `package_id` (String) -- `package_version` (String) -- `patch_version` (String) +- `package_id` (String) A package ID. +- `package_version` (String) A package version. +- `patch_version` (String) A patch version. ### Optional -- `mark_latest` (Boolean) -- `owner_account` (String) -- `updated_latest_patch_version` (String) +- `mark_latest` (Boolean) Whether to mark the new version as the latest version. +- `owner_account` (String) An owner account. +- `updated_latest_patch_version` (String) If the version was marked latest, the new version to maker as latest. ### Read-Only diff --git a/docs/resources/rds_integration.md b/docs/resources/rds_integration.md index b0295bf78..71f7ea1d2 100644 --- a/docs/resources/rds_integration.md +++ b/docs/resources/rds_integration.md @@ -3,12 +3,12 @@ page_title: "awscc_rds_integration Resource - terraform-provider-awscc" subcategory: "" description: |- - Creates a zero-ETL integration with Amazon Redshift. + A zero-ETL integration with Amazon Redshift. --- # awscc_rds_integration (Resource) -Creates a zero-ETL integration with Amazon Redshift. +A zero-ETL integration with Amazon Redshift. @@ -17,34 +17,35 @@ Creates a zero-ETL integration with Amazon Redshift. ### Required -- `source_arn` (String) The Amazon Resource Name (ARN) of the Aurora DB cluster to use as the source for replication. +- `source_arn` (String) The Amazon Resource Name (ARN) of the database to use as the source for replication. - `target_arn` (String) The ARN of the Redshift data warehouse to use as the target for replication. ### Optional -- `additional_encryption_context` (Map of String) An optional set of non-secret key–value pairs that contains additional contextual information about the data. -- `data_filter` (String) The data filter for the integration. -- `description` (String) The description of the integration. +- `additional_encryption_context` (Map of String) An optional set of non-secret key?value pairs that contains additional contextual information about the data. For more information, see [Encryption context](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) in the *Key Management Service Developer Guide*. + You can only include this parameter if you specify the ``KMSKeyId`` parameter. +- `data_filter` (String) Data filters for the integration. These filters determine which tables from the source database are sent to the target Amazon Redshift data warehouse. +- `description` (String) A description of the integration. - `integration_name` (String) The name of the integration. -- `kms_key_id` (String) An optional AWS Key Management System (AWS KMS) key ARN for the key used to to encrypt the integration. The resource accepts the key ID and the key ARN forms. The key ID form can be used if the KMS key is owned by te same account. If the KMS key belongs to a different account than the calling account, the full key ARN must be specified. Do not use the key alias or the key alias ARN as this will cause a false drift of the resource. -- `tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) +- `kms_key_id` (String) The AWS Key Management System (AWS KMS) key identifier for the key to use to encrypt the integration. If you don't specify an encryption key, RDS uses a default AWS owned key. +- `tags` (Attributes Set) A list of tags. For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide.*. (see [below for nested schema](#nestedatt--tags)) ### Read-Only - `create_time` (String) - `id` (String) Uniquely identifies the resource. -- `integration_arn` (String) The ARN of the integration. +- `integration_arn` (String) ### Nested Schema for `tags` Required: -- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `key` (String) A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"). Optional: -- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `value` (String) A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"). ## Import diff --git a/docs/resources/sagemaker_app.md b/docs/resources/sagemaker_app.md index a5e32ac43..d1618a79c 100644 --- a/docs/resources/sagemaker_app.md +++ b/docs/resources/sagemaker_app.md @@ -38,6 +38,7 @@ Resource Type definition for AWS::SageMaker::App Optional: - `instance_type` (String) The instance type that the image version runs on. +- `lifecycle_config_arn` (String) The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource. - `sage_maker_image_arn` (String) The ARN of the SageMaker image that the image version belongs to. - `sage_maker_image_version_arn` (String) The ARN of the image version created on the instance. diff --git a/docs/resources/sagemaker_domain.md b/docs/resources/sagemaker_domain.md index 3eb0b8ca8..2e93f47d0 100644 --- a/docs/resources/sagemaker_domain.md +++ b/docs/resources/sagemaker_domain.md @@ -179,6 +179,7 @@ Optional: Optional: - `default_resource_spec` (Attributes) (see [below for nested schema](#nestedatt--default_user_settings--jupyter_server_app_settings--default_resource_spec)) +- `lifecycle_config_arns` (List of String) A list of LifecycleConfigArns available for use with JupyterServer apps. ### Nested Schema for `default_user_settings.jupyter_server_app_settings.default_resource_spec` @@ -199,6 +200,7 @@ Optional: - `custom_images` (Attributes List) A list of custom SageMaker images that are configured to run as a KernelGateway app. (see [below for nested schema](#nestedatt--default_user_settings--kernel_gateway_app_settings--custom_images)) - `default_resource_spec` (Attributes) The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app. (see [below for nested schema](#nestedatt--default_user_settings--kernel_gateway_app_settings--default_resource_spec)) +- `lifecycle_config_arns` (List of String) A list of LifecycleConfigArns available for use with KernelGateway apps. ### Nested Schema for `default_user_settings.kernel_gateway_app_settings.custom_images` @@ -399,6 +401,7 @@ Optional: Optional: - `default_resource_spec` (Attributes) (see [below for nested schema](#nestedatt--default_space_settings--jupyter_server_app_settings--default_resource_spec)) +- `lifecycle_config_arns` (List of String) A list of LifecycleConfigArns available for use with JupyterServer apps. ### Nested Schema for `default_space_settings.jupyter_server_app_settings.default_resource_spec` @@ -419,6 +422,7 @@ Optional: - `custom_images` (Attributes List) A list of custom SageMaker images that are configured to run as a KernelGateway app. (see [below for nested schema](#nestedatt--default_space_settings--kernel_gateway_app_settings--custom_images)) - `default_resource_spec` (Attributes) The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app. (see [below for nested schema](#nestedatt--default_space_settings--kernel_gateway_app_settings--default_resource_spec)) +- `lifecycle_config_arns` (List of String) A list of LifecycleConfigArns available for use with KernelGateway apps. ### Nested Schema for `default_space_settings.kernel_gateway_app_settings.custom_images` diff --git a/docs/resources/sagemaker_space.md b/docs/resources/sagemaker_space.md index 8d5b6b2a3..1598f381e 100644 --- a/docs/resources/sagemaker_space.md +++ b/docs/resources/sagemaker_space.md @@ -68,6 +68,7 @@ Optional: Optional: - `instance_type` (String) The instance type that the image version runs on. +- `lifecycle_config_arn` (String) The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource. - `sage_maker_image_arn` (String) The ARN of the SageMaker image that the image version belongs to. - `sage_maker_image_version_arn` (String) The ARN of the image version created on the instance. @@ -111,6 +112,7 @@ Required: Optional: - `instance_type` (String) The instance type that the image version runs on. +- `lifecycle_config_arn` (String) The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource. - `sage_maker_image_arn` (String) The ARN of the SageMaker image that the image version belongs to. - `sage_maker_image_version_arn` (String) The ARN of the image version created on the instance. @@ -122,6 +124,7 @@ Optional: Optional: - `default_resource_spec` (Attributes) (see [below for nested schema](#nestedatt--space_settings--jupyter_server_app_settings--default_resource_spec)) +- `lifecycle_config_arns` (List of String) A list of LifecycleConfigArns available for use with JupyterServer apps. ### Nested Schema for `space_settings.jupyter_server_app_settings.default_resource_spec` @@ -129,6 +132,7 @@ Optional: Optional: - `instance_type` (String) The instance type that the image version runs on. +- `lifecycle_config_arn` (String) The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource. - `sage_maker_image_arn` (String) The ARN of the SageMaker image that the image version belongs to. - `sage_maker_image_version_arn` (String) The ARN of the image version created on the instance. @@ -141,6 +145,7 @@ Optional: - `custom_images` (Attributes List) A list of custom SageMaker images that are configured to run as a KernelGateway app. (see [below for nested schema](#nestedatt--space_settings--kernel_gateway_app_settings--custom_images)) - `default_resource_spec` (Attributes) The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app. (see [below for nested schema](#nestedatt--space_settings--kernel_gateway_app_settings--default_resource_spec)) +- `lifecycle_config_arns` (List of String) A list of LifecycleConfigArns available for use with KernelGateway apps. ### Nested Schema for `space_settings.kernel_gateway_app_settings.custom_images` @@ -161,6 +166,7 @@ Optional: Optional: - `instance_type` (String) The instance type that the image version runs on. +- `lifecycle_config_arn` (String) The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource. - `sage_maker_image_arn` (String) The ARN of the SageMaker image that the image version belongs to. - `sage_maker_image_version_arn` (String) The ARN of the image version created on the instance. diff --git a/docs/resources/sagemaker_studio_lifecycle_config.md b/docs/resources/sagemaker_studio_lifecycle_config.md new file mode 100644 index 000000000..288a36b44 --- /dev/null +++ b/docs/resources/sagemaker_studio_lifecycle_config.md @@ -0,0 +1,47 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_sagemaker_studio_lifecycle_config Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::SageMaker::StudioLifecycleConfig +--- + +# awscc_sagemaker_studio_lifecycle_config (Resource) + +Resource Type definition for AWS::SageMaker::StudioLifecycleConfig + + + + +## Schema + +### Required + +- `studio_lifecycle_config_app_type` (String) The App type that the Lifecycle Configuration is attached to. +- `studio_lifecycle_config_content` (String) The content of your Amazon SageMaker Studio Lifecycle Configuration script. +- `studio_lifecycle_config_name` (String) The name of the Amazon SageMaker Studio Lifecycle Configuration. + +### Optional + +- `tags` (Attributes List) Tags to be associated with the Lifecycle Configuration. (see [below for nested schema](#nestedatt--tags)) + +### Read-Only + +- `id` (String) Uniquely identifies the resource. +- `studio_lifecycle_config_arn` (String) The Amazon Resource Name (ARN) of the Lifecycle Configuration. + + +### Nested Schema for `tags` + +Required: + +- `key` (String) +- `value` (String) + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_sagemaker_studio_lifecycle_config.example +``` diff --git a/docs/resources/sagemaker_user_profile.md b/docs/resources/sagemaker_user_profile.md index b617633ef..ee1ef15df 100644 --- a/docs/resources/sagemaker_user_profile.md +++ b/docs/resources/sagemaker_user_profile.md @@ -100,6 +100,7 @@ Optional: Optional: - `instance_type` (String) The instance type that the image version runs on. +- `lifecycle_config_arn` (String) The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource. - `sage_maker_image_arn` (String) The ARN of the SageMaker image that the image version belongs to. - `sage_maker_image_version_arn` (String) The ARN of the image version created on the instance. @@ -171,6 +172,7 @@ Optional: Optional: - `instance_type` (String) The instance type that the image version runs on. +- `lifecycle_config_arn` (String) The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource. - `sage_maker_image_arn` (String) The ARN of the SageMaker image that the image version belongs to. - `sage_maker_image_version_arn` (String) The ARN of the image version created on the instance. @@ -182,6 +184,7 @@ Optional: Optional: - `default_resource_spec` (Attributes) (see [below for nested schema](#nestedatt--user_settings--jupyter_server_app_settings--default_resource_spec)) +- `lifecycle_config_arns` (List of String) A list of LifecycleConfigArns available for use with JupyterServer apps. ### Nested Schema for `user_settings.jupyter_server_app_settings.default_resource_spec` @@ -189,6 +192,7 @@ Optional: Optional: - `instance_type` (String) The instance type that the image version runs on. +- `lifecycle_config_arn` (String) The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource. - `sage_maker_image_arn` (String) The ARN of the SageMaker image that the image version belongs to. - `sage_maker_image_version_arn` (String) The ARN of the image version created on the instance. @@ -201,6 +205,7 @@ Optional: - `custom_images` (Attributes List) A list of custom SageMaker images that are configured to run as a KernelGateway app. (see [below for nested schema](#nestedatt--user_settings--kernel_gateway_app_settings--custom_images)) - `default_resource_spec` (Attributes) The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app. (see [below for nested schema](#nestedatt--user_settings--kernel_gateway_app_settings--default_resource_spec)) +- `lifecycle_config_arns` (List of String) A list of LifecycleConfigArns available for use with KernelGateway apps. ### Nested Schema for `user_settings.kernel_gateway_app_settings.custom_images` @@ -221,6 +226,7 @@ Optional: Optional: - `instance_type` (String) The instance type that the image version runs on. +- `lifecycle_config_arn` (String) The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource. - `sage_maker_image_arn` (String) The ARN of the SageMaker image that the image version belongs to. - `sage_maker_image_version_arn` (String) The ARN of the image version created on the instance. diff --git a/docs/resources/sns_topic.md b/docs/resources/sns_topic.md index bbc05b85a..a9d82c24c 100644 --- a/docs/resources/sns_topic.md +++ b/docs/resources/sns_topic.md @@ -60,7 +60,14 @@ resource "awscc_sns_topic" "sns_fifo_example" { You can only add one policy per topic. The policy must be in JSON string format. Length Constraints: Maximum length of 30,720. -- `delivery_status_logging` (Attributes Set) (see [below for nested schema](#nestedatt--delivery_status_logging)) +- `delivery_status_logging` (Attributes Set) The ``DeliveryStatusLogging`` configuration enables you to log the delivery status of messages sent from your Amazon SNS topic to subscribed endpoints with the following supported delivery protocols: + + HTTP + + Amazon Kinesis Data Firehose + + AWS Lambda + + Platform application endpoint + + Amazon Simple Queue Service + + Once configured, log entries are sent to Amazon CloudWatch Logs. (see [below for nested schema](#nestedatt--delivery_status_logging)) - `display_name` (String) The display name to use for an SNS topic with SMS subscriptions. The display name must be maximum 100 characters long, including hyphens (-), underscores (_), spaces, and tabs. - `fifo_topic` (Boolean) Set to true to create a FIFO topic. - `kms_master_key_id` (String) The ID of an AWS managed customer master key (CMK) for SNS or a custom CMK. For more information, see [Key terms](https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html#sse-key-terms). For more examples, see ``KeyId`` in the *API Reference*. @@ -85,13 +92,14 @@ resource "awscc_sns_topic" "sns_fifo_example" { Required: -- `protocol` (String) +- `protocol` (String) Indicates one of the supported protocols for the Amazon SNS topic. + At least one of the other three ``LoggingConfig`` properties is recommend along with ``Protocol``. Optional: -- `failure_feedback_role_arn` (String) -- `success_feedback_role_arn` (String) -- `success_feedback_sample_rate` (String) +- `failure_feedback_role_arn` (String) The IAM role ARN to be used when logging failed message deliveries in Amazon CloudWatch. +- `success_feedback_role_arn` (String) The IAM role ARN to be used when logging successful message deliveries in Amazon CloudWatch. +- `success_feedback_sample_rate` (String) The percentage of successful message deliveries to be logged in Amazon CloudWatch. Valid percentage values range from 0 to 100. diff --git a/examples/resources/awscc_arczonalshift_autoshift_observer_notification_status/import.sh b/examples/resources/awscc_arczonalshift_autoshift_observer_notification_status/import.sh new file mode 100644 index 000000000..556cb41e8 --- /dev/null +++ b/examples/resources/awscc_arczonalshift_autoshift_observer_notification_status/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_arczonalshift_autoshift_observer_notification_status.example \ No newline at end of file diff --git a/examples/resources/awscc_cleanrooms_id_mapping_table/import.sh b/examples/resources/awscc_cleanrooms_id_mapping_table/import.sh new file mode 100644 index 000000000..584e2d75c --- /dev/null +++ b/examples/resources/awscc_cleanrooms_id_mapping_table/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_cleanrooms_id_mapping_table.example \ No newline at end of file diff --git a/examples/resources/awscc_sagemaker_studio_lifecycle_config/import.sh b/examples/resources/awscc_sagemaker_studio_lifecycle_config/import.sh new file mode 100644 index 000000000..b75a2c06b --- /dev/null +++ b/examples/resources/awscc_sagemaker_studio_lifecycle_config/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_sagemaker_studio_lifecycle_config.example \ No newline at end of file From a680314e23edf45d517f4075dc984ab2f3d98567 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 1 Aug 2024 12:09:26 -0400 Subject: [PATCH 64/89] Add CHANGELOG entries. --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1fb366d3d..881744619 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,14 @@ FEATURES: * provider: Add `endpoints` argument +* **New Data Source:** `awscc_arczonalshift_autoshift_observer_notification_status` +* **New Data Source:** `awscc_arczonalshift_autoshift_observer_notification_statuses` +* **New Data Source:** `awscc_cleanrooms_id_mapping_table` +* **New Data Source:** `awscc_sagemaker_studio_lifecycle_config` +* **New Data Source:** `awscc_sagemaker_studio_lifecycle_configs` +* **New Resource:** `awscc_arczonalshift_autoshift_observer_notification_status` +* **New Resource:** `awscc_cleanrooms_id_mapping_table` +* **New Resource:** `awscc_sagemaker_studio_lifecycle_config` ## 1.7.0 (July 25, 2024) From 600c3d8c0c2ea8b41b549d9428c4bf5d6adecdae Mon Sep 17 00:00:00 2001 From: changelogbot Date: Thu, 1 Aug 2024 16:26:50 +0000 Subject: [PATCH 65/89] Update CHANGELOG.md after v1.8.0 --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 881744619..f6ef3a529 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ -## 1.8.0 (Unreleased) +## 1.9.0 (Unreleased) +## 1.8.0 (August 1, 2024) FEATURES: From 0dd8a9c735b1b7a57501afaa253a3b3d8550af3a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Aug 2024 05:19:55 +0000 Subject: [PATCH 66/89] build(deps): bump actions/upload-artifact from 4.3.4 to 4.3.6 Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.4 to 4.3.6. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/0b2256b8c012f0828dc542b3febcab082c67f72b...834a144ee995460fba8ed112a2fc961b36a5ec5a) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b34b00361..26e7b4c0a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,7 +17,7 @@ jobs: fetch-depth: 0 - name: Generate Release Notes run: sed -n -e "1{/# /d;}" -e "2{/^$/d;}" -e "/# $(git describe --abbrev=0 --exclude="$(git describe --abbrev=0 --match='v*.*.*' --tags)" --match='v*.*.*' --tags | tr -d v)/q;p" CHANGELOG.md > release-notes.txt - - uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4 + - uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6 with: name: release-notes path: release-notes.txt @@ -103,7 +103,7 @@ jobs: steps: - name: Save Release Tag run: echo ${{ github.ref_name }} > release-tag.data - - uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4 + - uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6 with: name: release-tag path: release-tag.data From 5ea0f2bc0c3b77df7e6936006b53ba60d05d6160 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Aug 2024 05:29:36 +0000 Subject: [PATCH 67/89] build(deps): bump github.com/hashicorp/terraform-plugin-framework-timetypes Bumps [github.com/hashicorp/terraform-plugin-framework-timetypes](https://github.com/hashicorp/terraform-plugin-framework-timetypes) from 0.4.0 to 0.5.0. - [Release notes](https://github.com/hashicorp/terraform-plugin-framework-timetypes/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-framework-timetypes/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-framework-timetypes/compare/v0.4.0...v0.5.0) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-framework-timetypes dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index c7682e169..8479108dd 100644 --- a/go.mod +++ b/go.mod @@ -14,9 +14,9 @@ require ( github.com/hashicorp/cli v1.1.6 github.com/hashicorp/go-hclog v1.6.3 github.com/hashicorp/hcl/v2 v2.21.0 - github.com/hashicorp/terraform-plugin-framework v1.10.0 + github.com/hashicorp/terraform-plugin-framework v1.11.0 github.com/hashicorp/terraform-plugin-framework-jsontypes v0.1.0 - github.com/hashicorp/terraform-plugin-framework-timetypes v0.4.0 + github.com/hashicorp/terraform-plugin-framework-timetypes v0.5.0 github.com/hashicorp/terraform-plugin-framework-validators v0.13.0 github.com/hashicorp/terraform-plugin-go v0.23.0 github.com/hashicorp/terraform-plugin-log v0.9.0 diff --git a/go.sum b/go.sum index a4c503e4a..9ef93f42a 100644 --- a/go.sum +++ b/go.sum @@ -148,12 +148,12 @@ github.com/hashicorp/terraform-exec v0.21.0 h1:uNkLAe95ey5Uux6KJdua6+cv8asgILFVW github.com/hashicorp/terraform-exec v0.21.0/go.mod h1:1PPeMYou+KDUSSeRE9szMZ/oHf4fYUmB923Wzbq1ICg= github.com/hashicorp/terraform-json v0.22.1 h1:xft84GZR0QzjPVWs4lRUwvTcPnegqlyS7orfb5Ltvec= github.com/hashicorp/terraform-json v0.22.1/go.mod h1:JbWSQCLFSXFFhg42T7l9iJwdGXBYV8fmmD6o/ML4p3A= -github.com/hashicorp/terraform-plugin-framework v1.10.0 h1:xXhICE2Fns1RYZxEQebwkB2+kXouLC932Li9qelozrc= -github.com/hashicorp/terraform-plugin-framework v1.10.0/go.mod h1:qBXLDn69kM97NNVi/MQ9qgd1uWWsVftGSnygYG1tImM= +github.com/hashicorp/terraform-plugin-framework v1.11.0 h1:M7+9zBArexHFXDx/pKTxjE6n/2UCXY6b8FIq9ZYhwfE= +github.com/hashicorp/terraform-plugin-framework v1.11.0/go.mod h1:qBXLDn69kM97NNVi/MQ9qgd1uWWsVftGSnygYG1tImM= github.com/hashicorp/terraform-plugin-framework-jsontypes v0.1.0 h1:b8vZYB/SkXJT4YPbT3trzE6oJ7dPyMy68+9dEDKsJjE= github.com/hashicorp/terraform-plugin-framework-jsontypes v0.1.0/go.mod h1:tP9BC3icoXBz72evMS5UTFvi98CiKhPdXF6yLs1wS8A= -github.com/hashicorp/terraform-plugin-framework-timetypes v0.4.0 h1:XLI93Oqw2/KTzYjgCXrUnm8LBkGAiHC/mDQg5g5Vob4= -github.com/hashicorp/terraform-plugin-framework-timetypes v0.4.0/go.mod h1:mGuieb3bqKFYwEYB4lCMt302Z3siyv4PFYk/41wAUps= +github.com/hashicorp/terraform-plugin-framework-timetypes v0.5.0 h1:v3DapR8gsp3EM8fKMh6up9cJUFQ2iRaFsYLP8UJnCco= +github.com/hashicorp/terraform-plugin-framework-timetypes v0.5.0/go.mod h1:c3PnGE9pHBDfdEVG9t1S1C9ia5LW+gkFR0CygXlM8ak= github.com/hashicorp/terraform-plugin-framework-validators v0.13.0 h1:bxZfGo9DIUoLLtHMElsu+zwqI4IsMZQBRRy4iLzZJ8E= github.com/hashicorp/terraform-plugin-framework-validators v0.13.0/go.mod h1:wGeI02gEhj9nPANU62F2jCaHjXulejm/X+af4PdZaNo= github.com/hashicorp/terraform-plugin-go v0.23.0 h1:AALVuU1gD1kPb48aPQUjug9Ir/125t+AAurhqphJ2Co= From c4ee9d362e32060e8114fd7e9b58a113200fb371 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Aug 2024 05:29:40 +0000 Subject: [PATCH 68/89] build(deps): bump golang.org/x/text from 0.16.0 to 0.17.0 Bumps [golang.org/x/text](https://github.com/golang/text) from 0.16.0 to 0.17.0. - [Release notes](https://github.com/golang/text/releases) - [Commits](https://github.com/golang/text/compare/v0.16.0...v0.17.0) --- updated-dependencies: - dependency-name: golang.org/x/text dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index c7682e169..6058249df 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( github.com/hashicorp/terraform-plugin-testing v1.9.0 github.com/jinzhu/inflection v1.0.0 github.com/mattbaird/jsonpatch v0.0.0-20200820163806-098863c1fc24 - golang.org/x/text v0.16.0 + golang.org/x/text v0.17.0 ) require ( @@ -106,7 +106,7 @@ require ( golang.org/x/crypto v0.25.0 // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.26.0 // indirect - golang.org/x/sync v0.7.0 // indirect + golang.org/x/sync v0.8.0 // indirect golang.org/x/sys v0.22.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/appengine v1.6.8 // indirect diff --git a/go.sum b/go.sum index a4c503e4a..fe5cc0563 100644 --- a/go.sum +++ b/go.sum @@ -290,8 +290,8 @@ golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= -golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= +golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -318,8 +318,8 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= -golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= +golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= +golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= From f1f4281307a66c2e3bdfeed9565cb0e7b41b70f4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Aug 2024 05:29:44 +0000 Subject: [PATCH 69/89] build(deps): bump github.com/hashicorp/terraform-plugin-framework Bumps [github.com/hashicorp/terraform-plugin-framework](https://github.com/hashicorp/terraform-plugin-framework) from 1.10.0 to 1.11.0. - [Release notes](https://github.com/hashicorp/terraform-plugin-framework/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-framework/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-framework/compare/v1.10.0...v1.11.0) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-framework dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c7682e169..6ef0649b2 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/hashicorp/cli v1.1.6 github.com/hashicorp/go-hclog v1.6.3 github.com/hashicorp/hcl/v2 v2.21.0 - github.com/hashicorp/terraform-plugin-framework v1.10.0 + github.com/hashicorp/terraform-plugin-framework v1.11.0 github.com/hashicorp/terraform-plugin-framework-jsontypes v0.1.0 github.com/hashicorp/terraform-plugin-framework-timetypes v0.4.0 github.com/hashicorp/terraform-plugin-framework-validators v0.13.0 diff --git a/go.sum b/go.sum index a4c503e4a..60f0fd50c 100644 --- a/go.sum +++ b/go.sum @@ -148,8 +148,8 @@ github.com/hashicorp/terraform-exec v0.21.0 h1:uNkLAe95ey5Uux6KJdua6+cv8asgILFVW github.com/hashicorp/terraform-exec v0.21.0/go.mod h1:1PPeMYou+KDUSSeRE9szMZ/oHf4fYUmB923Wzbq1ICg= github.com/hashicorp/terraform-json v0.22.1 h1:xft84GZR0QzjPVWs4lRUwvTcPnegqlyS7orfb5Ltvec= github.com/hashicorp/terraform-json v0.22.1/go.mod h1:JbWSQCLFSXFFhg42T7l9iJwdGXBYV8fmmD6o/ML4p3A= -github.com/hashicorp/terraform-plugin-framework v1.10.0 h1:xXhICE2Fns1RYZxEQebwkB2+kXouLC932Li9qelozrc= -github.com/hashicorp/terraform-plugin-framework v1.10.0/go.mod h1:qBXLDn69kM97NNVi/MQ9qgd1uWWsVftGSnygYG1tImM= +github.com/hashicorp/terraform-plugin-framework v1.11.0 h1:M7+9zBArexHFXDx/pKTxjE6n/2UCXY6b8FIq9ZYhwfE= +github.com/hashicorp/terraform-plugin-framework v1.11.0/go.mod h1:qBXLDn69kM97NNVi/MQ9qgd1uWWsVftGSnygYG1tImM= github.com/hashicorp/terraform-plugin-framework-jsontypes v0.1.0 h1:b8vZYB/SkXJT4YPbT3trzE6oJ7dPyMy68+9dEDKsJjE= github.com/hashicorp/terraform-plugin-framework-jsontypes v0.1.0/go.mod h1:tP9BC3icoXBz72evMS5UTFvi98CiKhPdXF6yLs1wS8A= github.com/hashicorp/terraform-plugin-framework-timetypes v0.4.0 h1:XLI93Oqw2/KTzYjgCXrUnm8LBkGAiHC/mDQg5g5Vob4= From 4d4794404775cb2347d94f9253c9b30820fe71e5 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 8 Aug 2024 12:04:34 -0400 Subject: [PATCH 70/89] Use Go v1.22.6 -- go.mod. --- go.mod | 2 +- tools/go.mod | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index c55a0494b..791c41070 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/hashicorp/terraform-provider-awscc -go 1.22.5 +go 1.22.6 require ( github.com/aws/aws-sdk-go-v2 v1.30.3 diff --git a/tools/go.mod b/tools/go.mod index 0987b7453..166c23d9e 100644 --- a/tools/go.mod +++ b/tools/go.mod @@ -1,6 +1,6 @@ module github.com/hashicorp/terraform-provider-awscc/tools -go 1.22.5 +go 1.22.6 require ( github.com/client9/misspell v0.3.4 From 1428468478038e47f71e7dc7207da676daff1a8b Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 8 Aug 2024 12:23:58 -0400 Subject: [PATCH 71/89] 08/07/2024 CloudFormation schemas in us-east-1; Refresh existing schemas. --- .../schemas/AWS_AccessAnalyzer_Analyzer.json | 6 +- ...CleanRooms_ConfiguredTableAssociation.json | 3 +- .../schemas/AWS_CodeArtifact_Domain.json | 14 +- .../schemas/AWS_CodeArtifact_Repository.json | 15 +- .../schemas/AWS_CodePipeline_Pipeline.json | 126 +++++++++++- .../schemas/AWS_DMS_DataProvider.json | 10 +- .../schemas/AWS_DMS_InstanceProfile.json | 6 +- .../schemas/AWS_DMS_MigrationProject.json | 6 +- .../schemas/AWS_DataZone_Domain.json | 10 +- .../schemas/AWS_Deadline_Fleet.json | 1 + .../schemas/AWS_Deadline_Queue.json | 3 +- .../schemas/AWS_Deadline_StorageProfile.json | 1 + .../AWS_EC2_LocalGatewayRouteTable.json | 7 +- ..._LocalGatewayRouteTableVPCAssociation.json | 7 +- .../schemas/AWS_EC2_NetworkAcl.json | 134 ++++++------ .../schemas/AWS_EC2_PlacementGroup.json | 6 +- .../schemas/AWS_EC2_RouteTable.json | 132 ++++++------ .../schemas/AWS_EC2_Subnet.json | 2 +- .../AWS_EC2_SubnetRouteTableAssociation.json | 76 +++---- .../schemas/AWS_EC2_TransitGateway.json | 6 +- .../AWS_EC2_TransitGatewayAttachment.json | 194 +++++++++--------- .../AWS_EC2_TransitGatewayConnect.json | 7 + ...AWS_EC2_TransitGatewayMulticastDomain.json | 7 + ...nsitGatewayMulticastDomainAssociation.json | 6 + ...C2_TransitGatewayMulticastGroupMember.json | 21 +- ...C2_TransitGatewayMulticastGroupSource.json | 21 +- ...S_EC2_TransitGatewayPeeringAttachment.json | 63 +++--- .../AWS_EC2_TransitGatewayRouteTable.json | 122 +++++------ .../schemas/AWS_ECS_Cluster.json | 13 +- ...S_ClusterCapacityProviderAssociations.json | 146 ++++++------- .../AWS_IoTFleetWise_DecoderManifest.json | 7 +- .../schemas/AWS_IoTFleetWise_Fleet.json | 7 +- .../AWS_IoTFleetWise_ModelManifest.json | 7 +- .../schemas/AWS_IoTFleetWise_Vehicle.json | 7 +- .../cloudformation/schemas/AWS_KMS_Key.json | 8 +- .../schemas/AWS_KMS_ReplicaKey.json | 1 + .../AWS_KinesisFirehose_DeliveryStream.json | 3 + .../schemas/AWS_Lambda_Function.json | 5 + .../schemas/AWS_Logs_DeliveryDestination.json | 2 +- .../schemas/AWS_Logs_DeliverySource.json | 1 - .../schemas/AWS_MediaLive_Multiplex.json | 6 +- .../AWS_MediaLive_Multiplexprogram.json | 3 + ..._NetworkFirewall_LoggingConfiguration.json | 3 +- .../AWS_NetworkManager_ConnectAttachment.json | 32 +++ .../AWS_NetworkManager_CoreNetwork.json | 49 +++++ ...etworkManager_SiteToSiteVpnAttachment.json | 32 +++ ...er_TransitGatewayRouteTableAttachment.json | 32 +++ .../AWS_NetworkManager_VpcAttachment.json | 33 +++ .../schemas/AWS_OSIS_Pipeline.json | 20 ++ .../schemas/AWS_QBusiness_Application.json | 6 +- .../schemas/AWS_RDS_DBCluster.json | 10 +- .../AWS_RDS_DBClusterParameterGroup.json | 12 +- .../schemas/AWS_RDS_DBInstance.json | 22 +- .../schemas/AWS_RDS_DBParameterGroup.json | 8 +- .../schemas/AWS_RDS_DBSubnetGroup.json | 6 +- .../schemas/AWS_RDS_EventSubscription.json | 6 +- .../schemas/AWS_RDS_OptionGroup.json | 10 +- .../schemas/AWS_Redshift_Cluster.json | 11 + .../schemas/AWS_RolesAnywhere_Profile.json | 3 + .../AWS_Route53Resolver_ResolverRule.json | 10 +- .../schemas/AWS_SES_ConfigurationSet.json | 5 +- .../schemas/AWS_SageMaker_ModelPackage.json | 156 +++++++++++++- .../schemas/AWS_Scheduler_ScheduleGroup.json | 7 +- .../schemas/AWS_StepFunctions_Activity.json | 7 +- 64 files changed, 1180 insertions(+), 528 deletions(-) diff --git a/internal/service/cloudformation/schemas/AWS_AccessAnalyzer_Analyzer.json b/internal/service/cloudformation/schemas/AWS_AccessAnalyzer_Analyzer.json index 550f5a132..2e1a0a2b5 100644 --- a/internal/service/cloudformation/schemas/AWS_AccessAnalyzer_Analyzer.json +++ b/internal/service/cloudformation/schemas/AWS_AccessAnalyzer_Analyzer.json @@ -210,6 +210,10 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "access-analyzer:UntagResource", + "access-analyzer:TagResource" + ] } } diff --git a/internal/service/cloudformation/schemas/AWS_CleanRooms_ConfiguredTableAssociation.json b/internal/service/cloudformation/schemas/AWS_CleanRooms_ConfiguredTableAssociation.json index 304cb8082..d04eeb1d4 100644 --- a/internal/service/cloudformation/schemas/AWS_CleanRooms_ConfiguredTableAssociation.json +++ b/internal/service/cloudformation/schemas/AWS_CleanRooms_ConfiguredTableAssociation.json @@ -46,8 +46,7 @@ }, "AllowedAdditionalAnalysis": { "type": "string", - "maxLength": 256, - "pattern": "^arn:aws:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:([\\d]{12}|\\*):membership\\/[\\*\\d\\w-]+\\/configuredaudiencemodelassociation\\/[\\*\\d\\w-]+$|^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:([0-9]{12}|\\*):configured-model-algorithm-association\\/([-a-zA-Z0-9_\\/.]+|\\*)$" + "maxLength": 256 }, "AllowedAdditionalAnalyses": { "type": "array", diff --git a/internal/service/cloudformation/schemas/AWS_CodeArtifact_Domain.json b/internal/service/cloudformation/schemas/AWS_CodeArtifact_Domain.json index 305eb4ef3..54aab585e 100644 --- a/internal/service/cloudformation/schemas/AWS_CodeArtifact_Domain.json +++ b/internal/service/cloudformation/schemas/AWS_CodeArtifact_Domain.json @@ -95,7 +95,8 @@ "codeartifact:DescribeDomain", "codeartifact:PutDomainPermissionsPolicy", "codeartifact:GetDomainPermissionsPolicy", - "codeartifact:TagResource" + "codeartifact:TagResource", + "codeartifact:ListTagsForResource" ] }, "read": { @@ -107,11 +108,13 @@ }, "update": { "permissions": [ + "codeartifact:DescribeDomain", "codeartifact:PutDomainPermissionsPolicy", "codeartifact:DeleteDomainPermissionsPolicy", "codeartifact:GetDomainPermissionsPolicy", "codeartifact:TagResource", - "codeartifact:UntagResource" + "codeartifact:UntagResource", + "codeartifact:ListTagsForResource" ] }, "delete": { @@ -131,6 +134,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "codeartifact:ListTagsForResource", + "codeartifact:UntagResource", + "codeartifact:TagResource" + ] } } diff --git a/internal/service/cloudformation/schemas/AWS_CodeArtifact_Repository.json b/internal/service/cloudformation/schemas/AWS_CodeArtifact_Repository.json index 7d2ab097e..c960d4a20 100644 --- a/internal/service/cloudformation/schemas/AWS_CodeArtifact_Repository.json +++ b/internal/service/cloudformation/schemas/AWS_CodeArtifact_Repository.json @@ -117,9 +117,11 @@ "codeartifact:CreateRepository", "codeartifact:DescribeRepository", "codeartifact:PutRepositoryPermissionsPolicy", + "codeartifact:GetRepositoryPermissionsPolicy", "codeartifact:AssociateExternalConnection", "codeartifact:AssociateWithDownstreamRepository", - "codeartifact:TagResource" + "codeartifact:TagResource", + "codeartifact:ListTagsForResource" ] }, "read": { @@ -132,6 +134,7 @@ "update": { "permissions": [ "codeartifact:PutRepositoryPermissionsPolicy", + "codeartifact:GetRepositoryPermissionsPolicy", "codeartifact:DeleteRepositoryPermissionsPolicy", "codeartifact:AssociateExternalConnection", "codeartifact:DisassociateExternalConnection", @@ -139,7 +142,8 @@ "codeartifact:DescribeRepository", "codeartifact:AssociateWithDownstreamRepository", "codeartifact:TagResource", - "codeartifact:UntagResource" + "codeartifact:UntagResource", + "codeartifact:ListTagsForResource" ] }, "delete": { @@ -159,6 +163,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "codeartifact:ListTagsForResource", + "codeartifact:UntagResource", + "codeartifact:TagResource" + ] } } diff --git a/internal/service/cloudformation/schemas/AWS_CodePipeline_Pipeline.json b/internal/service/cloudformation/schemas/AWS_CodePipeline_Pipeline.json index 4321fce99..7c63c6feb 100644 --- a/internal/service/cloudformation/schemas/AWS_CodePipeline_Pipeline.json +++ b/internal/service/cloudformation/schemas/AWS_CodePipeline_Pipeline.json @@ -293,6 +293,16 @@ "type": "object", "description": "The method to use when a stage has not completed successfully", "$ref": "#/definitions/FailureConditions" + }, + "OnSuccess": { + "type": "object", + "description": "The method to use when a stage has completed successfully", + "$ref": "#/definitions/SuccessConditions" + }, + "BeforeEntry": { + "type": "object", + "description": "The method to use before stage runs.", + "$ref": "#/definitions/BeforeEntryConditions" } }, "required": [ @@ -470,6 +480,116 @@ "enum": [ "ROLLBACK" ] + }, + "Conditions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/Condition" + } + } + } + }, + "SuccessConditions": { + "description": "The configuration that specifies the result, such as rollback, to occur upon stage failure", + "type": "object", + "additionalProperties": false, + "properties": { + "Conditions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/Condition" + } + } + } + }, + "BeforeEntryConditions": { + "description": "The configuration that specifies the rules to run before stage starts.", + "type": "object", + "additionalProperties": false, + "properties": { + "Conditions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/Condition" + } + } + } + }, + "Condition": { + "description": "Represents information about condition.", + "type": "object", + "additionalProperties": false, + "properties": { + "Result": { + "type": "string", + "description": "The specified result for when the failure conditions are met, such as rolling back the stage" + }, + "Rules": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/RuleDeclaration" + } + } + } + }, + "RuleDeclaration": { + "description": "Represents information about condition.", + "type": "object", + "additionalProperties": false, + "properties": { + "RuleTypeId": { + "$ref": "#/definitions/RuleTypeId" + }, + "Configuration": { + "description": "The rule's configuration. These are key-value pairs that specify input values for a rule.", + "type": "object" + }, + "InputArtifacts": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/InputArtifact" + } + }, + "Region": { + "description": "The rule declaration's AWS Region, such as us-east-1.", + "type": "string" + }, + "RoleArn": { + "description": "The ARN of the IAM service role that performs the declared rule. This is assumed through the roleArn for the pipeline.", + "type": "string", + "pattern": "arn:aws(-[\\w]+)*:iam::[0-9]{12}:role/.*" + }, + "Name": { + "description": "The rule declaration's name.", + "type": "string" + } + } + }, + "RuleTypeId": { + "description": "Represents information about a rule type.", + "type": "object", + "additionalProperties": false, + "properties": { + "Owner": { + "description": "The creator of the rule being called. Only AWS is supported.", + "type": "string" + }, + "Category": { + "description": "A category for the provider type for the rule.", + "type": "string" + }, + "Version": { + "description": "A string that describes the rule version.", + "type": "string" + }, + "Provider": { + "description": "The provider of the service being called by the rule.", + "type": "string" } } } @@ -569,7 +689,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "codepipeline:TagResource", + "codepipeline:UntagResource" + ] }, "required": [ "Stages", diff --git a/internal/service/cloudformation/schemas/AWS_DMS_DataProvider.json b/internal/service/cloudformation/schemas/AWS_DMS_DataProvider.json index 40723d1c4..b3edaefb4 100644 --- a/internal/service/cloudformation/schemas/AWS_DMS_DataProvider.json +++ b/internal/service/cloudformation/schemas/AWS_DMS_DataProvider.json @@ -3,7 +3,11 @@ "description": "Resource schema for AWS::DMS::DataProvider", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-dms.git", "tagging": { - "taggable": true + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags" }, "definitions": { "Tag": { @@ -280,7 +284,9 @@ "dms:ListDataProviders", "dms:DescribeDataProviders", "dms:AddTagsToResource", - "dms:ListTagsForResource" + "dms:ListTagsForResource", + "iam:GetRole", + "iam:PassRole" ] }, "read": { diff --git a/internal/service/cloudformation/schemas/AWS_DMS_InstanceProfile.json b/internal/service/cloudformation/schemas/AWS_DMS_InstanceProfile.json index db620f57a..2603ff16f 100644 --- a/internal/service/cloudformation/schemas/AWS_DMS_InstanceProfile.json +++ b/internal/service/cloudformation/schemas/AWS_DMS_InstanceProfile.json @@ -3,7 +3,11 @@ "description": "Resource schema for AWS::DMS::InstanceProfile.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-csf.git", "tagging": { - "taggable": true + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags" }, "definitions": { "Tag": { diff --git a/internal/service/cloudformation/schemas/AWS_DMS_MigrationProject.json b/internal/service/cloudformation/schemas/AWS_DMS_MigrationProject.json index f2210162b..a3a6339ed 100644 --- a/internal/service/cloudformation/schemas/AWS_DMS_MigrationProject.json +++ b/internal/service/cloudformation/schemas/AWS_DMS_MigrationProject.json @@ -3,7 +3,11 @@ "description": "Resource schema for AWS::DMS::MigrationProject", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-csf.git", "tagging": { - "taggable": true + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags" }, "definitions": { "Tag": { diff --git a/internal/service/cloudformation/schemas/AWS_DataZone_Domain.json b/internal/service/cloudformation/schemas/AWS_DataZone_Domain.json index f1a8d8a91..5daa48f77 100644 --- a/internal/service/cloudformation/schemas/AWS_DataZone_Domain.json +++ b/internal/service/cloudformation/schemas/AWS_DataZone_Domain.json @@ -163,7 +163,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "datazone:TagResource", + "datazone:UntagResource" + ] }, "handlers": { "create": { @@ -196,7 +200,9 @@ "delete": { "permissions": [ "datazone:DeleteDomain", - "datazone:GetDomain" + "datazone:GetDomain", + "sso:DeleteManagedApplicationInstance", + "sso:PutApplicationAssignmentConfiguration" ] }, "list": { diff --git a/internal/service/cloudformation/schemas/AWS_Deadline_Fleet.json b/internal/service/cloudformation/schemas/AWS_Deadline_Fleet.json index b0c2128be..122e4f00b 100644 --- a/internal/service/cloudformation/schemas/AWS_Deadline_Fleet.json +++ b/internal/service/cloudformation/schemas/AWS_Deadline_Fleet.json @@ -503,6 +503,7 @@ "required": [ "Configuration", "DisplayName", + "FarmId", "MaxWorkerCount", "RoleArn" ], diff --git a/internal/service/cloudformation/schemas/AWS_Deadline_Queue.json b/internal/service/cloudformation/schemas/AWS_Deadline_Queue.json index b87792753..c54854b04 100644 --- a/internal/service/cloudformation/schemas/AWS_Deadline_Queue.json +++ b/internal/service/cloudformation/schemas/AWS_Deadline_Queue.json @@ -197,7 +197,8 @@ } }, "required": [ - "DisplayName" + "DisplayName", + "FarmId" ], "readOnlyProperties": [ "/properties/QueueId", diff --git a/internal/service/cloudformation/schemas/AWS_Deadline_StorageProfile.json b/internal/service/cloudformation/schemas/AWS_Deadline_StorageProfile.json index b92403267..d8041eafd 100644 --- a/internal/service/cloudformation/schemas/AWS_Deadline_StorageProfile.json +++ b/internal/service/cloudformation/schemas/AWS_Deadline_StorageProfile.json @@ -72,6 +72,7 @@ }, "required": [ "DisplayName", + "FarmId", "OsFamily" ], "readOnlyProperties": [ diff --git a/internal/service/cloudformation/schemas/AWS_EC2_LocalGatewayRouteTable.json b/internal/service/cloudformation/schemas/AWS_EC2_LocalGatewayRouteTable.json index 052f1d20d..b95231b11 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_LocalGatewayRouteTable.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_LocalGatewayRouteTable.json @@ -85,7 +85,12 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "ec2:DeleteTags", + "ec2:CreateTags" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_EC2_LocalGatewayRouteTableVPCAssociation.json b/internal/service/cloudformation/schemas/AWS_EC2_LocalGatewayRouteTableVPCAssociation.json index 6433e69b0..bc27374e6 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_LocalGatewayRouteTableVPCAssociation.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_LocalGatewayRouteTableVPCAssociation.json @@ -76,7 +76,12 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "ec2:DeleteTags", + "ec2:CreateTags" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_EC2_NetworkAcl.json b/internal/service/cloudformation/schemas/AWS_EC2_NetworkAcl.json index 1003191ed..5ea4cea8b 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_NetworkAcl.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_NetworkAcl.json @@ -1,79 +1,24 @@ { - "typeName": "AWS::EC2::NetworkAcl", - "description": "Specifies a network ACL for your VPC.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", - "additionalProperties": false, - "definitions": { - "Tag": { - "type": "object", - "additionalProperties": false, - "properties": { - "Key": { - "type": "string", - "description": "The tag key." - }, - "Value": { - "type": "string", - "description": "The tag value." - } - }, - "required": [ - "Value", - "Key" - ], - "description": "Specifies a tag. For more information, see [Add tags to a resource](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#cloudformation-add-tag-specifications)." - } - }, - "properties": { - "Id": { - "type": "string", - "description": "" - }, - "Tags": { - "description": "The tags for the network ACL.", - "type": "array", - "uniqueItems": false, - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - } - }, - "VpcId": { - "description": "The ID of the VPC for the network ACL.", - "type": "string" - } - }, - "required": [ - "VpcId" - ], - "createOnlyProperties": [ - "/properties/VpcId" - ], - "readOnlyProperties": [ - "/properties/Id" - ], - "primaryIdentifier": [ - "/properties/Id" - ], "tagging": { "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true }, "handlers": { - "create": { + "read": { "permissions": [ - "ec2:CreateNetworkAcl", "ec2:DescribeNetworkAcls", - "ec2:CreateTags" + "ec2:DescribeTags" ] }, - "read": { + "create": { "permissions": [ + "ec2:CreateNetworkAcl", "ec2:DescribeNetworkAcls", - "ec2:DescribeTags" + "ec2:CreateTags" ] }, "update": { @@ -83,17 +28,72 @@ "ec2:CreateTags" ] }, - "delete": { + "list": { "permissions": [ - "ec2:DeleteTags", - "ec2:DeleteNetworkAcl", "ec2:DescribeNetworkAcls" ] }, - "list": { + "delete": { "permissions": [ + "ec2:DeleteTags", + "ec2:DeleteNetworkAcl", "ec2:DescribeNetworkAcls" ] } - } + }, + "typeName": "AWS::EC2::NetworkAcl", + "readOnlyProperties": [ + "/properties/Id" + ], + "description": "Specifies a network ACL for your VPC.", + "createOnlyProperties": [ + "/properties/VpcId" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/Id" + ], + "definitions": { + "Tag": { + "description": "Specifies a tag. For more information, see [Add tags to a resource](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#cloudformation-add-tag-specifications).", + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "description": "The tag value.", + "type": "string" + }, + "Key": { + "description": "The tag key.", + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ] + } + }, + "properties": { + "VpcId": { + "description": "The ID of the VPC for the network ACL.", + "type": "string" + }, + "Id": { + "description": "", + "type": "string" + }, + "Tags": { + "uniqueItems": false, + "description": "The tags for the network ACL.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + } + } + }, + "required": [ + "VpcId" + ] } diff --git a/internal/service/cloudformation/schemas/AWS_EC2_PlacementGroup.json b/internal/service/cloudformation/schemas/AWS_EC2_PlacementGroup.json index 4613c5542..66e1181a5 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_PlacementGroup.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_PlacementGroup.json @@ -70,7 +70,11 @@ "tagging": { "taggable": true, "tagUpdatable": false, - "cloudFormationSystemTags": false + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "ec2:CreateTags" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_EC2_RouteTable.json b/internal/service/cloudformation/schemas/AWS_EC2_RouteTable.json index 614a81444..1442d2038 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_RouteTable.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_RouteTable.json @@ -1,77 +1,22 @@ { - "typeName": "AWS::EC2::RouteTable", - "description": "Specifies a route table for the specified VPC. After you create a route table, you can add routes and associate the table with a subnet.\n For more information, see [Route tables](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html) in the *Amazon VPC User Guide*.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2", - "definitions": { - "Tag": { - "type": "object", - "additionalProperties": false, - "properties": { - "Key": { - "type": "string", - "description": "The tag key." - }, - "Value": { - "type": "string", - "description": "The tag value." - } - }, - "required": [ - "Value", - "Key" - ], - "description": "Specifies a tag. For more information, see [Add tags to a resource](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#cloudformation-add-tag-specifications)." - } - }, - "properties": { - "RouteTableId": { - "description": "", - "type": "string" - }, - "Tags": { - "description": "Any tags assigned to the route table.", - "type": "array", - "uniqueItems": false, - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - } - }, - "VpcId": { - "description": "The ID of the VPC.", - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "VpcId" - ], - "createOnlyProperties": [ - "/properties/VpcId" - ], - "readOnlyProperties": [ - "/properties/RouteTableId" - ], - "primaryIdentifier": [ - "/properties/RouteTableId" - ], "tagging": { "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true }, "handlers": { - "create": { + "read": { "permissions": [ - "ec2:CreateRouteTable", - "ec2:CreateTags", "ec2:DescribeRouteTables" ] }, - "read": { + "create": { "permissions": [ + "ec2:CreateRouteTable", + "ec2:CreateTags", "ec2:DescribeRouteTables" ] }, @@ -82,16 +27,71 @@ "ec2:DescribeRouteTables" ] }, + "list": { + "permissions": [ + "ec2:DescribeRouteTables" + ] + }, "delete": { "permissions": [ "ec2:DescribeRouteTables", "ec2:DeleteRouteTable" ] - }, - "list": { - "permissions": [ - "ec2:DescribeRouteTables" + } + }, + "typeName": "AWS::EC2::RouteTable", + "readOnlyProperties": [ + "/properties/RouteTableId" + ], + "description": "Specifies a route table for the specified VPC. After you create a route table, you can add routes and associate the table with a subnet.\n For more information, see [Route tables](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html) in the *Amazon VPC User Guide*.", + "createOnlyProperties": [ + "/properties/VpcId" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/RouteTableId" + ], + "definitions": { + "Tag": { + "description": "Specifies a tag. For more information, see [Add tags to a resource](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#cloudformation-add-tag-specifications).", + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "description": "The tag value.", + "type": "string" + }, + "Key": { + "description": "The tag key.", + "type": "string" + } + }, + "required": [ + "Value", + "Key" ] } - } + }, + "properties": { + "RouteTableId": { + "description": "", + "type": "string" + }, + "VpcId": { + "description": "The ID of the VPC.", + "type": "string" + }, + "Tags": { + "uniqueItems": false, + "description": "Any tags assigned to the route table.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + } + } + }, + "required": [ + "VpcId" + ] } diff --git a/internal/service/cloudformation/schemas/AWS_EC2_Subnet.json b/internal/service/cloudformation/schemas/AWS_EC2_Subnet.json index 57039b800..ac4735f6d 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_Subnet.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_Subnet.json @@ -61,7 +61,7 @@ }, "EnableDns64": { "type": "boolean", - "description": "Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. For more information, see [DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-nat64-dns64) in the *User Guide*." + "description": "Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations.\n You must first configure a NAT gateway in a public subnet (separate from the subnet containing the IPv6-only workloads). For example, the subnet containing the NAT gateway should have a ``0.0.0.0/0`` route pointing to the internet gateway. For more information, see [Configure DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-nat64-dns64.html#nat-gateway-nat64-dns64-walkthrough) in the *User Guide*." }, "PrivateDnsNameOptionsOnLaunch": { "type": "object", diff --git a/internal/service/cloudformation/schemas/AWS_EC2_SubnetRouteTableAssociation.json b/internal/service/cloudformation/schemas/AWS_EC2_SubnetRouteTableAssociation.json index 46a95b328..d3249d0cd 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_SubnetRouteTableAssociation.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_SubnetRouteTableAssociation.json @@ -1,44 +1,17 @@ { - "typeName": "AWS::EC2::SubnetRouteTableAssociation", - "description": "Associates a subnet with a route table. The subnet and route table must be in the same VPC. This association causes traffic originating from the subnet to be routed according to the routes in the route table. A route table can be associated with multiple subnets. To create a route table, see [AWS::EC2::RouteTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routetable.html).", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", - "additionalProperties": false, - "properties": { - "Id": { - "type": "string", - "description": "" - }, - "RouteTableId": { - "type": "string", - "description": "The ID of the route table.\n The physical ID changes when the route table ID is changed." - }, - "SubnetId": { - "type": "string", - "description": "The ID of the subnet." - } - }, "tagging": { "taggable": false, "tagOnCreate": false, "tagUpdatable": false, "cloudFormationSystemTags": false }, - "required": [ - "RouteTableId", - "SubnetId" - ], - "replacementStrategy": "delete_then_create", - "createOnlyProperties": [ - "/properties/SubnetId", - "/properties/RouteTableId" - ], - "readOnlyProperties": [ - "/properties/Id" - ], - "primaryIdentifier": [ - "/properties/Id" - ], "handlers": { + "read": { + "permissions": [ + "ec2:DescribeRouteTables" + ] + }, "create": { "permissions": [ "ec2:AssociateRouteTable", @@ -47,7 +20,7 @@ "ec2:DescribeRouteTables" ] }, - "read": { + "list": { "permissions": [ "ec2:DescribeRouteTables" ] @@ -58,11 +31,38 @@ "ec2:DescribeSubnets", "ec2:DescribeRouteTables" ] + } + }, + "typeName": "AWS::EC2::SubnetRouteTableAssociation", + "readOnlyProperties": [ + "/properties/Id" + ], + "description": "Associates a subnet with a route table. The subnet and route table must be in the same VPC. This association causes traffic originating from the subnet to be routed according to the routes in the route table. A route table can be associated with multiple subnets. To create a route table, see [AWS::EC2::RouteTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routetable.html).", + "createOnlyProperties": [ + "/properties/SubnetId", + "/properties/RouteTableId" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "RouteTableId": { + "description": "The ID of the route table.\n The physical ID changes when the route table ID is changed.", + "type": "string" }, - "list": { - "permissions": [ - "ec2:DescribeRouteTables" - ] + "Id": { + "description": "", + "type": "string" + }, + "SubnetId": { + "description": "The ID of the subnet.", + "type": "string" } - } + }, + "required": [ + "RouteTableId", + "SubnetId" + ], + "replacementStrategy": "delete_then_create" } diff --git a/internal/service/cloudformation/schemas/AWS_EC2_TransitGateway.json b/internal/service/cloudformation/schemas/AWS_EC2_TransitGateway.json index a90d21b98..143f433b0 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_TransitGateway.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_TransitGateway.json @@ -1,7 +1,11 @@ { "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transitgateway", "tagging": { - "taggable": true + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true }, "handlers": { "read": { diff --git a/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayAttachment.json b/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayAttachment.json index 6ef3cfe83..d2620b8ec 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayAttachment.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayAttachment.json @@ -1,100 +1,14 @@ { - "typeName": "AWS::EC2::TransitGatewayAttachment", - "description": "Resource Type definition for AWS::EC2::TransitGatewayAttachment", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transitgateway", - "additionalProperties": false, - "properties": { - "Id": { - "type": "string" - }, - "TransitGatewayId": { - "type": "string" - }, - "VpcId": { - "type": "string" - }, - "SubnetIds": { - "type": "array", - "insertionOrder": false, - "uniqueItems": false, - "items": { - "type": "string" - } - }, - "Tags": { - "type": "array", - "insertionOrder": false, - "uniqueItems": false, - "items": { - "$ref": "#/definitions/Tag" - } - }, - "Options": { - "description": "The options for the transit gateway vpc attachment.", - "type": "object", - "properties": { - "DnsSupport": { - "description": "Indicates whether to enable DNS Support for Vpc Attachment. Valid Values: enable | disable", - "type": "string" - }, - "Ipv6Support": { - "description": "Indicates whether to enable Ipv6 Support for Vpc Attachment. Valid Values: enable | disable", - "type": "string" - }, - "ApplianceModeSupport": { - "description": "Indicates whether to enable Ipv6 Support for Vpc Attachment. Valid Values: enable | disable", - "type": "string" - }, - "SecurityGroupReferencingSupport": { - "description": "Indicates whether to enable Security Group referencing support for Vpc Attachment. Valid Values: enable | disable", - "type": "string" - } - }, - "additionalProperties": false - } - }, - "definitions": { - "Tag": { - "type": "object", - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ] - } - }, - "required": [ - "VpcId", - "SubnetIds", - "TransitGatewayId" - ], "tagging": { "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": false }, - "createOnlyProperties": [ - "/properties/TransitGatewayId", - "/properties/VpcId" - ], - "readOnlyProperties": [ - "/properties/Id" - ], - "primaryIdentifier": [ - "/properties/Id" - ], "handlers": { - "create": { + "read": { "permissions": [ "ec2:DescribeTransitGatewayAttachments", "ec2:DescribeTransitGatewayVpcAttachments", @@ -107,7 +21,7 @@ "ec2:ModifyTransitGatewayVpcAttachment" ] }, - "read": { + "create": { "permissions": [ "ec2:DescribeTransitGatewayAttachments", "ec2:DescribeTransitGatewayVpcAttachments", @@ -120,16 +34,15 @@ "ec2:ModifyTransitGatewayVpcAttachment" ] }, - "delete": { + "update": { "permissions": [ "ec2:DescribeTransitGatewayAttachments", "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:DescribeTags", "ec2:CreateTransitGatewayVpcAttachment", - "ec2:DeleteTransitGatewayVpcAttachment", "ec2:CreateTags", + "ec2:DeleteTransitGatewayVpcAttachment", "ec2:DeleteTags", - "ec2:DescribeTags", - "ec2:DescribeTransitGatewayAttachments", "ec2:ModifyTransitGatewayVpcAttachment" ] }, @@ -145,17 +58,104 @@ "ec2:ModifyTransitGatewayVpcAttachment" ] }, - "update": { + "delete": { "permissions": [ "ec2:DescribeTransitGatewayAttachments", "ec2:DescribeTransitGatewayVpcAttachments", - "ec2:DescribeTags", "ec2:CreateTransitGatewayVpcAttachment", - "ec2:CreateTags", "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:CreateTags", "ec2:DeleteTags", + "ec2:DescribeTags", + "ec2:DescribeTransitGatewayAttachments", "ec2:ModifyTransitGatewayVpcAttachment" ] } + }, + "typeName": "AWS::EC2::TransitGatewayAttachment", + "readOnlyProperties": [ + "/properties/Id" + ], + "description": "Resource Type definition for AWS::EC2::TransitGatewayAttachment", + "createOnlyProperties": [ + "/properties/TransitGatewayId", + "/properties/VpcId" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/Id" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "type": "string" + }, + "Key": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ] + } + }, + "required": [ + "VpcId", + "SubnetIds", + "TransitGatewayId" + ], + "properties": { + "Options": { + "description": "The options for the transit gateway vpc attachment.", + "additionalProperties": false, + "type": "object", + "properties": { + "Ipv6Support": { + "description": "Indicates whether to enable Ipv6 Support for Vpc Attachment. Valid Values: enable | disable", + "type": "string" + }, + "ApplianceModeSupport": { + "description": "Indicates whether to enable Ipv6 Support for Vpc Attachment. Valid Values: enable | disable", + "type": "string" + }, + "DnsSupport": { + "description": "Indicates whether to enable DNS Support for Vpc Attachment. Valid Values: enable | disable", + "type": "string" + } + } + }, + "TransitGatewayId": { + "type": "string" + }, + "VpcId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "SubnetIds": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "relationshipRef": { + "typeName": "AWS::EC2::Subnet", + "propertyPath": "/properties/SubnetId" + }, + "type": "string" + } + }, + "Tags": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + } + } } } diff --git a/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayConnect.json b/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayConnect.json index 7a8d44757..99584dc37 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayConnect.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayConnect.json @@ -65,6 +65,13 @@ "additionalProperties": false } }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags" + }, "additionalProperties": false, "readOnlyProperties": [ "/properties/TransitGatewayAttachmentId", diff --git a/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayMulticastDomain.json b/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayMulticastDomain.json index 9628fa2c8..1b7a87a5b 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayMulticastDomain.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayMulticastDomain.json @@ -74,6 +74,13 @@ "createOnlyProperties": [ "/properties/TransitGatewayId" ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags" + }, "readOnlyProperties": [ "/properties/TransitGatewayMulticastDomainId", "/properties/State", diff --git a/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayMulticastDomainAssociation.json b/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayMulticastDomainAssociation.json index fdba7c51d..a211fe650 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayMulticastDomainAssociation.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayMulticastDomainAssociation.json @@ -33,6 +33,12 @@ "TransitGatewayAttachmentId", "SubnetId" ], + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, "additionalProperties": false, "readOnlyProperties": [ "/properties/ResourceId", diff --git a/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayMulticastGroupMember.json b/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayMulticastGroupMember.json index 1d1c5fe91..f1ecf96ac 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayMulticastGroupMember.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayMulticastGroupMember.json @@ -42,10 +42,6 @@ "MemberType": { "description": "The member type (for example, static).", "type": "string" - }, - "SourceType": { - "description": "The source type.", - "type": "string" } }, "required": [ @@ -53,6 +49,12 @@ "NetworkInterfaceId", "TransitGatewayMulticastDomainId" ], + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, "additionalProperties": false, "readOnlyProperties": [ "/properties/SubnetId", @@ -61,7 +63,6 @@ "/properties/GroupSource", "/properties/GroupMember", "/properties/MemberType", - "/properties/SourceType", "/properties/TransitGatewayAttachmentId" ], "createOnlyProperties": [ @@ -93,6 +94,16 @@ ] }, "list": { + "handlerSchema": { + "properties": { + "TransitGatewayMulticastDomainId": { + "$ref": "resource-schema.json#/properties/TransitGatewayMulticastDomainId" + } + }, + "required": [ + "TransitGatewayMulticastDomainId" + ] + }, "permissions": [ "ec2:SearchTransitGatewayMulticastGroups" ] diff --git a/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayMulticastGroupSource.json b/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayMulticastGroupSource.json index 70688696e..5c9306379 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayMulticastGroupSource.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayMulticastGroupSource.json @@ -39,10 +39,6 @@ "description": "Indicates that the resource is a transit gateway multicast group member.", "type": "boolean" }, - "MemberType": { - "description": "The member type (for example, static).", - "type": "string" - }, "SourceType": { "description": "The source type.", "type": "string" @@ -53,6 +49,12 @@ "NetworkInterfaceId", "GroupIpAddress" ], + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, "additionalProperties": false, "readOnlyProperties": [ "/properties/SubnetId", @@ -60,7 +62,6 @@ "/properties/ResourceType", "/properties/GroupSource", "/properties/GroupMember", - "/properties/MemberType", "/properties/SourceType", "/properties/TransitGatewayAttachmentId" ], @@ -93,6 +94,16 @@ ] }, "list": { + "handlerSchema": { + "properties": { + "TransitGatewayMulticastDomainId": { + "$ref": "resource-schema.json#/properties/TransitGatewayMulticastDomainId" + } + }, + "required": [ + "TransitGatewayMulticastDomainId" + ] + }, "permissions": [ "ec2:SearchTransitGatewayMulticastGroups" ] diff --git a/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayPeeringAttachment.json b/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayPeeringAttachment.json index 73088790c..be19e94b0 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayPeeringAttachment.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayPeeringAttachment.json @@ -1,4 +1,34 @@ { + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true + }, + "typeName": "AWS::EC2::TransitGatewayPeeringAttachment", + "readOnlyProperties": [ + "/properties/TransitGatewayAttachmentId", + "/properties/Status", + "/properties/State", + "/properties/CreationTime" + ], + "description": "The AWS::EC2::TransitGatewayPeeringAttachment type", + "createOnlyProperties": [ + "/properties/TransitGatewayId", + "/properties/PeerTransitGatewayId", + "/properties/PeerRegion", + "/properties/PeerAccountId" + ], + "primaryIdentifier": [ + "/properties/TransitGatewayAttachmentId" + ], + "required": [ + "TransitGatewayId", + "PeerTransitGatewayId", + "PeerAccountId", + "PeerRegion" + ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-myservice", "handlers": { "read": { @@ -9,12 +39,15 @@ "create": { "permissions": [ "ec2:CreateTransitGatewayPeeringAttachment", - "ec2:DescribeTransitGatewayPeeringAttachments" + "ec2:DescribeTransitGatewayPeeringAttachments", + "ec2:CreateTags" ] }, "update": { "permissions": [ - "ec2:DescribeTransitGatewayPeeringAttachments" + "ec2:DescribeTransitGatewayPeeringAttachments", + "ec2:CreateTags", + "ec2:DeleteTags" ] }, "list": { @@ -25,28 +58,12 @@ "delete": { "permissions": [ "ec2:DeleteTransitGatewayPeeringAttachment", - "ec2:DescribeTransitGatewayPeeringAttachments" + "ec2:DescribeTransitGatewayPeeringAttachments", + "ec2:DeleteTags" ] } }, - "typeName": "AWS::EC2::TransitGatewayPeeringAttachment", - "readOnlyProperties": [ - "/properties/TransitGatewayAttachmentId", - "/properties/Status", - "/properties/State", - "/properties/CreationTime" - ], - "description": "The AWS::EC2::TransitGatewayPeeringAttachment type", - "createOnlyProperties": [ - "/properties/TransitGatewayId", - "/properties/PeerTransitGatewayId", - "/properties/PeerRegion", - "/properties/PeerAccountId" - ], "additionalProperties": false, - "primaryIdentifier": [ - "/properties/TransitGatewayAttachmentId" - ], "definitions": { "Tag": { "additionalProperties": false, @@ -77,12 +94,6 @@ } } }, - "required": [ - "TransitGatewayId", - "PeerTransitGatewayId", - "PeerAccountId", - "PeerRegion" - ], "properties": { "Status": { "description": "The status of the transit gateway peering attachment.", diff --git a/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayRouteTable.json b/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayRouteTable.json index 87deb9227..28081531f 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayRouteTable.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_TransitGatewayRouteTable.json @@ -1,60 +1,5 @@ { - "typeName": "AWS::EC2::TransitGatewayRouteTable", - "description": "Resource Type definition for AWS::EC2::TransitGatewayRouteTable", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transitgateway.git", - "additionalProperties": false, - "properties": { - "TransitGatewayRouteTableId": { - "description": "Transit Gateway Route Table primary identifier", - "type": "string" - }, - "TransitGatewayId": { - "description": "The ID of the transit gateway.", - "type": "string" - }, - "Tags": { - "type": "array", - "description": "Tags are composed of a Key/Value pair. You can use tags to categorize and track each parameter group. The tag value null is permitted.", - "items": { - "$ref": "#/definitions/Tag" - }, - "insertionOrder": false, - "uniqueItems": false - } - }, - "definitions": { - "Tag": { - "type": "object", - "additionalProperties": false, - "properties": { - "Key": { - "type": "string", - "description": "The key of the associated tag key-value pair" - }, - "Value": { - "type": "string", - "description": "The value of the associated tag key-value pair" - } - }, - "required": [ - "Value", - "Key" - ] - } - }, - "required": [ - "TransitGatewayId" - ], - "createOnlyProperties": [ - "/properties/TransitGatewayId", - "/properties/Tags" - ], - "readOnlyProperties": [ - "/properties/TransitGatewayRouteTableId" - ], - "primaryIdentifier": [ - "/properties/TransitGatewayRouteTableId" - ], "tagging": { "taggable": true, "tagOnCreate": true, @@ -62,6 +7,11 @@ "cloudFormationSystemTags": false }, "handlers": { + "read": { + "permissions": [ + "ec2:DescribeTransitGatewayRouteTables" + ] + }, "create": { "permissions": [ "ec2:CreateTransitGatewayRouteTable", @@ -69,7 +19,7 @@ "ec2:DescribeTransitGatewayRouteTables" ] }, - "read": { + "list": { "permissions": [ "ec2:DescribeTransitGatewayRouteTables" ] @@ -81,11 +31,61 @@ "ec2:GetTransitGatewayRouteTableAssociations", "ec2:DisassociateTransitGatewayRouteTable" ] - }, - "list": { - "permissions": [ - "ec2:DescribeTransitGatewayRouteTables" + } + }, + "typeName": "AWS::EC2::TransitGatewayRouteTable", + "readOnlyProperties": [ + "/properties/TransitGatewayRouteTableId" + ], + "description": "Resource Type definition for AWS::EC2::TransitGatewayRouteTable", + "createOnlyProperties": [ + "/properties/TransitGatewayId", + "/properties/Tags" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/TransitGatewayRouteTableId" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "description": "The value of the associated tag key-value pair", + "type": "string" + }, + "Key": { + "description": "The key of the associated tag key-value pair", + "type": "string" + } + }, + "required": [ + "Value", + "Key" ] } - } + }, + "properties": { + "TransitGatewayRouteTableId": { + "description": "Transit Gateway Route Table primary identifier", + "type": "string" + }, + "TransitGatewayId": { + "description": "The ID of the transit gateway.", + "type": "string" + }, + "Tags": { + "uniqueItems": false, + "description": "Tags are composed of a Key/Value pair. You can use tags to categorize and track each parameter group. The tag value null is permitted.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + } + } + }, + "required": [ + "TransitGatewayId" + ] } diff --git a/internal/service/cloudformation/schemas/AWS_ECS_Cluster.json b/internal/service/cloudformation/schemas/AWS_ECS_Cluster.json index 8225acd7f..54f09f0d6 100644 --- a/internal/service/cloudformation/schemas/AWS_ECS_Cluster.json +++ b/internal/service/cloudformation/schemas/AWS_ECS_Cluster.json @@ -2,6 +2,9 @@ "tagging": { "taggable": true }, + "propertyTransform": { + "/properties/Configuration/ManagedStorageConfiguration/FargateEphemeralStorageKmsKeyId": "$join([\"arn:aws[-a-z]*:kms:[a-z0-9-]+:[0-9]{12}:key/\", FargateEphemeralStorageKmsKeyId])" + }, "handlers": { "read": { "permissions": [ @@ -132,14 +135,16 @@ } }, "ManagedStorageConfiguration": { - "description": "", + "description": "The managed storage configuration for the cluster.", "additionalProperties": false, "type": "object", "properties": { "FargateEphemeralStorageKmsKeyId": { + "description": "Specify the KMSlong key ID for the Fargate ephemeral storage.", "type": "string" }, "KmsKeyId": { + "description": "Specify a KMSlong key ID to encrypt the managed storage.", "type": "string" } } @@ -171,12 +176,12 @@ } }, "ClusterConfiguration": { - "description": "The execute command configuration for the cluster.", + "description": "The execute command and managed storage configuration for the cluster.", "additionalProperties": false, "type": "object", "properties": { "ManagedStorageConfiguration": { - "description": "", + "description": "The details of the managed storage configuration.", "$ref": "#/definitions/ManagedStorageConfiguration" }, "ExecuteCommandConfiguration": { @@ -225,7 +230,7 @@ } }, "Configuration": { - "description": "The execute command configuration for the cluster.", + "description": "The execute command and managed storage configuration for the cluster.", "$ref": "#/definitions/ClusterConfiguration" }, "ServiceConnectDefaults": { diff --git a/internal/service/cloudformation/schemas/AWS_ECS_ClusterCapacityProviderAssociations.json b/internal/service/cloudformation/schemas/AWS_ECS_ClusterCapacityProviderAssociations.json index d701e2122..00b29ceef 100644 --- a/internal/service/cloudformation/schemas/AWS_ECS_ClusterCapacityProviderAssociations.json +++ b/internal/service/cloudformation/schemas/AWS_ECS_ClusterCapacityProviderAssociations.json @@ -1,19 +1,61 @@ { + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "tagOnCreate": false, + "taggable": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, + "handlers": { + "read": { + "permissions": [ + "ecs:DescribeClusters" + ] + }, + "create": { + "permissions": [ + "ecs:DescribeClusters", + "ecs:PutClusterCapacityProviders" + ] + }, + "update": { + "permissions": [ + "ecs:DescribeClusters", + "ecs:PutClusterCapacityProviders" + ] + }, + "list": { + "permissions": [ + "ecs:DescribeClusters", + "ecs:ListClusters" + ] + }, + "delete": { + "permissions": [ + "ecs:PutClusterCapacityProviders", + "ecs:DescribeClusters" + ] + } + }, "typeName": "AWS::ECS::ClusterCapacityProviderAssociations", "description": "Associate a set of ECS Capacity Providers with a specified ECS Cluster", - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "createOnlyProperties": [ + "/properties/Cluster" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/Cluster" + ], "definitions": { - "CapacityProviders": { + "DefaultCapacityProviderStrategy": { "description": "List of capacity providers to associate with the cluster", "type": "array", "items": { - "$ref": "#/definitions/CapacityProvider" - }, - "uniqueItems": true + "$ref": "#/definitions/CapacityProviderStrategy" + } }, "CapacityProvider": { "description": "If using ec2 auto-scaling, the name of the associated capacity provider. Otherwise FARGATE, FARGATE_SPOT.", - "type": "string", "anyOf": [ { "type": "string", @@ -23,106 +65,64 @@ ] }, { - "type": "string", "minLength": 1, + "type": "string", "maxLength": 2048 } - ] - }, - "Cluster": { - "description": "The name of the cluster", - "type": "string", - "minLength": 1, - "maxLength": 2048 + ], + "type": "string" }, - "DefaultCapacityProviderStrategy": { + "CapacityProviders": { + "uniqueItems": true, "description": "List of capacity providers to associate with the cluster", "type": "array", "items": { - "$ref": "#/definitions/CapacityProviderStrategy" + "$ref": "#/definitions/CapacityProvider" } }, + "Cluster": { + "minLength": 1, + "description": "The name of the cluster", + "type": "string", + "maxLength": 2048 + }, "CapacityProviderStrategy": { + "additionalProperties": false, "type": "object", "properties": { + "CapacityProvider": { + "$ref": "#/definitions/CapacityProvider" + }, "Base": { + "maximum": 100000, "type": "integer", - "minimum": 0, - "maximum": 100000 + "minimum": 0 }, "Weight": { + "maximum": 1000, "type": "integer", - "minimum": 0, - "maximum": 1000 - }, - "CapacityProvider": { - "$ref": "#/definitions/CapacityProvider" + "minimum": 0 } }, "required": [ "CapacityProvider" - ], - "additionalProperties": false + ] } }, - "additionalProperties": false, "properties": { + "DefaultCapacityProviderStrategy": { + "$ref": "#/definitions/DefaultCapacityProviderStrategy" + }, "CapacityProviders": { "$ref": "#/definitions/CapacityProviders" }, "Cluster": { "$ref": "#/definitions/Cluster" - }, - "DefaultCapacityProviderStrategy": { - "$ref": "#/definitions/DefaultCapacityProviderStrategy" } }, "required": [ "CapacityProviders", "Cluster", "DefaultCapacityProviderStrategy" - ], - "createOnlyProperties": [ - "/properties/Cluster" - ], - "primaryIdentifier": [ - "/properties/Cluster" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "handlers": { - "create": { - "permissions": [ - "ecs:DescribeClusters", - "ecs:PutClusterCapacityProviders" - ] - }, - "read": { - "permissions": [ - "ecs:DescribeClusters" - ] - }, - "update": { - "permissions": [ - "ecs:DescribeClusters", - "ecs:PutClusterCapacityProviders" - ] - }, - "delete": { - "permissions": [ - "ecs:PutClusterCapacityProviders", - "ecs:DescribeClusters" - ] - }, - "list": { - "permissions": [ - "ecs:DescribeClusters", - "ecs:ListClusters" - ] - } - } + ] } diff --git a/internal/service/cloudformation/schemas/AWS_IoTFleetWise_DecoderManifest.json b/internal/service/cloudformation/schemas/AWS_IoTFleetWise_DecoderManifest.json index 7f0a4c636..41d64c99a 100644 --- a/internal/service/cloudformation/schemas/AWS_IoTFleetWise_DecoderManifest.json +++ b/internal/service/cloudformation/schemas/AWS_IoTFleetWise_DecoderManifest.json @@ -486,6 +486,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "iotfleetwise:UntagResource", + "iotfleetwise:TagResource", + "iotfleetwise:ListTagsForResource" + ] } } diff --git a/internal/service/cloudformation/schemas/AWS_IoTFleetWise_Fleet.json b/internal/service/cloudformation/schemas/AWS_IoTFleetWise_Fleet.json index de67f5da9..c6653eaf7 100644 --- a/internal/service/cloudformation/schemas/AWS_IoTFleetWise_Fleet.json +++ b/internal/service/cloudformation/schemas/AWS_IoTFleetWise_Fleet.json @@ -70,7 +70,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "iotfleetwise:UntagResource", + "iotfleetwise:TagResource", + "iotfleetwise:ListTagsForResource" + ] }, "readOnlyProperties": [ "/properties/Arn", diff --git a/internal/service/cloudformation/schemas/AWS_IoTFleetWise_ModelManifest.json b/internal/service/cloudformation/schemas/AWS_IoTFleetWise_ModelManifest.json index 9d2007f98..f29704cae 100644 --- a/internal/service/cloudformation/schemas/AWS_IoTFleetWise_ModelManifest.json +++ b/internal/service/cloudformation/schemas/AWS_IoTFleetWise_ModelManifest.json @@ -142,6 +142,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "iotfleetwise:UntagResource", + "iotfleetwise:TagResource", + "iotfleetwise:ListTagsForResource" + ] } } diff --git a/internal/service/cloudformation/schemas/AWS_IoTFleetWise_Vehicle.json b/internal/service/cloudformation/schemas/AWS_IoTFleetWise_Vehicle.json index d58625ce1..259a5dbbc 100644 --- a/internal/service/cloudformation/schemas/AWS_IoTFleetWise_Vehicle.json +++ b/internal/service/cloudformation/schemas/AWS_IoTFleetWise_Vehicle.json @@ -91,7 +91,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "iotfleetwise:UntagResource", + "iotfleetwise:TagResource", + "iotfleetwise:ListTagsForResource" + ] }, "readOnlyProperties": [ "/properties/Arn", diff --git a/internal/service/cloudformation/schemas/AWS_KMS_Key.json b/internal/service/cloudformation/schemas/AWS_KMS_Key.json index 6ef269257..fb85e14c4 100644 --- a/internal/service/cloudformation/schemas/AWS_KMS_Key.json +++ b/internal/service/cloudformation/schemas/AWS_KMS_Key.json @@ -9,13 +9,13 @@ "properties": { "Key": { "type": "string", - "description": "", + "description": "The key name of the tag. You can specify a value that's 1 to 128 Unicode characters in length and can't be prefixed with ``aws:``. digits, whitespace, ``_``, ``.``, ``:``, ``/``, ``=``, ``+``, ``@``, ``-``, and ``\"``.\n For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).", "minLength": 1, "maxLength": 128 }, "Value": { "type": "string", - "description": "", + "description": "The value for the tag. You can specify a value that's 1 to 256 characters in length. You can use any of the following characters: the set of Unicode letters, digits, whitespace, ``_``, ``.``, ``/``, ``=``, ``+``, and ``-``.\n For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).", "minLength": 0, "maxLength": 256 } @@ -51,7 +51,7 @@ "default": "{\n \"Version\": \"2012-10-17\",\n \"Id\": \"key-default\",\n \"Statement\": [\n {\n \"Sid\": \"Enable IAM User Permissions\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"AWS\": \"arn::iam:::root\"\n },\n \"Action\": \"kms:*\",\n \"Resource\": \"*\"\n }\n ]\n}" }, "KeyUsage": { - "description": "Determines the [cryptographic operations](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) for which you can use the KMS key. The default value is ``ENCRYPT_DECRYPT``. This property is required for asymmetric KMS keys and HMAC KMS keys. You can't change the ``KeyUsage`` value after the KMS key is created.\n If you change the value of the ``KeyUsage`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value.\n Select only one valid value.\n + For symmetric encryption KMS keys, omit the property or specify ``ENCRYPT_DECRYPT``.\n + For asymmetric KMS keys with RSA key material, specify ``ENCRYPT_DECRYPT`` or ``SIGN_VERIFY``.\n + For asymmetric KMS keys with ECC key material, specify ``SIGN_VERIFY``.\n + For asymmetric KMS keys with SM2 (China Regions only) key material, specify ``ENCRYPT_DECRYPT`` or ``SIGN_VERIFY``.\n + For HMAC KMS keys, specify ``GENERATE_VERIFY_MAC``.", + "description": "Determines the [cryptographic operations](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) for which you can use the KMS key. The default value is ``ENCRYPT_DECRYPT``. This property is required for asymmetric KMS keys and HMAC KMS keys. You can't change the ``KeyUsage`` value after the KMS key is created.\n If you change the value of the ``KeyUsage`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value.\n Select only one valid value.\n + For symmetric encryption KMS keys, omit the parameter or specify ``ENCRYPT_DECRYPT``.\n + For HMAC KMS keys (symmetric), specify ``GENERATE_VERIFY_MAC``.\n + For asymmetric KMS keys with RSA key pairs, specify ``ENCRYPT_DECRYPT`` or ``SIGN_VERIFY``.\n + For asymmetric KMS keys with NIST-recommended elliptic curve key pairs, specify ``SIGN_VERIFY`` or ``KEY_AGREEMENT``.\n + For asymmetric KMS keys with ``ECC_SECG_P256K1`` key pairs specify ``SIGN_VERIFY``.\n + For asymmetric KMS keys with SM2 key pairs (China Regions only), specify ``ENCRYPT_DECRYPT``, ``SIGN_VERIFY``, or ``KEY_AGREEMENT``.", "type": "string", "default": "ENCRYPT_DECRYPT", "enum": [ @@ -71,7 +71,7 @@ ] }, "KeySpec": { - "description": "Specifies the type of KMS key to create. The default value, ``SYMMETRIC_DEFAULT``, creates a KMS key with a 256-bit symmetric key for encryption and decryption. In China Regions, ``SYMMETRIC_DEFAULT`` creates a 128-bit symmetric key that uses SM4 encryption. You can't change the ``KeySpec`` value after the KMS key is created. For help choosing a key spec for your KMS key, see [Choosing a KMS key type](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose.html) in the *Developer Guide*.\n The ``KeySpec`` property determines the type of key material in the KMS key and the algorithms that the KMS key supports. To further restrict the algorithms that can be used with the KMS key, use a condition key in its key policy or IAM policy. For more information, see [condition keys](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms) in the *Developer Guide*.\n If you change the value of the ``KeySpec`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value.\n [services that are integrated with](https://docs.aws.amazon.com/kms/features/#AWS_Service_Integration) use symmetric encryption KMS keys to protect your data. These services do not support encryption with asymmetric KMS keys. For help determining whether a KMS key is asymmetric, see [Identifying asymmetric KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html) in the *Developer Guide*.\n KMS supports the following key specs for KMS keys:\n + Symmetric encryption key (default)\n + ``SYMMETRIC_DEFAULT`` (AES-256-GCM)\n \n + HMAC keys (symmetric)\n + ``HMAC_224`` \n + ``HMAC_256`` \n + ``HMAC_384`` \n + ``HMAC_512`` \n \n + Asymmetric RSA key pairs\n + ``RSA_2048`` \n + ``RSA_3072`` \n + ``RSA_4096`` \n \n + Asymmetric NIST-recommended elliptic curve key pairs\n + ``ECC_NIST_P256`` (secp256r1)\n + ``ECC_NIST_P384`` (secp384r1)\n + ``ECC_NIST_P521`` (secp521r1)\n \n + Other asymmetric elliptic curve key pairs\n + ``ECC_SECG_P256K1`` (secp256k1), commonly used for cryptocurrencies.\n \n + SM2 key pairs (China Regions only)\n + ``SM2``", + "description": "Specifies the type of KMS key to create. The default value, ``SYMMETRIC_DEFAULT``, creates a KMS key with a 256-bit symmetric key for encryption and decryption. In China Regions, ``SYMMETRIC_DEFAULT`` creates a 128-bit symmetric key that uses SM4 encryption. You can't change the ``KeySpec`` value after the KMS key is created. For help choosing a key spec for your KMS key, see [Choosing a KMS key type](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose.html) in the *Developer Guide*.\n The ``KeySpec`` property determines the type of key material in the KMS key and the algorithms that the KMS key supports. To further restrict the algorithms that can be used with the KMS key, use a condition key in its key policy or IAM policy. For more information, see [condition keys](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms) in the *Developer Guide*.\n If you change the value of the ``KeySpec`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value.\n [services that are integrated with](https://docs.aws.amazon.com/kms/features/#AWS_Service_Integration) use symmetric encryption KMS keys to protect your data. These services do not support encryption with asymmetric KMS keys. For help determining whether a KMS key is asymmetric, see [Identifying asymmetric KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html) in the *Developer Guide*.\n KMS supports the following key specs for KMS keys:\n + Symmetric encryption key (default)\n + ``SYMMETRIC_DEFAULT`` (AES-256-GCM)\n \n + HMAC keys (symmetric)\n + ``HMAC_224`` \n + ``HMAC_256`` \n + ``HMAC_384`` \n + ``HMAC_512`` \n \n + Asymmetric RSA key pairs (encryption and decryption *or* signing and verification)\n + ``RSA_2048`` \n + ``RSA_3072`` \n + ``RSA_4096`` \n \n + Asymmetric NIST-recommended elliptic curve key pairs (signing and verification *or* deriving shared secrets)\n + ``ECC_NIST_P256`` (secp256r1)\n + ``ECC_NIST_P384`` (secp384r1)\n + ``ECC_NIST_P521`` (secp521r1)\n \n + Other asymmetric elliptic curve key pairs (signing and verification)\n + ``ECC_SECG_P256K1`` (secp256k1), commonly used for cryptocurrencies.\n \n + SM2 key pairs (encryption and decryption *or* signing and verification *or* deriving shared secrets)\n + ``SM2`` (China Regions only)", "type": "string", "default": "SYMMETRIC_DEFAULT", "enum": [ diff --git a/internal/service/cloudformation/schemas/AWS_KMS_ReplicaKey.json b/internal/service/cloudformation/schemas/AWS_KMS_ReplicaKey.json index fcbacdcb7..c92411086 100644 --- a/internal/service/cloudformation/schemas/AWS_KMS_ReplicaKey.json +++ b/internal/service/cloudformation/schemas/AWS_KMS_ReplicaKey.json @@ -3,6 +3,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, + "tagProperty": "/properties/Tags", "cloudFormationSystemTags": false }, "typeName": "AWS::KMS::ReplicaKey", diff --git a/internal/service/cloudformation/schemas/AWS_KinesisFirehose_DeliveryStream.json b/internal/service/cloudformation/schemas/AWS_KinesisFirehose_DeliveryStream.json index 464f1612a..051fc6f40 100644 --- a/internal/service/cloudformation/schemas/AWS_KinesisFirehose_DeliveryStream.json +++ b/internal/service/cloudformation/schemas/AWS_KinesisFirehose_DeliveryStream.json @@ -246,6 +246,9 @@ "maxLength": 255, "pattern": "[a-zA-Z0-9\\._\\-]+" }, + "ReadFromTimestamp": { + "type": "string" + }, "AuthenticationConfiguration": { "$ref": "#/definitions/AuthenticationConfiguration" } diff --git a/internal/service/cloudformation/schemas/AWS_Lambda_Function.json b/internal/service/cloudformation/schemas/AWS_Lambda_Function.json index 62e4c684f..eb25500ad 100644 --- a/internal/service/cloudformation/schemas/AWS_Lambda_Function.json +++ b/internal/service/cloudformation/schemas/AWS_Lambda_Function.json @@ -258,6 +258,11 @@ "additionalProperties": false, "type": "object", "properties": { + "SourceKMSKeyArn": { + "pattern": "^(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()$", + "description": "", + "type": "string" + }, "S3ObjectVersion": { "minLength": 1, "description": "For versioned objects, the version of the deployment package object to use.", diff --git a/internal/service/cloudformation/schemas/AWS_Logs_DeliveryDestination.json b/internal/service/cloudformation/schemas/AWS_Logs_DeliveryDestination.json index f3f17b1b0..4430b06ef 100644 --- a/internal/service/cloudformation/schemas/AWS_Logs_DeliveryDestination.json +++ b/internal/service/cloudformation/schemas/AWS_Logs_DeliveryDestination.json @@ -69,7 +69,7 @@ "$ref": "#/definitions/Arn" }, "DestinationResourceArn": { - "description": "The ARN of the AWS resource that will receive the logs.", + "description": "The ARN of the Amazon Web Services destination that this delivery destination represents. That Amazon Web Services destination can be a log group in CloudWatch Logs, an Amazon S3 bucket, or a delivery stream in Firehose.", "$ref": "#/definitions/Arn" }, "Tags": { diff --git a/internal/service/cloudformation/schemas/AWS_Logs_DeliverySource.json b/internal/service/cloudformation/schemas/AWS_Logs_DeliverySource.json index 21d9632b4..94ee8dfff 100644 --- a/internal/service/cloudformation/schemas/AWS_Logs_DeliverySource.json +++ b/internal/service/cloudformation/schemas/AWS_Logs_DeliverySource.json @@ -148,4 +148,3 @@ "tagProperty": "/properties/Tags" } } - diff --git a/internal/service/cloudformation/schemas/AWS_MediaLive_Multiplex.json b/internal/service/cloudformation/schemas/AWS_MediaLive_Multiplex.json index 7e3f6a78c..e3d751794 100644 --- a/internal/service/cloudformation/schemas/AWS_MediaLive_Multiplex.json +++ b/internal/service/cloudformation/schemas/AWS_MediaLive_Multiplex.json @@ -139,7 +139,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "medialive:CreateTags", + "medialive:DeleteTags" + ] }, "additionalProperties": false, "required": [ diff --git a/internal/service/cloudformation/schemas/AWS_MediaLive_Multiplexprogram.json b/internal/service/cloudformation/schemas/AWS_MediaLive_Multiplexprogram.json index 47768b475..acb5ae754 100644 --- a/internal/service/cloudformation/schemas/AWS_MediaLive_Multiplexprogram.json +++ b/internal/service/cloudformation/schemas/AWS_MediaLive_Multiplexprogram.json @@ -239,6 +239,9 @@ "/properties/ProgramName", "/properties/MultiplexId" ], + "readOnlyProperties": [ + "/properties/ChannelId" + ], "writeOnlyProperties": [ "/properties/PreferredChannelPipeline" ], diff --git a/internal/service/cloudformation/schemas/AWS_NetworkFirewall_LoggingConfiguration.json b/internal/service/cloudformation/schemas/AWS_NetworkFirewall_LoggingConfiguration.json index 9c1d99707..715aed4be 100644 --- a/internal/service/cloudformation/schemas/AWS_NetworkFirewall_LoggingConfiguration.json +++ b/internal/service/cloudformation/schemas/AWS_NetworkFirewall_LoggingConfiguration.json @@ -35,7 +35,8 @@ "type": "string", "enum": [ "ALERT", - "FLOW" + "FLOW", + "TLS" ] }, "LogDestinationType": { diff --git a/internal/service/cloudformation/schemas/AWS_NetworkManager_ConnectAttachment.json b/internal/service/cloudformation/schemas/AWS_NetworkManager_ConnectAttachment.json index 3d5e8c7f8..1c3a0f3ab 100644 --- a/internal/service/cloudformation/schemas/AWS_NetworkManager_ConnectAttachment.json +++ b/internal/service/cloudformation/schemas/AWS_NetworkManager_ConnectAttachment.json @@ -47,6 +47,14 @@ "description": "The attachment to move from one segment to another.", "$ref": "#/definitions/ProposedSegmentChange" }, + "NetworkFunctionGroupName": { + "description": "The name of the network function group attachment.", + "type": "string" + }, + "ProposedNetworkFunctionGroupChange": { + "description": "The attachment to move from one network function group to another.", + "$ref": "#/definitions/ProposedNetworkFunctionGroupChange" + }, "Tags": { "description": "Tags for the attachment.", "type": "array", @@ -98,6 +106,30 @@ }, "additionalProperties": false }, + "ProposedNetworkFunctionGroupChange": { + "description": "The attachment to move from one network function group to another.", + "type": "object", + "properties": { + "Tags": { + "description": "The key-value tags that changed for the network function group.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + } + }, + "AttachmentPolicyRuleNumber": { + "description": "The rule number in the policy document that applies to this change.", + "type": "integer" + }, + "NetworkFunctionGroupName": { + "description": "The name of the network function group to change.", + "type": "string" + } + }, + "additionalProperties": false + }, "Tag": { "description": "A key-value pair to associate with a resource.", "type": "object", diff --git a/internal/service/cloudformation/schemas/AWS_NetworkManager_CoreNetwork.json b/internal/service/cloudformation/schemas/AWS_NetworkManager_CoreNetwork.json index e3bcd25d8..06b699eb0 100644 --- a/internal/service/cloudformation/schemas/AWS_NetworkManager_CoreNetwork.json +++ b/internal/service/cloudformation/schemas/AWS_NetworkManager_CoreNetwork.json @@ -39,6 +39,14 @@ "$ref": "#/definitions/CoreNetworkSegment" } }, + "NetworkFunctionGroups": { + "description": "The network function groups within a core network.", + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CoreNetworkNetworkFunctionGroup" + } + }, "Edges": { "description": "The edges within a core network.", "type": "array", @@ -88,6 +96,46 @@ }, "additionalProperties": false }, + "CoreNetworkNetworkFunctionGroup": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Name of network function group" + }, + "EdgeLocations": { + "type": "array", + "insertionOrder": false, + "items": { + "type": "string", + "description": "The Regions where the edges are located." + } + }, + "Segments": { + "type": "object", + "properties": { + "SendTo": { + "type": "array", + "insertionOrder": false, + "items": { + "type": "string", + "description": "The send-to segments." + } + }, + "SendVia": { + "type": "array", + "insertionOrder": false, + "items": { + "type": "string", + "description": "The send-via segments." + } + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, "CoreNetworkEdge": { "type": "object", "properties": { @@ -148,6 +196,7 @@ "/properties/CreatedAt", "/properties/State", "/properties/Segments", + "/properties/NetworkFunctionGroups", "/properties/Edges" ], "createOnlyProperties": [ diff --git a/internal/service/cloudformation/schemas/AWS_NetworkManager_SiteToSiteVpnAttachment.json b/internal/service/cloudformation/schemas/AWS_NetworkManager_SiteToSiteVpnAttachment.json index f74bb26b9..9911fd59e 100644 --- a/internal/service/cloudformation/schemas/AWS_NetworkManager_SiteToSiteVpnAttachment.json +++ b/internal/service/cloudformation/schemas/AWS_NetworkManager_SiteToSiteVpnAttachment.json @@ -47,6 +47,14 @@ "description": "The attachment to move from one segment to another.", "$ref": "#/definitions/ProposedSegmentChange" }, + "NetworkFunctionGroupName": { + "description": "The name of the network function group attachment.", + "type": "string" + }, + "ProposedNetworkFunctionGroupChange": { + "description": "The attachment to move from one network function group to another.", + "$ref": "#/definitions/ProposedNetworkFunctionGroupChange" + }, "Tags": { "description": "Tags for the attachment.", "type": "array", @@ -94,6 +102,30 @@ }, "additionalProperties": false }, + "ProposedNetworkFunctionGroupChange": { + "description": "The attachment to move from one network function group to another.", + "type": "object", + "properties": { + "Tags": { + "description": "The key-value tags that changed for the network function group.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + } + }, + "AttachmentPolicyRuleNumber": { + "description": "The rule number in the policy document that applies to this change.", + "type": "integer" + }, + "NetworkFunctionGroupName": { + "description": "The name of the network function group to change.", + "type": "string" + } + }, + "additionalProperties": false + }, "Tag": { "description": "A key-value pair to associate with a resource.", "type": "object", diff --git a/internal/service/cloudformation/schemas/AWS_NetworkManager_TransitGatewayRouteTableAttachment.json b/internal/service/cloudformation/schemas/AWS_NetworkManager_TransitGatewayRouteTableAttachment.json index b0ee08d6b..083d67e1c 100644 --- a/internal/service/cloudformation/schemas/AWS_NetworkManager_TransitGatewayRouteTableAttachment.json +++ b/internal/service/cloudformation/schemas/AWS_NetworkManager_TransitGatewayRouteTableAttachment.json @@ -27,6 +27,30 @@ }, "additionalProperties": false }, + "ProposedNetworkFunctionGroupChange": { + "description": "The attachment to move from one network function group to another.", + "type": "object", + "properties": { + "Tags": { + "description": "The key-value tags that changed for the network function group.", + "type": "array", + "insertionOrder": false, + "uniqueItems": true, + "items": { + "$ref": "#/definitions/Tag" + } + }, + "AttachmentPolicyRuleNumber": { + "description": "The rule number in the policy document that applies to this change.", + "type": "integer" + }, + "NetworkFunctionGroupName": { + "description": "The name of the network function group to change.", + "type": "string" + } + }, + "additionalProperties": false + }, "Tag": { "description": "A key-value pair to associate with a resource.", "type": "object", @@ -101,6 +125,14 @@ "description": "The attachment to move from one segment to another.", "$ref": "#/definitions/ProposedSegmentChange" }, + "NetworkFunctionGroupName": { + "description": "The name of the network function group attachment.", + "type": "string" + }, + "ProposedNetworkFunctionGroupChange": { + "description": "The attachment to move from one network function group to another.", + "$ref": "#/definitions/ProposedNetworkFunctionGroupChange" + }, "CreatedAt": { "description": "Creation time of the attachment.", "type": "string" diff --git a/internal/service/cloudformation/schemas/AWS_NetworkManager_VpcAttachment.json b/internal/service/cloudformation/schemas/AWS_NetworkManager_VpcAttachment.json index fe1ee655c..1e80b688a 100644 --- a/internal/service/cloudformation/schemas/AWS_NetworkManager_VpcAttachment.json +++ b/internal/service/cloudformation/schemas/AWS_NetworkManager_VpcAttachment.json @@ -51,6 +51,14 @@ "description": "The attachment to move from one segment to another.", "$ref": "#/definitions/ProposedSegmentChange" }, + "NetworkFunctionGroupName": { + "description": "The name of the network function group attachment.", + "type": "string" + }, + "ProposedNetworkFunctionGroupChange": { + "description": "The attachment to move from one network function group to another.", + "$ref": "#/definitions/ProposedNetworkFunctionGroupChange" + }, "Tags": { "description": "Tags for the attachment.", "type": "array", @@ -141,6 +149,30 @@ } }, "additionalProperties": false + }, + "ProposedNetworkFunctionGroupChange": { + "description": "The attachment to move from one network function group to another.", + "type": "object", + "properties": { + "Tags": { + "description": "The key-value tags that changed for the network function group.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + } + }, + "AttachmentPolicyRuleNumber": { + "description": "The rule number in the policy document that applies to this change.", + "type": "integer" + }, + "NetworkFunctionGroupName": { + "description": "The name of the network function group to change.", + "type": "string" + } + }, + "additionalProperties": false } }, "tagging": { @@ -171,6 +203,7 @@ "/properties/EdgeLocation", "/properties/AttachmentPolicyRuleNumber", "/properties/SegmentName", + "/properties/NetworkFunctionGroupName", "/properties/ResourceArn" ], "primaryIdentifier": [ diff --git a/internal/service/cloudformation/schemas/AWS_OSIS_Pipeline.json b/internal/service/cloudformation/schemas/AWS_OSIS_Pipeline.json index db48cf4cb..279491e98 100644 --- a/internal/service/cloudformation/schemas/AWS_OSIS_Pipeline.json +++ b/internal/service/cloudformation/schemas/AWS_OSIS_Pipeline.json @@ -114,6 +114,26 @@ "CUSTOMER", "SERVICE" ] + }, + "VpcAttachmentOptions": { + "type": "object", + "description": "Options for attaching a VPC to the pipeline.", + "properties": { + "AttachToVpc": { + "type": "boolean", + "description": "Whether the pipeline should be attached to the provided VPC" + }, + "CidrBlock": { + "type": "string", + "description": "The CIDR block to be reserved for OpenSearch Ingestion to create elastic network interfaces (ENIs).", + "pattern": "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/(3[0-2]|[12]?[0-9])$" + } + }, + "required": [ + "AttachToVpc", + "CidrBlock" + ], + "additionalProperties": false } }, "required": [ diff --git a/internal/service/cloudformation/schemas/AWS_QBusiness_Application.json b/internal/service/cloudformation/schemas/AWS_QBusiness_Application.json index 76ea7d53a..25c566603 100644 --- a/internal/service/cloudformation/schemas/AWS_QBusiness_Application.json +++ b/internal/service/cloudformation/schemas/AWS_QBusiness_Application.json @@ -189,7 +189,8 @@ "sso:DeleteApplication", "sso:PutApplicationAccessScope", "sso:PutApplicationAuthenticationMethod", - "sso:PutApplicationGrant" + "sso:PutApplicationGrant", + "sso:DescribeInstance" ] }, "read": { @@ -210,7 +211,8 @@ "sso:DeleteApplication", "sso:PutApplicationAccessScope", "sso:PutApplicationAuthenticationMethod", - "sso:PutApplicationGrant" + "sso:PutApplicationGrant", + "sso:DescribeInstance" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json b/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json index 2c23f419c..bbefe0f7e 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json @@ -1,6 +1,6 @@ { "typeName": "AWS::RDS::DBCluster", - "description": "The ``AWS::RDS::DBCluster`` resource creates an Amazon Aurora DB cluster or Multi-AZ DB cluster.\n For more information about creating an Aurora DB cluster, see [Creating an Amazon Aurora DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) in the *Amazon Aurora User Guide*.\n For more information about creating a Multi-AZ DB cluster, see [Creating a Multi-AZ DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/create-multi-az-db-cluster.html) in the *Amazon RDS User Guide*.\n You can only create this resource in AWS Regions where Amazon Aurora or Multi-AZ DB clusters are supported.\n *Updating DB clusters* \n When properties labeled \"*Update requires:* [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\" are updated, AWS CloudFormation first creates a replacement DB cluster, then changes references from other dependent resources to point to the replacement DB cluster, and finally deletes the old DB cluster.\n We highly recommend that you take a snapshot of the database before updating the stack. If you don't, you lose the data when AWS CloudFormation replaces your DB cluster. To preserve your data, perform the following procedure:\n 1. Deactivate any applications that are using the DB cluster so that there's no activity on the DB instance.\n 1. Create a snapshot of the DB cluster. For more information, see [Creating a DB Cluster Snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_CreateSnapshotCluster.html).\n 1. If you want to restore your DB cluster using a DB cluster snapshot, modify the updated template with your DB cluster changes and add the ``SnapshotIdentifier`` property with the ID of the DB cluster snapshot that you want to use.\n After you restore a DB cluster with a ``SnapshotIdentifier`` property, you must specify the same ``SnapshotIdentifier`` property for any future updates to the DB cluster. When you specify this property for an update, the DB cluster is not restored from the DB cluster snapshot again, and the data in the database is not changed. However, if you don't specify the ``SnapshotIdentifier`` property, an empty DB cluster is created, and the original DB cluster is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB cluster is restored from the specified ``SnapshotIdentifier`` property, and the original DB cluster is deleted.\n 1. Update the stack.\n \n Currently, when you are updating the stack for an Aurora Serverless DB cluster, you can't include changes to any other properties when you specify one of the following properties: ``PreferredBackupWindow``, ``PreferredMaintenanceWindow``, and ``Port``. This limitation doesn't apply to provisioned DB clusters.\n For more information about updating other properties of this resource, see ``ModifyDBCluster``. For more information about updating stacks, see [CloudFormation Stacks Updates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html).\n *Deleting DB clusters* \n The default ``DeletionPolicy`` for ``AWS::RDS::DBCluster`` resources is ``Snapshot``. For more information about how AWS CloudFormation deletes resources, see [DeletionPolicy Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html).", + "description": "The ``AWS::RDS::DBCluster`` resource creates an Amazon Aurora DB cluster or Multi-AZ DB cluster.\n For more information about creating an Aurora DB cluster, see [Creating an Amazon Aurora DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) in the *Amazon Aurora User Guide*.\n For more information about creating a Multi-AZ DB cluster, see [Creating a Multi-AZ DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/create-multi-az-db-cluster.html) in the *Amazon RDS User Guide*.\n You can only create this resource in AWS Regions where Amazon Aurora or Multi-AZ DB clusters are supported.\n *Updating DB clusters* \n When properties labeled \"*Update requires:* [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\" are updated, AWS CloudFormation first creates a replacement DB cluster, then changes references from other dependent resources to point to the replacement DB cluster, and finally deletes the old DB cluster.\n We highly recommend that you take a snapshot of the database before updating the stack. If you don't, you lose the data when AWS CloudFormation replaces your DB cluster. To preserve your data, perform the following procedure:\n 1. Deactivate any applications that are using the DB cluster so that there's no activity on the DB instance.\n 1. Create a snapshot of the DB cluster. For more information, see [Creating a DB cluster snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_CreateSnapshotCluster.html).\n 1. If you want to restore your DB cluster using a DB cluster snapshot, modify the updated template with your DB cluster changes and add the ``SnapshotIdentifier`` property with the ID of the DB cluster snapshot that you want to use.\n After you restore a DB cluster with a ``SnapshotIdentifier`` property, you must specify the same ``SnapshotIdentifier`` property for any future updates to the DB cluster. When you specify this property for an update, the DB cluster is not restored from the DB cluster snapshot again, and the data in the database is not changed. However, if you don't specify the ``SnapshotIdentifier`` property, an empty DB cluster is created, and the original DB cluster is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB cluster is restored from the specified ``SnapshotIdentifier`` property, and the original DB cluster is deleted.\n 1. Update the stack.\n \n Currently, when you are updating the stack for an Aurora Serverless DB cluster, you can't include changes to any other properties when you specify one of the following properties: ``PreferredBackupWindow``, ``PreferredMaintenanceWindow``, and ``Port``. This limitation doesn't apply to provisioned DB clusters.\n For more information about updating other properties of this resource, see ``ModifyDBCluster``. For more information about updating stacks, see [CloudFormation Stacks Updates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html).\n *Deleting DB clusters* \n The default ``DeletionPolicy`` for ``AWS::RDS::DBCluster`` resources is ``Snapshot``. For more information about how AWS CloudFormation deletes resources, see [DeletionPolicy Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html).", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", "properties": { "Endpoint": { @@ -36,7 +36,7 @@ "type": "boolean" }, "BacktrackWindow": { - "description": "The target backtrack window, in seconds. To disable backtracking, set this value to 0. \n Currently, Backtrack is only supported for Aurora MySQL DB clusters.\n Default: 0\n Constraints:\n + If specified, this value must be set to a number from 0 to 259,200 (72 hours).\n \n Valid for: Aurora MySQL DB clusters only", + "description": "The target backtrack window, in seconds. To disable backtracking, set this value to ``0``.\n Valid for Cluster Type: Aurora MySQL DB clusters only\n Default: ``0`` \n Constraints:\n + If specified, this value must be set to a number from 0 to 259,200 (72 hours).", "minimum": 0, "type": "integer" }, @@ -225,7 +225,7 @@ "type": "string" }, "RestoreType": { - "description": "The type of restore to be performed. You can specify one of the following values:\n + ``full-copy`` - The new DB cluster is restored as a full copy of the source DB cluster.\n + ``copy-on-write`` - The new DB cluster is restored as a clone of the source DB cluster.\n \n If you don't specify a ``RestoreType`` value, then the new DB cluster is restored as a full copy of the source DB cluster.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + "description": "The type of restore to be performed. You can specify one of the following values:\n + ``full-copy`` - The new DB cluster is restored as a full copy of the source DB cluster.\n + ``copy-on-write`` - The new DB cluster is restored as a clone of the source DB cluster.\n \n If you don't specify a ``RestoreType`` value, then the new DB cluster is restored as a full copy of the source DB cluster.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", "type": "string", "default": "full-copy" }, @@ -266,7 +266,7 @@ "maxItems": 50, "uniqueItems": true, "insertionOrder": false, - "description": "An optional array of key-value pairs to apply to this DB cluster.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + "description": "Tags to assign to the DB cluster.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", "items": { "$ref": "#/definitions/Tag" } @@ -376,7 +376,7 @@ } }, "Tag": { - "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", + "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", "type": "object", "additionalProperties": false, "properties": { diff --git a/internal/service/cloudformation/schemas/AWS_RDS_DBClusterParameterGroup.json b/internal/service/cloudformation/schemas/AWS_RDS_DBClusterParameterGroup.json index 8074f3855..22e48ef89 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_DBClusterParameterGroup.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_DBClusterParameterGroup.json @@ -1,10 +1,10 @@ { "typeName": "AWS::RDS::DBClusterParameterGroup", - "description": "The ``AWS::RDS::DBClusterParameterGroup`` resource creates a new Amazon RDS DB cluster parameter group.\n For information about configuring parameters for Amazon Aurora DB clusters, see [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*.\n If you apply a parameter group to a DB cluster, then its DB instances might need to reboot. This can result in an outage while the DB instances are rebooting.\n If you apply a change to parameter group associated with a stopped DB cluster, then the update stack waits until the DB cluster is started.", + "description": "The ``AWS::RDS::DBClusterParameterGroup`` resource creates a new Amazon RDS DB cluster parameter group.\n For information about configuring parameters for Amazon Aurora DB clusters, see [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*.\n If you apply a parameter group to a DB cluster, then its DB instances might need to reboot. This can result in an outage while the DB instances are rebooting.\n If you apply a change to parameter group associated with a stopped DB cluster, then the updated stack waits until the DB cluster is started.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", "definitions": { "Tag": { - "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", + "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", "type": "object", "properties": { "Key": { @@ -28,11 +28,11 @@ }, "properties": { "Description": { - "description": "A friendly description for this DB cluster parameter group.", + "description": "The description for the DB cluster parameter group.", "type": "string" }, "Family": { - "description": "The DB cluster parameter group family name. A DB cluster parameter group can be associated with one and only one DB cluster parameter group family, and can be applied only to a DB cluster running a DB engine and engine version compatible with that DB cluster parameter group family.\n The DB cluster parameter group family can't be changed when updating a DB cluster parameter group.\n To list all of the available parameter group families, use the following command:\n ``aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\"`` \n The output contains duplicates.\n For more information, see ``CreateDBClusterParameterGroup``.", + "description": "The DB cluster parameter group family name. A DB cluster parameter group can be associated with one and only one DB cluster parameter group family, and can be applied only to a DB cluster running a database engine and engine version compatible with that DB cluster parameter group family.\n *Aurora MySQL* \n Example: ``aurora-mysql5.7``, ``aurora-mysql8.0`` \n *Aurora PostgreSQL* \n Example: ``aurora-postgresql14`` \n *RDS for MySQL* \n Example: ``mysql8.0`` \n *RDS for PostgreSQL* \n Example: ``postgres13`` \n To list all of the available parameter group families for a DB engine, use the following command:\n ``aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\" --engine `` \n For example, to list all of the available parameter group families for the Aurora PostgreSQL DB engine, use the following command:\n ``aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\" --engine aurora-postgresql`` \n The output contains duplicates.\n The following are the valid DB engine values:\n + ``aurora-mysql`` \n + ``aurora-postgresql`` \n + ``mysql`` \n + ``postgres``", "type": "string" }, "Parameters": { @@ -42,10 +42,10 @@ "DBClusterParameterGroupName": { "type": "string", "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9])*$", - "description": "The name of the DB cluster parameter group.\n Constraints:\n + Must not match the name of an existing DB cluster parameter group.\n \n If you don't specify a value for ``DBClusterParameterGroupName`` property, a name is automatically created for the DB cluster parameter group.\n This value is stored as a lowercase string." + "description": "The name of the DB cluster parameter group.\n Constraints:\n + Must not match the name of an existing DB cluster parameter group.\n \n This value is stored as a lowercase string." }, "Tags": { - "description": "An optional array of key-value pairs to apply to this DB cluster parameter group.", + "description": "Tags to assign to the DB cluster parameter group.", "type": "array", "maxItems": 50, "insertionOrder": false, diff --git a/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json b/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json index 4660d1854..a55dd97dd 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json @@ -1,6 +1,6 @@ { "typeName": "AWS::RDS::DBInstance", - "description": "The ``AWS::RDS::DBInstance`` resource creates an Amazon DB instance. The new DB instance can be an RDS DB instance, or it can be a DB instance in an Aurora DB cluster.\n For more information about creating an RDS DB instance, see [Creating an Amazon RDS DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html) in the *Amazon RDS User Guide*.\n For more information about creating a DB instance in an Aurora DB cluster, see [Creating an Amazon Aurora DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) in the *Amazon Aurora User Guide*.\n If you import an existing DB instance, and the template configuration doesn't match the actual configuration of the DB instance, AWS CloudFormation applies the changes in the template during the import operation.\n If a DB instance is deleted or replaced during an update, AWS CloudFormation deletes all automated snapshots. However, it retains manual DB snapshots. During an update that requires replacement, you can apply a stack policy to prevent DB instances from being replaced. For more information, see [Prevent Updates to Stack Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html).\n *Updating DB instances* \n When properties labeled \"*Update requires:* [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\" are updated, AWS CloudFormation first creates a replacement DB instance, then changes references from other dependent resources to point to the replacement DB instance, and finally deletes the old DB instance.\n We highly recommend that you take a snapshot of the database before updating the stack. If you don't, you lose the data when AWS CloudFormation replaces your DB instance. To preserve your data, perform the following procedure:\n 1. Deactivate any applications that are using the DB instance so that there's no activity on the DB instance.\n 1. Create a snapshot of the DB instance. For more information, see [Creating a DB Snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html).\n 1. If you want to restore your instance using a DB snapshot, modify the updated template with your DB instance changes and add the ``DBSnapshotIdentifier`` property with the ID of the DB snapshot that you want to use.\n After you restore a DB instance with a ``DBSnapshotIdentifier`` property, you can delete the ``DBSnapshotIdentifier`` property. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. However, if you don't specify the ``DBSnapshotIdentifier`` property, an empty DB instance is created, and the original DB instance is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified ``DBSnapshotIdentifier`` property, and the original DB instance is deleted.\n 1. Update the stack.\n \n For more information about updating other properties of this resource, see ``ModifyDBInstance``. For more information about updating stacks, see [CloudFormation Stacks Updates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html).\n *Deleting DB instances* \n For DB instances that are part of an Aurora DB cluster, you can set a deletion policy for your DB instance to control how AWS CloudFormation handles the DB instance when the stack is deleted. For Amazon RDS DB instances, you can choose to *retain* the DB instance, to *delete* the DB instance, or to *create a snapshot* of the DB instance. The default AWS CloudFormation behavior depends on the ``DBClusterIdentifier`` property:\n 1. For ``AWS::RDS::DBInstance`` resources that don't specify the ``DBClusterIdentifier`` property, AWS CloudFormation saves a snapshot of the DB instance.\n 1. For ``AWS::RDS::DBInstance`` resources that do specify the ``DBClusterIdentifier`` property, AWS CloudFormation deletes the DB instance.\n \n For more information, see [DeletionPolicy Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html).", + "description": "The ``AWS::RDS::DBInstance`` resource creates an Amazon DB instance. The new DB instance can be an RDS DB instance, or it can be a DB instance in an Aurora DB cluster.\n For more information about creating an RDS DB instance, see [Creating an Amazon RDS DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html) in the *Amazon RDS User Guide*.\n For more information about creating a DB instance in an Aurora DB cluster, see [Creating an Amazon Aurora DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) in the *Amazon Aurora User Guide*.\n If you import an existing DB instance, and the template configuration doesn't match the actual configuration of the DB instance, AWS CloudFormation applies the changes in the template during the import operation.\n If a DB instance is deleted or replaced during an update, AWS CloudFormation deletes all automated snapshots. However, it retains manual DB snapshots. During an update that requires replacement, you can apply a stack policy to prevent DB instances from being replaced. For more information, see [Prevent Updates to Stack Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html).\n *Updating DB instances* \n When properties labeled \"*Update requires:* [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\" are updated, AWS CloudFormation first creates a replacement DB instance, then changes references from other dependent resources to point to the replacement DB instance, and finally deletes the old DB instance.\n We highly recommend that you take a snapshot of the database before updating the stack. If you don't, you lose the data when AWS CloudFormation replaces your DB instance. To preserve your data, perform the following procedure:\n 1. Deactivate any applications that are using the DB instance so that there's no activity on the DB instance.\n 1. Create a snapshot of the DB instance. For more information, see [Creating a DB Snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html).\n 1. If you want to restore your instance using a DB snapshot, modify the updated template with your DB instance changes and add the ``DBSnapshotIdentifier`` property with the ID of the DB snapshot that you want to use.\n After you restore a DB instance with a ``DBSnapshotIdentifier`` property, you can delete the ``DBSnapshotIdentifier`` property. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. However, if you don't specify the ``DBSnapshotIdentifier`` property, an empty DB instance is created, and the original DB instance is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified ``DBSnapshotIdentifier`` property, and the original DB instance is deleted.\n 1. Update the stack.\n \n For more information about updating other properties of this resource, see ``ModifyDBInstance``. For more information about updating stacks, see [CloudFormation Stacks Updates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html).\n *Deleting DB instances* \n For DB instances that are part of an Aurora DB cluster, you can set a deletion policy for your DB instance to control how AWS CloudFormation handles the DB instance when the stack is deleted. For Amazon RDS DB instances, you can choose to *retain* the DB instance, to *delete* the DB instance, or to *create a snapshot* of the DB instance. The default AWS CloudFormation behavior depends on the ``DBClusterIdentifier`` property:\n 1. For ``AWS::RDS::DBInstance`` resources that don't specify the ``DBClusterIdentifier`` property, AWS CloudFormation saves a snapshot of the DB instance.\n 1. For ``AWS::RDS::DBInstance`` resources that do specify the ``DBClusterIdentifier`` property, AWS CloudFormation deletes the DB instance.\n \n For more information, see [DeletionPolicy Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html).", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "definitions": { "CertificateDetails": { @@ -77,7 +77,7 @@ "description": "The ``ProcessorFeature`` property type specifies the processor features of a DB instance class." }, "Tag": { - "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", + "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", "type": "object", "additionalProperties": false, "properties": { @@ -137,7 +137,7 @@ }, "AutomaticBackupReplicationRegion": { "type": "string", - "description": "" + "description": "The AWS-Region associated with the automated backup." }, "AutomaticBackupReplicationKmsKeyId": { "type": "string", @@ -179,7 +179,7 @@ }, "DBClusterIdentifier": { "type": "string", - "description": "The identifier of the DB cluster that the instance will belong to." + "description": "The identifier of the DB cluster that this DB instance will belong to.\n This setting doesn't apply to RDS Custom DB instances." }, "DBClusterSnapshotIdentifier": { "type": "string", @@ -226,7 +226,7 @@ }, "DBSubnetGroupName": { "type": "string", - "description": "A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC. \n If there's no DB subnet group, then the DB instance isn't a VPC DB instance.\n For more information about using Amazon RDS in a VPC, see [Using Amazon RDS with Amazon Virtual Private Cloud (VPC)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*. \n *Amazon Aurora* \n Not applicable. The DB subnet group is managed by the DB cluster. If specified, the setting must match the DB cluster setting." + "description": "A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC. \n If there's no DB subnet group, then the DB instance isn't a VPC DB instance.\n For more information about using Amazon RDS in a VPC, see [Amazon VPC and Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*. \n This setting doesn't apply to Amazon Aurora DB instances. The DB subnet group is managed by the DB cluster. If specified, the setting must match the DB cluster setting." }, "DBSystemId": { "type": "string", @@ -242,7 +242,7 @@ }, "DeletionProtection": { "type": "boolean", - "description": "A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. For more information, see [Deleting a DB Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html). \n *Amazon Aurora* \n Not applicable. You can enable or disable deletion protection for the DB cluster. For more information, see ``CreateDBCluster``. DB instances in a DB cluster can be deleted even when deletion protection is enabled for the DB cluster." + "description": "Specifies whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection isn't enabled. For more information, see [Deleting a DB Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html).\n This setting doesn't apply to Amazon Aurora DB instances. You can enable or disable deletion protection for the DB cluster. For more information, see ``CreateDBCluster``. DB instances in a DB cluster can be deleted even when deletion protection is enabled for the DB cluster." }, "Domain": { "type": "string", @@ -321,7 +321,7 @@ "MasterUsername": { "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", - "description": "The master user name for the DB instance.\n If you specify the ``SourceDBInstanceIdentifier`` or ``DBSnapshotIdentifier`` property, don't specify this property. The value is inherited from the source DB instance or snapshot.\n When migrating a self-managed Db2 database, we recommend that you use the same master username as your self-managed Db2 instance name.\n *Amazon Aurora* \n Not applicable. The name for the master user is managed by the DB cluster. \n *RDS for Db2* \n Constraints:\n + Must be 1 to 16 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for MariaDB* \n Constraints:\n + Must be 1 to 16 letters or numbers.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for Microsoft SQL Server* \n Constraints:\n + Must be 1 to 128 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for MySQL* \n Constraints:\n + Must be 1 to 16 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for Oracle* \n Constraints:\n + Must be 1 to 30 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for PostgreSQL* \n Constraints:\n + Must be 1 to 63 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.", + "description": "The master user name for the DB instance.\n If you specify the ``SourceDBInstanceIdentifier`` or ``DBSnapshotIdentifier`` property, don't specify this property. The value is inherited from the source DB instance or snapshot.\n When migrating a self-managed Db2 database, we recommend that you use the same master username as your self-managed Db2 instance name.\n *Amazon Aurora* \n Not applicable. The name for the master user is managed by the DB cluster. \n *RDS for Db2* \n Constraints:\n + Must be 1 to 16 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for MariaDB* \n Constraints:\n + Must be 1 to 16 letters or numbers.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for Microsoft SQL Server* \n Constraints:\n + Must be 1 to 128 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for MySQL* \n Constraints:\n + Must be 1 to 16 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for Oracle* \n Constraints:\n + Must be 1 to 30 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for PostgreSQL* \n Constraints:\n + Must be 1 to 63 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.", "minLength": 1, "maxLength": 128 }, @@ -340,7 +340,7 @@ "MonitoringInterval": { "type": "integer", "default": 0, - "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collection of Enhanced Monitoring metrics, specify 0. The default is 0.\n If ``MonitoringRoleArn`` is specified, then you must set ``MonitoringInterval`` to a value other than 0.\n This setting doesn't apply to RDS Custom.\n Valid Values: ``0, 1, 5, 10, 15, 30, 60``" + "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collection of Enhanced Monitoring metrics, specify ``0``.\n If ``MonitoringRoleArn`` is specified, then you must set ``MonitoringInterval`` to a value other than ``0``.\n This setting doesn't apply to RDS Custom DB instances.\n Valid Values: ``0 | 1 | 5 | 10 | 15 | 30 | 60`` \n Default: ``0``" }, "MonitoringRoleArn": { "type": "string", @@ -348,7 +348,7 @@ }, "MultiAZ": { "type": "boolean", - "description": "Specifies whether the database instance is a Multi-AZ DB instance deployment. You can't set the ``AvailabilityZone`` parameter if the ``MultiAZ`` parameter is set to true. \n For more information, see [Multi-AZ deployments for high availability](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html) in the *Amazon RDS User Guide*.\n *Amazon Aurora* \n Not applicable. Amazon Aurora storage is replicated across all of the Availability Zones and doesn't require the ``MultiAZ`` option to be set." + "description": "Specifies whether the DB instance is a Multi-AZ deployment. You can't set the ``AvailabilityZone`` parameter if the DB instance is a Multi-AZ deployment.\n This setting doesn't apply to the following DB instances:\n + Amazon Aurora (DB instance Availability Zones (AZs) are managed by the DB cluster.)\n + RDS Custom" }, "NcharCharacterSetName": { "type": "string", @@ -372,7 +372,7 @@ }, "Port": { "type": "string", - "description": "The port number on which the database accepts connections.\n *Amazon Aurora* \n Not applicable. The port number is managed by the DB cluster.\n *Db2* \n Default value: ``50000``", + "description": "The port number on which the database accepts connections.\n This setting doesn't apply to Aurora DB instances. The port number is managed by the cluster.\n Valid Values: ``1150-65535`` \n Default:\n + RDS for Db2 - ``50000`` \n + RDS for MariaDB - ``3306`` \n + RDS for Microsoft SQL Server - ``1433`` \n + RDS for MySQL - ``3306`` \n + RDS for Oracle - ``1521`` \n + RDS for PostgreSQL - ``5432`` \n \n Constraints:\n + For RDS for Microsoft SQL Server, the value can't be ``1234``, ``1434``, ``3260``, ``3343``, ``3389``, ``47001``, or ``49152-49156``.", "pattern": "^\\d*$" }, "PreferredBackupWindow": { @@ -448,7 +448,7 @@ "items": { "$ref": "#/definitions/Tag" }, - "description": "An optional array of key-value pairs to apply to this DB instance." + "description": "Tags to assign to the DB instance." }, "TdeCredentialArn": { "type": "string", diff --git a/internal/service/cloudformation/schemas/AWS_RDS_DBParameterGroup.json b/internal/service/cloudformation/schemas/AWS_RDS_DBParameterGroup.json index ab7c4f724..57a1e259d 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_DBParameterGroup.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_DBParameterGroup.json @@ -5,7 +5,7 @@ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", "definitions": { "Tag": { - "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", + "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", "type": "object", "properties": { "Key": { @@ -38,15 +38,15 @@ "type": "string" }, "Family": { - "description": "The DB parameter group family name. A DB parameter group can be associated with one and only one DB parameter group family, and can be applied only to a DB instance running a DB engine and engine version compatible with that DB parameter group family.\n The DB parameter group family can't be changed when updating a DB parameter group.\n To list all of the available parameter group families, use the following command:\n ``aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\"`` \n The output contains duplicates.\n For more information, see ``CreateDBParameterGroup``.", + "description": "The DB parameter group family name. A DB parameter group can be associated with one and only one DB parameter group family, and can be applied only to a DB instance running a database engine and engine version compatible with that DB parameter group family.\n To list all of the available parameter group families for a DB engine, use the following command:\n ``aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\" --engine `` \n For example, to list all of the available parameter group families for the MySQL DB engine, use the following command:\n ``aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\" --engine mysql`` \n The output contains duplicates.\n The following are the valid DB engine values:\n + ``aurora-mysql`` \n + ``aurora-postgresql`` \n + ``db2-ae`` \n + ``db2-se`` \n + ``mysql`` \n + ``oracle-ee`` \n + ``oracle-ee-cdb`` \n + ``oracle-se2`` \n + ``oracle-se2-cdb`` \n + ``postgres`` \n + ``sqlserver-ee`` \n + ``sqlserver-se`` \n + ``sqlserver-ex`` \n + ``sqlserver-web``", "type": "string" }, "Parameters": { - "description": "An array of parameter names and values for the parameter update. At least one parameter name and value must be supplied. Subsequent arguments are optional.\n RDS for Db2 requires you to bring your own Db2 license. You must enter your IBM customer ID (``rds.ibm_customer_id``) and site number (``rds.ibm_site_id``) before starting a Db2 instance.\n For more information about DB parameters and DB parameter groups for Amazon RDS DB engines, see [Working with DB Parameter Groups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html) in the *Amazon RDS User Guide*.\n For more information about DB cluster and DB instance parameters and parameter groups for Amazon Aurora DB engines, see [Working with DB Parameter Groups and DB Cluster Parameter Groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*.\n AWS CloudFormation doesn't support specifying an apply method for each individual parameter. The default apply method for each parameter is used.", + "description": "An array of parameter names and values for the parameter update. You must specify at least one parameter name and value.\n For more information about parameter groups, see [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html) in the *Amazon RDS User Guide*, or [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*.\n AWS CloudFormation doesn't support specifying an apply method for each individual parameter. The default apply method for each parameter is used.", "type": "object" }, "Tags": { - "description": "An optional array of key-value pairs to apply to this DB parameter group.\n Currently, this is the only property that supports drift detection.", + "description": "Tags to assign to the DB parameter group.", "type": "array", "maxItems": 50, "uniqueItems": false, diff --git a/internal/service/cloudformation/schemas/AWS_RDS_DBSubnetGroup.json b/internal/service/cloudformation/schemas/AWS_RDS_DBSubnetGroup.json index 02e941611..faed1288a 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_DBSubnetGroup.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_DBSubnetGroup.json @@ -9,7 +9,7 @@ }, "DBSubnetGroupName": { "type": "string", - "description": "The name for the DB subnet group. This value is stored as a lowercase string.\n Constraints: Must contain no more than 255 lowercase alphanumeric characters or hyphens. Must not be \"Default\".\n Example: ``mysubnetgroup``" + "description": "The name for the DB subnet group. This value is stored as a lowercase string.\n Constraints:\n + Must contain no more than 255 letters, numbers, periods, underscores, spaces, or hyphens.\n + Must not be default.\n + First character must be a letter.\n \n Example: ``mydbsubnetgroup``" }, "SubnetIds": { "type": "array", @@ -24,7 +24,7 @@ "maxItems": 50, "uniqueItems": false, "insertionOrder": false, - "description": "An optional array of key-value pairs to apply to this DB subnet group.", + "description": "Tags to assign to the DB subnet group.", "items": { "$ref": "#/definitions/Tag" } @@ -32,7 +32,7 @@ }, "definitions": { "Tag": { - "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", + "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", "type": "object", "additionalProperties": false, "properties": { diff --git a/internal/service/cloudformation/schemas/AWS_RDS_EventSubscription.json b/internal/service/cloudformation/schemas/AWS_RDS_EventSubscription.json index 818f3c7cb..a186f654b 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_EventSubscription.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_EventSubscription.json @@ -4,7 +4,7 @@ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", "definitions": { "Tag": { - "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", + "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", "type": "object", "properties": { "Key": { @@ -60,7 +60,7 @@ "type": "string" }, "SourceIds": { - "description": "The list of identifiers of the event sources for which events are returned. If not specified, then all sources are included in the response. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens. It can't end with a hyphen or contain two consecutive hyphens.\n Constraints:\n + If a ``SourceIds`` value is supplied, ``SourceType`` must also be provided.\n + If the source type is a DB instance, a ``DBInstanceIdentifier`` value must be supplied.\n + If the source type is a DB cluster, a ``DBClusterIdentifier`` value must be supplied.\n + If the source type is a DB parameter group, a ``DBParameterGroupName`` value must be supplied.\n + If the source type is a DB security group, a ``DBSecurityGroupName`` value must be supplied.\n + If the source type is a DB snapshot, a ``DBSnapshotIdentifier`` value must be supplied.\n + If the source type is a DB cluster snapshot, a ``DBClusterSnapshotIdentifier`` value must be supplied.", + "description": "The list of identifiers of the event sources for which events are returned. If not specified, then all sources are included in the response. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens. It can't end with a hyphen or contain two consecutive hyphens.\n Constraints:\n + If ``SourceIds`` are supplied, ``SourceType`` must also be provided.\n + If the source type is a DB instance, a ``DBInstanceIdentifier`` value must be supplied.\n + If the source type is a DB cluster, a ``DBClusterIdentifier`` value must be supplied.\n + If the source type is a DB parameter group, a ``DBParameterGroupName`` value must be supplied.\n + If the source type is a DB security group, a ``DBSecurityGroupName`` value must be supplied.\n + If the source type is a DB snapshot, a ``DBSnapshotIdentifier`` value must be supplied.\n + If the source type is a DB cluster snapshot, a ``DBClusterSnapshotIdentifier`` value must be supplied.\n + If the source type is an RDS Proxy, a ``DBProxyName`` value must be supplied.", "type": "array", "uniqueItems": true, "insertionOrder": false, @@ -69,7 +69,7 @@ } }, "SourceType": { - "description": "The type of source that is generating the events. For example, if you want to be notified of events generated by a DB instance, set this parameter to ``db-instance``. If this value isn't specified, all events are returned.\n Valid values: ``db-instance`` | ``db-cluster`` | ``db-parameter-group`` | ``db-security-group`` | ``db-snapshot`` | ``db-cluster-snapshot``", + "description": "The type of source that is generating the events. For example, if you want to be notified of events generated by a DB instance, you set this parameter to ``db-instance``. For RDS Proxy events, specify ``db-proxy``. If this value isn't specified, all events are returned.\n Valid Values:``db-instance | db-cluster | db-parameter-group | db-security-group | db-snapshot | db-cluster-snapshot | db-proxy | zero-etl | custom-engine-version | blue-green-deployment``", "type": "string" } }, diff --git a/internal/service/cloudformation/schemas/AWS_RDS_OptionGroup.json b/internal/service/cloudformation/schemas/AWS_RDS_OptionGroup.json index 01b1eab1b..5c9efa9a7 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_OptionGroup.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_OptionGroup.json @@ -8,7 +8,7 @@ "type": "object", "properties": { "DBSecurityGroupMemberships": { - "description": "A list of DBSecurityGroupMembership name strings used for this option.", + "description": "A list of DB security groups used for this option.", "type": "array", "uniqueItems": true, "insertionOrder": false, @@ -37,7 +37,7 @@ "type": "integer" }, "VpcSecurityGroupMemberships": { - "description": "A list of VpcSecurityGroupMembership name strings used for this option.", + "description": "A list of VPC security group names used for this option.", "type": "array", "uniqueItems": true, "insertionOrder": false, @@ -67,7 +67,7 @@ "additionalProperties": false }, "Tag": { - "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", + "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", "type": "object", "additionalProperties": false, "properties": { @@ -107,7 +107,7 @@ "type": "string" }, "OptionConfigurations": { - "description": "A list of options and the settings for each option.", + "description": "A list of all available options for an option group.", "type": "array", "arrayType": "AttributeList", "insertionOrder": false, @@ -117,7 +117,7 @@ }, "Tags": { "type": "array", - "description": "An optional array of key-value pairs to apply to this option group.", + "description": "Tags to assign to the option group.", "insertionOrder": false, "items": { "$ref": "#/definitions/Tag" diff --git a/internal/service/cloudformation/schemas/AWS_Redshift_Cluster.json b/internal/service/cloudformation/schemas/AWS_Redshift_Cluster.json index 34b921e8f..d0ef273c8 100644 --- a/internal/service/cloudformation/schemas/AWS_Redshift_Cluster.json +++ b/internal/service/cloudformation/schemas/AWS_Redshift_Cluster.json @@ -160,6 +160,17 @@ }, "S3KeyPrefix": { "type": "string" + }, + "LogDestinationType": { + "type": "string" + }, + "LogExports": { + "maxItems": 3, + "insertionOrder": false, + "type": "array", + "items": { + "type": "string" + } } } }, diff --git a/internal/service/cloudformation/schemas/AWS_RolesAnywhere_Profile.json b/internal/service/cloudformation/schemas/AWS_RolesAnywhere_Profile.json index b08275e38..937aa33d5 100644 --- a/internal/service/cloudformation/schemas/AWS_RolesAnywhere_Profile.json +++ b/internal/service/cloudformation/schemas/AWS_RolesAnywhere_Profile.json @@ -114,6 +114,9 @@ "items": { "$ref": "#/definitions/AttributeMapping" } + }, + "AcceptRoleSessionName": { + "type": "boolean" } }, "tagging": { diff --git a/internal/service/cloudformation/schemas/AWS_Route53Resolver_ResolverRule.json b/internal/service/cloudformation/schemas/AWS_Route53Resolver_ResolverRule.json index 9c162f799..27952970a 100644 --- a/internal/service/cloudformation/schemas/AWS_Route53Resolver_ResolverRule.json +++ b/internal/service/cloudformation/schemas/AWS_Route53Resolver_ResolverRule.json @@ -28,9 +28,16 @@ "enum": [ "FORWARD", "SYSTEM", - "RECURSIVE" + "RECURSIVE", + "DELEGATE" ] }, + "DelegationRecord": { + "type": "string", + "description": "The name server domain for queries to be delegated to if a query matches the delegation record.", + "minLength": 1, + "maxLength": 256 + }, "Tags": { "type": "array", "description": "An array of key-value pairs to apply to this resource.", @@ -118,7 +125,6 @@ "tagProperty": "/properties/Tags" }, "required": [ - "DomainName", "RuleType" ], "primaryIdentifier": [ diff --git a/internal/service/cloudformation/schemas/AWS_SES_ConfigurationSet.json b/internal/service/cloudformation/schemas/AWS_SES_ConfigurationSet.json index b544c6ff3..8988b84f9 100644 --- a/internal/service/cloudformation/schemas/AWS_SES_ConfigurationSet.json +++ b/internal/service/cloudformation/schemas/AWS_SES_ConfigurationSet.json @@ -12,10 +12,7 @@ "type": "string", "description": "The domain to use for tracking open and click events." } - }, - "required": [ - "CustomRedirectDomain" - ] + } }, "DeliveryOptions": { "description": "An object that defines the dedicated IP pool that is used to send emails that you send using the configuration set.", diff --git a/internal/service/cloudformation/schemas/AWS_SageMaker_ModelPackage.json b/internal/service/cloudformation/schemas/AWS_SageMaker_ModelPackage.json index 492f64874..20b476c5d 100644 --- a/internal/service/cloudformation/schemas/AWS_SageMaker_ModelPackage.json +++ b/internal/service/cloudformation/schemas/AWS_SageMaker_ModelPackage.json @@ -410,6 +410,9 @@ "pattern": "^(https|s3)://([^/]+)/?(.*)$", "maxLength": 1024 }, + "ModelDataSource": { + "$ref": "#/definitions/ModelDataSource" + }, "Framework": { "type": "string", "description": "The machine learning framework of the model package container image." @@ -931,6 +934,118 @@ "Task": { "description": "The machine learning task your model package accomplishes.", "type": "string" + }, + "ModelDataSource": { + "description": "Specifies the location of ML model data to deploy during endpoint creation.", + "type": "object", + "additionalProperties": false, + "properties": { + "S3DataSource": { + "$ref": "#/definitions/S3ModelDataSource" + } + } + }, + "S3ModelDataSource": { + "description": "Specifies the S3 location of ML model data to deploy.", + "type": "object", + "additionalProperties": false, + "properties": { + "S3DataType": { + "description": "Specifies the type of ML model data to deploy.", + "type": "string", + "enum": [ + "S3Prefix", + "S3Object" + ] + }, + "S3Uri": { + "description": "Specifies the S3 path of ML model data to deploy.", + "type": "string", + "maxLength": 1024, + "pattern": "^(https|s3)://([^/]+)/?(.*)$" + }, + "CompressionType": { + "description": "Specifies how the ML model data is prepared.", + "type": "string", + "enum": [ + "None", + "Gzip" + ] + }, + "ModelAccessConfig": { + "$ref": "#/definitions/ModelAccessConfig" + } + }, + "required": [ + "S3DataType", + "S3Uri", + "CompressionType" + ] + }, + "ModelAccessConfig": { + "description": "Specifies the access configuration file for the ML model.", + "type": "object", + "additionalProperties": false, + "properties": { + "AcceptEula": { + "description": "Specifies agreement to the model end-user license agreement (EULA).", + "type": "boolean" + } + }, + "required": [ + "AcceptEula" + ] + }, + "SourceUri": { + "description": "The URI of the source for the model package.", + "type": "string", + "minLength": 0, + "maxLength": 1024, + "pattern": "" + }, + "SecurityConfig": { + "description": "An optional AWS Key Management Service key to encrypt, decrypt, and re-encrypt model package information for regulated workloads with highly sensitive data.", + "type": "object", + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "description": "The AWS KMS Key ID (KMSKeyId) used for encryption of model package information.", + "type": "string", + "maxLength": 2048, + "pattern": "^[a-zA-Z0-9:/_-]*$" + } + }, + "required": [ + "KmsKeyId" + ] + }, + "ModelCard": { + "description": "The model card associated with the model package.", + "type": "object", + "additionalProperties": false, + "properties": { + "ModelCardContent": { + "description": "The content of the model card.", + "type": "string", + "minLength": 0, + "maxLength": 100000, + "pattern": ".*" + }, + "ModelCardStatus": { + "description": "The approval status of the model card within your organization.", + "type": "string", + "enum": [ + "Draft", + "PendingReview", + "Approved", + "Archived" + ] + } + }, + "required": [ + "ModelCardContent", + "ModelCardStatus" + ] } }, "properties": { @@ -1019,6 +1134,15 @@ }, "ModelPackageStatusDetails": { "$ref": "#/definitions/ModelPackageStatusDetails" + }, + "SourceUri": { + "$ref": "#/definitions/SourceUri" + }, + "ModelCard": { + "$ref": "#/definitions/ModelCard" + }, + "SecurityConfig": { + "$ref": "#/definitions/SecurityConfig" } }, "additionalProperties": false, @@ -1046,7 +1170,12 @@ "/properties/DriftCheckBaselines", "/properties/Domain", "/properties/Task", - "/properties/SamplePayloadUrl" + "/properties/SamplePayloadUrl", + "/properties/SecurityConfig" + ], + "conditionalCreateOnlyProperties": [ + "/properties/ModelCard", + "/properties/SourceUri" ], "writeOnlyProperties": [ "/properties/ClientToken", @@ -1070,29 +1199,46 @@ "sagemaker:DescribeTransformJob", "sagemaker:DescribeModelPackage", "sagemaker:ListTags", + "sagemaker:UpdateModelPackage", "iam:PassRole", - "s3:GetObject" + "s3:GetObject", + "s3:ListBucket", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:GenerateDataKey", + "kms:Decrypt" ] }, "read": { "permissions": [ "sagemaker:DescribeModelPackage", - "sagemaker:ListTags" + "sagemaker:ListTags", + "kms:DescribeKey", + "kms:Decrypt" ] }, "update": { "permissions": [ + "ecr:BatchGetImage", "sagemaker:UpdateModelPackage", "sagemaker:DescribeModelPackage", "sagemaker:ListTags", "sagemaker:AddTags", - "sagemaker:DeleteTags" + "sagemaker:DeleteTags", + "s3:GetObject", + "s3:ListBucket", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:GenerateDataKey", + "kms:Decrypt" ] }, "delete": { "permissions": [ "sagemaker:DeleteModelPackage", - "sagemaker:DescribeModelPackage" + "sagemaker:DescribeModelPackage", + "kms:DescribeKey", + "kms:Decrypt" ] }, "list": { diff --git a/internal/service/cloudformation/schemas/AWS_Scheduler_ScheduleGroup.json b/internal/service/cloudformation/schemas/AWS_Scheduler_ScheduleGroup.json index 2ac00945d..d4260a534 100644 --- a/internal/service/cloudformation/schemas/AWS_Scheduler_ScheduleGroup.json +++ b/internal/service/cloudformation/schemas/AWS_Scheduler_ScheduleGroup.json @@ -125,7 +125,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "scheduler:UntagResource", + "scheduler:ListTagsForResource", + "scheduler:TagResource" + ] }, "additionalProperties": false } diff --git a/internal/service/cloudformation/schemas/AWS_StepFunctions_Activity.json b/internal/service/cloudformation/schemas/AWS_StepFunctions_Activity.json index 14fdb9857..016e7233a 100644 --- a/internal/service/cloudformation/schemas/AWS_StepFunctions_Activity.json +++ b/internal/service/cloudformation/schemas/AWS_StepFunctions_Activity.json @@ -79,7 +79,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "states:UntagResource", + "states:TagResource", + "states:ListTagsForResource" + ] }, "required": [ "Name" From 5767ba2339399e4ed4222d94cf46df26fc7059bc Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 8 Aug 2024 12:36:27 -0400 Subject: [PATCH 72/89] 08/07/2024 CloudFormation schemas in us-east-1; New schemas. --- .../available_schemas.2024-08-07.hcl | 4400 +++++++++++++++++ 1 file changed, 4400 insertions(+) create mode 100644 internal/provider/generators/allschemas/available_schemas.2024-08-07.hcl diff --git a/internal/provider/generators/allschemas/available_schemas.2024-08-07.hcl b/internal/provider/generators/allschemas/available_schemas.2024-08-07.hcl new file mode 100644 index 000000000..a88997694 --- /dev/null +++ b/internal/provider/generators/allschemas/available_schemas.2024-08-07.hcl @@ -0,0 +1,4400 @@ +# 1037 CloudFormation resource types schemas are available for use with the Cloud Control API. + +resource_schema "aws_acmpca_certificate" { + cloudformation_type_name = "AWS::ACMPCA::Certificate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_acmpca_certificate_authority" { + cloudformation_type_name = "AWS::ACMPCA::CertificateAuthority" +} + +resource_schema "aws_acmpca_certificate_authority_activation" { + cloudformation_type_name = "AWS::ACMPCA::CertificateAuthorityActivation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_acmpca_permission" { + cloudformation_type_name = "AWS::ACMPCA::Permission" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_aps_rule_groups_namespace" { + cloudformation_type_name = "AWS::APS::RuleGroupsNamespace" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_aps_scraper" { + cloudformation_type_name = "AWS::APS::Scraper" +} + +resource_schema "aws_aps_workspace" { + cloudformation_type_name = "AWS::APS::Workspace" +} + +resource_schema "aws_arczonalshift_autoshift_observer_notification_status" { + cloudformation_type_name = "AWS::ARCZonalShift::AutoshiftObserverNotificationStatus" +} + +resource_schema "aws_arczonalshift_zonal_autoshift_configuration" { + cloudformation_type_name = "AWS::ARCZonalShift::ZonalAutoshiftConfiguration" +} + +resource_schema "aws_accessanalyzer_analyzer" { + cloudformation_type_name = "AWS::AccessAnalyzer::Analyzer" +} + +resource_schema "aws_amplify_app" { + cloudformation_type_name = "AWS::Amplify::App" +} + +resource_schema "aws_amplify_branch" { + cloudformation_type_name = "AWS::Amplify::Branch" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplify_domain" { + cloudformation_type_name = "AWS::Amplify::Domain" +} + +resource_schema "aws_amplifyuibuilder_component" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Component" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplifyuibuilder_form" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Form" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplifyuibuilder_theme" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Theme" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_account" { + cloudformation_type_name = "AWS::ApiGateway::Account" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_api_key" { + cloudformation_type_name = "AWS::ApiGateway::ApiKey" +} + +resource_schema "aws_apigateway_authorizer" { + cloudformation_type_name = "AWS::ApiGateway::Authorizer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_base_path_mapping" { + cloudformation_type_name = "AWS::ApiGateway::BasePathMapping" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_client_certificate" { + cloudformation_type_name = "AWS::ApiGateway::ClientCertificate" +} + +resource_schema "aws_apigateway_deployment" { + cloudformation_type_name = "AWS::ApiGateway::Deployment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_documentation_part" { + cloudformation_type_name = "AWS::ApiGateway::DocumentationPart" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_documentation_version" { + cloudformation_type_name = "AWS::ApiGateway::DocumentationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_domain_name" { + cloudformation_type_name = "AWS::ApiGateway::DomainName" +} + +resource_schema "aws_apigateway_gateway_response" { + cloudformation_type_name = "AWS::ApiGateway::GatewayResponse" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_method" { + cloudformation_type_name = "AWS::ApiGateway::Method" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_model" { + cloudformation_type_name = "AWS::ApiGateway::Model" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_request_validator" { + cloudformation_type_name = "AWS::ApiGateway::RequestValidator" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_resource" { + cloudformation_type_name = "AWS::ApiGateway::Resource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_rest_api" { + cloudformation_type_name = "AWS::ApiGateway::RestApi" +} + +resource_schema "aws_apigateway_stage" { + cloudformation_type_name = "AWS::ApiGateway::Stage" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_usage_plan" { + cloudformation_type_name = "AWS::ApiGateway::UsagePlan" +} + +resource_schema "aws_apigateway_usage_plan_key" { + cloudformation_type_name = "AWS::ApiGateway::UsagePlanKey" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_vpc_link" { + cloudformation_type_name = "AWS::ApiGateway::VpcLink" +} + +resource_schema "aws_apigatewayv2_api" { + cloudformation_type_name = "AWS::ApiGatewayV2::Api" +} + +resource_schema "aws_apigatewayv2_api_mapping" { + cloudformation_type_name = "AWS::ApiGatewayV2::ApiMapping" +} + +resource_schema "aws_apigatewayv2_authorizer" { + cloudformation_type_name = "AWS::ApiGatewayV2::Authorizer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_deployment" { + cloudformation_type_name = "AWS::ApiGatewayV2::Deployment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_domain_name" { + cloudformation_type_name = "AWS::ApiGatewayV2::DomainName" +} + +resource_schema "aws_apigatewayv2_integration_response" { + cloudformation_type_name = "AWS::ApiGatewayV2::IntegrationResponse" +} + +resource_schema "aws_apigatewayv2_model" { + cloudformation_type_name = "AWS::ApiGatewayV2::Model" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_route" { + cloudformation_type_name = "AWS::ApiGatewayV2::Route" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_route_response" { + cloudformation_type_name = "AWS::ApiGatewayV2::RouteResponse" +} + +resource_schema "aws_apigatewayv2_vpc_link" { + cloudformation_type_name = "AWS::ApiGatewayV2::VpcLink" +} + +resource_schema "aws_appconfig_application" { + cloudformation_type_name = "AWS::AppConfig::Application" +} + +resource_schema "aws_appconfig_configuration_profile" { + cloudformation_type_name = "AWS::AppConfig::ConfigurationProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appconfig_environment" { + cloudformation_type_name = "AWS::AppConfig::Environment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appconfig_extension" { + cloudformation_type_name = "AWS::AppConfig::Extension" +} + +resource_schema "aws_appconfig_extension_association" { + cloudformation_type_name = "AWS::AppConfig::ExtensionAssociation" +} + +resource_schema "aws_appconfig_hosted_configuration_version" { + cloudformation_type_name = "AWS::AppConfig::HostedConfigurationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appflow_connector" { + cloudformation_type_name = "AWS::AppFlow::Connector" +} + +resource_schema "aws_appflow_connector_profile" { + cloudformation_type_name = "AWS::AppFlow::ConnectorProfile" +} + +resource_schema "aws_appflow_flow" { + cloudformation_type_name = "AWS::AppFlow::Flow" +} + +resource_schema "aws_appintegrations_application" { + cloudformation_type_name = "AWS::AppIntegrations::Application" +} + +resource_schema "aws_appintegrations_data_integration" { + cloudformation_type_name = "AWS::AppIntegrations::DataIntegration" +} + +resource_schema "aws_appintegrations_event_integration" { + cloudformation_type_name = "AWS::AppIntegrations::EventIntegration" +} + +resource_schema "aws_apprunner_auto_scaling_configuration" { + cloudformation_type_name = "AWS::AppRunner::AutoScalingConfiguration" +} + +resource_schema "aws_apprunner_observability_configuration" { + cloudformation_type_name = "AWS::AppRunner::ObservabilityConfiguration" +} + +resource_schema "aws_apprunner_service" { + cloudformation_type_name = "AWS::AppRunner::Service" +} + +resource_schema "aws_apprunner_vpc_connector" { + cloudformation_type_name = "AWS::AppRunner::VpcConnector" +} + +resource_schema "aws_apprunner_vpc_ingress_connection" { + cloudformation_type_name = "AWS::AppRunner::VpcIngressConnection" +} + +resource_schema "aws_appstream_app_block" { + cloudformation_type_name = "AWS::AppStream::AppBlock" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_app_block_builder" { + cloudformation_type_name = "AWS::AppStream::AppBlockBuilder" +} + +resource_schema "aws_appstream_application" { + cloudformation_type_name = "AWS::AppStream::Application" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_application_entitlement_association" { + cloudformation_type_name = "AWS::AppStream::ApplicationEntitlementAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_application_fleet_association" { + cloudformation_type_name = "AWS::AppStream::ApplicationFleetAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_directory_config" { + cloudformation_type_name = "AWS::AppStream::DirectoryConfig" +} + +resource_schema "aws_appstream_entitlement" { + cloudformation_type_name = "AWS::AppStream::Entitlement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_image_builder" { + cloudformation_type_name = "AWS::AppStream::ImageBuilder" +} + +resource_schema "aws_appsync_domain_name" { + cloudformation_type_name = "AWS::AppSync::DomainName" +} + +resource_schema "aws_appsync_domain_name_api_association" { + cloudformation_type_name = "AWS::AppSync::DomainNameApiAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_function_configuration" { + cloudformation_type_name = "AWS::AppSync::FunctionConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_resolver" { + cloudformation_type_name = "AWS::AppSync::Resolver" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_source_api_association" { + cloudformation_type_name = "AWS::AppSync::SourceApiAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apptest_test_case" { + cloudformation_type_name = "AWS::AppTest::TestCase" +} + +resource_schema "aws_applicationautoscaling_scalable_target" { + cloudformation_type_name = "AWS::ApplicationAutoScaling::ScalableTarget" +} + +resource_schema "aws_applicationautoscaling_scaling_policy" { + cloudformation_type_name = "AWS::ApplicationAutoScaling::ScalingPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_applicationinsights_application" { + cloudformation_type_name = "AWS::ApplicationInsights::Application" +} + +resource_schema "aws_applicationsignals_service_level_objective" { + cloudformation_type_name = "AWS::ApplicationSignals::ServiceLevelObjective" +} + +resource_schema "aws_athena_capacity_reservation" { + cloudformation_type_name = "AWS::Athena::CapacityReservation" +} + +resource_schema "aws_athena_data_catalog" { + cloudformation_type_name = "AWS::Athena::DataCatalog" +} + +resource_schema "aws_athena_named_query" { + cloudformation_type_name = "AWS::Athena::NamedQuery" +} + +resource_schema "aws_athena_prepared_statement" { + cloudformation_type_name = "AWS::Athena::PreparedStatement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_athena_work_group" { + cloudformation_type_name = "AWS::Athena::WorkGroup" +} + +resource_schema "aws_auditmanager_assessment" { + cloudformation_type_name = "AWS::AuditManager::Assessment" +} + +resource_schema "aws_autoscaling_auto_scaling_group" { + cloudformation_type_name = "AWS::AutoScaling::AutoScalingGroup" +} + +resource_schema "aws_autoscaling_launch_configuration" { + cloudformation_type_name = "AWS::AutoScaling::LaunchConfiguration" +} + +resource_schema "aws_autoscaling_lifecycle_hook" { + cloudformation_type_name = "AWS::AutoScaling::LifecycleHook" +} + +resource_schema "aws_autoscaling_scaling_policy" { + cloudformation_type_name = "AWS::AutoScaling::ScalingPolicy" +} + +resource_schema "aws_autoscaling_scheduled_action" { + cloudformation_type_name = "AWS::AutoScaling::ScheduledAction" +} + +resource_schema "aws_autoscaling_warm_pool" { + cloudformation_type_name = "AWS::AutoScaling::WarmPool" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_b2bi_capability" { + cloudformation_type_name = "AWS::B2BI::Capability" +} + +resource_schema "aws_b2bi_partnership" { + cloudformation_type_name = "AWS::B2BI::Partnership" +} + +resource_schema "aws_b2bi_profile" { + cloudformation_type_name = "AWS::B2BI::Profile" +} + +resource_schema "aws_b2bi_transformer" { + cloudformation_type_name = "AWS::B2BI::Transformer" +} + +resource_schema "aws_bcmdataexports_export" { + cloudformation_type_name = "AWS::BCMDataExports::Export" +} + +resource_schema "aws_backup_backup_plan" { + cloudformation_type_name = "AWS::Backup::BackupPlan" +} + +resource_schema "aws_backup_backup_selection" { + cloudformation_type_name = "AWS::Backup::BackupSelection" +} + +resource_schema "aws_backup_backup_vault" { + cloudformation_type_name = "AWS::Backup::BackupVault" +} + +resource_schema "aws_backup_framework" { + cloudformation_type_name = "AWS::Backup::Framework" +} + +resource_schema "aws_backup_report_plan" { + cloudformation_type_name = "AWS::Backup::ReportPlan" +} + +resource_schema "aws_backup_restore_testing_plan" { + cloudformation_type_name = "AWS::Backup::RestoreTestingPlan" +} + +resource_schema "aws_backup_restore_testing_selection" { + cloudformation_type_name = "AWS::Backup::RestoreTestingSelection" +} + +resource_schema "aws_backupgateway_hypervisor" { + cloudformation_type_name = "AWS::BackupGateway::Hypervisor" +} + +resource_schema "aws_batch_compute_environment" { + cloudformation_type_name = "AWS::Batch::ComputeEnvironment" +} + +resource_schema "aws_batch_job_queue" { + cloudformation_type_name = "AWS::Batch::JobQueue" +} + +resource_schema "aws_batch_scheduling_policy" { + cloudformation_type_name = "AWS::Batch::SchedulingPolicy" +} + +resource_schema "aws_bedrock_agent" { + cloudformation_type_name = "AWS::Bedrock::Agent" +} + +resource_schema "aws_bedrock_agent_alias" { + cloudformation_type_name = "AWS::Bedrock::AgentAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_data_source" { + cloudformation_type_name = "AWS::Bedrock::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_flow" { + cloudformation_type_name = "AWS::Bedrock::Flow" +} + +resource_schema "aws_bedrock_flow_alias" { + cloudformation_type_name = "AWS::Bedrock::FlowAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_flow_version" { + cloudformation_type_name = "AWS::Bedrock::FlowVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_guardrail" { + cloudformation_type_name = "AWS::Bedrock::Guardrail" +} + +resource_schema "aws_bedrock_guardrail_version" { + cloudformation_type_name = "AWS::Bedrock::GuardrailVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_knowledge_base" { + cloudformation_type_name = "AWS::Bedrock::KnowledgeBase" +} + +resource_schema "aws_bedrock_prompt" { + cloudformation_type_name = "AWS::Bedrock::Prompt" +} + +resource_schema "aws_bedrock_prompt_version" { + cloudformation_type_name = "AWS::Bedrock::PromptVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_billingconductor_billing_group" { + cloudformation_type_name = "AWS::BillingConductor::BillingGroup" +} + +resource_schema "aws_billingconductor_custom_line_item" { + cloudformation_type_name = "AWS::BillingConductor::CustomLineItem" +} + +resource_schema "aws_billingconductor_pricing_plan" { + cloudformation_type_name = "AWS::BillingConductor::PricingPlan" +} + +resource_schema "aws_billingconductor_pricing_rule" { + cloudformation_type_name = "AWS::BillingConductor::PricingRule" +} + +resource_schema "aws_budgets_budgets_action" { + cloudformation_type_name = "AWS::Budgets::BudgetsAction" +} + +resource_schema "aws_ce_anomaly_monitor" { + cloudformation_type_name = "AWS::CE::AnomalyMonitor" +} + +resource_schema "aws_ce_anomaly_subscription" { + cloudformation_type_name = "AWS::CE::AnomalySubscription" +} + +resource_schema "aws_ce_cost_category" { + cloudformation_type_name = "AWS::CE::CostCategory" +} + +resource_schema "aws_cur_report_definition" { + cloudformation_type_name = "AWS::CUR::ReportDefinition" +} + +resource_schema "aws_cassandra_keyspace" { + cloudformation_type_name = "AWS::Cassandra::Keyspace" +} + +resource_schema "aws_cassandra_table" { + cloudformation_type_name = "AWS::Cassandra::Table" +} + +resource_schema "aws_certificatemanager_account" { + cloudformation_type_name = "AWS::CertificateManager::Account" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_chatbot_microsoft_teams_channel_configuration" { + cloudformation_type_name = "AWS::Chatbot::MicrosoftTeamsChannelConfiguration" +} + +resource_schema "aws_chatbot_slack_channel_configuration" { + cloudformation_type_name = "AWS::Chatbot::SlackChannelConfiguration" +} + +resource_schema "aws_cleanrooms_analysis_template" { + cloudformation_type_name = "AWS::CleanRooms::AnalysisTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_collaboration" { + cloudformation_type_name = "AWS::CleanRooms::Collaboration" +} + +resource_schema "aws_cleanrooms_configured_table" { + cloudformation_type_name = "AWS::CleanRooms::ConfiguredTable" +} + +resource_schema "aws_cleanrooms_configured_table_association" { + cloudformation_type_name = "AWS::CleanRooms::ConfiguredTableAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_id_mapping_table" { + cloudformation_type_name = "AWS::CleanRooms::IdMappingTable" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_id_namespace_association" { + cloudformation_type_name = "AWS::CleanRooms::IdNamespaceAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_membership" { + cloudformation_type_name = "AWS::CleanRooms::Membership" +} + +resource_schema "aws_cleanrooms_privacy_budget_template" { + cloudformation_type_name = "AWS::CleanRooms::PrivacyBudgetTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanroomsml_training_dataset" { + cloudformation_type_name = "AWS::CleanRoomsML::TrainingDataset" +} + +resource_schema "aws_cloudformation_hook_default_version" { + cloudformation_type_name = "AWS::CloudFormation::HookDefaultVersion" +} + +resource_schema "aws_cloudformation_hook_type_config" { + cloudformation_type_name = "AWS::CloudFormation::HookTypeConfig" +} + +resource_schema "aws_cloudformation_hook_version" { + cloudformation_type_name = "AWS::CloudFormation::HookVersion" +} + +resource_schema "aws_cloudformation_module_default_version" { + cloudformation_type_name = "AWS::CloudFormation::ModuleDefaultVersion" +} + +resource_schema "aws_cloudformation_module_version" { + cloudformation_type_name = "AWS::CloudFormation::ModuleVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudformation_public_type_version" { + cloudformation_type_name = "AWS::CloudFormation::PublicTypeVersion" +} + +resource_schema "aws_cloudformation_publisher" { + cloudformation_type_name = "AWS::CloudFormation::Publisher" +} + +resource_schema "aws_cloudformation_resource_default_version" { + cloudformation_type_name = "AWS::CloudFormation::ResourceDefaultVersion" +} + +resource_schema "aws_cloudformation_resource_version" { + cloudformation_type_name = "AWS::CloudFormation::ResourceVersion" +} + +resource_schema "aws_cloudformation_stack" { + cloudformation_type_name = "AWS::CloudFormation::Stack" +} + +resource_schema "aws_cloudformation_stack_set" { + cloudformation_type_name = "AWS::CloudFormation::StackSet" +} + +resource_schema "aws_cloudformation_type_activation" { + cloudformation_type_name = "AWS::CloudFormation::TypeActivation" +} + +resource_schema "aws_cloudfront_cache_policy" { + cloudformation_type_name = "AWS::CloudFront::CachePolicy" +} + +resource_schema "aws_cloudfront_cloudfront_origin_access_identity" { + cloudformation_type_name = "AWS::CloudFront::CloudFrontOriginAccessIdentity" +} + +resource_schema "aws_cloudfront_continuous_deployment_policy" { + cloudformation_type_name = "AWS::CloudFront::ContinuousDeploymentPolicy" +} + +resource_schema "aws_cloudfront_distribution" { + cloudformation_type_name = "AWS::CloudFront::Distribution" +} + +resource_schema "aws_cloudfront_function" { + cloudformation_type_name = "AWS::CloudFront::Function" +} + +resource_schema "aws_cloudfront_key_group" { + cloudformation_type_name = "AWS::CloudFront::KeyGroup" +} + +resource_schema "aws_cloudfront_key_value_store" { + cloudformation_type_name = "AWS::CloudFront::KeyValueStore" +} + +resource_schema "aws_cloudfront_monitoring_subscription" { + cloudformation_type_name = "AWS::CloudFront::MonitoringSubscription" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudfront_origin_access_control" { + cloudformation_type_name = "AWS::CloudFront::OriginAccessControl" +} + +resource_schema "aws_cloudfront_origin_request_policy" { + cloudformation_type_name = "AWS::CloudFront::OriginRequestPolicy" +} + +resource_schema "aws_cloudfront_public_key" { + cloudformation_type_name = "AWS::CloudFront::PublicKey" +} + +resource_schema "aws_cloudfront_realtime_log_config" { + cloudformation_type_name = "AWS::CloudFront::RealtimeLogConfig" +} + +resource_schema "aws_cloudfront_response_headers_policy" { + cloudformation_type_name = "AWS::CloudFront::ResponseHeadersPolicy" +} + +resource_schema "aws_cloudtrail_channel" { + cloudformation_type_name = "AWS::CloudTrail::Channel" +} + +resource_schema "aws_cloudtrail_event_data_store" { + cloudformation_type_name = "AWS::CloudTrail::EventDataStore" +} + +resource_schema "aws_cloudtrail_resource_policy" { + cloudformation_type_name = "AWS::CloudTrail::ResourcePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudtrail_trail" { + cloudformation_type_name = "AWS::CloudTrail::Trail" +} + +resource_schema "aws_cloudwatch_alarm" { + cloudformation_type_name = "AWS::CloudWatch::Alarm" +} + +resource_schema "aws_cloudwatch_composite_alarm" { + cloudformation_type_name = "AWS::CloudWatch::CompositeAlarm" +} + +resource_schema "aws_cloudwatch_dashboard" { + cloudformation_type_name = "AWS::CloudWatch::Dashboard" +} + +resource_schema "aws_cloudwatch_metric_stream" { + cloudformation_type_name = "AWS::CloudWatch::MetricStream" +} + +resource_schema "aws_codeartifact_domain" { + cloudformation_type_name = "AWS::CodeArtifact::Domain" +} + +resource_schema "aws_codeartifact_package_group" { + cloudformation_type_name = "AWS::CodeArtifact::PackageGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_codeartifact_repository" { + cloudformation_type_name = "AWS::CodeArtifact::Repository" +} + +resource_schema "aws_codebuild_fleet" { + cloudformation_type_name = "AWS::CodeBuild::Fleet" +} + +resource_schema "aws_codeconnections_connection" { + cloudformation_type_name = "AWS::CodeConnections::Connection" +} + +resource_schema "aws_codedeploy_application" { + cloudformation_type_name = "AWS::CodeDeploy::Application" +} + +resource_schema "aws_codedeploy_deployment_config" { + cloudformation_type_name = "AWS::CodeDeploy::DeploymentConfig" +} + +resource_schema "aws_codeguruprofiler_profiling_group" { + cloudformation_type_name = "AWS::CodeGuruProfiler::ProfilingGroup" +} + +resource_schema "aws_codegurureviewer_repository_association" { + cloudformation_type_name = "AWS::CodeGuruReviewer::RepositoryAssociation" +} + +resource_schema "aws_codepipeline_custom_action_type" { + cloudformation_type_name = "AWS::CodePipeline::CustomActionType" +} + +resource_schema "aws_codepipeline_pipeline" { + cloudformation_type_name = "AWS::CodePipeline::Pipeline" +} + +resource_schema "aws_codestarconnections_connection" { + cloudformation_type_name = "AWS::CodeStarConnections::Connection" +} + +resource_schema "aws_codestarconnections_repository_link" { + cloudformation_type_name = "AWS::CodeStarConnections::RepositoryLink" +} + +resource_schema "aws_codestarconnections_sync_configuration" { + cloudformation_type_name = "AWS::CodeStarConnections::SyncConfiguration" +} + +resource_schema "aws_codestarnotifications_notification_rule" { + cloudformation_type_name = "AWS::CodeStarNotifications::NotificationRule" +} + +resource_schema "aws_cognito_identity_pool" { + cloudformation_type_name = "AWS::Cognito::IdentityPool" +} + +resource_schema "aws_cognito_identity_pool_principal_tag" { + cloudformation_type_name = "AWS::Cognito::IdentityPoolPrincipalTag" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_identity_pool_role_attachment" { + cloudformation_type_name = "AWS::Cognito::IdentityPoolRoleAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_log_delivery_configuration" { + cloudformation_type_name = "AWS::Cognito::LogDeliveryConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool" { + cloudformation_type_name = "AWS::Cognito::UserPool" +} + +resource_schema "aws_cognito_user_pool_client" { + cloudformation_type_name = "AWS::Cognito::UserPoolClient" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_group" { + cloudformation_type_name = "AWS::Cognito::UserPoolGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_resource_server" { + cloudformation_type_name = "AWS::Cognito::UserPoolResourceServer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_risk_configuration_attachment" { + cloudformation_type_name = "AWS::Cognito::UserPoolRiskConfigurationAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_ui_customization_attachment" { + cloudformation_type_name = "AWS::Cognito::UserPoolUICustomizationAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_user" { + cloudformation_type_name = "AWS::Cognito::UserPoolUser" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_user_to_group_attachment" { + cloudformation_type_name = "AWS::Cognito::UserPoolUserToGroupAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_comprehend_document_classifier" { + cloudformation_type_name = "AWS::Comprehend::DocumentClassifier" +} + +resource_schema "aws_comprehend_flywheel" { + cloudformation_type_name = "AWS::Comprehend::Flywheel" +} + +resource_schema "aws_config_aggregation_authorization" { + cloudformation_type_name = "AWS::Config::AggregationAuthorization" +} + +resource_schema "aws_config_config_rule" { + cloudformation_type_name = "AWS::Config::ConfigRule" +} + +resource_schema "aws_config_configuration_aggregator" { + cloudformation_type_name = "AWS::Config::ConfigurationAggregator" +} + +resource_schema "aws_config_conformance_pack" { + cloudformation_type_name = "AWS::Config::ConformancePack" +} + +resource_schema "aws_config_organization_conformance_pack" { + cloudformation_type_name = "AWS::Config::OrganizationConformancePack" +} + +resource_schema "aws_config_stored_query" { + cloudformation_type_name = "AWS::Config::StoredQuery" +} + +resource_schema "aws_connect_approved_origin" { + cloudformation_type_name = "AWS::Connect::ApprovedOrigin" +} + +resource_schema "aws_connect_contact_flow" { + cloudformation_type_name = "AWS::Connect::ContactFlow" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_contact_flow_module" { + cloudformation_type_name = "AWS::Connect::ContactFlowModule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_evaluation_form" { + cloudformation_type_name = "AWS::Connect::EvaluationForm" +} + +resource_schema "aws_connect_hours_of_operation" { + cloudformation_type_name = "AWS::Connect::HoursOfOperation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_instance" { + cloudformation_type_name = "AWS::Connect::Instance" +} + +resource_schema "aws_connect_instance_storage_config" { + cloudformation_type_name = "AWS::Connect::InstanceStorageConfig" +} + +resource_schema "aws_connect_integration_association" { + cloudformation_type_name = "AWS::Connect::IntegrationAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_phone_number" { + cloudformation_type_name = "AWS::Connect::PhoneNumber" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_predefined_attribute" { + cloudformation_type_name = "AWS::Connect::PredefinedAttribute" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_prompt" { + cloudformation_type_name = "AWS::Connect::Prompt" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_queue" { + cloudformation_type_name = "AWS::Connect::Queue" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_quick_connect" { + cloudformation_type_name = "AWS::Connect::QuickConnect" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_routing_profile" { + cloudformation_type_name = "AWS::Connect::RoutingProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_rule" { + cloudformation_type_name = "AWS::Connect::Rule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_security_key" { + cloudformation_type_name = "AWS::Connect::SecurityKey" +} + +resource_schema "aws_connect_security_profile" { + cloudformation_type_name = "AWS::Connect::SecurityProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_task_template" { + cloudformation_type_name = "AWS::Connect::TaskTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_traffic_distribution_group" { + cloudformation_type_name = "AWS::Connect::TrafficDistributionGroup" +} + +resource_schema "aws_connect_user" { + cloudformation_type_name = "AWS::Connect::User" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_user_hierarchy_group" { + cloudformation_type_name = "AWS::Connect::UserHierarchyGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_view" { + cloudformation_type_name = "AWS::Connect::View" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_view_version" { + cloudformation_type_name = "AWS::Connect::ViewVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connectcampaigns_campaign" { + cloudformation_type_name = "AWS::ConnectCampaigns::Campaign" +} + +resource_schema "aws_controltower_enabled_baseline" { + cloudformation_type_name = "AWS::ControlTower::EnabledBaseline" +} + +resource_schema "aws_controltower_enabled_control" { + cloudformation_type_name = "AWS::ControlTower::EnabledControl" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_controltower_landing_zone" { + cloudformation_type_name = "AWS::ControlTower::LandingZone" +} + +resource_schema "aws_customerprofiles_calculated_attribute_definition" { + cloudformation_type_name = "AWS::CustomerProfiles::CalculatedAttributeDefinition" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_domain" { + cloudformation_type_name = "AWS::CustomerProfiles::Domain" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_event_stream" { + cloudformation_type_name = "AWS::CustomerProfiles::EventStream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_integration" { + cloudformation_type_name = "AWS::CustomerProfiles::Integration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_object_type" { + cloudformation_type_name = "AWS::CustomerProfiles::ObjectType" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_dms_data_provider" { + cloudformation_type_name = "AWS::DMS::DataProvider" +} + +resource_schema "aws_dms_instance_profile" { + cloudformation_type_name = "AWS::DMS::InstanceProfile" +} + +resource_schema "aws_dms_migration_project" { + cloudformation_type_name = "AWS::DMS::MigrationProject" +} + +resource_schema "aws_dms_replication_config" { + cloudformation_type_name = "AWS::DMS::ReplicationConfig" +} + +resource_schema "aws_databrew_dataset" { + cloudformation_type_name = "AWS::DataBrew::Dataset" +} + +resource_schema "aws_databrew_job" { + cloudformation_type_name = "AWS::DataBrew::Job" +} + +resource_schema "aws_databrew_project" { + cloudformation_type_name = "AWS::DataBrew::Project" +} + +resource_schema "aws_databrew_recipe" { + cloudformation_type_name = "AWS::DataBrew::Recipe" +} + +resource_schema "aws_databrew_ruleset" { + cloudformation_type_name = "AWS::DataBrew::Ruleset" +} + +resource_schema "aws_databrew_schedule" { + cloudformation_type_name = "AWS::DataBrew::Schedule" +} + +resource_schema "aws_datapipeline_pipeline" { + cloudformation_type_name = "AWS::DataPipeline::Pipeline" +} + +resource_schema "aws_datasync_agent" { + cloudformation_type_name = "AWS::DataSync::Agent" +} + +resource_schema "aws_datasync_location_azure_blob" { + cloudformation_type_name = "AWS::DataSync::LocationAzureBlob" +} + +resource_schema "aws_datasync_location_efs" { + cloudformation_type_name = "AWS::DataSync::LocationEFS" +} + +resource_schema "aws_datasync_location_fsx_lustre" { + cloudformation_type_name = "AWS::DataSync::LocationFSxLustre" +} + +resource_schema "aws_datasync_location_fsx_ontap" { + cloudformation_type_name = "AWS::DataSync::LocationFSxONTAP" +} + +resource_schema "aws_datasync_location_fsx_open_zfs" { + cloudformation_type_name = "AWS::DataSync::LocationFSxOpenZFS" +} + +resource_schema "aws_datasync_location_fsx_windows" { + cloudformation_type_name = "AWS::DataSync::LocationFSxWindows" +} + +resource_schema "aws_datasync_location_hdfs" { + cloudformation_type_name = "AWS::DataSync::LocationHDFS" +} + +resource_schema "aws_datasync_location_nfs" { + cloudformation_type_name = "AWS::DataSync::LocationNFS" +} + +resource_schema "aws_datasync_location_object_storage" { + cloudformation_type_name = "AWS::DataSync::LocationObjectStorage" +} + +resource_schema "aws_datasync_location_s3" { + cloudformation_type_name = "AWS::DataSync::LocationS3" +} + +resource_schema "aws_datasync_location_smb" { + cloudformation_type_name = "AWS::DataSync::LocationSMB" +} + +resource_schema "aws_datasync_storage_system" { + cloudformation_type_name = "AWS::DataSync::StorageSystem" +} + +resource_schema "aws_datasync_task" { + cloudformation_type_name = "AWS::DataSync::Task" +} + +resource_schema "aws_datazone_data_source" { + cloudformation_type_name = "AWS::DataZone::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_domain" { + cloudformation_type_name = "AWS::DataZone::Domain" +} + +resource_schema "aws_datazone_environment" { + cloudformation_type_name = "AWS::DataZone::Environment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_environment_blueprint_configuration" { + cloudformation_type_name = "AWS::DataZone::EnvironmentBlueprintConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_environment_profile" { + cloudformation_type_name = "AWS::DataZone::EnvironmentProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_group_profile" { + cloudformation_type_name = "AWS::DataZone::GroupProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_project" { + cloudformation_type_name = "AWS::DataZone::Project" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_project_membership" { + cloudformation_type_name = "AWS::DataZone::ProjectMembership" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_subscription_target" { + cloudformation_type_name = "AWS::DataZone::SubscriptionTarget" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_user_profile" { + cloudformation_type_name = "AWS::DataZone::UserProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_farm" { + cloudformation_type_name = "AWS::Deadline::Farm" +} + +resource_schema "aws_deadline_fleet" { + cloudformation_type_name = "AWS::Deadline::Fleet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_license_endpoint" { + cloudformation_type_name = "AWS::Deadline::LicenseEndpoint" +} + +resource_schema "aws_deadline_metered_product" { + cloudformation_type_name = "AWS::Deadline::MeteredProduct" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_monitor" { + cloudformation_type_name = "AWS::Deadline::Monitor" +} + +resource_schema "aws_deadline_queue" { + cloudformation_type_name = "AWS::Deadline::Queue" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_queue_environment" { + cloudformation_type_name = "AWS::Deadline::QueueEnvironment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_queue_fleet_association" { + cloudformation_type_name = "AWS::Deadline::QueueFleetAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_storage_profile" { + cloudformation_type_name = "AWS::Deadline::StorageProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_detective_graph" { + cloudformation_type_name = "AWS::Detective::Graph" +} + +resource_schema "aws_detective_member_invitation" { + cloudformation_type_name = "AWS::Detective::MemberInvitation" +} + +resource_schema "aws_detective_organization_admin" { + cloudformation_type_name = "AWS::Detective::OrganizationAdmin" +} + +resource_schema "aws_devopsguru_log_anomaly_detection_integration" { + cloudformation_type_name = "AWS::DevOpsGuru::LogAnomalyDetectionIntegration" +} + +resource_schema "aws_devopsguru_notification_channel" { + cloudformation_type_name = "AWS::DevOpsGuru::NotificationChannel" +} + +resource_schema "aws_devopsguru_resource_collection" { + cloudformation_type_name = "AWS::DevOpsGuru::ResourceCollection" +} + +resource_schema "aws_directoryservice_simple_ad" { + cloudformation_type_name = "AWS::DirectoryService::SimpleAD" +} + +resource_schema "aws_docdbelastic_cluster" { + cloudformation_type_name = "AWS::DocDBElastic::Cluster" +} + +resource_schema "aws_dynamodb_global_table" { + cloudformation_type_name = "AWS::DynamoDB::GlobalTable" +} + +resource_schema "aws_dynamodb_table" { + cloudformation_type_name = "AWS::DynamoDB::Table" +} + +resource_schema "aws_ec2_capacity_reservation" { + cloudformation_type_name = "AWS::EC2::CapacityReservation" +} + +resource_schema "aws_ec2_capacity_reservation_fleet" { + cloudformation_type_name = "AWS::EC2::CapacityReservationFleet" +} + +resource_schema "aws_ec2_carrier_gateway" { + cloudformation_type_name = "AWS::EC2::CarrierGateway" +} + +resource_schema "aws_ec2_customer_gateway" { + cloudformation_type_name = "AWS::EC2::CustomerGateway" +} + +resource_schema "aws_ec2_dhcp_options" { + cloudformation_type_name = "AWS::EC2::DHCPOptions" +} + +resource_schema "aws_ec2_ec2_fleet" { + cloudformation_type_name = "AWS::EC2::EC2Fleet" +} + +resource_schema "aws_ec2_eip" { + cloudformation_type_name = "AWS::EC2::EIP" +} + +resource_schema "aws_ec2_eip_association" { + cloudformation_type_name = "AWS::EC2::EIPAssociation" +} + +resource_schema "aws_ec2_egress_only_internet_gateway" { + cloudformation_type_name = "AWS::EC2::EgressOnlyInternetGateway" +} + +resource_schema "aws_ec2_enclave_certificate_iam_role_association" { + cloudformation_type_name = "AWS::EC2::EnclaveCertificateIamRoleAssociation" +} + +resource_schema "aws_ec2_flow_log" { + cloudformation_type_name = "AWS::EC2::FlowLog" +} + +resource_schema "aws_ec2_gateway_route_table_association" { + cloudformation_type_name = "AWS::EC2::GatewayRouteTableAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_host" { + cloudformation_type_name = "AWS::EC2::Host" +} + +resource_schema "aws_ec2_ipam" { + cloudformation_type_name = "AWS::EC2::IPAM" +} + +resource_schema "aws_ec2_ipam_allocation" { + cloudformation_type_name = "AWS::EC2::IPAMAllocation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_ipam_pool" { + cloudformation_type_name = "AWS::EC2::IPAMPool" +} + +resource_schema "aws_ec2_ipam_pool_cidr" { + cloudformation_type_name = "AWS::EC2::IPAMPoolCidr" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_ipam_resource_discovery" { + cloudformation_type_name = "AWS::EC2::IPAMResourceDiscovery" +} + +resource_schema "aws_ec2_ipam_resource_discovery_association" { + cloudformation_type_name = "AWS::EC2::IPAMResourceDiscoveryAssociation" +} + +resource_schema "aws_ec2_ipam_scope" { + cloudformation_type_name = "AWS::EC2::IPAMScope" +} + +resource_schema "aws_ec2_instance" { + cloudformation_type_name = "AWS::EC2::Instance" +} + +resource_schema "aws_ec2_instance_connect_endpoint" { + cloudformation_type_name = "AWS::EC2::InstanceConnectEndpoint" +} + +resource_schema "aws_ec2_internet_gateway" { + cloudformation_type_name = "AWS::EC2::InternetGateway" +} + +resource_schema "aws_ec2_key_pair" { + cloudformation_type_name = "AWS::EC2::KeyPair" +} + +resource_schema "aws_ec2_launch_template" { + cloudformation_type_name = "AWS::EC2::LaunchTemplate" +} + +resource_schema "aws_ec2_local_gateway_route" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRoute" +} + +resource_schema "aws_ec2_local_gateway_route_table" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRouteTable" +} + +resource_schema "aws_ec2_local_gateway_route_table_vpc_association" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRouteTableVPCAssociation" +} + +resource_schema "aws_ec2_local_gateway_route_table_virtual_interface_group_association" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRouteTableVirtualInterfaceGroupAssociation" +} + +resource_schema "aws_ec2_nat_gateway" { + cloudformation_type_name = "AWS::EC2::NatGateway" +} + +resource_schema "aws_ec2_network_acl" { + cloudformation_type_name = "AWS::EC2::NetworkAcl" +} + +resource_schema "aws_ec2_network_insights_access_scope" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsAccessScope" +} + +resource_schema "aws_ec2_network_insights_access_scope_analysis" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsAccessScopeAnalysis" +} + +resource_schema "aws_ec2_network_insights_analysis" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsAnalysis" +} + +resource_schema "aws_ec2_network_insights_path" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsPath" +} + +resource_schema "aws_ec2_network_interface" { + cloudformation_type_name = "AWS::EC2::NetworkInterface" +} + +resource_schema "aws_ec2_network_interface_attachment" { + cloudformation_type_name = "AWS::EC2::NetworkInterfaceAttachment" +} + +resource_schema "aws_ec2_network_performance_metric_subscription" { + cloudformation_type_name = "AWS::EC2::NetworkPerformanceMetricSubscription" +} + +resource_schema "aws_ec2_placement_group" { + cloudformation_type_name = "AWS::EC2::PlacementGroup" +} + +resource_schema "aws_ec2_prefix_list" { + cloudformation_type_name = "AWS::EC2::PrefixList" +} + +resource_schema "aws_ec2_route" { + cloudformation_type_name = "AWS::EC2::Route" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_route_table" { + cloudformation_type_name = "AWS::EC2::RouteTable" +} + +resource_schema "aws_ec2_security_group" { + cloudformation_type_name = "AWS::EC2::SecurityGroup" +} + +resource_schema "aws_ec2_security_group_egress" { + cloudformation_type_name = "AWS::EC2::SecurityGroupEgress" +} + +resource_schema "aws_ec2_security_group_ingress" { + cloudformation_type_name = "AWS::EC2::SecurityGroupIngress" +} + +resource_schema "aws_ec2_snapshot_block_public_access" { + cloudformation_type_name = "AWS::EC2::SnapshotBlockPublicAccess" +} + +resource_schema "aws_ec2_spot_fleet" { + cloudformation_type_name = "AWS::EC2::SpotFleet" +} + +resource_schema "aws_ec2_subnet" { + cloudformation_type_name = "AWS::EC2::Subnet" +} + +resource_schema "aws_ec2_subnet_cidr_block" { + cloudformation_type_name = "AWS::EC2::SubnetCidrBlock" +} + +resource_schema "aws_ec2_subnet_network_acl_association" { + cloudformation_type_name = "AWS::EC2::SubnetNetworkAclAssociation" +} + +resource_schema "aws_ec2_subnet_route_table_association" { + cloudformation_type_name = "AWS::EC2::SubnetRouteTableAssociation" +} + +resource_schema "aws_ec2_transit_gateway" { + cloudformation_type_name = "AWS::EC2::TransitGateway" +} + +resource_schema "aws_ec2_transit_gateway_attachment" { + cloudformation_type_name = "AWS::EC2::TransitGatewayAttachment" +} + +resource_schema "aws_ec2_transit_gateway_connect" { + cloudformation_type_name = "AWS::EC2::TransitGatewayConnect" +} + +resource_schema "aws_ec2_transit_gateway_multicast_domain" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastDomain" +} + +resource_schema "aws_ec2_transit_gateway_multicast_domain_association" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastDomainAssociation" +} + +resource_schema "aws_ec2_transit_gateway_multicast_group_member" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastGroupMember" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_multicast_group_source" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastGroupSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_peering_attachment" { + cloudformation_type_name = "AWS::EC2::TransitGatewayPeeringAttachment" +} + +resource_schema "aws_ec2_transit_gateway_route" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRoute" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_route_table" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRouteTable" +} + +resource_schema "aws_ec2_transit_gateway_route_table_association" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRouteTableAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_route_table_propagation" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRouteTablePropagation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_vpc_attachment" { + cloudformation_type_name = "AWS::EC2::TransitGatewayVpcAttachment" +} + +resource_schema "aws_ec2_vpc" { + cloudformation_type_name = "AWS::EC2::VPC" +} + +resource_schema "aws_ec2_vpc_cidr_block" { + cloudformation_type_name = "AWS::EC2::VPCCidrBlock" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_vpcdhcp_options_association" { + cloudformation_type_name = "AWS::EC2::VPCDHCPOptionsAssociation" +} + +resource_schema "aws_ec2_vpc_endpoint" { + cloudformation_type_name = "AWS::EC2::VPCEndpoint" +} + +resource_schema "aws_ec2_vpc_endpoint_connection_notification" { + cloudformation_type_name = "AWS::EC2::VPCEndpointConnectionNotification" +} + +resource_schema "aws_ec2_vpc_endpoint_service" { + cloudformation_type_name = "AWS::EC2::VPCEndpointService" +} + +resource_schema "aws_ec2_vpc_endpoint_service_permissions" { + cloudformation_type_name = "AWS::EC2::VPCEndpointServicePermissions" +} + +resource_schema "aws_ec2_vpc_gateway_attachment" { + cloudformation_type_name = "AWS::EC2::VPCGatewayAttachment" +} + +resource_schema "aws_ec2_vpc_peering_connection" { + cloudformation_type_name = "AWS::EC2::VPCPeeringConnection" +} + +resource_schema "aws_ec2_vpn_connection" { + cloudformation_type_name = "AWS::EC2::VPNConnection" +} + +resource_schema "aws_ec2_vpn_connection_route" { + cloudformation_type_name = "AWS::EC2::VPNConnectionRoute" +} + +resource_schema "aws_ec2_vpn_gateway" { + cloudformation_type_name = "AWS::EC2::VPNGateway" +} + +resource_schema "aws_ec2_verified_access_endpoint" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessEndpoint" +} + +resource_schema "aws_ec2_verified_access_group" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessGroup" +} + +resource_schema "aws_ec2_verified_access_instance" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessInstance" +} + +resource_schema "aws_ec2_verified_access_trust_provider" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessTrustProvider" +} + +resource_schema "aws_ec2_volume" { + cloudformation_type_name = "AWS::EC2::Volume" +} + +resource_schema "aws_ec2_volume_attachment" { + cloudformation_type_name = "AWS::EC2::VolumeAttachment" +} + +resource_schema "aws_ecr_public_repository" { + cloudformation_type_name = "AWS::ECR::PublicRepository" +} + +resource_schema "aws_ecr_pull_through_cache_rule" { + cloudformation_type_name = "AWS::ECR::PullThroughCacheRule" +} + +resource_schema "aws_ecr_registry_policy" { + cloudformation_type_name = "AWS::ECR::RegistryPolicy" +} + +resource_schema "aws_ecr_replication_configuration" { + cloudformation_type_name = "AWS::ECR::ReplicationConfiguration" +} + +resource_schema "aws_ecr_repository" { + cloudformation_type_name = "AWS::ECR::Repository" +} + +resource_schema "aws_ecr_repository_creation_template" { + cloudformation_type_name = "AWS::ECR::RepositoryCreationTemplate" +} + +resource_schema "aws_ecs_capacity_provider" { + cloudformation_type_name = "AWS::ECS::CapacityProvider" +} + +resource_schema "aws_ecs_cluster" { + cloudformation_type_name = "AWS::ECS::Cluster" +} + +resource_schema "aws_ecs_cluster_capacity_provider_associations" { + cloudformation_type_name = "AWS::ECS::ClusterCapacityProviderAssociations" +} + +resource_schema "aws_ecs_primary_task_set" { + cloudformation_type_name = "AWS::ECS::PrimaryTaskSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ecs_service" { + cloudformation_type_name = "AWS::ECS::Service" +} + +resource_schema "aws_ecs_task_definition" { + cloudformation_type_name = "AWS::ECS::TaskDefinition" +} + +resource_schema "aws_ecs_task_set" { + cloudformation_type_name = "AWS::ECS::TaskSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_efs_access_point" { + cloudformation_type_name = "AWS::EFS::AccessPoint" +} + +resource_schema "aws_efs_file_system" { + cloudformation_type_name = "AWS::EFS::FileSystem" +} + +resource_schema "aws_efs_mount_target" { + cloudformation_type_name = "AWS::EFS::MountTarget" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_access_entry" { + cloudformation_type_name = "AWS::EKS::AccessEntry" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_addon" { + cloudformation_type_name = "AWS::EKS::Addon" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_cluster" { + cloudformation_type_name = "AWS::EKS::Cluster" +} + +resource_schema "aws_eks_fargate_profile" { + cloudformation_type_name = "AWS::EKS::FargateProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_identity_provider_config" { + cloudformation_type_name = "AWS::EKS::IdentityProviderConfig" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_nodegroup" { + cloudformation_type_name = "AWS::EKS::Nodegroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_pod_identity_association" { + cloudformation_type_name = "AWS::EKS::PodIdentityAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_emr_security_configuration" { + cloudformation_type_name = "AWS::EMR::SecurityConfiguration" +} + +resource_schema "aws_emr_studio" { + cloudformation_type_name = "AWS::EMR::Studio" +} + +resource_schema "aws_emr_studio_session_mapping" { + cloudformation_type_name = "AWS::EMR::StudioSessionMapping" +} + +resource_schema "aws_emr_wal_workspace" { + cloudformation_type_name = "AWS::EMR::WALWorkspace" +} + +resource_schema "aws_emrcontainers_virtual_cluster" { + cloudformation_type_name = "AWS::EMRContainers::VirtualCluster" +} + +resource_schema "aws_emrserverless_application" { + cloudformation_type_name = "AWS::EMRServerless::Application" +} + +resource_schema "aws_elasticache_global_replication_group" { + cloudformation_type_name = "AWS::ElastiCache::GlobalReplicationGroup" +} + +resource_schema "aws_elasticache_parameter_group" { + cloudformation_type_name = "AWS::ElastiCache::ParameterGroup" +} + +resource_schema "aws_elasticache_serverless_cache" { + cloudformation_type_name = "AWS::ElastiCache::ServerlessCache" +} + +resource_schema "aws_elasticache_subnet_group" { + cloudformation_type_name = "AWS::ElastiCache::SubnetGroup" +} + +resource_schema "aws_elasticache_user" { + cloudformation_type_name = "AWS::ElastiCache::User" +} + +resource_schema "aws_elasticache_user_group" { + cloudformation_type_name = "AWS::ElastiCache::UserGroup" +} + +resource_schema "aws_elasticbeanstalk_application" { + cloudformation_type_name = "AWS::ElasticBeanstalk::Application" +} + +resource_schema "aws_elasticbeanstalk_application_version" { + cloudformation_type_name = "AWS::ElasticBeanstalk::ApplicationVersion" +} + +resource_schema "aws_elasticbeanstalk_configuration_template" { + cloudformation_type_name = "AWS::ElasticBeanstalk::ConfigurationTemplate" +} + +resource_schema "aws_elasticbeanstalk_environment" { + cloudformation_type_name = "AWS::ElasticBeanstalk::Environment" +} + +resource_schema "aws_elasticloadbalancingv2_listener" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::Listener" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_elasticloadbalancingv2_listener_rule" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::ListenerRule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_elasticloadbalancingv2_load_balancer" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::LoadBalancer" +} + +resource_schema "aws_elasticloadbalancingv2_target_group" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::TargetGroup" +} + +resource_schema "aws_elasticloadbalancingv2_trust_store" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::TrustStore" +} + +resource_schema "aws_elasticloadbalancingv2_trust_store_revocation" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::TrustStoreRevocation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_entityresolution_id_mapping_workflow" { + cloudformation_type_name = "AWS::EntityResolution::IdMappingWorkflow" +} + +resource_schema "aws_entityresolution_id_namespace" { + cloudformation_type_name = "AWS::EntityResolution::IdNamespace" +} + +resource_schema "aws_entityresolution_matching_workflow" { + cloudformation_type_name = "AWS::EntityResolution::MatchingWorkflow" +} + +resource_schema "aws_entityresolution_policy_statement" { + cloudformation_type_name = "AWS::EntityResolution::PolicyStatement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_entityresolution_schema_mapping" { + cloudformation_type_name = "AWS::EntityResolution::SchemaMapping" +} + +resource_schema "aws_eventschemas_discoverer" { + cloudformation_type_name = "AWS::EventSchemas::Discoverer" +} + +resource_schema "aws_eventschemas_registry" { + cloudformation_type_name = "AWS::EventSchemas::Registry" +} + +resource_schema "aws_eventschemas_registry_policy" { + cloudformation_type_name = "AWS::EventSchemas::RegistryPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eventschemas_schema" { + cloudformation_type_name = "AWS::EventSchemas::Schema" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_events_api_destination" { + cloudformation_type_name = "AWS::Events::ApiDestination" +} + +resource_schema "aws_events_archive" { + cloudformation_type_name = "AWS::Events::Archive" +} + +resource_schema "aws_events_connection" { + cloudformation_type_name = "AWS::Events::Connection" +} + +resource_schema "aws_events_endpoint" { + cloudformation_type_name = "AWS::Events::Endpoint" +} + +resource_schema "aws_events_event_bus" { + cloudformation_type_name = "AWS::Events::EventBus" +} + +resource_schema "aws_events_rule" { + cloudformation_type_name = "AWS::Events::Rule" +} + +resource_schema "aws_evidently_experiment" { + cloudformation_type_name = "AWS::Evidently::Experiment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_feature" { + cloudformation_type_name = "AWS::Evidently::Feature" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_launch" { + cloudformation_type_name = "AWS::Evidently::Launch" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_project" { + cloudformation_type_name = "AWS::Evidently::Project" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_segment" { + cloudformation_type_name = "AWS::Evidently::Segment" +} + +resource_schema "aws_fis_experiment_template" { + cloudformation_type_name = "AWS::FIS::ExperimentTemplate" +} + +resource_schema "aws_fis_target_account_configuration" { + cloudformation_type_name = "AWS::FIS::TargetAccountConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_fms_notification_channel" { + cloudformation_type_name = "AWS::FMS::NotificationChannel" +} + +resource_schema "aws_fms_policy" { + cloudformation_type_name = "AWS::FMS::Policy" +} + +resource_schema "aws_fms_resource_set" { + cloudformation_type_name = "AWS::FMS::ResourceSet" +} + +resource_schema "aws_fsx_data_repository_association" { + cloudformation_type_name = "AWS::FSx::DataRepositoryAssociation" +} + +resource_schema "aws_finspace_environment" { + cloudformation_type_name = "AWS::FinSpace::Environment" +} + +resource_schema "aws_forecast_dataset" { + cloudformation_type_name = "AWS::Forecast::Dataset" +} + +resource_schema "aws_forecast_dataset_group" { + cloudformation_type_name = "AWS::Forecast::DatasetGroup" +} + +resource_schema "aws_frauddetector_detector" { + cloudformation_type_name = "AWS::FraudDetector::Detector" +} + +resource_schema "aws_frauddetector_entity_type" { + cloudformation_type_name = "AWS::FraudDetector::EntityType" +} + +resource_schema "aws_frauddetector_event_type" { + cloudformation_type_name = "AWS::FraudDetector::EventType" +} + +resource_schema "aws_frauddetector_label" { + cloudformation_type_name = "AWS::FraudDetector::Label" +} + +resource_schema "aws_frauddetector_list" { + cloudformation_type_name = "AWS::FraudDetector::List" +} + +resource_schema "aws_frauddetector_outcome" { + cloudformation_type_name = "AWS::FraudDetector::Outcome" +} + +resource_schema "aws_frauddetector_variable" { + cloudformation_type_name = "AWS::FraudDetector::Variable" +} + +resource_schema "aws_gamelift_alias" { + cloudformation_type_name = "AWS::GameLift::Alias" +} + +resource_schema "aws_gamelift_build" { + cloudformation_type_name = "AWS::GameLift::Build" +} + +resource_schema "aws_gamelift_container_group_definition" { + cloudformation_type_name = "AWS::GameLift::ContainerGroupDefinition" +} + +resource_schema "aws_gamelift_fleet" { + cloudformation_type_name = "AWS::GameLift::Fleet" +} + +resource_schema "aws_gamelift_game_server_group" { + cloudformation_type_name = "AWS::GameLift::GameServerGroup" +} + +resource_schema "aws_gamelift_game_session_queue" { + cloudformation_type_name = "AWS::GameLift::GameSessionQueue" +} + +resource_schema "aws_gamelift_location" { + cloudformation_type_name = "AWS::GameLift::Location" +} + +resource_schema "aws_gamelift_matchmaking_configuration" { + cloudformation_type_name = "AWS::GameLift::MatchmakingConfiguration" +} + +resource_schema "aws_gamelift_matchmaking_rule_set" { + cloudformation_type_name = "AWS::GameLift::MatchmakingRuleSet" +} + +resource_schema "aws_gamelift_script" { + cloudformation_type_name = "AWS::GameLift::Script" +} + +resource_schema "aws_globalaccelerator_accelerator" { + cloudformation_type_name = "AWS::GlobalAccelerator::Accelerator" +} + +resource_schema "aws_globalaccelerator_cross_account_attachment" { + cloudformation_type_name = "AWS::GlobalAccelerator::CrossAccountAttachment" +} + +resource_schema "aws_globalaccelerator_endpoint_group" { + cloudformation_type_name = "AWS::GlobalAccelerator::EndpointGroup" +} + +resource_schema "aws_globalaccelerator_listener" { + cloudformation_type_name = "AWS::GlobalAccelerator::Listener" +} + +resource_schema "aws_glue_registry" { + cloudformation_type_name = "AWS::Glue::Registry" +} + +resource_schema "aws_glue_schema" { + cloudformation_type_name = "AWS::Glue::Schema" +} + +resource_schema "aws_glue_schema_version" { + cloudformation_type_name = "AWS::Glue::SchemaVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_glue_schema_version_metadata" { + cloudformation_type_name = "AWS::Glue::SchemaVersionMetadata" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_glue_trigger" { + cloudformation_type_name = "AWS::Glue::Trigger" +} + +resource_schema "aws_grafana_workspace" { + cloudformation_type_name = "AWS::Grafana::Workspace" +} + +resource_schema "aws_greengrassv2_component_version" { + cloudformation_type_name = "AWS::GreengrassV2::ComponentVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_greengrassv2_deployment" { + cloudformation_type_name = "AWS::GreengrassV2::Deployment" +} + +resource_schema "aws_groundstation_config" { + cloudformation_type_name = "AWS::GroundStation::Config" +} + +resource_schema "aws_groundstation_dataflow_endpoint_group" { + cloudformation_type_name = "AWS::GroundStation::DataflowEndpointGroup" +} + +resource_schema "aws_groundstation_mission_profile" { + cloudformation_type_name = "AWS::GroundStation::MissionProfile" +} + +resource_schema "aws_guardduty_detector" { + cloudformation_type_name = "AWS::GuardDuty::Detector" +} + +resource_schema "aws_guardduty_filter" { + cloudformation_type_name = "AWS::GuardDuty::Filter" +} + +resource_schema "aws_guardduty_ip_set" { + cloudformation_type_name = "AWS::GuardDuty::IPSet" +} + +resource_schema "aws_guardduty_malware_protection_plan" { + cloudformation_type_name = "AWS::GuardDuty::MalwareProtectionPlan" +} + +resource_schema "aws_guardduty_master" { + cloudformation_type_name = "AWS::GuardDuty::Master" +} + +resource_schema "aws_guardduty_member" { + cloudformation_type_name = "AWS::GuardDuty::Member" +} + +resource_schema "aws_guardduty_threat_intel_set" { + cloudformation_type_name = "AWS::GuardDuty::ThreatIntelSet" +} + +resource_schema "aws_healthimaging_datastore" { + cloudformation_type_name = "AWS::HealthImaging::Datastore" +} + +resource_schema "aws_healthlake_fhir_datastore" { + cloudformation_type_name = "AWS::HealthLake::FHIRDatastore" +} + +resource_schema "aws_iam_group" { + cloudformation_type_name = "AWS::IAM::Group" +} + +resource_schema "aws_iam_group_policy" { + cloudformation_type_name = "AWS::IAM::GroupPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_instance_profile" { + cloudformation_type_name = "AWS::IAM::InstanceProfile" +} + +resource_schema "aws_iam_managed_policy" { + cloudformation_type_name = "AWS::IAM::ManagedPolicy" +} + +resource_schema "aws_iam_oidc_provider" { + cloudformation_type_name = "AWS::IAM::OIDCProvider" +} + +resource_schema "aws_iam_role" { + cloudformation_type_name = "AWS::IAM::Role" +} + +resource_schema "aws_iam_role_policy" { + cloudformation_type_name = "AWS::IAM::RolePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_saml_provider" { + cloudformation_type_name = "AWS::IAM::SAMLProvider" +} + +resource_schema "aws_iam_server_certificate" { + cloudformation_type_name = "AWS::IAM::ServerCertificate" +} + +resource_schema "aws_iam_service_linked_role" { + cloudformation_type_name = "AWS::IAM::ServiceLinkedRole" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_user" { + cloudformation_type_name = "AWS::IAM::User" +} + +resource_schema "aws_iam_user_policy" { + cloudformation_type_name = "AWS::IAM::UserPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_virtual_mfa_device" { + cloudformation_type_name = "AWS::IAM::VirtualMFADevice" +} + +resource_schema "aws_ivs_channel" { + cloudformation_type_name = "AWS::IVS::Channel" +} + +resource_schema "aws_ivs_encoder_configuration" { + cloudformation_type_name = "AWS::IVS::EncoderConfiguration" +} + +resource_schema "aws_ivs_playback_key_pair" { + cloudformation_type_name = "AWS::IVS::PlaybackKeyPair" +} + +resource_schema "aws_ivs_playback_restriction_policy" { + cloudformation_type_name = "AWS::IVS::PlaybackRestrictionPolicy" +} + +resource_schema "aws_ivs_recording_configuration" { + cloudformation_type_name = "AWS::IVS::RecordingConfiguration" +} + +resource_schema "aws_ivs_stage" { + cloudformation_type_name = "AWS::IVS::Stage" +} + +resource_schema "aws_ivs_storage_configuration" { + cloudformation_type_name = "AWS::IVS::StorageConfiguration" +} + +resource_schema "aws_ivs_stream_key" { + cloudformation_type_name = "AWS::IVS::StreamKey" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ivschat_logging_configuration" { + cloudformation_type_name = "AWS::IVSChat::LoggingConfiguration" +} + +resource_schema "aws_ivschat_room" { + cloudformation_type_name = "AWS::IVSChat::Room" +} + +resource_schema "aws_identitystore_group" { + cloudformation_type_name = "AWS::IdentityStore::Group" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_identitystore_group_membership" { + cloudformation_type_name = "AWS::IdentityStore::GroupMembership" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_imagebuilder_component" { + cloudformation_type_name = "AWS::ImageBuilder::Component" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_imagebuilder_container_recipe" { + cloudformation_type_name = "AWS::ImageBuilder::ContainerRecipe" +} + +resource_schema "aws_imagebuilder_distribution_configuration" { + cloudformation_type_name = "AWS::ImageBuilder::DistributionConfiguration" +} + +resource_schema "aws_imagebuilder_image" { + cloudformation_type_name = "AWS::ImageBuilder::Image" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_imagebuilder_image_pipeline" { + cloudformation_type_name = "AWS::ImageBuilder::ImagePipeline" +} + +resource_schema "aws_imagebuilder_image_recipe" { + cloudformation_type_name = "AWS::ImageBuilder::ImageRecipe" +} + +resource_schema "aws_imagebuilder_infrastructure_configuration" { + cloudformation_type_name = "AWS::ImageBuilder::InfrastructureConfiguration" +} + +resource_schema "aws_imagebuilder_lifecycle_policy" { + cloudformation_type_name = "AWS::ImageBuilder::LifecyclePolicy" +} + +resource_schema "aws_imagebuilder_workflow" { + cloudformation_type_name = "AWS::ImageBuilder::Workflow" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_inspector_assessment_target" { + cloudformation_type_name = "AWS::Inspector::AssessmentTarget" +} + +resource_schema "aws_inspector_assessment_template" { + cloudformation_type_name = "AWS::Inspector::AssessmentTemplate" +} + +resource_schema "aws_inspector_resource_group" { + cloudformation_type_name = "AWS::Inspector::ResourceGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_inspectorv2_cis_scan_configuration" { + cloudformation_type_name = "AWS::InspectorV2::CisScanConfiguration" +} + +resource_schema "aws_inspectorv2_filter" { + cloudformation_type_name = "AWS::InspectorV2::Filter" +} + +resource_schema "aws_internetmonitor_monitor" { + cloudformation_type_name = "AWS::InternetMonitor::Monitor" +} + +resource_schema "aws_iot_account_audit_configuration" { + cloudformation_type_name = "AWS::IoT::AccountAuditConfiguration" +} + +resource_schema "aws_iot_authorizer" { + cloudformation_type_name = "AWS::IoT::Authorizer" +} + +resource_schema "aws_iot_billing_group" { + cloudformation_type_name = "AWS::IoT::BillingGroup" +} + +resource_schema "aws_iot_ca_certificate" { + cloudformation_type_name = "AWS::IoT::CACertificate" +} + +resource_schema "aws_iot_certificate" { + cloudformation_type_name = "AWS::IoT::Certificate" +} + +resource_schema "aws_iot_certificate_provider" { + cloudformation_type_name = "AWS::IoT::CertificateProvider" +} + +resource_schema "aws_iot_custom_metric" { + cloudformation_type_name = "AWS::IoT::CustomMetric" +} + +resource_schema "aws_iot_dimension" { + cloudformation_type_name = "AWS::IoT::Dimension" +} + +resource_schema "aws_iot_domain_configuration" { + cloudformation_type_name = "AWS::IoT::DomainConfiguration" +} + +resource_schema "aws_iot_fleet_metric" { + cloudformation_type_name = "AWS::IoT::FleetMetric" +} + +resource_schema "aws_iot_job_template" { + cloudformation_type_name = "AWS::IoT::JobTemplate" +} + +resource_schema "aws_iot_logging" { + cloudformation_type_name = "AWS::IoT::Logging" +} + +resource_schema "aws_iot_mitigation_action" { + cloudformation_type_name = "AWS::IoT::MitigationAction" +} + +resource_schema "aws_iot_policy" { + cloudformation_type_name = "AWS::IoT::Policy" +} + +resource_schema "aws_iot_provisioning_template" { + cloudformation_type_name = "AWS::IoT::ProvisioningTemplate" +} + +resource_schema "aws_iot_resource_specific_logging" { + cloudformation_type_name = "AWS::IoT::ResourceSpecificLogging" +} + +resource_schema "aws_iot_role_alias" { + cloudformation_type_name = "AWS::IoT::RoleAlias" +} + +resource_schema "aws_iot_scheduled_audit" { + cloudformation_type_name = "AWS::IoT::ScheduledAudit" +} + +resource_schema "aws_iot_security_profile" { + cloudformation_type_name = "AWS::IoT::SecurityProfile" +} + +resource_schema "aws_iot_software_package" { + cloudformation_type_name = "AWS::IoT::SoftwarePackage" +} + +resource_schema "aws_iot_software_package_version" { + cloudformation_type_name = "AWS::IoT::SoftwarePackageVersion" +} + +resource_schema "aws_iot_thing" { + cloudformation_type_name = "AWS::IoT::Thing" +} + +resource_schema "aws_iot_thing_group" { + cloudformation_type_name = "AWS::IoT::ThingGroup" +} + +resource_schema "aws_iot_thing_type" { + cloudformation_type_name = "AWS::IoT::ThingType" +} + +resource_schema "aws_iot_topic_rule" { + cloudformation_type_name = "AWS::IoT::TopicRule" +} + +resource_schema "aws_iot_topic_rule_destination" { + cloudformation_type_name = "AWS::IoT::TopicRuleDestination" +} + +resource_schema "aws_iotanalytics_channel" { + cloudformation_type_name = "AWS::IoTAnalytics::Channel" +} + +resource_schema "aws_iotanalytics_dataset" { + cloudformation_type_name = "AWS::IoTAnalytics::Dataset" +} + +resource_schema "aws_iotanalytics_datastore" { + cloudformation_type_name = "AWS::IoTAnalytics::Datastore" +} + +resource_schema "aws_iotanalytics_pipeline" { + cloudformation_type_name = "AWS::IoTAnalytics::Pipeline" +} + +resource_schema "aws_iotcoredeviceadvisor_suite_definition" { + cloudformation_type_name = "AWS::IoTCoreDeviceAdvisor::SuiteDefinition" +} + +resource_schema "aws_iotevents_alarm_model" { + cloudformation_type_name = "AWS::IoTEvents::AlarmModel" +} + +resource_schema "aws_iotevents_detector_model" { + cloudformation_type_name = "AWS::IoTEvents::DetectorModel" +} + +resource_schema "aws_iotevents_input" { + cloudformation_type_name = "AWS::IoTEvents::Input" +} + +resource_schema "aws_iotfleethub_application" { + cloudformation_type_name = "AWS::IoTFleetHub::Application" +} + +resource_schema "aws_iotfleetwise_campaign" { + cloudformation_type_name = "AWS::IoTFleetWise::Campaign" +} + +resource_schema "aws_iotfleetwise_decoder_manifest" { + cloudformation_type_name = "AWS::IoTFleetWise::DecoderManifest" +} + +resource_schema "aws_iotfleetwise_fleet" { + cloudformation_type_name = "AWS::IoTFleetWise::Fleet" +} + +resource_schema "aws_iotfleetwise_model_manifest" { + cloudformation_type_name = "AWS::IoTFleetWise::ModelManifest" +} + +resource_schema "aws_iotfleetwise_signal_catalog" { + cloudformation_type_name = "AWS::IoTFleetWise::SignalCatalog" +} + +resource_schema "aws_iotfleetwise_vehicle" { + cloudformation_type_name = "AWS::IoTFleetWise::Vehicle" +} + +resource_schema "aws_iotsitewise_access_policy" { + cloudformation_type_name = "AWS::IoTSiteWise::AccessPolicy" +} + +resource_schema "aws_iotsitewise_asset" { + cloudformation_type_name = "AWS::IoTSiteWise::Asset" +} + +resource_schema "aws_iotsitewise_asset_model" { + cloudformation_type_name = "AWS::IoTSiteWise::AssetModel" +} + +resource_schema "aws_iotsitewise_dashboard" { + cloudformation_type_name = "AWS::IoTSiteWise::Dashboard" +} + +resource_schema "aws_iotsitewise_gateway" { + cloudformation_type_name = "AWS::IoTSiteWise::Gateway" +} + +resource_schema "aws_iotsitewise_portal" { + cloudformation_type_name = "AWS::IoTSiteWise::Portal" +} + +resource_schema "aws_iotsitewise_project" { + cloudformation_type_name = "AWS::IoTSiteWise::Project" +} + +resource_schema "aws_iottwinmaker_component_type" { + cloudformation_type_name = "AWS::IoTTwinMaker::ComponentType" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_entity" { + cloudformation_type_name = "AWS::IoTTwinMaker::Entity" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_scene" { + cloudformation_type_name = "AWS::IoTTwinMaker::Scene" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_sync_job" { + cloudformation_type_name = "AWS::IoTTwinMaker::SyncJob" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_workspace" { + cloudformation_type_name = "AWS::IoTTwinMaker::Workspace" +} + +resource_schema "aws_iotwireless_destination" { + cloudformation_type_name = "AWS::IoTWireless::Destination" +} + +resource_schema "aws_iotwireless_device_profile" { + cloudformation_type_name = "AWS::IoTWireless::DeviceProfile" +} + +resource_schema "aws_iotwireless_fuota_task" { + cloudformation_type_name = "AWS::IoTWireless::FuotaTask" +} + +resource_schema "aws_iotwireless_multicast_group" { + cloudformation_type_name = "AWS::IoTWireless::MulticastGroup" +} + +resource_schema "aws_iotwireless_network_analyzer_configuration" { + cloudformation_type_name = "AWS::IoTWireless::NetworkAnalyzerConfiguration" +} + +resource_schema "aws_iotwireless_partner_account" { + cloudformation_type_name = "AWS::IoTWireless::PartnerAccount" +} + +resource_schema "aws_iotwireless_service_profile" { + cloudformation_type_name = "AWS::IoTWireless::ServiceProfile" +} + +resource_schema "aws_iotwireless_task_definition" { + cloudformation_type_name = "AWS::IoTWireless::TaskDefinition" +} + +resource_schema "aws_iotwireless_wireless_device" { + cloudformation_type_name = "AWS::IoTWireless::WirelessDevice" +} + +resource_schema "aws_iotwireless_wireless_device_import_task" { + cloudformation_type_name = "AWS::IoTWireless::WirelessDeviceImportTask" +} + +resource_schema "aws_iotwireless_wireless_gateway" { + cloudformation_type_name = "AWS::IoTWireless::WirelessGateway" +} + +resource_schema "aws_kms_alias" { + cloudformation_type_name = "AWS::KMS::Alias" +} + +resource_schema "aws_kms_key" { + cloudformation_type_name = "AWS::KMS::Key" +} + +resource_schema "aws_kms_replica_key" { + cloudformation_type_name = "AWS::KMS::ReplicaKey" +} + +resource_schema "aws_kafkaconnect_connector" { + cloudformation_type_name = "AWS::KafkaConnect::Connector" +} + +resource_schema "aws_kafkaconnect_custom_plugin" { + cloudformation_type_name = "AWS::KafkaConnect::CustomPlugin" +} + +resource_schema "aws_kafkaconnect_worker_configuration" { + cloudformation_type_name = "AWS::KafkaConnect::WorkerConfiguration" +} + +resource_schema "aws_kendra_data_source" { + cloudformation_type_name = "AWS::Kendra::DataSource" +} + +resource_schema "aws_kendra_faq" { + cloudformation_type_name = "AWS::Kendra::Faq" +} + +resource_schema "aws_kendra_index" { + cloudformation_type_name = "AWS::Kendra::Index" +} + +resource_schema "aws_kendraranking_execution_plan" { + cloudformation_type_name = "AWS::KendraRanking::ExecutionPlan" +} + +resource_schema "aws_kinesis_stream" { + cloudformation_type_name = "AWS::Kinesis::Stream" +} + +resource_schema "aws_kinesisanalyticsv2_application" { + cloudformation_type_name = "AWS::KinesisAnalyticsV2::Application" +} + +resource_schema "aws_kinesisfirehose_delivery_stream" { + cloudformation_type_name = "AWS::KinesisFirehose::DeliveryStream" +} + +resource_schema "aws_kinesisvideo_signaling_channel" { + cloudformation_type_name = "AWS::KinesisVideo::SignalingChannel" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_kinesisvideo_stream" { + cloudformation_type_name = "AWS::KinesisVideo::Stream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lakeformation_data_cells_filter" { + cloudformation_type_name = "AWS::LakeFormation::DataCellsFilter" +} + +resource_schema "aws_lakeformation_principal_permissions" { + cloudformation_type_name = "AWS::LakeFormation::PrincipalPermissions" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lakeformation_tag" { + cloudformation_type_name = "AWS::LakeFormation::Tag" +} + +resource_schema "aws_lakeformation_tag_association" { + cloudformation_type_name = "AWS::LakeFormation::TagAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_alias" { + cloudformation_type_name = "AWS::Lambda::Alias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_code_signing_config" { + cloudformation_type_name = "AWS::Lambda::CodeSigningConfig" +} + +resource_schema "aws_lambda_event_invoke_config" { + cloudformation_type_name = "AWS::Lambda::EventInvokeConfig" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_event_source_mapping" { + cloudformation_type_name = "AWS::Lambda::EventSourceMapping" +} + +resource_schema "aws_lambda_function" { + cloudformation_type_name = "AWS::Lambda::Function" +} + +resource_schema "aws_lambda_layer_version" { + cloudformation_type_name = "AWS::Lambda::LayerVersion" +} + +resource_schema "aws_lambda_layer_version_permission" { + cloudformation_type_name = "AWS::Lambda::LayerVersionPermission" +} + +resource_schema "aws_lambda_permission" { + cloudformation_type_name = "AWS::Lambda::Permission" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_url" { + cloudformation_type_name = "AWS::Lambda::Url" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_version" { + cloudformation_type_name = "AWS::Lambda::Version" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_launchwizard_deployment" { + cloudformation_type_name = "AWS::LaunchWizard::Deployment" +} + +resource_schema "aws_lex_bot" { + cloudformation_type_name = "AWS::Lex::Bot" +} + +resource_schema "aws_lex_bot_alias" { + cloudformation_type_name = "AWS::Lex::BotAlias" +} + +resource_schema "aws_lex_bot_version" { + cloudformation_type_name = "AWS::Lex::BotVersion" +} + +resource_schema "aws_lex_resource_policy" { + cloudformation_type_name = "AWS::Lex::ResourcePolicy" +} + +resource_schema "aws_licensemanager_grant" { + cloudformation_type_name = "AWS::LicenseManager::Grant" +} + +resource_schema "aws_licensemanager_license" { + cloudformation_type_name = "AWS::LicenseManager::License" +} + +resource_schema "aws_lightsail_alarm" { + cloudformation_type_name = "AWS::Lightsail::Alarm" +} + +resource_schema "aws_lightsail_bucket" { + cloudformation_type_name = "AWS::Lightsail::Bucket" +} + +resource_schema "aws_lightsail_certificate" { + cloudformation_type_name = "AWS::Lightsail::Certificate" +} + +resource_schema "aws_lightsail_container" { + cloudformation_type_name = "AWS::Lightsail::Container" +} + +resource_schema "aws_lightsail_database" { + cloudformation_type_name = "AWS::Lightsail::Database" +} + +resource_schema "aws_lightsail_disk" { + cloudformation_type_name = "AWS::Lightsail::Disk" +} + +resource_schema "aws_lightsail_distribution" { + cloudformation_type_name = "AWS::Lightsail::Distribution" +} + +resource_schema "aws_lightsail_instance" { + cloudformation_type_name = "AWS::Lightsail::Instance" +} + +resource_schema "aws_lightsail_load_balancer" { + cloudformation_type_name = "AWS::Lightsail::LoadBalancer" +} + +resource_schema "aws_lightsail_load_balancer_tls_certificate" { + cloudformation_type_name = "AWS::Lightsail::LoadBalancerTlsCertificate" +} + +resource_schema "aws_lightsail_static_ip" { + cloudformation_type_name = "AWS::Lightsail::StaticIp" +} + +resource_schema "aws_location_api_key" { + cloudformation_type_name = "AWS::Location::APIKey" +} + +resource_schema "aws_location_geofence_collection" { + cloudformation_type_name = "AWS::Location::GeofenceCollection" +} + +resource_schema "aws_location_map" { + cloudformation_type_name = "AWS::Location::Map" +} + +resource_schema "aws_location_place_index" { + cloudformation_type_name = "AWS::Location::PlaceIndex" +} + +resource_schema "aws_location_route_calculator" { + cloudformation_type_name = "AWS::Location::RouteCalculator" +} + +resource_schema "aws_location_tracker" { + cloudformation_type_name = "AWS::Location::Tracker" +} + +resource_schema "aws_location_tracker_consumer" { + cloudformation_type_name = "AWS::Location::TrackerConsumer" +} + +resource_schema "aws_logs_account_policy" { + cloudformation_type_name = "AWS::Logs::AccountPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_logs_delivery" { + cloudformation_type_name = "AWS::Logs::Delivery" +} + +resource_schema "aws_logs_delivery_destination" { + cloudformation_type_name = "AWS::Logs::DeliveryDestination" +} + +resource_schema "aws_logs_delivery_source" { + cloudformation_type_name = "AWS::Logs::DeliverySource" +} + +resource_schema "aws_logs_destination" { + cloudformation_type_name = "AWS::Logs::Destination" +} + +resource_schema "aws_logs_log_anomaly_detector" { + cloudformation_type_name = "AWS::Logs::LogAnomalyDetector" +} + +resource_schema "aws_logs_log_group" { + cloudformation_type_name = "AWS::Logs::LogGroup" +} + +resource_schema "aws_logs_log_stream" { + cloudformation_type_name = "AWS::Logs::LogStream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_logs_metric_filter" { + cloudformation_type_name = "AWS::Logs::MetricFilter" +} + +resource_schema "aws_logs_query_definition" { + cloudformation_type_name = "AWS::Logs::QueryDefinition" +} + +resource_schema "aws_logs_resource_policy" { + cloudformation_type_name = "AWS::Logs::ResourcePolicy" +} + +resource_schema "aws_logs_subscription_filter" { + cloudformation_type_name = "AWS::Logs::SubscriptionFilter" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lookoutequipment_inference_scheduler" { + cloudformation_type_name = "AWS::LookoutEquipment::InferenceScheduler" +} + +resource_schema "aws_lookoutmetrics_alert" { + cloudformation_type_name = "AWS::LookoutMetrics::Alert" +} + +resource_schema "aws_lookoutmetrics_anomaly_detector" { + cloudformation_type_name = "AWS::LookoutMetrics::AnomalyDetector" +} + +resource_schema "aws_lookoutvision_project" { + cloudformation_type_name = "AWS::LookoutVision::Project" +} + +resource_schema "aws_m2_application" { + cloudformation_type_name = "AWS::M2::Application" +} + +resource_schema "aws_m2_environment" { + cloudformation_type_name = "AWS::M2::Environment" +} + +resource_schema "aws_msk_batch_scram_secret" { + cloudformation_type_name = "AWS::MSK::BatchScramSecret" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_msk_cluster" { + cloudformation_type_name = "AWS::MSK::Cluster" +} + +resource_schema "aws_msk_cluster_policy" { + cloudformation_type_name = "AWS::MSK::ClusterPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_msk_configuration" { + cloudformation_type_name = "AWS::MSK::Configuration" +} + +resource_schema "aws_msk_replicator" { + cloudformation_type_name = "AWS::MSK::Replicator" +} + +resource_schema "aws_msk_serverless_cluster" { + cloudformation_type_name = "AWS::MSK::ServerlessCluster" +} + +resource_schema "aws_msk_vpc_connection" { + cloudformation_type_name = "AWS::MSK::VpcConnection" +} + +resource_schema "aws_mwaa_environment" { + cloudformation_type_name = "AWS::MWAA::Environment" +} + +resource_schema "aws_macie_allow_list" { + cloudformation_type_name = "AWS::Macie::AllowList" +} + +resource_schema "aws_macie_custom_data_identifier" { + cloudformation_type_name = "AWS::Macie::CustomDataIdentifier" +} + +resource_schema "aws_macie_findings_filter" { + cloudformation_type_name = "AWS::Macie::FindingsFilter" +} + +resource_schema "aws_macie_session" { + cloudformation_type_name = "AWS::Macie::Session" +} + +resource_schema "aws_managedblockchain_accessor" { + cloudformation_type_name = "AWS::ManagedBlockchain::Accessor" +} + +resource_schema "aws_mediaconnect_bridge" { + cloudformation_type_name = "AWS::MediaConnect::Bridge" +} + +resource_schema "aws_mediaconnect_bridge_output" { + cloudformation_type_name = "AWS::MediaConnect::BridgeOutput" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediaconnect_bridge_source" { + cloudformation_type_name = "AWS::MediaConnect::BridgeSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediaconnect_flow" { + cloudformation_type_name = "AWS::MediaConnect::Flow" +} + +resource_schema "aws_mediaconnect_flow_entitlement" { + cloudformation_type_name = "AWS::MediaConnect::FlowEntitlement" +} + +resource_schema "aws_mediaconnect_flow_output" { + cloudformation_type_name = "AWS::MediaConnect::FlowOutput" +} + +resource_schema "aws_mediaconnect_flow_source" { + cloudformation_type_name = "AWS::MediaConnect::FlowSource" +} + +resource_schema "aws_mediaconnect_flow_vpc_interface" { + cloudformation_type_name = "AWS::MediaConnect::FlowVpcInterface" +} + +resource_schema "aws_mediaconnect_gateway" { + cloudformation_type_name = "AWS::MediaConnect::Gateway" +} + +resource_schema "aws_medialive_multiplex" { + cloudformation_type_name = "AWS::MediaLive::Multiplex" +} + +resource_schema "aws_medialive_multiplexprogram" { + cloudformation_type_name = "AWS::MediaLive::Multiplexprogram" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackage_asset" { + cloudformation_type_name = "AWS::MediaPackage::Asset" +} + +resource_schema "aws_mediapackage_channel" { + cloudformation_type_name = "AWS::MediaPackage::Channel" +} + +resource_schema "aws_mediapackage_origin_endpoint" { + cloudformation_type_name = "AWS::MediaPackage::OriginEndpoint" +} + +resource_schema "aws_mediapackage_packaging_configuration" { + cloudformation_type_name = "AWS::MediaPackage::PackagingConfiguration" +} + +resource_schema "aws_mediapackage_packaging_group" { + cloudformation_type_name = "AWS::MediaPackage::PackagingGroup" +} + +resource_schema "aws_mediapackagev2_channel" { + cloudformation_type_name = "AWS::MediaPackageV2::Channel" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackagev2_channel_group" { + cloudformation_type_name = "AWS::MediaPackageV2::ChannelGroup" +} + +resource_schema "aws_mediapackagev2_channel_policy" { + cloudformation_type_name = "AWS::MediaPackageV2::ChannelPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackagev2_origin_endpoint" { + cloudformation_type_name = "AWS::MediaPackageV2::OriginEndpoint" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackagev2_origin_endpoint_policy" { + cloudformation_type_name = "AWS::MediaPackageV2::OriginEndpointPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediatailor_channel" { + cloudformation_type_name = "AWS::MediaTailor::Channel" +} + +resource_schema "aws_mediatailor_channel_policy" { + cloudformation_type_name = "AWS::MediaTailor::ChannelPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediatailor_live_source" { + cloudformation_type_name = "AWS::MediaTailor::LiveSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediatailor_playback_configuration" { + cloudformation_type_name = "AWS::MediaTailor::PlaybackConfiguration" +} + +resource_schema "aws_mediatailor_source_location" { + cloudformation_type_name = "AWS::MediaTailor::SourceLocation" +} + +resource_schema "aws_mediatailor_vod_source" { + cloudformation_type_name = "AWS::MediaTailor::VodSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_memorydb_acl" { + cloudformation_type_name = "AWS::MemoryDB::ACL" +} + +resource_schema "aws_memorydb_cluster" { + cloudformation_type_name = "AWS::MemoryDB::Cluster" +} + +resource_schema "aws_memorydb_parameter_group" { + cloudformation_type_name = "AWS::MemoryDB::ParameterGroup" +} + +resource_schema "aws_memorydb_subnet_group" { + cloudformation_type_name = "AWS::MemoryDB::SubnetGroup" +} + +resource_schema "aws_memorydb_user" { + cloudformation_type_name = "AWS::MemoryDB::User" +} + +resource_schema "aws_neptune_db_cluster" { + cloudformation_type_name = "AWS::Neptune::DBCluster" +} + +resource_schema "aws_neptunegraph_graph" { + cloudformation_type_name = "AWS::NeptuneGraph::Graph" +} + +resource_schema "aws_neptunegraph_private_graph_endpoint" { + cloudformation_type_name = "AWS::NeptuneGraph::PrivateGraphEndpoint" +} + +resource_schema "aws_networkfirewall_firewall" { + cloudformation_type_name = "AWS::NetworkFirewall::Firewall" +} + +resource_schema "aws_networkfirewall_firewall_policy" { + cloudformation_type_name = "AWS::NetworkFirewall::FirewallPolicy" +} + +resource_schema "aws_networkfirewall_logging_configuration" { + cloudformation_type_name = "AWS::NetworkFirewall::LoggingConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkfirewall_rule_group" { + cloudformation_type_name = "AWS::NetworkFirewall::RuleGroup" +} + +resource_schema "aws_networkfirewall_tls_inspection_configuration" { + cloudformation_type_name = "AWS::NetworkFirewall::TLSInspectionConfiguration" +} + +resource_schema "aws_networkmanager_connect_attachment" { + cloudformation_type_name = "AWS::NetworkManager::ConnectAttachment" +} + +resource_schema "aws_networkmanager_connect_peer" { + cloudformation_type_name = "AWS::NetworkManager::ConnectPeer" +} + +resource_schema "aws_networkmanager_core_network" { + cloudformation_type_name = "AWS::NetworkManager::CoreNetwork" +} + +resource_schema "aws_networkmanager_customer_gateway_association" { + cloudformation_type_name = "AWS::NetworkManager::CustomerGatewayAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_device" { + cloudformation_type_name = "AWS::NetworkManager::Device" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_global_network" { + cloudformation_type_name = "AWS::NetworkManager::GlobalNetwork" +} + +resource_schema "aws_networkmanager_link" { + cloudformation_type_name = "AWS::NetworkManager::Link" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_link_association" { + cloudformation_type_name = "AWS::NetworkManager::LinkAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_site" { + cloudformation_type_name = "AWS::NetworkManager::Site" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_site_to_site_vpn_attachment" { + cloudformation_type_name = "AWS::NetworkManager::SiteToSiteVpnAttachment" +} + +resource_schema "aws_networkmanager_transit_gateway_peering" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayPeering" +} + +resource_schema "aws_networkmanager_transit_gateway_registration" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayRegistration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_transit_gateway_route_table_attachment" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayRouteTableAttachment" +} + +resource_schema "aws_networkmanager_vpc_attachment" { + cloudformation_type_name = "AWS::NetworkManager::VpcAttachment" +} + +resource_schema "aws_nimblestudio_launch_profile" { + cloudformation_type_name = "AWS::NimbleStudio::LaunchProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_nimblestudio_streaming_image" { + cloudformation_type_name = "AWS::NimbleStudio::StreamingImage" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_nimblestudio_studio" { + cloudformation_type_name = "AWS::NimbleStudio::Studio" +} + +resource_schema "aws_nimblestudio_studio_component" { + cloudformation_type_name = "AWS::NimbleStudio::StudioComponent" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_osis_pipeline" { + cloudformation_type_name = "AWS::OSIS::Pipeline" +} + +resource_schema "aws_oam_link" { + cloudformation_type_name = "AWS::Oam::Link" +} + +resource_schema "aws_oam_sink" { + cloudformation_type_name = "AWS::Oam::Sink" +} + +resource_schema "aws_omics_annotation_store" { + cloudformation_type_name = "AWS::Omics::AnnotationStore" +} + +resource_schema "aws_omics_reference_store" { + cloudformation_type_name = "AWS::Omics::ReferenceStore" +} + +resource_schema "aws_omics_run_group" { + cloudformation_type_name = "AWS::Omics::RunGroup" +} + +resource_schema "aws_omics_sequence_store" { + cloudformation_type_name = "AWS::Omics::SequenceStore" +} + +resource_schema "aws_omics_variant_store" { + cloudformation_type_name = "AWS::Omics::VariantStore" +} + +resource_schema "aws_omics_workflow" { + cloudformation_type_name = "AWS::Omics::Workflow" +} + +resource_schema "aws_opensearchserverless_access_policy" { + cloudformation_type_name = "AWS::OpenSearchServerless::AccessPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_collection" { + cloudformation_type_name = "AWS::OpenSearchServerless::Collection" +} + +resource_schema "aws_opensearchserverless_lifecycle_policy" { + cloudformation_type_name = "AWS::OpenSearchServerless::LifecyclePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_security_config" { + cloudformation_type_name = "AWS::OpenSearchServerless::SecurityConfig" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_security_policy" { + cloudformation_type_name = "AWS::OpenSearchServerless::SecurityPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_vpc_endpoint" { + cloudformation_type_name = "AWS::OpenSearchServerless::VpcEndpoint" +} + +resource_schema "aws_opensearchservice_domain" { + cloudformation_type_name = "AWS::OpenSearchService::Domain" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opsworkscm_server" { + cloudformation_type_name = "AWS::OpsWorksCM::Server" +} + +resource_schema "aws_organizations_account" { + cloudformation_type_name = "AWS::Organizations::Account" +} + +resource_schema "aws_organizations_organization" { + cloudformation_type_name = "AWS::Organizations::Organization" +} + +resource_schema "aws_organizations_organizational_unit" { + cloudformation_type_name = "AWS::Organizations::OrganizationalUnit" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_organizations_policy" { + cloudformation_type_name = "AWS::Organizations::Policy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_organizations_resource_policy" { + cloudformation_type_name = "AWS::Organizations::ResourcePolicy" +} + +resource_schema "aws_pcaconnectorad_connector" { + cloudformation_type_name = "AWS::PCAConnectorAD::Connector" +} + +resource_schema "aws_pcaconnectorad_directory_registration" { + cloudformation_type_name = "AWS::PCAConnectorAD::DirectoryRegistration" +} + +resource_schema "aws_pcaconnectorad_service_principal_name" { + cloudformation_type_name = "AWS::PCAConnectorAD::ServicePrincipalName" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorad_template" { + cloudformation_type_name = "AWS::PCAConnectorAD::Template" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorad_template_group_access_control_entry" { + cloudformation_type_name = "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_panorama_application_instance" { + cloudformation_type_name = "AWS::Panorama::ApplicationInstance" +} + +resource_schema "aws_panorama_package" { + cloudformation_type_name = "AWS::Panorama::Package" +} + +resource_schema "aws_panorama_package_version" { + cloudformation_type_name = "AWS::Panorama::PackageVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_paymentcryptography_alias" { + cloudformation_type_name = "AWS::PaymentCryptography::Alias" +} + +resource_schema "aws_paymentcryptography_key" { + cloudformation_type_name = "AWS::PaymentCryptography::Key" +} + +resource_schema "aws_personalize_dataset" { + cloudformation_type_name = "AWS::Personalize::Dataset" +} + +resource_schema "aws_personalize_dataset_group" { + cloudformation_type_name = "AWS::Personalize::DatasetGroup" +} + +resource_schema "aws_personalize_schema" { + cloudformation_type_name = "AWS::Personalize::Schema" +} + +resource_schema "aws_personalize_solution" { + cloudformation_type_name = "AWS::Personalize::Solution" +} + +resource_schema "aws_pinpoint_in_app_template" { + cloudformation_type_name = "AWS::Pinpoint::InAppTemplate" +} + +resource_schema "aws_pipes_pipe" { + cloudformation_type_name = "AWS::Pipes::Pipe" +} + +resource_schema "aws_proton_environment_account_connection" { + cloudformation_type_name = "AWS::Proton::EnvironmentAccountConnection" +} + +resource_schema "aws_proton_environment_template" { + cloudformation_type_name = "AWS::Proton::EnvironmentTemplate" +} + +resource_schema "aws_proton_service_template" { + cloudformation_type_name = "AWS::Proton::ServiceTemplate" +} + +resource_schema "aws_qbusiness_application" { + cloudformation_type_name = "AWS::QBusiness::Application" +} + +resource_schema "aws_qbusiness_data_source" { + cloudformation_type_name = "AWS::QBusiness::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_index" { + cloudformation_type_name = "AWS::QBusiness::Index" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_plugin" { + cloudformation_type_name = "AWS::QBusiness::Plugin" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_retriever" { + cloudformation_type_name = "AWS::QBusiness::Retriever" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_web_experience" { + cloudformation_type_name = "AWS::QBusiness::WebExperience" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qldb_stream" { + cloudformation_type_name = "AWS::QLDB::Stream" +} + +resource_schema "aws_quicksight_analysis" { + cloudformation_type_name = "AWS::QuickSight::Analysis" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_dashboard" { + cloudformation_type_name = "AWS::QuickSight::Dashboard" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_data_set" { + cloudformation_type_name = "AWS::QuickSight::DataSet" +} + +resource_schema "aws_quicksight_data_source" { + cloudformation_type_name = "AWS::QuickSight::DataSource" +} + +resource_schema "aws_quicksight_refresh_schedule" { + cloudformation_type_name = "AWS::QuickSight::RefreshSchedule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_template" { + cloudformation_type_name = "AWS::QuickSight::Template" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_theme" { + cloudformation_type_name = "AWS::QuickSight::Theme" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_topic" { + cloudformation_type_name = "AWS::QuickSight::Topic" +} + +resource_schema "aws_quicksight_vpc_connection" { + cloudformation_type_name = "AWS::QuickSight::VPCConnection" +} + +resource_schema "aws_ram_permission" { + cloudformation_type_name = "AWS::RAM::Permission" +} + +resource_schema "aws_rds_custom_db_engine_version" { + cloudformation_type_name = "AWS::RDS::CustomDBEngineVersion" +} + +resource_schema "aws_rds_db_cluster" { + cloudformation_type_name = "AWS::RDS::DBCluster" +} + +resource_schema "aws_rds_db_cluster_parameter_group" { + cloudformation_type_name = "AWS::RDS::DBClusterParameterGroup" +} + +resource_schema "aws_rds_db_instance" { + cloudformation_type_name = "AWS::RDS::DBInstance" +} + +resource_schema "aws_rds_db_parameter_group" { + cloudformation_type_name = "AWS::RDS::DBParameterGroup" +} + +resource_schema "aws_rds_db_proxy" { + cloudformation_type_name = "AWS::RDS::DBProxy" +} + +resource_schema "aws_rds_db_proxy_endpoint" { + cloudformation_type_name = "AWS::RDS::DBProxyEndpoint" +} + +resource_schema "aws_rds_db_proxy_target_group" { + cloudformation_type_name = "AWS::RDS::DBProxyTargetGroup" +} + +resource_schema "aws_rds_db_subnet_group" { + cloudformation_type_name = "AWS::RDS::DBSubnetGroup" +} + +resource_schema "aws_rds_event_subscription" { + cloudformation_type_name = "AWS::RDS::EventSubscription" +} + +resource_schema "aws_rds_global_cluster" { + cloudformation_type_name = "AWS::RDS::GlobalCluster" +} + +resource_schema "aws_rds_integration" { + cloudformation_type_name = "AWS::RDS::Integration" +} + +resource_schema "aws_rds_option_group" { + cloudformation_type_name = "AWS::RDS::OptionGroup" +} + +resource_schema "aws_rum_app_monitor" { + cloudformation_type_name = "AWS::RUM::AppMonitor" +} + +resource_schema "aws_redshift_cluster" { + cloudformation_type_name = "AWS::Redshift::Cluster" +} + +resource_schema "aws_redshift_cluster_parameter_group" { + cloudformation_type_name = "AWS::Redshift::ClusterParameterGroup" +} + +resource_schema "aws_redshift_cluster_subnet_group" { + cloudformation_type_name = "AWS::Redshift::ClusterSubnetGroup" +} + +resource_schema "aws_redshift_endpoint_access" { + cloudformation_type_name = "AWS::Redshift::EndpointAccess" +} + +resource_schema "aws_redshift_endpoint_authorization" { + cloudformation_type_name = "AWS::Redshift::EndpointAuthorization" +} + +resource_schema "aws_redshift_event_subscription" { + cloudformation_type_name = "AWS::Redshift::EventSubscription" +} + +resource_schema "aws_redshift_scheduled_action" { + cloudformation_type_name = "AWS::Redshift::ScheduledAction" +} + +resource_schema "aws_redshiftserverless_namespace" { + cloudformation_type_name = "AWS::RedshiftServerless::Namespace" +} + +resource_schema "aws_redshiftserverless_workgroup" { + cloudformation_type_name = "AWS::RedshiftServerless::Workgroup" +} + +resource_schema "aws_refactorspaces_application" { + cloudformation_type_name = "AWS::RefactorSpaces::Application" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_refactorspaces_environment" { + cloudformation_type_name = "AWS::RefactorSpaces::Environment" +} + +resource_schema "aws_refactorspaces_route" { + cloudformation_type_name = "AWS::RefactorSpaces::Route" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_refactorspaces_service" { + cloudformation_type_name = "AWS::RefactorSpaces::Service" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_rekognition_collection" { + cloudformation_type_name = "AWS::Rekognition::Collection" +} + +resource_schema "aws_rekognition_project" { + cloudformation_type_name = "AWS::Rekognition::Project" +} + +resource_schema "aws_rekognition_stream_processor" { + cloudformation_type_name = "AWS::Rekognition::StreamProcessor" +} + +resource_schema "aws_resiliencehub_app" { + cloudformation_type_name = "AWS::ResilienceHub::App" +} + +resource_schema "aws_resiliencehub_resiliency_policy" { + cloudformation_type_name = "AWS::ResilienceHub::ResiliencyPolicy" +} + +resource_schema "aws_resourceexplorer2_default_view_association" { + cloudformation_type_name = "AWS::ResourceExplorer2::DefaultViewAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_resourceexplorer2_index" { + cloudformation_type_name = "AWS::ResourceExplorer2::Index" +} + +resource_schema "aws_resourceexplorer2_view" { + cloudformation_type_name = "AWS::ResourceExplorer2::View" +} + +resource_schema "aws_resourcegroups_group" { + cloudformation_type_name = "AWS::ResourceGroups::Group" +} + +resource_schema "aws_robomaker_fleet" { + cloudformation_type_name = "AWS::RoboMaker::Fleet" +} + +resource_schema "aws_robomaker_robot" { + cloudformation_type_name = "AWS::RoboMaker::Robot" +} + +resource_schema "aws_robomaker_robot_application" { + cloudformation_type_name = "AWS::RoboMaker::RobotApplication" +} + +resource_schema "aws_robomaker_robot_application_version" { + cloudformation_type_name = "AWS::RoboMaker::RobotApplicationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_robomaker_simulation_application" { + cloudformation_type_name = "AWS::RoboMaker::SimulationApplication" +} + +resource_schema "aws_robomaker_simulation_application_version" { + cloudformation_type_name = "AWS::RoboMaker::SimulationApplicationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_rolesanywhere_crl" { + cloudformation_type_name = "AWS::RolesAnywhere::CRL" +} + +resource_schema "aws_rolesanywhere_profile" { + cloudformation_type_name = "AWS::RolesAnywhere::Profile" +} + +resource_schema "aws_rolesanywhere_trust_anchor" { + cloudformation_type_name = "AWS::RolesAnywhere::TrustAnchor" +} + +resource_schema "aws_route53_cidr_collection" { + cloudformation_type_name = "AWS::Route53::CidrCollection" +} + +resource_schema "aws_route53_dnssec" { + cloudformation_type_name = "AWS::Route53::DNSSEC" +} + +resource_schema "aws_route53_health_check" { + cloudformation_type_name = "AWS::Route53::HealthCheck" +} + +resource_schema "aws_route53_hosted_zone" { + cloudformation_type_name = "AWS::Route53::HostedZone" +} + +resource_schema "aws_route53_key_signing_key" { + cloudformation_type_name = "AWS::Route53::KeySigningKey" +} + +resource_schema "aws_route53profiles_profile" { + cloudformation_type_name = "AWS::Route53Profiles::Profile" +} + +resource_schema "aws_route53profiles_profile_association" { + cloudformation_type_name = "AWS::Route53Profiles::ProfileAssociation" +} + +resource_schema "aws_route53profiles_profile_resource_association" { + cloudformation_type_name = "AWS::Route53Profiles::ProfileResourceAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53recoverycontrol_cluster" { + cloudformation_type_name = "AWS::Route53RecoveryControl::Cluster" +} + +resource_schema "aws_route53recoverycontrol_control_panel" { + cloudformation_type_name = "AWS::Route53RecoveryControl::ControlPanel" +} + +resource_schema "aws_route53recoverycontrol_routing_control" { + cloudformation_type_name = "AWS::Route53RecoveryControl::RoutingControl" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53recoverycontrol_safety_rule" { + cloudformation_type_name = "AWS::Route53RecoveryControl::SafetyRule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53recoveryreadiness_cell" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::Cell" +} + +resource_schema "aws_route53recoveryreadiness_readiness_check" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::ReadinessCheck" +} + +resource_schema "aws_route53recoveryreadiness_recovery_group" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::RecoveryGroup" +} + +resource_schema "aws_route53recoveryreadiness_resource_set" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::ResourceSet" +} + +resource_schema "aws_route53resolver_firewall_domain_list" { + cloudformation_type_name = "AWS::Route53Resolver::FirewallDomainList" +} + +resource_schema "aws_route53resolver_firewall_rule_group" { + cloudformation_type_name = "AWS::Route53Resolver::FirewallRuleGroup" +} + +resource_schema "aws_route53resolver_firewall_rule_group_association" { + cloudformation_type_name = "AWS::Route53Resolver::FirewallRuleGroupAssociation" +} + +resource_schema "aws_route53resolver_outpost_resolver" { + cloudformation_type_name = "AWS::Route53Resolver::OutpostResolver" +} + +resource_schema "aws_route53resolver_resolver_config" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverConfig" +} + +resource_schema "aws_route53resolver_resolver_dnssec_config" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverDNSSECConfig" +} + +resource_schema "aws_route53resolver_resolver_query_logging_config" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverQueryLoggingConfig" +} + +resource_schema "aws_route53resolver_resolver_query_logging_config_association" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation" +} + +resource_schema "aws_route53resolver_resolver_rule" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverRule" +} + +resource_schema "aws_route53resolver_resolver_rule_association" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverRuleAssociation" +} + +resource_schema "aws_s3_access_grant" { + cloudformation_type_name = "AWS::S3::AccessGrant" +} + +resource_schema "aws_s3_access_grants_instance" { + cloudformation_type_name = "AWS::S3::AccessGrantsInstance" +} + +resource_schema "aws_s3_access_grants_location" { + cloudformation_type_name = "AWS::S3::AccessGrantsLocation" +} + +resource_schema "aws_s3_access_point" { + cloudformation_type_name = "AWS::S3::AccessPoint" +} + +resource_schema "aws_s3_bucket" { + cloudformation_type_name = "AWS::S3::Bucket" +} + +resource_schema "aws_s3_bucket_policy" { + cloudformation_type_name = "AWS::S3::BucketPolicy" +} + +resource_schema "aws_s3_multi_region_access_point" { + cloudformation_type_name = "AWS::S3::MultiRegionAccessPoint" +} + +resource_schema "aws_s3_multi_region_access_point_policy" { + cloudformation_type_name = "AWS::S3::MultiRegionAccessPointPolicy" +} + +resource_schema "aws_s3_storage_lens" { + cloudformation_type_name = "AWS::S3::StorageLens" +} + +resource_schema "aws_s3_storage_lens_group" { + cloudformation_type_name = "AWS::S3::StorageLensGroup" +} + +resource_schema "aws_s3express_bucket_policy" { + cloudformation_type_name = "AWS::S3Express::BucketPolicy" +} + +resource_schema "aws_s3express_directory_bucket" { + cloudformation_type_name = "AWS::S3Express::DirectoryBucket" +} + +resource_schema "aws_s3objectlambda_access_point" { + cloudformation_type_name = "AWS::S3ObjectLambda::AccessPoint" +} + +resource_schema "aws_s3objectlambda_access_point_policy" { + cloudformation_type_name = "AWS::S3ObjectLambda::AccessPointPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_access_point" { + cloudformation_type_name = "AWS::S3Outposts::AccessPoint" +} + +resource_schema "aws_s3outposts_bucket" { + cloudformation_type_name = "AWS::S3Outposts::Bucket" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_bucket_policy" { + cloudformation_type_name = "AWS::S3Outposts::BucketPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_endpoint" { + cloudformation_type_name = "AWS::S3Outposts::Endpoint" +} + +resource_schema "aws_ses_configuration_set" { + cloudformation_type_name = "AWS::SES::ConfigurationSet" +} + +resource_schema "aws_ses_configuration_set_event_destination" { + cloudformation_type_name = "AWS::SES::ConfigurationSetEventDestination" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ses_contact_list" { + cloudformation_type_name = "AWS::SES::ContactList" +} + +resource_schema "aws_ses_dedicated_ip_pool" { + cloudformation_type_name = "AWS::SES::DedicatedIpPool" +} + +resource_schema "aws_ses_email_identity" { + cloudformation_type_name = "AWS::SES::EmailIdentity" +} + +resource_schema "aws_ses_mail_manager_addon_instance" { + cloudformation_type_name = "AWS::SES::MailManagerAddonInstance" +} + +resource_schema "aws_ses_mail_manager_addon_subscription" { + cloudformation_type_name = "AWS::SES::MailManagerAddonSubscription" +} + +resource_schema "aws_ses_mail_manager_archive" { + cloudformation_type_name = "AWS::SES::MailManagerArchive" +} + +resource_schema "aws_ses_mail_manager_ingress_point" { + cloudformation_type_name = "AWS::SES::MailManagerIngressPoint" +} + +resource_schema "aws_ses_mail_manager_relay" { + cloudformation_type_name = "AWS::SES::MailManagerRelay" +} + +resource_schema "aws_ses_mail_manager_rule_set" { + cloudformation_type_name = "AWS::SES::MailManagerRuleSet" +} + +resource_schema "aws_ses_mail_manager_traffic_policy" { + cloudformation_type_name = "AWS::SES::MailManagerTrafficPolicy" +} + +resource_schema "aws_ses_template" { + cloudformation_type_name = "AWS::SES::Template" +} + +resource_schema "aws_ses_vdm_attributes" { + cloudformation_type_name = "AWS::SES::VdmAttributes" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sns_topic" { + cloudformation_type_name = "AWS::SNS::Topic" +} + +resource_schema "aws_sns_topic_inline_policy" { + cloudformation_type_name = "AWS::SNS::TopicInlinePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sqs_queue" { + cloudformation_type_name = "AWS::SQS::Queue" +} + +resource_schema "aws_sqs_queue_inline_policy" { + cloudformation_type_name = "AWS::SQS::QueueInlinePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ssm_association" { + cloudformation_type_name = "AWS::SSM::Association" +} + +resource_schema "aws_ssm_document" { + cloudformation_type_name = "AWS::SSM::Document" +} + +resource_schema "aws_ssm_parameter" { + cloudformation_type_name = "AWS::SSM::Parameter" +} + +resource_schema "aws_ssm_patch_baseline" { + cloudformation_type_name = "AWS::SSM::PatchBaseline" +} + +resource_schema "aws_ssm_resource_data_sync" { + cloudformation_type_name = "AWS::SSM::ResourceDataSync" +} + +resource_schema "aws_ssm_resource_policy" { + cloudformation_type_name = "AWS::SSM::ResourcePolicy" +} + +resource_schema "aws_ssmcontacts_contact" { + cloudformation_type_name = "AWS::SSMContacts::Contact" +} + +resource_schema "aws_ssmcontacts_contact_channel" { + cloudformation_type_name = "AWS::SSMContacts::ContactChannel" +} + +resource_schema "aws_ssmcontacts_plan" { + cloudformation_type_name = "AWS::SSMContacts::Plan" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ssmcontacts_rotation" { + cloudformation_type_name = "AWS::SSMContacts::Rotation" +} + +resource_schema "aws_ssmincidents_replication_set" { + cloudformation_type_name = "AWS::SSMIncidents::ReplicationSet" +} + +resource_schema "aws_ssmincidents_response_plan" { + cloudformation_type_name = "AWS::SSMIncidents::ResponsePlan" +} + +resource_schema "aws_sso_application" { + cloudformation_type_name = "AWS::SSO::Application" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sso_application_assignment" { + cloudformation_type_name = "AWS::SSO::ApplicationAssignment" +} + +resource_schema "aws_sso_assignment" { + cloudformation_type_name = "AWS::SSO::Assignment" +} + +resource_schema "aws_sso_instance" { + cloudformation_type_name = "AWS::SSO::Instance" +} + +resource_schema "aws_sso_instance_access_control_attribute_configuration" { + cloudformation_type_name = "AWS::SSO::InstanceAccessControlAttributeConfiguration" +} + +resource_schema "aws_sso_permission_set" { + cloudformation_type_name = "AWS::SSO::PermissionSet" +} + +resource_schema "aws_sagemaker_app" { + cloudformation_type_name = "AWS::SageMaker::App" +} + +resource_schema "aws_sagemaker_app_image_config" { + cloudformation_type_name = "AWS::SageMaker::AppImageConfig" +} + +resource_schema "aws_sagemaker_data_quality_job_definition" { + cloudformation_type_name = "AWS::SageMaker::DataQualityJobDefinition" +} + +resource_schema "aws_sagemaker_device" { + cloudformation_type_name = "AWS::SageMaker::Device" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_device_fleet" { + cloudformation_type_name = "AWS::SageMaker::DeviceFleet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_domain" { + cloudformation_type_name = "AWS::SageMaker::Domain" +} + +resource_schema "aws_sagemaker_feature_group" { + cloudformation_type_name = "AWS::SageMaker::FeatureGroup" +} + +resource_schema "aws_sagemaker_image" { + cloudformation_type_name = "AWS::SageMaker::Image" +} + +resource_schema "aws_sagemaker_image_version" { + cloudformation_type_name = "AWS::SageMaker::ImageVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_inference_component" { + cloudformation_type_name = "AWS::SageMaker::InferenceComponent" +} + +resource_schema "aws_sagemaker_inference_experiment" { + cloudformation_type_name = "AWS::SageMaker::InferenceExperiment" +} + +resource_schema "aws_sagemaker_mlflow_tracking_server" { + cloudformation_type_name = "AWS::SageMaker::MlflowTrackingServer" +} + +resource_schema "aws_sagemaker_model_bias_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelBiasJobDefinition" +} + +resource_schema "aws_sagemaker_model_card" { + cloudformation_type_name = "AWS::SageMaker::ModelCard" +} + +resource_schema "aws_sagemaker_model_explainability_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelExplainabilityJobDefinition" +} + +resource_schema "aws_sagemaker_model_package" { + cloudformation_type_name = "AWS::SageMaker::ModelPackage" +} + +resource_schema "aws_sagemaker_model_package_group" { + cloudformation_type_name = "AWS::SageMaker::ModelPackageGroup" +} + +resource_schema "aws_sagemaker_model_quality_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelQualityJobDefinition" +} + +resource_schema "aws_sagemaker_monitoring_schedule" { + cloudformation_type_name = "AWS::SageMaker::MonitoringSchedule" +} + +resource_schema "aws_sagemaker_pipeline" { + cloudformation_type_name = "AWS::SageMaker::Pipeline" +} + +resource_schema "aws_sagemaker_project" { + cloudformation_type_name = "AWS::SageMaker::Project" +} + +resource_schema "aws_sagemaker_space" { + cloudformation_type_name = "AWS::SageMaker::Space" +} + +resource_schema "aws_sagemaker_studio_lifecycle_config" { + cloudformation_type_name = "AWS::SageMaker::StudioLifecycleConfig" +} + +resource_schema "aws_sagemaker_user_profile" { + cloudformation_type_name = "AWS::SageMaker::UserProfile" +} + +resource_schema "aws_scheduler_schedule" { + cloudformation_type_name = "AWS::Scheduler::Schedule" +} + +resource_schema "aws_scheduler_schedule_group" { + cloudformation_type_name = "AWS::Scheduler::ScheduleGroup" +} + +resource_schema "aws_secretsmanager_resource_policy" { + cloudformation_type_name = "AWS::SecretsManager::ResourcePolicy" +} + +resource_schema "aws_secretsmanager_secret" { + cloudformation_type_name = "AWS::SecretsManager::Secret" +} + +resource_schema "aws_securityhub_automation_rule" { + cloudformation_type_name = "AWS::SecurityHub::AutomationRule" +} + +resource_schema "aws_securityhub_configuration_policy" { + cloudformation_type_name = "AWS::SecurityHub::ConfigurationPolicy" +} + +resource_schema "aws_securityhub_delegated_admin" { + cloudformation_type_name = "AWS::SecurityHub::DelegatedAdmin" +} + +resource_schema "aws_securityhub_finding_aggregator" { + cloudformation_type_name = "AWS::SecurityHub::FindingAggregator" +} + +resource_schema "aws_securityhub_hub" { + cloudformation_type_name = "AWS::SecurityHub::Hub" +} + +resource_schema "aws_securityhub_insight" { + cloudformation_type_name = "AWS::SecurityHub::Insight" +} + +resource_schema "aws_securityhub_organization_configuration" { + cloudformation_type_name = "AWS::SecurityHub::OrganizationConfiguration" +} + +resource_schema "aws_securityhub_policy_association" { + cloudformation_type_name = "AWS::SecurityHub::PolicyAssociation" +} + +resource_schema "aws_securityhub_product_subscription" { + cloudformation_type_name = "AWS::SecurityHub::ProductSubscription" +} + +resource_schema "aws_securityhub_security_control" { + cloudformation_type_name = "AWS::SecurityHub::SecurityControl" +} + +resource_schema "aws_securityhub_standard" { + cloudformation_type_name = "AWS::SecurityHub::Standard" +} + +resource_schema "aws_securitylake_aws_log_source" { + cloudformation_type_name = "AWS::SecurityLake::AwsLogSource" +} + +resource_schema "aws_securitylake_data_lake" { + cloudformation_type_name = "AWS::SecurityLake::DataLake" +} + +resource_schema "aws_securitylake_subscriber" { + cloudformation_type_name = "AWS::SecurityLake::Subscriber" +} + +resource_schema "aws_securitylake_subscriber_notification" { + cloudformation_type_name = "AWS::SecurityLake::SubscriberNotification" +} + +resource_schema "aws_servicecatalog_cloudformation_provisioned_product" { + cloudformation_type_name = "AWS::ServiceCatalog::CloudFormationProvisionedProduct" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_servicecatalog_service_action" { + cloudformation_type_name = "AWS::ServiceCatalog::ServiceAction" +} + +resource_schema "aws_servicecatalog_service_action_association" { + cloudformation_type_name = "AWS::ServiceCatalog::ServiceActionAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_servicecatalogappregistry_application" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::Application" +} + +resource_schema "aws_servicecatalogappregistry_attribute_group" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::AttributeGroup" +} + +resource_schema "aws_servicecatalogappregistry_attribute_group_association" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_servicecatalogappregistry_resource_association" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::ResourceAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_shield_drt_access" { + cloudformation_type_name = "AWS::Shield::DRTAccess" +} + +resource_schema "aws_shield_proactive_engagement" { + cloudformation_type_name = "AWS::Shield::ProactiveEngagement" +} + +resource_schema "aws_shield_protection" { + cloudformation_type_name = "AWS::Shield::Protection" +} + +resource_schema "aws_shield_protection_group" { + cloudformation_type_name = "AWS::Shield::ProtectionGroup" +} + +resource_schema "aws_signer_profile_permission" { + cloudformation_type_name = "AWS::Signer::ProfilePermission" +} + +resource_schema "aws_signer_signing_profile" { + cloudformation_type_name = "AWS::Signer::SigningProfile" +} + +resource_schema "aws_simspaceweaver_simulation" { + cloudformation_type_name = "AWS::SimSpaceWeaver::Simulation" +} + +resource_schema "aws_stepfunctions_activity" { + cloudformation_type_name = "AWS::StepFunctions::Activity" +} + +resource_schema "aws_stepfunctions_state_machine" { + cloudformation_type_name = "AWS::StepFunctions::StateMachine" +} + +resource_schema "aws_stepfunctions_state_machine_alias" { + cloudformation_type_name = "AWS::StepFunctions::StateMachineAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_stepfunctions_state_machine_version" { + cloudformation_type_name = "AWS::StepFunctions::StateMachineVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_supportapp_account_alias" { + cloudformation_type_name = "AWS::SupportApp::AccountAlias" +} + +resource_schema "aws_supportapp_slack_channel_configuration" { + cloudformation_type_name = "AWS::SupportApp::SlackChannelConfiguration" +} + +resource_schema "aws_supportapp_slack_workspace_configuration" { + cloudformation_type_name = "AWS::SupportApp::SlackWorkspaceConfiguration" +} + +resource_schema "aws_synthetics_canary" { + cloudformation_type_name = "AWS::Synthetics::Canary" +} + +resource_schema "aws_synthetics_group" { + cloudformation_type_name = "AWS::Synthetics::Group" +} + +resource_schema "aws_systemsmanagersap_application" { + cloudformation_type_name = "AWS::SystemsManagerSAP::Application" +} + +resource_schema "aws_timestream_database" { + cloudformation_type_name = "AWS::Timestream::Database" +} + +resource_schema "aws_timestream_influx_db_instance" { + cloudformation_type_name = "AWS::Timestream::InfluxDBInstance" +} + +resource_schema "aws_timestream_scheduled_query" { + cloudformation_type_name = "AWS::Timestream::ScheduledQuery" +} + +resource_schema "aws_timestream_table" { + cloudformation_type_name = "AWS::Timestream::Table" +} + +resource_schema "aws_transfer_agreement" { + cloudformation_type_name = "AWS::Transfer::Agreement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_transfer_certificate" { + cloudformation_type_name = "AWS::Transfer::Certificate" +} + +resource_schema "aws_transfer_connector" { + cloudformation_type_name = "AWS::Transfer::Connector" +} + +resource_schema "aws_transfer_profile" { + cloudformation_type_name = "AWS::Transfer::Profile" +} + +resource_schema "aws_transfer_workflow" { + cloudformation_type_name = "AWS::Transfer::Workflow" +} + +resource_schema "aws_verifiedpermissions_identity_source" { + cloudformation_type_name = "AWS::VerifiedPermissions::IdentitySource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_verifiedpermissions_policy" { + cloudformation_type_name = "AWS::VerifiedPermissions::Policy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_verifiedpermissions_policy_store" { + cloudformation_type_name = "AWS::VerifiedPermissions::PolicyStore" +} + +resource_schema "aws_verifiedpermissions_policy_template" { + cloudformation_type_name = "AWS::VerifiedPermissions::PolicyTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_voiceid_domain" { + cloudformation_type_name = "AWS::VoiceID::Domain" +} + +resource_schema "aws_vpclattice_access_log_subscription" { + cloudformation_type_name = "AWS::VpcLattice::AccessLogSubscription" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_auth_policy" { + cloudformation_type_name = "AWS::VpcLattice::AuthPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_listener" { + cloudformation_type_name = "AWS::VpcLattice::Listener" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_resource_policy" { + cloudformation_type_name = "AWS::VpcLattice::ResourcePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_rule" { + cloudformation_type_name = "AWS::VpcLattice::Rule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_service" { + cloudformation_type_name = "AWS::VpcLattice::Service" +} + +resource_schema "aws_vpclattice_service_network" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetwork" +} + +resource_schema "aws_vpclattice_service_network_service_association" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetworkServiceAssociation" +} + +resource_schema "aws_vpclattice_service_network_vpc_association" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetworkVpcAssociation" +} + +resource_schema "aws_vpclattice_target_group" { + cloudformation_type_name = "AWS::VpcLattice::TargetGroup" +} + +resource_schema "aws_wafv2_ip_set" { + cloudformation_type_name = "AWS::WAFv2::IPSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_logging_configuration" { + cloudformation_type_name = "AWS::WAFv2::LoggingConfiguration" +} + +resource_schema "aws_wafv2_regex_pattern_set" { + cloudformation_type_name = "AWS::WAFv2::RegexPatternSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_rule_group" { + cloudformation_type_name = "AWS::WAFv2::RuleGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_web_acl" { + cloudformation_type_name = "AWS::WAFv2::WebACL" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_web_acl_association" { + cloudformation_type_name = "AWS::WAFv2::WebACLAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_assistant" { + cloudformation_type_name = "AWS::Wisdom::Assistant" +} + +resource_schema "aws_wisdom_assistant_association" { + cloudformation_type_name = "AWS::Wisdom::AssistantAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_knowledge_base" { + cloudformation_type_name = "AWS::Wisdom::KnowledgeBase" +} + +resource_schema "aws_workspaces_connection_alias" { + cloudformation_type_name = "AWS::WorkSpaces::ConnectionAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_workspaces_workspaces_pool" { + cloudformation_type_name = "AWS::WorkSpaces::WorkspacesPool" +} + +resource_schema "aws_workspacesthinclient_environment" { + cloudformation_type_name = "AWS::WorkSpacesThinClient::Environment" +} + +resource_schema "aws_workspacesweb_browser_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::BrowserSettings" +} + +resource_schema "aws_workspacesweb_identity_provider" { + cloudformation_type_name = "AWS::WorkSpacesWeb::IdentityProvider" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_workspacesweb_ip_access_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::IpAccessSettings" +} + +resource_schema "aws_workspacesweb_network_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::NetworkSettings" +} + +resource_schema "aws_workspacesweb_portal" { + cloudformation_type_name = "AWS::WorkSpacesWeb::Portal" +} + +resource_schema "aws_workspacesweb_trust_store" { + cloudformation_type_name = "AWS::WorkSpacesWeb::TrustStore" +} + +resource_schema "aws_workspacesweb_user_access_logging_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::UserAccessLoggingSettings" +} + +resource_schema "aws_workspacesweb_user_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::UserSettings" +} + +resource_schema "aws_xray_group" { + cloudformation_type_name = "AWS::XRay::Group" +} + +resource_schema "aws_xray_resource_policy" { + cloudformation_type_name = "AWS::XRay::ResourcePolicy" +} + +resource_schema "aws_xray_sampling_rule" { + cloudformation_type_name = "AWS::XRay::SamplingRule" +} From b924eb09042e7985214ae02fcb18286cf1e7da40 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 8 Aug 2024 13:00:31 -0400 Subject: [PATCH 73/89] 08/07/2024 CloudFormation schemas in us-east-1; Generate Terraform resource schemas. --- ...nfigured_table_association_resource_gen.go | 6 - .../aws/codepipeline/pipeline_resource_gen.go | 731 ++++++++++++++++++ internal/aws/deadline/fleet_resource_gen.go | 6 +- internal/aws/deadline/queue_resource_gen.go | 6 +- .../deadline/storage_profile_resource_gen.go | 6 +- internal/aws/ec2/subnet_resource_gen.go | 4 +- ...transit_gateway_attachment_resource_gen.go | 40 +- ...way_multicast_group_member_resource_gen.go | 15 - ...way_multicast_group_source_resource_gen.go | 15 - internal/aws/ecs/cluster_resource_gen.go | 20 +- .../delivery_stream_resource_gen.go | 12 + internal/aws/kms/key_resource_gen.go | 16 +- internal/aws/lambda/function_resource_gen.go | 18 + .../logs/delivery_destination_resource_gen.go | 4 +- .../multiplexprogram_resource_gen.go | 1 - .../logging_configuration_resource_gen.go | 4 +- .../connect_attachment_resource_gen.go | 149 +++- .../core_network_resource_gen.go | 136 +++- ...ite_to_site_vpn_attachment_resource_gen.go | 145 +++- ...way_route_table_attachment_resource_gen.go | 148 +++- .../vpc_attachment_resource_gen.go | 152 +++- internal/aws/osis/pipeline_resource_gen.go | 84 ++ ...db_cluster_parameter_group_resource_gen.go | 20 +- internal/aws/rds/db_cluster_resource_gen.go | 16 +- internal/aws/rds/db_instance_resource_gen.go | 40 +- .../rds/db_parameter_group_resource_gen.go | 14 +- .../aws/rds/db_subnet_group_resource_gen.go | 10 +- .../rds/event_subscription_resource_gen.go | 10 +- internal/aws/rds/option_group_resource_gen.go | 18 +- internal/aws/redshift/cluster_resource_gen.go | 34 + .../aws/rolesanywhere/profile_resource_gen.go | 14 + .../resolver_rule_resource_gen.go | 31 +- .../sagemaker/model_package_resource_gen.go | 503 ++++++++++++ .../aws/ses/configuration_set_resource_gen.go | 9 +- 34 files changed, 2178 insertions(+), 259 deletions(-) diff --git a/internal/aws/cleanrooms/configured_table_association_resource_gen.go b/internal/aws/cleanrooms/configured_table_association_resource_gen.go index 217f950b8..df423dbe1 100644 --- a/internal/aws/cleanrooms/configured_table_association_resource_gen.go +++ b/internal/aws/cleanrooms/configured_table_association_resource_gen.go @@ -64,7 +64,6 @@ func configuredTableAssociationResource(ctx context.Context) (resource.Resource, // "insertionOrder": false, // "items": { // "maxLength": 256, - // "pattern": "^arn:aws:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:([\\d]{12}|\\*):membership\\/[\\*\\d\\w-]+\\/configuredaudiencemodelassociation\\/[\\*\\d\\w-]+$|^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:([0-9]{12}|\\*):configured-model-algorithm-association\\/([-a-zA-Z0-9_\\/.]+|\\*)$", // "type": "string" // }, // "maxItems": 25, @@ -92,7 +91,6 @@ func configuredTableAssociationResource(ctx context.Context) (resource.Resource, // "insertionOrder": false, // "items": { // "maxLength": 256, - // "pattern": "^arn:aws:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:([\\d]{12}|\\*):membership\\/[\\*\\d\\w-]+\\/configuredaudiencemodelassociation\\/[\\*\\d\\w-]+$|^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:([0-9]{12}|\\*):configured-model-algorithm-association\\/([-a-zA-Z0-9_\\/.]+|\\*)$", // "type": "string" // }, // "maxItems": 25, @@ -120,7 +118,6 @@ func configuredTableAssociationResource(ctx context.Context) (resource.Resource, // "insertionOrder": false, // "items": { // "maxLength": 256, - // "pattern": "^arn:aws:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:([\\d]{12}|\\*):membership\\/[\\*\\d\\w-]+\\/configuredaudiencemodelassociation\\/[\\*\\d\\w-]+$|^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:([0-9]{12}|\\*):configured-model-algorithm-association\\/([-a-zA-Z0-9_\\/.]+|\\*)$", // "type": "string" // }, // "maxItems": 25, @@ -190,7 +187,6 @@ func configuredTableAssociationResource(ctx context.Context) (resource.Resource, listvalidator.SizeBetween(0, 25), listvalidator.ValueStringsAre( stringvalidator.LengthAtMost(256), - stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:([\\d]{12}|\\*):membership\\/[\\*\\d\\w-]+\\/configuredaudiencemodelassociation\\/[\\*\\d\\w-]+$|^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:([0-9]{12}|\\*):configured-model-algorithm-association\\/([-a-zA-Z0-9_\\/.]+|\\*)$"), ""), ), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ @@ -234,7 +230,6 @@ func configuredTableAssociationResource(ctx context.Context) (resource.Resource, listvalidator.SizeBetween(0, 25), listvalidator.ValueStringsAre( stringvalidator.LengthAtMost(256), - stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:([\\d]{12}|\\*):membership\\/[\\*\\d\\w-]+\\/configuredaudiencemodelassociation\\/[\\*\\d\\w-]+$|^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:([0-9]{12}|\\*):configured-model-algorithm-association\\/([-a-zA-Z0-9_\\/.]+|\\*)$"), ""), ), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ @@ -278,7 +273,6 @@ func configuredTableAssociationResource(ctx context.Context) (resource.Resource, listvalidator.SizeBetween(0, 25), listvalidator.ValueStringsAre( stringvalidator.LengthAtMost(256), - stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:([\\d]{12}|\\*):membership\\/[\\*\\d\\w-]+\\/configuredaudiencemodelassociation\\/[\\*\\d\\w-]+$|^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:([0-9]{12}|\\*):configured-model-algorithm-association\\/([-a-zA-Z0-9_\\/.]+|\\*)$"), ""), ), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/codepipeline/pipeline_resource_gen.go b/internal/aws/codepipeline/pipeline_resource_gen.go index 4f9851076..eafbf013d 100644 --- a/internal/aws/codepipeline/pipeline_resource_gen.go +++ b/internal/aws/codepipeline/pipeline_resource_gen.go @@ -531,6 +531,97 @@ func pipelineResource(ctx context.Context) (resource.Resource, error) { // "type": "array", // "uniqueItems": true // }, + // "BeforeEntry": { + // "additionalProperties": false, + // "description": "The method to use before stage runs.", + // "properties": { + // "Conditions": { + // "items": { + // "additionalProperties": false, + // "description": "Represents information about condition.", + // "properties": { + // "Result": { + // "description": "The specified result for when the failure conditions are met, such as rolling back the stage", + // "type": "string" + // }, + // "Rules": { + // "items": { + // "additionalProperties": false, + // "description": "Represents information about condition.", + // "properties": { + // "Configuration": { + // "description": "The rule's configuration. These are key-value pairs that specify input values for a rule.", + // "type": "object" + // }, + // "InputArtifacts": { + // "items": { + // "additionalProperties": false, + // "description": "Represents information about an artifact to be worked on, such as a test or build artifact.", + // "properties": { + // "Name": { + // "description": "The name of the artifact to be worked on (for example, \"My App\").", + // "type": "string" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // }, + // "Name": { + // "description": "The rule declaration's name.", + // "type": "string" + // }, + // "Region": { + // "description": "The rule declaration's AWS Region, such as us-east-1.", + // "type": "string" + // }, + // "RoleArn": { + // "description": "The ARN of the IAM service role that performs the declared rule. This is assumed through the roleArn for the pipeline.", + // "pattern": "arn:aws(-[\\w]+)*:iam::[0-9]{12}:role/.*", + // "type": "string" + // }, + // "RuleTypeId": { + // "additionalProperties": false, + // "description": "Represents information about a rule type.", + // "properties": { + // "Category": { + // "description": "A category for the provider type for the rule.", + // "type": "string" + // }, + // "Owner": { + // "description": "The creator of the rule being called. Only AWS is supported.", + // "type": "string" + // }, + // "Provider": { + // "description": "The provider of the service being called by the rule.", + // "type": "string" + // }, + // "Version": { + // "description": "A string that describes the rule version.", + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "type": "object" + // }, // "Blockers": { // "items": { // "additionalProperties": false, @@ -565,6 +656,90 @@ func pipelineResource(ctx context.Context) (resource.Resource, error) { // "additionalProperties": false, // "description": "The method to use when a stage has not completed successfully", // "properties": { + // "Conditions": { + // "items": { + // "additionalProperties": false, + // "description": "Represents information about condition.", + // "properties": { + // "Result": { + // "description": "The specified result for when the failure conditions are met, such as rolling back the stage", + // "type": "string" + // }, + // "Rules": { + // "items": { + // "additionalProperties": false, + // "description": "Represents information about condition.", + // "properties": { + // "Configuration": { + // "description": "The rule's configuration. These are key-value pairs that specify input values for a rule.", + // "type": "object" + // }, + // "InputArtifacts": { + // "items": { + // "additionalProperties": false, + // "description": "Represents information about an artifact to be worked on, such as a test or build artifact.", + // "properties": { + // "Name": { + // "description": "The name of the artifact to be worked on (for example, \"My App\").", + // "type": "string" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // }, + // "Name": { + // "description": "The rule declaration's name.", + // "type": "string" + // }, + // "Region": { + // "description": "The rule declaration's AWS Region, such as us-east-1.", + // "type": "string" + // }, + // "RoleArn": { + // "description": "The ARN of the IAM service role that performs the declared rule. This is assumed through the roleArn for the pipeline.", + // "pattern": "arn:aws(-[\\w]+)*:iam::[0-9]{12}:role/.*", + // "type": "string" + // }, + // "RuleTypeId": { + // "additionalProperties": false, + // "description": "Represents information about a rule type.", + // "properties": { + // "Category": { + // "description": "A category for the provider type for the rule.", + // "type": "string" + // }, + // "Owner": { + // "description": "The creator of the rule being called. Only AWS is supported.", + // "type": "string" + // }, + // "Provider": { + // "description": "The provider of the service being called by the rule.", + // "type": "string" + // }, + // "Version": { + // "description": "A string that describes the rule version.", + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // }, // "Result": { // "description": "The specified result for when the failure conditions are met, such as rolling back the stage", // "enum": [ @@ -574,6 +749,97 @@ func pipelineResource(ctx context.Context) (resource.Resource, error) { // } // }, // "type": "object" + // }, + // "OnSuccess": { + // "additionalProperties": false, + // "description": "The method to use when a stage has completed successfully", + // "properties": { + // "Conditions": { + // "items": { + // "additionalProperties": false, + // "description": "Represents information about condition.", + // "properties": { + // "Result": { + // "description": "The specified result for when the failure conditions are met, such as rolling back the stage", + // "type": "string" + // }, + // "Rules": { + // "items": { + // "additionalProperties": false, + // "description": "Represents information about condition.", + // "properties": { + // "Configuration": { + // "description": "The rule's configuration. These are key-value pairs that specify input values for a rule.", + // "type": "object" + // }, + // "InputArtifacts": { + // "items": { + // "additionalProperties": false, + // "description": "Represents information about an artifact to be worked on, such as a test or build artifact.", + // "properties": { + // "Name": { + // "description": "The name of the artifact to be worked on (for example, \"My App\").", + // "type": "string" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // }, + // "Name": { + // "description": "The rule declaration's name.", + // "type": "string" + // }, + // "Region": { + // "description": "The rule declaration's AWS Region, such as us-east-1.", + // "type": "string" + // }, + // "RoleArn": { + // "description": "The ARN of the IAM service role that performs the declared rule. This is assumed through the roleArn for the pipeline.", + // "pattern": "arn:aws(-[\\w]+)*:iam::[0-9]{12}:role/.*", + // "type": "string" + // }, + // "RuleTypeId": { + // "additionalProperties": false, + // "description": "Represents information about a rule type.", + // "properties": { + // "Category": { + // "description": "A category for the provider type for the rule.", + // "type": "string" + // }, + // "Owner": { + // "description": "The creator of the rule being called. Only AWS is supported.", + // "type": "string" + // }, + // "Provider": { + // "description": "The provider of the service being called by the rule.", + // "type": "string" + // }, + // "Version": { + // "description": "A string that describes the rule version.", + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "type": "object" // } // }, // "required": [ @@ -739,6 +1005,163 @@ func pipelineResource(ctx context.Context) (resource.Resource, error) { listvalidator.UniqueValues(), }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ + // Property: BeforeEntry + "before_entry": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Conditions + "conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Result + "result": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The specified result for when the failure conditions are met, such as rolling back the stage", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Rules + "rules": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Configuration + "configuration": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Description: "The rule's configuration. These are key-value pairs that specify input values for a rule.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InputArtifacts + "input_artifacts": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the artifact to be worked on (for example, \"My App\").", + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.UniqueValues(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The rule declaration's name.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Region + "region": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The rule declaration's AWS Region, such as us-east-1.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RoleArn + "role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of the IAM service role that performs the declared rule. This is assumed through the roleArn for the pipeline.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("arn:aws(-[\\w]+)*:iam::[0-9]{12}:role/.*"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RuleTypeId + "rule_type_id": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Category + "category": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A category for the provider type for the rule.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Owner + "owner": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The creator of the rule being called. Only AWS is supported.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Provider + "provider": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The provider of the service being called by the rule.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Version + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A string that describes the rule version.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Represents information about a rule type.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.UniqueValues(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.UniqueValues(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The method to use before stage runs.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Blockers "blockers": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ @@ -777,6 +1200,152 @@ func pipelineResource(ctx context.Context) (resource.Resource, error) { // Property: OnFailure "on_failure": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Conditions + "conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Result + "result": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The specified result for when the failure conditions are met, such as rolling back the stage", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Rules + "rules": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Configuration + "configuration": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Description: "The rule's configuration. These are key-value pairs that specify input values for a rule.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InputArtifacts + "input_artifacts": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the artifact to be worked on (for example, \"My App\").", + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.UniqueValues(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The rule declaration's name.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Region + "region": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The rule declaration's AWS Region, such as us-east-1.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RoleArn + "role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of the IAM service role that performs the declared rule. This is assumed through the roleArn for the pipeline.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("arn:aws(-[\\w]+)*:iam::[0-9]{12}:role/.*"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RuleTypeId + "rule_type_id": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Category + "category": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A category for the provider type for the rule.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Owner + "owner": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The creator of the rule being called. Only AWS is supported.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Provider + "provider": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The provider of the service being called by the rule.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Version + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A string that describes the rule version.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Represents information about a rule type.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.UniqueValues(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.UniqueValues(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Result "result": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The specified result for when the failure conditions are met, such as rolling back the stage", @@ -799,6 +1368,163 @@ func pipelineResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: OnSuccess + "on_success": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Conditions + "conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Result + "result": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The specified result for when the failure conditions are met, such as rolling back the stage", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Rules + "rules": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Configuration + "configuration": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Description: "The rule's configuration. These are key-value pairs that specify input values for a rule.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InputArtifacts + "input_artifacts": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the artifact to be worked on (for example, \"My App\").", + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.UniqueValues(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The rule declaration's name.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Region + "region": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The rule declaration's AWS Region, such as us-east-1.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RoleArn + "role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of the IAM service role that performs the declared rule. This is assumed through the roleArn for the pipeline.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("arn:aws(-[\\w]+)*:iam::[0-9]{12}:role/.*"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RuleTypeId + "rule_type_id": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Category + "category": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A category for the provider type for the rule.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Owner + "owner": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The creator of the rule being called. Only AWS is supported.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Provider + "provider": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The provider of the service being called by the rule.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Version + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A string that describes the rule version.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Represents information about a rule type.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.UniqueValues(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.UniqueValues(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The method to use when a stage has completed successfully", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ Description: "Represents information about a stage and its definition.", @@ -1421,9 +2147,11 @@ func pipelineResource(ctx context.Context) (resource.Resource, error) { "actions": "Actions", "artifact_store": "ArtifactStore", "artifact_stores": "ArtifactStores", + "before_entry": "BeforeEntry", "blockers": "Blockers", "branches": "Branches", "category": "Category", + "conditions": "Conditions", "configuration": "Configuration", "default_value": "DefaultValue", "description": "Description", @@ -1442,6 +2170,7 @@ func pipelineResource(ctx context.Context) (resource.Resource, error) { "name": "Name", "namespace": "Namespace", "on_failure": "OnFailure", + "on_success": "OnSuccess", "output_artifacts": "OutputArtifacts", "owner": "Owner", "pipeline_type": "PipelineType", @@ -1454,6 +2183,8 @@ func pipelineResource(ctx context.Context) (resource.Resource, error) { "restart_execution_on_update": "RestartExecutionOnUpdate", "result": "Result", "role_arn": "RoleArn", + "rule_type_id": "RuleTypeId", + "rules": "Rules", "run_order": "RunOrder", "source_action_name": "SourceActionName", "stage_name": "StageName", diff --git a/internal/aws/deadline/fleet_resource_gen.go b/internal/aws/deadline/fleet_resource_gen.go index 7b220eb1a..b5f048807 100644 --- a/internal/aws/deadline/fleet_resource_gen.go +++ b/internal/aws/deadline/fleet_resource_gen.go @@ -1089,14 +1089,12 @@ func fleetResource(ctx context.Context) (resource.Resource, error) { // "type": "string" // } "farm_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.RegexMatches(regexp.MustCompile("^farm-[0-9a-f]{32}$"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.UseStateForUnknown(), - stringplanmodifier.RequiresReplaceIfConfigured(), + stringplanmodifier.RequiresReplace(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: FleetId diff --git a/internal/aws/deadline/queue_resource_gen.go b/internal/aws/deadline/queue_resource_gen.go index 737a3d4d3..08ac51d59 100644 --- a/internal/aws/deadline/queue_resource_gen.go +++ b/internal/aws/deadline/queue_resource_gen.go @@ -144,14 +144,12 @@ func queueResource(ctx context.Context) (resource.Resource, error) { // "type": "string" // } "farm_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.RegexMatches(regexp.MustCompile("^farm-[0-9a-f]{32}$"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.UseStateForUnknown(), - stringplanmodifier.RequiresReplaceIfConfigured(), + stringplanmodifier.RequiresReplace(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: JobAttachmentSettings diff --git a/internal/aws/deadline/storage_profile_resource_gen.go b/internal/aws/deadline/storage_profile_resource_gen.go index 6f7396e32..62678b046 100644 --- a/internal/aws/deadline/storage_profile_resource_gen.go +++ b/internal/aws/deadline/storage_profile_resource_gen.go @@ -51,14 +51,12 @@ func storageProfileResource(ctx context.Context) (resource.Resource, error) { // "type": "string" // } "farm_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.RegexMatches(regexp.MustCompile("^farm-[0-9a-f]{32}$"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.UseStateForUnknown(), - stringplanmodifier.RequiresReplaceIfConfigured(), + stringplanmodifier.RequiresReplace(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: FileSystemLocations diff --git a/internal/aws/ec2/subnet_resource_gen.go b/internal/aws/ec2/subnet_resource_gen.go index 45ae82742..d5a66d5c5 100644 --- a/internal/aws/ec2/subnet_resource_gen.go +++ b/internal/aws/ec2/subnet_resource_gen.go @@ -96,11 +96,11 @@ func subnetResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. For more information, see [DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-nat64-dns64) in the *User Guide*.", + // "description": "Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations.\n You must first configure a NAT gateway in a public subnet (separate from the subnet containing the IPv6-only workloads). For example, the subnet containing the NAT gateway should have a ``0.0.0.0/0`` route pointing to the internet gateway. For more information, see [Configure DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-nat64-dns64.html#nat-gateway-nat64-dns64-walkthrough) in the *User Guide*.", // "type": "boolean" // } "enable_dns_64": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. For more information, see [DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-nat64-dns64) in the *User Guide*.", + Description: "Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations.\n You must first configure a NAT gateway in a public subnet (separate from the subnet containing the IPv6-only workloads). For example, the subnet containing the NAT gateway should have a ``0.0.0.0/0`` route pointing to the internet gateway. For more information, see [Configure DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-nat64-dns64.html#nat-gateway-nat64-dns64-walkthrough) in the *User Guide*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/ec2/transit_gateway_attachment_resource_gen.go b/internal/aws/ec2/transit_gateway_attachment_resource_gen.go index d98ae94b0..b51b7b490 100644 --- a/internal/aws/ec2/transit_gateway_attachment_resource_gen.go +++ b/internal/aws/ec2/transit_gateway_attachment_resource_gen.go @@ -57,10 +57,6 @@ func transitGatewayAttachmentResource(ctx context.Context) (resource.Resource, e // "Ipv6Support": { // "description": "Indicates whether to enable Ipv6 Support for Vpc Attachment. Valid Values: enable | disable", // "type": "string" - // }, - // "SecurityGroupReferencingSupport": { - // "description": "Indicates whether to enable Security Group referencing support for Vpc Attachment. Valid Values: enable | disable", - // "type": "string" // } // }, // "type": "object" @@ -94,15 +90,6 @@ func transitGatewayAttachmentResource(ctx context.Context) (resource.Resource, e stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ - // Property: SecurityGroupReferencingSupport - "security_group_referencing_support": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Indicates whether to enable Security Group referencing support for Vpc Attachment. Valid Values: enable | disable", - Optional: true, - Computed: true, - PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ - }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "The options for the transit gateway vpc attachment.", Optional: true, @@ -117,6 +104,10 @@ func transitGatewayAttachmentResource(ctx context.Context) (resource.Resource, e // { // "insertionOrder": false, // "items": { + // "relationshipRef": { + // "propertyPath": "/properties/SubnetId", + // "typeName": "AWS::EC2::Subnet" + // }, // "type": "string" // }, // "type": "array", @@ -219,18 +210,17 @@ func transitGatewayAttachmentResource(ctx context.Context) (resource.Resource, e opts = opts.WithCloudFormationTypeName("AWS::EC2::TransitGatewayAttachment").WithTerraformTypeName("awscc_ec2_transit_gateway_attachment") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "appliance_mode_support": "ApplianceModeSupport", - "dns_support": "DnsSupport", - "ipv_6_support": "Ipv6Support", - "key": "Key", - "options": "Options", - "security_group_referencing_support": "SecurityGroupReferencingSupport", - "subnet_ids": "SubnetIds", - "tags": "Tags", - "transit_gateway_attachment_id": "Id", - "transit_gateway_id": "TransitGatewayId", - "value": "Value", - "vpc_id": "VpcId", + "appliance_mode_support": "ApplianceModeSupport", + "dns_support": "DnsSupport", + "ipv_6_support": "Ipv6Support", + "key": "Key", + "options": "Options", + "subnet_ids": "SubnetIds", + "tags": "Tags", + "transit_gateway_attachment_id": "Id", + "transit_gateway_id": "TransitGatewayId", + "value": "Value", + "vpc_id": "VpcId", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/ec2/transit_gateway_multicast_group_member_resource_gen.go b/internal/aws/ec2/transit_gateway_multicast_group_member_resource_gen.go index b1fc0ba1c..037dbf061 100644 --- a/internal/aws/ec2/transit_gateway_multicast_group_member_resource_gen.go +++ b/internal/aws/ec2/transit_gateway_multicast_group_member_resource_gen.go @@ -123,20 +123,6 @@ func transitGatewayMulticastGroupMemberResource(ctx context.Context) (resource.R stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ - // Property: SourceType - // CloudFormation resource type schema: - // - // { - // "description": "The source type.", - // "type": "string" - // } - "source_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The source type.", - Computed: true, - PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ - }, /*END ATTRIBUTE*/ // Property: SubnetId // CloudFormation resource type schema: // @@ -208,7 +194,6 @@ func transitGatewayMulticastGroupMemberResource(ctx context.Context) (resource.R "network_interface_id": "NetworkInterfaceId", "resource_id": "ResourceId", "resource_type": "ResourceType", - "source_type": "SourceType", "subnet_id": "SubnetId", "transit_gateway_attachment_id": "TransitGatewayAttachmentId", "transit_gateway_multicast_domain_id": "TransitGatewayMulticastDomainId", diff --git a/internal/aws/ec2/transit_gateway_multicast_group_source_resource_gen.go b/internal/aws/ec2/transit_gateway_multicast_group_source_resource_gen.go index d6ee6db05..a802bbf13 100644 --- a/internal/aws/ec2/transit_gateway_multicast_group_source_resource_gen.go +++ b/internal/aws/ec2/transit_gateway_multicast_group_source_resource_gen.go @@ -67,20 +67,6 @@ func transitGatewayMulticastGroupSourceResource(ctx context.Context) (resource.R boolplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ - // Property: MemberType - // CloudFormation resource type schema: - // - // { - // "description": "The member type (for example, static).", - // "type": "string" - // } - "member_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The member type (for example, static).", - Computed: true, - PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ - }, /*END ATTRIBUTE*/ // Property: NetworkInterfaceId // CloudFormation resource type schema: // @@ -204,7 +190,6 @@ func transitGatewayMulticastGroupSourceResource(ctx context.Context) (resource.R "group_ip_address": "GroupIpAddress", "group_member": "GroupMember", "group_source": "GroupSource", - "member_type": "MemberType", "network_interface_id": "NetworkInterfaceId", "resource_id": "ResourceId", "resource_type": "ResourceType", diff --git a/internal/aws/ecs/cluster_resource_gen.go b/internal/aws/ecs/cluster_resource_gen.go index 1306e14e2..028aa0eb5 100644 --- a/internal/aws/ecs/cluster_resource_gen.go +++ b/internal/aws/ecs/cluster_resource_gen.go @@ -135,7 +135,7 @@ func clusterResource(ctx context.Context) (resource.Resource, error) { // // { // "additionalProperties": false, - // "description": "The execute command configuration for the cluster.", + // "description": "The execute command and managed storage configuration for the cluster.", // "properties": { // "ExecuteCommandConfiguration": { // "additionalProperties": false, @@ -189,12 +189,14 @@ func clusterResource(ctx context.Context) (resource.Resource, error) { // }, // "ManagedStorageConfiguration": { // "additionalProperties": false, - // "description": "", + // "description": "The details of the managed storage configuration.", // "properties": { // "FargateEphemeralStorageKmsKeyId": { + // "description": "Specify the KMSlong key ID for the Fargate ephemeral storage.", // "type": "string" // }, // "KmsKeyId": { + // "description": "Specify a KMSlong key ID to encrypt the managed storage.", // "type": "string" // } // }, @@ -295,22 +297,24 @@ func clusterResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: FargateEphemeralStorageKmsKeyId "fargate_ephemeral_storage_kms_key_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "Specify the KMSlong key ID for the Fargate ephemeral storage.", + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: KmsKeyId "kms_key_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "Specify a KMSlong key ID to encrypt the managed storage.", + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "", + Description: "The details of the managed storage configuration.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -318,7 +322,7 @@ func clusterResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The execute command configuration for the cluster.", + Description: "The execute command and managed storage configuration for the cluster.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/kinesisfirehose/delivery_stream_resource_gen.go b/internal/aws/kinesisfirehose/delivery_stream_resource_gen.go index 10581130f..b4af91ed9 100644 --- a/internal/aws/kinesisfirehose/delivery_stream_resource_gen.go +++ b/internal/aws/kinesisfirehose/delivery_stream_resource_gen.go @@ -5370,6 +5370,9 @@ func deliveryStreamResource(ctx context.Context) (resource.Resource, error) { // }, // "type": "string" // }, + // "ReadFromTimestamp": { + // "type": "string" + // }, // "TopicName": { // "maxLength": 255, // "minLength": 1, @@ -5418,6 +5421,14 @@ func deliveryStreamResource(ctx context.Context) (resource.Resource, error) { stringvalidator.RegexMatches(regexp.MustCompile("arn:.*"), ""), }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ + // Property: ReadFromTimestamp + "read_from_timestamp": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: TopicName "topic_name": schema.StringAttribute{ /*START ATTRIBUTE*/ Required: true, @@ -8466,6 +8477,7 @@ func deliveryStreamResource(ctx context.Context) (resource.Resource, error) { "private_link_vpce_id": "PrivateLinkVpceId", "processing_configuration": "ProcessingConfiguration", "processors": "Processors", + "read_from_timestamp": "ReadFromTimestamp", "redshift_destination_configuration": "RedshiftDestinationConfiguration", "region": "Region", "request_configuration": "RequestConfiguration", diff --git a/internal/aws/kms/key_resource_gen.go b/internal/aws/kms/key_resource_gen.go index 5a7f8d237..67a2a11bb 100644 --- a/internal/aws/kms/key_resource_gen.go +++ b/internal/aws/kms/key_resource_gen.go @@ -151,7 +151,7 @@ func keyResource(ctx context.Context) (resource.Resource, error) { // // { // "default": "SYMMETRIC_DEFAULT", - // "description": "Specifies the type of KMS key to create. The default value, ``SYMMETRIC_DEFAULT``, creates a KMS key with a 256-bit symmetric key for encryption and decryption. In China Regions, ``SYMMETRIC_DEFAULT`` creates a 128-bit symmetric key that uses SM4 encryption. You can't change the ``KeySpec`` value after the KMS key is created. For help choosing a key spec for your KMS key, see [Choosing a KMS key type](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose.html) in the *Developer Guide*.\n The ``KeySpec`` property determines the type of key material in the KMS key and the algorithms that the KMS key supports. To further restrict the algorithms that can be used with the KMS key, use a condition key in its key policy or IAM policy. For more information, see [condition keys](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms) in the *Developer Guide*.\n If you change the value of the ``KeySpec`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value.\n [services that are integrated with](https://docs.aws.amazon.com/kms/features/#AWS_Service_Integration) use symmetric encryption KMS keys to protect your data. These services do not support encryption with asymmetric KMS keys. For help determining whether a KMS key is asymmetric, see [Identifying asymmetric KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html) in the *Developer Guide*.\n KMS supports the following key specs for KMS keys:\n + Symmetric encryption key (default)\n + ``SYMMETRIC_DEFAULT`` (AES-256-GCM)\n \n + HMAC keys (symmetric)\n + ``HMAC_224`` \n + ``HMAC_256`` \n + ``HMAC_384`` \n + ``HMAC_512`` \n \n + Asymmetric RSA key pairs\n + ``RSA_2048`` \n + ``RSA_3072`` \n + ``RSA_4096`` \n \n + Asymmetric NIST-recommended elliptic curve key pairs\n + ``ECC_NIST_P256`` (secp256r1)\n + ``ECC_NIST_P384`` (secp384r1)\n + ``ECC_NIST_P521`` (secp521r1)\n \n + Other asymmetric elliptic curve key pairs\n + ``ECC_SECG_P256K1`` (secp256k1), commonly used for cryptocurrencies.\n \n + SM2 key pairs (China Regions only)\n + ``SM2``", + // "description": "Specifies the type of KMS key to create. The default value, ``SYMMETRIC_DEFAULT``, creates a KMS key with a 256-bit symmetric key for encryption and decryption. In China Regions, ``SYMMETRIC_DEFAULT`` creates a 128-bit symmetric key that uses SM4 encryption. You can't change the ``KeySpec`` value after the KMS key is created. For help choosing a key spec for your KMS key, see [Choosing a KMS key type](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose.html) in the *Developer Guide*.\n The ``KeySpec`` property determines the type of key material in the KMS key and the algorithms that the KMS key supports. To further restrict the algorithms that can be used with the KMS key, use a condition key in its key policy or IAM policy. For more information, see [condition keys](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms) in the *Developer Guide*.\n If you change the value of the ``KeySpec`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value.\n [services that are integrated with](https://docs.aws.amazon.com/kms/features/#AWS_Service_Integration) use symmetric encryption KMS keys to protect your data. These services do not support encryption with asymmetric KMS keys. For help determining whether a KMS key is asymmetric, see [Identifying asymmetric KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html) in the *Developer Guide*.\n KMS supports the following key specs for KMS keys:\n + Symmetric encryption key (default)\n + ``SYMMETRIC_DEFAULT`` (AES-256-GCM)\n \n + HMAC keys (symmetric)\n + ``HMAC_224`` \n + ``HMAC_256`` \n + ``HMAC_384`` \n + ``HMAC_512`` \n \n + Asymmetric RSA key pairs (encryption and decryption *or* signing and verification)\n + ``RSA_2048`` \n + ``RSA_3072`` \n + ``RSA_4096`` \n \n + Asymmetric NIST-recommended elliptic curve key pairs (signing and verification *or* deriving shared secrets)\n + ``ECC_NIST_P256`` (secp256r1)\n + ``ECC_NIST_P384`` (secp384r1)\n + ``ECC_NIST_P521`` (secp521r1)\n \n + Other asymmetric elliptic curve key pairs (signing and verification)\n + ``ECC_SECG_P256K1`` (secp256k1), commonly used for cryptocurrencies.\n \n + SM2 key pairs (encryption and decryption *or* signing and verification *or* deriving shared secrets)\n + ``SM2`` (China Regions only)", // "enum": [ // "SYMMETRIC_DEFAULT", // "RSA_2048", @@ -170,7 +170,7 @@ func keyResource(ctx context.Context) (resource.Resource, error) { // "type": "string" // } "key_spec": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies the type of KMS key to create. The default value, ``SYMMETRIC_DEFAULT``, creates a KMS key with a 256-bit symmetric key for encryption and decryption. In China Regions, ``SYMMETRIC_DEFAULT`` creates a 128-bit symmetric key that uses SM4 encryption. You can't change the ``KeySpec`` value after the KMS key is created. For help choosing a key spec for your KMS key, see [Choosing a KMS key type](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose.html) in the *Developer Guide*.\n The ``KeySpec`` property determines the type of key material in the KMS key and the algorithms that the KMS key supports. To further restrict the algorithms that can be used with the KMS key, use a condition key in its key policy or IAM policy. For more information, see [condition keys](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms) in the *Developer Guide*.\n If you change the value of the ``KeySpec`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value.\n [services that are integrated with](https://docs.aws.amazon.com/kms/features/#AWS_Service_Integration) use symmetric encryption KMS keys to protect your data. These services do not support encryption with asymmetric KMS keys. For help determining whether a KMS key is asymmetric, see [Identifying asymmetric KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html) in the *Developer Guide*.\n KMS supports the following key specs for KMS keys:\n + Symmetric encryption key (default)\n + ``SYMMETRIC_DEFAULT`` (AES-256-GCM)\n \n + HMAC keys (symmetric)\n + ``HMAC_224`` \n + ``HMAC_256`` \n + ``HMAC_384`` \n + ``HMAC_512`` \n \n + Asymmetric RSA key pairs\n + ``RSA_2048`` \n + ``RSA_3072`` \n + ``RSA_4096`` \n \n + Asymmetric NIST-recommended elliptic curve key pairs\n + ``ECC_NIST_P256`` (secp256r1)\n + ``ECC_NIST_P384`` (secp384r1)\n + ``ECC_NIST_P521`` (secp521r1)\n \n + Other asymmetric elliptic curve key pairs\n + ``ECC_SECG_P256K1`` (secp256k1), commonly used for cryptocurrencies.\n \n + SM2 key pairs (China Regions only)\n + ``SM2``", + Description: "Specifies the type of KMS key to create. The default value, ``SYMMETRIC_DEFAULT``, creates a KMS key with a 256-bit symmetric key for encryption and decryption. In China Regions, ``SYMMETRIC_DEFAULT`` creates a 128-bit symmetric key that uses SM4 encryption. You can't change the ``KeySpec`` value after the KMS key is created. For help choosing a key spec for your KMS key, see [Choosing a KMS key type](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose.html) in the *Developer Guide*.\n The ``KeySpec`` property determines the type of key material in the KMS key and the algorithms that the KMS key supports. To further restrict the algorithms that can be used with the KMS key, use a condition key in its key policy or IAM policy. For more information, see [condition keys](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms) in the *Developer Guide*.\n If you change the value of the ``KeySpec`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value.\n [services that are integrated with](https://docs.aws.amazon.com/kms/features/#AWS_Service_Integration) use symmetric encryption KMS keys to protect your data. These services do not support encryption with asymmetric KMS keys. For help determining whether a KMS key is asymmetric, see [Identifying asymmetric KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html) in the *Developer Guide*.\n KMS supports the following key specs for KMS keys:\n + Symmetric encryption key (default)\n + ``SYMMETRIC_DEFAULT`` (AES-256-GCM)\n \n + HMAC keys (symmetric)\n + ``HMAC_224`` \n + ``HMAC_256`` \n + ``HMAC_384`` \n + ``HMAC_512`` \n \n + Asymmetric RSA key pairs (encryption and decryption *or* signing and verification)\n + ``RSA_2048`` \n + ``RSA_3072`` \n + ``RSA_4096`` \n \n + Asymmetric NIST-recommended elliptic curve key pairs (signing and verification *or* deriving shared secrets)\n + ``ECC_NIST_P256`` (secp256r1)\n + ``ECC_NIST_P384`` (secp384r1)\n + ``ECC_NIST_P521`` (secp521r1)\n \n + Other asymmetric elliptic curve key pairs (signing and verification)\n + ``ECC_SECG_P256K1`` (secp256k1), commonly used for cryptocurrencies.\n \n + SM2 key pairs (encryption and decryption *or* signing and verification *or* deriving shared secrets)\n + ``SM2`` (China Regions only)", Optional: true, Computed: true, Default: stringdefault.StaticString("SYMMETRIC_DEFAULT"), @@ -200,7 +200,7 @@ func keyResource(ctx context.Context) (resource.Resource, error) { // // { // "default": "ENCRYPT_DECRYPT", - // "description": "Determines the [cryptographic operations](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) for which you can use the KMS key. The default value is ``ENCRYPT_DECRYPT``. This property is required for asymmetric KMS keys and HMAC KMS keys. You can't change the ``KeyUsage`` value after the KMS key is created.\n If you change the value of the ``KeyUsage`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value.\n Select only one valid value.\n + For symmetric encryption KMS keys, omit the property or specify ``ENCRYPT_DECRYPT``.\n + For asymmetric KMS keys with RSA key material, specify ``ENCRYPT_DECRYPT`` or ``SIGN_VERIFY``.\n + For asymmetric KMS keys with ECC key material, specify ``SIGN_VERIFY``.\n + For asymmetric KMS keys with SM2 (China Regions only) key material, specify ``ENCRYPT_DECRYPT`` or ``SIGN_VERIFY``.\n + For HMAC KMS keys, specify ``GENERATE_VERIFY_MAC``.", + // "description": "Determines the [cryptographic operations](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) for which you can use the KMS key. The default value is ``ENCRYPT_DECRYPT``. This property is required for asymmetric KMS keys and HMAC KMS keys. You can't change the ``KeyUsage`` value after the KMS key is created.\n If you change the value of the ``KeyUsage`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value.\n Select only one valid value.\n + For symmetric encryption KMS keys, omit the parameter or specify ``ENCRYPT_DECRYPT``.\n + For HMAC KMS keys (symmetric), specify ``GENERATE_VERIFY_MAC``.\n + For asymmetric KMS keys with RSA key pairs, specify ``ENCRYPT_DECRYPT`` or ``SIGN_VERIFY``.\n + For asymmetric KMS keys with NIST-recommended elliptic curve key pairs, specify ``SIGN_VERIFY`` or ``KEY_AGREEMENT``.\n + For asymmetric KMS keys with ``ECC_SECG_P256K1`` key pairs specify ``SIGN_VERIFY``.\n + For asymmetric KMS keys with SM2 key pairs (China Regions only), specify ``ENCRYPT_DECRYPT``, ``SIGN_VERIFY``, or ``KEY_AGREEMENT``.", // "enum": [ // "ENCRYPT_DECRYPT", // "SIGN_VERIFY", @@ -210,7 +210,7 @@ func keyResource(ctx context.Context) (resource.Resource, error) { // "type": "string" // } "key_usage": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Determines the [cryptographic operations](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) for which you can use the KMS key. The default value is ``ENCRYPT_DECRYPT``. This property is required for asymmetric KMS keys and HMAC KMS keys. You can't change the ``KeyUsage`` value after the KMS key is created.\n If you change the value of the ``KeyUsage`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value.\n Select only one valid value.\n + For symmetric encryption KMS keys, omit the property or specify ``ENCRYPT_DECRYPT``.\n + For asymmetric KMS keys with RSA key material, specify ``ENCRYPT_DECRYPT`` or ``SIGN_VERIFY``.\n + For asymmetric KMS keys with ECC key material, specify ``SIGN_VERIFY``.\n + For asymmetric KMS keys with SM2 (China Regions only) key material, specify ``ENCRYPT_DECRYPT`` or ``SIGN_VERIFY``.\n + For HMAC KMS keys, specify ``GENERATE_VERIFY_MAC``.", + Description: "Determines the [cryptographic operations](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) for which you can use the KMS key. The default value is ``ENCRYPT_DECRYPT``. This property is required for asymmetric KMS keys and HMAC KMS keys. You can't change the ``KeyUsage`` value after the KMS key is created.\n If you change the value of the ``KeyUsage`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value.\n Select only one valid value.\n + For symmetric encryption KMS keys, omit the parameter or specify ``ENCRYPT_DECRYPT``.\n + For HMAC KMS keys (symmetric), specify ``GENERATE_VERIFY_MAC``.\n + For asymmetric KMS keys with RSA key pairs, specify ``ENCRYPT_DECRYPT`` or ``SIGN_VERIFY``.\n + For asymmetric KMS keys with NIST-recommended elliptic curve key pairs, specify ``SIGN_VERIFY`` or ``KEY_AGREEMENT``.\n + For asymmetric KMS keys with ``ECC_SECG_P256K1`` key pairs specify ``SIGN_VERIFY``.\n + For asymmetric KMS keys with SM2 key pairs (China Regions only), specify ``ENCRYPT_DECRYPT``, ``SIGN_VERIFY``, or ``KEY_AGREEMENT``.", Optional: true, Computed: true, Default: stringdefault.StaticString("ENCRYPT_DECRYPT"), @@ -325,13 +325,13 @@ func keyResource(ctx context.Context) (resource.Resource, error) { // "description": "A key-value pair. A tag consists of a tag key and a tag value. Tag keys and tag values are both required, but tag values can be empty (null) strings.\n Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.\n For information about the rules that apply to tag keys and tag values, see [User-Defined Tag Restrictions](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html) in the *Billing and Cost Management User Guide*.", // "properties": { // "Key": { - // "description": "", + // "description": "The key name of the tag. You can specify a value that's 1 to 128 Unicode characters in length and can't be prefixed with ``aws:``. digits, whitespace, ``_``, ``.``, ``:``, ``/``, ``=``, ``+``, ``@``, ``-``, and ``\"``.\n For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).", // "maxLength": 128, // "minLength": 1, // "type": "string" // }, // "Value": { - // "description": "", + // "description": "The value for the tag. You can specify a value that's 1 to 256 characters in length. You can use any of the following characters: the set of Unicode letters, digits, whitespace, ``_``, ``.``, ``/``, ``=``, ``+``, and ``-``.\n For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).", // "maxLength": 256, // "minLength": 0, // "type": "string" @@ -351,7 +351,7 @@ func keyResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Key "key": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "The key name of the tag. You can specify a value that's 1 to 128 Unicode characters in length and can't be prefixed with ``aws:``. digits, whitespace, ``_``, ``.``, ``:``, ``/``, ``=``, ``+``, ``@``, ``-``, and ``\"``.\n For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).", Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 128), @@ -359,7 +359,7 @@ func keyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Value "value": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "The value for the tag. You can specify a value that's 1 to 256 characters in length. You can use any of the following characters: the set of Unicode letters, digits, whitespace, ``_``, ``.``, ``/``, ``=``, ``+``, and ``-``.\n For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).", Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(0, 256), diff --git a/internal/aws/lambda/function_resource_gen.go b/internal/aws/lambda/function_resource_gen.go index a75bb439c..e53563fe2 100644 --- a/internal/aws/lambda/function_resource_gen.go +++ b/internal/aws/lambda/function_resource_gen.go @@ -116,6 +116,11 @@ func functionResource(ctx context.Context) (resource.Resource, error) { // "minLength": 1, // "type": "string" // }, + // "SourceKMSKeyArn": { + // "description": "", + // "pattern": "^(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()$", + // "type": "string" + // }, // "ZipFile": { // "description": "(Node.js and Python) The source code of your Lambda function. If you include your function source inline with this parameter, CFN places it in a file named ``index`` and zips it to create a [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html). This zip file cannot exceed 4MB. For the ``Handler`` property, the first part of the handler identifier must be ``index``. For example, ``index.handler``.\n For JSON, you must escape quotes and special characters such as newline (``\\n``) with a backslash.\n If you specify a function that interacts with an AWS CloudFormation custom resource, you don't have to write your own functions to send responses to the custom resource that invoked the function. AWS CloudFormation provides a response module ([cfn-response](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html)) that simplifies sending responses. See [Using Lambda with CloudFormation](https://docs.aws.amazon.com/lambda/latest/dg/services-cloudformation.html) for details.", // "type": "string" @@ -174,6 +179,18 @@ func functionResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ // S3ObjectVersion is a write-only property. }, /*END ATTRIBUTE*/ + // Property: SourceKMSKeyArn + "source_kms_key_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: ZipFile "zip_file": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "(Node.js and Python) The source code of your Lambda function. If you include your function source inline with this parameter, CFN places it in a file named ``index`` and zips it to create a [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html). This zip file cannot exceed 4MB. For the ``Handler`` property, the first part of the handler identifier must be ``index``. For example, ``index.handler``.\n For JSON, you must escape quotes and special characters such as newline (``\\n``) with a backslash.\n If you specify a function that interacts with an AWS CloudFormation custom resource, you don't have to write your own functions to send responses to the custom resource that invoked the function. AWS CloudFormation provides a response module ([cfn-response](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html)) that simplifies sending responses. See [Using Lambda with CloudFormation](https://docs.aws.amazon.com/lambda/latest/dg/services-cloudformation.html) for details.", @@ -1184,6 +1201,7 @@ func functionResource(ctx context.Context) (resource.Resource, error) { "size": "Size", "snap_start": "SnapStart", "snap_start_response": "SnapStartResponse", + "source_kms_key_arn": "SourceKMSKeyArn", "subnet_ids": "SubnetIds", "system_log_level": "SystemLogLevel", "tags": "Tags", diff --git a/internal/aws/logs/delivery_destination_resource_gen.go b/internal/aws/logs/delivery_destination_resource_gen.go index a0c4298d6..9eb138282 100644 --- a/internal/aws/logs/delivery_destination_resource_gen.go +++ b/internal/aws/logs/delivery_destination_resource_gen.go @@ -86,14 +86,14 @@ func deliveryDestinationResource(ctx context.Context) (resource.Resource, error) // CloudFormation resource type schema: // // { - // "description": "The ARN of the AWS resource that will receive the logs.", + // "description": "The ARN of the Amazon Web Services destination that this delivery destination represents. That Amazon Web Services destination can be a log group in CloudWatch Logs, an Amazon S3 bucket, or a delivery stream in Firehose.", // "maxLength": 2048, // "minLength": 16, // "pattern": "[\\w#+=/:,.@-]*\\*?", // "type": "string" // } "destination_resource_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ARN of the AWS resource that will receive the logs.", + Description: "The ARN of the Amazon Web Services destination that this delivery destination represents. That Amazon Web Services destination can be a log group in CloudWatch Logs, an Amazon S3 bucket, or a delivery stream in Firehose.", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ diff --git a/internal/aws/medialive/multiplexprogram_resource_gen.go b/internal/aws/medialive/multiplexprogram_resource_gen.go index bcf94cf70..2d0a1a948 100644 --- a/internal/aws/medialive/multiplexprogram_resource_gen.go +++ b/internal/aws/medialive/multiplexprogram_resource_gen.go @@ -40,7 +40,6 @@ func multiplexprogramResource(ctx context.Context) (resource.Resource, error) { // } "channel_id": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The MediaLive channel associated with the program.", - Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), diff --git a/internal/aws/networkfirewall/logging_configuration_resource_gen.go b/internal/aws/networkfirewall/logging_configuration_resource_gen.go index c2e757fb5..e23a672d9 100644 --- a/internal/aws/networkfirewall/logging_configuration_resource_gen.go +++ b/internal/aws/networkfirewall/logging_configuration_resource_gen.go @@ -105,7 +105,8 @@ func loggingConfigurationResource(ctx context.Context) (resource.Resource, error // "LogType": { // "enum": [ // "ALERT", - // "FLOW" + // "FLOW", + // "TLS" // ], // "type": "string" // } @@ -157,6 +158,7 @@ func loggingConfigurationResource(ctx context.Context) (resource.Resource, error stringvalidator.OneOf( "ALERT", "FLOW", + "TLS", ), }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ diff --git a/internal/aws/networkmanager/connect_attachment_resource_gen.go b/internal/aws/networkmanager/connect_attachment_resource_gen.go index 3633ffc15..b1a2af10f 100644 --- a/internal/aws/networkmanager/connect_attachment_resource_gen.go +++ b/internal/aws/networkmanager/connect_attachment_resource_gen.go @@ -125,6 +125,21 @@ func connectAttachmentResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.RequiresReplace(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: NetworkFunctionGroupName + // CloudFormation resource type schema: + // + // { + // "description": "The name of the network function group attachment.", + // "type": "string" + // } + "network_function_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the network function group attachment.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Options // CloudFormation resource type schema: // @@ -171,6 +186,100 @@ func connectAttachmentResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: ProposedNetworkFunctionGroupChange + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The attachment to move from one network function group to another.", + // "properties": { + // "AttachmentPolicyRuleNumber": { + // "description": "The rule number in the policy document that applies to this change.", + // "type": "integer" + // }, + // "NetworkFunctionGroupName": { + // "description": "The name of the network function group to change.", + // "type": "string" + // }, + // "Tags": { + // "description": "The key-value tags that changed for the network function group.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "type": "string" + // }, + // "Value": { + // "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "type": "object" + // } + "proposed_network_function_group_change": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AttachmentPolicyRuleNumber + "attachment_policy_rule_number": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The rule number in the policy document that applies to this change.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: NetworkFunctionGroupName + "network_function_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the network function group to change.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The key-value tags that changed for the network function group.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The attachment to move from one network function group to another.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: ProposedSegmentChange // CloudFormation resource type schema: // @@ -407,25 +516,27 @@ func connectAttachmentResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithCloudFormationTypeName("AWS::NetworkManager::ConnectAttachment").WithTerraformTypeName("awscc_networkmanager_connect_attachment") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "attachment_id": "AttachmentId", - "attachment_policy_rule_number": "AttachmentPolicyRuleNumber", - "attachment_type": "AttachmentType", - "core_network_arn": "CoreNetworkArn", - "core_network_id": "CoreNetworkId", - "created_at": "CreatedAt", - "edge_location": "EdgeLocation", - "key": "Key", - "options": "Options", - "owner_account_id": "OwnerAccountId", - "proposed_segment_change": "ProposedSegmentChange", - "protocol": "Protocol", - "resource_arn": "ResourceArn", - "segment_name": "SegmentName", - "state": "State", - "tags": "Tags", - "transport_attachment_id": "TransportAttachmentId", - "updated_at": "UpdatedAt", - "value": "Value", + "attachment_id": "AttachmentId", + "attachment_policy_rule_number": "AttachmentPolicyRuleNumber", + "attachment_type": "AttachmentType", + "core_network_arn": "CoreNetworkArn", + "core_network_id": "CoreNetworkId", + "created_at": "CreatedAt", + "edge_location": "EdgeLocation", + "key": "Key", + "network_function_group_name": "NetworkFunctionGroupName", + "options": "Options", + "owner_account_id": "OwnerAccountId", + "proposed_network_function_group_change": "ProposedNetworkFunctionGroupChange", + "proposed_segment_change": "ProposedSegmentChange", + "protocol": "Protocol", + "resource_arn": "ResourceArn", + "segment_name": "SegmentName", + "state": "State", + "tags": "Tags", + "transport_attachment_id": "TransportAttachmentId", + "updated_at": "UpdatedAt", + "value": "Value", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/networkmanager/core_network_resource_gen.go b/internal/aws/networkmanager/core_network_resource_gen.go index 004f3de67..36139a237 100644 --- a/internal/aws/networkmanager/core_network_resource_gen.go +++ b/internal/aws/networkmanager/core_network_resource_gen.go @@ -159,6 +159,101 @@ func coreNetworkResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.RequiresReplace(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: NetworkFunctionGroups + // CloudFormation resource type schema: + // + // { + // "description": "The network function groups within a core network.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "EdgeLocations": { + // "insertionOrder": false, + // "items": { + // "description": "The Regions where the edges are located.", + // "type": "string" + // }, + // "type": "array" + // }, + // "Name": { + // "description": "Name of network function group", + // "type": "string" + // }, + // "Segments": { + // "additionalProperties": false, + // "properties": { + // "SendTo": { + // "insertionOrder": false, + // "items": { + // "description": "The send-to segments.", + // "type": "string" + // }, + // "type": "array" + // }, + // "SendVia": { + // "insertionOrder": false, + // "items": { + // "description": "The send-via segments.", + // "type": "string" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // } + "network_function_groups": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EdgeLocations + "edge_locations": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of network function group", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Segments + "segments": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SendTo + "send_to": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SendVia + "send_via": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The network function groups within a core network.", + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: OwnerAccount // CloudFormation resource type schema: // @@ -342,25 +437,28 @@ func coreNetworkResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithCloudFormationTypeName("AWS::NetworkManager::CoreNetwork").WithTerraformTypeName("awscc_networkmanager_core_network") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "asn": "Asn", - "core_network_arn": "CoreNetworkArn", - "core_network_id": "CoreNetworkId", - "created_at": "CreatedAt", - "description": "Description", - "edge_location": "EdgeLocation", - "edge_locations": "EdgeLocations", - "edges": "Edges", - "global_network_id": "GlobalNetworkId", - "inside_cidr_blocks": "InsideCidrBlocks", - "key": "Key", - "name": "Name", - "owner_account": "OwnerAccount", - "policy_document": "PolicyDocument", - "segments": "Segments", - "shared_segments": "SharedSegments", - "state": "State", - "tags": "Tags", - "value": "Value", + "asn": "Asn", + "core_network_arn": "CoreNetworkArn", + "core_network_id": "CoreNetworkId", + "created_at": "CreatedAt", + "description": "Description", + "edge_location": "EdgeLocation", + "edge_locations": "EdgeLocations", + "edges": "Edges", + "global_network_id": "GlobalNetworkId", + "inside_cidr_blocks": "InsideCidrBlocks", + "key": "Key", + "name": "Name", + "network_function_groups": "NetworkFunctionGroups", + "owner_account": "OwnerAccount", + "policy_document": "PolicyDocument", + "segments": "Segments", + "send_to": "SendTo", + "send_via": "SendVia", + "shared_segments": "SharedSegments", + "state": "State", + "tags": "Tags", + "value": "Value", }) opts = opts.WithCreateTimeoutInMinutes(720).WithDeleteTimeoutInMinutes(720) diff --git a/internal/aws/networkmanager/site_to_site_vpn_attachment_resource_gen.go b/internal/aws/networkmanager/site_to_site_vpn_attachment_resource_gen.go index 9bb3876cf..a3806b0f5 100644 --- a/internal/aws/networkmanager/site_to_site_vpn_attachment_resource_gen.go +++ b/internal/aws/networkmanager/site_to_site_vpn_attachment_resource_gen.go @@ -125,6 +125,21 @@ func siteToSiteVpnAttachmentResource(ctx context.Context) (resource.Resource, er stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: NetworkFunctionGroupName + // CloudFormation resource type schema: + // + // { + // "description": "The name of the network function group attachment.", + // "type": "string" + // } + "network_function_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the network function group attachment.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: OwnerAccountId // CloudFormation resource type schema: // @@ -139,6 +154,100 @@ func siteToSiteVpnAttachmentResource(ctx context.Context) (resource.Resource, er stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: ProposedNetworkFunctionGroupChange + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The attachment to move from one network function group to another.", + // "properties": { + // "AttachmentPolicyRuleNumber": { + // "description": "The rule number in the policy document that applies to this change.", + // "type": "integer" + // }, + // "NetworkFunctionGroupName": { + // "description": "The name of the network function group to change.", + // "type": "string" + // }, + // "Tags": { + // "description": "The key-value tags that changed for the network function group.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "type": "string" + // }, + // "Value": { + // "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "type": "object" + // } + "proposed_network_function_group_change": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AttachmentPolicyRuleNumber + "attachment_policy_rule_number": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The rule number in the policy document that applies to this change.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: NetworkFunctionGroupName + "network_function_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the network function group to change.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The key-value tags that changed for the network function group.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The attachment to move from one network function group to another.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: ProposedSegmentChange // CloudFormation resource type schema: // @@ -375,23 +484,25 @@ func siteToSiteVpnAttachmentResource(ctx context.Context) (resource.Resource, er opts = opts.WithCloudFormationTypeName("AWS::NetworkManager::SiteToSiteVpnAttachment").WithTerraformTypeName("awscc_networkmanager_site_to_site_vpn_attachment") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "attachment_id": "AttachmentId", - "attachment_policy_rule_number": "AttachmentPolicyRuleNumber", - "attachment_type": "AttachmentType", - "core_network_arn": "CoreNetworkArn", - "core_network_id": "CoreNetworkId", - "created_at": "CreatedAt", - "edge_location": "EdgeLocation", - "key": "Key", - "owner_account_id": "OwnerAccountId", - "proposed_segment_change": "ProposedSegmentChange", - "resource_arn": "ResourceArn", - "segment_name": "SegmentName", - "state": "State", - "tags": "Tags", - "updated_at": "UpdatedAt", - "value": "Value", - "vpn_connection_arn": "VpnConnectionArn", + "attachment_id": "AttachmentId", + "attachment_policy_rule_number": "AttachmentPolicyRuleNumber", + "attachment_type": "AttachmentType", + "core_network_arn": "CoreNetworkArn", + "core_network_id": "CoreNetworkId", + "created_at": "CreatedAt", + "edge_location": "EdgeLocation", + "key": "Key", + "network_function_group_name": "NetworkFunctionGroupName", + "owner_account_id": "OwnerAccountId", + "proposed_network_function_group_change": "ProposedNetworkFunctionGroupChange", + "proposed_segment_change": "ProposedSegmentChange", + "resource_arn": "ResourceArn", + "segment_name": "SegmentName", + "state": "State", + "tags": "Tags", + "updated_at": "UpdatedAt", + "value": "Value", + "vpn_connection_arn": "VpnConnectionArn", }) opts = opts.WithCreateTimeoutInMinutes(40).WithDeleteTimeoutInMinutes(720) diff --git a/internal/aws/networkmanager/transit_gateway_route_table_attachment_resource_gen.go b/internal/aws/networkmanager/transit_gateway_route_table_attachment_resource_gen.go index a1311ddf6..92a8e8d26 100644 --- a/internal/aws/networkmanager/transit_gateway_route_table_attachment_resource_gen.go +++ b/internal/aws/networkmanager/transit_gateway_route_table_attachment_resource_gen.go @@ -125,6 +125,21 @@ func transitGatewayRouteTableAttachmentResource(ctx context.Context) (resource.R stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: NetworkFunctionGroupName + // CloudFormation resource type schema: + // + // { + // "description": "The name of the network function group attachment.", + // "type": "string" + // } + "network_function_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the network function group attachment.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: OwnerAccountId // CloudFormation resource type schema: // @@ -153,6 +168,101 @@ func transitGatewayRouteTableAttachmentResource(ctx context.Context) (resource.R stringplanmodifier.RequiresReplace(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: ProposedNetworkFunctionGroupChange + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The attachment to move from one network function group to another.", + // "properties": { + // "AttachmentPolicyRuleNumber": { + // "description": "The rule number in the policy document that applies to this change.", + // "type": "integer" + // }, + // "NetworkFunctionGroupName": { + // "description": "The name of the network function group to change.", + // "type": "string" + // }, + // "Tags": { + // "description": "The key-value tags that changed for the network function group.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "insertionOrder": false, + // "properties": { + // "Key": { + // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "type": "string" + // }, + // "Value": { + // "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "type": "object" + // } + "proposed_network_function_group_change": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AttachmentPolicyRuleNumber + "attachment_policy_rule_number": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The rule number in the policy document that applies to this change.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: NetworkFunctionGroupName + "network_function_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the network function group to change.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The key-value tags that changed for the network function group.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The attachment to move from one network function group to another.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: ProposedSegmentChange // CloudFormation resource type schema: // @@ -391,24 +501,26 @@ func transitGatewayRouteTableAttachmentResource(ctx context.Context) (resource.R opts = opts.WithCloudFormationTypeName("AWS::NetworkManager::TransitGatewayRouteTableAttachment").WithTerraformTypeName("awscc_networkmanager_transit_gateway_route_table_attachment") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "attachment_id": "AttachmentId", - "attachment_policy_rule_number": "AttachmentPolicyRuleNumber", - "attachment_type": "AttachmentType", - "core_network_arn": "CoreNetworkArn", - "core_network_id": "CoreNetworkId", - "created_at": "CreatedAt", - "edge_location": "EdgeLocation", - "key": "Key", - "owner_account_id": "OwnerAccountId", - "peering_id": "PeeringId", - "proposed_segment_change": "ProposedSegmentChange", - "resource_arn": "ResourceArn", - "segment_name": "SegmentName", - "state": "State", - "tags": "Tags", - "transit_gateway_route_table_arn": "TransitGatewayRouteTableArn", - "updated_at": "UpdatedAt", - "value": "Value", + "attachment_id": "AttachmentId", + "attachment_policy_rule_number": "AttachmentPolicyRuleNumber", + "attachment_type": "AttachmentType", + "core_network_arn": "CoreNetworkArn", + "core_network_id": "CoreNetworkId", + "created_at": "CreatedAt", + "edge_location": "EdgeLocation", + "key": "Key", + "network_function_group_name": "NetworkFunctionGroupName", + "owner_account_id": "OwnerAccountId", + "peering_id": "PeeringId", + "proposed_network_function_group_change": "ProposedNetworkFunctionGroupChange", + "proposed_segment_change": "ProposedSegmentChange", + "resource_arn": "ResourceArn", + "segment_name": "SegmentName", + "state": "State", + "tags": "Tags", + "transit_gateway_route_table_arn": "TransitGatewayRouteTableArn", + "updated_at": "UpdatedAt", + "value": "Value", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/networkmanager/vpc_attachment_resource_gen.go b/internal/aws/networkmanager/vpc_attachment_resource_gen.go index d8fb80968..64ed171ec 100644 --- a/internal/aws/networkmanager/vpc_attachment_resource_gen.go +++ b/internal/aws/networkmanager/vpc_attachment_resource_gen.go @@ -128,6 +128,20 @@ func vpcAttachmentResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: NetworkFunctionGroupName + // CloudFormation resource type schema: + // + // { + // "description": "The name of the network function group attachment.", + // "type": "string" + // } + "network_function_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the network function group attachment.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Options // CloudFormation resource type schema: // @@ -192,6 +206,100 @@ func vpcAttachmentResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: ProposedNetworkFunctionGroupChange + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The attachment to move from one network function group to another.", + // "properties": { + // "AttachmentPolicyRuleNumber": { + // "description": "The rule number in the policy document that applies to this change.", + // "type": "integer" + // }, + // "NetworkFunctionGroupName": { + // "description": "The name of the network function group to change.", + // "type": "string" + // }, + // "Tags": { + // "description": "The key-value tags that changed for the network function group.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "type": "string" + // }, + // "Value": { + // "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "type": "object" + // } + "proposed_network_function_group_change": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AttachmentPolicyRuleNumber + "attachment_policy_rule_number": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The rule number in the policy document that applies to this change.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: NetworkFunctionGroupName + "network_function_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the network function group to change.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The key-value tags that changed for the network function group.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The attachment to move from one network function group to another.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: ProposedSegmentChange // CloudFormation resource type schema: // @@ -447,27 +555,29 @@ func vpcAttachmentResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithCloudFormationTypeName("AWS::NetworkManager::VpcAttachment").WithTerraformTypeName("awscc_networkmanager_vpc_attachment") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "appliance_mode_support": "ApplianceModeSupport", - "attachment_id": "AttachmentId", - "attachment_policy_rule_number": "AttachmentPolicyRuleNumber", - "attachment_type": "AttachmentType", - "core_network_arn": "CoreNetworkArn", - "core_network_id": "CoreNetworkId", - "created_at": "CreatedAt", - "edge_location": "EdgeLocation", - "ipv_6_support": "Ipv6Support", - "key": "Key", - "options": "Options", - "owner_account_id": "OwnerAccountId", - "proposed_segment_change": "ProposedSegmentChange", - "resource_arn": "ResourceArn", - "segment_name": "SegmentName", - "state": "State", - "subnet_arns": "SubnetArns", - "tags": "Tags", - "updated_at": "UpdatedAt", - "value": "Value", - "vpc_arn": "VpcArn", + "appliance_mode_support": "ApplianceModeSupport", + "attachment_id": "AttachmentId", + "attachment_policy_rule_number": "AttachmentPolicyRuleNumber", + "attachment_type": "AttachmentType", + "core_network_arn": "CoreNetworkArn", + "core_network_id": "CoreNetworkId", + "created_at": "CreatedAt", + "edge_location": "EdgeLocation", + "ipv_6_support": "Ipv6Support", + "key": "Key", + "network_function_group_name": "NetworkFunctionGroupName", + "options": "Options", + "owner_account_id": "OwnerAccountId", + "proposed_network_function_group_change": "ProposedNetworkFunctionGroupChange", + "proposed_segment_change": "ProposedSegmentChange", + "resource_arn": "ResourceArn", + "segment_name": "SegmentName", + "state": "State", + "subnet_arns": "SubnetArns", + "tags": "Tags", + "updated_at": "UpdatedAt", + "value": "Value", + "vpc_arn": "VpcArn", }) opts = opts.WithCreateTimeoutInMinutes(60).WithDeleteTimeoutInMinutes(60) diff --git a/internal/aws/osis/pipeline_resource_gen.go b/internal/aws/osis/pipeline_resource_gen.go index 8e2fd903f..9e058ca54 100644 --- a/internal/aws/osis/pipeline_resource_gen.go +++ b/internal/aws/osis/pipeline_resource_gen.go @@ -392,6 +392,26 @@ func pipelineResource(ctx context.Context) (resource.Resource, error) { // }, // "type": "array" // }, + // "VpcAttachmentOptions": { + // "additionalProperties": false, + // "description": "Options for attaching a VPC to the pipeline.", + // "properties": { + // "AttachToVpc": { + // "description": "Whether the pipeline should be attached to the provided VPC", + // "type": "boolean" + // }, + // "CidrBlock": { + // "description": "The CIDR block to be reserved for OpenSearch Ingestion to create elastic network interfaces (ENIs).", + // "pattern": "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/(3[0-2]|[12]?[0-9])$", + // "type": "string" + // } + // }, + // "required": [ + // "AttachToVpc", + // "CidrBlock" + // ], + // "type": "object" + // }, // "VpcEndpointManagement": { // "description": "Defines whether you or Amazon OpenSearch Ingestion service create and manage the VPC endpoint configured for the pipeline.", // "enum": [ @@ -445,6 +465,23 @@ func pipelineResource(ctx context.Context) (resource.Resource, error) { generic.Multiset(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: VpcAttachmentOptions + "vpc_attachment_options": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AttachToVpc + "attach_to_vpc": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Whether the pipeline should be attached to the provided VPC", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CidrBlock + "cidr_block": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The CIDR block to be reserved for OpenSearch Ingestion to create elastic network interfaces (ENIs).", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Options for attaching a VPC to the pipeline.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: VpcEndpointManagement "vpc_endpoint_management": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "Defines whether you or Amazon OpenSearch Ingestion service create and manage the VPC endpoint configured for the pipeline.", @@ -492,6 +529,26 @@ func pipelineResource(ctx context.Context) (resource.Resource, error) { // }, // "type": "array" // }, + // "VpcAttachmentOptions": { + // "additionalProperties": false, + // "description": "Options for attaching a VPC to the pipeline.", + // "properties": { + // "AttachToVpc": { + // "description": "Whether the pipeline should be attached to the provided VPC", + // "type": "boolean" + // }, + // "CidrBlock": { + // "description": "The CIDR block to be reserved for OpenSearch Ingestion to create elastic network interfaces (ENIs).", + // "pattern": "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/(3[0-2]|[12]?[0-9])$", + // "type": "string" + // } + // }, + // "required": [ + // "AttachToVpc", + // "CidrBlock" + // ], + // "type": "object" + // }, // "VpcEndpointManagement": { // "description": "Defines whether you or Amazon OpenSearch Ingestion service create and manage the VPC endpoint configured for the pipeline.", // "enum": [ @@ -540,6 +597,30 @@ func pipelineResource(ctx context.Context) (resource.Resource, error) { generic.Multiset(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: VpcAttachmentOptions + "vpc_attachment_options": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AttachToVpc + "attach_to_vpc": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Whether the pipeline should be attached to the provided VPC", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: CidrBlock + "cidr_block": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The CIDR block to be reserved for OpenSearch Ingestion to create elastic network interfaces (ENIs).", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/(3[0-2]|[12]?[0-9])$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Options for attaching a VPC to the pipeline.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: VpcEndpointManagement "vpc_endpoint_management": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "Defines whether you or Amazon OpenSearch Ingestion service create and manage the VPC endpoint configured for the pipeline.", @@ -586,7 +667,9 @@ func pipelineResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithCloudFormationTypeName("AWS::OSIS::Pipeline").WithTerraformTypeName("awscc_osis_pipeline") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ + "attach_to_vpc": "AttachToVpc", "buffer_options": "BufferOptions", + "cidr_block": "CidrBlock", "cloudwatch_log_destination": "CloudWatchLogDestination", "encryption_at_rest_options": "EncryptionAtRestOptions", "ingest_endpoint_urls": "IngestEndpointUrls", @@ -605,6 +688,7 @@ func pipelineResource(ctx context.Context) (resource.Resource, error) { "subnet_ids": "SubnetIds", "tags": "Tags", "value": "Value", + "vpc_attachment_options": "VpcAttachmentOptions", "vpc_endpoint_id": "VpcEndpointId", "vpc_endpoint_management": "VpcEndpointManagement", "vpc_endpoint_service": "VpcEndpointService", diff --git a/internal/aws/rds/db_cluster_parameter_group_resource_gen.go b/internal/aws/rds/db_cluster_parameter_group_resource_gen.go index 5fcc76d39..e169903a7 100644 --- a/internal/aws/rds/db_cluster_parameter_group_resource_gen.go +++ b/internal/aws/rds/db_cluster_parameter_group_resource_gen.go @@ -34,12 +34,12 @@ func dBClusterParameterGroupResource(ctx context.Context) (resource.Resource, er // CloudFormation resource type schema: // // { - // "description": "The name of the DB cluster parameter group.\n Constraints:\n + Must not match the name of an existing DB cluster parameter group.\n \n If you don't specify a value for ``DBClusterParameterGroupName`` property, a name is automatically created for the DB cluster parameter group.\n This value is stored as a lowercase string.", + // "description": "The name of the DB cluster parameter group.\n Constraints:\n + Must not match the name of an existing DB cluster parameter group.\n \n This value is stored as a lowercase string.", // "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9])*$", // "type": "string" // } "db_cluster_parameter_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of the DB cluster parameter group.\n Constraints:\n + Must not match the name of an existing DB cluster parameter group.\n \n If you don't specify a value for ``DBClusterParameterGroupName`` property, a name is automatically created for the DB cluster parameter group.\n This value is stored as a lowercase string.", + Description: "The name of the DB cluster parameter group.\n Constraints:\n + Must not match the name of an existing DB cluster parameter group.\n \n This value is stored as a lowercase string.", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -54,11 +54,11 @@ func dBClusterParameterGroupResource(ctx context.Context) (resource.Resource, er // CloudFormation resource type schema: // // { - // "description": "A friendly description for this DB cluster parameter group.", + // "description": "The description for the DB cluster parameter group.", // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A friendly description for this DB cluster parameter group.", + Description: "The description for the DB cluster parameter group.", Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), @@ -68,11 +68,11 @@ func dBClusterParameterGroupResource(ctx context.Context) (resource.Resource, er // CloudFormation resource type schema: // // { - // "description": "The DB cluster parameter group family name. A DB cluster parameter group can be associated with one and only one DB cluster parameter group family, and can be applied only to a DB cluster running a DB engine and engine version compatible with that DB cluster parameter group family.\n The DB cluster parameter group family can't be changed when updating a DB cluster parameter group.\n To list all of the available parameter group families, use the following command:\n ``aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\"`` \n The output contains duplicates.\n For more information, see ``CreateDBClusterParameterGroup``.", + // "description": "The DB cluster parameter group family name. A DB cluster parameter group can be associated with one and only one DB cluster parameter group family, and can be applied only to a DB cluster running a database engine and engine version compatible with that DB cluster parameter group family.\n *Aurora MySQL* \n Example: ``aurora-mysql5.7``, ``aurora-mysql8.0`` \n *Aurora PostgreSQL* \n Example: ``aurora-postgresql14`` \n *RDS for MySQL* \n Example: ``mysql8.0`` \n *RDS for PostgreSQL* \n Example: ``postgres13`` \n To list all of the available parameter group families for a DB engine, use the following command:\n ``aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\" --engine \u003cengine\u003e`` \n For example, to list all of the available parameter group families for the Aurora PostgreSQL DB engine, use the following command:\n ``aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\" --engine aurora-postgresql`` \n The output contains duplicates.\n The following are the valid DB engine values:\n + ``aurora-mysql`` \n + ``aurora-postgresql`` \n + ``mysql`` \n + ``postgres``", // "type": "string" // } "family": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The DB cluster parameter group family name. A DB cluster parameter group can be associated with one and only one DB cluster parameter group family, and can be applied only to a DB cluster running a DB engine and engine version compatible with that DB cluster parameter group family.\n The DB cluster parameter group family can't be changed when updating a DB cluster parameter group.\n To list all of the available parameter group families, use the following command:\n ``aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\"`` \n The output contains duplicates.\n For more information, see ``CreateDBClusterParameterGroup``.", + Description: "The DB cluster parameter group family name. A DB cluster parameter group can be associated with one and only one DB cluster parameter group family, and can be applied only to a DB cluster running a database engine and engine version compatible with that DB cluster parameter group family.\n *Aurora MySQL* \n Example: ``aurora-mysql5.7``, ``aurora-mysql8.0`` \n *Aurora PostgreSQL* \n Example: ``aurora-postgresql14`` \n *RDS for MySQL* \n Example: ``mysql8.0`` \n *RDS for PostgreSQL* \n Example: ``postgres13`` \n To list all of the available parameter group families for a DB engine, use the following command:\n ``aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\" --engine `` \n For example, to list all of the available parameter group families for the Aurora PostgreSQL DB engine, use the following command:\n ``aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\" --engine aurora-postgresql`` \n The output contains duplicates.\n The following are the valid DB engine values:\n + ``aurora-mysql`` \n + ``aurora-postgresql`` \n + ``mysql`` \n + ``postgres``", Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), @@ -94,11 +94,11 @@ func dBClusterParameterGroupResource(ctx context.Context) (resource.Resource, er // CloudFormation resource type schema: // // { - // "description": "An optional array of key-value pairs to apply to this DB cluster parameter group.", + // "description": "Tags to assign to the DB cluster parameter group.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", + // "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", // "properties": { // "Key": { // "description": "A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", @@ -146,7 +146,7 @@ func dBClusterParameterGroupResource(ctx context.Context) (resource.Resource, er }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "An optional array of key-value pairs to apply to this DB cluster parameter group.", + Description: "Tags to assign to the DB cluster parameter group.", Optional: true, Computed: true, Validators: []validator.List{ /*START VALIDATORS*/ @@ -169,7 +169,7 @@ func dBClusterParameterGroupResource(ctx context.Context) (resource.Resource, er } schema := schema.Schema{ - Description: "The ``AWS::RDS::DBClusterParameterGroup`` resource creates a new Amazon RDS DB cluster parameter group.\n For information about configuring parameters for Amazon Aurora DB clusters, see [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*.\n If you apply a parameter group to a DB cluster, then its DB instances might need to reboot. This can result in an outage while the DB instances are rebooting.\n If you apply a change to parameter group associated with a stopped DB cluster, then the update stack waits until the DB cluster is started.", + Description: "The ``AWS::RDS::DBClusterParameterGroup`` resource creates a new Amazon RDS DB cluster parameter group.\n For information about configuring parameters for Amazon Aurora DB clusters, see [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*.\n If you apply a parameter group to a DB cluster, then its DB instances might need to reboot. This can result in an outage while the DB instances are rebooting.\n If you apply a change to parameter group associated with a stopped DB cluster, then the updated stack waits until the DB cluster is started.", Version: 1, Attributes: attributes, } diff --git a/internal/aws/rds/db_cluster_resource_gen.go b/internal/aws/rds/db_cluster_resource_gen.go index 5c3538d95..7fc4d3ef4 100644 --- a/internal/aws/rds/db_cluster_resource_gen.go +++ b/internal/aws/rds/db_cluster_resource_gen.go @@ -152,12 +152,12 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The target backtrack window, in seconds. To disable backtracking, set this value to 0. \n Currently, Backtrack is only supported for Aurora MySQL DB clusters.\n Default: 0\n Constraints:\n + If specified, this value must be set to a number from 0 to 259,200 (72 hours).\n \n Valid for: Aurora MySQL DB clusters only", + // "description": "The target backtrack window, in seconds. To disable backtracking, set this value to ``0``.\n Valid for Cluster Type: Aurora MySQL DB clusters only\n Default: ``0`` \n Constraints:\n + If specified, this value must be set to a number from 0 to 259,200 (72 hours).", // "minimum": 0, // "type": "integer" // } "backtrack_window": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The target backtrack window, in seconds. To disable backtracking, set this value to 0. \n Currently, Backtrack is only supported for Aurora MySQL DB clusters.\n Default: 0\n Constraints:\n + If specified, this value must be set to a number from 0 to 259,200 (72 hours).\n \n Valid for: Aurora MySQL DB clusters only", + Description: "The target backtrack window, in seconds. To disable backtracking, set this value to ``0``.\n Valid for Cluster Type: Aurora MySQL DB clusters only\n Default: ``0`` \n Constraints:\n + If specified, this value must be set to a number from 0 to 259,200 (72 hours).", Optional: true, Computed: true, Validators: []validator.Int64{ /*START VALIDATORS*/ @@ -948,11 +948,11 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { // // { // "default": "full-copy", - // "description": "The type of restore to be performed. You can specify one of the following values:\n + ``full-copy`` - The new DB cluster is restored as a full copy of the source DB cluster.\n + ``copy-on-write`` - The new DB cluster is restored as a clone of the source DB cluster.\n \n If you don't specify a ``RestoreType`` value, then the new DB cluster is restored as a full copy of the source DB cluster.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + // "description": "The type of restore to be performed. You can specify one of the following values:\n + ``full-copy`` - The new DB cluster is restored as a full copy of the source DB cluster.\n + ``copy-on-write`` - The new DB cluster is restored as a clone of the source DB cluster.\n \n If you don't specify a ``RestoreType`` value, then the new DB cluster is restored as a full copy of the source DB cluster.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", // "type": "string" // } "restore_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of restore to be performed. You can specify one of the following values:\n + ``full-copy`` - The new DB cluster is restored as a full copy of the source DB cluster.\n + ``copy-on-write`` - The new DB cluster is restored as a clone of the source DB cluster.\n \n If you don't specify a ``RestoreType`` value, then the new DB cluster is restored as a full copy of the source DB cluster.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + Description: "The type of restore to be performed. You can specify one of the following values:\n + ``full-copy`` - The new DB cluster is restored as a full copy of the source DB cluster.\n + ``copy-on-write`` - The new DB cluster is restored as a clone of the source DB cluster.\n \n If you don't specify a ``RestoreType`` value, then the new DB cluster is restored as a full copy of the source DB cluster.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", Optional: true, Computed: true, Default: stringdefault.StaticString("full-copy"), @@ -1206,11 +1206,11 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "An optional array of key-value pairs to apply to this DB cluster.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + // "description": "Tags to assign to the DB cluster.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", + // "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", // "properties": { // "Key": { // "description": "A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", @@ -1259,7 +1259,7 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "An optional array of key-value pairs to apply to this DB cluster.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + Description: "Tags to assign to the DB cluster.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", Optional: true, Computed: true, Validators: []validator.Set{ /*START VALIDATORS*/ @@ -1321,7 +1321,7 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { } schema := schema.Schema{ - Description: "The ``AWS::RDS::DBCluster`` resource creates an Amazon Aurora DB cluster or Multi-AZ DB cluster.\n For more information about creating an Aurora DB cluster, see [Creating an Amazon Aurora DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) in the *Amazon Aurora User Guide*.\n For more information about creating a Multi-AZ DB cluster, see [Creating a Multi-AZ DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/create-multi-az-db-cluster.html) in the *Amazon RDS User Guide*.\n You can only create this resource in AWS Regions where Amazon Aurora or Multi-AZ DB clusters are supported.\n *Updating DB clusters* \n When properties labeled \"*Update requires:* [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\" are updated, AWS CloudFormation first creates a replacement DB cluster, then changes references from other dependent resources to point to the replacement DB cluster, and finally deletes the old DB cluster.\n We highly recommend that you take a snapshot of the database before updating the stack. If you don't, you lose the data when AWS CloudFormation replaces your DB cluster. To preserve your data, perform the following procedure:\n 1. Deactivate any applications that are using the DB cluster so that there's no activity on the DB instance.\n 1. Create a snapshot of the DB cluster. For more information, see [Creating a DB Cluster Snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_CreateSnapshotCluster.html).\n 1. If you want to restore your DB cluster using a DB cluster snapshot, modify the updated template with your DB cluster changes and add the ``SnapshotIdentifier`` property with the ID of the DB cluster snapshot that you want to use.\n After you restore a DB cluster with a ``SnapshotIdentifier`` property, you must specify the same ``SnapshotIdentifier`` property for any future updates to the DB cluster. When you specify this property for an update, the DB cluster is not restored from the DB cluster snapshot again, and the data in the database is not changed. However, if you don't specify the ``SnapshotIdentifier`` property, an empty DB cluster is created, and the original DB cluster is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB cluster is restored from the specified ``SnapshotIdentifier`` property, and the original DB cluster is deleted.\n 1. Update the stack.\n \n Currently, when you are updating the stack for an Aurora Serverless DB cluster, you can't include changes to any other properties when you specify one of the following properties: ``PreferredBackupWindow``, ``PreferredMaintenanceWindow``, and ``Port``. This limitation doesn't apply to provisioned DB clusters.\n For more information about updating other properties of this resource, see ``ModifyDBCluster``. For more information about updating stacks, see [CloudFormation Stacks Updates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html).\n *Deleting DB clusters* \n The default ``DeletionPolicy`` for ``AWS::RDS::DBCluster`` resources is ``Snapshot``. For more information about how AWS CloudFormation deletes resources, see [DeletionPolicy Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html).", + Description: "The ``AWS::RDS::DBCluster`` resource creates an Amazon Aurora DB cluster or Multi-AZ DB cluster.\n For more information about creating an Aurora DB cluster, see [Creating an Amazon Aurora DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) in the *Amazon Aurora User Guide*.\n For more information about creating a Multi-AZ DB cluster, see [Creating a Multi-AZ DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/create-multi-az-db-cluster.html) in the *Amazon RDS User Guide*.\n You can only create this resource in AWS Regions where Amazon Aurora or Multi-AZ DB clusters are supported.\n *Updating DB clusters* \n When properties labeled \"*Update requires:* [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\" are updated, AWS CloudFormation first creates a replacement DB cluster, then changes references from other dependent resources to point to the replacement DB cluster, and finally deletes the old DB cluster.\n We highly recommend that you take a snapshot of the database before updating the stack. If you don't, you lose the data when AWS CloudFormation replaces your DB cluster. To preserve your data, perform the following procedure:\n 1. Deactivate any applications that are using the DB cluster so that there's no activity on the DB instance.\n 1. Create a snapshot of the DB cluster. For more information, see [Creating a DB cluster snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_CreateSnapshotCluster.html).\n 1. If you want to restore your DB cluster using a DB cluster snapshot, modify the updated template with your DB cluster changes and add the ``SnapshotIdentifier`` property with the ID of the DB cluster snapshot that you want to use.\n After you restore a DB cluster with a ``SnapshotIdentifier`` property, you must specify the same ``SnapshotIdentifier`` property for any future updates to the DB cluster. When you specify this property for an update, the DB cluster is not restored from the DB cluster snapshot again, and the data in the database is not changed. However, if you don't specify the ``SnapshotIdentifier`` property, an empty DB cluster is created, and the original DB cluster is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB cluster is restored from the specified ``SnapshotIdentifier`` property, and the original DB cluster is deleted.\n 1. Update the stack.\n \n Currently, when you are updating the stack for an Aurora Serverless DB cluster, you can't include changes to any other properties when you specify one of the following properties: ``PreferredBackupWindow``, ``PreferredMaintenanceWindow``, and ``Port``. This limitation doesn't apply to provisioned DB clusters.\n For more information about updating other properties of this resource, see ``ModifyDBCluster``. For more information about updating stacks, see [CloudFormation Stacks Updates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html).\n *Deleting DB clusters* \n The default ``DeletionPolicy`` for ``AWS::RDS::DBCluster`` resources is ``Snapshot``. For more information about how AWS CloudFormation deletes resources, see [DeletionPolicy Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html).", Version: 1, Attributes: attributes, } diff --git a/internal/aws/rds/db_instance_resource_gen.go b/internal/aws/rds/db_instance_resource_gen.go index 81a27a35b..85a8e7587 100644 --- a/internal/aws/rds/db_instance_resource_gen.go +++ b/internal/aws/rds/db_instance_resource_gen.go @@ -154,11 +154,11 @@ func dBInstanceResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "", + // "description": "The AWS-Region associated with the automated backup.", // "type": "string" // } "automatic_backup_replication_region": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "The AWS-Region associated with the automated backup.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -329,11 +329,11 @@ func dBInstanceResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The identifier of the DB cluster that the instance will belong to.", + // "description": "The identifier of the DB cluster that this DB instance will belong to.\n This setting doesn't apply to RDS Custom DB instances.", // "type": "string" // } "db_cluster_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The identifier of the DB cluster that the instance will belong to.", + Description: "The identifier of the DB cluster that this DB instance will belong to.\n This setting doesn't apply to RDS Custom DB instances.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -482,11 +482,11 @@ func dBInstanceResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC. \n If there's no DB subnet group, then the DB instance isn't a VPC DB instance.\n For more information about using Amazon RDS in a VPC, see [Using Amazon RDS with Amazon Virtual Private Cloud (VPC)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*. \n *Amazon Aurora* \n Not applicable. The DB subnet group is managed by the DB cluster. If specified, the setting must match the DB cluster setting.", + // "description": "A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC. \n If there's no DB subnet group, then the DB instance isn't a VPC DB instance.\n For more information about using Amazon RDS in a VPC, see [Amazon VPC and Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*. \n This setting doesn't apply to Amazon Aurora DB instances. The DB subnet group is managed by the DB cluster. If specified, the setting must match the DB cluster setting.", // "type": "string" // } "db_subnet_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC. \n If there's no DB subnet group, then the DB instance isn't a VPC DB instance.\n For more information about using Amazon RDS in a VPC, see [Using Amazon RDS with Amazon Virtual Private Cloud (VPC)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*. \n *Amazon Aurora* \n Not applicable. The DB subnet group is managed by the DB cluster. If specified, the setting must match the DB cluster setting.", + Description: "A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC. \n If there's no DB subnet group, then the DB instance isn't a VPC DB instance.\n For more information about using Amazon RDS in a VPC, see [Amazon VPC and Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*. \n This setting doesn't apply to Amazon Aurora DB instances. The DB subnet group is managed by the DB cluster. If specified, the setting must match the DB cluster setting.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -557,11 +557,11 @@ func dBInstanceResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. For more information, see [Deleting a DB Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html). \n *Amazon Aurora* \n Not applicable. You can enable or disable deletion protection for the DB cluster. For more information, see ``CreateDBCluster``. DB instances in a DB cluster can be deleted even when deletion protection is enabled for the DB cluster.", + // "description": "Specifies whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection isn't enabled. For more information, see [Deleting a DB Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html).\n This setting doesn't apply to Amazon Aurora DB instances. You can enable or disable deletion protection for the DB cluster. For more information, see ``CreateDBCluster``. DB instances in a DB cluster can be deleted even when deletion protection is enabled for the DB cluster.", // "type": "boolean" // } "deletion_protection": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. For more information, see [Deleting a DB Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html). \n *Amazon Aurora* \n Not applicable. You can enable or disable deletion protection for the DB cluster. For more information, see ``CreateDBCluster``. DB instances in a DB cluster can be deleted even when deletion protection is enabled for the DB cluster.", + Description: "Specifies whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection isn't enabled. For more information, see [Deleting a DB Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html).\n This setting doesn't apply to Amazon Aurora DB instances. You can enable or disable deletion protection for the DB cluster. For more information, see ``CreateDBCluster``. DB instances in a DB cluster can be deleted even when deletion protection is enabled for the DB cluster.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -938,14 +938,14 @@ func dBInstanceResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The master user name for the DB instance.\n If you specify the ``SourceDBInstanceIdentifier`` or ``DBSnapshotIdentifier`` property, don't specify this property. The value is inherited from the source DB instance or snapshot.\n When migrating a self-managed Db2 database, we recommend that you use the same master username as your self-managed Db2 instance name.\n *Amazon Aurora* \n Not applicable. The name for the master user is managed by the DB cluster. \n *RDS for Db2* \n Constraints:\n + Must be 1 to 16 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for MariaDB* \n Constraints:\n + Must be 1 to 16 letters or numbers.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for Microsoft SQL Server* \n Constraints:\n + Must be 1 to 128 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for MySQL* \n Constraints:\n + Must be 1 to 16 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for Oracle* \n Constraints:\n + Must be 1 to 30 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for PostgreSQL* \n Constraints:\n + Must be 1 to 63 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.", + // "description": "The master user name for the DB instance.\n If you specify the ``SourceDBInstanceIdentifier`` or ``DBSnapshotIdentifier`` property, don't specify this property. The value is inherited from the source DB instance or snapshot.\n When migrating a self-managed Db2 database, we recommend that you use the same master username as your self-managed Db2 instance name.\n *Amazon Aurora* \n Not applicable. The name for the master user is managed by the DB cluster. \n *RDS for Db2* \n Constraints:\n + Must be 1 to 16 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for MariaDB* \n Constraints:\n + Must be 1 to 16 letters or numbers.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for Microsoft SQL Server* \n Constraints:\n + Must be 1 to 128 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for MySQL* \n Constraints:\n + Must be 1 to 16 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for Oracle* \n Constraints:\n + Must be 1 to 30 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for PostgreSQL* \n Constraints:\n + Must be 1 to 63 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.", // "maxLength": 128, // "minLength": 1, // "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", // "type": "string" // } "master_username": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The master user name for the DB instance.\n If you specify the ``SourceDBInstanceIdentifier`` or ``DBSnapshotIdentifier`` property, don't specify this property. The value is inherited from the source DB instance or snapshot.\n When migrating a self-managed Db2 database, we recommend that you use the same master username as your self-managed Db2 instance name.\n *Amazon Aurora* \n Not applicable. The name for the master user is managed by the DB cluster. \n *RDS for Db2* \n Constraints:\n + Must be 1 to 16 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for MariaDB* \n Constraints:\n + Must be 1 to 16 letters or numbers.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for Microsoft SQL Server* \n Constraints:\n + Must be 1 to 128 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for MySQL* \n Constraints:\n + Must be 1 to 16 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for Oracle* \n Constraints:\n + Must be 1 to 30 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for PostgreSQL* \n Constraints:\n + Must be 1 to 63 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.", + Description: "The master user name for the DB instance.\n If you specify the ``SourceDBInstanceIdentifier`` or ``DBSnapshotIdentifier`` property, don't specify this property. The value is inherited from the source DB instance or snapshot.\n When migrating a self-managed Db2 database, we recommend that you use the same master username as your self-managed Db2 instance name.\n *Amazon Aurora* \n Not applicable. The name for the master user is managed by the DB cluster. \n *RDS for Db2* \n Constraints:\n + Must be 1 to 16 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for MariaDB* \n Constraints:\n + Must be 1 to 16 letters or numbers.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for Microsoft SQL Server* \n Constraints:\n + Must be 1 to 128 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for MySQL* \n Constraints:\n + Must be 1 to 16 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for Oracle* \n Constraints:\n + Must be 1 to 30 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for PostgreSQL* \n Constraints:\n + Must be 1 to 63 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -977,11 +977,11 @@ func dBInstanceResource(ctx context.Context) (resource.Resource, error) { // // { // "default": 0, - // "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collection of Enhanced Monitoring metrics, specify 0. The default is 0.\n If ``MonitoringRoleArn`` is specified, then you must set ``MonitoringInterval`` to a value other than 0.\n This setting doesn't apply to RDS Custom.\n Valid Values: ``0, 1, 5, 10, 15, 30, 60``", + // "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collection of Enhanced Monitoring metrics, specify ``0``.\n If ``MonitoringRoleArn`` is specified, then you must set ``MonitoringInterval`` to a value other than ``0``.\n This setting doesn't apply to RDS Custom DB instances.\n Valid Values: ``0 | 1 | 5 | 10 | 15 | 30 | 60`` \n Default: ``0``", // "type": "integer" // } "monitoring_interval": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collection of Enhanced Monitoring metrics, specify 0. The default is 0.\n If ``MonitoringRoleArn`` is specified, then you must set ``MonitoringInterval`` to a value other than 0.\n This setting doesn't apply to RDS Custom.\n Valid Values: ``0, 1, 5, 10, 15, 30, 60``", + Description: "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collection of Enhanced Monitoring metrics, specify ``0``.\n If ``MonitoringRoleArn`` is specified, then you must set ``MonitoringInterval`` to a value other than ``0``.\n This setting doesn't apply to RDS Custom DB instances.\n Valid Values: ``0 | 1 | 5 | 10 | 15 | 30 | 60`` \n Default: ``0``", Optional: true, Computed: true, Default: int64default.StaticInt64(0), @@ -1008,11 +1008,11 @@ func dBInstanceResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "Specifies whether the database instance is a Multi-AZ DB instance deployment. You can't set the ``AvailabilityZone`` parameter if the ``MultiAZ`` parameter is set to true. \n For more information, see [Multi-AZ deployments for high availability](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html) in the *Amazon RDS User Guide*.\n *Amazon Aurora* \n Not applicable. Amazon Aurora storage is replicated across all of the Availability Zones and doesn't require the ``MultiAZ`` option to be set.", + // "description": "Specifies whether the DB instance is a Multi-AZ deployment. You can't set the ``AvailabilityZone`` parameter if the DB instance is a Multi-AZ deployment.\n This setting doesn't apply to the following DB instances:\n + Amazon Aurora (DB instance Availability Zones (AZs) are managed by the DB cluster.)\n + RDS Custom", // "type": "boolean" // } "multi_az": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether the database instance is a Multi-AZ DB instance deployment. You can't set the ``AvailabilityZone`` parameter if the ``MultiAZ`` parameter is set to true. \n For more information, see [Multi-AZ deployments for high availability](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html) in the *Amazon RDS User Guide*.\n *Amazon Aurora* \n Not applicable. Amazon Aurora storage is replicated across all of the Availability Zones and doesn't require the ``MultiAZ`` option to be set.", + Description: "Specifies whether the DB instance is a Multi-AZ deployment. You can't set the ``AvailabilityZone`` parameter if the DB instance is a Multi-AZ deployment.\n This setting doesn't apply to the following DB instances:\n + Amazon Aurora (DB instance Availability Zones (AZs) are managed by the DB cluster.)\n + RDS Custom", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -1099,12 +1099,12 @@ func dBInstanceResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The port number on which the database accepts connections.\n *Amazon Aurora* \n Not applicable. The port number is managed by the DB cluster.\n *Db2* \n Default value: ``50000``", + // "description": "The port number on which the database accepts connections.\n This setting doesn't apply to Aurora DB instances. The port number is managed by the cluster.\n Valid Values: ``1150-65535`` \n Default:\n + RDS for Db2 - ``50000`` \n + RDS for MariaDB - ``3306`` \n + RDS for Microsoft SQL Server - ``1433`` \n + RDS for MySQL - ``3306`` \n + RDS for Oracle - ``1521`` \n + RDS for PostgreSQL - ``5432`` \n \n Constraints:\n + For RDS for Microsoft SQL Server, the value can't be ``1234``, ``1434``, ``3260``, ``3343``, ``3389``, ``47001``, or ``49152-49156``.", // "pattern": "^\\d*$", // "type": "string" // } "port": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The port number on which the database accepts connections.\n *Amazon Aurora* \n Not applicable. The port number is managed by the DB cluster.\n *Db2* \n Default value: ``50000``", + Description: "The port number on which the database accepts connections.\n This setting doesn't apply to Aurora DB instances. The port number is managed by the cluster.\n Valid Values: ``1150-65535`` \n Default:\n + RDS for Db2 - ``50000`` \n + RDS for MariaDB - ``3306`` \n + RDS for Microsoft SQL Server - ``1433`` \n + RDS for MySQL - ``3306`` \n + RDS for Oracle - ``1521`` \n + RDS for PostgreSQL - ``5432`` \n \n Constraints:\n + For RDS for Microsoft SQL Server, the value can't be ``1234``, ``1434``, ``3260``, ``3343``, ``3389``, ``47001``, or ``49152-49156``.", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -1407,11 +1407,11 @@ func dBInstanceResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "An optional array of key-value pairs to apply to this DB instance.", + // "description": "Tags to assign to the DB instance.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", + // "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", // "properties": { // "Key": { // "description": "A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", @@ -1459,7 +1459,7 @@ func dBInstanceResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "An optional array of key-value pairs to apply to this DB instance.", + Description: "Tags to assign to the DB instance.", Optional: true, Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ @@ -1581,7 +1581,7 @@ func dBInstanceResource(ctx context.Context) (resource.Resource, error) { } schema := schema.Schema{ - Description: "The ``AWS::RDS::DBInstance`` resource creates an Amazon DB instance. The new DB instance can be an RDS DB instance, or it can be a DB instance in an Aurora DB cluster.\n For more information about creating an RDS DB instance, see [Creating an Amazon RDS DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html) in the *Amazon RDS User Guide*.\n For more information about creating a DB instance in an Aurora DB cluster, see [Creating an Amazon Aurora DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) in the *Amazon Aurora User Guide*.\n If you import an existing DB instance, and the template configuration doesn't match the actual configuration of the DB instance, AWS CloudFormation applies the changes in the template during the import operation.\n If a DB instance is deleted or replaced during an update, AWS CloudFormation deletes all automated snapshots. However, it retains manual DB snapshots. During an update that requires replacement, you can apply a stack policy to prevent DB instances from being replaced. For more information, see [Prevent Updates to Stack Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html).\n *Updating DB instances* \n When properties labeled \"*Update requires:* [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\" are updated, AWS CloudFormation first creates a replacement DB instance, then changes references from other dependent resources to point to the replacement DB instance, and finally deletes the old DB instance.\n We highly recommend that you take a snapshot of the database before updating the stack. If you don't, you lose the data when AWS CloudFormation replaces your DB instance. To preserve your data, perform the following procedure:\n 1. Deactivate any applications that are using the DB instance so that there's no activity on the DB instance.\n 1. Create a snapshot of the DB instance. For more information, see [Creating a DB Snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html).\n 1. If you want to restore your instance using a DB snapshot, modify the updated template with your DB instance changes and add the ``DBSnapshotIdentifier`` property with the ID of the DB snapshot that you want to use.\n After you restore a DB instance with a ``DBSnapshotIdentifier`` property, you can delete the ``DBSnapshotIdentifier`` property. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. However, if you don't specify the ``DBSnapshotIdentifier`` property, an empty DB instance is created, and the original DB instance is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified ``DBSnapshotIdentifier`` property, and the original DB instance is deleted.\n 1. Update the stack.\n \n For more information about updating other properties of this resource, see ``ModifyDBInstance``. For more information about updating stacks, see [CloudFormation Stacks Updates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html).\n *Deleting DB instances* \n For DB instances that are part of an Aurora DB cluster, you can set a deletion policy for your DB instance to control how AWS CloudFormation handles the DB instance when the stack is deleted. For Amazon RDS DB instances, you can choose to *retain* the DB instance, to *delete* the DB instance, or to *create a snapshot* of the DB instance. The default AWS CloudFormation behavior depends on the ``DBClusterIdentifier`` property:\n 1. For ``AWS::RDS::DBInstance`` resources that don't specify the ``DBClusterIdentifier`` property, AWS CloudFormation saves a snapshot of the DB instance.\n 1. For ``AWS::RDS::DBInstance`` resources that do specify the ``DBClusterIdentifier`` property, AWS CloudFormation deletes the DB instance.\n \n For more information, see [DeletionPolicy Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html).", + Description: "The ``AWS::RDS::DBInstance`` resource creates an Amazon DB instance. The new DB instance can be an RDS DB instance, or it can be a DB instance in an Aurora DB cluster.\n For more information about creating an RDS DB instance, see [Creating an Amazon RDS DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html) in the *Amazon RDS User Guide*.\n For more information about creating a DB instance in an Aurora DB cluster, see [Creating an Amazon Aurora DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) in the *Amazon Aurora User Guide*.\n If you import an existing DB instance, and the template configuration doesn't match the actual configuration of the DB instance, AWS CloudFormation applies the changes in the template during the import operation.\n If a DB instance is deleted or replaced during an update, AWS CloudFormation deletes all automated snapshots. However, it retains manual DB snapshots. During an update that requires replacement, you can apply a stack policy to prevent DB instances from being replaced. For more information, see [Prevent Updates to Stack Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html).\n *Updating DB instances* \n When properties labeled \"*Update requires:* [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\" are updated, AWS CloudFormation first creates a replacement DB instance, then changes references from other dependent resources to point to the replacement DB instance, and finally deletes the old DB instance.\n We highly recommend that you take a snapshot of the database before updating the stack. If you don't, you lose the data when AWS CloudFormation replaces your DB instance. To preserve your data, perform the following procedure:\n 1. Deactivate any applications that are using the DB instance so that there's no activity on the DB instance.\n 1. Create a snapshot of the DB instance. For more information, see [Creating a DB Snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html).\n 1. If you want to restore your instance using a DB snapshot, modify the updated template with your DB instance changes and add the ``DBSnapshotIdentifier`` property with the ID of the DB snapshot that you want to use.\n After you restore a DB instance with a ``DBSnapshotIdentifier`` property, you can delete the ``DBSnapshotIdentifier`` property. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. However, if you don't specify the ``DBSnapshotIdentifier`` property, an empty DB instance is created, and the original DB instance is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified ``DBSnapshotIdentifier`` property, and the original DB instance is deleted.\n 1. Update the stack.\n \n For more information about updating other properties of this resource, see ``ModifyDBInstance``. For more information about updating stacks, see [CloudFormation Stacks Updates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html).\n *Deleting DB instances* \n For DB instances that are part of an Aurora DB cluster, you can set a deletion policy for your DB instance to control how AWS CloudFormation handles the DB instance when the stack is deleted. For Amazon RDS DB instances, you can choose to *retain* the DB instance, to *delete* the DB instance, or to *create a snapshot* of the DB instance. The default AWS CloudFormation behavior depends on the ``DBClusterIdentifier`` property:\n 1. For ``AWS::RDS::DBInstance`` resources that don't specify the ``DBClusterIdentifier`` property, AWS CloudFormation saves a snapshot of the DB instance.\n 1. For ``AWS::RDS::DBInstance`` resources that do specify the ``DBClusterIdentifier`` property, AWS CloudFormation deletes the DB instance.\n \n For more information, see [DeletionPolicy Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html).", Version: 1, Attributes: attributes, } diff --git a/internal/aws/rds/db_parameter_group_resource_gen.go b/internal/aws/rds/db_parameter_group_resource_gen.go index ed2a0f3b9..3615911ae 100644 --- a/internal/aws/rds/db_parameter_group_resource_gen.go +++ b/internal/aws/rds/db_parameter_group_resource_gen.go @@ -68,11 +68,11 @@ func dBParameterGroupResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The DB parameter group family name. A DB parameter group can be associated with one and only one DB parameter group family, and can be applied only to a DB instance running a DB engine and engine version compatible with that DB parameter group family.\n The DB parameter group family can't be changed when updating a DB parameter group.\n To list all of the available parameter group families, use the following command:\n ``aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\"`` \n The output contains duplicates.\n For more information, see ``CreateDBParameterGroup``.", + // "description": "The DB parameter group family name. A DB parameter group can be associated with one and only one DB parameter group family, and can be applied only to a DB instance running a database engine and engine version compatible with that DB parameter group family.\n To list all of the available parameter group families for a DB engine, use the following command:\n ``aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\" --engine \u003cengine\u003e`` \n For example, to list all of the available parameter group families for the MySQL DB engine, use the following command:\n ``aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\" --engine mysql`` \n The output contains duplicates.\n The following are the valid DB engine values:\n + ``aurora-mysql`` \n + ``aurora-postgresql`` \n + ``db2-ae`` \n + ``db2-se`` \n + ``mysql`` \n + ``oracle-ee`` \n + ``oracle-ee-cdb`` \n + ``oracle-se2`` \n + ``oracle-se2-cdb`` \n + ``postgres`` \n + ``sqlserver-ee`` \n + ``sqlserver-se`` \n + ``sqlserver-ex`` \n + ``sqlserver-web``", // "type": "string" // } "family": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The DB parameter group family name. A DB parameter group can be associated with one and only one DB parameter group family, and can be applied only to a DB instance running a DB engine and engine version compatible with that DB parameter group family.\n The DB parameter group family can't be changed when updating a DB parameter group.\n To list all of the available parameter group families, use the following command:\n ``aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\"`` \n The output contains duplicates.\n For more information, see ``CreateDBParameterGroup``.", + Description: "The DB parameter group family name. A DB parameter group can be associated with one and only one DB parameter group family, and can be applied only to a DB instance running a database engine and engine version compatible with that DB parameter group family.\n To list all of the available parameter group families for a DB engine, use the following command:\n ``aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\" --engine `` \n For example, to list all of the available parameter group families for the MySQL DB engine, use the following command:\n ``aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\" --engine mysql`` \n The output contains duplicates.\n The following are the valid DB engine values:\n + ``aurora-mysql`` \n + ``aurora-postgresql`` \n + ``db2-ae`` \n + ``db2-se`` \n + ``mysql`` \n + ``oracle-ee`` \n + ``oracle-ee-cdb`` \n + ``oracle-se2`` \n + ``oracle-se2-cdb`` \n + ``postgres`` \n + ``sqlserver-ee`` \n + ``sqlserver-se`` \n + ``sqlserver-ex`` \n + ``sqlserver-web``", Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), @@ -82,12 +82,12 @@ func dBParameterGroupResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "An array of parameter names and values for the parameter update. At least one parameter name and value must be supplied. Subsequent arguments are optional.\n RDS for Db2 requires you to bring your own Db2 license. You must enter your IBM customer ID (``rds.ibm_customer_id``) and site number (``rds.ibm_site_id``) before starting a Db2 instance.\n For more information about DB parameters and DB parameter groups for Amazon RDS DB engines, see [Working with DB Parameter Groups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html) in the *Amazon RDS User Guide*.\n For more information about DB cluster and DB instance parameters and parameter groups for Amazon Aurora DB engines, see [Working with DB Parameter Groups and DB Cluster Parameter Groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*.\n AWS CloudFormation doesn't support specifying an apply method for each individual parameter. The default apply method for each parameter is used.", + // "description": "An array of parameter names and values for the parameter update. You must specify at least one parameter name and value.\n For more information about parameter groups, see [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html) in the *Amazon RDS User Guide*, or [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*.\n AWS CloudFormation doesn't support specifying an apply method for each individual parameter. The default apply method for each parameter is used.", // "type": "object" // } "parameters": schema.StringAttribute{ /*START ATTRIBUTE*/ CustomType: jsontypes.NormalizedType{}, - Description: "An array of parameter names and values for the parameter update. At least one parameter name and value must be supplied. Subsequent arguments are optional.\n RDS for Db2 requires you to bring your own Db2 license. You must enter your IBM customer ID (``rds.ibm_customer_id``) and site number (``rds.ibm_site_id``) before starting a Db2 instance.\n For more information about DB parameters and DB parameter groups for Amazon RDS DB engines, see [Working with DB Parameter Groups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html) in the *Amazon RDS User Guide*.\n For more information about DB cluster and DB instance parameters and parameter groups for Amazon Aurora DB engines, see [Working with DB Parameter Groups and DB Cluster Parameter Groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*.\n AWS CloudFormation doesn't support specifying an apply method for each individual parameter. The default apply method for each parameter is used.", + Description: "An array of parameter names and values for the parameter update. You must specify at least one parameter name and value.\n For more information about parameter groups, see [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html) in the *Amazon RDS User Guide*, or [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*.\n AWS CloudFormation doesn't support specifying an apply method for each individual parameter. The default apply method for each parameter is used.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -98,11 +98,11 @@ func dBParameterGroupResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "An optional array of key-value pairs to apply to this DB parameter group.\n Currently, this is the only property that supports drift detection.", + // "description": "Tags to assign to the DB parameter group.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", + // "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", // "properties": { // "Key": { // "description": "A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", @@ -151,7 +151,7 @@ func dBParameterGroupResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "An optional array of key-value pairs to apply to this DB parameter group.\n Currently, this is the only property that supports drift detection.", + Description: "Tags to assign to the DB parameter group.", Optional: true, Computed: true, Validators: []validator.List{ /*START VALIDATORS*/ diff --git a/internal/aws/rds/db_subnet_group_resource_gen.go b/internal/aws/rds/db_subnet_group_resource_gen.go index 4c13c0f32..d6b24cfb8 100644 --- a/internal/aws/rds/db_subnet_group_resource_gen.go +++ b/internal/aws/rds/db_subnet_group_resource_gen.go @@ -44,11 +44,11 @@ func dBSubnetGroupResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The name for the DB subnet group. This value is stored as a lowercase string.\n Constraints: Must contain no more than 255 lowercase alphanumeric characters or hyphens. Must not be \"Default\".\n Example: ``mysubnetgroup``", + // "description": "The name for the DB subnet group. This value is stored as a lowercase string.\n Constraints:\n + Must contain no more than 255 letters, numbers, periods, underscores, spaces, or hyphens.\n + Must not be default.\n + First character must be a letter.\n \n Example: ``mydbsubnetgroup``", // "type": "string" // } "db_subnet_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name for the DB subnet group. This value is stored as a lowercase string.\n Constraints: Must contain no more than 255 lowercase alphanumeric characters or hyphens. Must not be \"Default\".\n Example: ``mysubnetgroup``", + Description: "The name for the DB subnet group. This value is stored as a lowercase string.\n Constraints:\n + Must contain no more than 255 letters, numbers, periods, underscores, spaces, or hyphens.\n + Must not be default.\n + First character must be a letter.\n \n Example: ``mydbsubnetgroup``", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -77,11 +77,11 @@ func dBSubnetGroupResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "An optional array of key-value pairs to apply to this DB subnet group.", + // "description": "Tags to assign to the DB subnet group.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", + // "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", // "properties": { // "Key": { // "description": "A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", @@ -130,7 +130,7 @@ func dBSubnetGroupResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "An optional array of key-value pairs to apply to this DB subnet group.", + Description: "Tags to assign to the DB subnet group.", Optional: true, Computed: true, Validators: []validator.List{ /*START VALIDATORS*/ diff --git a/internal/aws/rds/event_subscription_resource_gen.go b/internal/aws/rds/event_subscription_resource_gen.go index bb99ef729..f967e3a05 100644 --- a/internal/aws/rds/event_subscription_resource_gen.go +++ b/internal/aws/rds/event_subscription_resource_gen.go @@ -90,7 +90,7 @@ func eventSubscriptionResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The list of identifiers of the event sources for which events are returned. If not specified, then all sources are included in the response. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens. It can't end with a hyphen or contain two consecutive hyphens.\n Constraints:\n + If a ``SourceIds`` value is supplied, ``SourceType`` must also be provided.\n + If the source type is a DB instance, a ``DBInstanceIdentifier`` value must be supplied.\n + If the source type is a DB cluster, a ``DBClusterIdentifier`` value must be supplied.\n + If the source type is a DB parameter group, a ``DBParameterGroupName`` value must be supplied.\n + If the source type is a DB security group, a ``DBSecurityGroupName`` value must be supplied.\n + If the source type is a DB snapshot, a ``DBSnapshotIdentifier`` value must be supplied.\n + If the source type is a DB cluster snapshot, a ``DBClusterSnapshotIdentifier`` value must be supplied.", + // "description": "The list of identifiers of the event sources for which events are returned. If not specified, then all sources are included in the response. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens. It can't end with a hyphen or contain two consecutive hyphens.\n Constraints:\n + If ``SourceIds`` are supplied, ``SourceType`` must also be provided.\n + If the source type is a DB instance, a ``DBInstanceIdentifier`` value must be supplied.\n + If the source type is a DB cluster, a ``DBClusterIdentifier`` value must be supplied.\n + If the source type is a DB parameter group, a ``DBParameterGroupName`` value must be supplied.\n + If the source type is a DB security group, a ``DBSecurityGroupName`` value must be supplied.\n + If the source type is a DB snapshot, a ``DBSnapshotIdentifier`` value must be supplied.\n + If the source type is a DB cluster snapshot, a ``DBClusterSnapshotIdentifier`` value must be supplied.\n + If the source type is an RDS Proxy, a ``DBProxyName`` value must be supplied.", // "insertionOrder": false, // "items": { // "type": "string" @@ -100,7 +100,7 @@ func eventSubscriptionResource(ctx context.Context) (resource.Resource, error) { // } "source_ids": schema.SetAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "The list of identifiers of the event sources for which events are returned. If not specified, then all sources are included in the response. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens. It can't end with a hyphen or contain two consecutive hyphens.\n Constraints:\n + If a ``SourceIds`` value is supplied, ``SourceType`` must also be provided.\n + If the source type is a DB instance, a ``DBInstanceIdentifier`` value must be supplied.\n + If the source type is a DB cluster, a ``DBClusterIdentifier`` value must be supplied.\n + If the source type is a DB parameter group, a ``DBParameterGroupName`` value must be supplied.\n + If the source type is a DB security group, a ``DBSecurityGroupName`` value must be supplied.\n + If the source type is a DB snapshot, a ``DBSnapshotIdentifier`` value must be supplied.\n + If the source type is a DB cluster snapshot, a ``DBClusterSnapshotIdentifier`` value must be supplied.", + Description: "The list of identifiers of the event sources for which events are returned. If not specified, then all sources are included in the response. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens. It can't end with a hyphen or contain two consecutive hyphens.\n Constraints:\n + If ``SourceIds`` are supplied, ``SourceType`` must also be provided.\n + If the source type is a DB instance, a ``DBInstanceIdentifier`` value must be supplied.\n + If the source type is a DB cluster, a ``DBClusterIdentifier`` value must be supplied.\n + If the source type is a DB parameter group, a ``DBParameterGroupName`` value must be supplied.\n + If the source type is a DB security group, a ``DBSecurityGroupName`` value must be supplied.\n + If the source type is a DB snapshot, a ``DBSnapshotIdentifier`` value must be supplied.\n + If the source type is a DB cluster snapshot, a ``DBClusterSnapshotIdentifier`` value must be supplied.\n + If the source type is an RDS Proxy, a ``DBProxyName`` value must be supplied.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ @@ -111,11 +111,11 @@ func eventSubscriptionResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The type of source that is generating the events. For example, if you want to be notified of events generated by a DB instance, set this parameter to ``db-instance``. If this value isn't specified, all events are returned.\n Valid values: ``db-instance`` | ``db-cluster`` | ``db-parameter-group`` | ``db-security-group`` | ``db-snapshot`` | ``db-cluster-snapshot``", + // "description": "The type of source that is generating the events. For example, if you want to be notified of events generated by a DB instance, you set this parameter to ``db-instance``. For RDS Proxy events, specify ``db-proxy``. If this value isn't specified, all events are returned.\n Valid Values:``db-instance | db-cluster | db-parameter-group | db-security-group | db-snapshot | db-cluster-snapshot | db-proxy | zero-etl | custom-engine-version | blue-green-deployment``", // "type": "string" // } "source_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of source that is generating the events. For example, if you want to be notified of events generated by a DB instance, set this parameter to ``db-instance``. If this value isn't specified, all events are returned.\n Valid values: ``db-instance`` | ``db-cluster`` | ``db-parameter-group`` | ``db-security-group`` | ``db-snapshot`` | ``db-cluster-snapshot``", + Description: "The type of source that is generating the events. For example, if you want to be notified of events generated by a DB instance, you set this parameter to ``db-instance``. For RDS Proxy events, specify ``db-proxy``. If this value isn't specified, all events are returned.\n Valid Values:``db-instance | db-cluster | db-parameter-group | db-security-group | db-snapshot | db-cluster-snapshot | db-proxy | zero-etl | custom-engine-version | blue-green-deployment``", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -150,7 +150,7 @@ func eventSubscriptionResource(ctx context.Context) (resource.Resource, error) { // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", + // "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", // "properties": { // "Key": { // "description": "A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", diff --git a/internal/aws/rds/option_group_resource_gen.go b/internal/aws/rds/option_group_resource_gen.go index 33f2652d9..b6fd744cc 100644 --- a/internal/aws/rds/option_group_resource_gen.go +++ b/internal/aws/rds/option_group_resource_gen.go @@ -63,14 +63,14 @@ func optionGroupResource(ctx context.Context) (resource.Resource, error) { // // { // "arrayType": "AttributeList", - // "description": "A list of options and the settings for each option.", + // "description": "A list of all available options for an option group.", // "insertionOrder": false, // "items": { // "additionalProperties": false, // "description": "The ``OptionConfiguration`` property type specifies an individual option, and its settings, within an ``AWS::RDS::OptionGroup`` resource.", // "properties": { // "DBSecurityGroupMemberships": { - // "description": "A list of DBSecurityGroupMembership name strings used for this option.", + // "description": "A list of DB security groups used for this option.", // "insertionOrder": false, // "items": { // "type": "string" @@ -111,7 +111,7 @@ func optionGroupResource(ctx context.Context) (resource.Resource, error) { // "type": "integer" // }, // "VpcSecurityGroupMemberships": { - // "description": "A list of VpcSecurityGroupMembership name strings used for this option.", + // "description": "A list of VPC security group names used for this option.", // "insertionOrder": false, // "items": { // "type": "string" @@ -133,7 +133,7 @@ func optionGroupResource(ctx context.Context) (resource.Resource, error) { // Property: DBSecurityGroupMemberships "db_security_group_memberships": schema.SetAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "A list of DBSecurityGroupMembership name strings used for this option.", + Description: "A list of DB security groups used for this option.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ @@ -198,7 +198,7 @@ func optionGroupResource(ctx context.Context) (resource.Resource, error) { // Property: VpcSecurityGroupMemberships "vpc_security_group_memberships": schema.SetAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "A list of VpcSecurityGroupMembership name strings used for this option.", + Description: "A list of VPC security group names used for this option.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ @@ -207,7 +207,7 @@ func optionGroupResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "A list of options and the settings for each option.", + Description: "A list of all available options for an option group.", Optional: true, Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ @@ -249,11 +249,11 @@ func optionGroupResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "An optional array of key-value pairs to apply to this option group.", + // "description": "Tags to assign to the option group.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", + // "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", // "properties": { // "Key": { // "description": "A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", @@ -300,7 +300,7 @@ func optionGroupResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "An optional array of key-value pairs to apply to this option group.", + Description: "Tags to assign to the option group.", Optional: true, Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/redshift/cluster_resource_gen.go b/internal/aws/redshift/cluster_resource_gen.go index 52a55f311..372f541e0 100644 --- a/internal/aws/redshift/cluster_resource_gen.go +++ b/internal/aws/redshift/cluster_resource_gen.go @@ -539,6 +539,17 @@ func clusterResource(ctx context.Context) (resource.Resource, error) { // }, // "type": "string" // }, + // "LogDestinationType": { + // "type": "string" + // }, + // "LogExports": { + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "maxItems": 3, + // "type": "array" + // }, // "S3KeyPrefix": { // "type": "string" // } @@ -555,6 +566,27 @@ func clusterResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: LogDestinationType + "log_destination_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LogExports + "log_exports": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeAtMost(3), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: S3KeyPrefix "s3_key_prefix": schema.StringAttribute{ /*START ATTRIBUTE*/ Optional: true, @@ -1071,6 +1103,8 @@ func clusterResource(ctx context.Context) (resource.Resource, error) { "iam_roles": "IamRoles", "key": "Key", "kms_key_id": "KmsKeyId", + "log_destination_type": "LogDestinationType", + "log_exports": "LogExports", "logging_properties": "LoggingProperties", "maintenance_track_name": "MaintenanceTrackName", "manage_master_password": "ManageMasterPassword", diff --git a/internal/aws/rolesanywhere/profile_resource_gen.go b/internal/aws/rolesanywhere/profile_resource_gen.go index 2c2e77c6e..faaaa82e7 100644 --- a/internal/aws/rolesanywhere/profile_resource_gen.go +++ b/internal/aws/rolesanywhere/profile_resource_gen.go @@ -32,6 +32,19 @@ func init() { // This Terraform resource corresponds to the CloudFormation AWS::RolesAnywhere::Profile resource. func profileResource(ctx context.Context) (resource.Resource, error) { attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AcceptRoleSessionName + // CloudFormation resource type schema: + // + // { + // "type": "boolean" + // } + "accept_role_session_name": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: AttributeMappings // CloudFormation resource type schema: // @@ -311,6 +324,7 @@ func profileResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithCloudFormationTypeName("AWS::RolesAnywhere::Profile").WithTerraformTypeName("awscc_rolesanywhere_profile") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ + "accept_role_session_name": "AcceptRoleSessionName", "attribute_mappings": "AttributeMappings", "certificate_field": "CertificateField", "duration_seconds": "DurationSeconds", diff --git a/internal/aws/route53resolver/resolver_rule_resource_gen.go b/internal/aws/route53resolver/resolver_rule_resource_gen.go index 9487a13dc..acad1db41 100644 --- a/internal/aws/route53resolver/resolver_rule_resource_gen.go +++ b/internal/aws/route53resolver/resolver_rule_resource_gen.go @@ -41,6 +41,26 @@ func resolverRuleResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: DelegationRecord + // CloudFormation resource type schema: + // + // { + // "description": "The name server domain for queries to be delegated to if a query matches the delegation record.", + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + "delegation_record": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name server domain for queries to be delegated to if a query matches the delegation record.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: DomainName // CloudFormation resource type schema: // @@ -52,10 +72,14 @@ func resolverRuleResource(ctx context.Context) (resource.Resource, error) { // } "domain_name": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "DNS queries for this domain name are forwarded to the IP addresses that are specified in TargetIps", - Required: true, + Optional: true, + Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 256), }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: Name // CloudFormation resource type schema: @@ -119,7 +143,8 @@ func resolverRuleResource(ctx context.Context) (resource.Resource, error) { // "enum": [ // "FORWARD", // "SYSTEM", - // "RECURSIVE" + // "RECURSIVE", + // "DELEGATE" // ], // "type": "string" // } @@ -131,6 +156,7 @@ func resolverRuleResource(ctx context.Context) (resource.Resource, error) { "FORWARD", "SYSTEM", "RECURSIVE", + "DELEGATE", ), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -315,6 +341,7 @@ func resolverRuleResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ "arn": "Arn", + "delegation_record": "DelegationRecord", "domain_name": "DomainName", "ip": "Ip", "ipv_6": "Ipv6", diff --git a/internal/aws/sagemaker/model_package_resource_gen.go b/internal/aws/sagemaker/model_package_resource_gen.go index 7ff61e82a..76e752926 100644 --- a/internal/aws/sagemaker/model_package_resource_gen.go +++ b/internal/aws/sagemaker/model_package_resource_gen.go @@ -97,6 +97,61 @@ func modelPackageResource(ctx context.Context) (resource.Resource, error) { // "pattern": "^[Ss][Hh][Aa]256:[0-9a-fA-F]{64}$", // "type": "string" // }, + // "ModelDataSource": { + // "additionalProperties": false, + // "description": "Specifies the location of ML model data to deploy during endpoint creation.", + // "properties": { + // "S3DataSource": { + // "additionalProperties": false, + // "description": "Specifies the S3 location of ML model data to deploy.", + // "properties": { + // "CompressionType": { + // "description": "Specifies how the ML model data is prepared.", + // "enum": [ + // "None", + // "Gzip" + // ], + // "type": "string" + // }, + // "ModelAccessConfig": { + // "additionalProperties": false, + // "description": "Specifies the access configuration file for the ML model.", + // "properties": { + // "AcceptEula": { + // "description": "Specifies agreement to the model end-user license agreement (EULA).", + // "type": "boolean" + // } + // }, + // "required": [ + // "AcceptEula" + // ], + // "type": "object" + // }, + // "S3DataType": { + // "description": "Specifies the type of ML model data to deploy.", + // "enum": [ + // "S3Prefix", + // "S3Object" + // ], + // "type": "string" + // }, + // "S3Uri": { + // "description": "Specifies the S3 path of ML model data to deploy.", + // "maxLength": 1024, + // "pattern": "^(https|s3)://([^/]+)/?(.*)$", + // "type": "string" + // } + // }, + // "required": [ + // "S3DataType", + // "S3Uri", + // "CompressionType" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, // "ModelDataUrl": { // "description": "A structure with Model Input details.", // "maxLength": 1024, @@ -274,6 +329,75 @@ func modelPackageResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: ModelDataSource + "model_data_source": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: S3DataSource + "s3_data_source": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CompressionType + "compression_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies how the ML model data is prepared.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "None", + "Gzip", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: ModelAccessConfig + "model_access_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AcceptEula + "accept_eula": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies agreement to the model end-user license agreement (EULA).", + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the access configuration file for the ML model.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: S3DataType + "s3_data_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies the type of ML model data to deploy.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "S3Prefix", + "S3Object", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: S3Uri + "s3_uri": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies the S3 path of ML model data to deploy.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(1024), + stringvalidator.RegexMatches(regexp.MustCompile("^(https|s3)://([^/]+)/?(.*)$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the S3 location of ML model data to deploy.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the location of ML model data to deploy during endpoint creation.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: ModelDataUrl "model_data_url": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "A structure with Model Input details.", @@ -474,6 +598,61 @@ func modelPackageResource(ctx context.Context) (resource.Resource, error) { // "pattern": "^[Ss][Hh][Aa]256:[0-9a-fA-F]{64}$", // "type": "string" // }, + // "ModelDataSource": { + // "additionalProperties": false, + // "description": "Specifies the location of ML model data to deploy during endpoint creation.", + // "properties": { + // "S3DataSource": { + // "additionalProperties": false, + // "description": "Specifies the S3 location of ML model data to deploy.", + // "properties": { + // "CompressionType": { + // "description": "Specifies how the ML model data is prepared.", + // "enum": [ + // "None", + // "Gzip" + // ], + // "type": "string" + // }, + // "ModelAccessConfig": { + // "additionalProperties": false, + // "description": "Specifies the access configuration file for the ML model.", + // "properties": { + // "AcceptEula": { + // "description": "Specifies agreement to the model end-user license agreement (EULA).", + // "type": "boolean" + // } + // }, + // "required": [ + // "AcceptEula" + // ], + // "type": "object" + // }, + // "S3DataType": { + // "description": "Specifies the type of ML model data to deploy.", + // "enum": [ + // "S3Prefix", + // "S3Object" + // ], + // "type": "string" + // }, + // "S3Uri": { + // "description": "Specifies the S3 path of ML model data to deploy.", + // "maxLength": 1024, + // "pattern": "^(https|s3)://([^/]+)/?(.*)$", + // "type": "string" + // } + // }, + // "required": [ + // "S3DataType", + // "S3Uri", + // "CompressionType" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, // "ModelDataUrl": { // "description": "A structure with Model Input details.", // "maxLength": 1024, @@ -651,6 +830,75 @@ func modelPackageResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: ModelDataSource + "model_data_source": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: S3DataSource + "s3_data_source": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CompressionType + "compression_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies how the ML model data is prepared.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "None", + "Gzip", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: ModelAccessConfig + "model_access_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AcceptEula + "accept_eula": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies agreement to the model end-user license agreement (EULA).", + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the access configuration file for the ML model.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: S3DataType + "s3_data_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies the type of ML model data to deploy.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "S3Prefix", + "S3Object", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: S3Uri + "s3_uri": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies the S3 path of ML model data to deploy.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(1024), + stringvalidator.RegexMatches(regexp.MustCompile("^(https|s3)://([^/]+)/?(.*)$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the S3 location of ML model data to deploy.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the location of ML model data to deploy during endpoint creation.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: ModelDataUrl "model_data_url": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "A structure with Model Input details.", @@ -1708,6 +1956,61 @@ func modelPackageResource(ctx context.Context) (resource.Resource, error) { // "pattern": "^[Ss][Hh][Aa]256:[0-9a-fA-F]{64}$", // "type": "string" // }, + // "ModelDataSource": { + // "additionalProperties": false, + // "description": "Specifies the location of ML model data to deploy during endpoint creation.", + // "properties": { + // "S3DataSource": { + // "additionalProperties": false, + // "description": "Specifies the S3 location of ML model data to deploy.", + // "properties": { + // "CompressionType": { + // "description": "Specifies how the ML model data is prepared.", + // "enum": [ + // "None", + // "Gzip" + // ], + // "type": "string" + // }, + // "ModelAccessConfig": { + // "additionalProperties": false, + // "description": "Specifies the access configuration file for the ML model.", + // "properties": { + // "AcceptEula": { + // "description": "Specifies agreement to the model end-user license agreement (EULA).", + // "type": "boolean" + // } + // }, + // "required": [ + // "AcceptEula" + // ], + // "type": "object" + // }, + // "S3DataType": { + // "description": "Specifies the type of ML model data to deploy.", + // "enum": [ + // "S3Prefix", + // "S3Object" + // ], + // "type": "string" + // }, + // "S3Uri": { + // "description": "Specifies the S3 path of ML model data to deploy.", + // "maxLength": 1024, + // "pattern": "^(https|s3)://([^/]+)/?(.*)$", + // "type": "string" + // } + // }, + // "required": [ + // "S3DataType", + // "S3Uri", + // "CompressionType" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, // "ModelDataUrl": { // "description": "A structure with Model Input details.", // "maxLength": 1024, @@ -1869,6 +2172,75 @@ func modelPackageResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: ModelDataSource + "model_data_source": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: S3DataSource + "s3_data_source": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CompressionType + "compression_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies how the ML model data is prepared.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "None", + "Gzip", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: ModelAccessConfig + "model_access_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AcceptEula + "accept_eula": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies agreement to the model end-user license agreement (EULA).", + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the access configuration file for the ML model.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: S3DataType + "s3_data_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies the type of ML model data to deploy.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "S3Prefix", + "S3Object", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: S3Uri + "s3_uri": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies the S3 path of ML model data to deploy.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(1024), + stringvalidator.RegexMatches(regexp.MustCompile("^(https|s3)://([^/]+)/?(.*)$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the S3 location of ML model data to deploy.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the location of ML model data to deploy during endpoint creation.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: ModelDataUrl "model_data_url": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "A structure with Model Input details.", @@ -2114,6 +2486,69 @@ func modelPackageResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: ModelCard + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The model card associated with the model package.", + // "properties": { + // "ModelCardContent": { + // "description": "The content of the model card.", + // "maxLength": 100000, + // "minLength": 0, + // "pattern": ".*", + // "type": "string" + // }, + // "ModelCardStatus": { + // "description": "The approval status of the model card within your organization.", + // "enum": [ + // "Draft", + // "PendingReview", + // "Approved", + // "Archived" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "ModelCardContent", + // "ModelCardStatus" + // ], + // "type": "object" + // } + "model_card": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ModelCardContent + "model_card_content": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The content of the model card.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 100000), + stringvalidator.RegexMatches(regexp.MustCompile(".*"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: ModelCardStatus + "model_card_status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The approval status of the model card within your organization.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "Draft", + "PendingReview", + "Approved", + "Archived", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The model card associated with the model package.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: ModelMetrics // CloudFormation resource type schema: // @@ -3012,6 +3447,45 @@ func modelPackageResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: SecurityConfig + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "An optional AWS Key Management Service key to encrypt, decrypt, and re-encrypt model package information for regulated workloads with highly sensitive data.", + // "properties": { + // "KmsKeyId": { + // "description": "The AWS KMS Key ID (KMSKeyId) used for encryption of model package information.", + // "maxLength": 2048, + // "pattern": "^[a-zA-Z0-9:/_-]*$", + // "type": "string" + // } + // }, + // "required": [ + // "KmsKeyId" + // ], + // "type": "object" + // } + "security_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: KmsKeyId + "kms_key_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The AWS KMS Key ID (KMSKeyId) used for encryption of model package information.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(2048), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9:/_-]*$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "An optional AWS Key Management Service key to encrypt, decrypt, and re-encrypt model package information for regulated workloads with highly sensitive data.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + objectplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: SkipModelValidation // CloudFormation resource type schema: // @@ -3125,6 +3599,27 @@ func modelPackageResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: SourceUri + // CloudFormation resource type schema: + // + // { + // "description": "The URI of the source for the model package.", + // "maxLength": 1024, + // "minLength": 0, + // "pattern": "", + // "type": "string" + // } + "source_uri": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The URI of the source for the model package.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 1024), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // @@ -3727,6 +4222,7 @@ func modelPackageResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ "accept": "Accept", + "accept_eula": "AcceptEula", "additional_inference_specifications": "AdditionalInferenceSpecifications", "additional_inference_specifications_to_add": "AdditionalInferenceSpecificationsToAdd", "algorithm_name": "AlgorithmName", @@ -3768,8 +4264,13 @@ func modelPackageResource(ctx context.Context) (resource.Resource, error) { "max_concurrent_transforms": "MaxConcurrentTransforms", "max_payload_in_mb": "MaxPayloadInMB", "metadata_properties": "MetadataProperties", + "model_access_config": "ModelAccessConfig", "model_approval_status": "ModelApprovalStatus", + "model_card": "ModelCard", + "model_card_content": "ModelCardContent", + "model_card_status": "ModelCardStatus", "model_data_quality": "ModelDataQuality", + "model_data_source": "ModelDataSource", "model_data_url": "ModelDataUrl", "model_input": "ModelInput", "model_metrics": "ModelMetrics", @@ -3796,9 +4297,11 @@ func modelPackageResource(ctx context.Context) (resource.Resource, error) { "s3_output_path": "S3OutputPath", "s3_uri": "S3Uri", "sample_payload_url": "SamplePayloadUrl", + "security_config": "SecurityConfig", "skip_model_validation": "SkipModelValidation", "source_algorithm_specification": "SourceAlgorithmSpecification", "source_algorithms": "SourceAlgorithms", + "source_uri": "SourceUri", "split_type": "SplitType", "statistics": "Statistics", "status": "Status", diff --git a/internal/aws/ses/configuration_set_resource_gen.go b/internal/aws/ses/configuration_set_resource_gen.go index 697df104e..d03517865 100644 --- a/internal/aws/ses/configuration_set_resource_gen.go +++ b/internal/aws/ses/configuration_set_resource_gen.go @@ -227,9 +227,6 @@ func configurationSetResource(ctx context.Context) (resource.Resource, error) { // "type": "string" // } // }, - // "required": [ - // "CustomRedirectDomain" - // ], // "type": "object" // } "tracking_options": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ @@ -237,7 +234,11 @@ func configurationSetResource(ctx context.Context) (resource.Resource, error) { // Property: CustomRedirectDomain "custom_redirect_domain": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The domain to use for tracking open and click events.", - Required: true, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "An object that defines the open and click tracking options for emails that you send using the configuration set.", From 963a80b0052b8a1ad9725db5129f26f070117b16 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 8 Aug 2024 13:34:30 -0400 Subject: [PATCH 74/89] 08/07/2024 CloudFormation schemas in us-east-1; Generate Terraform data source schemas. --- ...le_association_singular_data_source_gen.go | 3 - .../pipeline_singular_data_source_gen.go | 531 ++++++++++++++++++ .../ec2/subnet_singular_data_source_gen.go | 4 +- ...way_attachment_singular_data_source_gen.go | 36 +- ...t_group_member_singular_data_source_gen.go | 12 - ...t_group_source_singular_data_source_gen.go | 12 - .../ecs/cluster_singular_data_source_gen.go | 16 +- ...elivery_stream_singular_data_source_gen.go | 8 + .../aws/kms/key_singular_data_source_gen.go | 16 +- .../function_singular_data_source_gen.go | 11 + ...ry_destination_singular_data_source_gen.go | 4 +- ..._configuration_singular_data_source_gen.go | 3 +- ...ect_attachment_singular_data_source_gen.go | 129 ++++- .../core_network_singular_data_source_gen.go | 123 +++- ...vpn_attachment_singular_data_source_gen.go | 125 ++++- ...ble_attachment_singular_data_source_gen.go | 128 ++++- ...vpc_attachment_singular_data_source_gen.go | 133 ++++- .../osis/pipeline_singular_data_source_gen.go | 77 +++ ...arameter_group_singular_data_source_gen.go | 18 +- .../db_cluster_singular_data_source_gen.go | 14 +- .../db_instance_singular_data_source_gen.go | 38 +- ...arameter_group_singular_data_source_gen.go | 14 +- ...b_subnet_group_singular_data_source_gen.go | 10 +- ...t_subscription_singular_data_source_gen.go | 10 +- .../option_group_singular_data_source_gen.go | 18 +- .../cluster_singular_data_source_gen.go | 22 + .../profile_singular_data_source_gen.go | 10 + .../resolver_rule_singular_data_source_gen.go | 17 +- .../model_package_singular_data_source_gen.go | 387 +++++++++++++ ...figuration_set_singular_data_source_gen.go | 3 - 30 files changed, 1706 insertions(+), 226 deletions(-) diff --git a/internal/aws/cleanrooms/configured_table_association_singular_data_source_gen.go b/internal/aws/cleanrooms/configured_table_association_singular_data_source_gen.go index 4172c1480..9cef4c013 100644 --- a/internal/aws/cleanrooms/configured_table_association_singular_data_source_gen.go +++ b/internal/aws/cleanrooms/configured_table_association_singular_data_source_gen.go @@ -53,7 +53,6 @@ func configuredTableAssociationDataSource(ctx context.Context) (datasource.DataS // "insertionOrder": false, // "items": { // "maxLength": 256, - // "pattern": "^arn:aws:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:([\\d]{12}|\\*):membership\\/[\\*\\d\\w-]+\\/configuredaudiencemodelassociation\\/[\\*\\d\\w-]+$|^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:([0-9]{12}|\\*):configured-model-algorithm-association\\/([-a-zA-Z0-9_\\/.]+|\\*)$", // "type": "string" // }, // "maxItems": 25, @@ -81,7 +80,6 @@ func configuredTableAssociationDataSource(ctx context.Context) (datasource.DataS // "insertionOrder": false, // "items": { // "maxLength": 256, - // "pattern": "^arn:aws:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:([\\d]{12}|\\*):membership\\/[\\*\\d\\w-]+\\/configuredaudiencemodelassociation\\/[\\*\\d\\w-]+$|^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:([0-9]{12}|\\*):configured-model-algorithm-association\\/([-a-zA-Z0-9_\\/.]+|\\*)$", // "type": "string" // }, // "maxItems": 25, @@ -109,7 +107,6 @@ func configuredTableAssociationDataSource(ctx context.Context) (datasource.DataS // "insertionOrder": false, // "items": { // "maxLength": 256, - // "pattern": "^arn:aws:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:([\\d]{12}|\\*):membership\\/[\\*\\d\\w-]+\\/configuredaudiencemodelassociation\\/[\\*\\d\\w-]+$|^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:([0-9]{12}|\\*):configured-model-algorithm-association\\/([-a-zA-Z0-9_\\/.]+|\\*)$", // "type": "string" // }, // "maxItems": 25, diff --git a/internal/aws/codepipeline/pipeline_singular_data_source_gen.go b/internal/aws/codepipeline/pipeline_singular_data_source_gen.go index 5415a6860..b644dc9c7 100644 --- a/internal/aws/codepipeline/pipeline_singular_data_source_gen.go +++ b/internal/aws/codepipeline/pipeline_singular_data_source_gen.go @@ -449,6 +449,97 @@ func pipelineDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "array", // "uniqueItems": true // }, + // "BeforeEntry": { + // "additionalProperties": false, + // "description": "The method to use before stage runs.", + // "properties": { + // "Conditions": { + // "items": { + // "additionalProperties": false, + // "description": "Represents information about condition.", + // "properties": { + // "Result": { + // "description": "The specified result for when the failure conditions are met, such as rolling back the stage", + // "type": "string" + // }, + // "Rules": { + // "items": { + // "additionalProperties": false, + // "description": "Represents information about condition.", + // "properties": { + // "Configuration": { + // "description": "The rule's configuration. These are key-value pairs that specify input values for a rule.", + // "type": "object" + // }, + // "InputArtifacts": { + // "items": { + // "additionalProperties": false, + // "description": "Represents information about an artifact to be worked on, such as a test or build artifact.", + // "properties": { + // "Name": { + // "description": "The name of the artifact to be worked on (for example, \"My App\").", + // "type": "string" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // }, + // "Name": { + // "description": "The rule declaration's name.", + // "type": "string" + // }, + // "Region": { + // "description": "The rule declaration's AWS Region, such as us-east-1.", + // "type": "string" + // }, + // "RoleArn": { + // "description": "The ARN of the IAM service role that performs the declared rule. This is assumed through the roleArn for the pipeline.", + // "pattern": "arn:aws(-[\\w]+)*:iam::[0-9]{12}:role/.*", + // "type": "string" + // }, + // "RuleTypeId": { + // "additionalProperties": false, + // "description": "Represents information about a rule type.", + // "properties": { + // "Category": { + // "description": "A category for the provider type for the rule.", + // "type": "string" + // }, + // "Owner": { + // "description": "The creator of the rule being called. Only AWS is supported.", + // "type": "string" + // }, + // "Provider": { + // "description": "The provider of the service being called by the rule.", + // "type": "string" + // }, + // "Version": { + // "description": "A string that describes the rule version.", + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "type": "object" + // }, // "Blockers": { // "items": { // "additionalProperties": false, @@ -483,6 +574,90 @@ func pipelineDataSource(ctx context.Context) (datasource.DataSource, error) { // "additionalProperties": false, // "description": "The method to use when a stage has not completed successfully", // "properties": { + // "Conditions": { + // "items": { + // "additionalProperties": false, + // "description": "Represents information about condition.", + // "properties": { + // "Result": { + // "description": "The specified result for when the failure conditions are met, such as rolling back the stage", + // "type": "string" + // }, + // "Rules": { + // "items": { + // "additionalProperties": false, + // "description": "Represents information about condition.", + // "properties": { + // "Configuration": { + // "description": "The rule's configuration. These are key-value pairs that specify input values for a rule.", + // "type": "object" + // }, + // "InputArtifacts": { + // "items": { + // "additionalProperties": false, + // "description": "Represents information about an artifact to be worked on, such as a test or build artifact.", + // "properties": { + // "Name": { + // "description": "The name of the artifact to be worked on (for example, \"My App\").", + // "type": "string" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // }, + // "Name": { + // "description": "The rule declaration's name.", + // "type": "string" + // }, + // "Region": { + // "description": "The rule declaration's AWS Region, such as us-east-1.", + // "type": "string" + // }, + // "RoleArn": { + // "description": "The ARN of the IAM service role that performs the declared rule. This is assumed through the roleArn for the pipeline.", + // "pattern": "arn:aws(-[\\w]+)*:iam::[0-9]{12}:role/.*", + // "type": "string" + // }, + // "RuleTypeId": { + // "additionalProperties": false, + // "description": "Represents information about a rule type.", + // "properties": { + // "Category": { + // "description": "A category for the provider type for the rule.", + // "type": "string" + // }, + // "Owner": { + // "description": "The creator of the rule being called. Only AWS is supported.", + // "type": "string" + // }, + // "Provider": { + // "description": "The provider of the service being called by the rule.", + // "type": "string" + // }, + // "Version": { + // "description": "A string that describes the rule version.", + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // }, // "Result": { // "description": "The specified result for when the failure conditions are met, such as rolling back the stage", // "enum": [ @@ -492,6 +667,97 @@ func pipelineDataSource(ctx context.Context) (datasource.DataSource, error) { // } // }, // "type": "object" + // }, + // "OnSuccess": { + // "additionalProperties": false, + // "description": "The method to use when a stage has completed successfully", + // "properties": { + // "Conditions": { + // "items": { + // "additionalProperties": false, + // "description": "Represents information about condition.", + // "properties": { + // "Result": { + // "description": "The specified result for when the failure conditions are met, such as rolling back the stage", + // "type": "string" + // }, + // "Rules": { + // "items": { + // "additionalProperties": false, + // "description": "Represents information about condition.", + // "properties": { + // "Configuration": { + // "description": "The rule's configuration. These are key-value pairs that specify input values for a rule.", + // "type": "object" + // }, + // "InputArtifacts": { + // "items": { + // "additionalProperties": false, + // "description": "Represents information about an artifact to be worked on, such as a test or build artifact.", + // "properties": { + // "Name": { + // "description": "The name of the artifact to be worked on (for example, \"My App\").", + // "type": "string" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // }, + // "Name": { + // "description": "The rule declaration's name.", + // "type": "string" + // }, + // "Region": { + // "description": "The rule declaration's AWS Region, such as us-east-1.", + // "type": "string" + // }, + // "RoleArn": { + // "description": "The ARN of the IAM service role that performs the declared rule. This is assumed through the roleArn for the pipeline.", + // "pattern": "arn:aws(-[\\w]+)*:iam::[0-9]{12}:role/.*", + // "type": "string" + // }, + // "RuleTypeId": { + // "additionalProperties": false, + // "description": "Represents information about a rule type.", + // "properties": { + // "Category": { + // "description": "A category for the provider type for the rule.", + // "type": "string" + // }, + // "Owner": { + // "description": "The creator of the rule being called. Only AWS is supported.", + // "type": "string" + // }, + // "Provider": { + // "description": "The provider of the service being called by the rule.", + // "type": "string" + // }, + // "Version": { + // "description": "A string that describes the rule version.", + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "type": "object" // } // }, // "required": [ @@ -603,6 +869,95 @@ func pipelineDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END NESTED OBJECT*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: BeforeEntry + "before_entry": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Conditions + "conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Result + "result": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The specified result for when the failure conditions are met, such as rolling back the stage", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Rules + "rules": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Configuration + "configuration": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Description: "The rule's configuration. These are key-value pairs that specify input values for a rule.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InputArtifacts + "input_artifacts": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the artifact to be worked on (for example, \"My App\").", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The rule declaration's name.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Region + "region": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The rule declaration's AWS Region, such as us-east-1.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RoleArn + "role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of the IAM service role that performs the declared rule. This is assumed through the roleArn for the pipeline.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RuleTypeId + "rule_type_id": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Category + "category": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A category for the provider type for the rule.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Owner + "owner": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The creator of the rule being called. Only AWS is supported.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Provider + "provider": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The provider of the service being called by the rule.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Version + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A string that describes the rule version.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Represents information about a rule type.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The method to use before stage runs.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Blockers "blockers": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ @@ -629,6 +984,88 @@ func pipelineDataSource(ctx context.Context) (datasource.DataSource, error) { // Property: OnFailure "on_failure": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Conditions + "conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Result + "result": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The specified result for when the failure conditions are met, such as rolling back the stage", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Rules + "rules": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Configuration + "configuration": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Description: "The rule's configuration. These are key-value pairs that specify input values for a rule.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InputArtifacts + "input_artifacts": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the artifact to be worked on (for example, \"My App\").", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The rule declaration's name.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Region + "region": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The rule declaration's AWS Region, such as us-east-1.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RoleArn + "role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of the IAM service role that performs the declared rule. This is assumed through the roleArn for the pipeline.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RuleTypeId + "rule_type_id": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Category + "category": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A category for the provider type for the rule.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Owner + "owner": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The creator of the rule being called. Only AWS is supported.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Provider + "provider": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The provider of the service being called by the rule.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Version + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A string that describes the rule version.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Represents information about a rule type.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Result "result": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The specified result for when the failure conditions are met, such as rolling back the stage", @@ -638,6 +1075,95 @@ func pipelineDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The method to use when a stage has not completed successfully", Computed: true, }, /*END ATTRIBUTE*/ + // Property: OnSuccess + "on_success": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Conditions + "conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Result + "result": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The specified result for when the failure conditions are met, such as rolling back the stage", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Rules + "rules": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Configuration + "configuration": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Description: "The rule's configuration. These are key-value pairs that specify input values for a rule.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InputArtifacts + "input_artifacts": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the artifact to be worked on (for example, \"My App\").", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The rule declaration's name.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Region + "region": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The rule declaration's AWS Region, such as us-east-1.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RoleArn + "role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of the IAM service role that performs the declared rule. This is assumed through the roleArn for the pipeline.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RuleTypeId + "rule_type_id": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Category + "category": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A category for the provider type for the rule.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Owner + "owner": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The creator of the rule being called. Only AWS is supported.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Provider + "provider": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The provider of the service being called by the rule.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Version + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A string that describes the rule version.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Represents information about a rule type.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The method to use when a stage has completed successfully", + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ Description: "Represents information about a stage and its definition.", @@ -1103,9 +1629,11 @@ func pipelineDataSource(ctx context.Context) (datasource.DataSource, error) { "actions": "Actions", "artifact_store": "ArtifactStore", "artifact_stores": "ArtifactStores", + "before_entry": "BeforeEntry", "blockers": "Blockers", "branches": "Branches", "category": "Category", + "conditions": "Conditions", "configuration": "Configuration", "default_value": "DefaultValue", "description": "Description", @@ -1124,6 +1652,7 @@ func pipelineDataSource(ctx context.Context) (datasource.DataSource, error) { "name": "Name", "namespace": "Namespace", "on_failure": "OnFailure", + "on_success": "OnSuccess", "output_artifacts": "OutputArtifacts", "owner": "Owner", "pipeline_type": "PipelineType", @@ -1136,6 +1665,8 @@ func pipelineDataSource(ctx context.Context) (datasource.DataSource, error) { "restart_execution_on_update": "RestartExecutionOnUpdate", "result": "Result", "role_arn": "RoleArn", + "rule_type_id": "RuleTypeId", + "rules": "Rules", "run_order": "RunOrder", "source_action_name": "SourceActionName", "stage_name": "StageName", diff --git a/internal/aws/ec2/subnet_singular_data_source_gen.go b/internal/aws/ec2/subnet_singular_data_source_gen.go index e4520eaa8..87654a79a 100644 --- a/internal/aws/ec2/subnet_singular_data_source_gen.go +++ b/internal/aws/ec2/subnet_singular_data_source_gen.go @@ -71,11 +71,11 @@ func subnetDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. For more information, see [DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-nat64-dns64) in the *User Guide*.", + // "description": "Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations.\n You must first configure a NAT gateway in a public subnet (separate from the subnet containing the IPv6-only workloads). For example, the subnet containing the NAT gateway should have a ``0.0.0.0/0`` route pointing to the internet gateway. For more information, see [Configure DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-nat64-dns64.html#nat-gateway-nat64-dns64-walkthrough) in the *User Guide*.", // "type": "boolean" // } "enable_dns_64": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. For more information, see [DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-nat64-dns64) in the *User Guide*.", + Description: "Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations.\n You must first configure a NAT gateway in a public subnet (separate from the subnet containing the IPv6-only workloads). For example, the subnet containing the NAT gateway should have a ``0.0.0.0/0`` route pointing to the internet gateway. For more information, see [Configure DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-nat64-dns64.html#nat-gateway-nat64-dns64-walkthrough) in the *User Guide*.", Computed: true, }, /*END ATTRIBUTE*/ // Property: EnableLniAtDeviceIndex diff --git a/internal/aws/ec2/transit_gateway_attachment_singular_data_source_gen.go b/internal/aws/ec2/transit_gateway_attachment_singular_data_source_gen.go index fb70d33ca..78b6d91b7 100644 --- a/internal/aws/ec2/transit_gateway_attachment_singular_data_source_gen.go +++ b/internal/aws/ec2/transit_gateway_attachment_singular_data_source_gen.go @@ -50,10 +50,6 @@ func transitGatewayAttachmentDataSource(ctx context.Context) (datasource.DataSou // "Ipv6Support": { // "description": "Indicates whether to enable Ipv6 Support for Vpc Attachment. Valid Values: enable | disable", // "type": "string" - // }, - // "SecurityGroupReferencingSupport": { - // "description": "Indicates whether to enable Security Group referencing support for Vpc Attachment. Valid Values: enable | disable", - // "type": "string" // } // }, // "type": "object" @@ -75,11 +71,6 @@ func transitGatewayAttachmentDataSource(ctx context.Context) (datasource.DataSou Description: "Indicates whether to enable Ipv6 Support for Vpc Attachment. Valid Values: enable | disable", Computed: true, }, /*END ATTRIBUTE*/ - // Property: SecurityGroupReferencingSupport - "security_group_referencing_support": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Indicates whether to enable Security Group referencing support for Vpc Attachment. Valid Values: enable | disable", - Computed: true, - }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "The options for the transit gateway vpc attachment.", Computed: true, @@ -90,6 +81,10 @@ func transitGatewayAttachmentDataSource(ctx context.Context) (datasource.DataSou // { // "insertionOrder": false, // "items": { + // "relationshipRef": { + // "propertyPath": "/properties/SubnetId", + // "typeName": "AWS::EC2::Subnet" + // }, // "type": "string" // }, // "type": "array", @@ -173,18 +168,17 @@ func transitGatewayAttachmentDataSource(ctx context.Context) (datasource.DataSou opts = opts.WithCloudFormationTypeName("AWS::EC2::TransitGatewayAttachment").WithTerraformTypeName("awscc_ec2_transit_gateway_attachment") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "appliance_mode_support": "ApplianceModeSupport", - "dns_support": "DnsSupport", - "ipv_6_support": "Ipv6Support", - "key": "Key", - "options": "Options", - "security_group_referencing_support": "SecurityGroupReferencingSupport", - "subnet_ids": "SubnetIds", - "tags": "Tags", - "transit_gateway_attachment_id": "Id", - "transit_gateway_id": "TransitGatewayId", - "value": "Value", - "vpc_id": "VpcId", + "appliance_mode_support": "ApplianceModeSupport", + "dns_support": "DnsSupport", + "ipv_6_support": "Ipv6Support", + "key": "Key", + "options": "Options", + "subnet_ids": "SubnetIds", + "tags": "Tags", + "transit_gateway_attachment_id": "Id", + "transit_gateway_id": "TransitGatewayId", + "value": "Value", + "vpc_id": "VpcId", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/ec2/transit_gateway_multicast_group_member_singular_data_source_gen.go b/internal/aws/ec2/transit_gateway_multicast_group_member_singular_data_source_gen.go index d8a7d41f6..e9442bde5 100644 --- a/internal/aws/ec2/transit_gateway_multicast_group_member_singular_data_source_gen.go +++ b/internal/aws/ec2/transit_gateway_multicast_group_member_singular_data_source_gen.go @@ -99,17 +99,6 @@ func transitGatewayMulticastGroupMemberDataSource(ctx context.Context) (datasour Description: "The type of resource, for example a VPC attachment.", Computed: true, }, /*END ATTRIBUTE*/ - // Property: SourceType - // CloudFormation resource type schema: - // - // { - // "description": "The source type.", - // "type": "string" - // } - "source_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The source type.", - Computed: true, - }, /*END ATTRIBUTE*/ // Property: SubnetId // CloudFormation resource type schema: // @@ -167,7 +156,6 @@ func transitGatewayMulticastGroupMemberDataSource(ctx context.Context) (datasour "network_interface_id": "NetworkInterfaceId", "resource_id": "ResourceId", "resource_type": "ResourceType", - "source_type": "SourceType", "subnet_id": "SubnetId", "transit_gateway_attachment_id": "TransitGatewayAttachmentId", "transit_gateway_multicast_domain_id": "TransitGatewayMulticastDomainId", diff --git a/internal/aws/ec2/transit_gateway_multicast_group_source_singular_data_source_gen.go b/internal/aws/ec2/transit_gateway_multicast_group_source_singular_data_source_gen.go index f72491d5a..1a9fc7932 100644 --- a/internal/aws/ec2/transit_gateway_multicast_group_source_singular_data_source_gen.go +++ b/internal/aws/ec2/transit_gateway_multicast_group_source_singular_data_source_gen.go @@ -55,17 +55,6 @@ func transitGatewayMulticastGroupSourceDataSource(ctx context.Context) (datasour Description: "Indicates that the resource is a transit gateway multicast group member.", Computed: true, }, /*END ATTRIBUTE*/ - // Property: MemberType - // CloudFormation resource type schema: - // - // { - // "description": "The member type (for example, static).", - // "type": "string" - // } - "member_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The member type (for example, static).", - Computed: true, - }, /*END ATTRIBUTE*/ // Property: NetworkInterfaceId // CloudFormation resource type schema: // @@ -163,7 +152,6 @@ func transitGatewayMulticastGroupSourceDataSource(ctx context.Context) (datasour "group_ip_address": "GroupIpAddress", "group_member": "GroupMember", "group_source": "GroupSource", - "member_type": "MemberType", "network_interface_id": "NetworkInterfaceId", "resource_id": "ResourceId", "resource_type": "ResourceType", diff --git a/internal/aws/ecs/cluster_singular_data_source_gen.go b/internal/aws/ecs/cluster_singular_data_source_gen.go index 8dc15b0dd..ea2d03dc5 100644 --- a/internal/aws/ecs/cluster_singular_data_source_gen.go +++ b/internal/aws/ecs/cluster_singular_data_source_gen.go @@ -105,7 +105,7 @@ func clusterDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "additionalProperties": false, - // "description": "The execute command configuration for the cluster.", + // "description": "The execute command and managed storage configuration for the cluster.", // "properties": { // "ExecuteCommandConfiguration": { // "additionalProperties": false, @@ -159,12 +159,14 @@ func clusterDataSource(ctx context.Context) (datasource.DataSource, error) { // }, // "ManagedStorageConfiguration": { // "additionalProperties": false, - // "description": "", + // "description": "The details of the managed storage configuration.", // "properties": { // "FargateEphemeralStorageKmsKeyId": { + // "description": "Specify the KMSlong key ID for the Fargate ephemeral storage.", // "type": "string" // }, // "KmsKeyId": { + // "description": "Specify a KMSlong key ID to encrypt the managed storage.", // "type": "string" // } // }, @@ -229,18 +231,20 @@ func clusterDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: FargateEphemeralStorageKmsKeyId "fargate_ephemeral_storage_kms_key_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "Specify the KMSlong key ID for the Fargate ephemeral storage.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: KmsKeyId "kms_key_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "Specify a KMSlong key ID to encrypt the managed storage.", + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "", + Description: "The details of the managed storage configuration.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The execute command configuration for the cluster.", + Description: "The execute command and managed storage configuration for the cluster.", Computed: true, }, /*END ATTRIBUTE*/ // Property: DefaultCapacityProviderStrategy diff --git a/internal/aws/kinesisfirehose/delivery_stream_singular_data_source_gen.go b/internal/aws/kinesisfirehose/delivery_stream_singular_data_source_gen.go index 268d873d9..2e4c9a57e 100644 --- a/internal/aws/kinesisfirehose/delivery_stream_singular_data_source_gen.go +++ b/internal/aws/kinesisfirehose/delivery_stream_singular_data_source_gen.go @@ -3796,6 +3796,9 @@ func deliveryStreamDataSource(ctx context.Context) (datasource.DataSource, error // }, // "type": "string" // }, + // "ReadFromTimestamp": { + // "type": "string" + // }, // "TopicName": { // "maxLength": 255, // "minLength": 1, @@ -3830,6 +3833,10 @@ func deliveryStreamDataSource(ctx context.Context) (datasource.DataSource, error "msk_cluster_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: ReadFromTimestamp + "read_from_timestamp": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: TopicName "topic_name": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, @@ -6001,6 +6008,7 @@ func deliveryStreamDataSource(ctx context.Context) (datasource.DataSource, error "private_link_vpce_id": "PrivateLinkVpceId", "processing_configuration": "ProcessingConfiguration", "processors": "Processors", + "read_from_timestamp": "ReadFromTimestamp", "redshift_destination_configuration": "RedshiftDestinationConfiguration", "region": "Region", "request_configuration": "RequestConfiguration", diff --git a/internal/aws/kms/key_singular_data_source_gen.go b/internal/aws/kms/key_singular_data_source_gen.go index 0a2a89ac7..6a11e265e 100644 --- a/internal/aws/kms/key_singular_data_source_gen.go +++ b/internal/aws/kms/key_singular_data_source_gen.go @@ -108,7 +108,7 @@ func keyDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "default": "SYMMETRIC_DEFAULT", - // "description": "Specifies the type of KMS key to create. The default value, ``SYMMETRIC_DEFAULT``, creates a KMS key with a 256-bit symmetric key for encryption and decryption. In China Regions, ``SYMMETRIC_DEFAULT`` creates a 128-bit symmetric key that uses SM4 encryption. You can't change the ``KeySpec`` value after the KMS key is created. For help choosing a key spec for your KMS key, see [Choosing a KMS key type](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose.html) in the *Developer Guide*.\n The ``KeySpec`` property determines the type of key material in the KMS key and the algorithms that the KMS key supports. To further restrict the algorithms that can be used with the KMS key, use a condition key in its key policy or IAM policy. For more information, see [condition keys](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms) in the *Developer Guide*.\n If you change the value of the ``KeySpec`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value.\n [services that are integrated with](https://docs.aws.amazon.com/kms/features/#AWS_Service_Integration) use symmetric encryption KMS keys to protect your data. These services do not support encryption with asymmetric KMS keys. For help determining whether a KMS key is asymmetric, see [Identifying asymmetric KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html) in the *Developer Guide*.\n KMS supports the following key specs for KMS keys:\n + Symmetric encryption key (default)\n + ``SYMMETRIC_DEFAULT`` (AES-256-GCM)\n \n + HMAC keys (symmetric)\n + ``HMAC_224`` \n + ``HMAC_256`` \n + ``HMAC_384`` \n + ``HMAC_512`` \n \n + Asymmetric RSA key pairs\n + ``RSA_2048`` \n + ``RSA_3072`` \n + ``RSA_4096`` \n \n + Asymmetric NIST-recommended elliptic curve key pairs\n + ``ECC_NIST_P256`` (secp256r1)\n + ``ECC_NIST_P384`` (secp384r1)\n + ``ECC_NIST_P521`` (secp521r1)\n \n + Other asymmetric elliptic curve key pairs\n + ``ECC_SECG_P256K1`` (secp256k1), commonly used for cryptocurrencies.\n \n + SM2 key pairs (China Regions only)\n + ``SM2``", + // "description": "Specifies the type of KMS key to create. The default value, ``SYMMETRIC_DEFAULT``, creates a KMS key with a 256-bit symmetric key for encryption and decryption. In China Regions, ``SYMMETRIC_DEFAULT`` creates a 128-bit symmetric key that uses SM4 encryption. You can't change the ``KeySpec`` value after the KMS key is created. For help choosing a key spec for your KMS key, see [Choosing a KMS key type](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose.html) in the *Developer Guide*.\n The ``KeySpec`` property determines the type of key material in the KMS key and the algorithms that the KMS key supports. To further restrict the algorithms that can be used with the KMS key, use a condition key in its key policy or IAM policy. For more information, see [condition keys](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms) in the *Developer Guide*.\n If you change the value of the ``KeySpec`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value.\n [services that are integrated with](https://docs.aws.amazon.com/kms/features/#AWS_Service_Integration) use symmetric encryption KMS keys to protect your data. These services do not support encryption with asymmetric KMS keys. For help determining whether a KMS key is asymmetric, see [Identifying asymmetric KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html) in the *Developer Guide*.\n KMS supports the following key specs for KMS keys:\n + Symmetric encryption key (default)\n + ``SYMMETRIC_DEFAULT`` (AES-256-GCM)\n \n + HMAC keys (symmetric)\n + ``HMAC_224`` \n + ``HMAC_256`` \n + ``HMAC_384`` \n + ``HMAC_512`` \n \n + Asymmetric RSA key pairs (encryption and decryption *or* signing and verification)\n + ``RSA_2048`` \n + ``RSA_3072`` \n + ``RSA_4096`` \n \n + Asymmetric NIST-recommended elliptic curve key pairs (signing and verification *or* deriving shared secrets)\n + ``ECC_NIST_P256`` (secp256r1)\n + ``ECC_NIST_P384`` (secp384r1)\n + ``ECC_NIST_P521`` (secp521r1)\n \n + Other asymmetric elliptic curve key pairs (signing and verification)\n + ``ECC_SECG_P256K1`` (secp256k1), commonly used for cryptocurrencies.\n \n + SM2 key pairs (encryption and decryption *or* signing and verification *or* deriving shared secrets)\n + ``SM2`` (China Regions only)", // "enum": [ // "SYMMETRIC_DEFAULT", // "RSA_2048", @@ -127,7 +127,7 @@ func keyDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "string" // } "key_spec": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies the type of KMS key to create. The default value, ``SYMMETRIC_DEFAULT``, creates a KMS key with a 256-bit symmetric key for encryption and decryption. In China Regions, ``SYMMETRIC_DEFAULT`` creates a 128-bit symmetric key that uses SM4 encryption. You can't change the ``KeySpec`` value after the KMS key is created. For help choosing a key spec for your KMS key, see [Choosing a KMS key type](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose.html) in the *Developer Guide*.\n The ``KeySpec`` property determines the type of key material in the KMS key and the algorithms that the KMS key supports. To further restrict the algorithms that can be used with the KMS key, use a condition key in its key policy or IAM policy. For more information, see [condition keys](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms) in the *Developer Guide*.\n If you change the value of the ``KeySpec`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value.\n [services that are integrated with](https://docs.aws.amazon.com/kms/features/#AWS_Service_Integration) use symmetric encryption KMS keys to protect your data. These services do not support encryption with asymmetric KMS keys. For help determining whether a KMS key is asymmetric, see [Identifying asymmetric KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html) in the *Developer Guide*.\n KMS supports the following key specs for KMS keys:\n + Symmetric encryption key (default)\n + ``SYMMETRIC_DEFAULT`` (AES-256-GCM)\n \n + HMAC keys (symmetric)\n + ``HMAC_224`` \n + ``HMAC_256`` \n + ``HMAC_384`` \n + ``HMAC_512`` \n \n + Asymmetric RSA key pairs\n + ``RSA_2048`` \n + ``RSA_3072`` \n + ``RSA_4096`` \n \n + Asymmetric NIST-recommended elliptic curve key pairs\n + ``ECC_NIST_P256`` (secp256r1)\n + ``ECC_NIST_P384`` (secp384r1)\n + ``ECC_NIST_P521`` (secp521r1)\n \n + Other asymmetric elliptic curve key pairs\n + ``ECC_SECG_P256K1`` (secp256k1), commonly used for cryptocurrencies.\n \n + SM2 key pairs (China Regions only)\n + ``SM2``", + Description: "Specifies the type of KMS key to create. The default value, ``SYMMETRIC_DEFAULT``, creates a KMS key with a 256-bit symmetric key for encryption and decryption. In China Regions, ``SYMMETRIC_DEFAULT`` creates a 128-bit symmetric key that uses SM4 encryption. You can't change the ``KeySpec`` value after the KMS key is created. For help choosing a key spec for your KMS key, see [Choosing a KMS key type](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose.html) in the *Developer Guide*.\n The ``KeySpec`` property determines the type of key material in the KMS key and the algorithms that the KMS key supports. To further restrict the algorithms that can be used with the KMS key, use a condition key in its key policy or IAM policy. For more information, see [condition keys](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms) in the *Developer Guide*.\n If you change the value of the ``KeySpec`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value.\n [services that are integrated with](https://docs.aws.amazon.com/kms/features/#AWS_Service_Integration) use symmetric encryption KMS keys to protect your data. These services do not support encryption with asymmetric KMS keys. For help determining whether a KMS key is asymmetric, see [Identifying asymmetric KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html) in the *Developer Guide*.\n KMS supports the following key specs for KMS keys:\n + Symmetric encryption key (default)\n + ``SYMMETRIC_DEFAULT`` (AES-256-GCM)\n \n + HMAC keys (symmetric)\n + ``HMAC_224`` \n + ``HMAC_256`` \n + ``HMAC_384`` \n + ``HMAC_512`` \n \n + Asymmetric RSA key pairs (encryption and decryption *or* signing and verification)\n + ``RSA_2048`` \n + ``RSA_3072`` \n + ``RSA_4096`` \n \n + Asymmetric NIST-recommended elliptic curve key pairs (signing and verification *or* deriving shared secrets)\n + ``ECC_NIST_P256`` (secp256r1)\n + ``ECC_NIST_P384`` (secp384r1)\n + ``ECC_NIST_P521`` (secp521r1)\n \n + Other asymmetric elliptic curve key pairs (signing and verification)\n + ``ECC_SECG_P256K1`` (secp256k1), commonly used for cryptocurrencies.\n \n + SM2 key pairs (encryption and decryption *or* signing and verification *or* deriving shared secrets)\n + ``SM2`` (China Regions only)", Computed: true, }, /*END ATTRIBUTE*/ // Property: KeyUsage @@ -135,7 +135,7 @@ func keyDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "default": "ENCRYPT_DECRYPT", - // "description": "Determines the [cryptographic operations](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) for which you can use the KMS key. The default value is ``ENCRYPT_DECRYPT``. This property is required for asymmetric KMS keys and HMAC KMS keys. You can't change the ``KeyUsage`` value after the KMS key is created.\n If you change the value of the ``KeyUsage`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value.\n Select only one valid value.\n + For symmetric encryption KMS keys, omit the property or specify ``ENCRYPT_DECRYPT``.\n + For asymmetric KMS keys with RSA key material, specify ``ENCRYPT_DECRYPT`` or ``SIGN_VERIFY``.\n + For asymmetric KMS keys with ECC key material, specify ``SIGN_VERIFY``.\n + For asymmetric KMS keys with SM2 (China Regions only) key material, specify ``ENCRYPT_DECRYPT`` or ``SIGN_VERIFY``.\n + For HMAC KMS keys, specify ``GENERATE_VERIFY_MAC``.", + // "description": "Determines the [cryptographic operations](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) for which you can use the KMS key. The default value is ``ENCRYPT_DECRYPT``. This property is required for asymmetric KMS keys and HMAC KMS keys. You can't change the ``KeyUsage`` value after the KMS key is created.\n If you change the value of the ``KeyUsage`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value.\n Select only one valid value.\n + For symmetric encryption KMS keys, omit the parameter or specify ``ENCRYPT_DECRYPT``.\n + For HMAC KMS keys (symmetric), specify ``GENERATE_VERIFY_MAC``.\n + For asymmetric KMS keys with RSA key pairs, specify ``ENCRYPT_DECRYPT`` or ``SIGN_VERIFY``.\n + For asymmetric KMS keys with NIST-recommended elliptic curve key pairs, specify ``SIGN_VERIFY`` or ``KEY_AGREEMENT``.\n + For asymmetric KMS keys with ``ECC_SECG_P256K1`` key pairs specify ``SIGN_VERIFY``.\n + For asymmetric KMS keys with SM2 key pairs (China Regions only), specify ``ENCRYPT_DECRYPT``, ``SIGN_VERIFY``, or ``KEY_AGREEMENT``.", // "enum": [ // "ENCRYPT_DECRYPT", // "SIGN_VERIFY", @@ -145,7 +145,7 @@ func keyDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "string" // } "key_usage": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Determines the [cryptographic operations](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) for which you can use the KMS key. The default value is ``ENCRYPT_DECRYPT``. This property is required for asymmetric KMS keys and HMAC KMS keys. You can't change the ``KeyUsage`` value after the KMS key is created.\n If you change the value of the ``KeyUsage`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value.\n Select only one valid value.\n + For symmetric encryption KMS keys, omit the property or specify ``ENCRYPT_DECRYPT``.\n + For asymmetric KMS keys with RSA key material, specify ``ENCRYPT_DECRYPT`` or ``SIGN_VERIFY``.\n + For asymmetric KMS keys with ECC key material, specify ``SIGN_VERIFY``.\n + For asymmetric KMS keys with SM2 (China Regions only) key material, specify ``ENCRYPT_DECRYPT`` or ``SIGN_VERIFY``.\n + For HMAC KMS keys, specify ``GENERATE_VERIFY_MAC``.", + Description: "Determines the [cryptographic operations](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) for which you can use the KMS key. The default value is ``ENCRYPT_DECRYPT``. This property is required for asymmetric KMS keys and HMAC KMS keys. You can't change the ``KeyUsage`` value after the KMS key is created.\n If you change the value of the ``KeyUsage`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value.\n Select only one valid value.\n + For symmetric encryption KMS keys, omit the parameter or specify ``ENCRYPT_DECRYPT``.\n + For HMAC KMS keys (symmetric), specify ``GENERATE_VERIFY_MAC``.\n + For asymmetric KMS keys with RSA key pairs, specify ``ENCRYPT_DECRYPT`` or ``SIGN_VERIFY``.\n + For asymmetric KMS keys with NIST-recommended elliptic curve key pairs, specify ``SIGN_VERIFY`` or ``KEY_AGREEMENT``.\n + For asymmetric KMS keys with ``ECC_SECG_P256K1`` key pairs specify ``SIGN_VERIFY``.\n + For asymmetric KMS keys with SM2 key pairs (China Regions only), specify ``ENCRYPT_DECRYPT``, ``SIGN_VERIFY``, or ``KEY_AGREEMENT``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: MultiRegion @@ -214,13 +214,13 @@ func keyDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "A key-value pair. A tag consists of a tag key and a tag value. Tag keys and tag values are both required, but tag values can be empty (null) strings.\n Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.\n For information about the rules that apply to tag keys and tag values, see [User-Defined Tag Restrictions](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html) in the *Billing and Cost Management User Guide*.", // "properties": { // "Key": { - // "description": "", + // "description": "The key name of the tag. You can specify a value that's 1 to 128 Unicode characters in length and can't be prefixed with ``aws:``. digits, whitespace, ``_``, ``.``, ``:``, ``/``, ``=``, ``+``, ``@``, ``-``, and ``\"``.\n For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).", // "maxLength": 128, // "minLength": 1, // "type": "string" // }, // "Value": { - // "description": "", + // "description": "The value for the tag. You can specify a value that's 1 to 256 characters in length. You can use any of the following characters: the set of Unicode letters, digits, whitespace, ``_``, ``.``, ``/``, ``=``, ``+``, and ``-``.\n For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).", // "maxLength": 256, // "minLength": 0, // "type": "string" @@ -240,12 +240,12 @@ func keyDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Key "key": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "The key name of the tag. You can specify a value that's 1 to 128 Unicode characters in length and can't be prefixed with ``aws:``. digits, whitespace, ``_``, ``.``, ``:``, ``/``, ``=``, ``+``, ``@``, ``-``, and ``\"``.\n For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).", Computed: true, }, /*END ATTRIBUTE*/ // Property: Value "value": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "The value for the tag. You can specify a value that's 1 to 256 characters in length. You can use any of the following characters: the set of Unicode letters, digits, whitespace, ``_``, ``.``, ``/``, ``=``, ``+``, and ``-``.\n For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ diff --git a/internal/aws/lambda/function_singular_data_source_gen.go b/internal/aws/lambda/function_singular_data_source_gen.go index 6c498abe8..fe19685f0 100644 --- a/internal/aws/lambda/function_singular_data_source_gen.go +++ b/internal/aws/lambda/function_singular_data_source_gen.go @@ -86,6 +86,11 @@ func functionDataSource(ctx context.Context) (datasource.DataSource, error) { // "minLength": 1, // "type": "string" // }, + // "SourceKMSKeyArn": { + // "description": "", + // "pattern": "^(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()$", + // "type": "string" + // }, // "ZipFile": { // "description": "(Node.js and Python) The source code of your Lambda function. If you include your function source inline with this parameter, CFN places it in a file named ``index`` and zips it to create a [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html). This zip file cannot exceed 4MB. For the ``Handler`` property, the first part of the handler identifier must be ``index``. For example, ``index.handler``.\n For JSON, you must escape quotes and special characters such as newline (``\\n``) with a backslash.\n If you specify a function that interacts with an AWS CloudFormation custom resource, you don't have to write your own functions to send responses to the custom resource that invoked the function. AWS CloudFormation provides a response module ([cfn-response](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html)) that simplifies sending responses. See [Using Lambda with CloudFormation](https://docs.aws.amazon.com/lambda/latest/dg/services-cloudformation.html) for details.", // "type": "string" @@ -115,6 +120,11 @@ func functionDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "For versioned objects, the version of the deployment package object to use.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: SourceKMSKeyArn + "source_kms_key_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: ZipFile "zip_file": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "(Node.js and Python) The source code of your Lambda function. If you include your function source inline with this parameter, CFN places it in a file named ``index`` and zips it to create a [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html). This zip file cannot exceed 4MB. For the ``Handler`` property, the first part of the handler identifier must be ``index``. For example, ``index.handler``.\n For JSON, you must escape quotes and special characters such as newline (``\\n``) with a backslash.\n If you specify a function that interacts with an AWS CloudFormation custom resource, you don't have to write your own functions to send responses to the custom resource that invoked the function. AWS CloudFormation provides a response module ([cfn-response](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html)) that simplifies sending responses. See [Using Lambda with CloudFormation](https://docs.aws.amazon.com/lambda/latest/dg/services-cloudformation.html) for details.", @@ -846,6 +856,7 @@ func functionDataSource(ctx context.Context) (datasource.DataSource, error) { "size": "Size", "snap_start": "SnapStart", "snap_start_response": "SnapStartResponse", + "source_kms_key_arn": "SourceKMSKeyArn", "subnet_ids": "SubnetIds", "system_log_level": "SystemLogLevel", "tags": "Tags", diff --git a/internal/aws/logs/delivery_destination_singular_data_source_gen.go b/internal/aws/logs/delivery_destination_singular_data_source_gen.go index 4c3787160..fe21ccd8f 100644 --- a/internal/aws/logs/delivery_destination_singular_data_source_gen.go +++ b/internal/aws/logs/delivery_destination_singular_data_source_gen.go @@ -70,14 +70,14 @@ func deliveryDestinationDataSource(ctx context.Context) (datasource.DataSource, // CloudFormation resource type schema: // // { - // "description": "The ARN of the AWS resource that will receive the logs.", + // "description": "The ARN of the Amazon Web Services destination that this delivery destination represents. That Amazon Web Services destination can be a log group in CloudWatch Logs, an Amazon S3 bucket, or a delivery stream in Firehose.", // "maxLength": 2048, // "minLength": 16, // "pattern": "[\\w#+=/:,.@-]*\\*?", // "type": "string" // } "destination_resource_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ARN of the AWS resource that will receive the logs.", + Description: "The ARN of the Amazon Web Services destination that this delivery destination represents. That Amazon Web Services destination can be a log group in CloudWatch Logs, an Amazon S3 bucket, or a delivery stream in Firehose.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Name diff --git a/internal/aws/networkfirewall/logging_configuration_singular_data_source_gen.go b/internal/aws/networkfirewall/logging_configuration_singular_data_source_gen.go index 1fe4ec7db..f0b1589f2 100644 --- a/internal/aws/networkfirewall/logging_configuration_singular_data_source_gen.go +++ b/internal/aws/networkfirewall/logging_configuration_singular_data_source_gen.go @@ -83,7 +83,8 @@ func loggingConfigurationDataSource(ctx context.Context) (datasource.DataSource, // "LogType": { // "enum": [ // "ALERT", - // "FLOW" + // "FLOW", + // "TLS" // ], // "type": "string" // } diff --git a/internal/aws/networkmanager/connect_attachment_singular_data_source_gen.go b/internal/aws/networkmanager/connect_attachment_singular_data_source_gen.go index 654b93164..e55527a94 100644 --- a/internal/aws/networkmanager/connect_attachment_singular_data_source_gen.go +++ b/internal/aws/networkmanager/connect_attachment_singular_data_source_gen.go @@ -99,6 +99,17 @@ func connectAttachmentDataSource(ctx context.Context) (datasource.DataSource, er Description: "Edge location of the attachment.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: NetworkFunctionGroupName + // CloudFormation resource type schema: + // + // { + // "description": "The name of the network function group attachment.", + // "type": "string" + // } + "network_function_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the network function group attachment.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Options // CloudFormation resource type schema: // @@ -135,6 +146,84 @@ func connectAttachmentDataSource(ctx context.Context) (datasource.DataSource, er Description: "The ID of the attachment account owner.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: ProposedNetworkFunctionGroupChange + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The attachment to move from one network function group to another.", + // "properties": { + // "AttachmentPolicyRuleNumber": { + // "description": "The rule number in the policy document that applies to this change.", + // "type": "integer" + // }, + // "NetworkFunctionGroupName": { + // "description": "The name of the network function group to change.", + // "type": "string" + // }, + // "Tags": { + // "description": "The key-value tags that changed for the network function group.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "type": "string" + // }, + // "Value": { + // "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "type": "object" + // } + "proposed_network_function_group_change": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AttachmentPolicyRuleNumber + "attachment_policy_rule_number": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The rule number in the policy document that applies to this change.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: NetworkFunctionGroupName + "network_function_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the network function group to change.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The key-value tags that changed for the network function group.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The attachment to move from one network function group to another.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: ProposedSegmentChange // CloudFormation resource type schema: // @@ -331,25 +420,27 @@ func connectAttachmentDataSource(ctx context.Context) (datasource.DataSource, er opts = opts.WithCloudFormationTypeName("AWS::NetworkManager::ConnectAttachment").WithTerraformTypeName("awscc_networkmanager_connect_attachment") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "attachment_id": "AttachmentId", - "attachment_policy_rule_number": "AttachmentPolicyRuleNumber", - "attachment_type": "AttachmentType", - "core_network_arn": "CoreNetworkArn", - "core_network_id": "CoreNetworkId", - "created_at": "CreatedAt", - "edge_location": "EdgeLocation", - "key": "Key", - "options": "Options", - "owner_account_id": "OwnerAccountId", - "proposed_segment_change": "ProposedSegmentChange", - "protocol": "Protocol", - "resource_arn": "ResourceArn", - "segment_name": "SegmentName", - "state": "State", - "tags": "Tags", - "transport_attachment_id": "TransportAttachmentId", - "updated_at": "UpdatedAt", - "value": "Value", + "attachment_id": "AttachmentId", + "attachment_policy_rule_number": "AttachmentPolicyRuleNumber", + "attachment_type": "AttachmentType", + "core_network_arn": "CoreNetworkArn", + "core_network_id": "CoreNetworkId", + "created_at": "CreatedAt", + "edge_location": "EdgeLocation", + "key": "Key", + "network_function_group_name": "NetworkFunctionGroupName", + "options": "Options", + "owner_account_id": "OwnerAccountId", + "proposed_network_function_group_change": "ProposedNetworkFunctionGroupChange", + "proposed_segment_change": "ProposedSegmentChange", + "protocol": "Protocol", + "resource_arn": "ResourceArn", + "segment_name": "SegmentName", + "state": "State", + "tags": "Tags", + "transport_attachment_id": "TransportAttachmentId", + "updated_at": "UpdatedAt", + "value": "Value", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/networkmanager/core_network_singular_data_source_gen.go b/internal/aws/networkmanager/core_network_singular_data_source_gen.go index da75f166e..9e3268ca3 100644 --- a/internal/aws/networkmanager/core_network_singular_data_source_gen.go +++ b/internal/aws/networkmanager/core_network_singular_data_source_gen.go @@ -132,6 +132,88 @@ func coreNetworkDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The ID of the global network that your core network is a part of.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: NetworkFunctionGroups + // CloudFormation resource type schema: + // + // { + // "description": "The network function groups within a core network.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "EdgeLocations": { + // "insertionOrder": false, + // "items": { + // "description": "The Regions where the edges are located.", + // "type": "string" + // }, + // "type": "array" + // }, + // "Name": { + // "description": "Name of network function group", + // "type": "string" + // }, + // "Segments": { + // "additionalProperties": false, + // "properties": { + // "SendTo": { + // "insertionOrder": false, + // "items": { + // "description": "The send-to segments.", + // "type": "string" + // }, + // "type": "array" + // }, + // "SendVia": { + // "insertionOrder": false, + // "items": { + // "description": "The send-via segments.", + // "type": "string" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // } + "network_function_groups": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EdgeLocations + "edge_locations": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of network function group", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Segments + "segments": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SendTo + "send_to": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SendVia + "send_via": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The network function groups within a core network.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: OwnerAccount // CloudFormation resource type schema: // @@ -286,25 +368,28 @@ func coreNetworkDataSource(ctx context.Context) (datasource.DataSource, error) { opts = opts.WithCloudFormationTypeName("AWS::NetworkManager::CoreNetwork").WithTerraformTypeName("awscc_networkmanager_core_network") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "asn": "Asn", - "core_network_arn": "CoreNetworkArn", - "core_network_id": "CoreNetworkId", - "created_at": "CreatedAt", - "description": "Description", - "edge_location": "EdgeLocation", - "edge_locations": "EdgeLocations", - "edges": "Edges", - "global_network_id": "GlobalNetworkId", - "inside_cidr_blocks": "InsideCidrBlocks", - "key": "Key", - "name": "Name", - "owner_account": "OwnerAccount", - "policy_document": "PolicyDocument", - "segments": "Segments", - "shared_segments": "SharedSegments", - "state": "State", - "tags": "Tags", - "value": "Value", + "asn": "Asn", + "core_network_arn": "CoreNetworkArn", + "core_network_id": "CoreNetworkId", + "created_at": "CreatedAt", + "description": "Description", + "edge_location": "EdgeLocation", + "edge_locations": "EdgeLocations", + "edges": "Edges", + "global_network_id": "GlobalNetworkId", + "inside_cidr_blocks": "InsideCidrBlocks", + "key": "Key", + "name": "Name", + "network_function_groups": "NetworkFunctionGroups", + "owner_account": "OwnerAccount", + "policy_document": "PolicyDocument", + "segments": "Segments", + "send_to": "SendTo", + "send_via": "SendVia", + "shared_segments": "SharedSegments", + "state": "State", + "tags": "Tags", + "value": "Value", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/networkmanager/site_to_site_vpn_attachment_singular_data_source_gen.go b/internal/aws/networkmanager/site_to_site_vpn_attachment_singular_data_source_gen.go index 55ab61f68..df0851146 100644 --- a/internal/aws/networkmanager/site_to_site_vpn_attachment_singular_data_source_gen.go +++ b/internal/aws/networkmanager/site_to_site_vpn_attachment_singular_data_source_gen.go @@ -99,6 +99,17 @@ func siteToSiteVpnAttachmentDataSource(ctx context.Context) (datasource.DataSour Description: "The Region where the edge is located.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: NetworkFunctionGroupName + // CloudFormation resource type schema: + // + // { + // "description": "The name of the network function group attachment.", + // "type": "string" + // } + "network_function_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the network function group attachment.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: OwnerAccountId // CloudFormation resource type schema: // @@ -110,6 +121,84 @@ func siteToSiteVpnAttachmentDataSource(ctx context.Context) (datasource.DataSour Description: "Owner account of the attachment.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: ProposedNetworkFunctionGroupChange + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The attachment to move from one network function group to another.", + // "properties": { + // "AttachmentPolicyRuleNumber": { + // "description": "The rule number in the policy document that applies to this change.", + // "type": "integer" + // }, + // "NetworkFunctionGroupName": { + // "description": "The name of the network function group to change.", + // "type": "string" + // }, + // "Tags": { + // "description": "The key-value tags that changed for the network function group.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "type": "string" + // }, + // "Value": { + // "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "type": "object" + // } + "proposed_network_function_group_change": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AttachmentPolicyRuleNumber + "attachment_policy_rule_number": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The rule number in the policy document that applies to this change.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: NetworkFunctionGroupName + "network_function_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the network function group to change.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The key-value tags that changed for the network function group.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The attachment to move from one network function group to another.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: ProposedSegmentChange // CloudFormation resource type schema: // @@ -306,23 +395,25 @@ func siteToSiteVpnAttachmentDataSource(ctx context.Context) (datasource.DataSour opts = opts.WithCloudFormationTypeName("AWS::NetworkManager::SiteToSiteVpnAttachment").WithTerraformTypeName("awscc_networkmanager_site_to_site_vpn_attachment") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "attachment_id": "AttachmentId", - "attachment_policy_rule_number": "AttachmentPolicyRuleNumber", - "attachment_type": "AttachmentType", - "core_network_arn": "CoreNetworkArn", - "core_network_id": "CoreNetworkId", - "created_at": "CreatedAt", - "edge_location": "EdgeLocation", - "key": "Key", - "owner_account_id": "OwnerAccountId", - "proposed_segment_change": "ProposedSegmentChange", - "resource_arn": "ResourceArn", - "segment_name": "SegmentName", - "state": "State", - "tags": "Tags", - "updated_at": "UpdatedAt", - "value": "Value", - "vpn_connection_arn": "VpnConnectionArn", + "attachment_id": "AttachmentId", + "attachment_policy_rule_number": "AttachmentPolicyRuleNumber", + "attachment_type": "AttachmentType", + "core_network_arn": "CoreNetworkArn", + "core_network_id": "CoreNetworkId", + "created_at": "CreatedAt", + "edge_location": "EdgeLocation", + "key": "Key", + "network_function_group_name": "NetworkFunctionGroupName", + "owner_account_id": "OwnerAccountId", + "proposed_network_function_group_change": "ProposedNetworkFunctionGroupChange", + "proposed_segment_change": "ProposedSegmentChange", + "resource_arn": "ResourceArn", + "segment_name": "SegmentName", + "state": "State", + "tags": "Tags", + "updated_at": "UpdatedAt", + "value": "Value", + "vpn_connection_arn": "VpnConnectionArn", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/networkmanager/transit_gateway_route_table_attachment_singular_data_source_gen.go b/internal/aws/networkmanager/transit_gateway_route_table_attachment_singular_data_source_gen.go index b39456f17..ffb93a8b2 100644 --- a/internal/aws/networkmanager/transit_gateway_route_table_attachment_singular_data_source_gen.go +++ b/internal/aws/networkmanager/transit_gateway_route_table_attachment_singular_data_source_gen.go @@ -99,6 +99,17 @@ func transitGatewayRouteTableAttachmentDataSource(ctx context.Context) (datasour Description: "The Region where the edge is located.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: NetworkFunctionGroupName + // CloudFormation resource type schema: + // + // { + // "description": "The name of the network function group attachment.", + // "type": "string" + // } + "network_function_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the network function group attachment.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: OwnerAccountId // CloudFormation resource type schema: // @@ -121,6 +132,85 @@ func transitGatewayRouteTableAttachmentDataSource(ctx context.Context) (datasour Description: "The Id of peering between transit gateway and core network.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: ProposedNetworkFunctionGroupChange + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The attachment to move from one network function group to another.", + // "properties": { + // "AttachmentPolicyRuleNumber": { + // "description": "The rule number in the policy document that applies to this change.", + // "type": "integer" + // }, + // "NetworkFunctionGroupName": { + // "description": "The name of the network function group to change.", + // "type": "string" + // }, + // "Tags": { + // "description": "The key-value tags that changed for the network function group.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "insertionOrder": false, + // "properties": { + // "Key": { + // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "type": "string" + // }, + // "Value": { + // "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "type": "object" + // } + "proposed_network_function_group_change": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AttachmentPolicyRuleNumber + "attachment_policy_rule_number": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The rule number in the policy document that applies to this change.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: NetworkFunctionGroupName + "network_function_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the network function group to change.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The key-value tags that changed for the network function group.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The attachment to move from one network function group to another.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: ProposedSegmentChange // CloudFormation resource type schema: // @@ -319,24 +409,26 @@ func transitGatewayRouteTableAttachmentDataSource(ctx context.Context) (datasour opts = opts.WithCloudFormationTypeName("AWS::NetworkManager::TransitGatewayRouteTableAttachment").WithTerraformTypeName("awscc_networkmanager_transit_gateway_route_table_attachment") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "attachment_id": "AttachmentId", - "attachment_policy_rule_number": "AttachmentPolicyRuleNumber", - "attachment_type": "AttachmentType", - "core_network_arn": "CoreNetworkArn", - "core_network_id": "CoreNetworkId", - "created_at": "CreatedAt", - "edge_location": "EdgeLocation", - "key": "Key", - "owner_account_id": "OwnerAccountId", - "peering_id": "PeeringId", - "proposed_segment_change": "ProposedSegmentChange", - "resource_arn": "ResourceArn", - "segment_name": "SegmentName", - "state": "State", - "tags": "Tags", - "transit_gateway_route_table_arn": "TransitGatewayRouteTableArn", - "updated_at": "UpdatedAt", - "value": "Value", + "attachment_id": "AttachmentId", + "attachment_policy_rule_number": "AttachmentPolicyRuleNumber", + "attachment_type": "AttachmentType", + "core_network_arn": "CoreNetworkArn", + "core_network_id": "CoreNetworkId", + "created_at": "CreatedAt", + "edge_location": "EdgeLocation", + "key": "Key", + "network_function_group_name": "NetworkFunctionGroupName", + "owner_account_id": "OwnerAccountId", + "peering_id": "PeeringId", + "proposed_network_function_group_change": "ProposedNetworkFunctionGroupChange", + "proposed_segment_change": "ProposedSegmentChange", + "resource_arn": "ResourceArn", + "segment_name": "SegmentName", + "state": "State", + "tags": "Tags", + "transit_gateway_route_table_arn": "TransitGatewayRouteTableArn", + "updated_at": "UpdatedAt", + "value": "Value", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/networkmanager/vpc_attachment_singular_data_source_gen.go b/internal/aws/networkmanager/vpc_attachment_singular_data_source_gen.go index 882294a83..20845e66e 100644 --- a/internal/aws/networkmanager/vpc_attachment_singular_data_source_gen.go +++ b/internal/aws/networkmanager/vpc_attachment_singular_data_source_gen.go @@ -100,6 +100,17 @@ func vpcAttachmentDataSource(ctx context.Context) (datasource.DataSource, error) Description: "The Region where the edge is located.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: NetworkFunctionGroupName + // CloudFormation resource type schema: + // + // { + // "description": "The name of the network function group attachment.", + // "type": "string" + // } + "network_function_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the network function group attachment.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Options // CloudFormation resource type schema: // @@ -147,6 +158,84 @@ func vpcAttachmentDataSource(ctx context.Context) (datasource.DataSource, error) Description: "Owner account of the attachment.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: ProposedNetworkFunctionGroupChange + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The attachment to move from one network function group to another.", + // "properties": { + // "AttachmentPolicyRuleNumber": { + // "description": "The rule number in the policy document that applies to this change.", + // "type": "integer" + // }, + // "NetworkFunctionGroupName": { + // "description": "The name of the network function group to change.", + // "type": "string" + // }, + // "Tags": { + // "description": "The key-value tags that changed for the network function group.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "type": "string" + // }, + // "Value": { + // "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "type": "object" + // } + "proposed_network_function_group_change": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AttachmentPolicyRuleNumber + "attachment_policy_rule_number": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The rule number in the policy document that applies to this change.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: NetworkFunctionGroupName + "network_function_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the network function group to change.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The key-value tags that changed for the network function group.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The attachment to move from one network function group to another.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: ProposedSegmentChange // CloudFormation resource type schema: // @@ -359,27 +448,29 @@ func vpcAttachmentDataSource(ctx context.Context) (datasource.DataSource, error) opts = opts.WithCloudFormationTypeName("AWS::NetworkManager::VpcAttachment").WithTerraformTypeName("awscc_networkmanager_vpc_attachment") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "appliance_mode_support": "ApplianceModeSupport", - "attachment_id": "AttachmentId", - "attachment_policy_rule_number": "AttachmentPolicyRuleNumber", - "attachment_type": "AttachmentType", - "core_network_arn": "CoreNetworkArn", - "core_network_id": "CoreNetworkId", - "created_at": "CreatedAt", - "edge_location": "EdgeLocation", - "ipv_6_support": "Ipv6Support", - "key": "Key", - "options": "Options", - "owner_account_id": "OwnerAccountId", - "proposed_segment_change": "ProposedSegmentChange", - "resource_arn": "ResourceArn", - "segment_name": "SegmentName", - "state": "State", - "subnet_arns": "SubnetArns", - "tags": "Tags", - "updated_at": "UpdatedAt", - "value": "Value", - "vpc_arn": "VpcArn", + "appliance_mode_support": "ApplianceModeSupport", + "attachment_id": "AttachmentId", + "attachment_policy_rule_number": "AttachmentPolicyRuleNumber", + "attachment_type": "AttachmentType", + "core_network_arn": "CoreNetworkArn", + "core_network_id": "CoreNetworkId", + "created_at": "CreatedAt", + "edge_location": "EdgeLocation", + "ipv_6_support": "Ipv6Support", + "key": "Key", + "network_function_group_name": "NetworkFunctionGroupName", + "options": "Options", + "owner_account_id": "OwnerAccountId", + "proposed_network_function_group_change": "ProposedNetworkFunctionGroupChange", + "proposed_segment_change": "ProposedSegmentChange", + "resource_arn": "ResourceArn", + "segment_name": "SegmentName", + "state": "State", + "subnet_arns": "SubnetArns", + "tags": "Tags", + "updated_at": "UpdatedAt", + "value": "Value", + "vpc_arn": "VpcArn", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/osis/pipeline_singular_data_source_gen.go b/internal/aws/osis/pipeline_singular_data_source_gen.go index 5a5136e20..3c2490edd 100644 --- a/internal/aws/osis/pipeline_singular_data_source_gen.go +++ b/internal/aws/osis/pipeline_singular_data_source_gen.go @@ -321,6 +321,26 @@ func pipelineDataSource(ctx context.Context) (datasource.DataSource, error) { // }, // "type": "array" // }, + // "VpcAttachmentOptions": { + // "additionalProperties": false, + // "description": "Options for attaching a VPC to the pipeline.", + // "properties": { + // "AttachToVpc": { + // "description": "Whether the pipeline should be attached to the provided VPC", + // "type": "boolean" + // }, + // "CidrBlock": { + // "description": "The CIDR block to be reserved for OpenSearch Ingestion to create elastic network interfaces (ENIs).", + // "pattern": "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/(3[0-2]|[12]?[0-9])$", + // "type": "string" + // } + // }, + // "required": [ + // "AttachToVpc", + // "CidrBlock" + // ], + // "type": "object" + // }, // "VpcEndpointManagement": { // "description": "Defines whether you or Amazon OpenSearch Ingestion service create and manage the VPC endpoint configured for the pipeline.", // "enum": [ @@ -368,6 +388,23 @@ func pipelineDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "A list of subnet IDs associated with the VPC endpoint.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: VpcAttachmentOptions + "vpc_attachment_options": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AttachToVpc + "attach_to_vpc": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Whether the pipeline should be attached to the provided VPC", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CidrBlock + "cidr_block": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The CIDR block to be reserved for OpenSearch Ingestion to create elastic network interfaces (ENIs).", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Options for attaching a VPC to the pipeline.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: VpcEndpointManagement "vpc_endpoint_management": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "Defines whether you or Amazon OpenSearch Ingestion service create and manage the VPC endpoint configured for the pipeline.", @@ -411,6 +448,26 @@ func pipelineDataSource(ctx context.Context) (datasource.DataSource, error) { // }, // "type": "array" // }, + // "VpcAttachmentOptions": { + // "additionalProperties": false, + // "description": "Options for attaching a VPC to the pipeline.", + // "properties": { + // "AttachToVpc": { + // "description": "Whether the pipeline should be attached to the provided VPC", + // "type": "boolean" + // }, + // "CidrBlock": { + // "description": "The CIDR block to be reserved for OpenSearch Ingestion to create elastic network interfaces (ENIs).", + // "pattern": "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/(3[0-2]|[12]?[0-9])$", + // "type": "string" + // } + // }, + // "required": [ + // "AttachToVpc", + // "CidrBlock" + // ], + // "type": "object" + // }, // "VpcEndpointManagement": { // "description": "Defines whether you or Amazon OpenSearch Ingestion service create and manage the VPC endpoint configured for the pipeline.", // "enum": [ @@ -439,6 +496,23 @@ func pipelineDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "A list of subnet IDs associated with the VPC endpoint.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: VpcAttachmentOptions + "vpc_attachment_options": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AttachToVpc + "attach_to_vpc": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Whether the pipeline should be attached to the provided VPC", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CidrBlock + "cidr_block": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The CIDR block to be reserved for OpenSearch Ingestion to create elastic network interfaces (ENIs).", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Options for attaching a VPC to the pipeline.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: VpcEndpointManagement "vpc_endpoint_management": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "Defines whether you or Amazon OpenSearch Ingestion service create and manage the VPC endpoint configured for the pipeline.", @@ -465,7 +539,9 @@ func pipelineDataSource(ctx context.Context) (datasource.DataSource, error) { opts = opts.WithCloudFormationTypeName("AWS::OSIS::Pipeline").WithTerraformTypeName("awscc_osis_pipeline") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ + "attach_to_vpc": "AttachToVpc", "buffer_options": "BufferOptions", + "cidr_block": "CidrBlock", "cloudwatch_log_destination": "CloudWatchLogDestination", "encryption_at_rest_options": "EncryptionAtRestOptions", "ingest_endpoint_urls": "IngestEndpointUrls", @@ -484,6 +560,7 @@ func pipelineDataSource(ctx context.Context) (datasource.DataSource, error) { "subnet_ids": "SubnetIds", "tags": "Tags", "value": "Value", + "vpc_attachment_options": "VpcAttachmentOptions", "vpc_endpoint_id": "VpcEndpointId", "vpc_endpoint_management": "VpcEndpointManagement", "vpc_endpoint_service": "VpcEndpointService", diff --git a/internal/aws/rds/db_cluster_parameter_group_singular_data_source_gen.go b/internal/aws/rds/db_cluster_parameter_group_singular_data_source_gen.go index 3ff669706..183293d75 100644 --- a/internal/aws/rds/db_cluster_parameter_group_singular_data_source_gen.go +++ b/internal/aws/rds/db_cluster_parameter_group_singular_data_source_gen.go @@ -27,34 +27,34 @@ func dBClusterParameterGroupDataSource(ctx context.Context) (datasource.DataSour // CloudFormation resource type schema: // // { - // "description": "The name of the DB cluster parameter group.\n Constraints:\n + Must not match the name of an existing DB cluster parameter group.\n \n If you don't specify a value for ``DBClusterParameterGroupName`` property, a name is automatically created for the DB cluster parameter group.\n This value is stored as a lowercase string.", + // "description": "The name of the DB cluster parameter group.\n Constraints:\n + Must not match the name of an existing DB cluster parameter group.\n \n This value is stored as a lowercase string.", // "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9])*$", // "type": "string" // } "db_cluster_parameter_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of the DB cluster parameter group.\n Constraints:\n + Must not match the name of an existing DB cluster parameter group.\n \n If you don't specify a value for ``DBClusterParameterGroupName`` property, a name is automatically created for the DB cluster parameter group.\n This value is stored as a lowercase string.", + Description: "The name of the DB cluster parameter group.\n Constraints:\n + Must not match the name of an existing DB cluster parameter group.\n \n This value is stored as a lowercase string.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Description // CloudFormation resource type schema: // // { - // "description": "A friendly description for this DB cluster parameter group.", + // "description": "The description for the DB cluster parameter group.", // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A friendly description for this DB cluster parameter group.", + Description: "The description for the DB cluster parameter group.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Family // CloudFormation resource type schema: // // { - // "description": "The DB cluster parameter group family name. A DB cluster parameter group can be associated with one and only one DB cluster parameter group family, and can be applied only to a DB cluster running a DB engine and engine version compatible with that DB cluster parameter group family.\n The DB cluster parameter group family can't be changed when updating a DB cluster parameter group.\n To list all of the available parameter group families, use the following command:\n ``aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\"`` \n The output contains duplicates.\n For more information, see ``CreateDBClusterParameterGroup``.", + // "description": "The DB cluster parameter group family name. A DB cluster parameter group can be associated with one and only one DB cluster parameter group family, and can be applied only to a DB cluster running a database engine and engine version compatible with that DB cluster parameter group family.\n *Aurora MySQL* \n Example: ``aurora-mysql5.7``, ``aurora-mysql8.0`` \n *Aurora PostgreSQL* \n Example: ``aurora-postgresql14`` \n *RDS for MySQL* \n Example: ``mysql8.0`` \n *RDS for PostgreSQL* \n Example: ``postgres13`` \n To list all of the available parameter group families for a DB engine, use the following command:\n ``aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\" --engine \u003cengine\u003e`` \n For example, to list all of the available parameter group families for the Aurora PostgreSQL DB engine, use the following command:\n ``aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\" --engine aurora-postgresql`` \n The output contains duplicates.\n The following are the valid DB engine values:\n + ``aurora-mysql`` \n + ``aurora-postgresql`` \n + ``mysql`` \n + ``postgres``", // "type": "string" // } "family": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The DB cluster parameter group family name. A DB cluster parameter group can be associated with one and only one DB cluster parameter group family, and can be applied only to a DB cluster running a DB engine and engine version compatible with that DB cluster parameter group family.\n The DB cluster parameter group family can't be changed when updating a DB cluster parameter group.\n To list all of the available parameter group families, use the following command:\n ``aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\"`` \n The output contains duplicates.\n For more information, see ``CreateDBClusterParameterGroup``.", + Description: "The DB cluster parameter group family name. A DB cluster parameter group can be associated with one and only one DB cluster parameter group family, and can be applied only to a DB cluster running a database engine and engine version compatible with that DB cluster parameter group family.\n *Aurora MySQL* \n Example: ``aurora-mysql5.7``, ``aurora-mysql8.0`` \n *Aurora PostgreSQL* \n Example: ``aurora-postgresql14`` \n *RDS for MySQL* \n Example: ``mysql8.0`` \n *RDS for PostgreSQL* \n Example: ``postgres13`` \n To list all of the available parameter group families for a DB engine, use the following command:\n ``aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\" --engine `` \n For example, to list all of the available parameter group families for the Aurora PostgreSQL DB engine, use the following command:\n ``aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\" --engine aurora-postgresql`` \n The output contains duplicates.\n The following are the valid DB engine values:\n + ``aurora-mysql`` \n + ``aurora-postgresql`` \n + ``mysql`` \n + ``postgres``", Computed: true, }, /*END ATTRIBUTE*/ // Property: Parameters @@ -73,11 +73,11 @@ func dBClusterParameterGroupDataSource(ctx context.Context) (datasource.DataSour // CloudFormation resource type schema: // // { - // "description": "An optional array of key-value pairs to apply to this DB cluster parameter group.", + // "description": "Tags to assign to the DB cluster parameter group.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", + // "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", // "properties": { // "Key": { // "description": "A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", @@ -115,7 +115,7 @@ func dBClusterParameterGroupDataSource(ctx context.Context) (datasource.DataSour }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "An optional array of key-value pairs to apply to this DB cluster parameter group.", + Description: "Tags to assign to the DB cluster parameter group.", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/rds/db_cluster_singular_data_source_gen.go b/internal/aws/rds/db_cluster_singular_data_source_gen.go index 6134ef285..09b2e65e2 100644 --- a/internal/aws/rds/db_cluster_singular_data_source_gen.go +++ b/internal/aws/rds/db_cluster_singular_data_source_gen.go @@ -109,12 +109,12 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The target backtrack window, in seconds. To disable backtracking, set this value to 0. \n Currently, Backtrack is only supported for Aurora MySQL DB clusters.\n Default: 0\n Constraints:\n + If specified, this value must be set to a number from 0 to 259,200 (72 hours).\n \n Valid for: Aurora MySQL DB clusters only", + // "description": "The target backtrack window, in seconds. To disable backtracking, set this value to ``0``.\n Valid for Cluster Type: Aurora MySQL DB clusters only\n Default: ``0`` \n Constraints:\n + If specified, this value must be set to a number from 0 to 259,200 (72 hours).", // "minimum": 0, // "type": "integer" // } "backtrack_window": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The target backtrack window, in seconds. To disable backtracking, set this value to 0. \n Currently, Backtrack is only supported for Aurora MySQL DB clusters.\n Default: 0\n Constraints:\n + If specified, this value must be set to a number from 0 to 259,200 (72 hours).\n \n Valid for: Aurora MySQL DB clusters only", + Description: "The target backtrack window, in seconds. To disable backtracking, set this value to ``0``.\n Valid for Cluster Type: Aurora MySQL DB clusters only\n Default: ``0`` \n Constraints:\n + If specified, this value must be set to a number from 0 to 259,200 (72 hours).", Computed: true, }, /*END ATTRIBUTE*/ // Property: BackupRetentionPeriod @@ -683,11 +683,11 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "default": "full-copy", - // "description": "The type of restore to be performed. You can specify one of the following values:\n + ``full-copy`` - The new DB cluster is restored as a full copy of the source DB cluster.\n + ``copy-on-write`` - The new DB cluster is restored as a clone of the source DB cluster.\n \n If you don't specify a ``RestoreType`` value, then the new DB cluster is restored as a full copy of the source DB cluster.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + // "description": "The type of restore to be performed. You can specify one of the following values:\n + ``full-copy`` - The new DB cluster is restored as a full copy of the source DB cluster.\n + ``copy-on-write`` - The new DB cluster is restored as a clone of the source DB cluster.\n \n If you don't specify a ``RestoreType`` value, then the new DB cluster is restored as a full copy of the source DB cluster.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", // "type": "string" // } "restore_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of restore to be performed. You can specify one of the following values:\n + ``full-copy`` - The new DB cluster is restored as a full copy of the source DB cluster.\n + ``copy-on-write`` - The new DB cluster is restored as a clone of the source DB cluster.\n \n If you don't specify a ``RestoreType`` value, then the new DB cluster is restored as a full copy of the source DB cluster.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + Description: "The type of restore to be performed. You can specify one of the following values:\n + ``full-copy`` - The new DB cluster is restored as a full copy of the source DB cluster.\n + ``copy-on-write`` - The new DB cluster is restored as a clone of the source DB cluster.\n \n If you don't specify a ``RestoreType`` value, then the new DB cluster is restored as a full copy of the source DB cluster.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", Computed: true, }, /*END ATTRIBUTE*/ // Property: ScalingConfiguration @@ -864,11 +864,11 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "An optional array of key-value pairs to apply to this DB cluster.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + // "description": "Tags to assign to the DB cluster.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", + // "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", // "properties": { // "Key": { // "description": "A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", @@ -907,7 +907,7 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "An optional array of key-value pairs to apply to this DB cluster.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + Description: "Tags to assign to the DB cluster.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", Computed: true, }, /*END ATTRIBUTE*/ // Property: UseLatestRestorableTime diff --git a/internal/aws/rds/db_instance_singular_data_source_gen.go b/internal/aws/rds/db_instance_singular_data_source_gen.go index 55e1d0076..7c1df14fe 100644 --- a/internal/aws/rds/db_instance_singular_data_source_gen.go +++ b/internal/aws/rds/db_instance_singular_data_source_gen.go @@ -117,11 +117,11 @@ func dBInstanceDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "", + // "description": "The AWS-Region associated with the automated backup.", // "type": "string" // } "automatic_backup_replication_region": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "The AWS-Region associated with the automated backup.", Computed: true, }, /*END ATTRIBUTE*/ // Property: AvailabilityZone @@ -243,11 +243,11 @@ func dBInstanceDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The identifier of the DB cluster that the instance will belong to.", + // "description": "The identifier of the DB cluster that this DB instance will belong to.\n This setting doesn't apply to RDS Custom DB instances.", // "type": "string" // } "db_cluster_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The identifier of the DB cluster that the instance will belong to.", + Description: "The identifier of the DB cluster that this DB instance will belong to.\n This setting doesn't apply to RDS Custom DB instances.", Computed: true, }, /*END ATTRIBUTE*/ // Property: DBClusterSnapshotIdentifier @@ -350,11 +350,11 @@ func dBInstanceDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC. \n If there's no DB subnet group, then the DB instance isn't a VPC DB instance.\n For more information about using Amazon RDS in a VPC, see [Using Amazon RDS with Amazon Virtual Private Cloud (VPC)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*. \n *Amazon Aurora* \n Not applicable. The DB subnet group is managed by the DB cluster. If specified, the setting must match the DB cluster setting.", + // "description": "A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC. \n If there's no DB subnet group, then the DB instance isn't a VPC DB instance.\n For more information about using Amazon RDS in a VPC, see [Amazon VPC and Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*. \n This setting doesn't apply to Amazon Aurora DB instances. The DB subnet group is managed by the DB cluster. If specified, the setting must match the DB cluster setting.", // "type": "string" // } "db_subnet_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC. \n If there's no DB subnet group, then the DB instance isn't a VPC DB instance.\n For more information about using Amazon RDS in a VPC, see [Using Amazon RDS with Amazon Virtual Private Cloud (VPC)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*. \n *Amazon Aurora* \n Not applicable. The DB subnet group is managed by the DB cluster. If specified, the setting must match the DB cluster setting.", + Description: "A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC. \n If there's no DB subnet group, then the DB instance isn't a VPC DB instance.\n For more information about using Amazon RDS in a VPC, see [Amazon VPC and Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*. \n This setting doesn't apply to Amazon Aurora DB instances. The DB subnet group is managed by the DB cluster. If specified, the setting must match the DB cluster setting.", Computed: true, }, /*END ATTRIBUTE*/ // Property: DBSystemId @@ -405,11 +405,11 @@ func dBInstanceDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. For more information, see [Deleting a DB Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html). \n *Amazon Aurora* \n Not applicable. You can enable or disable deletion protection for the DB cluster. For more information, see ``CreateDBCluster``. DB instances in a DB cluster can be deleted even when deletion protection is enabled for the DB cluster.", + // "description": "Specifies whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection isn't enabled. For more information, see [Deleting a DB Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html).\n This setting doesn't apply to Amazon Aurora DB instances. You can enable or disable deletion protection for the DB cluster. For more information, see ``CreateDBCluster``. DB instances in a DB cluster can be deleted even when deletion protection is enabled for the DB cluster.", // "type": "boolean" // } "deletion_protection": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. For more information, see [Deleting a DB Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html). \n *Amazon Aurora* \n Not applicable. You can enable or disable deletion protection for the DB cluster. For more information, see ``CreateDBCluster``. DB instances in a DB cluster can be deleted even when deletion protection is enabled for the DB cluster.", + Description: "Specifies whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection isn't enabled. For more information, see [Deleting a DB Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html).\n This setting doesn't apply to Amazon Aurora DB instances. You can enable or disable deletion protection for the DB cluster. For more information, see ``CreateDBCluster``. DB instances in a DB cluster can be deleted even when deletion protection is enabled for the DB cluster.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Domain @@ -688,14 +688,14 @@ func dBInstanceDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The master user name for the DB instance.\n If you specify the ``SourceDBInstanceIdentifier`` or ``DBSnapshotIdentifier`` property, don't specify this property. The value is inherited from the source DB instance or snapshot.\n When migrating a self-managed Db2 database, we recommend that you use the same master username as your self-managed Db2 instance name.\n *Amazon Aurora* \n Not applicable. The name for the master user is managed by the DB cluster. \n *RDS for Db2* \n Constraints:\n + Must be 1 to 16 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for MariaDB* \n Constraints:\n + Must be 1 to 16 letters or numbers.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for Microsoft SQL Server* \n Constraints:\n + Must be 1 to 128 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for MySQL* \n Constraints:\n + Must be 1 to 16 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for Oracle* \n Constraints:\n + Must be 1 to 30 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for PostgreSQL* \n Constraints:\n + Must be 1 to 63 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.", + // "description": "The master user name for the DB instance.\n If you specify the ``SourceDBInstanceIdentifier`` or ``DBSnapshotIdentifier`` property, don't specify this property. The value is inherited from the source DB instance or snapshot.\n When migrating a self-managed Db2 database, we recommend that you use the same master username as your self-managed Db2 instance name.\n *Amazon Aurora* \n Not applicable. The name for the master user is managed by the DB cluster. \n *RDS for Db2* \n Constraints:\n + Must be 1 to 16 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for MariaDB* \n Constraints:\n + Must be 1 to 16 letters or numbers.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for Microsoft SQL Server* \n Constraints:\n + Must be 1 to 128 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for MySQL* \n Constraints:\n + Must be 1 to 16 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for Oracle* \n Constraints:\n + Must be 1 to 30 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for PostgreSQL* \n Constraints:\n + Must be 1 to 63 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.", // "maxLength": 128, // "minLength": 1, // "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", // "type": "string" // } "master_username": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The master user name for the DB instance.\n If you specify the ``SourceDBInstanceIdentifier`` or ``DBSnapshotIdentifier`` property, don't specify this property. The value is inherited from the source DB instance or snapshot.\n When migrating a self-managed Db2 database, we recommend that you use the same master username as your self-managed Db2 instance name.\n *Amazon Aurora* \n Not applicable. The name for the master user is managed by the DB cluster. \n *RDS for Db2* \n Constraints:\n + Must be 1 to 16 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for MariaDB* \n Constraints:\n + Must be 1 to 16 letters or numbers.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for Microsoft SQL Server* \n Constraints:\n + Must be 1 to 128 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for MySQL* \n Constraints:\n + Must be 1 to 16 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for Oracle* \n Constraints:\n + Must be 1 to 30 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for PostgreSQL* \n Constraints:\n + Must be 1 to 63 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.", + Description: "The master user name for the DB instance.\n If you specify the ``SourceDBInstanceIdentifier`` or ``DBSnapshotIdentifier`` property, don't specify this property. The value is inherited from the source DB instance or snapshot.\n When migrating a self-managed Db2 database, we recommend that you use the same master username as your self-managed Db2 instance name.\n *Amazon Aurora* \n Not applicable. The name for the master user is managed by the DB cluster. \n *RDS for Db2* \n Constraints:\n + Must be 1 to 16 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for MariaDB* \n Constraints:\n + Must be 1 to 16 letters or numbers.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for Microsoft SQL Server* \n Constraints:\n + Must be 1 to 128 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for MySQL* \n Constraints:\n + Must be 1 to 16 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for Oracle* \n Constraints:\n + Must be 1 to 30 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.\n \n *RDS for PostgreSQL* \n Constraints:\n + Must be 1 to 63 letters or numbers.\n + First character must be a letter.\n + Can't be a reserved word for the chosen database engine.", Computed: true, }, /*END ATTRIBUTE*/ // Property: MaxAllocatedStorage @@ -714,11 +714,11 @@ func dBInstanceDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "default": 0, - // "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collection of Enhanced Monitoring metrics, specify 0. The default is 0.\n If ``MonitoringRoleArn`` is specified, then you must set ``MonitoringInterval`` to a value other than 0.\n This setting doesn't apply to RDS Custom.\n Valid Values: ``0, 1, 5, 10, 15, 30, 60``", + // "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collection of Enhanced Monitoring metrics, specify ``0``.\n If ``MonitoringRoleArn`` is specified, then you must set ``MonitoringInterval`` to a value other than ``0``.\n This setting doesn't apply to RDS Custom DB instances.\n Valid Values: ``0 | 1 | 5 | 10 | 15 | 30 | 60`` \n Default: ``0``", // "type": "integer" // } "monitoring_interval": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collection of Enhanced Monitoring metrics, specify 0. The default is 0.\n If ``MonitoringRoleArn`` is specified, then you must set ``MonitoringInterval`` to a value other than 0.\n This setting doesn't apply to RDS Custom.\n Valid Values: ``0, 1, 5, 10, 15, 30, 60``", + Description: "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collection of Enhanced Monitoring metrics, specify ``0``.\n If ``MonitoringRoleArn`` is specified, then you must set ``MonitoringInterval`` to a value other than ``0``.\n This setting doesn't apply to RDS Custom DB instances.\n Valid Values: ``0 | 1 | 5 | 10 | 15 | 30 | 60`` \n Default: ``0``", Computed: true, }, /*END ATTRIBUTE*/ // Property: MonitoringRoleArn @@ -736,11 +736,11 @@ func dBInstanceDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "Specifies whether the database instance is a Multi-AZ DB instance deployment. You can't set the ``AvailabilityZone`` parameter if the ``MultiAZ`` parameter is set to true. \n For more information, see [Multi-AZ deployments for high availability](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html) in the *Amazon RDS User Guide*.\n *Amazon Aurora* \n Not applicable. Amazon Aurora storage is replicated across all of the Availability Zones and doesn't require the ``MultiAZ`` option to be set.", + // "description": "Specifies whether the DB instance is a Multi-AZ deployment. You can't set the ``AvailabilityZone`` parameter if the DB instance is a Multi-AZ deployment.\n This setting doesn't apply to the following DB instances:\n + Amazon Aurora (DB instance Availability Zones (AZs) are managed by the DB cluster.)\n + RDS Custom", // "type": "boolean" // } "multi_az": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether the database instance is a Multi-AZ DB instance deployment. You can't set the ``AvailabilityZone`` parameter if the ``MultiAZ`` parameter is set to true. \n For more information, see [Multi-AZ deployments for high availability](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html) in the *Amazon RDS User Guide*.\n *Amazon Aurora* \n Not applicable. Amazon Aurora storage is replicated across all of the Availability Zones and doesn't require the ``MultiAZ`` option to be set.", + Description: "Specifies whether the DB instance is a Multi-AZ deployment. You can't set the ``AvailabilityZone`` parameter if the DB instance is a Multi-AZ deployment.\n This setting doesn't apply to the following DB instances:\n + Amazon Aurora (DB instance Availability Zones (AZs) are managed by the DB cluster.)\n + RDS Custom", Computed: true, }, /*END ATTRIBUTE*/ // Property: NcharCharacterSetName @@ -802,12 +802,12 @@ func dBInstanceDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The port number on which the database accepts connections.\n *Amazon Aurora* \n Not applicable. The port number is managed by the DB cluster.\n *Db2* \n Default value: ``50000``", + // "description": "The port number on which the database accepts connections.\n This setting doesn't apply to Aurora DB instances. The port number is managed by the cluster.\n Valid Values: ``1150-65535`` \n Default:\n + RDS for Db2 - ``50000`` \n + RDS for MariaDB - ``3306`` \n + RDS for Microsoft SQL Server - ``1433`` \n + RDS for MySQL - ``3306`` \n + RDS for Oracle - ``1521`` \n + RDS for PostgreSQL - ``5432`` \n \n Constraints:\n + For RDS for Microsoft SQL Server, the value can't be ``1234``, ``1434``, ``3260``, ``3343``, ``3389``, ``47001``, or ``49152-49156``.", // "pattern": "^\\d*$", // "type": "string" // } "port": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The port number on which the database accepts connections.\n *Amazon Aurora* \n Not applicable. The port number is managed by the DB cluster.\n *Db2* \n Default value: ``50000``", + Description: "The port number on which the database accepts connections.\n This setting doesn't apply to Aurora DB instances. The port number is managed by the cluster.\n Valid Values: ``1150-65535`` \n Default:\n + RDS for Db2 - ``50000`` \n + RDS for MariaDB - ``3306`` \n + RDS for Microsoft SQL Server - ``1433`` \n + RDS for MySQL - ``3306`` \n + RDS for Oracle - ``1521`` \n + RDS for PostgreSQL - ``5432`` \n \n Constraints:\n + For RDS for Microsoft SQL Server, the value can't be ``1234``, ``1434``, ``3260``, ``3343``, ``3389``, ``47001``, or ``49152-49156``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: PreferredBackupWindow @@ -1016,11 +1016,11 @@ func dBInstanceDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "An optional array of key-value pairs to apply to this DB instance.", + // "description": "Tags to assign to the DB instance.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", + // "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", // "properties": { // "Key": { // "description": "A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", @@ -1058,7 +1058,7 @@ func dBInstanceDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "An optional array of key-value pairs to apply to this DB instance.", + Description: "Tags to assign to the DB instance.", Computed: true, }, /*END ATTRIBUTE*/ // Property: TdeCredentialArn diff --git a/internal/aws/rds/db_parameter_group_singular_data_source_gen.go b/internal/aws/rds/db_parameter_group_singular_data_source_gen.go index 0bbbc11c7..265a4650d 100644 --- a/internal/aws/rds/db_parameter_group_singular_data_source_gen.go +++ b/internal/aws/rds/db_parameter_group_singular_data_source_gen.go @@ -50,34 +50,34 @@ func dBParameterGroupDataSource(ctx context.Context) (datasource.DataSource, err // CloudFormation resource type schema: // // { - // "description": "The DB parameter group family name. A DB parameter group can be associated with one and only one DB parameter group family, and can be applied only to a DB instance running a DB engine and engine version compatible with that DB parameter group family.\n The DB parameter group family can't be changed when updating a DB parameter group.\n To list all of the available parameter group families, use the following command:\n ``aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\"`` \n The output contains duplicates.\n For more information, see ``CreateDBParameterGroup``.", + // "description": "The DB parameter group family name. A DB parameter group can be associated with one and only one DB parameter group family, and can be applied only to a DB instance running a database engine and engine version compatible with that DB parameter group family.\n To list all of the available parameter group families for a DB engine, use the following command:\n ``aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\" --engine \u003cengine\u003e`` \n For example, to list all of the available parameter group families for the MySQL DB engine, use the following command:\n ``aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\" --engine mysql`` \n The output contains duplicates.\n The following are the valid DB engine values:\n + ``aurora-mysql`` \n + ``aurora-postgresql`` \n + ``db2-ae`` \n + ``db2-se`` \n + ``mysql`` \n + ``oracle-ee`` \n + ``oracle-ee-cdb`` \n + ``oracle-se2`` \n + ``oracle-se2-cdb`` \n + ``postgres`` \n + ``sqlserver-ee`` \n + ``sqlserver-se`` \n + ``sqlserver-ex`` \n + ``sqlserver-web``", // "type": "string" // } "family": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The DB parameter group family name. A DB parameter group can be associated with one and only one DB parameter group family, and can be applied only to a DB instance running a DB engine and engine version compatible with that DB parameter group family.\n The DB parameter group family can't be changed when updating a DB parameter group.\n To list all of the available parameter group families, use the following command:\n ``aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\"`` \n The output contains duplicates.\n For more information, see ``CreateDBParameterGroup``.", + Description: "The DB parameter group family name. A DB parameter group can be associated with one and only one DB parameter group family, and can be applied only to a DB instance running a database engine and engine version compatible with that DB parameter group family.\n To list all of the available parameter group families for a DB engine, use the following command:\n ``aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\" --engine `` \n For example, to list all of the available parameter group families for the MySQL DB engine, use the following command:\n ``aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\" --engine mysql`` \n The output contains duplicates.\n The following are the valid DB engine values:\n + ``aurora-mysql`` \n + ``aurora-postgresql`` \n + ``db2-ae`` \n + ``db2-se`` \n + ``mysql`` \n + ``oracle-ee`` \n + ``oracle-ee-cdb`` \n + ``oracle-se2`` \n + ``oracle-se2-cdb`` \n + ``postgres`` \n + ``sqlserver-ee`` \n + ``sqlserver-se`` \n + ``sqlserver-ex`` \n + ``sqlserver-web``", Computed: true, }, /*END ATTRIBUTE*/ // Property: Parameters // CloudFormation resource type schema: // // { - // "description": "An array of parameter names and values for the parameter update. At least one parameter name and value must be supplied. Subsequent arguments are optional.\n RDS for Db2 requires you to bring your own Db2 license. You must enter your IBM customer ID (``rds.ibm_customer_id``) and site number (``rds.ibm_site_id``) before starting a Db2 instance.\n For more information about DB parameters and DB parameter groups for Amazon RDS DB engines, see [Working with DB Parameter Groups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html) in the *Amazon RDS User Guide*.\n For more information about DB cluster and DB instance parameters and parameter groups for Amazon Aurora DB engines, see [Working with DB Parameter Groups and DB Cluster Parameter Groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*.\n AWS CloudFormation doesn't support specifying an apply method for each individual parameter. The default apply method for each parameter is used.", + // "description": "An array of parameter names and values for the parameter update. You must specify at least one parameter name and value.\n For more information about parameter groups, see [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html) in the *Amazon RDS User Guide*, or [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*.\n AWS CloudFormation doesn't support specifying an apply method for each individual parameter. The default apply method for each parameter is used.", // "type": "object" // } "parameters": schema.StringAttribute{ /*START ATTRIBUTE*/ CustomType: jsontypes.NormalizedType{}, - Description: "An array of parameter names and values for the parameter update. At least one parameter name and value must be supplied. Subsequent arguments are optional.\n RDS for Db2 requires you to bring your own Db2 license. You must enter your IBM customer ID (``rds.ibm_customer_id``) and site number (``rds.ibm_site_id``) before starting a Db2 instance.\n For more information about DB parameters and DB parameter groups for Amazon RDS DB engines, see [Working with DB Parameter Groups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html) in the *Amazon RDS User Guide*.\n For more information about DB cluster and DB instance parameters and parameter groups for Amazon Aurora DB engines, see [Working with DB Parameter Groups and DB Cluster Parameter Groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*.\n AWS CloudFormation doesn't support specifying an apply method for each individual parameter. The default apply method for each parameter is used.", + Description: "An array of parameter names and values for the parameter update. You must specify at least one parameter name and value.\n For more information about parameter groups, see [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html) in the *Amazon RDS User Guide*, or [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*.\n AWS CloudFormation doesn't support specifying an apply method for each individual parameter. The default apply method for each parameter is used.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // // { - // "description": "An optional array of key-value pairs to apply to this DB parameter group.\n Currently, this is the only property that supports drift detection.", + // "description": "Tags to assign to the DB parameter group.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", + // "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", // "properties": { // "Key": { // "description": "A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", @@ -116,7 +116,7 @@ func dBParameterGroupDataSource(ctx context.Context) (datasource.DataSource, err }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "An optional array of key-value pairs to apply to this DB parameter group.\n Currently, this is the only property that supports drift detection.", + Description: "Tags to assign to the DB parameter group.", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/rds/db_subnet_group_singular_data_source_gen.go b/internal/aws/rds/db_subnet_group_singular_data_source_gen.go index f97fc9184..6621487f0 100644 --- a/internal/aws/rds/db_subnet_group_singular_data_source_gen.go +++ b/internal/aws/rds/db_subnet_group_singular_data_source_gen.go @@ -38,11 +38,11 @@ func dBSubnetGroupDataSource(ctx context.Context) (datasource.DataSource, error) // CloudFormation resource type schema: // // { - // "description": "The name for the DB subnet group. This value is stored as a lowercase string.\n Constraints: Must contain no more than 255 lowercase alphanumeric characters or hyphens. Must not be \"Default\".\n Example: ``mysubnetgroup``", + // "description": "The name for the DB subnet group. This value is stored as a lowercase string.\n Constraints:\n + Must contain no more than 255 letters, numbers, periods, underscores, spaces, or hyphens.\n + Must not be default.\n + First character must be a letter.\n \n Example: ``mydbsubnetgroup``", // "type": "string" // } "db_subnet_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name for the DB subnet group. This value is stored as a lowercase string.\n Constraints: Must contain no more than 255 lowercase alphanumeric characters or hyphens. Must not be \"Default\".\n Example: ``mysubnetgroup``", + Description: "The name for the DB subnet group. This value is stored as a lowercase string.\n Constraints:\n + Must contain no more than 255 letters, numbers, periods, underscores, spaces, or hyphens.\n + Must not be default.\n + First character must be a letter.\n \n Example: ``mydbsubnetgroup``", Computed: true, }, /*END ATTRIBUTE*/ // Property: SubnetIds @@ -65,11 +65,11 @@ func dBSubnetGroupDataSource(ctx context.Context) (datasource.DataSource, error) // CloudFormation resource type schema: // // { - // "description": "An optional array of key-value pairs to apply to this DB subnet group.", + // "description": "Tags to assign to the DB subnet group.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", + // "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", // "properties": { // "Key": { // "description": "A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", @@ -108,7 +108,7 @@ func dBSubnetGroupDataSource(ctx context.Context) (datasource.DataSource, error) }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "An optional array of key-value pairs to apply to this DB subnet group.", + Description: "Tags to assign to the DB subnet group.", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/rds/event_subscription_singular_data_source_gen.go b/internal/aws/rds/event_subscription_singular_data_source_gen.go index 3557d1098..2aa150586 100644 --- a/internal/aws/rds/event_subscription_singular_data_source_gen.go +++ b/internal/aws/rds/event_subscription_singular_data_source_gen.go @@ -66,7 +66,7 @@ func eventSubscriptionDataSource(ctx context.Context) (datasource.DataSource, er // CloudFormation resource type schema: // // { - // "description": "The list of identifiers of the event sources for which events are returned. If not specified, then all sources are included in the response. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens. It can't end with a hyphen or contain two consecutive hyphens.\n Constraints:\n + If a ``SourceIds`` value is supplied, ``SourceType`` must also be provided.\n + If the source type is a DB instance, a ``DBInstanceIdentifier`` value must be supplied.\n + If the source type is a DB cluster, a ``DBClusterIdentifier`` value must be supplied.\n + If the source type is a DB parameter group, a ``DBParameterGroupName`` value must be supplied.\n + If the source type is a DB security group, a ``DBSecurityGroupName`` value must be supplied.\n + If the source type is a DB snapshot, a ``DBSnapshotIdentifier`` value must be supplied.\n + If the source type is a DB cluster snapshot, a ``DBClusterSnapshotIdentifier`` value must be supplied.", + // "description": "The list of identifiers of the event sources for which events are returned. If not specified, then all sources are included in the response. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens. It can't end with a hyphen or contain two consecutive hyphens.\n Constraints:\n + If ``SourceIds`` are supplied, ``SourceType`` must also be provided.\n + If the source type is a DB instance, a ``DBInstanceIdentifier`` value must be supplied.\n + If the source type is a DB cluster, a ``DBClusterIdentifier`` value must be supplied.\n + If the source type is a DB parameter group, a ``DBParameterGroupName`` value must be supplied.\n + If the source type is a DB security group, a ``DBSecurityGroupName`` value must be supplied.\n + If the source type is a DB snapshot, a ``DBSnapshotIdentifier`` value must be supplied.\n + If the source type is a DB cluster snapshot, a ``DBClusterSnapshotIdentifier`` value must be supplied.\n + If the source type is an RDS Proxy, a ``DBProxyName`` value must be supplied.", // "insertionOrder": false, // "items": { // "type": "string" @@ -76,18 +76,18 @@ func eventSubscriptionDataSource(ctx context.Context) (datasource.DataSource, er // } "source_ids": schema.SetAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "The list of identifiers of the event sources for which events are returned. If not specified, then all sources are included in the response. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens. It can't end with a hyphen or contain two consecutive hyphens.\n Constraints:\n + If a ``SourceIds`` value is supplied, ``SourceType`` must also be provided.\n + If the source type is a DB instance, a ``DBInstanceIdentifier`` value must be supplied.\n + If the source type is a DB cluster, a ``DBClusterIdentifier`` value must be supplied.\n + If the source type is a DB parameter group, a ``DBParameterGroupName`` value must be supplied.\n + If the source type is a DB security group, a ``DBSecurityGroupName`` value must be supplied.\n + If the source type is a DB snapshot, a ``DBSnapshotIdentifier`` value must be supplied.\n + If the source type is a DB cluster snapshot, a ``DBClusterSnapshotIdentifier`` value must be supplied.", + Description: "The list of identifiers of the event sources for which events are returned. If not specified, then all sources are included in the response. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens. It can't end with a hyphen or contain two consecutive hyphens.\n Constraints:\n + If ``SourceIds`` are supplied, ``SourceType`` must also be provided.\n + If the source type is a DB instance, a ``DBInstanceIdentifier`` value must be supplied.\n + If the source type is a DB cluster, a ``DBClusterIdentifier`` value must be supplied.\n + If the source type is a DB parameter group, a ``DBParameterGroupName`` value must be supplied.\n + If the source type is a DB security group, a ``DBSecurityGroupName`` value must be supplied.\n + If the source type is a DB snapshot, a ``DBSnapshotIdentifier`` value must be supplied.\n + If the source type is a DB cluster snapshot, a ``DBClusterSnapshotIdentifier`` value must be supplied.\n + If the source type is an RDS Proxy, a ``DBProxyName`` value must be supplied.", Computed: true, }, /*END ATTRIBUTE*/ // Property: SourceType // CloudFormation resource type schema: // // { - // "description": "The type of source that is generating the events. For example, if you want to be notified of events generated by a DB instance, set this parameter to ``db-instance``. If this value isn't specified, all events are returned.\n Valid values: ``db-instance`` | ``db-cluster`` | ``db-parameter-group`` | ``db-security-group`` | ``db-snapshot`` | ``db-cluster-snapshot``", + // "description": "The type of source that is generating the events. For example, if you want to be notified of events generated by a DB instance, you set this parameter to ``db-instance``. For RDS Proxy events, specify ``db-proxy``. If this value isn't specified, all events are returned.\n Valid Values:``db-instance | db-cluster | db-parameter-group | db-security-group | db-snapshot | db-cluster-snapshot | db-proxy | zero-etl | custom-engine-version | blue-green-deployment``", // "type": "string" // } "source_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of source that is generating the events. For example, if you want to be notified of events generated by a DB instance, set this parameter to ``db-instance``. If this value isn't specified, all events are returned.\n Valid values: ``db-instance`` | ``db-cluster`` | ``db-parameter-group`` | ``db-security-group`` | ``db-snapshot`` | ``db-cluster-snapshot``", + Description: "The type of source that is generating the events. For example, if you want to be notified of events generated by a DB instance, you set this parameter to ``db-instance``. For RDS Proxy events, specify ``db-proxy``. If this value isn't specified, all events are returned.\n Valid Values:``db-instance | db-cluster | db-parameter-group | db-security-group | db-snapshot | db-cluster-snapshot | db-proxy | zero-etl | custom-engine-version | blue-green-deployment``", Computed: true, }, /*END ATTRIBUTE*/ // Property: SubscriptionName @@ -110,7 +110,7 @@ func eventSubscriptionDataSource(ctx context.Context) (datasource.DataSource, er // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", + // "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", // "properties": { // "Key": { // "description": "A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", diff --git a/internal/aws/rds/option_group_singular_data_source_gen.go b/internal/aws/rds/option_group_singular_data_source_gen.go index cf27d19fa..6e84af5e2 100644 --- a/internal/aws/rds/option_group_singular_data_source_gen.go +++ b/internal/aws/rds/option_group_singular_data_source_gen.go @@ -50,14 +50,14 @@ func optionGroupDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "arrayType": "AttributeList", - // "description": "A list of options and the settings for each option.", + // "description": "A list of all available options for an option group.", // "insertionOrder": false, // "items": { // "additionalProperties": false, // "description": "The ``OptionConfiguration`` property type specifies an individual option, and its settings, within an ``AWS::RDS::OptionGroup`` resource.", // "properties": { // "DBSecurityGroupMemberships": { - // "description": "A list of DBSecurityGroupMembership name strings used for this option.", + // "description": "A list of DB security groups used for this option.", // "insertionOrder": false, // "items": { // "type": "string" @@ -98,7 +98,7 @@ func optionGroupDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "integer" // }, // "VpcSecurityGroupMemberships": { - // "description": "A list of VpcSecurityGroupMembership name strings used for this option.", + // "description": "A list of VPC security group names used for this option.", // "insertionOrder": false, // "items": { // "type": "string" @@ -120,7 +120,7 @@ func optionGroupDataSource(ctx context.Context) (datasource.DataSource, error) { // Property: DBSecurityGroupMemberships "db_security_group_memberships": schema.SetAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "A list of DBSecurityGroupMembership name strings used for this option.", + Description: "A list of DB security groups used for this option.", Computed: true, }, /*END ATTRIBUTE*/ // Property: OptionName @@ -160,12 +160,12 @@ func optionGroupDataSource(ctx context.Context) (datasource.DataSource, error) { // Property: VpcSecurityGroupMemberships "vpc_security_group_memberships": schema.SetAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "A list of VpcSecurityGroupMembership name strings used for this option.", + Description: "A list of VPC security group names used for this option.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "A list of options and the settings for each option.", + Description: "A list of all available options for an option group.", Computed: true, }, /*END ATTRIBUTE*/ // Property: OptionGroupDescription @@ -194,11 +194,11 @@ func optionGroupDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "An optional array of key-value pairs to apply to this option group.", + // "description": "Tags to assign to the option group.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", + // "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", // "properties": { // "Key": { // "description": "A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", @@ -235,7 +235,7 @@ func optionGroupDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "An optional array of key-value pairs to apply to this option group.", + Description: "Tags to assign to the option group.", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/redshift/cluster_singular_data_source_gen.go b/internal/aws/redshift/cluster_singular_data_source_gen.go index 455747401..d8940ed2c 100644 --- a/internal/aws/redshift/cluster_singular_data_source_gen.go +++ b/internal/aws/redshift/cluster_singular_data_source_gen.go @@ -399,6 +399,17 @@ func clusterDataSource(ctx context.Context) (datasource.DataSource, error) { // }, // "type": "string" // }, + // "LogDestinationType": { + // "type": "string" + // }, + // "LogExports": { + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "maxItems": 3, + // "type": "array" + // }, // "S3KeyPrefix": { // "type": "string" // } @@ -411,6 +422,15 @@ func clusterDataSource(ctx context.Context) (datasource.DataSource, error) { "bucket_name": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: LogDestinationType + "log_destination_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LogExports + "log_exports": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ // Property: S3KeyPrefix "s3_key_prefix": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, @@ -797,6 +817,8 @@ func clusterDataSource(ctx context.Context) (datasource.DataSource, error) { "iam_roles": "IamRoles", "key": "Key", "kms_key_id": "KmsKeyId", + "log_destination_type": "LogDestinationType", + "log_exports": "LogExports", "logging_properties": "LoggingProperties", "maintenance_track_name": "MaintenanceTrackName", "manage_master_password": "ManageMasterPassword", diff --git a/internal/aws/rolesanywhere/profile_singular_data_source_gen.go b/internal/aws/rolesanywhere/profile_singular_data_source_gen.go index 49986cc2d..7e08adc62 100644 --- a/internal/aws/rolesanywhere/profile_singular_data_source_gen.go +++ b/internal/aws/rolesanywhere/profile_singular_data_source_gen.go @@ -23,6 +23,15 @@ func init() { // This Terraform data source corresponds to the CloudFormation AWS::RolesAnywhere::Profile resource. func profileDataSource(ctx context.Context) (datasource.DataSource, error) { attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AcceptRoleSessionName + // CloudFormation resource type schema: + // + // { + // "type": "boolean" + // } + "accept_role_session_name": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: AttributeMappings // CloudFormation resource type schema: // @@ -239,6 +248,7 @@ func profileDataSource(ctx context.Context) (datasource.DataSource, error) { opts = opts.WithCloudFormationTypeName("AWS::RolesAnywhere::Profile").WithTerraformTypeName("awscc_rolesanywhere_profile") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ + "accept_role_session_name": "AcceptRoleSessionName", "attribute_mappings": "AttributeMappings", "certificate_field": "CertificateField", "duration_seconds": "DurationSeconds", diff --git a/internal/aws/route53resolver/resolver_rule_singular_data_source_gen.go b/internal/aws/route53resolver/resolver_rule_singular_data_source_gen.go index 46a20fcfb..13b7f2ba8 100644 --- a/internal/aws/route53resolver/resolver_rule_singular_data_source_gen.go +++ b/internal/aws/route53resolver/resolver_rule_singular_data_source_gen.go @@ -33,6 +33,19 @@ func resolverRuleDataSource(ctx context.Context) (datasource.DataSource, error) Description: "The Amazon Resource Name (ARN) of the resolver rule.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: DelegationRecord + // CloudFormation resource type schema: + // + // { + // "description": "The name server domain for queries to be delegated to if a query matches the delegation record.", + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + "delegation_record": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name server domain for queries to be delegated to if a query matches the delegation record.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: DomainName // CloudFormation resource type schema: // @@ -91,7 +104,8 @@ func resolverRuleDataSource(ctx context.Context) (datasource.DataSource, error) // "enum": [ // "FORWARD", // "SYSTEM", - // "RECURSIVE" + // "RECURSIVE", + // "DELEGATE" // ], // "type": "string" // } @@ -231,6 +245,7 @@ func resolverRuleDataSource(ctx context.Context) (datasource.DataSource, error) opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ "arn": "Arn", + "delegation_record": "DelegationRecord", "domain_name": "DomainName", "ip": "Ip", "ipv_6": "Ipv6", diff --git a/internal/aws/sagemaker/model_package_singular_data_source_gen.go b/internal/aws/sagemaker/model_package_singular_data_source_gen.go index fd663fc65..b9c58f978 100644 --- a/internal/aws/sagemaker/model_package_singular_data_source_gen.go +++ b/internal/aws/sagemaker/model_package_singular_data_source_gen.go @@ -85,6 +85,61 @@ func modelPackageDataSource(ctx context.Context) (datasource.DataSource, error) // "pattern": "^[Ss][Hh][Aa]256:[0-9a-fA-F]{64}$", // "type": "string" // }, + // "ModelDataSource": { + // "additionalProperties": false, + // "description": "Specifies the location of ML model data to deploy during endpoint creation.", + // "properties": { + // "S3DataSource": { + // "additionalProperties": false, + // "description": "Specifies the S3 location of ML model data to deploy.", + // "properties": { + // "CompressionType": { + // "description": "Specifies how the ML model data is prepared.", + // "enum": [ + // "None", + // "Gzip" + // ], + // "type": "string" + // }, + // "ModelAccessConfig": { + // "additionalProperties": false, + // "description": "Specifies the access configuration file for the ML model.", + // "properties": { + // "AcceptEula": { + // "description": "Specifies agreement to the model end-user license agreement (EULA).", + // "type": "boolean" + // } + // }, + // "required": [ + // "AcceptEula" + // ], + // "type": "object" + // }, + // "S3DataType": { + // "description": "Specifies the type of ML model data to deploy.", + // "enum": [ + // "S3Prefix", + // "S3Object" + // ], + // "type": "string" + // }, + // "S3Uri": { + // "description": "Specifies the S3 path of ML model data to deploy.", + // "maxLength": 1024, + // "pattern": "^(https|s3)://([^/]+)/?(.*)$", + // "type": "string" + // } + // }, + // "required": [ + // "S3DataType", + // "S3Uri", + // "CompressionType" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, // "ModelDataUrl": { // "description": "A structure with Model Input details.", // "maxLength": 1024, @@ -226,6 +281,47 @@ func modelPackageDataSource(ctx context.Context) (datasource.DataSource, error) Description: "An MD5 hash of the training algorithm that identifies the Docker image used for training.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: ModelDataSource + "model_data_source": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: S3DataSource + "s3_data_source": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CompressionType + "compression_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies how the ML model data is prepared.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ModelAccessConfig + "model_access_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AcceptEula + "accept_eula": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies agreement to the model end-user license agreement (EULA).", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the access configuration file for the ML model.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: S3DataType + "s3_data_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies the type of ML model data to deploy.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: S3Uri + "s3_uri": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies the S3 path of ML model data to deploy.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the S3 location of ML model data to deploy.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the location of ML model data to deploy during endpoint creation.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: ModelDataUrl "model_data_url": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "A structure with Model Input details.", @@ -353,6 +449,61 @@ func modelPackageDataSource(ctx context.Context) (datasource.DataSource, error) // "pattern": "^[Ss][Hh][Aa]256:[0-9a-fA-F]{64}$", // "type": "string" // }, + // "ModelDataSource": { + // "additionalProperties": false, + // "description": "Specifies the location of ML model data to deploy during endpoint creation.", + // "properties": { + // "S3DataSource": { + // "additionalProperties": false, + // "description": "Specifies the S3 location of ML model data to deploy.", + // "properties": { + // "CompressionType": { + // "description": "Specifies how the ML model data is prepared.", + // "enum": [ + // "None", + // "Gzip" + // ], + // "type": "string" + // }, + // "ModelAccessConfig": { + // "additionalProperties": false, + // "description": "Specifies the access configuration file for the ML model.", + // "properties": { + // "AcceptEula": { + // "description": "Specifies agreement to the model end-user license agreement (EULA).", + // "type": "boolean" + // } + // }, + // "required": [ + // "AcceptEula" + // ], + // "type": "object" + // }, + // "S3DataType": { + // "description": "Specifies the type of ML model data to deploy.", + // "enum": [ + // "S3Prefix", + // "S3Object" + // ], + // "type": "string" + // }, + // "S3Uri": { + // "description": "Specifies the S3 path of ML model data to deploy.", + // "maxLength": 1024, + // "pattern": "^(https|s3)://([^/]+)/?(.*)$", + // "type": "string" + // } + // }, + // "required": [ + // "S3DataType", + // "S3Uri", + // "CompressionType" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, // "ModelDataUrl": { // "description": "A structure with Model Input details.", // "maxLength": 1024, @@ -494,6 +645,47 @@ func modelPackageDataSource(ctx context.Context) (datasource.DataSource, error) Description: "An MD5 hash of the training algorithm that identifies the Docker image used for training.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: ModelDataSource + "model_data_source": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: S3DataSource + "s3_data_source": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CompressionType + "compression_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies how the ML model data is prepared.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ModelAccessConfig + "model_access_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AcceptEula + "accept_eula": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies agreement to the model end-user license agreement (EULA).", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the access configuration file for the ML model.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: S3DataType + "s3_data_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies the type of ML model data to deploy.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: S3Uri + "s3_uri": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies the S3 path of ML model data to deploy.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the S3 location of ML model data to deploy.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the location of ML model data to deploy during endpoint creation.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: ModelDataUrl "model_data_url": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "A structure with Model Input details.", @@ -1234,6 +1426,61 @@ func modelPackageDataSource(ctx context.Context) (datasource.DataSource, error) // "pattern": "^[Ss][Hh][Aa]256:[0-9a-fA-F]{64}$", // "type": "string" // }, + // "ModelDataSource": { + // "additionalProperties": false, + // "description": "Specifies the location of ML model data to deploy during endpoint creation.", + // "properties": { + // "S3DataSource": { + // "additionalProperties": false, + // "description": "Specifies the S3 location of ML model data to deploy.", + // "properties": { + // "CompressionType": { + // "description": "Specifies how the ML model data is prepared.", + // "enum": [ + // "None", + // "Gzip" + // ], + // "type": "string" + // }, + // "ModelAccessConfig": { + // "additionalProperties": false, + // "description": "Specifies the access configuration file for the ML model.", + // "properties": { + // "AcceptEula": { + // "description": "Specifies agreement to the model end-user license agreement (EULA).", + // "type": "boolean" + // } + // }, + // "required": [ + // "AcceptEula" + // ], + // "type": "object" + // }, + // "S3DataType": { + // "description": "Specifies the type of ML model data to deploy.", + // "enum": [ + // "S3Prefix", + // "S3Object" + // ], + // "type": "string" + // }, + // "S3Uri": { + // "description": "Specifies the S3 path of ML model data to deploy.", + // "maxLength": 1024, + // "pattern": "^(https|s3)://([^/]+)/?(.*)$", + // "type": "string" + // } + // }, + // "required": [ + // "S3DataType", + // "S3Uri", + // "CompressionType" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, // "ModelDataUrl": { // "description": "A structure with Model Input details.", // "maxLength": 1024, @@ -1359,6 +1606,47 @@ func modelPackageDataSource(ctx context.Context) (datasource.DataSource, error) Description: "An MD5 hash of the training algorithm that identifies the Docker image used for training.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: ModelDataSource + "model_data_source": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: S3DataSource + "s3_data_source": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CompressionType + "compression_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies how the ML model data is prepared.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ModelAccessConfig + "model_access_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AcceptEula + "accept_eula": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies agreement to the model end-user license agreement (EULA).", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the access configuration file for the ML model.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: S3DataType + "s3_data_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies the type of ML model data to deploy.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: S3Uri + "s3_uri": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies the S3 path of ML model data to deploy.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the S3 location of ML model data to deploy.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the location of ML model data to deploy during endpoint creation.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: ModelDataUrl "model_data_url": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "A structure with Model Input details.", @@ -1500,6 +1788,53 @@ func modelPackageDataSource(ctx context.Context) (datasource.DataSource, error) Description: "The approval status of the model package.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: ModelCard + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The model card associated with the model package.", + // "properties": { + // "ModelCardContent": { + // "description": "The content of the model card.", + // "maxLength": 100000, + // "minLength": 0, + // "pattern": ".*", + // "type": "string" + // }, + // "ModelCardStatus": { + // "description": "The approval status of the model card within your organization.", + // "enum": [ + // "Draft", + // "PendingReview", + // "Approved", + // "Archived" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "ModelCardContent", + // "ModelCardStatus" + // ], + // "type": "object" + // } + "model_card": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ModelCardContent + "model_card_content": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The content of the model card.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ModelCardStatus + "model_card_status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The approval status of the model card within your organization.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The model card associated with the model package.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: ModelMetrics // CloudFormation resource type schema: // @@ -2150,6 +2485,36 @@ func modelPackageDataSource(ctx context.Context) (datasource.DataSource, error) Description: "The Amazon Simple Storage Service (Amazon S3) path where the sample payload are stored pointing to single gzip compressed tar archive.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: SecurityConfig + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "An optional AWS Key Management Service key to encrypt, decrypt, and re-encrypt model package information for regulated workloads with highly sensitive data.", + // "properties": { + // "KmsKeyId": { + // "description": "The AWS KMS Key ID (KMSKeyId) used for encryption of model package information.", + // "maxLength": 2048, + // "pattern": "^[a-zA-Z0-9:/_-]*$", + // "type": "string" + // } + // }, + // "required": [ + // "KmsKeyId" + // ], + // "type": "object" + // } + "security_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: KmsKeyId + "kms_key_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The AWS KMS Key ID (KMSKeyId) used for encryption of model package information.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "An optional AWS Key Management Service key to encrypt, decrypt, and re-encrypt model package information for regulated workloads with highly sensitive data.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: SkipModelValidation // CloudFormation resource type schema: // @@ -2234,6 +2599,20 @@ func modelPackageDataSource(ctx context.Context) (datasource.DataSource, error) Description: "Details about the algorithm that was used to create the model package.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: SourceUri + // CloudFormation resource type schema: + // + // { + // "description": "The URI of the source for the model package.", + // "maxLength": 1024, + // "minLength": 0, + // "pattern": "", + // "type": "string" + // } + "source_uri": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The URI of the source for the model package.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // @@ -2685,6 +3064,7 @@ func modelPackageDataSource(ctx context.Context) (datasource.DataSource, error) opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ "accept": "Accept", + "accept_eula": "AcceptEula", "additional_inference_specifications": "AdditionalInferenceSpecifications", "additional_inference_specifications_to_add": "AdditionalInferenceSpecificationsToAdd", "algorithm_name": "AlgorithmName", @@ -2726,8 +3106,13 @@ func modelPackageDataSource(ctx context.Context) (datasource.DataSource, error) "max_concurrent_transforms": "MaxConcurrentTransforms", "max_payload_in_mb": "MaxPayloadInMB", "metadata_properties": "MetadataProperties", + "model_access_config": "ModelAccessConfig", "model_approval_status": "ModelApprovalStatus", + "model_card": "ModelCard", + "model_card_content": "ModelCardContent", + "model_card_status": "ModelCardStatus", "model_data_quality": "ModelDataQuality", + "model_data_source": "ModelDataSource", "model_data_url": "ModelDataUrl", "model_input": "ModelInput", "model_metrics": "ModelMetrics", @@ -2754,9 +3139,11 @@ func modelPackageDataSource(ctx context.Context) (datasource.DataSource, error) "s3_output_path": "S3OutputPath", "s3_uri": "S3Uri", "sample_payload_url": "SamplePayloadUrl", + "security_config": "SecurityConfig", "skip_model_validation": "SkipModelValidation", "source_algorithm_specification": "SourceAlgorithmSpecification", "source_algorithms": "SourceAlgorithms", + "source_uri": "SourceUri", "split_type": "SplitType", "statistics": "Statistics", "status": "Status", diff --git a/internal/aws/ses/configuration_set_singular_data_source_gen.go b/internal/aws/ses/configuration_set_singular_data_source_gen.go index f8ae18316..a190c4d7e 100644 --- a/internal/aws/ses/configuration_set_singular_data_source_gen.go +++ b/internal/aws/ses/configuration_set_singular_data_source_gen.go @@ -165,9 +165,6 @@ func configurationSetDataSource(ctx context.Context) (datasource.DataSource, err // "type": "string" // } // }, - // "required": [ - // "CustomRedirectDomain" - // ], // "type": "object" // } "tracking_options": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ From b3818e598558bade7c71d75e3ddc996d7e34b312 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 8 Aug 2024 13:37:58 -0400 Subject: [PATCH 75/89] Run 'make docs'. --- docs/data-sources/codepipeline_pipeline.md | 142 ++++++++++++++++++ docs/data-sources/ec2_subnet.md | 3 +- .../ec2_transit_gateway_attachment.md | 1 - ..._transit_gateway_multicast_group_member.md | 1 - ..._transit_gateway_multicast_group_source.md | 1 - docs/data-sources/ecs_cluster.md | 8 +- .../kinesisfirehose_delivery_stream.md | 1 + docs/data-sources/kms_key.md | 27 ++-- docs/data-sources/lambda_function.md | 1 + .../data-sources/logs_delivery_destination.md | 2 +- .../networkmanager_connect_attachment.md | 21 +++ .../networkmanager_core_network.md | 20 +++ ...workmanager_site_to_site_vpn_attachment.md | 21 +++ ..._transit_gateway_route_table_attachment.md | 21 +++ .../networkmanager_vpc_attachment.md | 21 +++ docs/data-sources/osis_pipeline.md | 19 +++ docs/data-sources/rds_db_cluster.md | 14 +- .../rds_db_cluster_parameter_group.md | 30 ++-- docs/data-sources/rds_db_instance.md | 60 ++++---- docs/data-sources/rds_db_parameter_group.md | 36 +++-- docs/data-sources/rds_db_subnet_group.md | 10 +- docs/data-sources/rds_event_subscription.md | 7 +- docs/data-sources/rds_option_group.md | 8 +- docs/data-sources/redshift_cluster.md | 2 + docs/data-sources/rolesanywhere_profile.md | 1 + .../route53resolver_resolver_rule.md | 1 + docs/data-sources/sagemaker_model_package.md | 104 +++++++++++++ docs/resources/codepipeline_pipeline.md | 142 ++++++++++++++++++ docs/resources/deadline_fleet.md | 2 +- docs/resources/deadline_queue.md | 2 +- docs/resources/deadline_storage_profile.md | 2 +- docs/resources/ec2_subnet.md | 3 +- .../ec2_transit_gateway_attachment.md | 1 - ..._transit_gateway_multicast_group_member.md | 1 - ..._transit_gateway_multicast_group_source.md | 1 - docs/resources/ecs_cluster.md | 8 +- .../kinesisfirehose_delivery_stream.md | 4 + docs/resources/kms_key.md | 27 ++-- docs/resources/lambda_function.md | 1 + docs/resources/logs_delivery_destination.md | 2 +- docs/resources/medialive_multiplexprogram.md | 2 +- .../networkmanager_connect_attachment.md | 21 +++ docs/resources/networkmanager_core_network.md | 20 +++ ...workmanager_site_to_site_vpn_attachment.md | 21 +++ ..._transit_gateway_route_table_attachment.md | 21 +++ .../networkmanager_vpc_attachment.md | 21 +++ docs/resources/osis_pipeline.md | 19 +++ docs/resources/rds_db_cluster.md | 20 ++- .../rds_db_cluster_parameter_group.md | 34 +++-- docs/resources/rds_db_instance.md | 62 ++++---- docs/resources/rds_db_parameter_group.md | 36 +++-- docs/resources/rds_db_subnet_group.md | 10 +- docs/resources/rds_event_subscription.md | 7 +- docs/resources/rds_option_group.md | 8 +- docs/resources/redshift_cluster.md | 2 + docs/resources/rolesanywhere_profile.md | 1 + .../route53resolver_resolver_rule.md | 3 +- docs/resources/sagemaker_model_package.md | 113 ++++++++++++++ docs/resources/ses_configuration_set.md | 2 +- 59 files changed, 1018 insertions(+), 184 deletions(-) diff --git a/docs/data-sources/codepipeline_pipeline.md b/docs/data-sources/codepipeline_pipeline.md index abd73ae45..3b6586794 100644 --- a/docs/data-sources/codepipeline_pipeline.md +++ b/docs/data-sources/codepipeline_pipeline.md @@ -97,9 +97,11 @@ Read-Only: Read-Only: - `actions` (Attributes List) (see [below for nested schema](#nestedatt--stages--actions)) +- `before_entry` (Attributes) The method to use before stage runs. (see [below for nested schema](#nestedatt--stages--before_entry)) - `blockers` (Attributes List) (see [below for nested schema](#nestedatt--stages--blockers)) - `name` (String) The name of the stage. - `on_failure` (Attributes) The method to use when a stage has not completed successfully (see [below for nested schema](#nestedatt--stages--on_failure)) +- `on_success` (Attributes) The method to use when a stage has completed successfully (see [below for nested schema](#nestedatt--stages--on_success)) ### Nested Schema for `stages.actions` @@ -145,6 +147,55 @@ Read-Only: + +### Nested Schema for `stages.before_entry` + +Read-Only: + +- `conditions` (Attributes List) (see [below for nested schema](#nestedatt--stages--before_entry--conditions)) + + +### Nested Schema for `stages.before_entry.conditions` + +Read-Only: + +- `result` (String) The specified result for when the failure conditions are met, such as rolling back the stage +- `rules` (Attributes List) (see [below for nested schema](#nestedatt--stages--before_entry--conditions--rules)) + + +### Nested Schema for `stages.before_entry.conditions.rules` + +Read-Only: + +- `configuration` (String) The rule's configuration. These are key-value pairs that specify input values for a rule. +- `input_artifacts` (Attributes List) (see [below for nested schema](#nestedatt--stages--before_entry--conditions--rules--input_artifacts)) +- `name` (String) The rule declaration's name. +- `region` (String) The rule declaration's AWS Region, such as us-east-1. +- `role_arn` (String) The ARN of the IAM service role that performs the declared rule. This is assumed through the roleArn for the pipeline. +- `rule_type_id` (Attributes) Represents information about a rule type. (see [below for nested schema](#nestedatt--stages--before_entry--conditions--rules--rule_type_id)) + + +### Nested Schema for `stages.before_entry.conditions.rules.input_artifacts` + +Read-Only: + +- `name` (String) The name of the artifact to be worked on (for example, "My App"). + + + +### Nested Schema for `stages.before_entry.conditions.rules.rule_type_id` + +Read-Only: + +- `category` (String) A category for the provider type for the rule. +- `owner` (String) The creator of the rule being called. Only AWS is supported. +- `provider` (String) The provider of the service being called by the rule. +- `version` (String) A string that describes the rule version. + + + + + ### Nested Schema for `stages.blockers` @@ -159,7 +210,98 @@ Read-Only: Read-Only: +- `conditions` (Attributes List) (see [below for nested schema](#nestedatt--stages--on_failure--conditions)) +- `result` (String) The specified result for when the failure conditions are met, such as rolling back the stage + + +### Nested Schema for `stages.on_failure.conditions` + +Read-Only: + +- `result` (String) The specified result for when the failure conditions are met, such as rolling back the stage +- `rules` (Attributes List) (see [below for nested schema](#nestedatt--stages--on_failure--conditions--rules)) + + +### Nested Schema for `stages.on_failure.conditions.rules` + +Read-Only: + +- `configuration` (String) The rule's configuration. These are key-value pairs that specify input values for a rule. +- `input_artifacts` (Attributes List) (see [below for nested schema](#nestedatt--stages--on_failure--conditions--rules--input_artifacts)) +- `name` (String) The rule declaration's name. +- `region` (String) The rule declaration's AWS Region, such as us-east-1. +- `role_arn` (String) The ARN of the IAM service role that performs the declared rule. This is assumed through the roleArn for the pipeline. +- `rule_type_id` (Attributes) Represents information about a rule type. (see [below for nested schema](#nestedatt--stages--on_failure--conditions--rules--rule_type_id)) + + +### Nested Schema for `stages.on_failure.conditions.rules.input_artifacts` + +Read-Only: + +- `name` (String) The name of the artifact to be worked on (for example, "My App"). + + + +### Nested Schema for `stages.on_failure.conditions.rules.rule_type_id` + +Read-Only: + +- `category` (String) A category for the provider type for the rule. +- `owner` (String) The creator of the rule being called. Only AWS is supported. +- `provider` (String) The provider of the service being called by the rule. +- `version` (String) A string that describes the rule version. + + + + + + +### Nested Schema for `stages.on_success` + +Read-Only: + +- `conditions` (Attributes List) (see [below for nested schema](#nestedatt--stages--on_success--conditions)) + + +### Nested Schema for `stages.on_success.conditions` + +Read-Only: + - `result` (String) The specified result for when the failure conditions are met, such as rolling back the stage +- `rules` (Attributes List) (see [below for nested schema](#nestedatt--stages--on_success--conditions--rules)) + + +### Nested Schema for `stages.on_success.conditions.rules` + +Read-Only: + +- `configuration` (String) The rule's configuration. These are key-value pairs that specify input values for a rule. +- `input_artifacts` (Attributes List) (see [below for nested schema](#nestedatt--stages--on_success--conditions--rules--input_artifacts)) +- `name` (String) The rule declaration's name. +- `region` (String) The rule declaration's AWS Region, such as us-east-1. +- `role_arn` (String) The ARN of the IAM service role that performs the declared rule. This is assumed through the roleArn for the pipeline. +- `rule_type_id` (Attributes) Represents information about a rule type. (see [below for nested schema](#nestedatt--stages--on_success--conditions--rules--rule_type_id)) + + +### Nested Schema for `stages.on_success.conditions.rules.input_artifacts` + +Read-Only: + +- `name` (String) The name of the artifact to be worked on (for example, "My App"). + + + +### Nested Schema for `stages.on_success.conditions.rules.rule_type_id` + +Read-Only: + +- `category` (String) A category for the provider type for the rule. +- `owner` (String) The creator of the rule being called. Only AWS is supported. +- `provider` (String) The provider of the service being called by the rule. +- `version` (String) A string that describes the rule version. + + + diff --git a/docs/data-sources/ec2_subnet.md b/docs/data-sources/ec2_subnet.md index 10b34d317..2721a3d3c 100644 --- a/docs/data-sources/ec2_subnet.md +++ b/docs/data-sources/ec2_subnet.md @@ -28,7 +28,8 @@ Data Source schema for AWS::EC2::Subnet - `availability_zone_id` (String) The AZ ID of the subnet. - `cidr_block` (String) The IPv4 CIDR block assigned to the subnet. If you update this property, we create a new subnet, and then delete the existing one. -- `enable_dns_64` (Boolean) Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. For more information, see [DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-nat64-dns64) in the *User Guide*. +- `enable_dns_64` (Boolean) Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. + You must first configure a NAT gateway in a public subnet (separate from the subnet containing the IPv6-only workloads). For example, the subnet containing the NAT gateway should have a ``0.0.0.0/0`` route pointing to the internet gateway. For more information, see [Configure DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-nat64-dns64.html#nat-gateway-nat64-dns64-walkthrough) in the *User Guide*. - `enable_lni_at_device_index` (Number) 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). - `ipv_4_ipam_pool_id` (String) An IPv4 IPAM pool ID for the subnet. - `ipv_4_netmask_length` (Number) An IPv4 netmask length for the subnet. diff --git a/docs/data-sources/ec2_transit_gateway_attachment.md b/docs/data-sources/ec2_transit_gateway_attachment.md index a0c91698e..07af67329 100644 --- a/docs/data-sources/ec2_transit_gateway_attachment.md +++ b/docs/data-sources/ec2_transit_gateway_attachment.md @@ -36,7 +36,6 @@ Read-Only: - `appliance_mode_support` (String) Indicates whether to enable Ipv6 Support for Vpc Attachment. Valid Values: enable | disable - `dns_support` (String) Indicates whether to enable DNS Support for Vpc Attachment. Valid Values: enable | disable - `ipv_6_support` (String) Indicates whether to enable Ipv6 Support for Vpc Attachment. Valid Values: enable | disable -- `security_group_referencing_support` (String) Indicates whether to enable Security Group referencing support for Vpc Attachment. Valid Values: enable | disable diff --git a/docs/data-sources/ec2_transit_gateway_multicast_group_member.md b/docs/data-sources/ec2_transit_gateway_multicast_group_member.md index e581bc193..f361a4bc2 100644 --- a/docs/data-sources/ec2_transit_gateway_multicast_group_member.md +++ b/docs/data-sources/ec2_transit_gateway_multicast_group_member.md @@ -28,7 +28,6 @@ Data Source schema for AWS::EC2::TransitGatewayMulticastGroupMember - `network_interface_id` (String) The ID of the transit gateway attachment. - `resource_id` (String) The ID of the resource. - `resource_type` (String) The type of resource, for example a VPC attachment. -- `source_type` (String) The source type. - `subnet_id` (String) The ID of the subnet. - `transit_gateway_attachment_id` (String) The ID of the transit gateway attachment. - `transit_gateway_multicast_domain_id` (String) The ID of the transit gateway multicast domain. diff --git a/docs/data-sources/ec2_transit_gateway_multicast_group_source.md b/docs/data-sources/ec2_transit_gateway_multicast_group_source.md index 49f99c9be..0b747846d 100644 --- a/docs/data-sources/ec2_transit_gateway_multicast_group_source.md +++ b/docs/data-sources/ec2_transit_gateway_multicast_group_source.md @@ -24,7 +24,6 @@ Data Source schema for AWS::EC2::TransitGatewayMulticastGroupSource - `group_ip_address` (String) The IP address assigned to the transit gateway multicast group. - `group_member` (Boolean) Indicates that the resource is a transit gateway multicast group member. - `group_source` (Boolean) Indicates that the resource is a transit gateway multicast group member. -- `member_type` (String) The member type (for example, static). - `network_interface_id` (String) The ID of the transit gateway attachment. - `resource_id` (String) The ID of the resource. - `resource_type` (String) The type of resource, for example a VPC attachment. diff --git a/docs/data-sources/ecs_cluster.md b/docs/data-sources/ecs_cluster.md index 37637db5b..5d596b3bf 100644 --- a/docs/data-sources/ecs_cluster.md +++ b/docs/data-sources/ecs_cluster.md @@ -28,7 +28,7 @@ Data Source schema for AWS::ECS::Cluster The [PutCapacityProvider](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutCapacityProvider.html) API operation is used to update the list of available capacity providers for a cluster after the cluster is created. - `cluster_name` (String) A user-generated string that you use to identify your cluster. If you don't specify a name, CFNlong generates a unique physical ID for the name. - `cluster_settings` (Attributes List) The settings to use when creating a cluster. This parameter is used to turn on CloudWatch Container Insights for a cluster. (see [below for nested schema](#nestedatt--cluster_settings)) -- `configuration` (Attributes) The execute command configuration for the cluster. (see [below for nested schema](#nestedatt--configuration)) +- `configuration` (Attributes) The execute command and managed storage configuration for the cluster. (see [below for nested schema](#nestedatt--configuration)) - `default_capacity_provider_strategy` (Attributes List) The default capacity provider strategy for the cluster. When services or tasks are run in the cluster with no launch type or capacity provider strategy specified, the default capacity provider strategy is used. (see [below for nested schema](#nestedatt--default_capacity_provider_strategy)) - `service_connect_defaults` (Attributes) Use this parameter to set a default Service Connect namespace. After you set a default Service Connect namespace, any new services with Service Connect turned on that are created in the cluster are added as client services in the namespace. This setting only applies to new services that set the ``enabled`` parameter to ``true`` in the ``ServiceConnectConfiguration``. You can set the namespace of each service individually in the ``ServiceConnectConfiguration`` to override this default parameter. Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. (see [below for nested schema](#nestedatt--service_connect_defaults)) @@ -58,7 +58,7 @@ Read-Only: Read-Only: - `execute_command_configuration` (Attributes) The details of the execute command configuration. (see [below for nested schema](#nestedatt--configuration--execute_command_configuration)) -- `managed_storage_configuration` (Attributes) (see [below for nested schema](#nestedatt--configuration--managed_storage_configuration)) +- `managed_storage_configuration` (Attributes) The details of the managed storage configuration. (see [below for nested schema](#nestedatt--configuration--managed_storage_configuration)) ### Nested Schema for `configuration.execute_command_configuration` @@ -92,8 +92,8 @@ Read-Only: Read-Only: -- `fargate_ephemeral_storage_kms_key_id` (String) -- `kms_key_id` (String) +- `fargate_ephemeral_storage_kms_key_id` (String) Specify the KMSlong key ID for the Fargate ephemeral storage. +- `kms_key_id` (String) Specify a KMSlong key ID to encrypt the managed storage. diff --git a/docs/data-sources/kinesisfirehose_delivery_stream.md b/docs/data-sources/kinesisfirehose_delivery_stream.md index c9ac40f19..8057ec76c 100644 --- a/docs/data-sources/kinesisfirehose_delivery_stream.md +++ b/docs/data-sources/kinesisfirehose_delivery_stream.md @@ -1043,6 +1043,7 @@ Read-Only: - `authentication_configuration` (Attributes) (see [below for nested schema](#nestedatt--msk_source_configuration--authentication_configuration)) - `msk_cluster_arn` (String) +- `read_from_timestamp` (String) - `topic_name` (String) diff --git a/docs/data-sources/kms_key.md b/docs/data-sources/kms_key.md index 47fb7c869..788c8edd4 100644 --- a/docs/data-sources/kms_key.md +++ b/docs/data-sources/kms_key.md @@ -63,29 +63,30 @@ Data Source schema for AWS::KMS::Key + ``HMAC_384`` + ``HMAC_512`` - + Asymmetric RSA key pairs + + Asymmetric RSA key pairs (encryption and decryption *or* signing and verification) + ``RSA_2048`` + ``RSA_3072`` + ``RSA_4096`` - + Asymmetric NIST-recommended elliptic curve key pairs + + Asymmetric NIST-recommended elliptic curve key pairs (signing and verification *or* deriving shared secrets) + ``ECC_NIST_P256`` (secp256r1) + ``ECC_NIST_P384`` (secp384r1) + ``ECC_NIST_P521`` (secp521r1) - + Other asymmetric elliptic curve key pairs + + Other asymmetric elliptic curve key pairs (signing and verification) + ``ECC_SECG_P256K1`` (secp256k1), commonly used for cryptocurrencies. - + SM2 key pairs (China Regions only) - + ``SM2`` + + SM2 key pairs (encryption and decryption *or* signing and verification *or* deriving shared secrets) + + ``SM2`` (China Regions only) - `key_usage` (String) Determines the [cryptographic operations](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) for which you can use the KMS key. The default value is ``ENCRYPT_DECRYPT``. This property is required for asymmetric KMS keys and HMAC KMS keys. You can't change the ``KeyUsage`` value after the KMS key is created. If you change the value of the ``KeyUsage`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value. Select only one valid value. - + For symmetric encryption KMS keys, omit the property or specify ``ENCRYPT_DECRYPT``. - + For asymmetric KMS keys with RSA key material, specify ``ENCRYPT_DECRYPT`` or ``SIGN_VERIFY``. - + For asymmetric KMS keys with ECC key material, specify ``SIGN_VERIFY``. - + For asymmetric KMS keys with SM2 (China Regions only) key material, specify ``ENCRYPT_DECRYPT`` or ``SIGN_VERIFY``. - + For HMAC KMS keys, specify ``GENERATE_VERIFY_MAC``. + + For symmetric encryption KMS keys, omit the parameter or specify ``ENCRYPT_DECRYPT``. + + For HMAC KMS keys (symmetric), specify ``GENERATE_VERIFY_MAC``. + + For asymmetric KMS keys with RSA key pairs, specify ``ENCRYPT_DECRYPT`` or ``SIGN_VERIFY``. + + For asymmetric KMS keys with NIST-recommended elliptic curve key pairs, specify ``SIGN_VERIFY`` or ``KEY_AGREEMENT``. + + For asymmetric KMS keys with ``ECC_SECG_P256K1`` key pairs specify ``SIGN_VERIFY``. + + For asymmetric KMS keys with SM2 key pairs (China Regions only), specify ``ENCRYPT_DECRYPT``, ``SIGN_VERIFY``, or ``KEY_AGREEMENT``. - `multi_region` (Boolean) Creates a multi-Region primary key that you can replicate in other AWS-Regions. You can't change the ``MultiRegion`` value after the KMS key is created. For a list of AWS-Regions in which multi-Region keys are supported, see [Multi-Region keys in](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) in the **. If you change the value of the ``MultiRegion`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value. @@ -115,5 +116,7 @@ Data Source schema for AWS::KMS::Key Read-Only: -- `key` (String) -- `value` (String) +- `key` (String) The key name of the tag. You can specify a value that's 1 to 128 Unicode characters in length and can't be prefixed with ``aws:``. digits, whitespace, ``_``, ``.``, ``:``, ``/``, ``=``, ``+``, ``@``, ``-``, and ``"``. + For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html). +- `value` (String) The value for the tag. You can specify a value that's 1 to 256 characters in length. You can use any of the following characters: the set of Unicode letters, digits, whitespace, ``_``, ``.``, ``/``, ``=``, ``+``, and ``-``. + For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html). diff --git a/docs/data-sources/lambda_function.md b/docs/data-sources/lambda_function.md index 1b0ecbd44..f03e6eb49 100644 --- a/docs/data-sources/lambda_function.md +++ b/docs/data-sources/lambda_function.md @@ -62,6 +62,7 @@ Read-Only: - `s3_bucket` (String) An Amazon S3 bucket in the same AWS-Region as your function. The bucket can be in a different AWS-account. - `s3_key` (String) The Amazon S3 key of the deployment package. - `s3_object_version` (String) For versioned objects, the version of the deployment package object to use. +- `source_kms_key_arn` (String) - `zip_file` (String) (Node.js and Python) The source code of your Lambda function. If you include your function source inline with this parameter, CFN places it in a file named ``index`` and zips it to create a [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html). This zip file cannot exceed 4MB. For the ``Handler`` property, the first part of the handler identifier must be ``index``. For example, ``index.handler``. For JSON, you must escape quotes and special characters such as newline (``\n``) with a backslash. If you specify a function that interacts with an AWS CloudFormation custom resource, you don't have to write your own functions to send responses to the custom resource that invoked the function. AWS CloudFormation provides a response module ([cfn-response](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html)) that simplifies sending responses. See [Using Lambda with CloudFormation](https://docs.aws.amazon.com/lambda/latest/dg/services-cloudformation.html) for details. diff --git a/docs/data-sources/logs_delivery_destination.md b/docs/data-sources/logs_delivery_destination.md index 8ee0d6ad1..824a5612a 100644 --- a/docs/data-sources/logs_delivery_destination.md +++ b/docs/data-sources/logs_delivery_destination.md @@ -28,7 +28,7 @@ The policy must be in JSON string format. Length Constraints: Maximum length of 51200 - `delivery_destination_type` (String) Displays whether this delivery destination is CloudWatch Logs, Amazon S3, or Kinesis Data Firehose. -- `destination_resource_arn` (String) The ARN of the AWS resource that will receive the logs. +- `destination_resource_arn` (String) The ARN of the Amazon Web Services destination that this delivery destination represents. That Amazon Web Services destination can be a log group in CloudWatch Logs, an Amazon S3 bucket, or a delivery stream in Firehose. - `name` (String) The name of this delivery destination. - `tags` (Attributes Set) The tags that have been assigned to this delivery destination. (see [below for nested schema](#nestedatt--tags)) diff --git a/docs/data-sources/networkmanager_connect_attachment.md b/docs/data-sources/networkmanager_connect_attachment.md index 00af46e50..8b7dfc6d8 100644 --- a/docs/data-sources/networkmanager_connect_attachment.md +++ b/docs/data-sources/networkmanager_connect_attachment.md @@ -28,8 +28,10 @@ Data Source schema for AWS::NetworkManager::ConnectAttachment - `core_network_id` (String) ID of the CoreNetwork that the attachment will be attached to. - `created_at` (String) Creation time of the attachment. - `edge_location` (String) Edge location of the attachment. +- `network_function_group_name` (String) The name of the network function group attachment. - `options` (Attributes) Protocol options for connect attachment (see [below for nested schema](#nestedatt--options)) - `owner_account_id` (String) The ID of the attachment account owner. +- `proposed_network_function_group_change` (Attributes) The attachment to move from one network function group to another. (see [below for nested schema](#nestedatt--proposed_network_function_group_change)) - `proposed_segment_change` (Attributes) The attachment to move from one segment to another. (see [below for nested schema](#nestedatt--proposed_segment_change)) - `resource_arn` (String) The attachment resource ARN. - `segment_name` (String) The name of the segment attachment. @@ -46,6 +48,25 @@ Read-Only: - `protocol` (String) Tunnel protocol for connect attachment + +### Nested Schema for `proposed_network_function_group_change` + +Read-Only: + +- `attachment_policy_rule_number` (Number) The rule number in the policy document that applies to this change. +- `network_function_group_name` (String) The name of the network function group to change. +- `tags` (Attributes Set) The key-value tags that changed for the network function group. (see [below for nested schema](#nestedatt--proposed_network_function_group_change--tags)) + + +### Nested Schema for `proposed_network_function_group_change.tags` + +Read-Only: + +- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + + + ### Nested Schema for `proposed_segment_change` diff --git a/docs/data-sources/networkmanager_core_network.md b/docs/data-sources/networkmanager_core_network.md index 6d4ec0524..18a5c066e 100644 --- a/docs/data-sources/networkmanager_core_network.md +++ b/docs/data-sources/networkmanager_core_network.md @@ -27,6 +27,7 @@ Data Source schema for AWS::NetworkManager::CoreNetwork - `description` (String) The description of core network - `edges` (Attributes List) The edges within a core network. (see [below for nested schema](#nestedatt--edges)) - `global_network_id` (String) The ID of the global network that your core network is a part of. +- `network_function_groups` (Attributes List) The network function groups within a core network. (see [below for nested schema](#nestedatt--network_function_groups)) - `owner_account` (String) Owner of the core network - `policy_document` (String) Live policy document for the core network, you must provide PolicyDocument in Json Format - `segments` (Attributes List) The segments within a core network. (see [below for nested schema](#nestedatt--segments)) @@ -43,6 +44,25 @@ Read-Only: - `inside_cidr_blocks` (List of String) + +### Nested Schema for `network_function_groups` + +Read-Only: + +- `edge_locations` (List of String) +- `name` (String) Name of network function group +- `segments` (Attributes) (see [below for nested schema](#nestedatt--network_function_groups--segments)) + + +### Nested Schema for `network_function_groups.segments` + +Read-Only: + +- `send_to` (List of String) +- `send_via` (List of String) + + + ### Nested Schema for `segments` diff --git a/docs/data-sources/networkmanager_site_to_site_vpn_attachment.md b/docs/data-sources/networkmanager_site_to_site_vpn_attachment.md index 790b8e56a..0c532edce 100644 --- a/docs/data-sources/networkmanager_site_to_site_vpn_attachment.md +++ b/docs/data-sources/networkmanager_site_to_site_vpn_attachment.md @@ -28,7 +28,9 @@ Data Source schema for AWS::NetworkManager::SiteToSiteVpnAttachment - `core_network_id` (String) The ID of a core network where you're creating a site-to-site VPN attachment. - `created_at` (String) Creation time of the attachment. - `edge_location` (String) The Region where the edge is located. +- `network_function_group_name` (String) The name of the network function group attachment. - `owner_account_id` (String) Owner account of the attachment. +- `proposed_network_function_group_change` (Attributes) The attachment to move from one network function group to another. (see [below for nested schema](#nestedatt--proposed_network_function_group_change)) - `proposed_segment_change` (Attributes) The attachment to move from one segment to another. (see [below for nested schema](#nestedatt--proposed_segment_change)) - `resource_arn` (String) The ARN of the Resource. - `segment_name` (String) The name of the segment that attachment is in. @@ -37,6 +39,25 @@ Data Source schema for AWS::NetworkManager::SiteToSiteVpnAttachment - `updated_at` (String) Last update time of the attachment. - `vpn_connection_arn` (String) The ARN of the site-to-site VPN attachment. + +### Nested Schema for `proposed_network_function_group_change` + +Read-Only: + +- `attachment_policy_rule_number` (Number) The rule number in the policy document that applies to this change. +- `network_function_group_name` (String) The name of the network function group to change. +- `tags` (Attributes Set) The key-value tags that changed for the network function group. (see [below for nested schema](#nestedatt--proposed_network_function_group_change--tags)) + + +### Nested Schema for `proposed_network_function_group_change.tags` + +Read-Only: + +- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + + + ### Nested Schema for `proposed_segment_change` diff --git a/docs/data-sources/networkmanager_transit_gateway_route_table_attachment.md b/docs/data-sources/networkmanager_transit_gateway_route_table_attachment.md index 5d1e69d46..91aaa8b58 100644 --- a/docs/data-sources/networkmanager_transit_gateway_route_table_attachment.md +++ b/docs/data-sources/networkmanager_transit_gateway_route_table_attachment.md @@ -28,8 +28,10 @@ Data Source schema for AWS::NetworkManager::TransitGatewayRouteTableAttachment - `core_network_id` (String) The ID of a core network where you're creating a site-to-site VPN attachment. - `created_at` (String) Creation time of the attachment. - `edge_location` (String) The Region where the edge is located. +- `network_function_group_name` (String) The name of the network function group attachment. - `owner_account_id` (String) Owner account of the attachment. - `peering_id` (String) The Id of peering between transit gateway and core network. +- `proposed_network_function_group_change` (Attributes) The attachment to move from one network function group to another. (see [below for nested schema](#nestedatt--proposed_network_function_group_change)) - `proposed_segment_change` (Attributes) The attachment to move from one segment to another. (see [below for nested schema](#nestedatt--proposed_segment_change)) - `resource_arn` (String) The ARN of the Resource. - `segment_name` (String) The name of the segment that attachment is in. @@ -38,6 +40,25 @@ Data Source schema for AWS::NetworkManager::TransitGatewayRouteTableAttachment - `transit_gateway_route_table_arn` (String) The Arn of transit gateway route table. - `updated_at` (String) Last update time of the attachment. + +### Nested Schema for `proposed_network_function_group_change` + +Read-Only: + +- `attachment_policy_rule_number` (Number) The rule number in the policy document that applies to this change. +- `network_function_group_name` (String) The name of the network function group to change. +- `tags` (Attributes Set) The key-value tags that changed for the network function group. (see [below for nested schema](#nestedatt--proposed_network_function_group_change--tags)) + + +### Nested Schema for `proposed_network_function_group_change.tags` + +Read-Only: + +- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + + + ### Nested Schema for `proposed_segment_change` diff --git a/docs/data-sources/networkmanager_vpc_attachment.md b/docs/data-sources/networkmanager_vpc_attachment.md index a2c5ff45c..8bd89a4ee 100644 --- a/docs/data-sources/networkmanager_vpc_attachment.md +++ b/docs/data-sources/networkmanager_vpc_attachment.md @@ -28,8 +28,10 @@ Data Source schema for AWS::NetworkManager::VpcAttachment - `core_network_id` (String) The ID of a core network for the VPC attachment. - `created_at` (String) Creation time of the attachment. - `edge_location` (String) The Region where the edge is located. +- `network_function_group_name` (String) The name of the network function group attachment. - `options` (Attributes) Vpc options of the attachment. (see [below for nested schema](#nestedatt--options)) - `owner_account_id` (String) Owner account of the attachment. +- `proposed_network_function_group_change` (Attributes) The attachment to move from one network function group to another. (see [below for nested schema](#nestedatt--proposed_network_function_group_change)) - `proposed_segment_change` (Attributes) The attachment to move from one segment to another. (see [below for nested schema](#nestedatt--proposed_segment_change)) - `resource_arn` (String) The ARN of the Resource. - `segment_name` (String) The name of the segment attachment.. @@ -48,6 +50,25 @@ Read-Only: - `ipv_6_support` (Boolean) Indicates whether to enable Ipv6 Support for Vpc Attachment. Valid Values: enable | disable + +### Nested Schema for `proposed_network_function_group_change` + +Read-Only: + +- `attachment_policy_rule_number` (Number) The rule number in the policy document that applies to this change. +- `network_function_group_name` (String) The name of the network function group to change. +- `tags` (Attributes Set) The key-value tags that changed for the network function group. (see [below for nested schema](#nestedatt--proposed_network_function_group_change--tags)) + + +### Nested Schema for `proposed_network_function_group_change.tags` + +Read-Only: + +- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + + + ### Nested Schema for `proposed_segment_change` diff --git a/docs/data-sources/osis_pipeline.md b/docs/data-sources/osis_pipeline.md index cc126202b..4631df207 100644 --- a/docs/data-sources/osis_pipeline.md +++ b/docs/data-sources/osis_pipeline.md @@ -93,8 +93,18 @@ Read-Only: - `security_group_ids` (List of String) A list of security groups associated with the VPC endpoint. - `subnet_ids` (List of String) A list of subnet IDs associated with the VPC endpoint. +- `vpc_attachment_options` (Attributes) Options for attaching a VPC to the pipeline. (see [below for nested schema](#nestedatt--vpc_endpoints--vpc_options--vpc_attachment_options)) - `vpc_endpoint_management` (String) Defines whether you or Amazon OpenSearch Ingestion service create and manage the VPC endpoint configured for the pipeline. + +### Nested Schema for `vpc_endpoints.vpc_options.vpc_attachment_options` + +Read-Only: + +- `attach_to_vpc` (Boolean) Whether the pipeline should be attached to the provided VPC +- `cidr_block` (String) The CIDR block to be reserved for OpenSearch Ingestion to create elastic network interfaces (ENIs). + + @@ -104,4 +114,13 @@ Read-Only: - `security_group_ids` (List of String) A list of security groups associated with the VPC endpoint. - `subnet_ids` (List of String) A list of subnet IDs associated with the VPC endpoint. +- `vpc_attachment_options` (Attributes) Options for attaching a VPC to the pipeline. (see [below for nested schema](#nestedatt--vpc_options--vpc_attachment_options)) - `vpc_endpoint_management` (String) Defines whether you or Amazon OpenSearch Ingestion service create and manage the VPC endpoint configured for the pipeline. + + +### Nested Schema for `vpc_options.vpc_attachment_options` + +Read-Only: + +- `attach_to_vpc` (Boolean) Whether the pipeline should be attached to the provided VPC +- `cidr_block` (String) The CIDR block to be reserved for OpenSearch Ingestion to create elastic network interfaces (ENIs). diff --git a/docs/data-sources/rds_db_cluster.md b/docs/data-sources/rds_db_cluster.md index 09b38643b..9b18ba6ae 100644 --- a/docs/data-sources/rds_db_cluster.md +++ b/docs/data-sources/rds_db_cluster.md @@ -30,13 +30,11 @@ Data Source schema for AWS::RDS::DBCluster Valid for Cluster Type: Multi-AZ DB clusters only - `availability_zones` (List of String) A list of Availability Zones (AZs) where instances in the DB cluster can be created. For information on AWS Regions and Availability Zones, see [Choosing the Regions and Availability Zones](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.RegionsAndAvailabilityZones.html) in the *Amazon Aurora User Guide*. Valid for: Aurora DB clusters only -- `backtrack_window` (Number) The target backtrack window, in seconds. To disable backtracking, set this value to 0. - Currently, Backtrack is only supported for Aurora MySQL DB clusters. - Default: 0 +- `backtrack_window` (Number) The target backtrack window, in seconds. To disable backtracking, set this value to ``0``. + Valid for Cluster Type: Aurora MySQL DB clusters only + Default: ``0`` Constraints: + If specified, this value must be set to a number from 0 to 259,200 (72 hours). - - Valid for: Aurora MySQL DB clusters only - `backup_retention_period` (Number) The number of days for which automated backups are retained. Default: 1 Constraints: @@ -271,7 +269,7 @@ Data Source schema for AWS::RDS::DBCluster + ``full-copy`` - The new DB cluster is restored as a full copy of the source DB cluster. + ``copy-on-write`` - The new DB cluster is restored as a clone of the source DB cluster. - If you don't specify a ``RestoreType`` value, then the new DB cluster is restored as a full copy of the source DB cluster. + If you don't specify a ``RestoreType`` value, then the new DB cluster is restored as a full copy of the source DB cluster. Valid for: Aurora DB clusters and Multi-AZ DB clusters - `scaling_configuration` (Attributes) 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. @@ -326,8 +324,8 @@ Data Source schema for AWS::RDS::DBCluster + Multi-AZ DB clusters - ``io1`` When you create an Aurora DB cluster with the storage type set to ``aurora-iopt1``, the storage type is returned in the response. The storage type isn't returned when you set it to ``aurora``. -- `tags` (Attributes Set) An optional array of key-value pairs to apply to this DB cluster. - Valid for: Aurora DB clusters and Multi-AZ DB clusters (see [below for nested schema](#nestedatt--tags)) +- `tags` (Attributes Set) Tags to assign to the DB cluster. + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters (see [below for nested schema](#nestedatt--tags)) - `use_latest_restorable_time` (Boolean) A value that indicates whether to restore the DB cluster to the latest restorable backup time. By default, the DB cluster is not restored to the latest restorable backup time. Valid for: Aurora DB clusters and Multi-AZ DB clusters - `vpc_security_group_ids` (List of String) A list of EC2 VPC security groups to associate with this DB cluster. diff --git a/docs/data-sources/rds_db_cluster_parameter_group.md b/docs/data-sources/rds_db_cluster_parameter_group.md index f968a66c2..b142d5850 100644 --- a/docs/data-sources/rds_db_cluster_parameter_group.md +++ b/docs/data-sources/rds_db_cluster_parameter_group.md @@ -25,17 +25,29 @@ Data Source schema for AWS::RDS::DBClusterParameterGroup Constraints: + Must not match the name of an existing DB cluster parameter group. - If you don't specify a value for ``DBClusterParameterGroupName`` property, a name is automatically created for the DB cluster parameter group. This value is stored as a lowercase string. -- `description` (String) A friendly description for this DB cluster parameter group. -- `family` (String) The DB cluster parameter group family name. A DB cluster parameter group can be associated with one and only one DB cluster parameter group family, and can be applied only to a DB cluster running a DB engine and engine version compatible with that DB cluster parameter group family. - The DB cluster parameter group family can't be changed when updating a DB cluster parameter group. - To list all of the available parameter group families, use the following command: - ``aws rds describe-db-engine-versions --query "DBEngineVersions[].DBParameterGroupFamily"`` - The output contains duplicates. - For more information, see ``CreateDBClusterParameterGroup``. +- `description` (String) The description for the DB cluster parameter group. +- `family` (String) The DB cluster parameter group family name. A DB cluster parameter group can be associated with one and only one DB cluster parameter group family, and can be applied only to a DB cluster running a database engine and engine version compatible with that DB cluster parameter group family. + *Aurora MySQL* + Example: ``aurora-mysql5.7``, ``aurora-mysql8.0`` + *Aurora PostgreSQL* + Example: ``aurora-postgresql14`` + *RDS for MySQL* + Example: ``mysql8.0`` + *RDS for PostgreSQL* + Example: ``postgres13`` + To list all of the available parameter group families for a DB engine, use the following command: + ``aws rds describe-db-engine-versions --query "DBEngineVersions[].DBParameterGroupFamily" --engine `` + For example, to list all of the available parameter group families for the Aurora PostgreSQL DB engine, use the following command: + ``aws rds describe-db-engine-versions --query "DBEngineVersions[].DBParameterGroupFamily" --engine aurora-postgresql`` + The output contains duplicates. + The following are the valid DB engine values: + + ``aurora-mysql`` + + ``aurora-postgresql`` + + ``mysql`` + + ``postgres`` - `parameters` (String) Provides a list of parameters for the DB cluster parameter group. -- `tags` (Attributes List) An optional array of key-value pairs to apply to this DB cluster parameter group. (see [below for nested schema](#nestedatt--tags)) +- `tags` (Attributes List) Tags to assign to the DB cluster parameter group. (see [below for nested schema](#nestedatt--tags)) ### Nested Schema for `tags` diff --git a/docs/data-sources/rds_db_instance.md b/docs/data-sources/rds_db_instance.md index 50541cc7f..5d7600608 100644 --- a/docs/data-sources/rds_db_instance.md +++ b/docs/data-sources/rds_db_instance.md @@ -74,7 +74,7 @@ Data Source schema for AWS::RDS::DBInstance Not applicable. The associated roles are managed by the DB cluster. (see [below for nested schema](#nestedatt--associated_roles)) - `auto_minor_version_upgrade` (Boolean) A value that indicates whether minor engine upgrades are applied automatically to the DB instance during the maintenance window. By default, minor engine upgrades are applied automatically. - `automatic_backup_replication_kms_key_id` (String) The AWS KMS key identifier for encryption of the replicated automated backups. The KMS key ID is the Amazon Resource Name (ARN) for the KMS encryption key in the destination AWS-Region, for example, ``arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE``. -- `automatic_backup_replication_region` (String) +- `automatic_backup_replication_region` (String) The AWS-Region associated with the automated backup. - `availability_zone` (String) The Availability Zone (AZ) where the database will be created. For information on AWS-Regions and Availability Zones, see [Regions and Availability Zones](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html). For Amazon Aurora, each Aurora DB cluster hosts copies of its storage in three separate Availability Zones. Specify one of these Availability Zones. Aurora automatically chooses an appropriate Availability Zone if you don't specify one. Default: A random, system-chosen Availability Zone in the endpoint's AWS-Region. @@ -114,7 +114,8 @@ Data Source schema for AWS::RDS::DBInstance + The instance profile name and the associated IAM role name must start with the prefix ``AWSRDSCustom``. For the list of permissions required for the IAM role, see [Configure IAM and your VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-setup-orcl.html#custom-setup-orcl.iam-vpc) in the *Amazon RDS User Guide*. -- `db_cluster_identifier` (String) The identifier of the DB cluster that the instance will belong to. +- `db_cluster_identifier` (String) The identifier of the DB cluster that this DB instance will belong to. + This setting doesn't apply to RDS Custom DB instances. - `db_cluster_snapshot_identifier` (String) The identifier for the Multi-AZ DB cluster snapshot to restore from. For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) in the *Amazon RDS User Guide*. Constraints: @@ -220,18 +221,16 @@ Data Source schema for AWS::RDS::DBInstance Not applicable. Snapshot restore is managed by the DB cluster. - `db_subnet_group_name` (String) A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC. If there's no DB subnet group, then the DB instance isn't a VPC DB instance. - For more information about using Amazon RDS in a VPC, see [Using Amazon RDS with Amazon Virtual Private Cloud (VPC)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*. - *Amazon Aurora* - Not applicable. The DB subnet group is managed by the DB cluster. If specified, the setting must match the DB cluster setting. + For more information about using Amazon RDS in a VPC, see [Amazon VPC and Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*. + This setting doesn't apply to Amazon Aurora DB instances. The DB subnet group is managed by the DB cluster. If specified, the setting must match the DB cluster setting. - `db_system_id` (String) The Oracle system identifier (SID), which is the name of the Oracle database instance that manages your database files. In this context, the term "Oracle database instance" refers exclusively to the system global area (SGA) and Oracle background processes. If you don't specify a SID, the value defaults to ``RDSCDB``. The Oracle SID is also the name of your CDB. - `dbi_resource_id` (String) - `dedicated_log_volume` (Boolean) Indicates whether the DB instance has a dedicated log volume (DLV) enabled. - `delete_automated_backups` (Boolean) A value that indicates whether to remove automated backups immediately after the DB instance is deleted. This parameter isn't case-sensitive. The default is to remove automated backups immediately after the DB instance is deleted. *Amazon Aurora* Not applicable. When you delete a DB cluster, all automated backups for that DB cluster are deleted and can't be recovered. Manual DB cluster snapshots of the DB cluster are not deleted. -- `deletion_protection` (Boolean) A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. For more information, see [Deleting a DB Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html). - *Amazon Aurora* - Not applicable. You can enable or disable deletion protection for the DB cluster. For more information, see ``CreateDBCluster``. DB instances in a DB cluster can be deleted even when deletion protection is enabled for the DB cluster. +- `deletion_protection` (Boolean) Specifies whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection isn't enabled. For more information, see [Deleting a DB Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html). + This setting doesn't apply to Amazon Aurora DB instances. You can enable or disable deletion protection for the DB cluster. For more information, see ``CreateDBCluster``. DB instances in a DB cluster can be deleted even when deletion protection is enabled for the DB cluster. - `domain` (String) The Active Directory directory ID to create the DB instance in. Currently, only Db2, MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain. For more information, see [Kerberos Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html) in the *Amazon RDS User Guide*. - `domain_auth_secret_arn` (String) The ARN for the Secrets Manager secret with the credentials for the user joining the domain. @@ -386,30 +385,30 @@ Data Source schema for AWS::RDS::DBInstance *RDS for MariaDB* Constraints: - + Must be 1 to 16 letters or numbers. + + Must be 1 to 16 letters or numbers. + Can't be a reserved word for the chosen database engine. *RDS for Microsoft SQL Server* Constraints: - + Must be 1 to 128 letters or numbers. + + Must be 1 to 128 letters or numbers. + First character must be a letter. + Can't be a reserved word for the chosen database engine. *RDS for MySQL* Constraints: - + Must be 1 to 16 letters or numbers. + + Must be 1 to 16 letters or numbers. + First character must be a letter. + Can't be a reserved word for the chosen database engine. *RDS for Oracle* Constraints: - + Must be 1 to 30 letters or numbers. + + Must be 1 to 30 letters or numbers. + First character must be a letter. + Can't be a reserved word for the chosen database engine. *RDS for PostgreSQL* Constraints: - + Must be 1 to 63 letters or numbers. + + Must be 1 to 63 letters or numbers. + First character must be a letter. + Can't be a reserved word for the chosen database engine. - `max_allocated_storage` (Number) The upper limit in gibibytes (GiB) to which Amazon RDS can automatically scale the storage of the DB instance. @@ -417,17 +416,18 @@ Data Source schema for AWS::RDS::DBInstance This setting doesn't apply to the following DB instances: + Amazon Aurora (Storage is managed by the DB cluster.) + RDS Custom -- `monitoring_interval` (Number) The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collection of Enhanced Monitoring metrics, specify 0. The default is 0. - If ``MonitoringRoleArn`` is specified, then you must set ``MonitoringInterval`` to a value other than 0. - This setting doesn't apply to RDS Custom. - Valid Values: ``0, 1, 5, 10, 15, 30, 60`` +- `monitoring_interval` (Number) The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collection of Enhanced Monitoring metrics, specify ``0``. + If ``MonitoringRoleArn`` is specified, then you must set ``MonitoringInterval`` to a value other than ``0``. + This setting doesn't apply to RDS Custom DB instances. + Valid Values: ``0 | 1 | 5 | 10 | 15 | 30 | 60`` + Default: ``0`` - `monitoring_role_arn` (String) The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs. For example, ``arn:aws:iam:123456789012:role/emaccess``. For information on creating a monitoring role, see [Setting Up and Enabling Enhanced Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.Enabling) in the *Amazon RDS User Guide*. If ``MonitoringInterval`` is set to a value other than ``0``, then you must supply a ``MonitoringRoleArn`` value. This setting doesn't apply to RDS Custom DB instances. -- `multi_az` (Boolean) Specifies whether the database instance is a Multi-AZ DB instance deployment. You can't set the ``AvailabilityZone`` parameter if the ``MultiAZ`` parameter is set to true. - For more information, see [Multi-AZ deployments for high availability](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html) in the *Amazon RDS User Guide*. - *Amazon Aurora* - Not applicable. Amazon Aurora storage is replicated across all of the Availability Zones and doesn't require the ``MultiAZ`` option to be set. +- `multi_az` (Boolean) Specifies whether the DB instance is a Multi-AZ deployment. You can't set the ``AvailabilityZone`` parameter if the DB instance is a Multi-AZ deployment. + This setting doesn't apply to the following DB instances: + + Amazon Aurora (DB instance Availability Zones (AZs) are managed by the DB cluster.) + + RDS Custom - `nchar_character_set_name` (String) The name of the NCHAR character set for the Oracle DB instance. This setting doesn't apply to RDS Custom DB instances. - `network_type` (String) The network type of the DB instance. @@ -453,10 +453,18 @@ Data Source schema for AWS::RDS::DBInstance Default: ``7`` days If you specify a retention period that isn't valid, such as ``94``, Amazon RDS returns an error. - `port` (String) The port number on which the database accepts connections. - *Amazon Aurora* - Not applicable. The port number is managed by the DB cluster. - *Db2* - Default value: ``50000`` + This setting doesn't apply to Aurora DB instances. The port number is managed by the cluster. + Valid Values: ``1150-65535`` + Default: + + RDS for Db2 - ``50000`` + + RDS for MariaDB - ``3306`` + + RDS for Microsoft SQL Server - ``1433`` + + RDS for MySQL - ``3306`` + + RDS for Oracle - ``1521`` + + RDS for PostgreSQL - ``5432`` + + Constraints: + + For RDS for Microsoft SQL Server, the value can't be ``1234``, ``1434``, ``3260``, ``3343``, ``3389``, ``47001``, or ``49152-49156``. - `preferred_backup_window` (String) The daily time range during which automated backups are created if automated backups are enabled, using the ``BackupRetentionPeriod`` parameter. For more information, see [Backup Window](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html#USER_WorkingWithAutomatedBackups.BackupWindow) in the *Amazon RDS User Guide.* Constraints: + Must be in the format ``hh24:mi-hh24:mi``. @@ -524,7 +532,7 @@ Data Source schema for AWS::RDS::DBInstance This setting doesn't apply to Amazon Aurora DB instances. Storage is managed by the DB cluster. Valid Values: ``gp2 | gp3 | io1 | io2 | standard`` Default: ``io1``, if the ``Iops`` parameter is specified. Otherwise, ``gp2``. -- `tags` (Attributes List) An optional array of key-value pairs to apply to this DB instance. (see [below for nested schema](#nestedatt--tags)) +- `tags` (Attributes List) Tags to assign to the DB instance. (see [below for nested schema](#nestedatt--tags)) - `tde_credential_arn` (String) - `tde_credential_password` (String) - `timezone` (String) The time zone of the DB instance. The time zone parameter is currently supported only by [RDS for Db2](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/db2-time-zone) and [RDS for SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.TimeZone). diff --git a/docs/data-sources/rds_db_parameter_group.md b/docs/data-sources/rds_db_parameter_group.md index f42fd2b44..6b2b10989 100644 --- a/docs/data-sources/rds_db_parameter_group.md +++ b/docs/data-sources/rds_db_parameter_group.md @@ -30,19 +30,31 @@ Data Source schema for AWS::RDS::DBParameterGroup If you don't specify a value for ``DBParameterGroupName`` property, a name is automatically created for the DB parameter group. This value is stored as a lowercase string. - `description` (String) Provides the customer-specified description for this DB parameter group. -- `family` (String) The DB parameter group family name. A DB parameter group can be associated with one and only one DB parameter group family, and can be applied only to a DB instance running a DB engine and engine version compatible with that DB parameter group family. - The DB parameter group family can't be changed when updating a DB parameter group. - To list all of the available parameter group families, use the following command: - ``aws rds describe-db-engine-versions --query "DBEngineVersions[].DBParameterGroupFamily"`` - The output contains duplicates. - For more information, see ``CreateDBParameterGroup``. -- `parameters` (String) An array of parameter names and values for the parameter update. At least one parameter name and value must be supplied. Subsequent arguments are optional. - RDS for Db2 requires you to bring your own Db2 license. You must enter your IBM customer ID (``rds.ibm_customer_id``) and site number (``rds.ibm_site_id``) before starting a Db2 instance. - For more information about DB parameters and DB parameter groups for Amazon RDS DB engines, see [Working with DB Parameter Groups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html) in the *Amazon RDS User Guide*. - For more information about DB cluster and DB instance parameters and parameter groups for Amazon Aurora DB engines, see [Working with DB Parameter Groups and DB Cluster Parameter Groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*. +- `family` (String) The DB parameter group family name. A DB parameter group can be associated with one and only one DB parameter group family, and can be applied only to a DB instance running a database engine and engine version compatible with that DB parameter group family. + To list all of the available parameter group families for a DB engine, use the following command: + ``aws rds describe-db-engine-versions --query "DBEngineVersions[].DBParameterGroupFamily" --engine `` + For example, to list all of the available parameter group families for the MySQL DB engine, use the following command: + ``aws rds describe-db-engine-versions --query "DBEngineVersions[].DBParameterGroupFamily" --engine mysql`` + The output contains duplicates. + The following are the valid DB engine values: + + ``aurora-mysql`` + + ``aurora-postgresql`` + + ``db2-ae`` + + ``db2-se`` + + ``mysql`` + + ``oracle-ee`` + + ``oracle-ee-cdb`` + + ``oracle-se2`` + + ``oracle-se2-cdb`` + + ``postgres`` + + ``sqlserver-ee`` + + ``sqlserver-se`` + + ``sqlserver-ex`` + + ``sqlserver-web`` +- `parameters` (String) An array of parameter names and values for the parameter update. You must specify at least one parameter name and value. + For more information about parameter groups, see [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html) in the *Amazon RDS User Guide*, or [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*. AWS CloudFormation doesn't support specifying an apply method for each individual parameter. The default apply method for each parameter is used. -- `tags` (Attributes List) An optional array of key-value pairs to apply to this DB parameter group. - Currently, this is the only property that supports drift detection. (see [below for nested schema](#nestedatt--tags)) +- `tags` (Attributes List) Tags to assign to the DB parameter group. (see [below for nested schema](#nestedatt--tags)) ### Nested Schema for `tags` diff --git a/docs/data-sources/rds_db_subnet_group.md b/docs/data-sources/rds_db_subnet_group.md index 61e2a1f69..3b1bb673d 100644 --- a/docs/data-sources/rds_db_subnet_group.md +++ b/docs/data-sources/rds_db_subnet_group.md @@ -23,10 +23,14 @@ Data Source schema for AWS::RDS::DBSubnetGroup - `db_subnet_group_description` (String) The description for the DB subnet group. - `db_subnet_group_name` (String) The name for the DB subnet group. This value is stored as a lowercase string. - Constraints: Must contain no more than 255 lowercase alphanumeric characters or hyphens. Must not be "Default". - Example: ``mysubnetgroup`` + Constraints: + + Must contain no more than 255 letters, numbers, periods, underscores, spaces, or hyphens. + + Must not be default. + + First character must be a letter. + + Example: ``mydbsubnetgroup`` - `subnet_ids` (List of String) The EC2 Subnet IDs for the DB subnet group. -- `tags` (Attributes List) An optional array of key-value pairs to apply to this DB subnet group. (see [below for nested schema](#nestedatt--tags)) +- `tags` (Attributes List) Tags to assign to the DB subnet group. (see [below for nested schema](#nestedatt--tags)) ### Nested Schema for `tags` diff --git a/docs/data-sources/rds_event_subscription.md b/docs/data-sources/rds_event_subscription.md index 1d900e2d2..5b545c214 100644 --- a/docs/data-sources/rds_event_subscription.md +++ b/docs/data-sources/rds_event_subscription.md @@ -27,15 +27,16 @@ Data Source schema for AWS::RDS::EventSubscription RDS doesn't support FIFO (first in, first out) topics. For more information, see [Message ordering and deduplication (FIFO topics)](https://docs.aws.amazon.com/sns/latest/dg/sns-fifo-topics.html) in the *Amazon Simple Notification Service Developer Guide*. - `source_ids` (Set of String) The list of identifiers of the event sources for which events are returned. If not specified, then all sources are included in the response. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens. It can't end with a hyphen or contain two consecutive hyphens. Constraints: - + If a ``SourceIds`` value is supplied, ``SourceType`` must also be provided. + + If ``SourceIds`` are supplied, ``SourceType`` must also be provided. + If the source type is a DB instance, a ``DBInstanceIdentifier`` value must be supplied. + If the source type is a DB cluster, a ``DBClusterIdentifier`` value must be supplied. + If the source type is a DB parameter group, a ``DBParameterGroupName`` value must be supplied. + If the source type is a DB security group, a ``DBSecurityGroupName`` value must be supplied. + If the source type is a DB snapshot, a ``DBSnapshotIdentifier`` value must be supplied. + If the source type is a DB cluster snapshot, a ``DBClusterSnapshotIdentifier`` value must be supplied. -- `source_type` (String) The type of source that is generating the events. For example, if you want to be notified of events generated by a DB instance, set this parameter to ``db-instance``. If this value isn't specified, all events are returned. - Valid values: ``db-instance`` | ``db-cluster`` | ``db-parameter-group`` | ``db-security-group`` | ``db-snapshot`` | ``db-cluster-snapshot`` + + If the source type is an RDS Proxy, a ``DBProxyName`` value must be supplied. +- `source_type` (String) The type of source that is generating the events. For example, if you want to be notified of events generated by a DB instance, you set this parameter to ``db-instance``. For RDS Proxy events, specify ``db-proxy``. If this value isn't specified, all events are returned. + Valid Values:``db-instance | db-cluster | db-parameter-group | db-security-group | db-snapshot | db-cluster-snapshot | db-proxy | zero-etl | custom-engine-version | blue-green-deployment`` - `subscription_name` (String) The name of the subscription. Constraints: The name must be less than 255 characters. - `tags` (Attributes List) An optional array of key-value pairs to apply to this subscription. (see [below for nested schema](#nestedatt--tags)) diff --git a/docs/data-sources/rds_option_group.md b/docs/data-sources/rds_option_group.md index ff469edbb..f3597c828 100644 --- a/docs/data-sources/rds_option_group.md +++ b/docs/data-sources/rds_option_group.md @@ -35,7 +35,7 @@ Data Source schema for AWS::RDS::OptionGroup + ``sqlserver-ex`` + ``sqlserver-web`` - `major_engine_version` (String) Specifies the major version of the engine that this option group should be associated with. -- `option_configurations` (Attributes List) A list of options and the settings for each option. (see [below for nested schema](#nestedatt--option_configurations)) +- `option_configurations` (Attributes List) A list of all available options for an option group. (see [below for nested schema](#nestedatt--option_configurations)) - `option_group_description` (String) The description of the option group. - `option_group_name` (String) The name of the option group to be created. Constraints: @@ -46,19 +46,19 @@ Data Source schema for AWS::RDS::OptionGroup Example: ``myoptiongroup`` If you don't specify a value for ``OptionGroupName`` property, a name is automatically created for the option group. This value is stored as a lowercase string. -- `tags` (Attributes List) An optional array of key-value pairs to apply to this option group. (see [below for nested schema](#nestedatt--tags)) +- `tags` (Attributes List) Tags to assign to the option group. (see [below for nested schema](#nestedatt--tags)) ### Nested Schema for `option_configurations` Read-Only: -- `db_security_group_memberships` (Set of String) A list of DBSecurityGroupMembership name strings used for this option. +- `db_security_group_memberships` (Set of String) A list of DB security groups used for this option. - `option_name` (String) The configuration of options to include in a group. - `option_settings` (Attributes List) The option settings to include in an option group. (see [below for nested schema](#nestedatt--option_configurations--option_settings)) - `option_version` (String) The version for the option. - `port` (Number) The optional port for the option. -- `vpc_security_group_memberships` (Set of String) A list of VpcSecurityGroupMembership name strings used for this option. +- `vpc_security_group_memberships` (Set of String) A list of VPC security group names used for this option. ### Nested Schema for `option_configurations.option_settings` diff --git a/docs/data-sources/redshift_cluster.md b/docs/data-sources/redshift_cluster.md index e0def7c6d..158df6558 100644 --- a/docs/data-sources/redshift_cluster.md +++ b/docs/data-sources/redshift_cluster.md @@ -106,6 +106,8 @@ Read-Only: Read-Only: - `bucket_name` (String) +- `log_destination_type` (String) +- `log_exports` (List of String) - `s3_key_prefix` (String) diff --git a/docs/data-sources/rolesanywhere_profile.md b/docs/data-sources/rolesanywhere_profile.md index dd999f5da..ae5905f84 100644 --- a/docs/data-sources/rolesanywhere_profile.md +++ b/docs/data-sources/rolesanywhere_profile.md @@ -21,6 +21,7 @@ Data Source schema for AWS::RolesAnywhere::Profile ### Read-Only +- `accept_role_session_name` (Boolean) - `attribute_mappings` (Attributes List) (see [below for nested schema](#nestedatt--attribute_mappings)) - `duration_seconds` (Number) - `enabled` (Boolean) diff --git a/docs/data-sources/route53resolver_resolver_rule.md b/docs/data-sources/route53resolver_resolver_rule.md index 5d90e9dd4..5e768ce61 100644 --- a/docs/data-sources/route53resolver_resolver_rule.md +++ b/docs/data-sources/route53resolver_resolver_rule.md @@ -22,6 +22,7 @@ Data Source schema for AWS::Route53Resolver::ResolverRule ### Read-Only - `arn` (String) The Amazon Resource Name (ARN) of the resolver rule. +- `delegation_record` (String) The name server domain for queries to be delegated to if a query matches the delegation record. - `domain_name` (String) DNS queries for this domain name are forwarded to the IP addresses that are specified in TargetIps - `name` (String) The name for the Resolver rule - `resolver_endpoint_id` (String) The ID of the endpoint that the rule is associated with. diff --git a/docs/data-sources/sagemaker_model_package.md b/docs/data-sources/sagemaker_model_package.md index abb06f60d..29d45ce1d 100644 --- a/docs/data-sources/sagemaker_model_package.md +++ b/docs/data-sources/sagemaker_model_package.md @@ -34,6 +34,7 @@ Data Source schema for AWS::SageMaker::ModelPackage - `last_modified_time` (String) The time at which the model package was last modified. - `metadata_properties` (Attributes) Metadata properties of the tracking entity, trial, or trial component. (see [below for nested schema](#nestedatt--metadata_properties)) - `model_approval_status` (String) The approval status of the model package. +- `model_card` (Attributes) The model card associated with the model package. (see [below for nested schema](#nestedatt--model_card)) - `model_metrics` (Attributes) A structure that contains model metrics reports. (see [below for nested schema](#nestedatt--model_metrics)) - `model_package_arn` (String) The Amazon Resource Name (ARN) of the model package group. - `model_package_description` (String) The description of the model package. @@ -43,8 +44,10 @@ Data Source schema for AWS::SageMaker::ModelPackage - `model_package_status_details` (Attributes) Details about the current status of the model package. (see [below for nested schema](#nestedatt--model_package_status_details)) - `model_package_version` (Number) The version of the model package. - `sample_payload_url` (String) The Amazon Simple Storage Service (Amazon S3) path where the sample payload are stored pointing to single gzip compressed tar archive. +- `security_config` (Attributes) An optional AWS Key Management Service key to encrypt, decrypt, and re-encrypt model package information for regulated workloads with highly sensitive data. (see [below for nested schema](#nestedatt--security_config)) - `skip_model_validation` (String) Indicates if you want to skip model validation. - `source_algorithm_specification` (Attributes) Details about the algorithm that was used to create the model package. (see [below for nested schema](#nestedatt--source_algorithm_specification)) +- `source_uri` (String) The URI of the source for the model package. - `tags` (Attributes List) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) - `task` (String) The machine learning task your model package accomplishes. - `validation_specification` (Attributes) Specifies configurations for one or more transform jobs that Amazon SageMaker runs to test the model package. (see [below for nested schema](#nestedatt--validation_specification)) @@ -73,10 +76,38 @@ Read-Only: - `framework_version` (String) The framework version of the Model Package Container Image. - `image` (String) The Amazon EC2 Container Registry (Amazon ECR) path where inference code is stored. - `image_digest` (String) An MD5 hash of the training algorithm that identifies the Docker image used for training. +- `model_data_source` (Attributes) Specifies the location of ML model data to deploy during endpoint creation. (see [below for nested schema](#nestedatt--additional_inference_specifications--containers--model_data_source)) - `model_data_url` (String) A structure with Model Input details. - `model_input` (Attributes) (see [below for nested schema](#nestedatt--additional_inference_specifications--containers--model_input)) - `nearest_model_name` (String) The name of a pre-trained machine learning benchmarked by Amazon SageMaker Inference Recommender model that matches your model. + +### Nested Schema for `additional_inference_specifications.containers.model_data_source` + +Read-Only: + +- `s3_data_source` (Attributes) Specifies the S3 location of ML model data to deploy. (see [below for nested schema](#nestedatt--additional_inference_specifications--containers--model_data_source--s3_data_source)) + + +### Nested Schema for `additional_inference_specifications.containers.model_data_source.s3_data_source` + +Read-Only: + +- `compression_type` (String) Specifies how the ML model data is prepared. +- `model_access_config` (Attributes) Specifies the access configuration file for the ML model. (see [below for nested schema](#nestedatt--additional_inference_specifications--containers--model_data_source--s3_data_source--model_access_config)) +- `s3_data_type` (String) Specifies the type of ML model data to deploy. +- `s3_uri` (String) Specifies the S3 path of ML model data to deploy. + + +### Nested Schema for `additional_inference_specifications.containers.model_data_source.s3_data_source.model_access_config` + +Read-Only: + +- `accept_eula` (Boolean) Specifies agreement to the model end-user license agreement (EULA). + + + + ### Nested Schema for `additional_inference_specifications.containers.model_input` @@ -111,10 +142,38 @@ Read-Only: - `framework_version` (String) The framework version of the Model Package Container Image. - `image` (String) The Amazon EC2 Container Registry (Amazon ECR) path where inference code is stored. - `image_digest` (String) An MD5 hash of the training algorithm that identifies the Docker image used for training. +- `model_data_source` (Attributes) Specifies the location of ML model data to deploy during endpoint creation. (see [below for nested schema](#nestedatt--additional_inference_specifications_to_add--containers--model_data_source)) - `model_data_url` (String) A structure with Model Input details. - `model_input` (Attributes) (see [below for nested schema](#nestedatt--additional_inference_specifications_to_add--containers--model_input)) - `nearest_model_name` (String) The name of a pre-trained machine learning benchmarked by Amazon SageMaker Inference Recommender model that matches your model. + +### Nested Schema for `additional_inference_specifications_to_add.containers.model_data_source` + +Read-Only: + +- `s3_data_source` (Attributes) Specifies the S3 location of ML model data to deploy. (see [below for nested schema](#nestedatt--additional_inference_specifications_to_add--containers--model_data_source--s3_data_source)) + + +### Nested Schema for `additional_inference_specifications_to_add.containers.model_data_source.s3_data_source` + +Read-Only: + +- `compression_type` (String) Specifies how the ML model data is prepared. +- `model_access_config` (Attributes) Specifies the access configuration file for the ML model. (see [below for nested schema](#nestedatt--additional_inference_specifications_to_add--containers--model_data_source--s3_data_source--model_access_config)) +- `s3_data_type` (String) Specifies the type of ML model data to deploy. +- `s3_uri` (String) Specifies the S3 path of ML model data to deploy. + + +### Nested Schema for `additional_inference_specifications_to_add.containers.model_data_source.s3_data_source.model_access_config` + +Read-Only: + +- `accept_eula` (Boolean) Specifies agreement to the model end-user license agreement (EULA). + + + + ### Nested Schema for `additional_inference_specifications_to_add.containers.model_input` @@ -285,10 +344,38 @@ Read-Only: - `framework_version` (String) The framework version of the Model Package Container Image. - `image` (String) The Amazon EC2 Container Registry (Amazon ECR) path where inference code is stored. - `image_digest` (String) An MD5 hash of the training algorithm that identifies the Docker image used for training. +- `model_data_source` (Attributes) Specifies the location of ML model data to deploy during endpoint creation. (see [below for nested schema](#nestedatt--inference_specification--containers--model_data_source)) - `model_data_url` (String) A structure with Model Input details. - `model_input` (Attributes) (see [below for nested schema](#nestedatt--inference_specification--containers--model_input)) - `nearest_model_name` (String) The name of a pre-trained machine learning benchmarked by Amazon SageMaker Inference Recommender model that matches your model. + +### Nested Schema for `inference_specification.containers.model_data_source` + +Read-Only: + +- `s3_data_source` (Attributes) Specifies the S3 location of ML model data to deploy. (see [below for nested schema](#nestedatt--inference_specification--containers--model_data_source--s3_data_source)) + + +### Nested Schema for `inference_specification.containers.model_data_source.s3_data_source` + +Read-Only: + +- `compression_type` (String) Specifies how the ML model data is prepared. +- `model_access_config` (Attributes) Specifies the access configuration file for the ML model. (see [below for nested schema](#nestedatt--inference_specification--containers--model_data_source--s3_data_source--model_access_config)) +- `s3_data_type` (String) Specifies the type of ML model data to deploy. +- `s3_uri` (String) Specifies the S3 path of ML model data to deploy. + + +### Nested Schema for `inference_specification.containers.model_data_source.s3_data_source.model_access_config` + +Read-Only: + +- `accept_eula` (Boolean) Specifies agreement to the model end-user license agreement (EULA). + + + + ### Nested Schema for `inference_specification.containers.model_input` @@ -310,6 +397,15 @@ Read-Only: - `repository` (String) The repository metadata. + +### Nested Schema for `model_card` + +Read-Only: + +- `model_card_content` (String) The content of the model card. +- `model_card_status` (String) The approval status of the model card within your organization. + + ### Nested Schema for `model_metrics` @@ -455,6 +551,14 @@ Read-Only: + +### Nested Schema for `security_config` + +Read-Only: + +- `kms_key_id` (String) The AWS KMS Key ID (KMSKeyId) used for encryption of model package information. + + ### Nested Schema for `source_algorithm_specification` diff --git a/docs/resources/codepipeline_pipeline.md b/docs/resources/codepipeline_pipeline.md index 260be2823..be54cea45 100644 --- a/docs/resources/codepipeline_pipeline.md +++ b/docs/resources/codepipeline_pipeline.md @@ -48,8 +48,10 @@ Required: Optional: +- `before_entry` (Attributes) The method to use before stage runs. (see [below for nested schema](#nestedatt--stages--before_entry)) - `blockers` (Attributes List) (see [below for nested schema](#nestedatt--stages--blockers)) - `on_failure` (Attributes) The method to use when a stage has not completed successfully (see [below for nested schema](#nestedatt--stages--on_failure)) +- `on_success` (Attributes) The method to use when a stage has completed successfully (see [below for nested schema](#nestedatt--stages--on_success)) ### Nested Schema for `stages.actions` @@ -98,6 +100,55 @@ Required: + +### Nested Schema for `stages.before_entry` + +Optional: + +- `conditions` (Attributes List) (see [below for nested schema](#nestedatt--stages--before_entry--conditions)) + + +### Nested Schema for `stages.before_entry.conditions` + +Optional: + +- `result` (String) The specified result for when the failure conditions are met, such as rolling back the stage +- `rules` (Attributes List) (see [below for nested schema](#nestedatt--stages--before_entry--conditions--rules)) + + +### Nested Schema for `stages.before_entry.conditions.rules` + +Optional: + +- `configuration` (String) The rule's configuration. These are key-value pairs that specify input values for a rule. +- `input_artifacts` (Attributes List) (see [below for nested schema](#nestedatt--stages--before_entry--conditions--rules--input_artifacts)) +- `name` (String) The rule declaration's name. +- `region` (String) The rule declaration's AWS Region, such as us-east-1. +- `role_arn` (String) The ARN of the IAM service role that performs the declared rule. This is assumed through the roleArn for the pipeline. +- `rule_type_id` (Attributes) Represents information about a rule type. (see [below for nested schema](#nestedatt--stages--before_entry--conditions--rules--rule_type_id)) + + +### Nested Schema for `stages.before_entry.conditions.rules.input_artifacts` + +Required: + +- `name` (String) The name of the artifact to be worked on (for example, "My App"). + + + +### Nested Schema for `stages.before_entry.conditions.rules.rule_type_id` + +Optional: + +- `category` (String) A category for the provider type for the rule. +- `owner` (String) The creator of the rule being called. Only AWS is supported. +- `provider` (String) The provider of the service being called by the rule. +- `version` (String) A string that describes the rule version. + + + + + ### Nested Schema for `stages.blockers` @@ -112,7 +163,98 @@ Required: Optional: +- `conditions` (Attributes List) (see [below for nested schema](#nestedatt--stages--on_failure--conditions)) +- `result` (String) The specified result for when the failure conditions are met, such as rolling back the stage + + +### Nested Schema for `stages.on_failure.conditions` + +Optional: + +- `result` (String) The specified result for when the failure conditions are met, such as rolling back the stage +- `rules` (Attributes List) (see [below for nested schema](#nestedatt--stages--on_failure--conditions--rules)) + + +### Nested Schema for `stages.on_failure.conditions.rules` + +Optional: + +- `configuration` (String) The rule's configuration. These are key-value pairs that specify input values for a rule. +- `input_artifacts` (Attributes List) (see [below for nested schema](#nestedatt--stages--on_failure--conditions--rules--input_artifacts)) +- `name` (String) The rule declaration's name. +- `region` (String) The rule declaration's AWS Region, such as us-east-1. +- `role_arn` (String) The ARN of the IAM service role that performs the declared rule. This is assumed through the roleArn for the pipeline. +- `rule_type_id` (Attributes) Represents information about a rule type. (see [below for nested schema](#nestedatt--stages--on_failure--conditions--rules--rule_type_id)) + + +### Nested Schema for `stages.on_failure.conditions.rules.input_artifacts` + +Required: + +- `name` (String) The name of the artifact to be worked on (for example, "My App"). + + + +### Nested Schema for `stages.on_failure.conditions.rules.rule_type_id` + +Optional: + +- `category` (String) A category for the provider type for the rule. +- `owner` (String) The creator of the rule being called. Only AWS is supported. +- `provider` (String) The provider of the service being called by the rule. +- `version` (String) A string that describes the rule version. + + + + + + +### Nested Schema for `stages.on_success` + +Optional: + +- `conditions` (Attributes List) (see [below for nested schema](#nestedatt--stages--on_success--conditions)) + + +### Nested Schema for `stages.on_success.conditions` + +Optional: + - `result` (String) The specified result for when the failure conditions are met, such as rolling back the stage +- `rules` (Attributes List) (see [below for nested schema](#nestedatt--stages--on_success--conditions--rules)) + + +### Nested Schema for `stages.on_success.conditions.rules` + +Optional: + +- `configuration` (String) The rule's configuration. These are key-value pairs that specify input values for a rule. +- `input_artifacts` (Attributes List) (see [below for nested schema](#nestedatt--stages--on_success--conditions--rules--input_artifacts)) +- `name` (String) The rule declaration's name. +- `region` (String) The rule declaration's AWS Region, such as us-east-1. +- `role_arn` (String) The ARN of the IAM service role that performs the declared rule. This is assumed through the roleArn for the pipeline. +- `rule_type_id` (Attributes) Represents information about a rule type. (see [below for nested schema](#nestedatt--stages--on_success--conditions--rules--rule_type_id)) + + +### Nested Schema for `stages.on_success.conditions.rules.input_artifacts` + +Required: + +- `name` (String) The name of the artifact to be worked on (for example, "My App"). + + + +### Nested Schema for `stages.on_success.conditions.rules.rule_type_id` + +Optional: + +- `category` (String) A category for the provider type for the rule. +- `owner` (String) The creator of the rule being called. Only AWS is supported. +- `provider` (String) The provider of the service being called by the rule. +- `version` (String) A string that describes the rule version. + + + diff --git a/docs/resources/deadline_fleet.md b/docs/resources/deadline_fleet.md index 6cc573055..eb616daac 100644 --- a/docs/resources/deadline_fleet.md +++ b/docs/resources/deadline_fleet.md @@ -19,13 +19,13 @@ Definition of AWS::Deadline::Fleet Resource Type - `configuration` (Attributes) (see [below for nested schema](#nestedatt--configuration)) - `display_name` (String) +- `farm_id` (String) - `max_worker_count` (Number) - `role_arn` (String) ### Optional - `description` (String) -- `farm_id` (String) - `min_worker_count` (Number) - `tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) diff --git a/docs/resources/deadline_queue.md b/docs/resources/deadline_queue.md index 9ba4599ba..11a9f4807 100644 --- a/docs/resources/deadline_queue.md +++ b/docs/resources/deadline_queue.md @@ -18,13 +18,13 @@ Definition of AWS::Deadline::Queue Resource Type ### Required - `display_name` (String) +- `farm_id` (String) ### Optional - `allowed_storage_profile_ids` (List of String) - `default_budget_action` (String) - `description` (String) -- `farm_id` (String) - `job_attachment_settings` (Attributes) (see [below for nested schema](#nestedatt--job_attachment_settings)) - `job_run_as_user` (Attributes) (see [below for nested schema](#nestedatt--job_run_as_user)) - `required_file_system_location_names` (List of String) diff --git a/docs/resources/deadline_storage_profile.md b/docs/resources/deadline_storage_profile.md index 4480146dd..f7fc1c2b1 100644 --- a/docs/resources/deadline_storage_profile.md +++ b/docs/resources/deadline_storage_profile.md @@ -18,11 +18,11 @@ Definition of AWS::Deadline::StorageProfile Resource Type ### Required - `display_name` (String) +- `farm_id` (String) - `os_family` (String) ### Optional -- `farm_id` (String) - `file_system_locations` (Attributes List) (see [below for nested schema](#nestedatt--file_system_locations)) ### Read-Only diff --git a/docs/resources/ec2_subnet.md b/docs/resources/ec2_subnet.md index b1ebe4ee6..b426d6d59 100644 --- a/docs/resources/ec2_subnet.md +++ b/docs/resources/ec2_subnet.md @@ -50,7 +50,8 @@ resource "awscc_ec2_subnet" "main" { - `availability_zone_id` (String) The AZ ID of the subnet. - `cidr_block` (String) The IPv4 CIDR block assigned to the subnet. If you update this property, we create a new subnet, and then delete the existing one. -- `enable_dns_64` (Boolean) Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. For more information, see [DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-nat64-dns64) in the *User Guide*. +- `enable_dns_64` (Boolean) Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. + You must first configure a NAT gateway in a public subnet (separate from the subnet containing the IPv6-only workloads). For example, the subnet containing the NAT gateway should have a ``0.0.0.0/0`` route pointing to the internet gateway. For more information, see [Configure DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-nat64-dns64.html#nat-gateway-nat64-dns64-walkthrough) in the *User Guide*. - `enable_lni_at_device_index` (Number) 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). - `ipv_4_ipam_pool_id` (String) An IPv4 IPAM pool ID for the subnet. - `ipv_4_netmask_length` (Number) An IPv4 netmask length for the subnet. diff --git a/docs/resources/ec2_transit_gateway_attachment.md b/docs/resources/ec2_transit_gateway_attachment.md index 7ed8b4036..923f67a88 100644 --- a/docs/resources/ec2_transit_gateway_attachment.md +++ b/docs/resources/ec2_transit_gateway_attachment.md @@ -39,7 +39,6 @@ Optional: - `appliance_mode_support` (String) Indicates whether to enable Ipv6 Support for Vpc Attachment. Valid Values: enable | disable - `dns_support` (String) Indicates whether to enable DNS Support for Vpc Attachment. Valid Values: enable | disable - `ipv_6_support` (String) Indicates whether to enable Ipv6 Support for Vpc Attachment. Valid Values: enable | disable -- `security_group_referencing_support` (String) Indicates whether to enable Security Group referencing support for Vpc Attachment. Valid Values: enable | disable diff --git a/docs/resources/ec2_transit_gateway_multicast_group_member.md b/docs/resources/ec2_transit_gateway_multicast_group_member.md index e6efc4d44..d9de28f5b 100644 --- a/docs/resources/ec2_transit_gateway_multicast_group_member.md +++ b/docs/resources/ec2_transit_gateway_multicast_group_member.md @@ -29,7 +29,6 @@ The AWS::EC2::TransitGatewayMulticastGroupMember registers and deregisters membe - `member_type` (String) The member type (for example, static). - `resource_id` (String) The ID of the resource. - `resource_type` (String) The type of resource, for example a VPC attachment. -- `source_type` (String) The source type. - `subnet_id` (String) The ID of the subnet. - `transit_gateway_attachment_id` (String) The ID of the transit gateway attachment. diff --git a/docs/resources/ec2_transit_gateway_multicast_group_source.md b/docs/resources/ec2_transit_gateway_multicast_group_source.md index 7c71870f8..c5505ea2f 100644 --- a/docs/resources/ec2_transit_gateway_multicast_group_source.md +++ b/docs/resources/ec2_transit_gateway_multicast_group_source.md @@ -26,7 +26,6 @@ The AWS::EC2::TransitGatewayMulticastGroupSource registers and deregisters membe - `group_member` (Boolean) Indicates that the resource is a transit gateway multicast group member. - `group_source` (Boolean) Indicates that the resource is a transit gateway multicast group member. - `id` (String) Uniquely identifies the resource. -- `member_type` (String) The member type (for example, static). - `resource_id` (String) The ID of the resource. - `resource_type` (String) The type of resource, for example a VPC attachment. - `source_type` (String) The source type. diff --git a/docs/resources/ecs_cluster.md b/docs/resources/ecs_cluster.md index f4dc74f67..6ad7eda50 100644 --- a/docs/resources/ecs_cluster.md +++ b/docs/resources/ecs_cluster.md @@ -41,7 +41,7 @@ resource "awscc_ecs_cluster" "this" { The [PutCapacityProvider](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutCapacityProvider.html) API operation is used to update the list of available capacity providers for a cluster after the cluster is created. - `cluster_name` (String) A user-generated string that you use to identify your cluster. If you don't specify a name, CFNlong generates a unique physical ID for the name. - `cluster_settings` (Attributes List) The settings to use when creating a cluster. This parameter is used to turn on CloudWatch Container Insights for a cluster. (see [below for nested schema](#nestedatt--cluster_settings)) -- `configuration` (Attributes) The execute command configuration for the cluster. (see [below for nested schema](#nestedatt--configuration)) +- `configuration` (Attributes) The execute command and managed storage configuration for the cluster. (see [below for nested schema](#nestedatt--configuration)) - `default_capacity_provider_strategy` (Attributes List) The default capacity provider strategy for the cluster. When services or tasks are run in the cluster with no launch type or capacity provider strategy specified, the default capacity provider strategy is used. (see [below for nested schema](#nestedatt--default_capacity_provider_strategy)) - `service_connect_defaults` (Attributes) Use this parameter to set a default Service Connect namespace. After you set a default Service Connect namespace, any new services with Service Connect turned on that are created in the cluster are added as client services in the namespace. This setting only applies to new services that set the ``enabled`` parameter to ``true`` in the ``ServiceConnectConfiguration``. You can set the namespace of each service individually in the ``ServiceConnectConfiguration`` to override this default parameter. Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. (see [below for nested schema](#nestedatt--service_connect_defaults)) @@ -76,7 +76,7 @@ Optional: Optional: - `execute_command_configuration` (Attributes) The details of the execute command configuration. (see [below for nested schema](#nestedatt--configuration--execute_command_configuration)) -- `managed_storage_configuration` (Attributes) (see [below for nested schema](#nestedatt--configuration--managed_storage_configuration)) +- `managed_storage_configuration` (Attributes) The details of the managed storage configuration. (see [below for nested schema](#nestedatt--configuration--managed_storage_configuration)) ### Nested Schema for `configuration.execute_command_configuration` @@ -110,8 +110,8 @@ Optional: Optional: -- `fargate_ephemeral_storage_kms_key_id` (String) -- `kms_key_id` (String) +- `fargate_ephemeral_storage_kms_key_id` (String) Specify the KMSlong key ID for the Fargate ephemeral storage. +- `kms_key_id` (String) Specify a KMSlong key ID to encrypt the managed storage. diff --git a/docs/resources/kinesisfirehose_delivery_stream.md b/docs/resources/kinesisfirehose_delivery_stream.md index dd30a9c35..b10e2a867 100644 --- a/docs/resources/kinesisfirehose_delivery_stream.md +++ b/docs/resources/kinesisfirehose_delivery_stream.md @@ -1111,6 +1111,10 @@ Required: - `msk_cluster_arn` (String) - `topic_name` (String) +Optional: + +- `read_from_timestamp` (String) + ### Nested Schema for `msk_source_configuration.authentication_configuration` diff --git a/docs/resources/kms_key.md b/docs/resources/kms_key.md index 374957aaf..aed7392a0 100644 --- a/docs/resources/kms_key.md +++ b/docs/resources/kms_key.md @@ -246,29 +246,30 @@ resource "awscc_kms_key" "this" { + ``HMAC_384`` + ``HMAC_512`` - + Asymmetric RSA key pairs + + Asymmetric RSA key pairs (encryption and decryption *or* signing and verification) + ``RSA_2048`` + ``RSA_3072`` + ``RSA_4096`` - + Asymmetric NIST-recommended elliptic curve key pairs + + Asymmetric NIST-recommended elliptic curve key pairs (signing and verification *or* deriving shared secrets) + ``ECC_NIST_P256`` (secp256r1) + ``ECC_NIST_P384`` (secp384r1) + ``ECC_NIST_P521`` (secp521r1) - + Other asymmetric elliptic curve key pairs + + Other asymmetric elliptic curve key pairs (signing and verification) + ``ECC_SECG_P256K1`` (secp256k1), commonly used for cryptocurrencies. - + SM2 key pairs (China Regions only) - + ``SM2`` + + SM2 key pairs (encryption and decryption *or* signing and verification *or* deriving shared secrets) + + ``SM2`` (China Regions only) - `key_usage` (String) Determines the [cryptographic operations](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) for which you can use the KMS key. The default value is ``ENCRYPT_DECRYPT``. This property is required for asymmetric KMS keys and HMAC KMS keys. You can't change the ``KeyUsage`` value after the KMS key is created. If you change the value of the ``KeyUsage`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value. Select only one valid value. - + For symmetric encryption KMS keys, omit the property or specify ``ENCRYPT_DECRYPT``. - + For asymmetric KMS keys with RSA key material, specify ``ENCRYPT_DECRYPT`` or ``SIGN_VERIFY``. - + For asymmetric KMS keys with ECC key material, specify ``SIGN_VERIFY``. - + For asymmetric KMS keys with SM2 (China Regions only) key material, specify ``ENCRYPT_DECRYPT`` or ``SIGN_VERIFY``. - + For HMAC KMS keys, specify ``GENERATE_VERIFY_MAC``. + + For symmetric encryption KMS keys, omit the parameter or specify ``ENCRYPT_DECRYPT``. + + For HMAC KMS keys (symmetric), specify ``GENERATE_VERIFY_MAC``. + + For asymmetric KMS keys with RSA key pairs, specify ``ENCRYPT_DECRYPT`` or ``SIGN_VERIFY``. + + For asymmetric KMS keys with NIST-recommended elliptic curve key pairs, specify ``SIGN_VERIFY`` or ``KEY_AGREEMENT``. + + For asymmetric KMS keys with ``ECC_SECG_P256K1`` key pairs specify ``SIGN_VERIFY``. + + For asymmetric KMS keys with SM2 key pairs (China Regions only), specify ``ENCRYPT_DECRYPT``, ``SIGN_VERIFY``, or ``KEY_AGREEMENT``. - `multi_region` (Boolean) Creates a multi-Region primary key that you can replicate in other AWS-Regions. You can't change the ``MultiRegion`` value after the KMS key is created. For a list of AWS-Regions in which multi-Region keys are supported, see [Multi-Region keys in](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) in the **. If you change the value of the ``MultiRegion`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value. @@ -304,8 +305,10 @@ resource "awscc_kms_key" "this" { Required: -- `key` (String) -- `value` (String) +- `key` (String) The key name of the tag. You can specify a value that's 1 to 128 Unicode characters in length and can't be prefixed with ``aws:``. digits, whitespace, ``_``, ``.``, ``:``, ``/``, ``=``, ``+``, ``@``, ``-``, and ``"``. + For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html). +- `value` (String) The value for the tag. You can specify a value that's 1 to 256 characters in length. You can use any of the following characters: the set of Unicode letters, digits, whitespace, ``_``, ``.``, ``/``, ``=``, ``+``, and ``-``. + For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html). ## Import diff --git a/docs/resources/lambda_function.md b/docs/resources/lambda_function.md index 8652cced0..f96aba425 100644 --- a/docs/resources/lambda_function.md +++ b/docs/resources/lambda_function.md @@ -227,6 +227,7 @@ Optional: - `s3_bucket` (String) An Amazon S3 bucket in the same AWS-Region as your function. The bucket can be in a different AWS-account. - `s3_key` (String) The Amazon S3 key of the deployment package. - `s3_object_version` (String) For versioned objects, the version of the deployment package object to use. +- `source_kms_key_arn` (String) - `zip_file` (String) (Node.js and Python) The source code of your Lambda function. If you include your function source inline with this parameter, CFN places it in a file named ``index`` and zips it to create a [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html). This zip file cannot exceed 4MB. For the ``Handler`` property, the first part of the handler identifier must be ``index``. For example, ``index.handler``. For JSON, you must escape quotes and special characters such as newline (``\n``) with a backslash. If you specify a function that interacts with an AWS CloudFormation custom resource, you don't have to write your own functions to send responses to the custom resource that invoked the function. AWS CloudFormation provides a response module ([cfn-response](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html)) that simplifies sending responses. See [Using Lambda with CloudFormation](https://docs.aws.amazon.com/lambda/latest/dg/services-cloudformation.html) for details. diff --git a/docs/resources/logs_delivery_destination.md b/docs/resources/logs_delivery_destination.md index 1385af11c..7610c3bbb 100644 --- a/docs/resources/logs_delivery_destination.md +++ b/docs/resources/logs_delivery_destination.md @@ -29,7 +29,7 @@ A delivery destination is an AWS resource that represents an AWS service that lo The policy must be in JSON string format. Length Constraints: Maximum length of 51200 -- `destination_resource_arn` (String) The ARN of the AWS resource that will receive the logs. +- `destination_resource_arn` (String) The ARN of the Amazon Web Services destination that this delivery destination represents. That Amazon Web Services destination can be a log group in CloudWatch Logs, an Amazon S3 bucket, or a delivery stream in Firehose. - `tags` (Attributes Set) The tags that have been assigned to this delivery destination. (see [below for nested schema](#nestedatt--tags)) ### Read-Only diff --git a/docs/resources/medialive_multiplexprogram.md b/docs/resources/medialive_multiplexprogram.md index 52cf193cf..15200c328 100644 --- a/docs/resources/medialive_multiplexprogram.md +++ b/docs/resources/medialive_multiplexprogram.md @@ -17,7 +17,6 @@ Resource schema for AWS::MediaLive::Multiplexprogram ### Optional -- `channel_id` (String) The MediaLive channel associated with the program. - `multiplex_id` (String) The ID of the multiplex that the program belongs to. - `multiplex_program_settings` (Attributes) The settings for this multiplex program. (see [below for nested schema](#nestedatt--multiplex_program_settings)) - `packet_identifiers_map` (Attributes) The packet identifier map for this multiplex program. (see [below for nested schema](#nestedatt--packet_identifiers_map)) @@ -27,6 +26,7 @@ Resource schema for AWS::MediaLive::Multiplexprogram ### Read-Only +- `channel_id` (String) The MediaLive channel associated with the program. - `id` (String) Uniquely identifies the resource. diff --git a/docs/resources/networkmanager_connect_attachment.md b/docs/resources/networkmanager_connect_attachment.md index 4328b426a..d13b22da3 100644 --- a/docs/resources/networkmanager_connect_attachment.md +++ b/docs/resources/networkmanager_connect_attachment.md @@ -24,6 +24,8 @@ AWS::NetworkManager::ConnectAttachment Resource Type Definition ### Optional +- `network_function_group_name` (String) The name of the network function group attachment. +- `proposed_network_function_group_change` (Attributes) The attachment to move from one network function group to another. (see [below for nested schema](#nestedatt--proposed_network_function_group_change)) - `proposed_segment_change` (Attributes) The attachment to move from one segment to another. (see [below for nested schema](#nestedatt--proposed_segment_change)) - `tags` (Attributes Set) Tags for the attachment. (see [below for nested schema](#nestedatt--tags)) @@ -49,6 +51,25 @@ Optional: - `protocol` (String) Tunnel protocol for connect attachment + +### Nested Schema for `proposed_network_function_group_change` + +Optional: + +- `attachment_policy_rule_number` (Number) The rule number in the policy document that applies to this change. +- `network_function_group_name` (String) The name of the network function group to change. +- `tags` (Attributes Set) The key-value tags that changed for the network function group. (see [below for nested schema](#nestedatt--proposed_network_function_group_change--tags)) + + +### Nested Schema for `proposed_network_function_group_change.tags` + +Required: + +- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + + + ### Nested Schema for `proposed_segment_change` diff --git a/docs/resources/networkmanager_core_network.md b/docs/resources/networkmanager_core_network.md index fd3ddd9a7..1bf971b45 100644 --- a/docs/resources/networkmanager_core_network.md +++ b/docs/resources/networkmanager_core_network.md @@ -76,6 +76,7 @@ resource "awscc_networkmanager_core_network" "example" { - `created_at` (String) The creation time of core network - `edges` (Attributes List) The edges within a core network. (see [below for nested schema](#nestedatt--edges)) - `id` (String) Uniquely identifies the resource. +- `network_function_groups` (Attributes List) The network function groups within a core network. (see [below for nested schema](#nestedatt--network_function_groups)) - `owner_account` (String) Owner of the core network - `segments` (Attributes List) The segments within a core network. (see [below for nested schema](#nestedatt--segments)) - `state` (String) The state of core network @@ -99,6 +100,25 @@ Read-Only: - `inside_cidr_blocks` (List of String) + +### Nested Schema for `network_function_groups` + +Read-Only: + +- `edge_locations` (List of String) +- `name` (String) Name of network function group +- `segments` (Attributes) (see [below for nested schema](#nestedatt--network_function_groups--segments)) + + +### Nested Schema for `network_function_groups.segments` + +Read-Only: + +- `send_to` (List of String) +- `send_via` (List of String) + + + ### Nested Schema for `segments` diff --git a/docs/resources/networkmanager_site_to_site_vpn_attachment.md b/docs/resources/networkmanager_site_to_site_vpn_attachment.md index 13e4887b1..44838da47 100644 --- a/docs/resources/networkmanager_site_to_site_vpn_attachment.md +++ b/docs/resources/networkmanager_site_to_site_vpn_attachment.md @@ -22,6 +22,8 @@ AWS::NetworkManager::SiteToSiteVpnAttachment Resource Type definition. ### Optional +- `network_function_group_name` (String) The name of the network function group attachment. +- `proposed_network_function_group_change` (Attributes) The attachment to move from one network function group to another. (see [below for nested schema](#nestedatt--proposed_network_function_group_change)) - `proposed_segment_change` (Attributes) The attachment to move from one segment to another. (see [below for nested schema](#nestedatt--proposed_segment_change)) - `tags` (Attributes Set) Tags for the attachment. (see [below for nested schema](#nestedatt--tags)) @@ -40,6 +42,25 @@ AWS::NetworkManager::SiteToSiteVpnAttachment Resource Type definition. - `state` (String) The state of the attachment. - `updated_at` (String) Last update time of the attachment. + +### Nested Schema for `proposed_network_function_group_change` + +Optional: + +- `attachment_policy_rule_number` (Number) The rule number in the policy document that applies to this change. +- `network_function_group_name` (String) The name of the network function group to change. +- `tags` (Attributes Set) The key-value tags that changed for the network function group. (see [below for nested schema](#nestedatt--proposed_network_function_group_change--tags)) + + +### Nested Schema for `proposed_network_function_group_change.tags` + +Required: + +- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + + + ### Nested Schema for `proposed_segment_change` diff --git a/docs/resources/networkmanager_transit_gateway_route_table_attachment.md b/docs/resources/networkmanager_transit_gateway_route_table_attachment.md index c565edbf0..db91b8b43 100644 --- a/docs/resources/networkmanager_transit_gateway_route_table_attachment.md +++ b/docs/resources/networkmanager_transit_gateway_route_table_attachment.md @@ -22,6 +22,8 @@ AWS::NetworkManager::TransitGatewayRouteTableAttachment Resource Type definition ### Optional +- `network_function_group_name` (String) The name of the network function group attachment. +- `proposed_network_function_group_change` (Attributes) The attachment to move from one network function group to another. (see [below for nested schema](#nestedatt--proposed_network_function_group_change)) - `proposed_segment_change` (Attributes) The attachment to move from one segment to another. (see [below for nested schema](#nestedatt--proposed_segment_change)) - `tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) @@ -41,6 +43,25 @@ AWS::NetworkManager::TransitGatewayRouteTableAttachment Resource Type definition - `state` (String) The state of the attachment. - `updated_at` (String) Last update time of the attachment. + +### Nested Schema for `proposed_network_function_group_change` + +Optional: + +- `attachment_policy_rule_number` (Number) The rule number in the policy document that applies to this change. +- `network_function_group_name` (String) The name of the network function group to change. +- `tags` (Attributes Set) The key-value tags that changed for the network function group. (see [below for nested schema](#nestedatt--proposed_network_function_group_change--tags)) + + +### Nested Schema for `proposed_network_function_group_change.tags` + +Required: + +- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + + + ### Nested Schema for `proposed_segment_change` diff --git a/docs/resources/networkmanager_vpc_attachment.md b/docs/resources/networkmanager_vpc_attachment.md index 8b86fb958..08932a61e 100644 --- a/docs/resources/networkmanager_vpc_attachment.md +++ b/docs/resources/networkmanager_vpc_attachment.md @@ -24,6 +24,7 @@ AWS::NetworkManager::VpcAttachment Resoruce Type ### Optional - `options` (Attributes) Vpc options of the attachment. (see [below for nested schema](#nestedatt--options)) +- `proposed_network_function_group_change` (Attributes) The attachment to move from one network function group to another. (see [below for nested schema](#nestedatt--proposed_network_function_group_change)) - `proposed_segment_change` (Attributes) The attachment to move from one segment to another. (see [below for nested schema](#nestedatt--proposed_segment_change)) - `tags` (Attributes Set) Tags for the attachment. (see [below for nested schema](#nestedatt--tags)) @@ -36,6 +37,7 @@ AWS::NetworkManager::VpcAttachment Resoruce Type - `created_at` (String) Creation time of the attachment. - `edge_location` (String) The Region where the edge is located. - `id` (String) Uniquely identifies the resource. +- `network_function_group_name` (String) The name of the network function group attachment. - `owner_account_id` (String) Owner account of the attachment. - `resource_arn` (String) The ARN of the Resource. - `segment_name` (String) The name of the segment attachment.. @@ -51,6 +53,25 @@ Optional: - `ipv_6_support` (Boolean) Indicates whether to enable Ipv6 Support for Vpc Attachment. Valid Values: enable | disable + +### Nested Schema for `proposed_network_function_group_change` + +Optional: + +- `attachment_policy_rule_number` (Number) The rule number in the policy document that applies to this change. +- `network_function_group_name` (String) The name of the network function group to change. +- `tags` (Attributes Set) The key-value tags that changed for the network function group. (see [below for nested schema](#nestedatt--proposed_network_function_group_change--tags)) + + +### Nested Schema for `proposed_network_function_group_change.tags` + +Required: + +- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + + + ### Nested Schema for `proposed_segment_change` diff --git a/docs/resources/osis_pipeline.md b/docs/resources/osis_pipeline.md index 38ff84605..8cee1317c 100644 --- a/docs/resources/osis_pipeline.md +++ b/docs/resources/osis_pipeline.md @@ -122,8 +122,18 @@ Required: Optional: - `security_group_ids` (List of String) A list of security groups associated with the VPC endpoint. +- `vpc_attachment_options` (Attributes) Options for attaching a VPC to the pipeline. (see [below for nested schema](#nestedatt--vpc_options--vpc_attachment_options)) - `vpc_endpoint_management` (String) Defines whether you or Amazon OpenSearch Ingestion service create and manage the VPC endpoint configured for the pipeline. + +### Nested Schema for `vpc_options.vpc_attachment_options` + +Required: + +- `attach_to_vpc` (Boolean) Whether the pipeline should be attached to the provided VPC +- `cidr_block` (String) The CIDR block to be reserved for OpenSearch Ingestion to create elastic network interfaces (ENIs). + + ### Nested Schema for `vpc_endpoints` @@ -141,8 +151,17 @@ Read-Only: - `security_group_ids` (List of String) A list of security groups associated with the VPC endpoint. - `subnet_ids` (List of String) A list of subnet IDs associated with the VPC endpoint. +- `vpc_attachment_options` (Attributes) Options for attaching a VPC to the pipeline. (see [below for nested schema](#nestedatt--vpc_endpoints--vpc_options--vpc_attachment_options)) - `vpc_endpoint_management` (String) Defines whether you or Amazon OpenSearch Ingestion service create and manage the VPC endpoint configured for the pipeline. + +### Nested Schema for `vpc_endpoints.vpc_options.vpc_attachment_options` + +Read-Only: + +- `attach_to_vpc` (Boolean) Whether the pipeline should be attached to the provided VPC +- `cidr_block` (String) The CIDR block to be reserved for OpenSearch Ingestion to create elastic network interfaces (ENIs). + ## Import Import is supported using the following syntax: diff --git a/docs/resources/rds_db_cluster.md b/docs/resources/rds_db_cluster.md index b69e9668c..1373be727 100644 --- a/docs/resources/rds_db_cluster.md +++ b/docs/resources/rds_db_cluster.md @@ -9,7 +9,7 @@ description: |- Updating DB clusters When properties labeled "Update requires: Replacement https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement" are updated, AWS CloudFormation first creates a replacement DB cluster, then changes references from other dependent resources to point to the replacement DB cluster, and finally deletes the old DB cluster. We highly recommend that you take a snapshot of the database before updating the stack. If you don't, you lose the data when AWS CloudFormation replaces your DB cluster. To preserve your data, perform the following procedure: - Deactivate any applications that are using the DB cluster so that there's no activity on the DB instance.Create a snapshot of the DB cluster. For more information, see Creating a DB Cluster Snapshot https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_CreateSnapshotCluster.html.If you want to restore your DB cluster using a DB cluster snapshot, modify the updated template with your DB cluster changes and add the SnapshotIdentifier property with the ID of the DB cluster snapshot that you want to use. + Deactivate any applications that are using the DB cluster so that there's no activity on the DB instance.Create a snapshot of the DB cluster. For more information, see Creating a DB cluster snapshot https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_CreateSnapshotCluster.html.If you want to restore your DB cluster using a DB cluster snapshot, modify the updated template with your DB cluster changes and add the SnapshotIdentifier property with the ID of the DB cluster snapshot that you want to use. After you restore a DB cluster with a SnapshotIdentifier property, you must specify the same SnapshotIdentifier property for any future updates to the DB cluster. When you specify this property for an update, the DB cluster is not restored from the DB cluster snapshot again, and the data in the database is not changed. However, if you don't specify the SnapshotIdentifier property, an empty DB cluster is created, and the original DB cluster is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB cluster is restored from the specified SnapshotIdentifier property, and the original DB cluster is deleted.Update the stack. Currently, when you are updating the stack for an Aurora Serverless DB cluster, you can't include changes to any other properties when you specify one of the following properties: PreferredBackupWindow, PreferredMaintenanceWindow, and Port. This limitation doesn't apply to provisioned DB clusters. For more information about updating other properties of this resource, see ModifyDBCluster. For more information about updating stacks, see CloudFormation Stacks Updates https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html. @@ -23,11 +23,11 @@ The ``AWS::RDS::DBCluster`` resource creates an Amazon Aurora DB cluster or Mult For more information about creating an Aurora DB cluster, see [Creating an Amazon Aurora DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) in the *Amazon Aurora User Guide*. For more information about creating a Multi-AZ DB cluster, see [Creating a Multi-AZ DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/create-multi-az-db-cluster.html) in the *Amazon RDS User Guide*. You can only create this resource in AWS Regions where Amazon Aurora or Multi-AZ DB clusters are supported. - *Updating DB clusters* + *Updating DB clusters* When properties labeled "*Update requires:* [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" are updated, AWS CloudFormation first creates a replacement DB cluster, then changes references from other dependent resources to point to the replacement DB cluster, and finally deletes the old DB cluster. We highly recommend that you take a snapshot of the database before updating the stack. If you don't, you lose the data when AWS CloudFormation replaces your DB cluster. To preserve your data, perform the following procedure: 1. Deactivate any applications that are using the DB cluster so that there's no activity on the DB instance. - 1. Create a snapshot of the DB cluster. For more information, see [Creating a DB Cluster Snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_CreateSnapshotCluster.html). + 1. Create a snapshot of the DB cluster. For more information, see [Creating a DB cluster snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_CreateSnapshotCluster.html). 1. If you want to restore your DB cluster using a DB cluster snapshot, modify the updated template with your DB cluster changes and add the ``SnapshotIdentifier`` property with the ID of the DB cluster snapshot that you want to use. After you restore a DB cluster with a ``SnapshotIdentifier`` property, you must specify the same ``SnapshotIdentifier`` property for any future updates to the DB cluster. When you specify this property for an update, the DB cluster is not restored from the DB cluster snapshot again, and the data in the database is not changed. However, if you don't specify the ``SnapshotIdentifier`` property, an empty DB cluster is created, and the original DB cluster is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB cluster is restored from the specified ``SnapshotIdentifier`` property, and the original DB cluster is deleted. 1. Update the stack. @@ -65,13 +65,11 @@ resource "awscc_rds_db_cluster" "example_db_cluster" { Valid for Cluster Type: Multi-AZ DB clusters only - `availability_zones` (List of String) A list of Availability Zones (AZs) where instances in the DB cluster can be created. For information on AWS Regions and Availability Zones, see [Choosing the Regions and Availability Zones](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.RegionsAndAvailabilityZones.html) in the *Amazon Aurora User Guide*. Valid for: Aurora DB clusters only -- `backtrack_window` (Number) The target backtrack window, in seconds. To disable backtracking, set this value to 0. - Currently, Backtrack is only supported for Aurora MySQL DB clusters. - Default: 0 +- `backtrack_window` (Number) The target backtrack window, in seconds. To disable backtracking, set this value to ``0``. + Valid for Cluster Type: Aurora MySQL DB clusters only + Default: ``0`` Constraints: + If specified, this value must be set to a number from 0 to 259,200 (72 hours). - - Valid for: Aurora MySQL DB clusters only - `backup_retention_period` (Number) The number of days for which automated backups are retained. Default: 1 Constraints: @@ -303,7 +301,7 @@ resource "awscc_rds_db_cluster" "example_db_cluster" { + ``full-copy`` - The new DB cluster is restored as a full copy of the source DB cluster. + ``copy-on-write`` - The new DB cluster is restored as a clone of the source DB cluster. - If you don't specify a ``RestoreType`` value, then the new DB cluster is restored as a full copy of the source DB cluster. + If you don't specify a ``RestoreType`` value, then the new DB cluster is restored as a full copy of the source DB cluster. Valid for: Aurora DB clusters and Multi-AZ DB clusters - `scaling_configuration` (Attributes) 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. @@ -357,8 +355,8 @@ resource "awscc_rds_db_cluster" "example_db_cluster" { + Multi-AZ DB clusters - ``io1`` When you create an Aurora DB cluster with the storage type set to ``aurora-iopt1``, the storage type is returned in the response. The storage type isn't returned when you set it to ``aurora``. -- `tags` (Attributes Set) An optional array of key-value pairs to apply to this DB cluster. - Valid for: Aurora DB clusters and Multi-AZ DB clusters (see [below for nested schema](#nestedatt--tags)) +- `tags` (Attributes Set) Tags to assign to the DB cluster. + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters (see [below for nested schema](#nestedatt--tags)) - `use_latest_restorable_time` (Boolean) A value that indicates whether to restore the DB cluster to the latest restorable backup time. By default, the DB cluster is not restored to the latest restorable backup time. Valid for: Aurora DB clusters and Multi-AZ DB clusters - `vpc_security_group_ids` (List of String) A list of EC2 VPC security groups to associate with this DB cluster. diff --git a/docs/resources/rds_db_cluster_parameter_group.md b/docs/resources/rds_db_cluster_parameter_group.md index 7832dd206..ae3698c3b 100644 --- a/docs/resources/rds_db_cluster_parameter_group.md +++ b/docs/resources/rds_db_cluster_parameter_group.md @@ -5,7 +5,7 @@ description: |- The AWS::RDS::DBClusterParameterGroup resource creates a new Amazon RDS DB cluster parameter group. For information about configuring parameters for Amazon Aurora DB clusters, see Working with parameter groups https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html in the Amazon Aurora User Guide. If you apply a parameter group to a DB cluster, then its DB instances might need to reboot. This can result in an outage while the DB instances are rebooting. - If you apply a change to parameter group associated with a stopped DB cluster, then the update stack waits until the DB cluster is started. + If you apply a change to parameter group associated with a stopped DB cluster, then the updated stack waits until the DB cluster is started. --- # awscc_rds_db_cluster_parameter_group (Resource) @@ -13,7 +13,7 @@ description: |- The ``AWS::RDS::DBClusterParameterGroup`` resource creates a new Amazon RDS DB cluster parameter group. For information about configuring parameters for Amazon Aurora DB clusters, see [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*. If you apply a parameter group to a DB cluster, then its DB instances might need to reboot. This can result in an outage while the DB instances are rebooting. - If you apply a change to parameter group associated with a stopped DB cluster, then the update stack waits until the DB cluster is started. + If you apply a change to parameter group associated with a stopped DB cluster, then the updated stack waits until the DB cluster is started. ## Example Usage @@ -45,13 +45,26 @@ resource "awscc_rds_db_cluster_parameter_group" "this" { ### Required -- `description` (String) A friendly description for this DB cluster parameter group. -- `family` (String) The DB cluster parameter group family name. A DB cluster parameter group can be associated with one and only one DB cluster parameter group family, and can be applied only to a DB cluster running a DB engine and engine version compatible with that DB cluster parameter group family. - The DB cluster parameter group family can't be changed when updating a DB cluster parameter group. - To list all of the available parameter group families, use the following command: - ``aws rds describe-db-engine-versions --query "DBEngineVersions[].DBParameterGroupFamily"`` - The output contains duplicates. - For more information, see ``CreateDBClusterParameterGroup``. +- `description` (String) The description for the DB cluster parameter group. +- `family` (String) The DB cluster parameter group family name. A DB cluster parameter group can be associated with one and only one DB cluster parameter group family, and can be applied only to a DB cluster running a database engine and engine version compatible with that DB cluster parameter group family. + *Aurora MySQL* + Example: ``aurora-mysql5.7``, ``aurora-mysql8.0`` + *Aurora PostgreSQL* + Example: ``aurora-postgresql14`` + *RDS for MySQL* + Example: ``mysql8.0`` + *RDS for PostgreSQL* + Example: ``postgres13`` + To list all of the available parameter group families for a DB engine, use the following command: + ``aws rds describe-db-engine-versions --query "DBEngineVersions[].DBParameterGroupFamily" --engine `` + For example, to list all of the available parameter group families for the Aurora PostgreSQL DB engine, use the following command: + ``aws rds describe-db-engine-versions --query "DBEngineVersions[].DBParameterGroupFamily" --engine aurora-postgresql`` + The output contains duplicates. + The following are the valid DB engine values: + + ``aurora-mysql`` + + ``aurora-postgresql`` + + ``mysql`` + + ``postgres`` - `parameters` (String) Provides a list of parameters for the DB cluster parameter group. ### Optional @@ -60,9 +73,8 @@ resource "awscc_rds_db_cluster_parameter_group" "this" { Constraints: + Must not match the name of an existing DB cluster parameter group. - If you don't specify a value for ``DBClusterParameterGroupName`` property, a name is automatically created for the DB cluster parameter group. This value is stored as a lowercase string. -- `tags` (Attributes List) An optional array of key-value pairs to apply to this DB cluster parameter group. (see [below for nested schema](#nestedatt--tags)) +- `tags` (Attributes List) Tags to assign to the DB cluster parameter group. (see [below for nested schema](#nestedatt--tags)) ### Read-Only diff --git a/docs/resources/rds_db_instance.md b/docs/resources/rds_db_instance.md index 5a65f505d..f3546ec99 100644 --- a/docs/resources/rds_db_instance.md +++ b/docs/resources/rds_db_instance.md @@ -26,7 +26,7 @@ The ``AWS::RDS::DBInstance`` resource creates an Amazon DB instance. The new DB For more information about creating a DB instance in an Aurora DB cluster, see [Creating an Amazon Aurora DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) in the *Amazon Aurora User Guide*. If you import an existing DB instance, and the template configuration doesn't match the actual configuration of the DB instance, AWS CloudFormation applies the changes in the template during the import operation. If a DB instance is deleted or replaced during an update, AWS CloudFormation deletes all automated snapshots. However, it retains manual DB snapshots. During an update that requires replacement, you can apply a stack policy to prevent DB instances from being replaced. For more information, see [Prevent Updates to Stack Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html). - *Updating DB instances* + *Updating DB instances* When properties labeled "*Update requires:* [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" are updated, AWS CloudFormation first creates a replacement DB instance, then changes references from other dependent resources to point to the replacement DB instance, and finally deletes the old DB instance. We highly recommend that you take a snapshot of the database before updating the stack. If you don't, you lose the data when AWS CloudFormation replaces your DB instance. To preserve your data, perform the following procedure: 1. Deactivate any applications that are using the DB instance so that there's no activity on the DB instance. @@ -198,7 +198,7 @@ resource "awscc_rds_db_instance" "this" { Not applicable. The associated roles are managed by the DB cluster. (see [below for nested schema](#nestedatt--associated_roles)) - `auto_minor_version_upgrade` (Boolean) A value that indicates whether minor engine upgrades are applied automatically to the DB instance during the maintenance window. By default, minor engine upgrades are applied automatically. - `automatic_backup_replication_kms_key_id` (String) The AWS KMS key identifier for encryption of the replicated automated backups. The KMS key ID is the Amazon Resource Name (ARN) for the KMS encryption key in the destination AWS-Region, for example, ``arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE``. -- `automatic_backup_replication_region` (String) +- `automatic_backup_replication_region` (String) The AWS-Region associated with the automated backup. - `availability_zone` (String) The Availability Zone (AZ) where the database will be created. For information on AWS-Regions and Availability Zones, see [Regions and Availability Zones](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html). For Amazon Aurora, each Aurora DB cluster hosts copies of its storage in three separate Availability Zones. Specify one of these Availability Zones. Aurora automatically chooses an appropriate Availability Zone if you don't specify one. Default: A random, system-chosen Availability Zone in the endpoint's AWS-Region. @@ -238,7 +238,8 @@ resource "awscc_rds_db_instance" "this" { + The instance profile name and the associated IAM role name must start with the prefix ``AWSRDSCustom``. For the list of permissions required for the IAM role, see [Configure IAM and your VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-setup-orcl.html#custom-setup-orcl.iam-vpc) in the *Amazon RDS User Guide*. -- `db_cluster_identifier` (String) The identifier of the DB cluster that the instance will belong to. +- `db_cluster_identifier` (String) The identifier of the DB cluster that this DB instance will belong to. + This setting doesn't apply to RDS Custom DB instances. - `db_cluster_snapshot_identifier` (String) The identifier for the Multi-AZ DB cluster snapshot to restore from. For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) in the *Amazon RDS User Guide*. Constraints: @@ -343,16 +344,14 @@ resource "awscc_rds_db_instance" "this" { Not applicable. Snapshot restore is managed by the DB cluster. - `db_subnet_group_name` (String) A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC. If there's no DB subnet group, then the DB instance isn't a VPC DB instance. - For more information about using Amazon RDS in a VPC, see [Using Amazon RDS with Amazon Virtual Private Cloud (VPC)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*. - *Amazon Aurora* - Not applicable. The DB subnet group is managed by the DB cluster. If specified, the setting must match the DB cluster setting. + For more information about using Amazon RDS in a VPC, see [Amazon VPC and Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*. + This setting doesn't apply to Amazon Aurora DB instances. The DB subnet group is managed by the DB cluster. If specified, the setting must match the DB cluster setting. - `dedicated_log_volume` (Boolean) Indicates whether the DB instance has a dedicated log volume (DLV) enabled. - `delete_automated_backups` (Boolean) A value that indicates whether to remove automated backups immediately after the DB instance is deleted. This parameter isn't case-sensitive. The default is to remove automated backups immediately after the DB instance is deleted. *Amazon Aurora* Not applicable. When you delete a DB cluster, all automated backups for that DB cluster are deleted and can't be recovered. Manual DB cluster snapshots of the DB cluster are not deleted. -- `deletion_protection` (Boolean) A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. For more information, see [Deleting a DB Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html). - *Amazon Aurora* - Not applicable. You can enable or disable deletion protection for the DB cluster. For more information, see ``CreateDBCluster``. DB instances in a DB cluster can be deleted even when deletion protection is enabled for the DB cluster. +- `deletion_protection` (Boolean) Specifies whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection isn't enabled. For more information, see [Deleting a DB Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html). + This setting doesn't apply to Amazon Aurora DB instances. You can enable or disable deletion protection for the DB cluster. For more information, see ``CreateDBCluster``. DB instances in a DB cluster can be deleted even when deletion protection is enabled for the DB cluster. - `domain` (String) The Active Directory directory ID to create the DB instance in. Currently, only Db2, MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain. For more information, see [Kerberos Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html) in the *Amazon RDS User Guide*. - `domain_auth_secret_arn` (String) The ARN for the Secrets Manager secret with the credentials for the user joining the domain. @@ -507,30 +506,30 @@ resource "awscc_rds_db_instance" "this" { *RDS for MariaDB* Constraints: - + Must be 1 to 16 letters or numbers. + + Must be 1 to 16 letters or numbers. + Can't be a reserved word for the chosen database engine. *RDS for Microsoft SQL Server* Constraints: - + Must be 1 to 128 letters or numbers. + + Must be 1 to 128 letters or numbers. + First character must be a letter. + Can't be a reserved word for the chosen database engine. *RDS for MySQL* Constraints: - + Must be 1 to 16 letters or numbers. + + Must be 1 to 16 letters or numbers. + First character must be a letter. + Can't be a reserved word for the chosen database engine. *RDS for Oracle* Constraints: - + Must be 1 to 30 letters or numbers. + + Must be 1 to 30 letters or numbers. + First character must be a letter. + Can't be a reserved word for the chosen database engine. *RDS for PostgreSQL* Constraints: - + Must be 1 to 63 letters or numbers. + + Must be 1 to 63 letters or numbers. + First character must be a letter. + Can't be a reserved word for the chosen database engine. - `max_allocated_storage` (Number) The upper limit in gibibytes (GiB) to which Amazon RDS can automatically scale the storage of the DB instance. @@ -538,17 +537,18 @@ resource "awscc_rds_db_instance" "this" { This setting doesn't apply to the following DB instances: + Amazon Aurora (Storage is managed by the DB cluster.) + RDS Custom -- `monitoring_interval` (Number) The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collection of Enhanced Monitoring metrics, specify 0. The default is 0. - If ``MonitoringRoleArn`` is specified, then you must set ``MonitoringInterval`` to a value other than 0. - This setting doesn't apply to RDS Custom. - Valid Values: ``0, 1, 5, 10, 15, 30, 60`` +- `monitoring_interval` (Number) The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collection of Enhanced Monitoring metrics, specify ``0``. + If ``MonitoringRoleArn`` is specified, then you must set ``MonitoringInterval`` to a value other than ``0``. + This setting doesn't apply to RDS Custom DB instances. + Valid Values: ``0 | 1 | 5 | 10 | 15 | 30 | 60`` + Default: ``0`` - `monitoring_role_arn` (String) The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs. For example, ``arn:aws:iam:123456789012:role/emaccess``. For information on creating a monitoring role, see [Setting Up and Enabling Enhanced Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.Enabling) in the *Amazon RDS User Guide*. If ``MonitoringInterval`` is set to a value other than ``0``, then you must supply a ``MonitoringRoleArn`` value. This setting doesn't apply to RDS Custom DB instances. -- `multi_az` (Boolean) Specifies whether the database instance is a Multi-AZ DB instance deployment. You can't set the ``AvailabilityZone`` parameter if the ``MultiAZ`` parameter is set to true. - For more information, see [Multi-AZ deployments for high availability](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html) in the *Amazon RDS User Guide*. - *Amazon Aurora* - Not applicable. Amazon Aurora storage is replicated across all of the Availability Zones and doesn't require the ``MultiAZ`` option to be set. +- `multi_az` (Boolean) Specifies whether the DB instance is a Multi-AZ deployment. You can't set the ``AvailabilityZone`` parameter if the DB instance is a Multi-AZ deployment. + This setting doesn't apply to the following DB instances: + + Amazon Aurora (DB instance Availability Zones (AZs) are managed by the DB cluster.) + + RDS Custom - `nchar_character_set_name` (String) The name of the NCHAR character set for the Oracle DB instance. This setting doesn't apply to RDS Custom DB instances. - `network_type` (String) The network type of the DB instance. @@ -574,10 +574,18 @@ resource "awscc_rds_db_instance" "this" { Default: ``7`` days If you specify a retention period that isn't valid, such as ``94``, Amazon RDS returns an error. - `port` (String) The port number on which the database accepts connections. - *Amazon Aurora* - Not applicable. The port number is managed by the DB cluster. - *Db2* - Default value: ``50000`` + This setting doesn't apply to Aurora DB instances. The port number is managed by the cluster. + Valid Values: ``1150-65535`` + Default: + + RDS for Db2 - ``50000`` + + RDS for MariaDB - ``3306`` + + RDS for Microsoft SQL Server - ``1433`` + + RDS for MySQL - ``3306`` + + RDS for Oracle - ``1521`` + + RDS for PostgreSQL - ``5432`` + + Constraints: + + For RDS for Microsoft SQL Server, the value can't be ``1234``, ``1434``, ``3260``, ``3343``, ``3389``, ``47001``, or ``49152-49156``. - `preferred_backup_window` (String) The daily time range during which automated backups are created if automated backups are enabled, using the ``BackupRetentionPeriod`` parameter. For more information, see [Backup Window](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html#USER_WorkingWithAutomatedBackups.BackupWindow) in the *Amazon RDS User Guide.* Constraints: + Must be in the format ``hh24:mi-hh24:mi``. @@ -645,7 +653,7 @@ resource "awscc_rds_db_instance" "this" { This setting doesn't apply to Amazon Aurora DB instances. Storage is managed by the DB cluster. Valid Values: ``gp2 | gp3 | io1 | io2 | standard`` Default: ``io1``, if the ``Iops`` parameter is specified. Otherwise, ``gp2``. -- `tags` (Attributes List) An optional array of key-value pairs to apply to this DB instance. (see [below for nested schema](#nestedatt--tags)) +- `tags` (Attributes List) Tags to assign to the DB instance. (see [below for nested schema](#nestedatt--tags)) - `tde_credential_arn` (String) - `tde_credential_password` (String) - `timezone` (String) The time zone of the DB instance. The time zone parameter is currently supported only by [RDS for Db2](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/db2-time-zone) and [RDS for SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.TimeZone). diff --git a/docs/resources/rds_db_parameter_group.md b/docs/resources/rds_db_parameter_group.md index c23559fff..469c8fcd4 100644 --- a/docs/resources/rds_db_parameter_group.md +++ b/docs/resources/rds_db_parameter_group.md @@ -76,12 +76,27 @@ resource "awscc_rds_db_parameter_group" "this" { ### Required - `description` (String) Provides the customer-specified description for this DB parameter group. -- `family` (String) The DB parameter group family name. A DB parameter group can be associated with one and only one DB parameter group family, and can be applied only to a DB instance running a DB engine and engine version compatible with that DB parameter group family. - The DB parameter group family can't be changed when updating a DB parameter group. - To list all of the available parameter group families, use the following command: - ``aws rds describe-db-engine-versions --query "DBEngineVersions[].DBParameterGroupFamily"`` - The output contains duplicates. - For more information, see ``CreateDBParameterGroup``. +- `family` (String) The DB parameter group family name. A DB parameter group can be associated with one and only one DB parameter group family, and can be applied only to a DB instance running a database engine and engine version compatible with that DB parameter group family. + To list all of the available parameter group families for a DB engine, use the following command: + ``aws rds describe-db-engine-versions --query "DBEngineVersions[].DBParameterGroupFamily" --engine `` + For example, to list all of the available parameter group families for the MySQL DB engine, use the following command: + ``aws rds describe-db-engine-versions --query "DBEngineVersions[].DBParameterGroupFamily" --engine mysql`` + The output contains duplicates. + The following are the valid DB engine values: + + ``aurora-mysql`` + + ``aurora-postgresql`` + + ``db2-ae`` + + ``db2-se`` + + ``mysql`` + + ``oracle-ee`` + + ``oracle-ee-cdb`` + + ``oracle-se2`` + + ``oracle-se2-cdb`` + + ``postgres`` + + ``sqlserver-ee`` + + ``sqlserver-se`` + + ``sqlserver-ex`` + + ``sqlserver-web`` ### Optional @@ -93,13 +108,10 @@ resource "awscc_rds_db_parameter_group" "this" { If you don't specify a value for ``DBParameterGroupName`` property, a name is automatically created for the DB parameter group. This value is stored as a lowercase string. -- `parameters` (String) An array of parameter names and values for the parameter update. At least one parameter name and value must be supplied. Subsequent arguments are optional. - RDS for Db2 requires you to bring your own Db2 license. You must enter your IBM customer ID (``rds.ibm_customer_id``) and site number (``rds.ibm_site_id``) before starting a Db2 instance. - For more information about DB parameters and DB parameter groups for Amazon RDS DB engines, see [Working with DB Parameter Groups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html) in the *Amazon RDS User Guide*. - For more information about DB cluster and DB instance parameters and parameter groups for Amazon Aurora DB engines, see [Working with DB Parameter Groups and DB Cluster Parameter Groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*. +- `parameters` (String) An array of parameter names and values for the parameter update. You must specify at least one parameter name and value. + For more information about parameter groups, see [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html) in the *Amazon RDS User Guide*, or [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*. AWS CloudFormation doesn't support specifying an apply method for each individual parameter. The default apply method for each parameter is used. -- `tags` (Attributes List) An optional array of key-value pairs to apply to this DB parameter group. - Currently, this is the only property that supports drift detection. (see [below for nested schema](#nestedatt--tags)) +- `tags` (Attributes List) Tags to assign to the DB parameter group. (see [below for nested schema](#nestedatt--tags)) ### Read-Only diff --git a/docs/resources/rds_db_subnet_group.md b/docs/resources/rds_db_subnet_group.md index 8b5279f18..2232b1fef 100644 --- a/docs/resources/rds_db_subnet_group.md +++ b/docs/resources/rds_db_subnet_group.md @@ -49,9 +49,13 @@ resource "awscc_rds_db_subnet_group" "example" { ### Optional - `db_subnet_group_name` (String) The name for the DB subnet group. This value is stored as a lowercase string. - Constraints: Must contain no more than 255 lowercase alphanumeric characters or hyphens. Must not be "Default". - Example: ``mysubnetgroup`` -- `tags` (Attributes List) An optional array of key-value pairs to apply to this DB subnet group. (see [below for nested schema](#nestedatt--tags)) + Constraints: + + Must contain no more than 255 letters, numbers, periods, underscores, spaces, or hyphens. + + Must not be default. + + First character must be a letter. + + Example: ``mydbsubnetgroup`` +- `tags` (Attributes List) Tags to assign to the DB subnet group. (see [below for nested schema](#nestedatt--tags)) ### Read-Only diff --git a/docs/resources/rds_event_subscription.md b/docs/resources/rds_event_subscription.md index e9f54538c..cdb475224 100644 --- a/docs/resources/rds_event_subscription.md +++ b/docs/resources/rds_event_subscription.md @@ -26,15 +26,16 @@ The ``AWS::RDS::EventSubscription`` resource allows you to receive notifications - `event_categories` (List of String) A list of event categories for a particular source type (``SourceType``) that you want to subscribe to. You can see a list of the categories for a given source type in the "Amazon RDS event categories and event messages" section of the [Amazon RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.Messages.html) or the [Amazon Aurora User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Events.Messages.html). You can also see this list by using the ``DescribeEventCategories`` operation. - `source_ids` (Set of String) The list of identifiers of the event sources for which events are returned. If not specified, then all sources are included in the response. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens. It can't end with a hyphen or contain two consecutive hyphens. Constraints: - + If a ``SourceIds`` value is supplied, ``SourceType`` must also be provided. + + If ``SourceIds`` are supplied, ``SourceType`` must also be provided. + If the source type is a DB instance, a ``DBInstanceIdentifier`` value must be supplied. + If the source type is a DB cluster, a ``DBClusterIdentifier`` value must be supplied. + If the source type is a DB parameter group, a ``DBParameterGroupName`` value must be supplied. + If the source type is a DB security group, a ``DBSecurityGroupName`` value must be supplied. + If the source type is a DB snapshot, a ``DBSnapshotIdentifier`` value must be supplied. + If the source type is a DB cluster snapshot, a ``DBClusterSnapshotIdentifier`` value must be supplied. -- `source_type` (String) The type of source that is generating the events. For example, if you want to be notified of events generated by a DB instance, set this parameter to ``db-instance``. If this value isn't specified, all events are returned. - Valid values: ``db-instance`` | ``db-cluster`` | ``db-parameter-group`` | ``db-security-group`` | ``db-snapshot`` | ``db-cluster-snapshot`` + + If the source type is an RDS Proxy, a ``DBProxyName`` value must be supplied. +- `source_type` (String) The type of source that is generating the events. For example, if you want to be notified of events generated by a DB instance, you set this parameter to ``db-instance``. For RDS Proxy events, specify ``db-proxy``. If this value isn't specified, all events are returned. + Valid Values:``db-instance | db-cluster | db-parameter-group | db-security-group | db-snapshot | db-cluster-snapshot | db-proxy | zero-etl | custom-engine-version | blue-green-deployment`` - `subscription_name` (String) The name of the subscription. Constraints: The name must be less than 255 characters. - `tags` (Attributes List) An optional array of key-value pairs to apply to this subscription. (see [below for nested schema](#nestedatt--tags)) diff --git a/docs/resources/rds_option_group.md b/docs/resources/rds_option_group.md index fec943ea2..c201b533b 100644 --- a/docs/resources/rds_option_group.md +++ b/docs/resources/rds_option_group.md @@ -85,7 +85,7 @@ resource "awscc_rds_option_group" "example_rds_option_group_mssql" { ### Optional -- `option_configurations` (Attributes List) A list of options and the settings for each option. (see [below for nested schema](#nestedatt--option_configurations)) +- `option_configurations` (Attributes List) A list of all available options for an option group. (see [below for nested schema](#nestedatt--option_configurations)) - `option_group_name` (String) The name of the option group to be created. Constraints: + Must be 1 to 255 letters, numbers, or hyphens @@ -95,7 +95,7 @@ resource "awscc_rds_option_group" "example_rds_option_group_mssql" { Example: ``myoptiongroup`` If you don't specify a value for ``OptionGroupName`` property, a name is automatically created for the option group. This value is stored as a lowercase string. -- `tags` (Attributes List) An optional array of key-value pairs to apply to this option group. (see [below for nested schema](#nestedatt--tags)) +- `tags` (Attributes List) Tags to assign to the option group. (see [below for nested schema](#nestedatt--tags)) ### Read-Only @@ -110,11 +110,11 @@ Required: Optional: -- `db_security_group_memberships` (Set of String) A list of DBSecurityGroupMembership name strings used for this option. +- `db_security_group_memberships` (Set of String) A list of DB security groups used for this option. - `option_settings` (Attributes List) The option settings to include in an option group. (see [below for nested schema](#nestedatt--option_configurations--option_settings)) - `option_version` (String) The version for the option. - `port` (Number) The optional port for the option. -- `vpc_security_group_memberships` (Set of String) A list of VpcSecurityGroupMembership name strings used for this option. +- `vpc_security_group_memberships` (Set of String) A list of VPC security group names used for this option. ### Nested Schema for `option_configurations.option_settings` diff --git a/docs/resources/redshift_cluster.md b/docs/resources/redshift_cluster.md index 183d317f2..326f69034 100644 --- a/docs/resources/redshift_cluster.md +++ b/docs/resources/redshift_cluster.md @@ -109,6 +109,8 @@ Read-Only: Optional: - `bucket_name` (String) +- `log_destination_type` (String) +- `log_exports` (List of String) - `s3_key_prefix` (String) diff --git a/docs/resources/rolesanywhere_profile.md b/docs/resources/rolesanywhere_profile.md index aedf2f216..5b0314092 100644 --- a/docs/resources/rolesanywhere_profile.md +++ b/docs/resources/rolesanywhere_profile.md @@ -22,6 +22,7 @@ Definition of AWS::RolesAnywhere::Profile Resource Type ### Optional +- `accept_role_session_name` (Boolean) - `attribute_mappings` (Attributes List) (see [below for nested schema](#nestedatt--attribute_mappings)) - `duration_seconds` (Number) - `enabled` (Boolean) diff --git a/docs/resources/route53resolver_resolver_rule.md b/docs/resources/route53resolver_resolver_rule.md index 4b861a0c9..ff737781c 100644 --- a/docs/resources/route53resolver_resolver_rule.md +++ b/docs/resources/route53resolver_resolver_rule.md @@ -45,11 +45,12 @@ resource "awscc_route53resolver_resolver_rule" "example" { ### Required -- `domain_name` (String) DNS queries for this domain name are forwarded to the IP addresses that are specified in TargetIps - `rule_type` (String) When you want to forward DNS queries for specified domain name to resolvers on your network, specify FORWARD. When you have a forwarding rule to forward DNS queries for a domain to your network and you want Resolver to process queries for a subdomain of that domain, specify SYSTEM. ### Optional +- `delegation_record` (String) The name server domain for queries to be delegated to if a query matches the delegation record. +- `domain_name` (String) DNS queries for this domain name are forwarded to the IP addresses that are specified in TargetIps - `name` (String) The name for the Resolver rule - `resolver_endpoint_id` (String) The ID of the endpoint that the rule is associated with. - `tags` (Attributes List) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) diff --git a/docs/resources/sagemaker_model_package.md b/docs/resources/sagemaker_model_package.md index 955241287..b6aa31b25 100644 --- a/docs/resources/sagemaker_model_package.md +++ b/docs/resources/sagemaker_model_package.md @@ -29,6 +29,7 @@ Resource Type definition for AWS::SageMaker::ModelPackage - `last_modified_time` (String) The time at which the model package was last modified. - `metadata_properties` (Attributes) Metadata properties of the tracking entity, trial, or trial component. (see [below for nested schema](#nestedatt--metadata_properties)) - `model_approval_status` (String) The approval status of the model package. +- `model_card` (Attributes) The model card associated with the model package. (see [below for nested schema](#nestedatt--model_card)) - `model_metrics` (Attributes) A structure that contains model metrics reports. (see [below for nested schema](#nestedatt--model_metrics)) - `model_package_description` (String) The description of the model package. - `model_package_group_name` (String) The name of the model package group. @@ -36,8 +37,10 @@ Resource Type definition for AWS::SageMaker::ModelPackage - `model_package_status_details` (Attributes) Details about the current status of the model package. (see [below for nested schema](#nestedatt--model_package_status_details)) - `model_package_version` (Number) The version of the model package. - `sample_payload_url` (String) The Amazon Simple Storage Service (Amazon S3) path where the sample payload are stored pointing to single gzip compressed tar archive. +- `security_config` (Attributes) An optional AWS Key Management Service key to encrypt, decrypt, and re-encrypt model package information for regulated workloads with highly sensitive data. (see [below for nested schema](#nestedatt--security_config)) - `skip_model_validation` (String) Indicates if you want to skip model validation. - `source_algorithm_specification` (Attributes) Details about the algorithm that was used to create the model package. (see [below for nested schema](#nestedatt--source_algorithm_specification)) +- `source_uri` (String) The URI of the source for the model package. - `tags` (Attributes List) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) - `task` (String) The machine learning task your model package accomplishes. - `validation_specification` (Attributes) Specifies configurations for one or more transform jobs that Amazon SageMaker runs to test the model package. (see [below for nested schema](#nestedatt--validation_specification)) @@ -79,10 +82,41 @@ Optional: - `framework` (String) The machine learning framework of the model package container image. - `framework_version` (String) The framework version of the Model Package Container Image. - `image_digest` (String) An MD5 hash of the training algorithm that identifies the Docker image used for training. +- `model_data_source` (Attributes) Specifies the location of ML model data to deploy during endpoint creation. (see [below for nested schema](#nestedatt--additional_inference_specifications--containers--model_data_source)) - `model_data_url` (String) A structure with Model Input details. - `model_input` (Attributes) (see [below for nested schema](#nestedatt--additional_inference_specifications--containers--model_input)) - `nearest_model_name` (String) The name of a pre-trained machine learning benchmarked by Amazon SageMaker Inference Recommender model that matches your model. + +### Nested Schema for `additional_inference_specifications.containers.model_data_source` + +Optional: + +- `s3_data_source` (Attributes) Specifies the S3 location of ML model data to deploy. (see [below for nested schema](#nestedatt--additional_inference_specifications--containers--model_data_source--s3_data_source)) + + +### Nested Schema for `additional_inference_specifications.containers.model_data_source.s3_data_source` + +Required: + +- `compression_type` (String) Specifies how the ML model data is prepared. +- `s3_data_type` (String) Specifies the type of ML model data to deploy. +- `s3_uri` (String) Specifies the S3 path of ML model data to deploy. + +Optional: + +- `model_access_config` (Attributes) Specifies the access configuration file for the ML model. (see [below for nested schema](#nestedatt--additional_inference_specifications--containers--model_data_source--s3_data_source--model_access_config)) + + +### Nested Schema for `additional_inference_specifications.containers.model_data_source.s3_data_source.model_access_config` + +Required: + +- `accept_eula` (Boolean) Specifies agreement to the model end-user license agreement (EULA). + + + + ### Nested Schema for `additional_inference_specifications.containers.model_input` @@ -123,10 +157,41 @@ Optional: - `framework` (String) The machine learning framework of the model package container image. - `framework_version` (String) The framework version of the Model Package Container Image. - `image_digest` (String) An MD5 hash of the training algorithm that identifies the Docker image used for training. +- `model_data_source` (Attributes) Specifies the location of ML model data to deploy during endpoint creation. (see [below for nested schema](#nestedatt--additional_inference_specifications_to_add--containers--model_data_source)) - `model_data_url` (String) A structure with Model Input details. - `model_input` (Attributes) (see [below for nested schema](#nestedatt--additional_inference_specifications_to_add--containers--model_input)) - `nearest_model_name` (String) The name of a pre-trained machine learning benchmarked by Amazon SageMaker Inference Recommender model that matches your model. + +### Nested Schema for `additional_inference_specifications_to_add.containers.model_data_source` + +Optional: + +- `s3_data_source` (Attributes) Specifies the S3 location of ML model data to deploy. (see [below for nested schema](#nestedatt--additional_inference_specifications_to_add--containers--model_data_source--s3_data_source)) + + +### Nested Schema for `additional_inference_specifications_to_add.containers.model_data_source.s3_data_source` + +Required: + +- `compression_type` (String) Specifies how the ML model data is prepared. +- `s3_data_type` (String) Specifies the type of ML model data to deploy. +- `s3_uri` (String) Specifies the S3 path of ML model data to deploy. + +Optional: + +- `model_access_config` (Attributes) Specifies the access configuration file for the ML model. (see [below for nested schema](#nestedatt--additional_inference_specifications_to_add--containers--model_data_source--s3_data_source--model_access_config)) + + +### Nested Schema for `additional_inference_specifications_to_add.containers.model_data_source.s3_data_source.model_access_config` + +Required: + +- `accept_eula` (Boolean) Specifies agreement to the model end-user license agreement (EULA). + + + + ### Nested Schema for `additional_inference_specifications_to_add.containers.model_input` @@ -330,10 +395,41 @@ Optional: - `framework` (String) The machine learning framework of the model package container image. - `framework_version` (String) The framework version of the Model Package Container Image. - `image_digest` (String) An MD5 hash of the training algorithm that identifies the Docker image used for training. +- `model_data_source` (Attributes) Specifies the location of ML model data to deploy during endpoint creation. (see [below for nested schema](#nestedatt--inference_specification--containers--model_data_source)) - `model_data_url` (String) A structure with Model Input details. - `model_input` (Attributes) (see [below for nested schema](#nestedatt--inference_specification--containers--model_input)) - `nearest_model_name` (String) The name of a pre-trained machine learning benchmarked by Amazon SageMaker Inference Recommender model that matches your model. + +### Nested Schema for `inference_specification.containers.model_data_source` + +Optional: + +- `s3_data_source` (Attributes) Specifies the S3 location of ML model data to deploy. (see [below for nested schema](#nestedatt--inference_specification--containers--model_data_source--s3_data_source)) + + +### Nested Schema for `inference_specification.containers.model_data_source.s3_data_source` + +Required: + +- `compression_type` (String) Specifies how the ML model data is prepared. +- `s3_data_type` (String) Specifies the type of ML model data to deploy. +- `s3_uri` (String) Specifies the S3 path of ML model data to deploy. + +Optional: + +- `model_access_config` (Attributes) Specifies the access configuration file for the ML model. (see [below for nested schema](#nestedatt--inference_specification--containers--model_data_source--s3_data_source--model_access_config)) + + +### Nested Schema for `inference_specification.containers.model_data_source.s3_data_source.model_access_config` + +Required: + +- `accept_eula` (Boolean) Specifies agreement to the model end-user license agreement (EULA). + + + + ### Nested Schema for `inference_specification.containers.model_input` @@ -355,6 +451,15 @@ Optional: - `repository` (String) The repository metadata. + +### Nested Schema for `model_card` + +Required: + +- `model_card_content` (String) The content of the model card. +- `model_card_status` (String) The approval status of the model card within your organization. + + ### Nested Schema for `model_metrics` @@ -527,6 +632,14 @@ Optional: + +### Nested Schema for `security_config` + +Required: + +- `kms_key_id` (String) The AWS KMS Key ID (KMSKeyId) used for encryption of model package information. + + ### Nested Schema for `source_algorithm_specification` diff --git a/docs/resources/ses_configuration_set.md b/docs/resources/ses_configuration_set.md index 01be6dae8..2023b6dad 100644 --- a/docs/resources/ses_configuration_set.md +++ b/docs/resources/ses_configuration_set.md @@ -65,7 +65,7 @@ Optional: ### Nested Schema for `tracking_options` -Required: +Optional: - `custom_redirect_domain` (String) The domain to use for tracking open and click events. From 126f11cc6039cafe28fcf701ad6765e6e0b14679 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 8 Aug 2024 13:38:58 -0400 Subject: [PATCH 76/89] Add CHANGELOG entry. --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f6ef3a529..769908ce1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,9 @@ ## 1.9.0 (Unreleased) + +FEATURES: + +* provider: Updated resource schemas + ## 1.8.0 (August 1, 2024) FEATURES: From ced31ef66696452858f77ff594950a79e2c387e2 Mon Sep 17 00:00:00 2001 From: changelogbot Date: Thu, 8 Aug 2024 18:00:19 +0000 Subject: [PATCH 77/89] Update CHANGELOG.md after v1.9.0 --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 769908ce1..ceb5b54f6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ -## 1.9.0 (Unreleased) +## 1.10.0 (Unreleased) +## 1.9.0 (August 8, 2024) FEATURES: From b3ee0d692a29c0e19e33f23fe2aa4076e5915fbc Mon Sep 17 00:00:00 2001 From: Manu Chandrasekhar Date: Thu, 8 Aug 2024 17:55:48 -0400 Subject: [PATCH 78/89] docs: added examples for awscc_glue_trigger --- docs/resources/glue_trigger.md | 39 ++++++++++++++++++- .../glue_trigger_ondemand.tf | 10 +++++ .../glue_trigger_scheduled.tf | 16 ++++++++ templates/resources/glue_trigger.md.tmpl | 31 +++++++++++++++ 4 files changed, 94 insertions(+), 2 deletions(-) create mode 100644 examples/resources/awscc_glue_trigger/glue_trigger_ondemand.tf create mode 100644 examples/resources/awscc_glue_trigger/glue_trigger_scheduled.tf create mode 100644 templates/resources/glue_trigger.md.tmpl diff --git a/docs/resources/glue_trigger.md b/docs/resources/glue_trigger.md index 66a6ec6c2..0e8f25cad 100644 --- a/docs/resources/glue_trigger.md +++ b/docs/resources/glue_trigger.md @@ -1,5 +1,4 @@ --- -# generated by https://github.com/hashicorp/terraform-plugin-docs page_title: "awscc_glue_trigger Resource - terraform-provider-awscc" subcategory: "" description: |- @@ -10,7 +9,43 @@ description: |- Resource Type definition for AWS::Glue::Trigger +## Example Usage +### Example ON DEMAND trigger + +```terraform +resource "awscc_glue_trigger" "example" { + name = "example" + description = "example for on demand trigger" + + type = "ON_DEMAND" + actions = [{ + job_name = "test_job" + }] + +} +``` + +### Example SCHEDULED trigger + +```terraform +resource "awscc_glue_trigger" "example" { + name = "example" + description = "example for on demand trigger" + + type = "SCHEDULED" + schedule = "cron(0 */2 * * ? *)" + actions = [{ + job_name = "test_job", + arguments = jsonencode( + { + "--job-bookmark-option" : "job-bookmark-enable" + } + ) + }] + +} +``` ## Schema @@ -93,4 +128,4 @@ Import is supported using the following syntax: ```shell $ terraform import awscc_glue_trigger.example -``` +``` \ No newline at end of file diff --git a/examples/resources/awscc_glue_trigger/glue_trigger_ondemand.tf b/examples/resources/awscc_glue_trigger/glue_trigger_ondemand.tf new file mode 100644 index 000000000..fd327543d --- /dev/null +++ b/examples/resources/awscc_glue_trigger/glue_trigger_ondemand.tf @@ -0,0 +1,10 @@ +resource "awscc_glue_trigger" "example" { + name = "example" + description = "example for on demand trigger" + + type = "ON_DEMAND" + actions = [{ + job_name = "test_job" + }] + +} diff --git a/examples/resources/awscc_glue_trigger/glue_trigger_scheduled.tf b/examples/resources/awscc_glue_trigger/glue_trigger_scheduled.tf new file mode 100644 index 000000000..49ea6aad4 --- /dev/null +++ b/examples/resources/awscc_glue_trigger/glue_trigger_scheduled.tf @@ -0,0 +1,16 @@ +resource "awscc_glue_trigger" "example" { + name = "example" + description = "example for on demand trigger" + + type = "SCHEDULED" + schedule = "cron(0 */2 * * ? *)" + actions = [{ + job_name = "test_job", + arguments = jsonencode( + { + "--job-bookmark-option" : "job-bookmark-enable" + } + ) + }] + +} \ No newline at end of file diff --git a/templates/resources/glue_trigger.md.tmpl b/templates/resources/glue_trigger.md.tmpl new file mode 100644 index 000000000..23280f767 --- /dev/null +++ b/templates/resources/glue_trigger.md.tmpl @@ -0,0 +1,31 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +### Example ON DEMAND trigger + +{{ tffile (printf "examples/resources/%s/glue_trigger_ondemand.tf" .Name)}} + +### Example SCHEDULED trigger + +{{ tffile (printf "examples/resources/%s/glue_trigger_scheduled.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} \ No newline at end of file From b60ddc88a2f993a846ff1405927959d85b7c95de Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Aug 2024 06:00:24 +0000 Subject: [PATCH 79/89] build(deps): bump github.com/hashicorp/terraform-plugin-testing Bumps [github.com/hashicorp/terraform-plugin-testing](https://github.com/hashicorp/terraform-plugin-testing) from 1.9.0 to 1.10.0. - [Release notes](https://github.com/hashicorp/terraform-plugin-testing/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-testing/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-testing/compare/v1.9.0...v1.10.0) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-testing dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 13 +++++++------ go.sum | 30 ++++++++++++++++-------------- 2 files changed, 23 insertions(+), 20 deletions(-) diff --git a/go.mod b/go.mod index 791c41070..71f6ae40c 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/hashicorp/terraform-plugin-framework-validators v0.13.0 github.com/hashicorp/terraform-plugin-go v0.23.0 github.com/hashicorp/terraform-plugin-log v0.9.0 - github.com/hashicorp/terraform-plugin-testing v1.9.0 + github.com/hashicorp/terraform-plugin-testing v1.10.0 github.com/jinzhu/inflection v1.0.0 github.com/mattbaird/jsonpatch v0.0.0-20200820163806-098863c1fc24 golang.org/x/text v0.17.0 @@ -67,9 +67,10 @@ require ( github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-plugin v1.6.0 // indirect + github.com/hashicorp/go-retryablehttp v0.7.7 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect github.com/hashicorp/go-version v1.7.0 // indirect - github.com/hashicorp/hc-install v0.7.0 // indirect + github.com/hashicorp/hc-install v0.8.0 // indirect github.com/hashicorp/logutils v1.0.0 // indirect github.com/hashicorp/terraform-exec v0.21.0 // indirect github.com/hashicorp/terraform-json v0.22.1 // indirect @@ -98,16 +99,16 @@ require ( github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect - github.com/zclconf/go-cty v1.14.4 // indirect + github.com/zclconf/go-cty v1.15.0 // indirect go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws v0.52.0 // indirect go.opentelemetry.io/otel v1.27.0 // indirect go.opentelemetry.io/otel/metric v1.27.0 // indirect go.opentelemetry.io/otel/trace v1.27.0 // indirect - golang.org/x/crypto v0.25.0 // indirect - golang.org/x/mod v0.17.0 // indirect + golang.org/x/crypto v0.26.0 // indirect + golang.org/x/mod v0.19.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/sync v0.8.0 // indirect - golang.org/x/sys v0.22.0 // indirect + golang.org/x/sys v0.23.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de // indirect diff --git a/go.sum b/go.sum index 9fc77bdd2..454455e4e 100644 --- a/go.sum +++ b/go.sum @@ -133,13 +133,15 @@ github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+l github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/go-plugin v1.6.0 h1:wgd4KxHJTVGGqWBq4QPB1i5BZNEx9BR8+OFmHDmTk8A= github.com/hashicorp/go-plugin v1.6.0/go.mod h1:lBS5MtSSBZk0SHc66KACcjjlU6WzEVP/8pwz68aMkCI= +github.com/hashicorp/go-retryablehttp v0.7.7 h1:C8hUCYzor8PIfXHa4UrZkU4VvK8o9ISHxT2Q8+VepXU= +github.com/hashicorp/go-retryablehttp v0.7.7/go.mod h1:pkQpWZeYWskR+D1tR2O5OcBFOxfA7DoAO6xtkuQnHTk= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/hc-install v0.7.0 h1:Uu9edVqjKQxxuD28mR5TikkKDd/p55S8vzPC1659aBk= -github.com/hashicorp/hc-install v0.7.0/go.mod h1:ELmmzZlGnEcqoUMKUuykHaPCIR1sYLYX+KSggWSKZuA= +github.com/hashicorp/hc-install v0.8.0 h1:LdpZeXkZYMQhoKPCecJHlKvUkQFixN/nvyR1CdfOLjI= +github.com/hashicorp/hc-install v0.8.0/go.mod h1:+MwJYjDfCruSD/udvBmRB22Nlkwwkwf5sAB6uTIhSaU= github.com/hashicorp/hcl/v2 v2.21.0 h1:lve4q/o/2rqwYOgUg3y3V2YPyD1/zkCLGjIV74Jit14= github.com/hashicorp/hcl/v2 v2.21.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA= github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y= @@ -162,8 +164,8 @@ github.com/hashicorp/terraform-plugin-log v0.9.0 h1:i7hOA+vdAItN1/7UrfBqBwvYPQ9T github.com/hashicorp/terraform-plugin-log v0.9.0/go.mod h1:rKL8egZQ/eXSyDqzLUuwUYLVdlYeamldAHSxjUFADow= github.com/hashicorp/terraform-plugin-sdk/v2 v2.34.0 h1:kJiWGx2kiQVo97Y5IOGR4EMcZ8DtMswHhUuFibsCQQE= github.com/hashicorp/terraform-plugin-sdk/v2 v2.34.0/go.mod h1:sl/UoabMc37HA6ICVMmGO+/0wofkVIRxf+BMb/dnoIg= -github.com/hashicorp/terraform-plugin-testing v1.9.0 h1:xOsQRqqlHKXpFq6etTxih3ubdK3HVDtfE1IY7Rpd37o= -github.com/hashicorp/terraform-plugin-testing v1.9.0/go.mod h1:fhhVx/8+XNJZTD5o3b4stfZ6+q7z9+lIWigIYdT6/44= +github.com/hashicorp/terraform-plugin-testing v1.10.0 h1:2+tmRNhvnfE4Bs8rB6v58S/VpqzGC6RCh9Y8ujdn+aw= +github.com/hashicorp/terraform-plugin-testing v1.10.0/go.mod h1:iWRW3+loP33WMch2P/TEyCxxct/ZEcCGMquSLSCVsrc= github.com/hashicorp/terraform-registry-address v0.2.3 h1:2TAiKJ1A3MAkZlH1YI/aTVcLZRu7JseiXNRHbOAyoTI= github.com/hashicorp/terraform-registry-address v0.2.3/go.mod h1:lFHA76T8jfQteVfT7caREqguFrW3c4MFSPhZB7HHgUM= github.com/hashicorp/terraform-svchost v0.1.1 h1:EZZimZ1GxdqFRinZ1tpJwVxxt49xc/S52uzrw4x0jKQ= @@ -260,8 +262,8 @@ github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1: github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/zclconf/go-cty v1.14.4 h1:uXXczd9QDGsgu0i/QFR/hzI5NYCHLf6NQw/atrbnhq8= -github.com/zclconf/go-cty v1.14.4/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= +github.com/zclconf/go-cty v1.15.0 h1:tTCRWxsexYUmtt/wVxgDClUe+uQusuI443uL6e+5sXQ= +github.com/zclconf/go-cty v1.15.0/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940 h1:4r45xpDWB6ZMSMNJFMOjqrGHynW3DIBuR2H9j0ug+Mo= github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940/go.mod h1:CmBdvvj3nqzfzJ6nTCIwDTPZ56aVGvDrmztiO5g3qrM= go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws v0.52.0 h1:kAytSRJYoIy4eJtDOfSGf9LOCD4QdXFN37YJs0+bYrw= @@ -275,11 +277,11 @@ go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39S golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= -golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= -golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= +golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= +golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= -golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8= +golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= @@ -305,13 +307,13 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= -golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= +golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= -golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= -golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= +golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU= +golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= From 14523e7803b414869c133b90bb190b1b6f806a46 Mon Sep 17 00:00:00 2001 From: Matt Burgess <549318+mattburgess@users.noreply.github.com> Date: Mon, 12 Aug 2024 22:47:39 +0100 Subject: [PATCH 80/89] make: Use .go-version by default --- .go-version | 1 + GNUmakefile | 28 +++++++++++++++++++--------- 2 files changed, 20 insertions(+), 9 deletions(-) create mode 100644 .go-version diff --git a/.go-version b/.go-version new file mode 100644 index 000000000..013173af5 --- /dev/null +++ b/.go-version @@ -0,0 +1 @@ +1.22.6 diff --git a/GNUmakefile b/GNUmakefile index 909b322ad..f2f7c8358 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -11,38 +11,38 @@ default: build all: schemas resources singular-data-sources plural-data-sources build docs -build: +build: prereq-go $(GO_VER) install -plural-data-sources: +plural-data-sources: prereq-go rm -f internal/*/*/*_plural_data_source_gen.go rm -f internal/*/*/*_plural_data_source_gen_test.go $(GO_VER) generate internal/provider/plural_data_sources.go goimports -w internal/*/*/*_plural_data_source_gen.go goimports -w internal/*/*/*_plural_data_source_gen_test.go -singular-data-sources: +singular-data-sources: prereq-go rm -f internal/*/*/*_singular_data_source_gen.go rm -f internal/*/*/*_singular_data_source_gen_test.go $(GO_VER) generate internal/provider/singular_data_sources.go goimports -w internal/*/*/*_singular_data_source_gen.go goimports -w internal/*/*/*_singular_data_source_gen_test.go -resources: +resources: prereq-go rm -f internal/*/*/*_resource_gen.go rm -f internal/*/*/*_resource_gen_test.go $(GO_VER) generate internal/provider/resources.go goimports -w internal/*/*/*_resource_gen.go goimports -w internal/*/*/*_resource_gen_test.go -schemas: +schemas: prereq-go $(GO_VER) generate internal/provider/schemas.go -test: +test: prereq-go $(GO_VER) test $(TEST) $(TESTARGS) -timeout=5m # make testacc PKG_NAME=internal/aws/logs TESTARGS='-run=TestAccAWSLogsLogGroup_basic' -testacc: +testacc: prereq-go TF_ACC=1 $(GO_VER) test ./$(PKG_NAME) -v -count $(TEST_COUNT) -parallel $(ACCTEST_PARALLELISM) $(TESTARGS) -timeout $(ACCTEST_TIMEOUT) lint: golangci-lint importlint @@ -55,14 +55,24 @@ importlint: @echo "==> Checking source code with importlint..." @impi --local . --scheme stdThirdPartyLocal --ignore-generated=true ./... -tools: +tools: prereq-go cd tools && $(GO_VER) install github.com/golangci/golangci-lint/cmd/golangci-lint cd tools && $(GO_VER) install github.com/pavius/impi/cmd/impi cd tools && $(GO_VER) install github.com/hashicorp/terraform-plugin-docs/cmd/tfplugindocs cd tools && $(GO_VER) install golang.org/x/tools/cmd/goimports@latest -docs: +docs: prereq-go $(GO_VER) run internal/provider/generators/import-examples/main.go rm -f docs/data-sources/*.md rm -f docs/resources/*.md @tfplugindocs generate + +prereq-go: ## If $(GO_VER) is not installed, install it + @if ! type "$(GO_VER)" > /dev/null 2>&1 ; then \ + echo "make: $(GO_VER) not found" ; \ + echo "make: installing $(GO_VER)..." ; \ + echo "make: if you get an error, see https://go.dev/doc/manage-install to locally install various Go versions" ; \ + go install golang.org/dl/$(GO_VER)@latest ; \ + $(GO_VER) download ; \ + echo "make: $(GO_VER) ready" ; \ + fi From b30435200f5fc5762c86d8ee4093d891b0ae7d4e Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Wed, 14 Aug 2024 14:35:23 -0400 Subject: [PATCH 81/89] Add missing 'awscc_timestream_influx_db_instance' resource. --- ...flux_db_instance_plural_data_source_gen.go | 54 ++ ...db_instance_plural_data_source_gen_test.go | 27 + .../influx_db_instance_resource_gen.go | 677 ++++++++++++++++++ .../influx_db_instance_resource_gen_test.go | 46 ++ ...ux_db_instance_singular_data_source_gen.go | 476 ++++++++++++ ..._instance_singular_data_source_gen_test.go | 40 ++ internal/provider/all_schemas.hcl | 4 + internal/provider/plural_data_sources.go | 1 + internal/provider/resources.go | 1 + internal/provider/singular_data_sources.go | 1 + .../AWS_Timestream_InfluxDBInstance.json | 314 ++++++++ 11 files changed, 1641 insertions(+) create mode 100644 internal/aws/timestream/influx_db_instance_plural_data_source_gen.go create mode 100644 internal/aws/timestream/influx_db_instance_plural_data_source_gen_test.go create mode 100644 internal/aws/timestream/influx_db_instance_resource_gen.go create mode 100644 internal/aws/timestream/influx_db_instance_resource_gen_test.go create mode 100644 internal/aws/timestream/influx_db_instance_singular_data_source_gen.go create mode 100644 internal/aws/timestream/influx_db_instance_singular_data_source_gen_test.go create mode 100644 internal/service/cloudformation/schemas/AWS_Timestream_InfluxDBInstance.json diff --git a/internal/aws/timestream/influx_db_instance_plural_data_source_gen.go b/internal/aws/timestream/influx_db_instance_plural_data_source_gen.go new file mode 100644 index 000000000..e08482b4b --- /dev/null +++ b/internal/aws/timestream/influx_db_instance_plural_data_source_gen.go @@ -0,0 +1,54 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package timestream + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_timestream_influx_db_instances", influxDBInstancesDataSource) +} + +// influxDBInstancesDataSource returns the Terraform awscc_timestream_influx_db_instances data source. +// This Terraform data source corresponds to the CloudFormation AWS::Timestream::InfluxDBInstance resource. +func influxDBInstancesDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ + "id": schema.StringAttribute{ + Description: "Uniquely identifies the data source.", + Computed: true, + }, + "ids": schema.SetAttribute{ + Description: "Set of Resource Identifiers.", + ElementType: types.StringType, + Computed: true, + }, + } + + schema := schema.Schema{ + Description: "Plural Data Source schema for AWS::Timestream::InfluxDBInstance", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Timestream::InfluxDBInstance").WithTerraformTypeName("awscc_timestream_influx_db_instances") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/timestream/influx_db_instance_plural_data_source_gen_test.go b/internal/aws/timestream/influx_db_instance_plural_data_source_gen_test.go new file mode 100644 index 000000000..7aab5a064 --- /dev/null +++ b/internal/aws/timestream/influx_db_instance_plural_data_source_gen_test.go @@ -0,0 +1,27 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package timestream_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSTimestreamInfluxDBInstancesDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Timestream::InfluxDBInstance", "awscc_timestream_influx_db_instances", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet(fmt.Sprintf("data.%s", td.ResourceName), "ids.#"), + ), + }, + }) +} diff --git a/internal/aws/timestream/influx_db_instance_resource_gen.go b/internal/aws/timestream/influx_db_instance_resource_gen.go new file mode 100644 index 000000000..a2cd2cb86 --- /dev/null +++ b/internal/aws/timestream/influx_db_instance_resource_gen.go @@ -0,0 +1,677 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package timestream + +import ( + "context" + "github.com/hashicorp/terraform-plugin-framework-validators/int64validator" + "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" + "github.com/hashicorp/terraform-plugin-framework-validators/setvalidator" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/booldefault" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/boolplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/int64planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/setplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" + "regexp" +) + +func init() { + registry.AddResourceFactory("awscc_timestream_influx_db_instance", influxDBInstanceResource) +} + +// influxDBInstanceResource returns the Terraform awscc_timestream_influx_db_instance resource. +// This Terraform resource corresponds to the CloudFormation AWS::Timestream::InfluxDBInstance resource. +func influxDBInstanceResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AllocatedStorage + // CloudFormation resource type schema: + // + // { + // "description": "The allocated storage for the InfluxDB instance.", + // "maximum": 16384, + // "minimum": 20, + // "type": "integer" + // } + "allocated_storage": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The allocated storage for the InfluxDB instance.", + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(20, 16384), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + int64planmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Resource Name (ARN) that is associated with the InfluxDB instance.", + // "maxLength": 1011, + // "minLength": 1, + // "pattern": "^arn:aws[a-z\\-]*:timestream\\-influxdb:[a-z0-9\\-]+:[0-9]{12}:(db\\-instance)/[a-zA-Z0-9]{3,64}$", + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) that is associated with the InfluxDB instance.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AvailabilityZone + // CloudFormation resource type schema: + // + // { + // "description": "The Availability Zone (AZ) where the InfluxDB instance is created.", + // "type": "string" + // } + "availability_zone": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Availability Zone (AZ) where the InfluxDB instance is created.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Bucket + // CloudFormation resource type schema: + // + // { + // "description": "The bucket for the InfluxDB instance.", + // "maxLength": 64, + // "minLength": 2, + // "pattern": "^[^_][^\"]*$", + // "type": "string" + // } + "bucket": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The bucket for the InfluxDB instance.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(2, 64), + stringvalidator.RegexMatches(regexp.MustCompile("^[^_][^\"]*$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + // Bucket is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: DbInstanceType + // CloudFormation resource type schema: + // + // { + // "description": "The compute instance of the InfluxDB instance.", + // "enum": [ + // "db.influx.medium", + // "db.influx.large", + // "db.influx.xlarge", + // "db.influx.2xlarge", + // "db.influx.4xlarge", + // "db.influx.8xlarge", + // "db.influx.12xlarge", + // "db.influx.16xlarge" + // ], + // "type": "string" + // } + "db_instance_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The compute instance of the InfluxDB instance.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "db.influx.medium", + "db.influx.large", + "db.influx.xlarge", + "db.influx.2xlarge", + "db.influx.4xlarge", + "db.influx.8xlarge", + "db.influx.12xlarge", + "db.influx.16xlarge", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DbParameterGroupIdentifier + // CloudFormation resource type schema: + // + // { + // "description": "The name of an existing InfluxDB parameter group.", + // "maxLength": 64, + // "minLength": 3, + // "pattern": "^[a-zA-Z0-9]+$", + // "type": "string" + // } + "db_parameter_group_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of an existing InfluxDB parameter group.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(3, 64), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9]+$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DbStorageType + // CloudFormation resource type schema: + // + // { + // "description": "The storage type of the InfluxDB instance.", + // "enum": [ + // "InfluxIOIncludedT1", + // "InfluxIOIncludedT2", + // "InfluxIOIncludedT3" + // ], + // "type": "string" + // } + "db_storage_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The storage type of the InfluxDB instance.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "InfluxIOIncludedT1", + "InfluxIOIncludedT2", + "InfluxIOIncludedT3", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DeploymentType + // CloudFormation resource type schema: + // + // { + // "description": "Deployment type of the InfluxDB Instance.", + // "enum": [ + // "SINGLE_AZ", + // "WITH_MULTIAZ_STANDBY" + // ], + // "type": "string" + // } + "deployment_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Deployment type of the InfluxDB Instance.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "SINGLE_AZ", + "WITH_MULTIAZ_STANDBY", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Endpoint + // CloudFormation resource type schema: + // + // { + // "description": "The connection endpoint for the InfluxDB instance.", + // "type": "string" + // } + "endpoint": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The connection endpoint for the InfluxDB instance.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "description": "The service generated unique identifier for InfluxDB instance.", + // "maxLength": 64, + // "minLength": 3, + // "pattern": "^[a-zA-Z0-9]+$", + // "type": "string" + // } + "influx_db_instance_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The service generated unique identifier for InfluxDB instance.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InfluxAuthParametersSecretArn + // CloudFormation resource type schema: + // + // { + // "description": "The Auth parameters secret Amazon Resource name (ARN) that is associated with the InfluxDB instance.", + // "pattern": "^arn:[a-z]*:secretsmanager:[a-z\\-0-9]*:[0-9]*:secret:[a-zA-Z0-9\\-]*", + // "type": "string" + // } + "influx_auth_parameters_secret_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Auth parameters secret Amazon Resource name (ARN) that is associated with the InfluxDB instance.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LogDeliveryConfiguration + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Configuration for sending logs to customer account from the InfluxDB instance.", + // "properties": { + // "S3Configuration": { + // "additionalProperties": false, + // "description": "S3 configuration for sending logs to customer account from the InfluxDB instance.", + // "properties": { + // "BucketName": { + // "description": "The bucket name for logs to be sent from the InfluxDB instance", + // "maxLength": 63, + // "minLength": 3, + // "pattern": "^[0-9a-z]+[0-9a-z\\.\\-]*[0-9a-z]+$", + // "type": "string" + // }, + // "Enabled": { + // "description": "Specifies whether logging to customer specified bucket is enabled.", + // "type": "boolean" + // } + // }, + // "required": [ + // "Enabled", + // "BucketName" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "S3Configuration" + // ], + // "type": "object" + // } + "log_delivery_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: S3Configuration + "s3_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BucketName + "bucket_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The bucket name for logs to be sent from the InfluxDB instance", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(3, 63), + stringvalidator.RegexMatches(regexp.MustCompile("^[0-9a-z]+[0-9a-z\\.\\-]*[0-9a-z]+$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Enabled + "enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies whether logging to customer specified bucket is enabled.", + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "S3 configuration for sending logs to customer account from the InfluxDB instance.", + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Configuration for sending logs to customer account from the InfluxDB instance.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "The unique name that is associated with the InfluxDB instance.", + // "maxLength": 40, + // "minLength": 3, + // "pattern": "^[a-zA-z][a-zA-Z0-9]*(-[a-zA-Z0-9]+)*$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The unique name that is associated with the InfluxDB instance.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(3, 40), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-z][a-zA-Z0-9]*(-[a-zA-Z0-9]+)*$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Organization + // CloudFormation resource type schema: + // + // { + // "description": "The organization for the InfluxDB instance.", + // "maxLength": 64, + // "minLength": 1, + // "type": "string" + // } + "organization": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The organization for the InfluxDB instance.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 64), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + // Organization is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: Password + // CloudFormation resource type schema: + // + // { + // "description": "The password for the InfluxDB instance.", + // "maxLength": 64, + // "minLength": 8, + // "pattern": "^[a-zA-Z0-9]+$", + // "type": "string" + // } + "password": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The password for the InfluxDB instance.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(8, 64), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9]+$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + // Password is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: PubliclyAccessible + // CloudFormation resource type schema: + // + // { + // "default": false, + // "description": "Attach a public IP to the customer ENI.", + // "type": "boolean" + // } + "publicly_accessible": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Attach a public IP to the customer ENI.", + Optional: true, + Computed: true, + Default: booldefault.StaticBool(false), + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + boolplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SecondaryAvailabilityZone + // CloudFormation resource type schema: + // + // { + // "description": "The Secondary Availability Zone (AZ) where the InfluxDB instance is created, if DeploymentType is set as WITH_MULTIAZ_STANDBY.", + // "type": "string" + // } + "secondary_availability_zone": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Secondary Availability Zone (AZ) where the InfluxDB instance is created, if DeploymentType is set as WITH_MULTIAZ_STANDBY.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Status + // CloudFormation resource type schema: + // + // { + // "description": "Status of the InfluxDB Instance.", + // "enum": [ + // "CREATING", + // "AVAILABLE", + // "DELETING", + // "MODIFYING", + // "UPDATING", + // "DELETED", + // "FAILED" + // ], + // "type": "string" + // } + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Status of the InfluxDB Instance.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "An arbitrary set of tags (key-value pairs) for this DB instance.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + // "maxLength": 256, + // "minLength": 0, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // }, + // "maxItems": 200, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // } + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 256), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "An arbitrary set of tags (key-value pairs) for this DB instance.", + Optional: true, + Computed: true, + Validators: []validator.Set{ /*START VALIDATORS*/ + setvalidator.SizeBetween(1, 200), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Username + // CloudFormation resource type schema: + // + // { + // "description": "The username for the InfluxDB instance.", + // "maxLength": 64, + // "minLength": 1, + // "type": "string" + // } + "username": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The username for the InfluxDB instance.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 64), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + // Username is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: VpcSecurityGroupIds + // CloudFormation resource type schema: + // + // { + // "description": "A list of Amazon EC2 VPC security groups to associate with this InfluxDB instance.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "maxItems": 5, + // "minItems": 1, + // "type": "array" + // } + "vpc_security_group_ids": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of Amazon EC2 VPC security groups to associate with this InfluxDB instance.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 5), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + listplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: VpcSubnetIds + // CloudFormation resource type schema: + // + // { + // "description": "A list of EC2 subnet IDs for this InfluxDB instance.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "maxItems": 3, + // "minItems": 1, + // "type": "array" + // } + "vpc_subnet_ids": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of EC2 subnet IDs for this InfluxDB instance.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 3), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + listplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + // Corresponds to CloudFormation primaryIdentifier. + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "The AWS::Timestream::InfluxDBInstance resource creates an InfluxDB instance.", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Timestream::InfluxDBInstance").WithTerraformTypeName("awscc_timestream_influx_db_instance") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "allocated_storage": "AllocatedStorage", + "arn": "Arn", + "availability_zone": "AvailabilityZone", + "bucket": "Bucket", + "bucket_name": "BucketName", + "db_instance_type": "DbInstanceType", + "db_parameter_group_identifier": "DbParameterGroupIdentifier", + "db_storage_type": "DbStorageType", + "deployment_type": "DeploymentType", + "enabled": "Enabled", + "endpoint": "Endpoint", + "influx_auth_parameters_secret_arn": "InfluxAuthParametersSecretArn", + "influx_db_instance_id": "Id", + "key": "Key", + "log_delivery_configuration": "LogDeliveryConfiguration", + "name": "Name", + "organization": "Organization", + "password": "Password", + "publicly_accessible": "PubliclyAccessible", + "s3_configuration": "S3Configuration", + "secondary_availability_zone": "SecondaryAvailabilityZone", + "status": "Status", + "tags": "Tags", + "username": "Username", + "value": "Value", + "vpc_security_group_ids": "VpcSecurityGroupIds", + "vpc_subnet_ids": "VpcSubnetIds", + }) + + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/Username", + "/properties/Password", + "/properties/Organization", + "/properties/Bucket", + }) + opts = opts.WithCreateTimeoutInMinutes(2160).WithDeleteTimeoutInMinutes(2160) + + opts = opts.WithUpdateTimeoutInMinutes(2160) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/timestream/influx_db_instance_resource_gen_test.go b/internal/aws/timestream/influx_db_instance_resource_gen_test.go new file mode 100644 index 000000000..226054e35 --- /dev/null +++ b/internal/aws/timestream/influx_db_instance_resource_gen_test.go @@ -0,0 +1,46 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package timestream_test + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSTimestreamInfluxDBInstance_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Timestream::InfluxDBInstance", "awscc_timestream_influx_db_instance", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + ), + }, + { + ResourceName: td.ResourceName, + ImportState: true, + ImportStateVerify: true, + }, + }) +} + +func TestAccAWSTimestreamInfluxDBInstance_disappears(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Timestream::InfluxDBInstance", "awscc_timestream_influx_db_instance", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + td.DeleteResource(), + ), + ExpectNonEmptyPlan: true, + }, + }) +} diff --git a/internal/aws/timestream/influx_db_instance_singular_data_source_gen.go b/internal/aws/timestream/influx_db_instance_singular_data_source_gen.go new file mode 100644 index 000000000..85744b2fe --- /dev/null +++ b/internal/aws/timestream/influx_db_instance_singular_data_source_gen.go @@ -0,0 +1,476 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package timestream + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_timestream_influx_db_instance", influxDBInstanceDataSource) +} + +// influxDBInstanceDataSource returns the Terraform awscc_timestream_influx_db_instance data source. +// This Terraform data source corresponds to the CloudFormation AWS::Timestream::InfluxDBInstance resource. +func influxDBInstanceDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AllocatedStorage + // CloudFormation resource type schema: + // + // { + // "description": "The allocated storage for the InfluxDB instance.", + // "maximum": 16384, + // "minimum": 20, + // "type": "integer" + // } + "allocated_storage": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The allocated storage for the InfluxDB instance.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Resource Name (ARN) that is associated with the InfluxDB instance.", + // "maxLength": 1011, + // "minLength": 1, + // "pattern": "^arn:aws[a-z\\-]*:timestream\\-influxdb:[a-z0-9\\-]+:[0-9]{12}:(db\\-instance)/[a-zA-Z0-9]{3,64}$", + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) that is associated with the InfluxDB instance.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AvailabilityZone + // CloudFormation resource type schema: + // + // { + // "description": "The Availability Zone (AZ) where the InfluxDB instance is created.", + // "type": "string" + // } + "availability_zone": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Availability Zone (AZ) where the InfluxDB instance is created.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Bucket + // CloudFormation resource type schema: + // + // { + // "description": "The bucket for the InfluxDB instance.", + // "maxLength": 64, + // "minLength": 2, + // "pattern": "^[^_][^\"]*$", + // "type": "string" + // } + "bucket": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The bucket for the InfluxDB instance.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DbInstanceType + // CloudFormation resource type schema: + // + // { + // "description": "The compute instance of the InfluxDB instance.", + // "enum": [ + // "db.influx.medium", + // "db.influx.large", + // "db.influx.xlarge", + // "db.influx.2xlarge", + // "db.influx.4xlarge", + // "db.influx.8xlarge", + // "db.influx.12xlarge", + // "db.influx.16xlarge" + // ], + // "type": "string" + // } + "db_instance_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The compute instance of the InfluxDB instance.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DbParameterGroupIdentifier + // CloudFormation resource type schema: + // + // { + // "description": "The name of an existing InfluxDB parameter group.", + // "maxLength": 64, + // "minLength": 3, + // "pattern": "^[a-zA-Z0-9]+$", + // "type": "string" + // } + "db_parameter_group_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of an existing InfluxDB parameter group.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DbStorageType + // CloudFormation resource type schema: + // + // { + // "description": "The storage type of the InfluxDB instance.", + // "enum": [ + // "InfluxIOIncludedT1", + // "InfluxIOIncludedT2", + // "InfluxIOIncludedT3" + // ], + // "type": "string" + // } + "db_storage_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The storage type of the InfluxDB instance.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DeploymentType + // CloudFormation resource type schema: + // + // { + // "description": "Deployment type of the InfluxDB Instance.", + // "enum": [ + // "SINGLE_AZ", + // "WITH_MULTIAZ_STANDBY" + // ], + // "type": "string" + // } + "deployment_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Deployment type of the InfluxDB Instance.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Endpoint + // CloudFormation resource type schema: + // + // { + // "description": "The connection endpoint for the InfluxDB instance.", + // "type": "string" + // } + "endpoint": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The connection endpoint for the InfluxDB instance.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "description": "The service generated unique identifier for InfluxDB instance.", + // "maxLength": 64, + // "minLength": 3, + // "pattern": "^[a-zA-Z0-9]+$", + // "type": "string" + // } + "influx_db_instance_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The service generated unique identifier for InfluxDB instance.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InfluxAuthParametersSecretArn + // CloudFormation resource type schema: + // + // { + // "description": "The Auth parameters secret Amazon Resource name (ARN) that is associated with the InfluxDB instance.", + // "pattern": "^arn:[a-z]*:secretsmanager:[a-z\\-0-9]*:[0-9]*:secret:[a-zA-Z0-9\\-]*", + // "type": "string" + // } + "influx_auth_parameters_secret_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Auth parameters secret Amazon Resource name (ARN) that is associated with the InfluxDB instance.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LogDeliveryConfiguration + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Configuration for sending logs to customer account from the InfluxDB instance.", + // "properties": { + // "S3Configuration": { + // "additionalProperties": false, + // "description": "S3 configuration for sending logs to customer account from the InfluxDB instance.", + // "properties": { + // "BucketName": { + // "description": "The bucket name for logs to be sent from the InfluxDB instance", + // "maxLength": 63, + // "minLength": 3, + // "pattern": "^[0-9a-z]+[0-9a-z\\.\\-]*[0-9a-z]+$", + // "type": "string" + // }, + // "Enabled": { + // "description": "Specifies whether logging to customer specified bucket is enabled.", + // "type": "boolean" + // } + // }, + // "required": [ + // "Enabled", + // "BucketName" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "S3Configuration" + // ], + // "type": "object" + // } + "log_delivery_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: S3Configuration + "s3_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BucketName + "bucket_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The bucket name for logs to be sent from the InfluxDB instance", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Enabled + "enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies whether logging to customer specified bucket is enabled.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "S3 configuration for sending logs to customer account from the InfluxDB instance.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Configuration for sending logs to customer account from the InfluxDB instance.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "The unique name that is associated with the InfluxDB instance.", + // "maxLength": 40, + // "minLength": 3, + // "pattern": "^[a-zA-z][a-zA-Z0-9]*(-[a-zA-Z0-9]+)*$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The unique name that is associated with the InfluxDB instance.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Organization + // CloudFormation resource type schema: + // + // { + // "description": "The organization for the InfluxDB instance.", + // "maxLength": 64, + // "minLength": 1, + // "type": "string" + // } + "organization": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The organization for the InfluxDB instance.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Password + // CloudFormation resource type schema: + // + // { + // "description": "The password for the InfluxDB instance.", + // "maxLength": 64, + // "minLength": 8, + // "pattern": "^[a-zA-Z0-9]+$", + // "type": "string" + // } + "password": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The password for the InfluxDB instance.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PubliclyAccessible + // CloudFormation resource type schema: + // + // { + // "default": false, + // "description": "Attach a public IP to the customer ENI.", + // "type": "boolean" + // } + "publicly_accessible": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Attach a public IP to the customer ENI.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SecondaryAvailabilityZone + // CloudFormation resource type schema: + // + // { + // "description": "The Secondary Availability Zone (AZ) where the InfluxDB instance is created, if DeploymentType is set as WITH_MULTIAZ_STANDBY.", + // "type": "string" + // } + "secondary_availability_zone": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Secondary Availability Zone (AZ) where the InfluxDB instance is created, if DeploymentType is set as WITH_MULTIAZ_STANDBY.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Status + // CloudFormation resource type schema: + // + // { + // "description": "Status of the InfluxDB Instance.", + // "enum": [ + // "CREATING", + // "AVAILABLE", + // "DELETING", + // "MODIFYING", + // "UPDATING", + // "DELETED", + // "FAILED" + // ], + // "type": "string" + // } + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Status of the InfluxDB Instance.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "An arbitrary set of tags (key-value pairs) for this DB instance.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + // "maxLength": 256, + // "minLength": 0, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // }, + // "maxItems": 200, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // } + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "An arbitrary set of tags (key-value pairs) for this DB instance.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Username + // CloudFormation resource type schema: + // + // { + // "description": "The username for the InfluxDB instance.", + // "maxLength": 64, + // "minLength": 1, + // "type": "string" + // } + "username": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The username for the InfluxDB instance.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: VpcSecurityGroupIds + // CloudFormation resource type schema: + // + // { + // "description": "A list of Amazon EC2 VPC security groups to associate with this InfluxDB instance.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "maxItems": 5, + // "minItems": 1, + // "type": "array" + // } + "vpc_security_group_ids": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of Amazon EC2 VPC security groups to associate with this InfluxDB instance.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: VpcSubnetIds + // CloudFormation resource type schema: + // + // { + // "description": "A list of EC2 subnet IDs for this InfluxDB instance.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "maxItems": 3, + // "minItems": 1, + // "type": "array" + // } + "vpc_subnet_ids": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of EC2 subnet IDs for this InfluxDB instance.", + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::Timestream::InfluxDBInstance", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Timestream::InfluxDBInstance").WithTerraformTypeName("awscc_timestream_influx_db_instance") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "allocated_storage": "AllocatedStorage", + "arn": "Arn", + "availability_zone": "AvailabilityZone", + "bucket": "Bucket", + "bucket_name": "BucketName", + "db_instance_type": "DbInstanceType", + "db_parameter_group_identifier": "DbParameterGroupIdentifier", + "db_storage_type": "DbStorageType", + "deployment_type": "DeploymentType", + "enabled": "Enabled", + "endpoint": "Endpoint", + "influx_auth_parameters_secret_arn": "InfluxAuthParametersSecretArn", + "influx_db_instance_id": "Id", + "key": "Key", + "log_delivery_configuration": "LogDeliveryConfiguration", + "name": "Name", + "organization": "Organization", + "password": "Password", + "publicly_accessible": "PubliclyAccessible", + "s3_configuration": "S3Configuration", + "secondary_availability_zone": "SecondaryAvailabilityZone", + "status": "Status", + "tags": "Tags", + "username": "Username", + "value": "Value", + "vpc_security_group_ids": "VpcSecurityGroupIds", + "vpc_subnet_ids": "VpcSubnetIds", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/timestream/influx_db_instance_singular_data_source_gen_test.go b/internal/aws/timestream/influx_db_instance_singular_data_source_gen_test.go new file mode 100644 index 000000000..49b9afe4e --- /dev/null +++ b/internal/aws/timestream/influx_db_instance_singular_data_source_gen_test.go @@ -0,0 +1,40 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package timestream_test + +import ( + "fmt" + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSTimestreamInfluxDBInstanceDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Timestream::InfluxDBInstance", "awscc_timestream_influx_db_instance", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithEmptyResourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrPair(fmt.Sprintf("data.%s", td.ResourceName), "id", td.ResourceName, "id"), + resource.TestCheckResourceAttrPair(fmt.Sprintf("data.%s", td.ResourceName), "arn", td.ResourceName, "arn"), + ), + }, + }) +} + +func TestAccAWSTimestreamInfluxDBInstanceDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Timestream::InfluxDBInstance", "awscc_timestream_influx_db_instance", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/provider/all_schemas.hcl b/internal/provider/all_schemas.hcl index 58045e5d9..a60837efb 100644 --- a/internal/provider/all_schemas.hcl +++ b/internal/provider/all_schemas.hcl @@ -4414,6 +4414,10 @@ resource_schema "aws_timestream_database" { cloudformation_type_name = "AWS::Timestream::Database" } +resource_schema "aws_timestream_influx_db_instance" { + cloudformation_type_name = "AWS::Timestream::InfluxDBInstance" +} + resource_schema "aws_timestream_scheduled_query" { cloudformation_type_name = "AWS::Timestream::ScheduledQuery" } diff --git a/internal/provider/plural_data_sources.go b/internal/provider/plural_data_sources.go index 613583541..448edb001 100644 --- a/internal/provider/plural_data_sources.go +++ b/internal/provider/plural_data_sources.go @@ -748,6 +748,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_synthetics_groups -cftype AWS::Synthetics::Group -package synthetics ../aws/synthetics/group_plural_data_source_gen.go ../aws/synthetics/group_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_systemsmanagersap_applications -cftype AWS::SystemsManagerSAP::Application -package systemsmanagersap ../aws/systemsmanagersap/application_plural_data_source_gen.go ../aws/systemsmanagersap/application_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_timestream_databases -cftype AWS::Timestream::Database -package timestream ../aws/timestream/database_plural_data_source_gen.go ../aws/timestream/database_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_timestream_influx_db_instances -cftype AWS::Timestream::InfluxDBInstance -package timestream ../aws/timestream/influx_db_instance_plural_data_source_gen.go ../aws/timestream/influx_db_instance_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_timestream_scheduled_queries -cftype AWS::Timestream::ScheduledQuery -package timestream ../aws/timestream/scheduled_query_plural_data_source_gen.go ../aws/timestream/scheduled_query_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_timestream_tables -cftype AWS::Timestream::Table -package timestream ../aws/timestream/table_plural_data_source_gen.go ../aws/timestream/table_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_transfer_certificates -cftype AWS::Transfer::Certificate -package transfer ../aws/transfer/certificate_plural_data_source_gen.go ../aws/transfer/certificate_plural_data_source_gen_test.go diff --git a/internal/provider/resources.go b/internal/provider/resources.go index 76c11ab05..680b4147e 100644 --- a/internal/provider/resources.go +++ b/internal/provider/resources.go @@ -966,6 +966,7 @@ //go:generate go run generators/resource/main.go -resource awscc_synthetics_group -cfschema ../service/cloudformation/schemas/AWS_Synthetics_Group.json -package synthetics -- ../aws/synthetics/group_resource_gen.go ../aws/synthetics/group_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_systemsmanagersap_application -cfschema ../service/cloudformation/schemas/AWS_SystemsManagerSAP_Application.json -package systemsmanagersap -- ../aws/systemsmanagersap/application_resource_gen.go ../aws/systemsmanagersap/application_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_timestream_database -cfschema ../service/cloudformation/schemas/AWS_Timestream_Database.json -package timestream -- ../aws/timestream/database_resource_gen.go ../aws/timestream/database_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_timestream_influx_db_instance -cfschema ../service/cloudformation/schemas/AWS_Timestream_InfluxDBInstance.json -package timestream -- ../aws/timestream/influx_db_instance_resource_gen.go ../aws/timestream/influx_db_instance_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_timestream_scheduled_query -cfschema ../service/cloudformation/schemas/AWS_Timestream_ScheduledQuery.json -package timestream -- ../aws/timestream/scheduled_query_resource_gen.go ../aws/timestream/scheduled_query_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_timestream_table -cfschema ../service/cloudformation/schemas/AWS_Timestream_Table.json -package timestream -- ../aws/timestream/table_resource_gen.go ../aws/timestream/table_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_transfer_agreement -cfschema ../service/cloudformation/schemas/AWS_Transfer_Agreement.json -package transfer -- ../aws/transfer/agreement_resource_gen.go ../aws/transfer/agreement_resource_gen_test.go diff --git a/internal/provider/singular_data_sources.go b/internal/provider/singular_data_sources.go index 690fd2da3..699b86855 100644 --- a/internal/provider/singular_data_sources.go +++ b/internal/provider/singular_data_sources.go @@ -966,6 +966,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_synthetics_group -cfschema ../service/cloudformation/schemas/AWS_Synthetics_Group.json -package synthetics ../aws/synthetics/group_singular_data_source_gen.go ../aws/synthetics/group_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_systemsmanagersap_application -cfschema ../service/cloudformation/schemas/AWS_SystemsManagerSAP_Application.json -package systemsmanagersap ../aws/systemsmanagersap/application_singular_data_source_gen.go ../aws/systemsmanagersap/application_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_timestream_database -cfschema ../service/cloudformation/schemas/AWS_Timestream_Database.json -package timestream ../aws/timestream/database_singular_data_source_gen.go ../aws/timestream/database_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_timestream_influx_db_instance -cfschema ../service/cloudformation/schemas/AWS_Timestream_InfluxDBInstance.json -package timestream ../aws/timestream/influx_db_instance_singular_data_source_gen.go ../aws/timestream/influx_db_instance_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_timestream_scheduled_query -cfschema ../service/cloudformation/schemas/AWS_Timestream_ScheduledQuery.json -package timestream ../aws/timestream/scheduled_query_singular_data_source_gen.go ../aws/timestream/scheduled_query_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_timestream_table -cfschema ../service/cloudformation/schemas/AWS_Timestream_Table.json -package timestream ../aws/timestream/table_singular_data_source_gen.go ../aws/timestream/table_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_transfer_agreement -cfschema ../service/cloudformation/schemas/AWS_Transfer_Agreement.json -package transfer ../aws/transfer/agreement_singular_data_source_gen.go ../aws/transfer/agreement_singular_data_source_gen_test.go diff --git a/internal/service/cloudformation/schemas/AWS_Timestream_InfluxDBInstance.json b/internal/service/cloudformation/schemas/AWS_Timestream_InfluxDBInstance.json new file mode 100644 index 000000000..372a4f792 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Timestream_InfluxDBInstance.json @@ -0,0 +1,314 @@ +{ + "typeName": "AWS::Timestream::InfluxDBInstance", + "description": "The AWS::Timestream::InfluxDBInstance resource creates an InfluxDB instance.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-timestream.git", + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "minLength": 1, + "maxLength": 128 + }, + "Value": { + "type": "string", + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "minLength": 0, + "maxLength": 256 + } + }, + "required": [ + "Key" + ] + } + }, + "properties": { + "Username": { + "type": "string", + "minLength": 1, + "maxLength": 64, + "description": "The username for the InfluxDB instance." + }, + "Password": { + "type": "string", + "minLength": 8, + "maxLength": 64, + "pattern": "^[a-zA-Z0-9]+$", + "description": "The password for the InfluxDB instance." + }, + "Organization": { + "type": "string", + "minLength": 1, + "maxLength": 64, + "description": "The organization for the InfluxDB instance." + }, + "Bucket": { + "type": "string", + "minLength": 2, + "maxLength": 64, + "pattern": "^[^_][^\"]*$", + "description": "The bucket for the InfluxDB instance." + }, + "DbInstanceType": { + "type": "string", + "enum": [ + "db.influx.medium", + "db.influx.large", + "db.influx.xlarge", + "db.influx.2xlarge", + "db.influx.4xlarge", + "db.influx.8xlarge", + "db.influx.12xlarge", + "db.influx.16xlarge" + ], + "description": "The compute instance of the InfluxDB instance." + }, + "VpcSubnetIds": { + "type": "array", + "insertionOrder": false, + "items": { + "type": "string" + }, + "minItems": 1, + "maxItems": 3, + "description": "A list of EC2 subnet IDs for this InfluxDB instance." + }, + "VpcSecurityGroupIds": { + "type": "array", + "insertionOrder": false, + "items": { + "type": "string" + }, + "minItems": 1, + "maxItems": 5, + "description": "A list of Amazon EC2 VPC security groups to associate with this InfluxDB instance." + }, + "PubliclyAccessible": { + "type": "boolean", + "description": "Attach a public IP to the customer ENI.", + "default": false + }, + "DbStorageType": { + "type": "string", + "enum": [ + "InfluxIOIncludedT1", + "InfluxIOIncludedT2", + "InfluxIOIncludedT3" + ], + "description": "The storage type of the InfluxDB instance." + }, + "AllocatedStorage": { + "type": "integer", + "minimum": 20, + "maximum": 16384, + "description": "The allocated storage for the InfluxDB instance." + }, + "DbParameterGroupIdentifier": { + "type": "string", + "minLength": 3, + "maxLength": 64, + "pattern": "^[a-zA-Z0-9]+$", + "description": "The name of an existing InfluxDB parameter group." + }, + "LogDeliveryConfiguration": { + "type": "object", + "description": "Configuration for sending logs to customer account from the InfluxDB instance.", + "properties": { + "S3Configuration": { + "description": "S3 configuration for sending logs to customer account from the InfluxDB instance.", + "type": "object", + "properties": { + "BucketName": { + "description": "The bucket name for logs to be sent from the InfluxDB instance", + "type": "string", + "minLength": 3, + "maxLength": 63, + "pattern": "^[0-9a-z]+[0-9a-z\\.\\-]*[0-9a-z]+$" + }, + "Enabled": { + "description": "Specifies whether logging to customer specified bucket is enabled.", + "type": "boolean" + } + }, + "required": [ + "Enabled", + "BucketName" + ], + "additionalProperties": false + } + }, + "required": [ + "S3Configuration" + ], + "additionalProperties": false + }, + "Status": { + "type": "string", + "description": "Status of the InfluxDB Instance.", + "enum": [ + "CREATING", + "AVAILABLE", + "DELETING", + "MODIFYING", + "UPDATING", + "DELETED", + "FAILED" + ] + }, + "Arn": { + "type": "string", + "minLength": 1, + "maxLength": 1011, + "pattern": "^arn:aws[a-z\\-]*:timestream\\-influxdb:[a-z0-9\\-]+:[0-9]{12}:(db\\-instance)\/[a-zA-Z0-9]{3,64}$", + "description": "The Amazon Resource Name (ARN) that is associated with the InfluxDB instance." + }, + "Name": { + "type": "string", + "minLength": 3, + "maxLength": 40, + "pattern": "^[a-zA-z][a-zA-Z0-9]*(-[a-zA-Z0-9]+)*$", + "description": "The unique name that is associated with the InfluxDB instance." + }, + "AvailabilityZone": { + "type": "string", + "description": "The Availability Zone (AZ) where the InfluxDB instance is created." + }, + "SecondaryAvailabilityZone": { + "type": "string", + "description": "The Secondary Availability Zone (AZ) where the InfluxDB instance is created, if DeploymentType is set as WITH_MULTIAZ_STANDBY." + }, + "Endpoint": { + "type": "string", + "description": "The connection endpoint for the InfluxDB instance." + }, + "InfluxAuthParametersSecretArn": { + "type": "string", + "pattern": "^arn:[a-z]*:secretsmanager:[a-z\\-0-9]*:[0-9]*:secret:[a-zA-Z0-9\\-]*", + "description": "The Auth parameters secret Amazon Resource name (ARN) that is associated with the InfluxDB instance." + }, + "Id": { + "type": "string", + "pattern": "^[a-zA-Z0-9]+$", + "minLength": 3, + "maxLength": 64, + "description": "The service generated unique identifier for InfluxDB instance." + }, + "DeploymentType": { + "type": "string", + "description": "Deployment type of the InfluxDB Instance.", + "enum": [ + "SINGLE_AZ", + "WITH_MULTIAZ_STANDBY" + ] + }, + "Tags": { + "type": "array", + "insertionOrder": false, + "uniqueItems": true, + "items": { + "$ref": "#/definitions/Tag" + }, + "minItems": 1, + "maxItems": 200, + "description": "An arbitrary set of tags (key-value pairs) for this DB instance." + } + }, + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/Id" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags" + }, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Username", + "/properties/Password", + "/properties/Organization", + "/properties/Bucket", + "/properties/DbInstanceType", + "/properties/VpcSubnetIds", + "/properties/VpcSecurityGroupIds", + "/properties/PubliclyAccessible", + "/properties/DbStorageType", + "/properties/AllocatedStorage", + "/properties/DeploymentType" + ], + "writeOnlyProperties": [ + "/properties/Username", + "/properties/Password", + "/properties/Organization", + "/properties/Bucket" + ], + "readOnlyProperties": [ + "/properties/Status", + "/properties/Arn", + "/properties/Id", + "/properties/AvailabilityZone", + "/properties/Endpoint", + "/properties/SecondaryAvailabilityZone", + "/properties/InfluxAuthParametersSecretArn" + ], + "handlers": { + "create": { + "permissions": [ + "s3:ListBucket", + "s3:GetBucketPolicy", + "timestream-influxdb:GetDbInstance", + "timestream-influxdb:ListDbInstances", + "timestream-influxdb:CreateDbInstance", + "timestream-influxdb:TagResource", + "timestream-influxdb:ListTagsForResource", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSecurityGroups", + "ec2:CreateNetworkInterface", + "iam:CreateServiceLinkedRole" + ], + "timeoutInMinutes": 2160 + }, + "read": { + "permissions": [ + "timestream-influxdb:GetDbInstance", + "timestream-influxdb:ListTagsForResource" + ], + "timeoutInMinutes": 2160 + }, + "update": { + "permissions": [ + "s3:ListBucket", + "s3:GetBucketPolicy", + "timestream-influxdb:GetDbInstance", + "timestream-influxdb:ListDbInstances", + "timestream-influxdb:UpdateDbInstance", + "timestream-influxdb:TagResource", + "timestream-influxdb:UntagResource", + "timestream-influxdb:ListTagsForResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "timestream-influxdb:GetDbInstance", + "timestream-influxdb:ListDbInstances", + "timestream-influxdb:DeleteDbInstance" + ], + "timeoutInMinutes": 2160 + }, + "list": { + "permissions": [ + "timestream-influxdb:ListDbInstances" + ], + "timeoutInMinutes": 2160 + } + } +} From 158a4d125730ffb5adf50082979307975ede6d96 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Wed, 14 Aug 2024 14:36:47 -0400 Subject: [PATCH 82/89] Run 'make docs'. --- .../timestream_influx_db_instance.md | 70 +++++++++ .../timestream_influx_db_instances.md | 21 +++ docs/guides/using-aws-with-awscc-provider.md | 135 ++++++++++++++++++ .../timestream_influx_db_instance.md | 81 +++++++++++ .../import.sh | 1 + 5 files changed, 308 insertions(+) create mode 100644 docs/data-sources/timestream_influx_db_instance.md create mode 100644 docs/data-sources/timestream_influx_db_instances.md create mode 100644 docs/guides/using-aws-with-awscc-provider.md create mode 100644 docs/resources/timestream_influx_db_instance.md create mode 100644 examples/resources/awscc_timestream_influx_db_instance/import.sh diff --git a/docs/data-sources/timestream_influx_db_instance.md b/docs/data-sources/timestream_influx_db_instance.md new file mode 100644 index 000000000..3e2e8eaf0 --- /dev/null +++ b/docs/data-sources/timestream_influx_db_instance.md @@ -0,0 +1,70 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_timestream_influx_db_instance Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Timestream::InfluxDBInstance +--- + +# awscc_timestream_influx_db_instance (Data Source) + +Data Source schema for AWS::Timestream::InfluxDBInstance + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `allocated_storage` (Number) The allocated storage for the InfluxDB instance. +- `arn` (String) The Amazon Resource Name (ARN) that is associated with the InfluxDB instance. +- `availability_zone` (String) The Availability Zone (AZ) where the InfluxDB instance is created. +- `bucket` (String) The bucket for the InfluxDB instance. +- `db_instance_type` (String) The compute instance of the InfluxDB instance. +- `db_parameter_group_identifier` (String) The name of an existing InfluxDB parameter group. +- `db_storage_type` (String) The storage type of the InfluxDB instance. +- `deployment_type` (String) Deployment type of the InfluxDB Instance. +- `endpoint` (String) The connection endpoint for the InfluxDB instance. +- `influx_auth_parameters_secret_arn` (String) The Auth parameters secret Amazon Resource name (ARN) that is associated with the InfluxDB instance. +- `influx_db_instance_id` (String) The service generated unique identifier for InfluxDB instance. +- `log_delivery_configuration` (Attributes) Configuration for sending logs to customer account from the InfluxDB instance. (see [below for nested schema](#nestedatt--log_delivery_configuration)) +- `name` (String) The unique name that is associated with the InfluxDB instance. +- `organization` (String) The organization for the InfluxDB instance. +- `password` (String) The password for the InfluxDB instance. +- `publicly_accessible` (Boolean) Attach a public IP to the customer ENI. +- `secondary_availability_zone` (String) The Secondary Availability Zone (AZ) where the InfluxDB instance is created, if DeploymentType is set as WITH_MULTIAZ_STANDBY. +- `status` (String) Status of the InfluxDB Instance. +- `tags` (Attributes Set) An arbitrary set of tags (key-value pairs) for this DB instance. (see [below for nested schema](#nestedatt--tags)) +- `username` (String) The username for the InfluxDB instance. +- `vpc_security_group_ids` (List of String) A list of Amazon EC2 VPC security groups to associate with this InfluxDB instance. +- `vpc_subnet_ids` (List of String) A list of EC2 subnet IDs for this InfluxDB instance. + + +### Nested Schema for `log_delivery_configuration` + +Read-Only: + +- `s3_configuration` (Attributes) S3 configuration for sending logs to customer account from the InfluxDB instance. (see [below for nested schema](#nestedatt--log_delivery_configuration--s3_configuration)) + + +### Nested Schema for `log_delivery_configuration.s3_configuration` + +Read-Only: + +- `bucket_name` (String) The bucket name for logs to be sent from the InfluxDB instance +- `enabled` (Boolean) Specifies whether logging to customer specified bucket is enabled. + + + + +### Nested Schema for `tags` + +Read-Only: + +- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. diff --git a/docs/data-sources/timestream_influx_db_instances.md b/docs/data-sources/timestream_influx_db_instances.md new file mode 100644 index 000000000..c45dc3c1b --- /dev/null +++ b/docs/data-sources/timestream_influx_db_instances.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_timestream_influx_db_instances Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::Timestream::InfluxDBInstance +--- + +# awscc_timestream_influx_db_instances (Data Source) + +Plural Data Source schema for AWS::Timestream::InfluxDBInstance + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/guides/using-aws-with-awscc-provider.md b/docs/guides/using-aws-with-awscc-provider.md new file mode 100644 index 000000000..1f2053fd3 --- /dev/null +++ b/docs/guides/using-aws-with-awscc-provider.md @@ -0,0 +1,135 @@ +--- +subcategory: "" +layout: "aws" +page_title: "Using the Terraform awscc provider with aws provider" +description: |- + Managing resource tags with the Terraform AWS Provider. +--- + +# Using AWS & AWSCC Provider Together + +The [HashiCorp Terraform AWS Cloud Control Provider](https://registry.terraform.io/providers/hashicorp/awscc/latest) aims to bring Amazon Web Services (AWS) resources to Terraform users faster. The new provider is automatically generated, which means new features and services on AWS can be supported right away. The AWS Cloud Control provider supports over a thousand AWS resources, with more support being added as AWS service teams adopt the Cloud Control API standard. + +For Terraform users managing infrastructure on AWS, we expect the AWSCC provider will be used alongside the existing AWS provider. This guide is provided to show guidance and an example of using the providers together to deploy an AWS Cloud WAN Core Network. + +For more information about the AWSCC provider, please see the provider documentation in [Terraform Registry](https://registry.terraform.io/providers/hashicorp/awscc/latest) + + + +- [AWS CloudWAN Overview](#aws-cloud-wan) +- [Specifying Multiple Providers](#specifying-multiple-providers) + - [First Look at AWSCC Resources](#first-look-at-awscc-resources) + - [Using AWS and AWSCC Providers Together](#using-aws-and-awscc-providers-together) + + + +## AWS Cloud Wan + +In this guide we will deploy [AWS Cloud WAN](https://aws.amazon.com/cloud-wan/) to demonstrate how both AWS & AWSCC can work togther. Cloud WAN is a wide area networking (WAN) service that helps you build, manage, and monitor a unified global network that manages traffic running between resources in your cloud and on-premises environments. + +With Cloud WAN, you define network policies that are used to create a global network that spans multiple locations and networks—eliminating the need to configure and manage different networks individually using different technologies. Your network policies can be used to specify which of your Amazon Virtual Private Clouds (VPCs) and on-premises locations you wish to connect through AWS VPN or third-party software-defined WAN (SD-WAN) products, and the Cloud WAN central dashboard generates a complete view of the network to monitor network health, security, and performance. Cloud WAN automatically creates a global network across AWS Regions using Border Gateway Protocol (BGP), so you can easily exchange routes around the world. + +For more information on AWS Cloud WAN see [the documentation.](https://docs.aws.amazon.com/vpc/latest/cloudwan/what-is-cloudwan.html) + +## Specifying Multiple Providers + +Terraform can use many providers at once, as long as they are specified in your `terraform` configuration block: + +```terraform +terraform { + required_version = ">= 1.0.7" + required_providers { + aws = { + source = "hashicorp/aws" + version = ">= 4.9.0" + } + awscc = { + source = "hashicorp/awscc" + version = ">= 0.25.0" + } + } +} +``` + +The code snippet above informs terraform to download 2 providers as plugins for the current root module, the AWS and AWSCC provider. You can tell which provider is being use by looking at the resource or data source name-prefix. Resources that start with `aws_` use the AWS provider, resources that start with `awscc_` are using the AWSCC provider. + +### First look at AWSCC resources + +Lets start by building our [global network](https://aws.amazon.com/about-aws/global-infrastructure/global_network/) which will house our core network. + +```terraform +locals { + terraform_tag = [{ + key = "terraform" + value = "true" + }] +} + +resource "awscc_networkmanager_global_network" "main" { + description = "My Global Network" + tags = concat(local.terraform_tag, + [{ + key = "Name" + value = "My Global Network" + }] + ) +} +``` + +Above, we define a `awscc_networkmanager_global_network` with 2 tags and a description. AWSCC resources use the [standard AWS tag format](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) which is expressed in HCL as a list of maps with 2 keys. We want to reuse the `terraform = true` tag so we define it as a `local` then we use [concat](https://www.terraform.io/language/functions/concat) to join the list of tags together. + +### Using AWS and AWSCC providers together + +Next we will create a [core network](https://docs.aws.amazon.com/vpc/latest/cloudwan/cloudwan-core-network-policy.html) using an AWSCC resource `awscc_networkmanager_core_network` and an AWS data source `data.aws_networkmanager_core_network_policy_document` which allows users to write HCL to generate the json policy used as the [core policy network](https://docs.aws.amazon.com/vpc/latest/cloudwan/cloudwan-policies-json.html). + +```terraform +resource "awscc_networkmanager_core_network" "main" { + description = "My Core Network" + global_network_id = awscc_networkmanager_global_network.main.id + # Compose jsonencode and jsondecode to produce a normalized JSON string. + policy_document = jsonencode(jsondecode(data.aws_networkmanager_core_network_policy_document.main.json)) + tags = local.terraform_tag +} + +data "aws_networkmanager_core_network_policy_document" "main" { + core_network_configuration { + vpn_ecmp_support = false + asn_ranges = ["64512-64555"] + edge_locations { + location = "us-east-1" + asn = 64512 + } + } + + segments { + name = "shared" + description = "SegmentForSharedServices" + require_attachment_acceptance = true + } + + segment_actions { + action = "share" + mode = "attachment-route" + segment = "shared" + share_with = ["*"] + } + + attachment_policies { + rule_number = 1 + condition_logic = "or" + + conditions { + type = "tag-value" + operator = "equals" + key = "segment" + value = "shared" + } + action { + association_method = "constant" + segment = "shared" + } + } +} +``` + +Thanks to Terraform's plugin design, the providers work together seemlessly! diff --git a/docs/resources/timestream_influx_db_instance.md b/docs/resources/timestream_influx_db_instance.md new file mode 100644 index 000000000..4c5195daa --- /dev/null +++ b/docs/resources/timestream_influx_db_instance.md @@ -0,0 +1,81 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_timestream_influx_db_instance Resource - terraform-provider-awscc" +subcategory: "" +description: |- + The AWS::Timestream::InfluxDBInstance resource creates an InfluxDB instance. +--- + +# awscc_timestream_influx_db_instance (Resource) + +The AWS::Timestream::InfluxDBInstance resource creates an InfluxDB instance. + + + + +## Schema + +### Optional + +- `allocated_storage` (Number) The allocated storage for the InfluxDB instance. +- `bucket` (String) The bucket for the InfluxDB instance. +- `db_instance_type` (String) The compute instance of the InfluxDB instance. +- `db_parameter_group_identifier` (String) The name of an existing InfluxDB parameter group. +- `db_storage_type` (String) The storage type of the InfluxDB instance. +- `deployment_type` (String) Deployment type of the InfluxDB Instance. +- `log_delivery_configuration` (Attributes) Configuration for sending logs to customer account from the InfluxDB instance. (see [below for nested schema](#nestedatt--log_delivery_configuration)) +- `name` (String) The unique name that is associated with the InfluxDB instance. +- `organization` (String) The organization for the InfluxDB instance. +- `password` (String) The password for the InfluxDB instance. +- `publicly_accessible` (Boolean) Attach a public IP to the customer ENI. +- `tags` (Attributes Set) An arbitrary set of tags (key-value pairs) for this DB instance. (see [below for nested schema](#nestedatt--tags)) +- `username` (String) The username for the InfluxDB instance. +- `vpc_security_group_ids` (List of String) A list of Amazon EC2 VPC security groups to associate with this InfluxDB instance. +- `vpc_subnet_ids` (List of String) A list of EC2 subnet IDs for this InfluxDB instance. + +### Read-Only + +- `arn` (String) The Amazon Resource Name (ARN) that is associated with the InfluxDB instance. +- `availability_zone` (String) The Availability Zone (AZ) where the InfluxDB instance is created. +- `endpoint` (String) The connection endpoint for the InfluxDB instance. +- `id` (String) Uniquely identifies the resource. +- `influx_auth_parameters_secret_arn` (String) The Auth parameters secret Amazon Resource name (ARN) that is associated with the InfluxDB instance. +- `influx_db_instance_id` (String) The service generated unique identifier for InfluxDB instance. +- `secondary_availability_zone` (String) The Secondary Availability Zone (AZ) where the InfluxDB instance is created, if DeploymentType is set as WITH_MULTIAZ_STANDBY. +- `status` (String) Status of the InfluxDB Instance. + + +### Nested Schema for `log_delivery_configuration` + +Required: + +- `s3_configuration` (Attributes) S3 configuration for sending logs to customer account from the InfluxDB instance. (see [below for nested schema](#nestedatt--log_delivery_configuration--s3_configuration)) + + +### Nested Schema for `log_delivery_configuration.s3_configuration` + +Required: + +- `bucket_name` (String) The bucket name for logs to be sent from the InfluxDB instance +- `enabled` (Boolean) Specifies whether logging to customer specified bucket is enabled. + + + + +### Nested Schema for `tags` + +Required: + +- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + +Optional: + +- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_timestream_influx_db_instance.example +``` diff --git a/examples/resources/awscc_timestream_influx_db_instance/import.sh b/examples/resources/awscc_timestream_influx_db_instance/import.sh new file mode 100644 index 000000000..12236642a --- /dev/null +++ b/examples/resources/awscc_timestream_influx_db_instance/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_timestream_influx_db_instance.example \ No newline at end of file From 72436de0db72ec5e234900735534bedcf89bd328 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Wed, 14 Aug 2024 14:37:35 -0400 Subject: [PATCH 83/89] Add CHANGELOG entries. --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ceb5b54f6..94afdc291 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,11 @@ ## 1.10.0 (Unreleased) + +FEATURES: + +* **New Data Source:** `awscc_timestream_influx_db_instance` +* **New Data Source:** `awscc_timestream_influx_db_instances` +* **New Resource:** `awscc_timestream_influx_db_instance` + ## 1.9.0 (August 8, 2024) FEATURES: From d1d480385e52aa43a8e735000c9fb79e92f19068 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 15 Aug 2024 11:22:36 -0400 Subject: [PATCH 84/89] 08/14/2024 CloudFormation schemas in us-east-1; Refresh existing schemas. --- .../schemas/AWS_Bedrock_DataSource.json | 693 ++++- .../schemas/AWS_Cognito_IdentityPool.json | 48 +- .../AWS_Cognito_LogDeliveryConfiguration.json | 51 +- .../schemas/AWS_Cognito_UserPool.json | 28 +- .../schemas/AWS_EC2_LaunchTemplate.json | 2 +- .../schemas/AWS_EC2_SecurityGroup.json | 5 + .../schemas/AWS_EC2_SubnetCidrBlock.json | 108 +- .../cloudformation/schemas/AWS_EC2_VPC.json | 4 +- .../schemas/AWS_EC2_VPCPeeringConnection.json | 162 +- .../AWS_Lambda_EventSourceMapping.json | 641 ++-- .../schemas/AWS_Route53_HostedZone.json | 11 + .../cloudformation/schemas/AWS_S3_Bucket.json | 2628 ++++++++--------- .../schemas/AWS_Signer_SigningProfile.json | 2 +- .../AWS_SystemsManagerSAP_Application.json | 28 +- .../schemas/AWS_VpcLattice_AuthPolicy.json | 2 +- 15 files changed, 2618 insertions(+), 1795 deletions(-) diff --git a/internal/service/cloudformation/schemas/AWS_Bedrock_DataSource.json b/internal/service/cloudformation/schemas/AWS_Bedrock_DataSource.json index 97493fed5..1c5db564c 100644 --- a/internal/service/cloudformation/schemas/AWS_Bedrock_DataSource.json +++ b/internal/service/cloudformation/schemas/AWS_Bedrock_DataSource.json @@ -3,6 +3,26 @@ "description": "Definition of AWS::Bedrock::DataSource Resource Type", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-aps", "definitions": { + "BedrockFoundationModelConfiguration": { + "type": "object", + "description": "Settings for a foundation model used to parse documents for a data source.", + "properties": { + "ModelArn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})$", + "description": "The model's ARN." + }, + "ParsingPrompt": { + "$ref": "#/definitions/ParsingPrompt" + } + }, + "required": [ + "ModelArn" + ], + "additionalProperties": false + }, "ChunkingConfiguration": { "type": "object", "description": "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.", @@ -12,6 +32,12 @@ }, "FixedSizeChunkingConfiguration": { "$ref": "#/definitions/FixedSizeChunkingConfiguration" + }, + "HierarchicalChunkingConfiguration": { + "$ref": "#/definitions/HierarchicalChunkingConfiguration" + }, + "SemanticChunkingConfiguration": { + "$ref": "#/definitions/SemanticChunkingConfiguration" } }, "required": [ @@ -24,9 +50,35 @@ "description": "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.", "enum": [ "FIXED_SIZE", - "NONE" + "NONE", + "HIERARCHICAL", + "SEMANTIC" ] }, + "CustomTransformationConfiguration": { + "type": "object", + "description": "Settings for customizing steps in the data source content ingestion pipeline.", + "properties": { + "IntermediateStorage": { + "$ref": "#/definitions/IntermediateStorage" + }, + "Transformations": { + "type": "array", + "items": { + "$ref": "#/definitions/Transformation" + }, + "maxItems": 1, + "minItems": 1, + "description": "A list of Lambda functions that process documents.", + "insertionOrder": false + } + }, + "required": [ + "IntermediateStorage", + "Transformations" + ], + "additionalProperties": false + }, "DataSourceConfiguration": { "type": "object", "description": "Specifies a raw data source location to ingest.", @@ -36,11 +88,49 @@ }, "S3Configuration": { "$ref": "#/definitions/S3DataSourceConfiguration" + }, + "ConfluenceConfiguration": { + "$ref": "#/definitions/ConfluenceDataSourceConfiguration" + }, + "SalesforceConfiguration": { + "$ref": "#/definitions/SalesforceDataSourceConfiguration" + }, + "SharePointConfiguration": { + "$ref": "#/definitions/SharePointDataSourceConfiguration" + }, + "WebConfiguration": { + "$ref": "#/definitions/WebDataSourceConfiguration" } }, "required": [ - "Type", - "S3Configuration" + "Type" + ], + "oneOf": [ + { + "required": [ + "S3Configuration" + ] + }, + { + "required": [ + "ConfluenceConfiguration" + ] + }, + { + "required": [ + "SalesforceConfiguration" + ] + }, + { + "required": [ + "SharePointConfiguration" + ] + }, + { + "required": [ + "WebConfiguration" + ] + } ], "additionalProperties": false }, @@ -57,7 +147,11 @@ "type": "string", "description": "The type of the data source location.", "enum": [ - "S3" + "S3", + "CONFLUENCE", + "SALESFORCE", + "SHAREPOINT", + "WEB" ] }, "DataDeletionPolicy": { @@ -90,9 +184,103 @@ ], "additionalProperties": false }, + "HierarchicalChunkingConfiguration": { + "type": "object", + "description": "Configurations for when you choose hierarchical chunking. If you set the chunkingStrategy as NONE, exclude this field.", + "properties": { + "LevelConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/HierarchicalChunkingLevelConfiguration" + }, + "maxItems": 2, + "minItems": 2, + "description": "Token settings for each layer.", + "insertionOrder": false + }, + "OverlapTokens": { + "type": "integer", + "minimum": 1, + "description": "The number of tokens to repeat across chunks in the same layer." + } + }, + "required": [ + "LevelConfigurations", + "OverlapTokens" + ], + "additionalProperties": false + }, + "HierarchicalChunkingLevelConfiguration": { + "type": "object", + "description": "Token settings for a layer in a hierarchical chunking configuration.", + "properties": { + "MaxTokens": { + "type": "integer", + "minimum": 1, + "maximum": 8192, + "description": "The maximum number of tokens that a chunk can contain in this layer." + } + }, + "required": [ + "MaxTokens" + ], + "additionalProperties": false + }, + "IntermediateStorage": { + "type": "object", + "description": "A location for storing content from data sources temporarily as it is processed by custom components in the ingestion pipeline.", + "properties": { + "S3Location": { + "$ref": "#/definitions/S3Location" + } + }, + "required": [ + "S3Location" + ], + "additionalProperties": false + }, + "ParsingConfiguration": { + "type": "object", + "description": "Settings for parsing document contents", + "properties": { + "ParsingStrategy": { + "$ref": "#/definitions/ParsingStrategy" + }, + "BedrockFoundationModelConfiguration": { + "$ref": "#/definitions/BedrockFoundationModelConfiguration" + } + }, + "required": [ + "ParsingStrategy" + ], + "additionalProperties": false + }, + "ParsingPrompt": { + "type": "object", + "description": "Instructions for interpreting the contents of a document.", + "properties": { + "ParsingPromptText": { + "type": "string", + "maxLength": 10000, + "minLength": 1, + "description": "Instructions for interpreting the contents of a document." + } + }, + "required": [ + "ParsingPromptText" + ], + "additionalProperties": false + }, + "ParsingStrategy": { + "type": "string", + "description": "The parsing strategy for the data source.", + "enum": [ + "BEDROCK_FOUNDATION_MODEL" + ] + }, "S3DataSourceConfiguration": { "type": "object", - "description": "Contains information about the S3 configuration of the data source.", + "description": "The configuration information to connect to Amazon S3 as your data source.", "properties": { "BucketArn": { "type": "string", @@ -127,6 +315,116 @@ ], "additionalProperties": false }, + "ConfluenceDataSourceConfiguration": { + "type": "object", + "description": "The configuration information to connect to Confluence as your data source.", + "properties": { + "SourceConfiguration": { + "$ref": "#/definitions/ConfluenceSourceConfiguration" + }, + "CrawlerConfiguration": { + "$ref": "#/definitions/ConfluenceCrawlerConfiguration" + } + }, + "required": [ + "SourceConfiguration" + ], + "additionalProperties": false + }, + "SalesforceDataSourceConfiguration": { + "type": "object", + "description": "The configuration information to connect to Salesforce as your data source.", + "properties": { + "SourceConfiguration": { + "$ref": "#/definitions/SalesforceSourceConfiguration" + }, + "CrawlerConfiguration": { + "$ref": "#/definitions/SalesforceCrawlerConfiguration" + } + }, + "required": [ + "SourceConfiguration" + ], + "additionalProperties": false + }, + "SharePointDataSourceConfiguration": { + "type": "object", + "description": "The configuration information to connect to SharePoint as your data source.", + "properties": { + "SourceConfiguration": { + "$ref": "#/definitions/SharePointSourceConfiguration" + }, + "CrawlerConfiguration": { + "$ref": "#/definitions/SharePointCrawlerConfiguration" + } + }, + "required": [ + "SourceConfiguration" + ], + "additionalProperties": false + }, + "WebDataSourceConfiguration": { + "type": "object", + "description": "Configures a web data source location.", + "properties": { + "SourceConfiguration": { + "$ref": "#/definitions/WebSourceConfiguration" + }, + "CrawlerConfiguration": { + "$ref": "#/definitions/WebCrawlerConfiguration" + } + }, + "required": [ + "SourceConfiguration" + ], + "additionalProperties": false + }, + "S3Location": { + "type": "object", + "description": "An Amazon S3 location.", + "properties": { + "URI": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^s3://.{1,128}$", + "description": "The location's URI" + } + }, + "required": [ + "URI" + ], + "additionalProperties": false + }, + "SemanticChunkingConfiguration": { + "type": "object", + "description": "Configurations for when you choose semantic chunking. If you set the chunkingStrategy as NONE, exclude this field.", + "properties": { + "BreakpointPercentileThreshold": { + "type": "integer", + "minimum": 50, + "maximum": 99, + "description": "The dissimilarity threshold for splitting chunks." + }, + "BufferSize": { + "type": "integer", + "minimum": 0, + "maximum": 1, + "description": "The buffer size." + }, + "MaxTokens": { + "type": "integer", + "minimum": 1, + "description": "The maximum number of tokens that a chunk can contain." + } + }, + "required": [ + "BreakpointPercentileThreshold", + "BufferSize", + "MaxTokens" + ], + "additionalProperties": false + }, "ServerSideEncryptionConfiguration": { "type": "object", "description": "Contains details about the server-side encryption for the data source.", @@ -141,15 +439,396 @@ }, "additionalProperties": false }, + "Transformation": { + "type": "object", + "description": "A Lambda function that processes documents.", + "properties": { + "StepToApply": { + "type": "string", + "description": "When the service applies the transformation.", + "enum": [ + "POST_CHUNKING" + ] + }, + "TransformationFunction": { + "$ref": "#/definitions/TransformationFunction" + } + }, + "required": [ + "StepToApply", + "TransformationFunction" + ], + "additionalProperties": false + }, + "TransformationFunction": { + "type": "object", + "description": "A Lambda function that processes documents.", + "properties": { + "TransformationLambdaConfiguration": { + "$ref": "#/definitions/TransformationLambdaConfiguration" + } + }, + "required": [ + "TransformationLambdaConfiguration" + ], + "additionalProperties": false + }, + "TransformationLambdaConfiguration": { + "type": "object", + "description": "A Lambda function that processes documents.", + "properties": { + "LambdaArn": { + "type": "string", + "maxLength": 2048, + "minLength": 0, + "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + "description": "The function's ARN identifier." + } + }, + "required": [ + "LambdaArn" + ], + "additionalProperties": false + }, "VectorIngestionConfiguration": { "type": "object", "description": "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.", "properties": { "ChunkingConfiguration": { "$ref": "#/definitions/ChunkingConfiguration" + }, + "CustomTransformationConfiguration": { + "$ref": "#/definitions/CustomTransformationConfiguration" + }, + "ParsingConfiguration": { + "$ref": "#/definitions/ParsingConfiguration" } }, "additionalProperties": false + }, + "ConfluenceSourceConfiguration": { + "type": "object", + "description": "The endpoint information to connect to your Confluence data source.", + "properties": { + "HostUrl": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^https://[A-Za-z0-9][^\\s]*$", + "description": "The Confluence host URL or instance URL." + }, + "HostType": { + "type": "string", + "description": "The supported host type, whether online/cloud or server/on-premises.", + "enum": [ + "SAAS" + ] + }, + "AuthType": { + "type": "string", + "description": "The supported authentication type to authenticate and connect to your Confluence instance.", + "enum": [ + "BASIC", + "OAUTH2_CLIENT_CREDENTIALS" + ] + }, + "CredentialsSecretArn": { + "type": "string", + "description": "The Amazon Resource Name of an AWS Secrets Manager secret that stores your authentication credentials for your Confluence instance URL. For more information on the key-value pairs that must be included in your secret, depending on your authentication type, see Confluence connection configuration.", + "pattern": "^arn:aws(|-cn|-us-gov):secretsmanager:[a-z0-9-]{1,20}:([0-9]{12}|):secret:[a-zA-Z0-9!/_+=.@-]{1,512}$" + } + }, + "required": [ + "HostUrl", + "HostType", + "AuthType", + "CredentialsSecretArn" + ], + "additionalProperties": false + }, + "ConfluenceCrawlerConfiguration": { + "type": "object", + "description": "The configuration of the Confluence content. For example, configuring specific types of Confluence content.", + "properties": { + "FilterConfiguration": { + "$ref": "#/definitions/CrawlFilterConfiguration" + } + }, + "additionalProperties": false + }, + "SalesforceSourceConfiguration": { + "type": "object", + "description": "The endpoint information to connect to your Salesforce data source.", + "properties": { + "HostUrl": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^https://[A-Za-z0-9][^\\s]*$", + "description": "The Salesforce host URL or instance URL." + }, + "AuthType": { + "type": "string", + "description": "The supported authentication type to authenticate and connect to your Salesforce instance.", + "enum": [ + "OAUTH2_CLIENT_CREDENTIALS" + ] + }, + "CredentialsSecretArn": { + "type": "string", + "description": "The Amazon Resource Name of an AWS Secrets Manager secret that stores your authentication credentials for your Salesforce instance URL. For more information on the key-value pairs that must be included in your secret, depending on your authentication type, see Salesforce connection configuration.", + "pattern": "^arn:aws(|-cn|-us-gov):secretsmanager:[a-z0-9-]{1,20}:([0-9]{12}|):secret:[a-zA-Z0-9!/_+=.@-]{1,512}$" + } + }, + "required": [ + "HostUrl", + "AuthType", + "CredentialsSecretArn" + ], + "additionalProperties": false + }, + "SalesforceCrawlerConfiguration": { + "type": "object", + "description": "The configuration of filtering the Salesforce content. For example, configuring regular expression patterns to include or exclude certain content.", + "properties": { + "FilterConfiguration": { + "$ref": "#/definitions/CrawlFilterConfiguration" + } + }, + "additionalProperties": false + }, + "SharePointSourceConfiguration": { + "type": "object", + "description": "The endpoint information to connect to your SharePoint data source.", + "properties": { + "SiteUrls": { + "type": "array", + "description": "A list of one or more SharePoint site URLs.", + "items": { + "type": "string", + "pattern": "^https://[A-Za-z0-9][^\\s]*$", + "description": "A forced-HTTPS web url." + }, + "maxItems": 100, + "minItems": 1, + "insertionOrder": false + }, + "HostType": { + "type": "string", + "description": "The supported host type, whether online/cloud or server/on-premises.", + "enum": [ + "ONLINE" + ] + }, + "AuthType": { + "type": "string", + "description": "The supported authentication type to authenticate and connect to your SharePoint site/sites.", + "enum": [ + "OAUTH2_CLIENT_CREDENTIALS" + ] + }, + "CredentialsSecretArn": { + "type": "string", + "description": "The Amazon Resource Name of an AWS Secrets Manager secret that stores your authentication credentials for your SharePoint site/sites. For more information on the key-value pairs that must be included in your secret, depending on your authentication type, see SharePoint connection configuration.", + "pattern": "^arn:aws(|-cn|-us-gov):secretsmanager:[a-z0-9-]{1,20}:([0-9]{12}|):secret:[a-zA-Z0-9!/_+=.@-]{1,512}$" + }, + "TenantId": { + "type": "string", + "description": "The identifier of your Microsoft 365 tenant.", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" + }, + "Domain": { + "type": "string", + "description": "The domain of your SharePoint instance or site URL/URLs.", + "maxLength": 50, + "minLength": 1 + } + }, + "required": [ + "Domain", + "SiteUrls", + "HostType", + "AuthType", + "CredentialsSecretArn" + ], + "additionalProperties": false + }, + "SharePointCrawlerConfiguration": { + "type": "object", + "description": "The configuration of the SharePoint content. For example, configuring specific types of SharePoint content.", + "properties": { + "FilterConfiguration": { + "$ref": "#/definitions/CrawlFilterConfiguration" + } + }, + "additionalProperties": false + }, + "WebSourceConfiguration": { + "type": "object", + "description": "A web source configuration.", + "properties": { + "UrlConfiguration": { + "$ref": "#/definitions/UrlConfiguration" + } + }, + "required": [ + "UrlConfiguration" + ], + "additionalProperties": false + }, + "UrlConfiguration": { + "type": "object", + "description": "A url configuration.", + "properties": { + "SeedUrls": { + "$ref": "#/definitions/SeedUrls" + } + }, + "required": [ + "SeedUrls" + ], + "additionalProperties": false + }, + "SeedUrl": { + "type": "object", + "description": "A seed url object.", + "properties": { + "Url": { + "type": "string", + "pattern": "^https?://[A-Za-z0-9][^\\s]*$", + "description": "A web url." + } + }, + "required": [ + "Url" + ], + "additionalProperties": false + }, + "SeedUrls": { + "type": "array", + "description": "A list of web urls.", + "items": { + "$ref": "#/definitions/SeedUrl" + }, + "maxItems": 100, + "minItems": 1, + "insertionOrder": false + }, + "WebCrawlerConfiguration": { + "type": "object", + "description": "Configuration for the web crawler.", + "properties": { + "CrawlerLimits": { + "$ref": "#/definitions/WebCrawlerLimits" + }, + "InclusionFilters": { + "$ref": "#/definitions/FilterList" + }, + "ExclusionFilters": { + "$ref": "#/definitions/FilterList" + }, + "Scope": { + "$ref": "#/definitions/WebScopeType" + } + }, + "additionalProperties": false + }, + "WebCrawlerLimits": { + "type": "object", + "description": "Limit settings for the web crawler.", + "properties": { + "RateLimit": { + "type": "integer", + "minimum": 1, + "maximum": 300, + "description": "Rate of web URLs retrieved per minute." + } + }, + "additionalProperties": false + }, + "WebScopeType": { + "type": "string", + "description": "The scope that a web crawl job will be restricted to.", + "enum": [ + "HOST_ONLY", + "SUBDOMAINS" + ] + }, + "CrawlFilterConfiguration": { + "type": "object", + "description": "The type of filtering that you want to apply to certain objects or content of the data source. For example, the PATTERN type is regular expression patterns you can apply to filter your content.", + "properties": { + "Type": { + "type": "string", + "description": "The crawl filter type.", + "enum": [ + "PATTERN" + ] + }, + "PatternObjectFilter": { + "$ref": "#/definitions/PatternObjectFilterConfiguration" + } + }, + "required": [ + "Type" + ], + "additionalProperties": false + }, + "PatternObjectFilterConfiguration": { + "type": "object", + "description": "The configuration of specific filters applied to your data source content. You can filter out or include certain content.", + "properties": { + "Filters": { + "$ref": "#/definitions/PatternObjectFilterList" + } + }, + "required": [ + "Filters" + ], + "additionalProperties": false + }, + "PatternObjectFilterList": { + "type": "array", + "items": { + "$ref": "#/definitions/PatternObjectFilter" + }, + "maxItems": 25, + "minItems": 1, + "description": "Contains information" + }, + "PatternObjectFilter": { + "type": "object", + "description": "The specific filters applied to your data source content. You can filter out or include certain content.", + "properties": { + "ObjectType": { + "type": "string", + "maxLength": 50, + "minLength": 1, + "description": "The supported object type or content type of the data source." + }, + "InclusionFilters": { + "$ref": "#/definitions/FilterList" + }, + "ExclusionFilters": { + "$ref": "#/definitions/FilterList" + } + }, + "required": [ + "ObjectType" + ], + "additionalProperties": false + }, + "FilterList": { + "type": "array", + "description": "A set of regular expression filter patterns for a type of object.", + "items": { + "type": "string", + "maxLength": 1000, + "description": "A list of one or more inclusion/exclusion regular expression patterns to include certain object types that adhere to the pattern. If you specify an inclusion and exclusion filter/pattern and both match a document, the exclusion filter takes precedence and the document isn't crawled." + }, + "maxItems": 25, + "minItems": 1, + "insertionOrder": false } }, "properties": { @@ -223,7 +902,9 @@ ], "createOnlyProperties": [ "/properties/KnowledgeBaseId", - "/properties/VectorIngestionConfiguration" + "/properties/VectorIngestionConfiguration/ChunkingConfiguration", + "/properties/VectorIngestionConfiguration/ParsingConfiguration", + "/properties/DataSourceConfiguration/Type" ], "primaryIdentifier": [ "/properties/KnowledgeBaseId", diff --git a/internal/service/cloudformation/schemas/AWS_Cognito_IdentityPool.json b/internal/service/cloudformation/schemas/AWS_Cognito_IdentityPool.json index fc3bed1c1..bc2a27461 100644 --- a/internal/service/cloudformation/schemas/AWS_Cognito_IdentityPool.json +++ b/internal/service/cloudformation/schemas/AWS_Cognito_IdentityPool.json @@ -4,12 +4,40 @@ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "additionalProperties": false, "tagging": { - "taggable": false, - "tagOnCreate": false, - "tagUpdatable": false, - "cloudFormationSystemTags": false + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/IdentityPoolTags", + "permissions": [ + "cognito-identity:TagResource", + "cognito-identity:UntagResource" + ] }, "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "minLength": 1, + "maxLength": 128 + }, + "Value": { + "type": "string", + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "minLength": 0, + "maxLength": 256 + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false + }, "PushSync": { "type": "object", "additionalProperties": false, @@ -116,6 +144,15 @@ }, "AllowClassicFlow": { "type": "boolean" + }, + "IdentityPoolTags": { + "description": "An array of key-value pairs to apply to this resource.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + } } }, "required": [ @@ -139,6 +176,7 @@ "cognito-identity:CreateIdentityPool", "cognito-sync:SetIdentityPoolConfiguration", "cognito-sync:SetCognitoEvents", + "cognito-identity:TagResource", "iam:PassRole" ] }, @@ -153,6 +191,8 @@ "cognito-identity:DescribeIdentityPool", "cognito-sync:SetIdentityPoolConfiguration", "cognito-sync:SetCognitoEvents", + "cognito-identity:TagResource", + "cognito-identity:UntagResource", "iam:PassRole" ] }, diff --git a/internal/service/cloudformation/schemas/AWS_Cognito_LogDeliveryConfiguration.json b/internal/service/cloudformation/schemas/AWS_Cognito_LogDeliveryConfiguration.json index 7f448ec9d..1b2cc6c79 100644 --- a/internal/service/cloudformation/schemas/AWS_Cognito_LogDeliveryConfiguration.json +++ b/internal/service/cloudformation/schemas/AWS_Cognito_LogDeliveryConfiguration.json @@ -12,6 +12,24 @@ }, "additionalProperties": false }, + "S3Configuration": { + "type": "object", + "properties": { + "BucketArn": { + "type": "string" + } + }, + "additionalProperties": false + }, + "FirehoseConfiguration": { + "type": "object", + "properties": { + "StreamArn": { + "type": "string" + } + }, + "additionalProperties": false + }, "LogConfiguration": { "type": "object", "properties": { @@ -23,6 +41,12 @@ }, "CloudWatchLogsConfiguration": { "$ref": "#/definitions/CloudWatchLogsConfiguration" + }, + "S3Configuration": { + "$ref": "#/definitions/S3Configuration" + }, + "FirehoseConfiguration": { + "$ref": "#/definitions/FirehoseConfiguration" } }, "additionalProperties": false @@ -76,7 +100,14 @@ "logs:ListLogDeliveries", "logs:PutResourcePolicy", "logs:DescribeResourcePolicies", - "logs:DescribeLogGroups" + "logs:DescribeLogGroups", + "s3:GetBucketPolicy", + "s3:PutBucketPolicy", + "s3:ListBucket", + "s3:PutObject", + "s3:GetBucketAcl", + "firehose:TagDeliveryStream", + "iam:CreateServiceLinkedRole" ], "timeoutInMinutes": 2 }, @@ -96,7 +127,14 @@ "logs:ListLogDeliveries", "logs:PutResourcePolicy", "logs:DescribeResourcePolicies", - "logs:DescribeLogGroups" + "logs:DescribeLogGroups", + "s3:GetBucketPolicy", + "s3:PutBucketPolicy", + "s3:ListBucket", + "s3:PutObject", + "s3:GetBucketAcl", + "firehose:TagDeliveryStream", + "iam:CreateServiceLinkedRole" ], "timeoutInMinutes": 2 }, @@ -111,7 +149,14 @@ "logs:ListLogDeliveries", "logs:PutResourcePolicy", "logs:DescribeResourcePolicies", - "logs:DescribeLogGroups" + "logs:DescribeLogGroups", + "s3:GetBucketPolicy", + "s3:PutBucketPolicy", + "s3:ListBucket", + "s3:PutObject", + "s3:GetBucketAcl", + "firehose:TagDeliveryStream", + "iam:CreateServiceLinkedRole" ], "timeoutInMinutes": 2 } diff --git a/internal/service/cloudformation/schemas/AWS_Cognito_UserPool.json b/internal/service/cloudformation/schemas/AWS_Cognito_UserPool.json index d5c9c8539..a5b344926 100644 --- a/internal/service/cloudformation/schemas/AWS_Cognito_UserPool.json +++ b/internal/service/cloudformation/schemas/AWS_Cognito_UserPool.json @@ -1,13 +1,18 @@ { "typeName": "AWS::Cognito::UserPool", - "description": "Resource Type definition for AWS::Cognito::UserPool", + "description": "Definition of AWS::Cognito::UserPool Resource Type", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "tagging": { "taggable": true, "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/UserPoolTags" + "tagProperty": "/properties/UserPoolTags", + "permissions": [ + "cognito-idp:ListTagsForResource", + "cognito-idp:UntagResource", + "cognito-idp:TagResource" + ] }, "definitions": { "PasswordPolicy": { @@ -30,6 +35,9 @@ }, "TemporaryPasswordValidityDays": { "type": "integer" + }, + "PasswordHistorySize": { + "type": "integer" } }, "additionalProperties": false @@ -328,11 +336,23 @@ }, "additionalProperties": false }, + "AdvancedSecurityAdditionalFlows": { + "type": "object", + "properties": { + "CustomAuthMode": { + "type": "string" + } + }, + "additionalProperties": false + }, "UserPoolAddOns": { "type": "object", "properties": { "AdvancedSecurityMode": { "type": "string" + }, + "AdvancedSecurityAdditionalFlows": { + "$ref": "#/definitions/AdvancedSecurityAdditionalFlows" } }, "additionalProperties": false @@ -485,7 +505,8 @@ }, "read": { "permissions": [ - "cognito-idp:DescribeUserPool" + "cognito-idp:DescribeUserPool", + "cognito-idp:GetUserPoolMfaConfig" ] }, "update": { @@ -497,6 +518,7 @@ "cognito-idp:SetUserPoolMfaConfig", "cognito-idp:AddCustomAttributes", "cognito-idp:DescribeUserPool", + "cognito-idp:GetUserPoolMfaConfig", "iam:PassRole" ], "timeoutInMinutes": 2 diff --git a/internal/service/cloudformation/schemas/AWS_EC2_LaunchTemplate.json b/internal/service/cloudformation/schemas/AWS_EC2_LaunchTemplate.json index 9fc718742..289031d01 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_LaunchTemplate.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_LaunchTemplate.json @@ -137,7 +137,7 @@ "$ref": "#/definitions/EnclaveOptions" }, "ImageId": { - "description": "The ID of the AMI. Alternatively, you can specify a Systems Manager parameter, which will resolve to an AMI ID on launch.\n Valid formats:\n + ``ami-17characters00000`` \n + ``resolve:ssm:parameter-name`` \n + ``resolve:ssm:parameter-name:version-number`` \n + ``resolve:ssm:parameter-name:label`` \n \n For more information, see [Use a Systems Manager parameter to find an AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html#using-systems-manager-parameter-to-find-AMI) in the *Amazon Elastic Compute Cloud User Guide*.", + "description": "The ID of the AMI. Alternatively, you can specify a Systems Manager parameter, which will resolve to an AMI ID on launch.\n Valid formats:\n + ``ami-0ac394d6a3example`` \n + ``resolve:ssm:parameter-name`` \n + ``resolve:ssm:parameter-name:version-number`` \n + ``resolve:ssm:parameter-name:label`` \n \n For more information, see [Use a Systems Manager parameter to find an AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html#using-systems-manager-parameter-to-find-AMI) in the *Amazon Elastic Compute Cloud User Guide*.", "type": "string" }, "InstanceType": { diff --git a/internal/service/cloudformation/schemas/AWS_EC2_SecurityGroup.json b/internal/service/cloudformation/schemas/AWS_EC2_SecurityGroup.json index e1c7ba4be..97b8680d1 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_SecurityGroup.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_SecurityGroup.json @@ -1,5 +1,9 @@ { "tagging": { + "permissions": [ + "ec2:CreateTags", + "ec2:DeleteTags" + ], "taggable": true, "tagOnCreate": true, "tagUpdatable": true, @@ -69,6 +73,7 @@ }, "delete": { "permissions": [ + "ec2:DescribeSecurityGroups", "ec2:DeleteSecurityGroup", "ec2:DescribeInstances" ] diff --git a/internal/service/cloudformation/schemas/AWS_EC2_SubnetCidrBlock.json b/internal/service/cloudformation/schemas/AWS_EC2_SubnetCidrBlock.json index a94a13c1d..3a3d75b2a 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_SubnetCidrBlock.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_SubnetCidrBlock.json @@ -1,41 +1,82 @@ { - "tagging": { - "taggable": false, - "tagOnCreate": false, - "tagUpdatable": false, - "cloudFormationSystemTags": false - }, - "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", "typeName": "AWS::EC2::SubnetCidrBlock", - "readOnlyProperties": [ - "/properties/Id" - ], + "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", "description": "The AWS::EC2::SubnetCidrBlock resource creates association between subnet and IPv6 CIDR", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2/subnetcidrblock", + "additionalProperties": false, + "properties": { + "Id": { + "description": "Information about the IPv6 association.", + "type": "string" + }, + "Ipv6CidrBlock": { + "description": "The IPv6 network range for the subnet, in CIDR notation. The subnet size must use a /64 prefix length", + "type": "string", + "maxLength": 42 + }, + "Ipv6IpamPoolId": { + "description": "The ID of an IPv6 Amazon VPC IP Address Manager (IPAM) pool from which to allocate, to get the subnet's CIDR", + "type": "string" + }, + "Ipv6NetmaskLength": { + "description": "The netmask length of the IPv6 CIDR to allocate to the subnet from an IPAM pool", + "type": "integer", + "minimum": 0, + "maximum": 128 + }, + "SubnetId": { + "description": "The ID of the subnet", + "type": "string" + }, + "Ipv6AddressAttribute": { + "type": "string", + "description": "The value denoting whether an IPv6 Subnet CIDR Block is public or private." + }, + "IpSource": { + "type": "string", + "description": "The IP Source of an IPv6 Subnet CIDR Block." + } + }, + "required": [ + "SubnetId" + ], "createOnlyProperties": [ "/properties/Ipv6CidrBlock", "/properties/SubnetId", "/properties/Ipv6IpamPoolId", "/properties/Ipv6NetmaskLength" ], + "readOnlyProperties": [ + "/properties/Id", + "/properties/Ipv6AddressAttribute", + "/properties/IpSource" + ], + "writeOnlyProperties": [ + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], "primaryIdentifier": [ "/properties/Id" ], - "required": [ - "SubnetId" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2/subnetcidrblock", "propertyTransform": { "/properties/Ipv6CidrBlock": "$join([$match($replace(Ipv6CidrBlock, /(^|:)(0{1,4})([0-9a-fA-F]{1,4})/, \"$1$3\"), /^([0-9a-fA-F]{1,4}:){4}/).match, \":/64\"])" }, + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, "handlers": { - "read": { + "create": { "permissions": [ + "ec2:AssociateSubnetCidrBlock", "ec2:DescribeSubnets" ] }, - "create": { + "delete": { "permissions": [ - "ec2:AssociateSubnetCidrBlock", + "ec2:DisassociateSubnetCidrBlock", "ec2:DescribeSubnets" ] }, @@ -44,41 +85,10 @@ "ec2:DescribeSubnets" ] }, - "delete": { + "read": { "permissions": [ - "ec2:DisassociateSubnetCidrBlock", "ec2:DescribeSubnets" ] } - }, - "writeOnlyProperties": [ - "/properties/Ipv6IpamPoolId", - "/properties/Ipv6NetmaskLength" - ], - "additionalProperties": false, - "properties": { - "Ipv6NetmaskLength": { - "description": "The netmask length of the IPv6 CIDR to allocate to the subnet from an IPAM pool", - "maximum": 128, - "type": "integer", - "minimum": 0 - }, - "Ipv6IpamPoolId": { - "description": "The ID of an IPv6 Amazon VPC IP Address Manager (IPAM) pool from which to allocate, to get the subnet's CIDR", - "type": "string" - }, - "Id": { - "description": "Information about the IPv6 association.", - "type": "string" - }, - "SubnetId": { - "description": "The ID of the subnet", - "type": "string" - }, - "Ipv6CidrBlock": { - "description": "The IPv6 network range for the subnet, in CIDR notation. The subnet size must use a /64 prefix length", - "type": "string", - "maxLength": 42 - } } } diff --git a/internal/service/cloudformation/schemas/AWS_EC2_VPC.json b/internal/service/cloudformation/schemas/AWS_EC2_VPC.json index 821c5b758..b684beac3 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_VPC.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_VPC.json @@ -51,7 +51,7 @@ "/properties/Ipv6CidrBlocks", "/properties/VpcId" ], - "description": "Specifies a virtual private cloud (VPC).\n You can optionally request an IPv6 CIDR block for the VPC. You can request an Amazon-provided IPv6 CIDR block from Amazon's pool of IPv6 addresses, or an IPv6 CIDR block from an IPv6 address pool that you provisioned through bring your own IP addresses (BYOIP).\n For more information, see [Virtual private clouds (VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/configure-your-vpc.html) in the *Amazon VPC User Guide*.", + "description": "Specifies a virtual private cloud (VPC).\n To add an IPv6 CIDR block to the VPC, see [AWS::EC2::VPCCidrBlock](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html).\n For more information, see [Virtual private clouds (VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/configure-your-vpc.html) in the *Amazon VPC User Guide*.", "writeOnlyProperties": [ "/properties/Ipv4IpamPoolId", "/properties/Ipv4NetmaskLength" @@ -92,7 +92,7 @@ "type": "string" }, "InstanceTenancy": { - "description": "The allowed tenancy of instances launched into the VPC.\n + ``default``: An instance launched into the VPC runs on shared hardware by default, unless you explicitly specify a different tenancy during instance launch.\n + ``dedicated``: An instance launched into the VPC runs on dedicated hardware by default, unless you explicitly specify a tenancy of ``host`` during instance launch. You cannot specify a tenancy of ``default`` during instance launch.\n \n Updating ``InstanceTenancy`` requires no replacement only if you are updating its value from ``dedicated`` to ``default``. Updating ``InstanceTenancy`` from ``default`` to ``dedicated`` requires replacement.", + "description": "The allowed tenancy of instances launched into the VPC.\n + ``default``: An instance launched into the VPC runs on shared hardware by default, unless you explicitly specify a different tenancy during instance launch.\n + ``dedicated``: An instance launched into the VPC runs on dedicated hardware by default, unless you explicitly specify a tenancy of ``host`` during instance launch. You cannot specify a tenancy of ``default`` during instance launch.\n \n Updating ``InstanceTenancy`` requires no replacement only if you are updating its value from ``dedicated`` to ``default``. Updating ``InstanceTenancy`` from ``default`` to ``dedicated`` requires replacement.", "type": "string" }, "Ipv4NetmaskLength": { diff --git a/internal/service/cloudformation/schemas/AWS_EC2_VPCPeeringConnection.json b/internal/service/cloudformation/schemas/AWS_EC2_VPCPeeringConnection.json index d5055da4b..34ffa2331 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_VPCPeeringConnection.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_VPCPeeringConnection.json @@ -1,66 +1,16 @@ { - "typeName": "AWS::EC2::VPCPeeringConnection", - "description": "Resource Type definition for AWS::EC2::VPCPeeringConnection", - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-ec2-vpcpeering.git", - "additionalProperties": false, - "properties": { - "Id": { - "type": "string" - }, - "PeerOwnerId": { - "description": "The AWS account ID of the owner of the accepter VPC.", - "type": "string" - }, - "PeerRegion": { - "description": "The Region code for the accepter VPC, if the accepter VPC is located in a Region other than the Region in which you make the request.", - "type": "string" - }, - "PeerRoleArn": { - "description": "The Amazon Resource Name (ARN) of the VPC peer role for the peering connection in another AWS account.", - "type": "string" - }, - "PeerVpcId": { - "description": "The ID of the VPC with which you are creating the VPC peering connection. You must specify this parameter in the request.", - "type": "string" - }, - "VpcId": { - "description": "The ID of the VPC.", - "type": "string" - }, - "Tags": { - "type": "array", - "uniqueItems": false, - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - } - } - }, - "definitions": { - "Tag": { - "description": "A key-value pair to associate with a resource.", - "type": "object", - "additionalProperties": false, - "properties": { - "Key": { - "type": "string", - "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -." - }, - "Value": { - "type": "string", - "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -." - } - }, - "required": [ - "Key", - "Value" - ] - } + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true }, - "required": [ - "VpcId", - "PeerVpcId" + "typeName": "AWS::EC2::VPCPeeringConnection", + "readOnlyProperties": [ + "/properties/Id" ], + "description": "Resource Type definition for AWS::EC2::VPCPeeringConnection", "createOnlyProperties": [ "/properties/PeerRegion", "/properties/PeerOwnerId", @@ -68,23 +18,20 @@ "/properties/PeerRoleArn", "/properties/VpcId" ], - "readOnlyProperties": [ - "/properties/Id" - ], - "writeOnlyProperties": [ - "/properties/PeerRoleArn" - ], "primaryIdentifier": [ "/properties/Id" ], - "tagging": { - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" - }, + "required": [ + "VpcId", + "PeerVpcId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-ec2-vpcpeering.git", "handlers": { + "read": { + "permissions": [ + "ec2:DescribeVpcPeeringConnections" + ] + }, "create": { "permissions": [ "ec2:CreateVpcPeeringConnection", @@ -94,11 +41,6 @@ "sts:AssumeRole" ] }, - "read": { - "permissions": [ - "ec2:DescribeVpcPeeringConnections" - ] - }, "update": { "permissions": [ "ec2:CreateTags", @@ -106,16 +48,74 @@ "ec2:DescribeVpcPeeringConnections" ] }, - "delete": { + "list": { "permissions": [ - "ec2:DeleteVpcPeeringConnection", "ec2:DescribeVpcPeeringConnections" ] }, - "list": { + "delete": { "permissions": [ + "ec2:DeleteVpcPeeringConnection", "ec2:DescribeVpcPeeringConnections" ] } + }, + "writeOnlyProperties": [ + "/properties/PeerRoleArn" + ], + "additionalProperties": false, + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "type": "string" + }, + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ] + } + }, + "properties": { + "PeerRoleArn": { + "description": "The Amazon Resource Name (ARN) of the VPC peer role for the peering connection in another AWS account.", + "type": "string" + }, + "VpcId": { + "description": "The ID of the VPC.", + "type": "string" + }, + "PeerVpcId": { + "description": "The ID of the VPC with which you are creating the VPC peering connection. You must specify this parameter in the request.", + "type": "string" + }, + "Id": { + "type": "string" + }, + "PeerRegion": { + "description": "The Region code for the accepter VPC, if the accepter VPC is located in a Region other than the Region in which you make the request.", + "type": "string" + }, + "PeerOwnerId": { + "description": "The AWS account ID of the owner of the accepter VPC.", + "type": "string" + }, + "Tags": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + } + } } } diff --git a/internal/service/cloudformation/schemas/AWS_Lambda_EventSourceMapping.json b/internal/service/cloudformation/schemas/AWS_Lambda_EventSourceMapping.json index 6399a2ded..4c3d6e547 100644 --- a/internal/service/cloudformation/schemas/AWS_Lambda_EventSourceMapping.json +++ b/internal/service/cloudformation/schemas/AWS_Lambda_EventSourceMapping.json @@ -1,97 +1,233 @@ { - "tagging": { - "taggable": false, - "tagOnCreate": false, - "tagUpdatable": false, - "cloudFormationSystemTags": false - }, - "propertyTransform": { - "/properties/StartingPositionTimestamp": "StartingPositionTimestamp * 1000" - }, - "handlers": { - "read": { - "permissions": [ - "lambda:GetEventSourceMapping" - ] + "typeName": "AWS::Lambda::EventSourceMapping", + "description": "The ``AWS::Lambda::EventSourceMapping`` resource creates a mapping between an event source and an LAMlong function. LAM reads items from the event source and triggers the function.\n For details about each event source type, see the following topics. In particular, each of the topics describes the required and optional parameters for the specific event source. \n + [Configuring a Dynamo DB stream as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-dynamodb-eventsourcemapping) \n + [Configuring a Kinesis stream as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-eventsourcemapping) \n + [Configuring an SQS queue as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-eventsource) \n + [Configuring an MQ broker as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html#services-mq-eventsourcemapping) \n + [Configuring MSK as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html) \n + [Configuring Self-Managed Apache Kafka as an event source](https://docs.aws.amazon.com/lambda/latest/dg/kafka-smaa.html) \n + [Configuring Amazon DocumentDB as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-documentdb.html)", + "additionalProperties": false, + "properties": { + "Id": { + "description": "", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "minLength": 36, + "maxLength": 36 }, - "create": { - "permissions": [ - "lambda:CreateEventSourceMapping", - "lambda:GetEventSourceMapping" - ] + "BatchSize": { + "description": "The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB).\n + *Amazon Kinesis* ? Default 100. Max 10,000.\n + *Amazon DynamoDB Streams* ? Default 100. Max 10,000.\n + *Amazon Simple Queue Service* ? Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10.\n + *Amazon Managed Streaming for Apache Kafka* ? Default 100. Max 10,000.\n + *Self-managed Apache Kafka* ? Default 100. Max 10,000.\n + *Amazon MQ (ActiveMQ and RabbitMQ)* ? Default 100. Max 10,000.\n + *DocumentDB* ? Default 100. Max 10,000.", + "type": "integer", + "minimum": 1, + "maximum": 10000 }, - "update": { - "permissions": [ - "lambda:UpdateEventSourceMapping", - "lambda:GetEventSourceMapping" - ] + "BisectBatchOnFunctionError": { + "description": "(Kinesis and DynamoDB Streams only) If the function returns an error, split the batch in two and retry. The default value is false.", + "type": "boolean" }, - "list": { - "permissions": [ - "lambda:ListEventSourceMappings" - ] + "DestinationConfig": { + "description": "(Kinesis, DynamoDB Streams, Amazon MSK, and self-managed Apache Kafka event sources only) A configuration object that specifies the destination of an event after Lambda processes it.", + "$ref": "#/definitions/DestinationConfig" }, - "delete": { - "permissions": [ - "lambda:DeleteEventSourceMapping", - "lambda:GetEventSourceMapping" - ] + "Enabled": { + "description": "When true, the event source mapping is active. When false, Lambda pauses polling and invocation.\n Default: True", + "type": "boolean" + }, + "EventSourceArn": { + "description": "The Amazon Resource Name (ARN) of the event source.\n + *Amazon Kinesis* ? The ARN of the data stream or a stream consumer.\n + *Amazon DynamoDB Streams* ? The ARN of the stream.\n + *Amazon Simple Queue Service* ? The ARN of the queue.\n + *Amazon Managed Streaming for Apache Kafka* ? The ARN of the cluster or the ARN of the VPC connection (for [cross-account event source mappings](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#msk-multi-vpc)).\n + *Amazon MQ* ? The ARN of the broker.\n + *Amazon DocumentDB* ? The ARN of the DocumentDB change stream.", + "type": "string", + "pattern": "arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(-gov)?(-iso([a-z])?)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)", + "minLength": 12, + "maxLength": 1024 + }, + "FilterCriteria": { + "description": "An object that defines the filter criteria that determine whether Lambda should process an event. For more information, see [Lambda event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html).", + "$ref": "#/definitions/FilterCriteria" + }, + "KmsKeyArn": { + "description": "", + "type": "string", + "pattern": "(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()", + "minLength": 12, + "maxLength": 2048 + }, + "FunctionName": { + "description": "The name or ARN of the Lambda function.\n **Name formats**\n + *Function name* ? ``MyFunction``.\n + *Function ARN* ? ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction``.\n + *Version or Alias ARN* ? ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD``.\n + *Partial ARN* ? ``123456789012:function:MyFunction``.\n \n The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length.", + "type": "string", + "pattern": "(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?(-iso([a-z])?)?-[a-z]+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?", + "minLength": 1, + "maxLength": 140 + }, + "MaximumBatchingWindowInSeconds": { + "description": "The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function.\n *Default (, , event sources)*: 0\n *Default (, Kafka, , event sources)*: 500 ms\n *Related setting:* For SQS event sources, when you set ``BatchSize`` to a value greater than 10, you must set ``MaximumBatchingWindowInSeconds`` to at least 1.", + "type": "integer", + "minimum": 0, + "maximum": 300 + }, + "MaximumRecordAgeInSeconds": { + "description": "(Kinesis and DynamoDB Streams only) Discard records older than the specified age. The default value is -1, which sets the maximum age to infinite. When the value is set to infinite, Lambda never discards old records.\n The minimum valid value for maximum record age is 60s. Although values less than 60 and greater than -1 fall within the parameter's absolute range, they are not allowed", + "type": "integer", + "minimum": -1, + "maximum": 604800 + }, + "MaximumRetryAttempts": { + "description": "(Kinesis and DynamoDB Streams only) Discard records after the specified number of retries. 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.", + "type": "integer", + "minimum": -1, + "maximum": 10000 + }, + "ParallelizationFactor": { + "description": "(Kinesis and DynamoDB Streams only) The number of batches to process concurrently from each shard. The default value is 1.", + "type": "integer", + "minimum": 1, + "maximum": 10 + }, + "StartingPosition": { + "description": "The position in a stream from which to start reading. Required for Amazon Kinesis and Amazon DynamoDB.\n + *LATEST* - Read only new records.\n + *TRIM_HORIZON* - Process all available records.\n + *AT_TIMESTAMP* - Specify a time from which to start reading records.", + "type": "string", + "pattern": "(LATEST|TRIM_HORIZON|AT_TIMESTAMP)+", + "minLength": 6, + "maxLength": 12 + }, + "StartingPositionTimestamp": { + "description": "With ``StartingPosition`` set to ``AT_TIMESTAMP``, the time from which to start reading, in Unix time seconds. ``StartingPositionTimestamp`` cannot be in the future.", + "type": "number" + }, + "Topics": { + "description": "The name of the Kafka topic.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "pattern": "^[^.]([a-zA-Z0-9\\-_.]+)", + "minLength": 1, + "maxLength": 249 + }, + "minItems": 1, + "maxItems": 1 + }, + "Queues": { + "description": "(Amazon MQ) The name of the Amazon MQ broker destination queue to consume.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "pattern": "[\\s\\S]*", + "minLength": 1, + "maxLength": 1000 + }, + "minItems": 1, + "maxItems": 1 + }, + "SourceAccessConfigurations": { + "description": "An array of the authentication protocol, VPC components, or virtual host to secure and define your event source.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/SourceAccessConfiguration" + }, + "minItems": 1, + "maxItems": 22 + }, + "TumblingWindowInSeconds": { + "description": "(Kinesis and DynamoDB Streams only) The duration in seconds of a processing window for DynamoDB and Kinesis Streams event sources. A value of 0 seconds indicates no tumbling window.", + "type": "integer", + "minimum": 0, + "maximum": 900 + }, + "FunctionResponseTypes": { + "description": "(Streams and SQS) A list of current response type enums applied to the event source mapping.\n Valid Values: ``ReportBatchItemFailures``", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "ReportBatchItemFailures" + ] + }, + "minLength": 0, + "maxLength": 1 + }, + "SelfManagedEventSource": { + "description": "The self-managed Apache Kafka cluster for your event source.", + "$ref": "#/definitions/SelfManagedEventSource" + }, + "AmazonManagedKafkaEventSourceConfig": { + "description": "Specific configuration settings for an Amazon Managed Streaming for Apache Kafka (Amazon MSK) event source.", + "$ref": "#/definitions/AmazonManagedKafkaEventSourceConfig" + }, + "SelfManagedKafkaEventSourceConfig": { + "description": "Specific configuration settings for a self-managed Apache Kafka event source.", + "$ref": "#/definitions/SelfManagedKafkaEventSourceConfig" + }, + "ScalingConfig": { + "description": "(Amazon SQS only) The scaling configuration for the event source. For more information, see [Configuring maximum concurrency for Amazon SQS event sources](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-max-concurrency).", + "$ref": "#/definitions/ScalingConfig" + }, + "DocumentDBEventSourceConfig": { + "description": "Specific configuration settings for a DocumentDB event source.", + "$ref": "#/definitions/DocumentDBEventSourceConfig" } }, - "typeName": "AWS::Lambda::EventSourceMapping", - "readOnlyProperties": [ - "/properties/Id" - ], - "description": "The ``AWS::Lambda::EventSourceMapping`` resource creates a mapping between an event source and an LAMlong function. LAM reads items from the event source and triggers the function.\n For details about each event source type, see the following topics. In particular, each of the topics describes the required and optional parameters for the specific event source. \n + [Configuring a Dynamo DB stream as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-dynamodb-eventsourcemapping) \n + [Configuring a Kinesis stream as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-eventsourcemapping) \n + [Configuring an SQS queue as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-eventsource) \n + [Configuring an MQ broker as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html#services-mq-eventsourcemapping) \n + [Configuring MSK as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html) \n + [Configuring Self-Managed Apache Kafka as an event source](https://docs.aws.amazon.com/lambda/latest/dg/kafka-smaa.html) \n + [Configuring Amazon DocumentDB as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-documentdb.html)", - "createOnlyProperties": [ - "/properties/EventSourceArn", - "/properties/StartingPosition", - "/properties/StartingPositionTimestamp", - "/properties/SelfManagedEventSource", - "/properties/AmazonManagedKafkaEventSourceConfig", - "/properties/SelfManagedKafkaEventSourceConfig" - ], - "additionalProperties": false, - "primaryIdentifier": [ - "/properties/Id" - ], "definitions": { - "ScalingConfig": { - "description": "(Amazon SQS only) The scaling configuration for the event source. To remove the configuration, pass an empty value.", - "additionalProperties": false, + "DestinationConfig": { "type": "object", + "additionalProperties": false, + "description": "A configuration object that specifies the destination of an event after Lambda processes it.", "properties": { - "MaximumConcurrency": { - "description": "Limits the number of concurrent instances that the SQS event source can invoke.", - "$ref": "#/definitions/MaximumConcurrency" + "OnFailure": { + "description": "The destination configuration for failed invocations.", + "$ref": "#/definitions/OnFailure" } } }, - "SelfManagedEventSource": { - "description": "The self-managed Apache Kafka cluster for your event source.", + "FilterCriteria": { + "type": "object", + "description": "An object that contains the filters for an event source.", "additionalProperties": false, + "properties": { + "Filters": { + "description": "A list of filters.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/Filter" + }, + "minItems": 1, + "maxItems": 20 + } + } + }, + "Filter": { "type": "object", + "description": "A structure within a ``FilterCriteria`` object that defines an event filtering pattern.", + "additionalProperties": false, "properties": { - "Endpoints": { - "description": "The list of bootstrap servers for your Kafka brokers in the following format: ``\"KafkaBootstrapServers\": [\"abc.xyz.com:xxxx\",\"abc2.xyz.com:xxxx\"]``.", - "$ref": "#/definitions/Endpoints" + "Pattern": { + "type": "string", + "description": "A filter pattern. For more information on the syntax of a filter pattern, see [Filter rule syntax](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html#filtering-syntax).", + "pattern": ".*", + "minLength": 0, + "maxLength": 4096 } } }, - "MaximumConcurrency": { - "description": "The maximum number of concurrent functions that an event source can invoke.", - "maximum": 1000, - "type": "integer", - "minimum": 2 + "OnFailure": { + "type": "object", + "description": "A destination for events that failed processing.", + "additionalProperties": false, + "properties": { + "Destination": { + "description": "The Amazon Resource Name (ARN) of the destination resource.\n To retain records of [asynchronous invocations](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-async-destinations), you can configure an Amazon SNS topic, Amazon SQS queue, Lambda function, or Amazon EventBridge event bus as the destination.\n To retain records of failed invocations from [Kinesis and DynamoDB event sources](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html#event-source-mapping-destinations), you can configure an Amazon SNS topic or Amazon SQS queue as the destination.\n To retain records of failed invocations from [self-managed Kafka](https://docs.aws.amazon.com/lambda/latest/dg/with-kafka.html#services-smaa-onfailure-destination) or [Amazon MSK](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-onfailure-destination), you can configure an Amazon SNS topic, Amazon SQS queue, or Amazon S3 bucket as the destination.", + "type": "string", + "pattern": "arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(-gov)?(-iso([a-z])?)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)", + "minLength": 12, + "maxLength": 1024 + } + } }, "SourceAccessConfiguration": { - "description": "An array of the authentication protocol, VPC components, or virtual host to secure and define your event source.", - "additionalProperties": false, "type": "object", + "additionalProperties": false, + "description": "An array of the authentication protocol, VPC components, or virtual host to secure and define your event source.", "properties": { "Type": { - "description": "The type of authentication protocol, VPC components, or virtual host for your event source. For example: ``\"Type\":\"SASL_SCRAM_512_AUTH\"``.\n + ``BASIC_AUTH`` \u2013 (Amazon MQ) The ASMlong secret that stores your broker credentials.\n + ``BASIC_AUTH`` \u2013 (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL/PLAIN authentication of your Apache Kafka brokers.\n + ``VPC_SUBNET`` \u2013 (Self-managed Apache Kafka) The subnets associated with your VPC. Lambda connects to these subnets to fetch data from your self-managed Apache Kafka cluster.\n + ``VPC_SECURITY_GROUP`` \u2013 (Self-managed Apache Kafka) The VPC security group used to manage access to your self-managed Apache Kafka brokers.\n + ``SASL_SCRAM_256_AUTH`` \u2013 (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-256 authentication of your self-managed Apache Kafka brokers.\n + ``SASL_SCRAM_512_AUTH`` \u2013 (Amazon MSK, Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-512 authentication of your self-managed Apache Kafka brokers.\n + ``VIRTUAL_HOST`` \u2013- (RabbitMQ) The name of the virtual host in your RabbitMQ broker. Lambda uses this RabbitMQ host as the event source. This property cannot be specified in an UpdateEventSourceMapping API call.\n + ``CLIENT_CERTIFICATE_TLS_AUTH`` \u2013 (Amazon MSK, self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the certificate chain (X.509 PEM), private key (PKCS#8 PEM), and private key password (optional) used for mutual TLS authentication of your MSK/Apache Kafka brokers.\n + ``SERVER_ROOT_CA_CERTIFICATE`` \u2013 (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the root CA certificate (X.509 PEM) used for TLS encryption of your Apache Kafka brokers.", - "type": "string", + "description": "The type of authentication protocol, VPC components, or virtual host for your event source. For example: ``\"Type\":\"SASL_SCRAM_512_AUTH\"``.\n + ``BASIC_AUTH`` ? (Amazon MQ) The ASMlong secret that stores your broker credentials.\n + ``BASIC_AUTH`` ? (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL/PLAIN authentication of your Apache Kafka brokers.\n + ``VPC_SUBNET`` ? (Self-managed Apache Kafka) The subnets associated with your VPC. Lambda connects to these subnets to fetch data from your self-managed Apache Kafka cluster.\n + ``VPC_SECURITY_GROUP`` ? (Self-managed Apache Kafka) The VPC security group used to manage access to your self-managed Apache Kafka brokers.\n + ``SASL_SCRAM_256_AUTH`` ? (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-256 authentication of your self-managed Apache Kafka brokers.\n + ``SASL_SCRAM_512_AUTH`` ? (Amazon MSK, Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-512 authentication of your self-managed Apache Kafka brokers.\n + ``VIRTUAL_HOST`` ?- (RabbitMQ) The name of the virtual host in your RabbitMQ broker. Lambda uses this RabbitMQ host as the event source. This property cannot be specified in an UpdateEventSourceMapping API call.\n + ``CLIENT_CERTIFICATE_TLS_AUTH`` ? (Amazon MSK, self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the certificate chain (X.509 PEM), private key (PKCS#8 PEM), and private key password (optional) used for mutual TLS authentication of your MSK/Apache Kafka brokers.\n + ``SERVER_ROOT_CA_CERTIFICATE`` ? (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the root CA certificate (X.509 PEM) used for TLS encryption of your Apache Kafka brokers.", "enum": [ "BASIC_AUTH", "VPC_SUBNET", @@ -101,129 +237,72 @@ "VIRTUAL_HOST", "CLIENT_CERTIFICATE_TLS_AUTH", "SERVER_ROOT_CA_CERTIFICATE" - ] + ], + "type": "string" }, "URI": { - "minLength": 1, - "pattern": "[a-zA-Z0-9-\\/*:_+=.@-]*", "description": "The value for your chosen configuration in ``Type``. For example: ``\"URI\": \"arn:aws:secretsmanager:us-east-1:01234567890:secret:MyBrokerSecretName\"``.", "type": "string", + "pattern": "[a-zA-Z0-9-\\/*:_+=.@-]*", + "minLength": 1, "maxLength": 200 } } }, - "FilterCriteria": { - "description": "An object that contains the filters for an event source.", - "additionalProperties": false, + "SelfManagedEventSource": { "type": "object", + "additionalProperties": false, + "description": "The self-managed Apache Kafka cluster for your event source.", "properties": { - "Filters": { - "minItems": 1, - "maxItems": 20, - "uniqueItems": true, - "description": "A list of filters.", - "type": "array", - "items": { - "$ref": "#/definitions/Filter" - } + "Endpoints": { + "description": "The list of bootstrap servers for your Kafka brokers in the following format: ``\"KafkaBootstrapServers\": [\"abc.xyz.com:xxxx\",\"abc2.xyz.com:xxxx\"]``.", + "$ref": "#/definitions/Endpoints" } } }, - "SelfManagedKafkaEventSourceConfig": { - "description": "Specific configuration settings for a self-managed Apache Kafka event source.", - "additionalProperties": false, + "Endpoints": { "type": "object", - "properties": { - "ConsumerGroupId": { - "description": "The identifier for the Kafka consumer group to join. The consumer group ID must be unique among all your Kafka event sources. After creating a Kafka event source mapping with the consumer group ID specified, you cannot update this value. For more information, see [Customizable consumer group ID](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-consumer-group-id).", - "$ref": "#/definitions/ConsumerGroupId" - } - } - }, - "DocumentDBEventSourceConfig": { - "description": "Specific configuration settings for a DocumentDB event source.", "additionalProperties": false, - "type": "object", - "properties": { - "FullDocument": { - "description": "Determines what DocumentDB sends to your event stream during document update operations. If set to UpdateLookup, DocumentDB sends a delta describing the changes, along with a copy of the entire document. Otherwise, DocumentDB sends only a partial document that contains the changes.", - "type": "string", - "enum": [ - "UpdateLookup", - "Default" - ] - }, - "CollectionName": { - "minLength": 1, - "description": "The name of the collection to consume within the database. If you do not specify a collection, Lambda consumes all collections.", - "type": "string", - "maxLength": 57 - }, - "DatabaseName": { - "minLength": 1, - "description": "The name of the database to consume within the DocumentDB cluster.", - "type": "string", - "maxLength": 63 - } - } - }, - "Endpoints": { "description": "The list of bootstrap servers for your Kafka brokers in the following format: ``\"KafkaBootstrapServers\": [\"abc.xyz.com:xxxx\",\"abc2.xyz.com:xxxx\"]``.", - "additionalProperties": false, - "type": "object", "properties": { "KafkaBootstrapServers": { - "minItems": 1, - "maxItems": 10, - "uniqueItems": true, - "description": "The list of bootstrap servers for your Kafka brokers in the following format: ``\"KafkaBootstrapServers\": [\"abc.xyz.com:xxxx\",\"abc2.xyz.com:xxxx\"]``.", "type": "array", + "description": "The list of bootstrap servers for your Kafka brokers in the following format: ``\"KafkaBootstrapServers\": [\"abc.xyz.com:xxxx\",\"abc2.xyz.com:xxxx\"]``.", + "uniqueItems": true, "items": { - "minLength": 1, - "pattern": "^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9]):[0-9]{1,5}", - "description": "The URL of a Kafka server.", "type": "string", + "description": "The URL of a Kafka server.", + "pattern": "^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9]):[0-9]{1,5}", + "minLength": 1, "maxLength": 300 - } - } - } - }, - "DestinationConfig": { - "description": "A configuration object that specifies the destination of an event after Lambda processes it.", - "additionalProperties": false, - "type": "object", - "properties": { - "OnFailure": { - "description": "The destination configuration for failed invocations.", - "$ref": "#/definitions/OnFailure" + }, + "minItems": 1, + "maxItems": 10 } } }, "ConsumerGroupId": { - "minLength": 1, - "pattern": "[a-zA-Z0-9-\\/*:_+=.@-]*", "description": "The identifier for the Kafka Consumer Group to join.", "type": "string", + "pattern": "[a-zA-Z0-9-\\/*:_+=.@-]*", + "minLength": 1, "maxLength": 200 }, - "Filter": { - "description": "A structure within a ``FilterCriteria`` object that defines an event filtering pattern.", - "additionalProperties": false, + "AmazonManagedKafkaEventSourceConfig": { + "description": "Specific configuration settings for an Amazon Managed Streaming for Apache Kafka (Amazon MSK) event source.", "type": "object", + "additionalProperties": false, "properties": { - "Pattern": { - "minLength": 0, - "pattern": ".*", - "description": "A filter pattern. For more information on the syntax of a filter pattern, see [Filter rule syntax](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html#filtering-syntax).", - "type": "string", - "maxLength": 4096 + "ConsumerGroupId": { + "description": "The identifier for the Kafka consumer group to join. The consumer group ID must be unique among all your Kafka event sources. After creating a Kafka event source mapping with the consumer group ID specified, you cannot update this value. For more information, see [Customizable consumer group ID](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-consumer-group-id).", + "$ref": "#/definitions/ConsumerGroupId" } } }, - "AmazonManagedKafkaEventSourceConfig": { - "description": "Specific configuration settings for an Amazon Managed Streaming for Apache Kafka (Amazon MSK) event source.", - "additionalProperties": false, + "SelfManagedKafkaEventSourceConfig": { + "description": "Specific configuration settings for a self-managed Apache Kafka event source.", "type": "object", + "additionalProperties": false, "properties": { "ConsumerGroupId": { "description": "The identifier for the Kafka consumer group to join. The consumer group ID must be unique among all your Kafka event sources. After creating a Kafka event source mapping with the consumer group ID specified, you cannot update this value. For more information, see [Customizable consumer group ID](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-consumer-group-id).", @@ -231,17 +310,47 @@ } } }, - "OnFailure": { - "description": "A destination for events that failed processing.", + "MaximumConcurrency": { + "description": "The maximum number of concurrent functions that an event source can invoke.", + "type": "integer", + "minimum": 2, + "maximum": 1000 + }, + "ScalingConfig": { + "description": "(Amazon SQS only) The scaling configuration for the event source. To remove the configuration, pass an empty value.", + "type": "object", "additionalProperties": false, + "properties": { + "MaximumConcurrency": { + "description": "Limits the number of concurrent instances that the SQS event source can invoke.", + "$ref": "#/definitions/MaximumConcurrency" + } + } + }, + "DocumentDBEventSourceConfig": { + "description": "Specific configuration settings for a DocumentDB event source.", "type": "object", + "additionalProperties": false, "properties": { - "Destination": { - "minLength": 12, - "pattern": "arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(-gov)?(-iso([a-z])?)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)", - "description": "The Amazon Resource Name (ARN) of the destination resource.\n To retain records of [asynchronous invocations](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-async-destinations), you can configure an Amazon SNS topic, Amazon SQS queue, Lambda function, or Amazon EventBridge event bus as the destination.\n To retain records of failed invocations from [Kinesis and DynamoDB event sources](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html#event-source-mapping-destinations), you can configure an Amazon SNS topic or Amazon SQS queue as the destination.\n To retain records of failed invocations from [self-managed Kafka](https://docs.aws.amazon.com/lambda/latest/dg/with-kafka.html#services-smaa-onfailure-destination) or [Amazon MSK](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-onfailure-destination), you can configure an Amazon SNS topic, Amazon SQS queue, or Amazon S3 bucket as the destination.", + "DatabaseName": { + "description": "The name of the database to consume within the DocumentDB cluster.", "type": "string", - "maxLength": 1024 + "minLength": 1, + "maxLength": 63 + }, + "CollectionName": { + "description": "The name of the collection to consume within the database. If you do not specify a collection, Lambda consumes all collections.", + "type": "string", + "minLength": 1, + "maxLength": 57 + }, + "FullDocument": { + "description": "Determines what DocumentDB sends to your event stream during document update operations. If set to UpdateLookup, DocumentDB sends a delta describing the changes, along with a copy of the entire document. Otherwise, DocumentDB sends only a partial document that contains the changes.", + "type": "string", + "enum": [ + "UpdateLookup", + "Default" + ] } } } @@ -249,159 +358,65 @@ "required": [ "FunctionName" ], - "properties": { - "StartingPosition": { - "minLength": 6, - "pattern": "(LATEST|TRIM_HORIZON|AT_TIMESTAMP)+", - "description": "The position in a stream from which to start reading. Required for Amazon Kinesis and Amazon DynamoDB.\n + *LATEST* - Read only new records.\n + *TRIM_HORIZON* - Process all available records.\n + *AT_TIMESTAMP* - Specify a time from which to start reading records.", - "type": "string", - "maxLength": 12 - }, - "SelfManagedEventSource": { - "description": "The self-managed Apache Kafka cluster for your event source.", - "$ref": "#/definitions/SelfManagedEventSource" - }, - "ParallelizationFactor": { - "description": "(Kinesis and DynamoDB Streams only) The number of batches to process concurrently from each shard. The default value is 1.", - "maximum": 10, - "type": "integer", - "minimum": 1 - }, - "FilterCriteria": { - "description": "An object that defines the filter criteria that determine whether Lambda should process an event. For more information, see [Lambda event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html).", - "$ref": "#/definitions/FilterCriteria" - }, - "FunctionName": { - "minLength": 1, - "pattern": "(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?(-iso([a-z])?)?-[a-z]+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?", - "description": "The name or ARN of the Lambda function.\n **Name formats**\n + *Function name* \u2013 ``MyFunction``.\n + *Function ARN* \u2013 ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction``.\n + *Version or Alias ARN* \u2013 ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD``.\n + *Partial ARN* \u2013 ``123456789012:function:MyFunction``.\n \n The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length.", - "type": "string", - "maxLength": 140 - }, - "DestinationConfig": { - "description": "(Kinesis, DynamoDB Streams, Amazon MSK, and self-managed Apache Kafka event sources only) A configuration object that specifies the destination of an event after Lambda processes it.", - "$ref": "#/definitions/DestinationConfig" - }, - "AmazonManagedKafkaEventSourceConfig": { - "description": "Specific configuration settings for an Amazon Managed Streaming for Apache Kafka (Amazon MSK) event source.", - "$ref": "#/definitions/AmazonManagedKafkaEventSourceConfig" - }, - "SourceAccessConfigurations": { - "minItems": 1, - "maxItems": 22, - "uniqueItems": true, - "description": "An array of the authentication protocol, VPC components, or virtual host to secure and define your event source.", - "type": "array", - "items": { - "$ref": "#/definitions/SourceAccessConfiguration" - } - }, - "MaximumBatchingWindowInSeconds": { - "description": "The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function.\n *Default (, , event sources)*: 0\n *Default (, Kafka, , event sources)*: 500 ms\n *Related setting:* For SQS event sources, when you set ``BatchSize`` to a value greater than 10, you must set ``MaximumBatchingWindowInSeconds`` to at least 1.", - "maximum": 300, - "type": "integer", - "minimum": 0 - }, - "BatchSize": { - "description": "The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB).\n + *Amazon Kinesis* \u2013 Default 100. Max 10,000.\n + *Amazon DynamoDB Streams* \u2013 Default 100. Max 10,000.\n + *Amazon Simple Queue Service* \u2013 Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10.\n + *Amazon Managed Streaming for Apache Kafka* \u2013 Default 100. Max 10,000.\n + *Self-managed Apache Kafka* \u2013 Default 100. Max 10,000.\n + *Amazon MQ (ActiveMQ and RabbitMQ)* \u2013 Default 100. Max 10,000.\n + *DocumentDB* \u2013 Default 100. Max 10,000.", - "maximum": 10000, - "type": "integer", - "minimum": 1 - }, - "MaximumRetryAttempts": { - "description": "(Kinesis and DynamoDB Streams only) Discard records after the specified number of retries. 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.", - "maximum": 10000, - "type": "integer", - "minimum": -1 - }, - "Topics": { - "minItems": 1, - "maxItems": 1, - "uniqueItems": true, - "description": "The name of the Kafka topic.", - "type": "array", - "items": { - "minLength": 1, - "pattern": "^[^.]([a-zA-Z0-9\\-_.]+)", - "type": "string", - "maxLength": 249 - } - }, - "ScalingConfig": { - "description": "(Amazon SQS only) The scaling configuration for the event source. For more information, see [Configuring maximum concurrency for Amazon SQS event sources](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-max-concurrency).", - "$ref": "#/definitions/ScalingConfig" - }, - "Enabled": { - "description": "When true, the event source mapping is active. When false, Lambda pauses polling and invocation.\n Default: True", - "type": "boolean" - }, - "EventSourceArn": { - "minLength": 12, - "pattern": "arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(-gov)?(-iso([a-z])?)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)", - "description": "The Amazon Resource Name (ARN) of the event source.\n + *Amazon Kinesis* \u2013 The ARN of the data stream or a stream consumer.\n + *Amazon DynamoDB Streams* \u2013 The ARN of the stream.\n + *Amazon Simple Queue Service* \u2013 The ARN of the queue.\n + *Amazon Managed Streaming for Apache Kafka* \u2013 The ARN of the cluster or the ARN of the VPC connection (for [cross-account event source mappings](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#msk-multi-vpc)).\n + *Amazon MQ* \u2013 The ARN of the broker.\n + *Amazon DocumentDB* \u2013 The ARN of the DocumentDB change stream.", - "type": "string", - "maxLength": 1024 - }, - "SelfManagedKafkaEventSourceConfig": { - "description": "Specific configuration settings for a self-managed Apache Kafka event source.", - "$ref": "#/definitions/SelfManagedKafkaEventSourceConfig" - }, - "DocumentDBEventSourceConfig": { - "description": "Specific configuration settings for a DocumentDB event source.", - "$ref": "#/definitions/DocumentDBEventSourceConfig" - }, - "TumblingWindowInSeconds": { - "description": "(Kinesis and DynamoDB Streams only) The duration in seconds of a processing window for DynamoDB and Kinesis Streams event sources. A value of 0 seconds indicates no tumbling window.", - "maximum": 900, - "type": "integer", - "minimum": 0 - }, - "BisectBatchOnFunctionError": { - "description": "(Kinesis and DynamoDB Streams only) If the function returns an error, split the batch in two and retry. The default value is false.", - "type": "boolean" - }, - "MaximumRecordAgeInSeconds": { - "description": "(Kinesis and DynamoDB Streams only) Discard records older than the specified age. The default value is -1, which sets the maximum age to infinite. When the value is set to infinite, Lambda never discards old records.\n The minimum valid value for maximum record age is 60s. Although values less than 60 and greater than -1 fall within the parameter's absolute range, they are not allowed", - "maximum": 604800, - "type": "integer", - "minimum": -1 + "createOnlyProperties": [ + "/properties/EventSourceArn", + "/properties/StartingPosition", + "/properties/StartingPositionTimestamp", + "/properties/SelfManagedEventSource", + "/properties/AmazonManagedKafkaEventSourceConfig", + "/properties/SelfManagedKafkaEventSourceConfig" + ], + "readOnlyProperties": [ + "/properties/Id" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "propertyTransform": { + "/properties/StartingPositionTimestamp": "StartingPositionTimestamp * 1000" + }, + "handlers": { + "create": { + "permissions": [ + "lambda:CreateEventSourceMapping", + "lambda:GetEventSourceMapping", + "kms:DescribeKey", + "kms:GenerateDataKey", + "kms:Decrypt" + ] }, - "StartingPositionTimestamp": { - "description": "With ``StartingPosition`` set to ``AT_TIMESTAMP``, the time from which to start reading, in Unix time seconds. ``StartingPositionTimestamp`` cannot be in the future.", - "type": "number" + "delete": { + "permissions": [ + "lambda:DeleteEventSourceMapping", + "lambda:GetEventSourceMapping", + "kms:Decrypt" + ] }, - "Queues": { - "minItems": 1, - "maxItems": 1, - "uniqueItems": true, - "description": "(Amazon MQ) The name of the Amazon MQ broker destination queue to consume.", - "type": "array", - "items": { - "minLength": 1, - "pattern": "[\\s\\S]*", - "type": "string", - "maxLength": 1000 - } + "list": { + "permissions": [ + "lambda:ListEventSourceMappings" + ] }, - "Id": { - "minLength": 36, - "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", - "description": "", - "type": "string", - "maxLength": 36 + "read": { + "permissions": [ + "lambda:GetEventSourceMapping", + "kms:Decrypt" + ] }, - "FunctionResponseTypes": { - "uniqueItems": true, - "minLength": 0, - "description": "(Streams and SQS) A list of current response type enums applied to the event source mapping.\n Valid Values: ``ReportBatchItemFailures``", - "type": "array", - "items": { - "type": "string", - "enum": [ - "ReportBatchItemFailures" - ] - }, - "maxLength": 1 + "update": { + "permissions": [ + "lambda:UpdateEventSourceMapping", + "lambda:GetEventSourceMapping", + "kms:DescribeKey", + "kms:GenerateDataKey", + "kms:Decrypt" + ] } + }, + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false } } diff --git a/internal/service/cloudformation/schemas/AWS_Route53_HostedZone.json b/internal/service/cloudformation/schemas/AWS_Route53_HostedZone.json index ad4dc05f6..96190c719 100644 --- a/internal/service/cloudformation/schemas/AWS_Route53_HostedZone.json +++ b/internal/service/cloudformation/schemas/AWS_Route53_HostedZone.json @@ -137,6 +137,17 @@ "propertyTransform": { "/properties/Name": "Name $OR $join([Name, \".\"])" }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/HostedZoneTags", + "permissions": [ + "route53:ChangeTagsForResource", + "route53:ListTagsForResource" + ] + }, "handlers": { "create": { "permissions": [ diff --git a/internal/service/cloudformation/schemas/AWS_S3_Bucket.json b/internal/service/cloudformation/schemas/AWS_S3_Bucket.json index 105168700..cc352b247 100644 --- a/internal/service/cloudformation/schemas/AWS_S3_Bucket.json +++ b/internal/service/cloudformation/schemas/AWS_S3_Bucket.json @@ -1,215 +1,264 @@ { - "typeName": "AWS::S3::Bucket", - "description": "The ``AWS::S3::Bucket`` resource creates an Amazon S3 bucket in the same AWS Region where you create the AWS CloudFormation stack.\n To control how AWS CloudFormation handles the bucket when the stack is deleted, you can set a deletion policy for your bucket. You can choose to *retain* the bucket or to *delete* the bucket. For more information, see [DeletionPolicy Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html).\n You can only delete empty buckets. Deletion fails for buckets that have contents.", - "additionalProperties": false, - "properties": { - "AccelerateConfiguration": { - "$ref": "#/definitions/AccelerateConfiguration", - "description": "Configures the transfer acceleration state for an Amazon S3 bucket. For more information, see [Amazon S3 Transfer Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) in the *Amazon S3 User Guide*." - }, - "AccessControl": { - "description": "This is a legacy property, and it is not recommended for most use cases. A majority of modern use cases in Amazon S3 no longer require the use of ACLs, and we recommend that you keep ACLs disabled. For more information, see [Controlling object ownership](https://docs.aws.amazon.com//AmazonS3/latest/userguide/about-object-ownership.html) in the *Amazon S3 User Guide*.\n A canned access control list (ACL) that grants predefined permissions to the bucket. For more information about canned ACLs, see [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) in the *Amazon S3 User Guide*.\n S3 buckets are created with ACLs disabled by default. Therefore, unless you explicitly set the [AWS::S3::OwnershipControls](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ownershipcontrols.html) property to enable ACLs, your resource will fail to deploy with any value other than Private. Use cases requiring ACLs are uncommon.\n The majority of access control configurations can be successfully and more easily achieved with bucket policies. For more information, see [AWS::S3::BucketPolicy](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html). For examples of common policy configurations, including S3 Server Access Logs buckets and more, see [Bucket policy examples](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) in the *Amazon S3 User Guide*.", - "enum": [ - "AuthenticatedRead", - "AwsExecRead", - "BucketOwnerFullControl", - "BucketOwnerRead", - "LogDeliveryWrite", - "Private", - "PublicRead", - "PublicReadWrite" - ], - "type": "string" - }, - "AnalyticsConfigurations": { - "description": "Specifies the configuration and any analyses for the analytics filter of an Amazon S3 bucket.", - "items": { - "$ref": "#/definitions/AnalyticsConfiguration" - }, - "type": "array", - "uniqueItems": true, - "insertionOrder": true - }, - "BucketEncryption": { - "$ref": "#/definitions/BucketEncryption", - "description": "Specifies default encryption for a bucket using server-side encryption with Amazon S3-managed keys (SSE-S3), AWS KMS-managed keys (SSE-KMS), or dual-layer server-side encryption with KMS-managed keys (DSSE-KMS). For information about the Amazon S3 default encryption feature, see [Amazon S3 Default Encryption for S3 Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) in the *Amazon S3 User Guide*." - }, - "BucketName": { - "description": "A name for the bucket. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the bucket name. The bucket name must contain only lowercase letters, numbers, periods (.), and dashes (-) and must follow [Amazon S3 bucket restrictions and limitations](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html). For more information, see [Rules for naming Amazon S3 buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html#bucketnamingrules) in the *Amazon S3 User Guide*. \n If you specify a name, you can't perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you need to replace the resource, specify a new name.", - "type": "string" - }, - "CorsConfiguration": { - "$ref": "#/definitions/CorsConfiguration", - "description": "Describes the cross-origin access configuration for objects in an Amazon S3 bucket. For more information, see [Enabling Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the *Amazon S3 User Guide*." - }, - "IntelligentTieringConfigurations": { - "description": "Defines how Amazon S3 handles Intelligent-Tiering storage.", - "items": { - "$ref": "#/definitions/IntelligentTieringConfiguration" - }, - "type": "array", - "uniqueItems": true, - "insertionOrder": true - }, - "InventoryConfigurations": { - "description": "Specifies the inventory configuration for an Amazon S3 bucket. For more information, see [GET Bucket inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in the *Amazon S3 API Reference*.", - "items": { - "$ref": "#/definitions/InventoryConfiguration" - }, - "type": "array", - "uniqueItems": true, - "insertionOrder": true - }, - "LifecycleConfiguration": { - "$ref": "#/definitions/LifecycleConfiguration", - "description": "Specifies the lifecycle configuration for objects in an Amazon S3 bucket. For more information, see [Object Lifecycle Management](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) in the *Amazon S3 User Guide*." - }, - "LoggingConfiguration": { - "$ref": "#/definitions/LoggingConfiguration", - "description": "Settings that define where logs are stored." - }, - "MetricsConfigurations": { - "description": "Specifies a metrics configuration for the CloudWatch request metrics (specified by the metrics configuration ID) from an Amazon S3 bucket. If you're updating an existing metrics configuration, note that this is a full replacement of the existing metrics configuration. If you don't include the elements you want to keep, they are erased. For more information, see [PutBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html).", - "items": { - "$ref": "#/definitions/MetricsConfiguration" - }, - "type": "array", - "uniqueItems": true, - "insertionOrder": true - }, - "NotificationConfiguration": { - "$ref": "#/definitions/NotificationConfiguration", - "description": "Configuration that defines how Amazon S3 handles bucket notifications." - }, - "ObjectLockConfiguration": { - "$ref": "#/definitions/ObjectLockConfiguration", - "description": "This operation is not supported by directory buckets.\n Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see [Locking Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). \n + The ``DefaultRetention`` settings require both a mode and a period.\n + The ``DefaultRetention`` period can be either ``Days`` or ``Years`` but you must select one. You cannot specify ``Days`` and ``Years`` at the same time.\n + You can enable Object Lock for new or existing buckets. For more information, see [Configuring Object Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html)." - }, - "ObjectLockEnabled": { - "description": "Indicates whether this bucket has an Object Lock configuration enabled. Enable ``ObjectLockEnabled`` when you apply ``ObjectLockConfiguration`` to a bucket.", - "type": "boolean" - }, - "OwnershipControls": { - "description": "Configuration that defines how Amazon S3 handles Object Ownership rules.", - "$ref": "#/definitions/OwnershipControls" - }, - "PublicAccessBlockConfiguration": { - "$ref": "#/definitions/PublicAccessBlockConfiguration", - "description": "Configuration that defines how Amazon S3 handles public access." - }, - "ReplicationConfiguration": { - "$ref": "#/definitions/ReplicationConfiguration", - "description": "Configuration for replicating objects in an S3 bucket. To enable replication, you must also enable versioning by using the ``VersioningConfiguration`` property.\n Amazon S3 can store replicated objects in a single destination bucket or multiple destination buckets. The destination bucket or buckets must already exist." - }, - "Tags": { - "description": "An arbitrary set of tags (key-value pairs) for this S3 bucket.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "VersioningConfiguration": { - "$ref": "#/definitions/VersioningConfiguration", - "description": "Enables multiple versions of all objects in this bucket. You might enable versioning to prevent objects from being deleted or overwritten by mistake or to archive objects so that you can retrieve previous versions of them." - }, - "WebsiteConfiguration": { - "$ref": "#/definitions/WebsiteConfiguration", - "description": "Information used to configure the bucket as a static website. For more information, see [Hosting Websites on Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html)." - }, - "Arn": { - "$ref": "#/definitions/Arn", - "description": "", - "examples": [ - "arn:aws:s3:::mybucket" + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true + }, + "propertyTransform": { + "/properties/NotificationConfiguration/LambdaConfigurations/*/Filter/S3Key/Rules/*/Name": "$replace(Name, \"prefix\", \"Prefix\") $OR $replace(Name, \"suffix\", \"Suffix\")", + "/properties/NotificationConfiguration/QueueConfigurations/*/Filter/S3Key/Rules/*/Name": "$replace(Name, \"prefix\", \"Prefix\") $OR $replace(Name, \"suffix\", \"Suffix\")", + "/properties/NotificationConfiguration/TopicConfigurations/*/Filter/S3Key/Rules/*/Name": "$replace(Name, \"prefix\", \"Prefix\") $OR $replace(Name, \"suffix\", \"Suffix\")" + }, + "handlers": { + "read": { + "permissions": [ + "s3:GetAccelerateConfiguration", + "s3:GetLifecycleConfiguration", + "s3:GetBucketPublicAccessBlock", + "s3:GetAnalyticsConfiguration", + "s3:GetBucketCORS", + "s3:GetEncryptionConfiguration", + "s3:GetInventoryConfiguration", + "s3:GetBucketLogging", + "s3:GetMetricsConfiguration", + "s3:GetBucketNotification", + "s3:GetBucketVersioning", + "s3:GetReplicationConfiguration", + "S3:GetBucketWebsite", + "s3:GetBucketPublicAccessBlock", + "s3:GetBucketObjectLockConfiguration", + "s3:GetBucketTagging", + "s3:GetBucketOwnershipControls", + "s3:GetIntelligentTieringConfiguration", + "s3:ListBucket" ] }, - "DomainName": { - "description": "", - "examples": [ - "mystack-mybucket-kdwwxmddtr2g.s3.amazonaws.com" - ], - "type": "string" + "create": { + "permissions": [ + "s3:CreateBucket", + "s3:PutBucketTagging", + "s3:PutAnalyticsConfiguration", + "s3:PutEncryptionConfiguration", + "s3:PutBucketCORS", + "s3:PutInventoryConfiguration", + "s3:PutLifecycleConfiguration", + "s3:PutMetricsConfiguration", + "s3:PutBucketNotification", + "s3:PutBucketReplication", + "s3:PutBucketWebsite", + "s3:PutAccelerateConfiguration", + "s3:PutBucketPublicAccessBlock", + "s3:PutReplicationConfiguration", + "s3:PutObjectAcl", + "s3:PutBucketObjectLockConfiguration", + "s3:GetBucketAcl", + "s3:ListBucket", + "iam:PassRole", + "s3:DeleteObject", + "s3:PutBucketLogging", + "s3:PutBucketVersioning", + "s3:PutObjectLockConfiguration", + "s3:PutBucketOwnershipControls", + "s3:PutIntelligentTieringConfiguration" + ] }, - "DualStackDomainName": { - "description": "", - "examples": [ - "mystack-mybucket-kdwwxmddtr2g.s3.dualstack.us-east-2.amazonaws.com" - ], - "type": "string" + "update": { + "permissions": [ + "s3:PutBucketAcl", + "s3:PutBucketTagging", + "s3:PutAnalyticsConfiguration", + "s3:PutEncryptionConfiguration", + "s3:PutBucketCORS", + "s3:PutInventoryConfiguration", + "s3:PutLifecycleConfiguration", + "s3:PutMetricsConfiguration", + "s3:PutBucketNotification", + "s3:PutBucketReplication", + "s3:PutBucketWebsite", + "s3:PutAccelerateConfiguration", + "s3:PutBucketPublicAccessBlock", + "s3:PutReplicationConfiguration", + "s3:PutBucketOwnershipControls", + "s3:PutIntelligentTieringConfiguration", + "s3:DeleteBucketWebsite", + "s3:PutBucketLogging", + "s3:PutBucketVersioning", + "s3:PutObjectLockConfiguration", + "s3:PutBucketObjectLockConfiguration", + "s3:DeleteBucketAnalyticsConfiguration", + "s3:DeleteBucketCors", + "s3:DeleteBucketMetricsConfiguration", + "s3:DeleteBucketEncryption", + "s3:DeleteBucketLifecycle", + "s3:DeleteBucketReplication", + "iam:PassRole", + "s3:ListBucket" + ] }, - "RegionalDomainName": { - "description": "", - "examples": [ - "mystack-mybucket-kdwwxmddtr2g.s3.us-east-2.amazonaws.com" - ], - "type": "string" + "list": { + "permissions": [ + "s3:ListAllMyBuckets" + ] }, - "WebsiteURL": { - "description": "", - "examples": [ - "Example (IPv4): http://mystack-mybucket-kdwwxmddtr2g.s3-website-us-east-2.amazonaws.com/", - "Example (IPv6): http://mystack-mybucket-kdwwxmddtr2g.s3.dualstack.us-east-2.amazonaws.com/" - ], - "format": "uri", - "type": "string" + "delete": { + "permissions": [ + "s3:DeleteBucket", + "s3:ListBucket" + ] } }, + "typeName": "AWS::S3::Bucket", + "readOnlyProperties": [ + "/properties/Arn", + "/properties/DomainName", + "/properties/DualStackDomainName", + "/properties/RegionalDomainName", + "/properties/WebsiteURL" + ], + "description": "The ``AWS::S3::Bucket`` resource creates an Amazon S3 bucket in the same AWS Region where you create the AWS CloudFormation stack.\n To control how AWS CloudFormation handles the bucket when the stack is deleted, you can set a deletion policy for your bucket. You can choose to *retain* the bucket or to *delete* the bucket. For more information, see [DeletionPolicy Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html).\n You can only delete empty buckets. Deletion fails for buckets that have contents.", + "writeOnlyProperties": [ + "/properties/AccessControl", + "/properties/LifecycleConfiguration/Rules/*/NoncurrentVersionExpirationInDays", + "/properties/LifecycleConfiguration/Rules/*/NoncurrentVersionTransition", + "/properties/LifecycleConfiguration/Rules/*/Transition", + "/properties/ReplicationConfiguration/Rules/*/Prefix", + "/properties/LifecycleConfiguration/Rules/*/ExpiredObjectDeleteMarker" + ], + "createOnlyProperties": [ + "/properties/BucketName" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/BucketName" + ], "definitions": { - "TagFilter": { - "description": "Specifies tags to use to identify a subset of objects for an Amazon S3 bucket.", + "DefaultRetention": { + "description": "The container element for optionally specifying the default Object Lock retention settings for new objects placed in the specified bucket.\n + The ``DefaultRetention`` settings require both a mode and a period.\n + The ``DefaultRetention`` period can be either ``Days`` or ``Years`` but you must select one. You cannot specify ``Days`` and ``Years`` at the same time.", + "additionalProperties": false, + "type": "object", + "properties": { + "Years": { + "description": "The number of years that you want to specify for the default retention period. If Object Lock is turned on, you must specify ``Mode`` and specify either ``Days`` or ``Years``.", + "type": "integer" + }, + "Days": { + "description": "The number of days that you want to specify for the default retention period. If Object Lock is turned on, you must specify ``Mode`` and specify either ``Days`` or ``Years``.", + "type": "integer" + }, + "Mode": { + "description": "The default Object Lock retention mode you want to apply to new objects placed in the specified bucket. If Object Lock is turned on, you must specify ``Mode`` and specify either ``Days`` or ``Years``.", + "type": "string", + "enum": [ + "COMPLIANCE", + "GOVERNANCE" + ] + } + } + }, + "SourceSelectionCriteria": { + "description": "A container that describes additional filters for identifying the source objects that you want to replicate. You can choose to enable or disable the replication of these objects.", + "additionalProperties": false, + "type": "object", + "properties": { + "ReplicaModifications": { + "description": "A filter that you can specify for selection for modifications on replicas.", + "$ref": "#/definitions/ReplicaModifications" + }, + "SseKmsEncryptedObjects": { + "description": "A container for filter information for the selection of Amazon S3 objects encrypted with AWS KMS.", + "$ref": "#/definitions/SseKmsEncryptedObjects" + } + } + }, + "ReplicationTimeValue": { + "description": "A container specifying the time value for S3 Replication Time Control (S3 RTC) and replication metrics ``EventThreshold``.", + "additionalProperties": false, "type": "object", + "properties": { + "Minutes": { + "description": "Contains an integer specifying time in minutes. \n Valid value: 15", + "type": "integer" + } + }, + "required": [ + "Minutes" + ] + }, + "FilterRule": { + "description": "Specifies the Amazon S3 object key name to filter on. An object key name is the name assigned to an object in your Amazon S3 bucket. You specify whether to filter on the suffix or prefix of the object key name. A prefix is a specific string of characters at the beginning of an object key name, which you can use to organize objects. For example, you can start the key names of related objects with a prefix, such as ``2023-`` or ``engineering/``. Then, you can use ``FilterRule`` to find objects in a bucket with key names that have the same prefix. A suffix is similar to a prefix, but it is at the end of the object key name instead of at the beginning.", "additionalProperties": false, + "type": "object", "properties": { "Value": { - "type": "string", - "description": "The tag value." + "description": "The value that the filter searches for in object key names.", + "type": "string" }, - "Key": { + "Name": { + "description": "The object key name prefix or suffix identifying one or more objects to which the filtering rule applies. The maximum length is 1,024 characters. Overlapping prefixes and suffixes are not supported. For more information, see [Configuring Event Notifications](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*.", "type": "string", - "description": "The tag key." + "maxLength": 1024 } }, "required": [ "Value", - "Key" + "Name" ] }, - "Destination": { - "description": "Specifies information about where to publish analysis or configuration results for an Amazon S3 bucket.", - "type": "object", + "ReplicationRule": { + "description": "Specifies which Amazon S3 objects to replicate and where to store the replicas.", "additionalProperties": false, + "type": "object", "properties": { - "BucketArn": { - "description": "The Amazon Resource Name (ARN) of the bucket to which data is exported.", - "type": "string" - }, - "BucketAccountId": { - "description": "The account ID that owns the destination S3 bucket. If no account ID is provided, the owner is not validated before exporting data.\n Although this value is optional, we strongly recommend that you set it to help prevent problems if the destination bucket ownership changes.", - "type": "string" - }, - "Format": { - "description": "Specifies the file format used when exporting data to Amazon S3.\n *Allowed values*: ``CSV`` | ``ORC`` | ``Parquet``", + "Status": { + "description": "Specifies whether the rule is enabled.", "type": "string", "enum": [ - "CSV", - "ORC", - "Parquet" + "Disabled", + "Enabled" ] }, + "Destination": { + "description": "A container for information about the replication destination and its configurations including enabling the S3 Replication Time Control (S3 RTC).", + "$ref": "#/definitions/ReplicationDestination" + }, + "Filter": { + "description": "A filter that identifies the subset of objects to which the replication rule applies. A ``Filter`` must specify exactly one ``Prefix``, ``TagFilter``, or an ``And`` child element. The use of the filter field indicates that this is a V2 replication configuration. This field isn't supported in a V1 replication configuration.\n V1 replication configuration only supports filtering by key prefix. To filter using a V1 replication configuration, add the ``Prefix`` directly as a child element of the ``Rule`` element.", + "$ref": "#/definitions/ReplicationRuleFilter" + }, + "Priority": { + "description": "The priority indicates which rule has precedence whenever two or more replication rules conflict. Amazon S3 will attempt to replicate objects according to all replication rules. However, if there are two or more rules with the same destination bucket, then objects will be replicated according to the rule with the highest priority. The higher the number, the higher the priority. \n For more information, see [Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) in the *Amazon S3 User Guide*.", + "type": "integer" + }, + "SourceSelectionCriteria": { + "description": "A container that describes additional filters for identifying the source objects that you want to replicate. You can choose to enable or disable the replication of these objects.", + "$ref": "#/definitions/SourceSelectionCriteria" + }, + "Id": { + "description": "A unique identifier for the rule. The maximum value is 255 characters. If you don't specify a value, AWS CloudFormation generates a random ID. When using a V2 replication configuration this property is capitalized as \"ID\".", + "type": "string", + "maxLength": 255 + }, "Prefix": { - "description": "The prefix to use when exporting data. The prefix is prepended to all results.", - "type": "string" + "description": "An object key name prefix that identifies the object or objects to which the rule applies. The maximum prefix length is 1,024 characters. To include all objects in a bucket, specify an empty string. To filter using a V1 replication configuration, add the ``Prefix`` directly as a child element of the ``Rule`` element.\n Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints).", + "type": "string", + "maxLength": 1024 + }, + "DeleteMarkerReplication": { + "description": "Specifies whether Amazon S3 replicates delete markers. If you specify a ``Filter`` in your replication configuration, you must also include a ``DeleteMarkerReplication`` element. If your ``Filter`` includes a ``Tag`` element, the ``DeleteMarkerReplication`` ``Status`` must be set to Disabled, because Amazon S3 does not support replicating delete markers for tag-based rules. For an example configuration, see [Basic Rule Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config). \n For more information about delete marker replication, see [Basic Rule Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html). \n If you are using an earlier version of the replication configuration, Amazon S3 handles replication of delete markers differently. For more information, see [Backward Compatibility](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations).", + "$ref": "#/definitions/DeleteMarkerReplication" } }, "required": [ - "BucketArn", - "Format" + "Destination", + "Status" ] }, "AccelerateConfiguration": { - "type": "object", + "description": "Configures the transfer acceleration state for an Amazon S3 bucket. For more information, see [Amazon S3 Transfer Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) in the *Amazon S3 User Guide*.", "additionalProperties": false, + "type": "object", "properties": { "AccelerationStatus": { "description": "Specifies the transfer acceleration status of the bucket.", @@ -222,799 +271,637 @@ }, "required": [ "AccelerationStatus" + ] + }, + "TargetObjectKeyFormat": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "SimplePrefix": { + "description": "This format defaults the prefix to the given log file prefix for delivering server access log file.", + "additionalProperties": false, + "type": "object" + } + }, + "required": [ + "SimplePrefix" + ] + }, + { + "additionalProperties": false, + "properties": { + "PartitionedPrefix": { + "$ref": "#/definitions/PartitionedPrefix" + } + }, + "required": [ + "PartitionedPrefix" + ] + } ], - "description": "Configures the transfer acceleration state for an Amazon S3 bucket. For more information, see [Amazon S3 Transfer Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) in the *Amazon S3 User Guide*." + "description": "Describes the key format for server access log file in the target bucket. You can choose between SimplePrefix and PartitionedPrefix.", + "type": "object" }, - "AnalyticsConfiguration": { - "description": "Specifies the configuration and any analyses for the analytics filter of an Amazon S3 bucket.", - "type": "object", + "Metrics": { + "description": "A container specifying replication metrics-related settings enabling replication metrics and events.", "additionalProperties": false, + "type": "object", "properties": { - "TagFilters": { - "type": "array", - "uniqueItems": true, - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "description": "The tags to use when evaluating an analytics filter.\n The analytics only includes objects that meet the filter's criteria. If no filter is specified, all of the contents of the bucket are included in the analysis." - }, - "StorageClassAnalysis": { - "$ref": "#/definitions/StorageClassAnalysis", - "description": "Contains data related to access patterns to be collected and made available to analyze the tradeoffs between different storage classes." - }, - "Id": { - "description": "The ID that identifies the analytics configuration.", - "type": "string" + "Status": { + "description": "Specifies whether the replication metrics are enabled.", + "type": "string", + "enum": [ + "Disabled", + "Enabled" + ] }, - "Prefix": { - "description": "The prefix that an object must have to be included in the analytics results.", - "type": "string" + "EventThreshold": { + "description": "A container specifying the time threshold for emitting the ``s3:Replication:OperationMissedThreshold`` event.", + "$ref": "#/definitions/ReplicationTimeValue" } }, "required": [ - "StorageClassAnalysis", - "Id" + "Status" ] }, - "StorageClassAnalysis": { - "description": "Specifies data related to access patterns to be collected and made available to analyze the tradeoffs between different storage classes for an Amazon S3 bucket.", - "type": "object", + "RoutingRuleCondition": { + "description": "A container for describing a condition that must be met for the specified redirect to apply. For example, 1. If request is for pages in the ``/docs`` folder, redirect to the ``/documents`` folder. 2. If request results in HTTP error 4xx, redirect request to another host where you might process the error.", "additionalProperties": false, - "properties": { - "DataExport": { - "$ref": "#/definitions/DataExport", - "description": "Specifies how data related to the storage class analysis for an Amazon S3 bucket should be exported." - } - } - }, - "DataExport": { - "description": "Specifies how data related to the storage class analysis for an Amazon S3 bucket should be exported.", "type": "object", - "additionalProperties": false, "properties": { - "Destination": { - "$ref": "#/definitions/Destination", - "description": "The place to store the data for an analysis." + "KeyPrefixEquals": { + "description": "The object key name prefix when the redirect is applied. For example, to redirect requests for ``ExamplePage.html``, the key prefix will be ``ExamplePage.html``. To redirect request for all pages with the prefix ``docs/``, the key prefix will be ``/docs``, which identifies all objects in the docs/ folder.\n Required when the parent element ``Condition`` is specified and sibling ``HttpErrorCodeReturnedEquals`` is not specified. If both conditions are specified, both must be true for the redirect to be applied.", + "type": "string" }, - "OutputSchemaVersion": { - "description": "The version of the output schema to use when exporting data. Must be ``V_1``.", - "type": "string", - "const": "V_1" + "HttpErrorCodeReturnedEquals": { + "description": "The HTTP error code when the redirect is applied. In the event of an error, if the error code equals this value, then the specified redirect is applied.\n Required when parent element ``Condition`` is specified and sibling ``KeyPrefixEquals`` is not specified. If both are specified, then both must be true for the redirect to be applied.", + "type": "string" } - }, - "required": [ - "Destination", - "OutputSchemaVersion" - ] + } }, - "BucketEncryption": { - "description": "Specifies default encryption for a bucket using server-side encryption with Amazon S3-managed keys (SSE-S3), AWS KMS-managed keys (SSE-KMS), or dual-layer server-side encryption with KMS-managed keys (DSSE-KMS). For information about the Amazon S3 default encryption feature, see [Amazon S3 Default Encryption for S3 Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) in the *Amazon S3 User Guide*.", - "type": "object", + "OwnershipControls": { + "description": "Specifies the container element for Object Ownership rules.\n S3 Object Ownership is an Amazon S3 bucket-level setting that you can use to disable access control lists (ACLs) and take ownership of every object in your bucket, simplifying access management for data stored in Amazon S3. For more information, see [Controlling ownership of objects and disabling ACLs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) in the *Amazon S3 User Guide*.", "additionalProperties": false, - "properties": { - "ServerSideEncryptionConfiguration": { - "description": "Specifies the default server-side-encryption configuration.", - "type": "array", + "type": "object", + "properties": { + "Rules": { "uniqueItems": true, + "description": "Specifies the container element for Object Ownership rules.", "insertionOrder": true, + "type": "array", "items": { - "$ref": "#/definitions/ServerSideEncryptionRule" + "$ref": "#/definitions/OwnershipControlsRule" } } }, "required": [ - "ServerSideEncryptionConfiguration" + "Rules" ] }, - "ServerSideEncryptionRule": { - "description": "Specifies the default server-side encryption configuration.", - "type": "object", + "DeleteMarkerReplication": { + "description": "Specifies whether Amazon S3 replicates delete markers. If you specify a ``Filter`` in your replication configuration, you must also include a ``DeleteMarkerReplication`` element. If your ``Filter`` includes a ``Tag`` element, the ``DeleteMarkerReplication`` ``Status`` must be set to Disabled, because Amazon S3 does not support replicating delete markers for tag-based rules. For an example configuration, see [Basic Rule Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config). \n For more information about delete marker replication, see [Basic Rule Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html). \n If you are using an earlier version of the replication configuration, Amazon S3 handles replication of delete markers differently. For more information, see [Backward Compatibility](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations).", "additionalProperties": false, + "type": "object", "properties": { - "BucketKeyEnabled": { - "description": "Specifies whether Amazon S3 should use an S3 Bucket Key with server-side encryption using KMS (SSE-KMS) for new objects in the bucket. Existing objects are not affected. Setting the ``BucketKeyEnabled`` element to ``true`` causes Amazon S3 to use an S3 Bucket Key. By default, S3 Bucket Key is not enabled.\n For more information, see [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) in the *Amazon S3 User Guide*.", - "type": "boolean" - }, - "ServerSideEncryptionByDefault": { - "$ref": "#/definitions/ServerSideEncryptionByDefault", - "description": "Specifies the default server-side encryption to apply to new objects in the bucket. If a PUT Object request doesn't specify any server-side encryption, this default encryption will be applied." + "Status": { + "description": "Indicates whether to replicate delete markers. Disabled by default.", + "type": "string", + "enum": [ + "Disabled", + "Enabled" + ] } } }, - "ServerSideEncryptionByDefault": { - "description": "Describes the default server-side encryption to apply to new objects in the bucket. If a PUT Object request doesn't specify any server-side encryption, this default encryption will be applied. If you don't specify a customer managed key at configuration, Amazon S3 automatically creates an AWS KMS key in your AWS account the first time that you add an object encrypted with SSE-KMS to a bucket. By default, Amazon S3 uses this KMS key for SSE-KMS. For more information, see [PUT Bucket encryption](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html) in the *Amazon S3 API Reference*.", + "RoutingRule": { + "description": "Specifies the redirect behavior and when a redirect is applied. For more information about routing rules, see [Configuring advanced conditional redirects](https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html#advanced-conditional-redirects) in the *Amazon S3 User Guide*.", + "additionalProperties": false, "type": "object", "properties": { - "KMSMasterKeyID": { - "description": "AWS Key Management Service (KMS) customer AWS KMS key ID to use for the default encryption. This parameter is allowed if and only if ``SSEAlgorithm`` is set to ``aws:kms`` or ``aws:kms:dsse``.\n You can specify the key ID, key alias, or the Amazon Resource Name (ARN) of the KMS key.\n + Key ID: ``1234abcd-12ab-34cd-56ef-1234567890ab`` \n + Key ARN: ``arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`` \n + Key Alias: ``alias/alias-name`` \n \n If you use a key ID, you can run into a LogDestination undeliverable error when creating a VPC flow log. \n If you are using encryption with cross-account or AWS service operations you must use a fully qualified KMS key ARN. For more information, see [Using encryption for cross-account operations](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy).\n Amazon S3 only supports symmetric encryption KMS keys. For more information, see [Asymmetric keys in KMS](https://docs.aws.amazon.com//kms/latest/developerguide/symmetric-asymmetric.html) in the *Key Management Service Developer Guide*.", - "type": "string", - "anyOf": [ - { - "relationshipRef": { - "typeName": "AWS::KMS::Key", - "propertyPath": "/properties/KeyId" - } - }, - { - "relationshipRef": { - "typeName": "AWS::KMS::Key", - "propertyPath": "/properties/Arn" - } - }, - { - "relationshipRef": { - "typeName": "AWS::KMS::Alias", - "propertyPath": "/properties/AliasName" - } - } - ] + "RedirectRule": { + "description": "Container for redirect information. You can redirect requests to another host, to another page, or with another protocol. In the event of an error, you can specify a different error code to return.", + "$ref": "#/definitions/RedirectRule" }, - "SSEAlgorithm": { - "type": "string", - "enum": [ - "aws:kms", - "AES256", - "aws:kms:dsse" - ], - "description": "Server-side encryption algorithm to use for the default encryption." + "RoutingRuleCondition": { + "description": "A container for describing a condition that must be met for the specified redirect to apply. For example, 1. If request is for pages in the ``/docs`` folder, redirect to the ``/documents`` folder. 2. If request results in HTTP error 4xx, redirect request to another host where you might process the error.", + "$ref": "#/definitions/RoutingRuleCondition" } }, - "additionalProperties": false, "required": [ - "SSEAlgorithm" + "RedirectRule" ] }, - "CorsConfiguration": { - "type": "object", + "NotificationFilter": { + "description": "Specifies object key name filtering rules. For information about key name filtering, see [Configuring event notifications using object key name filtering](https://docs.aws.amazon.com/AmazonS3/latest/userguide/notification-how-to-filtering.html) in the *Amazon S3 User Guide*.", "additionalProperties": false, - "properties": { - "CorsRules": { - "type": "array", - "uniqueItems": true, - "insertionOrder": true, - "items": { - "$ref": "#/definitions/CorsRule", - "maxLength": 100 - }, - "description": "A set of origins and methods (cross-origin access that you want to allow). You can add up to 100 rules to the configuration." - } - }, - "required": [ - "CorsRules" - ], - "description": "Describes the cross-origin access configuration for objects in an Amazon S3 bucket. For more information, see [Enabling Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the *Amazon S3 User Guide*." - }, - "CorsRule": { "type": "object", - "description": "Specifies a cross-origin access rule for an Amazon S3 bucket.", - "additionalProperties": false, "properties": { - "AllowedHeaders": { - "description": "Headers that are specified in the ``Access-Control-Request-Headers`` header. These headers are allowed in a preflight OPTIONS request. In response to any preflight OPTIONS request, Amazon S3 returns any requested headers that are allowed.", - "type": "array", - "uniqueItems": true, - "insertionOrder": true, - "items": { - "type": "string" - } - }, - "AllowedMethods": { - "description": "An HTTP method that you allow the origin to run.\n *Allowed values*: ``GET`` | ``PUT`` | ``HEAD`` | ``POST`` | ``DELETE``", - "type": "array", - "uniqueItems": true, - "insertionOrder": true, - "items": { - "type": "string", - "enum": [ - "GET", - "PUT", - "HEAD", - "POST", - "DELETE" - ] - } - }, - "AllowedOrigins": { - "description": "One or more origins you want customers to be able to access the bucket from.", - "type": "array", - "uniqueItems": true, - "insertionOrder": true, - "items": { - "type": "string" - } - }, - "ExposedHeaders": { - "description": "One or more headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript ``XMLHttpRequest`` object).", - "type": "array", - "uniqueItems": true, - "insertionOrder": true, - "items": { - "type": "string" - } - }, - "Id": { - "description": "A unique identifier for this rule. The value must be no more than 255 characters.", - "type": "string", - "maxLength": 255 - }, - "MaxAge": { - "description": "The time in seconds that your browser is to cache the preflight response for the specified resource.", - "type": "integer", - "minimum": 0 + "S3Key": { + "description": "A container for object key name prefix and suffix filtering rules.", + "$ref": "#/definitions/S3KeyFilter" } }, "required": [ - "AllowedMethods", - "AllowedOrigins" + "S3Key" ] }, - "IntelligentTieringConfiguration": { - "type": "object", + "ReplicationConfiguration": { + "description": "A container for replication rules. You can add up to 1,000 rules. The maximum size of a replication configuration is 2 MB. The latest version of the replication configuration XML is V2. For more information about XML V2 replication configurations, see [Replication configuration](https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication-add-config.html) in the *Amazon S3 User Guide*.", "additionalProperties": false, + "type": "object", "properties": { - "Id": { - "description": "The ID used to identify the S3 Intelligent-Tiering configuration.", - "type": "string" - }, - "Prefix": { - "description": "An object key name prefix that identifies the subset of objects to which the rule applies.", + "Role": { + "description": "The Amazon Resource Name (ARN) of the IAMlong (IAM) role that Amazon S3 assumes when replicating objects. For more information, see [How to Set Up Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-how-setup.html) in the *Amazon S3 User Guide*.", "type": "string" }, - "Status": { - "description": "Specifies the status of the configuration.", - "type": "string", - "enum": [ - "Disabled", - "Enabled" - ] - }, - "TagFilters": { - "description": "A container for a key-value pair.", - "type": "array", + "Rules": { "uniqueItems": true, + "description": "A container for one or more replication rules. A replication configuration must have at least one rule and can contain a maximum of 1,000 rules.", "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - } - }, - "Tierings": { - "description": "Specifies a list of S3 Intelligent-Tiering storage class tiers in the configuration. At least one tier must be defined in the list. At most, you can specify two tiers in the list, one for each available AccessTier: ``ARCHIVE_ACCESS`` and ``DEEP_ARCHIVE_ACCESS``.\n You only need Intelligent Tiering Configuration enabled on a bucket if you want to automatically move objects stored in the Intelligent-Tiering storage class to Archive Access or Deep Archive Access tiers.", "type": "array", - "uniqueItems": true, - "insertionOrder": true, "items": { - "$ref": "#/definitions/Tiering" + "minLength": 1, + "$ref": "#/definitions/ReplicationRule", + "maxLength": 1000 } } }, "required": [ - "Id", - "Status", - "Tierings" - ], - "description": "Specifies the S3 Intelligent-Tiering configuration for an Amazon S3 bucket.\n For information about the S3 Intelligent-Tiering storage class, see [Storage class for automatically optimizing frequently and infrequently accessed objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access)." + "Role", + "Rules" + ] }, - "Tiering": { - "type": "object", + "ServerSideEncryptionRule": { + "description": "Specifies the default server-side encryption configuration.\n If you're specifying a customer managed KMS key, we recommend using a fully qualified KMS key ARN. If you use a KMS key alias instead, then KMS resolves the key within the requester\u2019s account. This behavior can result in data that's encrypted with a KMS key that belongs to the requester, and not the bucket owner.", "additionalProperties": false, + "type": "object", "properties": { - "AccessTier": { - "description": "S3 Intelligent-Tiering access tier. See [Storage class for automatically optimizing frequently and infrequently accessed objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access) for a list of access tiers in the S3 Intelligent-Tiering storage class.", - "type": "string", - "enum": [ - "ARCHIVE_ACCESS", - "DEEP_ARCHIVE_ACCESS" - ] + "BucketKeyEnabled": { + "description": "Specifies whether Amazon S3 should use an S3 Bucket Key with server-side encryption using KMS (SSE-KMS) for new objects in the bucket. Existing objects are not affected. Setting the ``BucketKeyEnabled`` element to ``true`` causes Amazon S3 to use an S3 Bucket Key. By default, S3 Bucket Key is not enabled.\n For more information, see [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) in the *Amazon S3 User Guide*.", + "type": "boolean" }, - "Days": { - "description": "The number of consecutive days of no access after which an object will be eligible to be transitioned to the corresponding tier. The minimum number of days specified for Archive Access tier must be at least 90 days and Deep Archive Access tier must be at least 180 days. The maximum can be up to 2 years (730 days).", - "type": "integer" + "ServerSideEncryptionByDefault": { + "description": "Specifies the default server-side encryption to apply to new objects in the bucket. If a PUT Object request doesn't specify any server-side encryption, this default encryption will be applied.", + "$ref": "#/definitions/ServerSideEncryptionByDefault" } - }, - "required": [ - "AccessTier", - "Days" - ], - "description": "The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without additional operational overhead." + } }, - "InventoryConfiguration": { - "type": "object", + "ReplicationDestination": { + "description": "A container for information about the replication destination and its configurations including enabling the S3 Replication Time Control (S3 RTC).", "additionalProperties": false, + "type": "object", "properties": { - "Destination": { - "$ref": "#/definitions/Destination", - "description": "Contains information about where to publish the inventory results." - }, - "Enabled": { - "description": "Specifies whether the inventory is enabled or disabled. If set to ``True``, an inventory list is generated. If set to ``False``, no inventory list is generated.", - "type": "boolean" + "AccessControlTranslation": { + "description": "Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the AWS-account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same AWS-account that owns the source object.", + "$ref": "#/definitions/AccessControlTranslation" }, - "Id": { - "description": "The ID used to identify the inventory configuration.", + "Account": { + "description": "Destination bucket owner account ID. In a cross-account scenario, if you direct Amazon S3 to change replica ownership to the AWS-account that owns the destination bucket by specifying the ``AccessControlTranslation`` property, this is the account ID of the destination bucket owner. For more information, see [Cross-Region Replication Additional Configuration: Change Replica Owner](https://docs.aws.amazon.com/AmazonS3/latest/dev/crr-change-owner.html) in the *Amazon S3 User Guide*.\n If you specify the ``AccessControlTranslation`` property, the ``Account`` property is required.", "type": "string" }, - "IncludedObjectVersions": { - "description": "Object versions to include in the inventory list. If set to ``All``, the list includes all the object versions, which adds the version-related fields ``VersionId``, ``IsLatest``, and ``DeleteMarker`` to the list. If set to ``Current``, the list does not contain these version-related fields.", - "type": "string", - "enum": [ - "All", - "Current" - ] - }, - "OptionalFields": { - "description": "Contains the optional fields that are included in the inventory results.", - "type": "array", - "uniqueItems": true, - "insertionOrder": true, - "items": { - "type": "string", - "enum": [ - "Size", - "LastModifiedDate", - "StorageClass", - "ETag", - "IsMultipartUploaded", - "ReplicationStatus", - "EncryptionStatus", - "ObjectLockRetainUntilDate", - "ObjectLockMode", - "ObjectLockLegalHoldStatus", - "IntelligentTieringAccessTier", - "BucketKeyStatus", - "ChecksumAlgorithm", - "ObjectAccessControlList", - "ObjectOwner" - ] - } + "Metrics": { + "description": "A container specifying replication metrics-related settings enabling replication metrics and events.", + "$ref": "#/definitions/Metrics" }, - "Prefix": { - "description": "Specifies the inventory filter prefix.", + "Bucket": { + "description": "The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to store the results.", "type": "string" }, - "ScheduleFrequency": { - "description": "Specifies the schedule for generating inventory results.", + "EncryptionConfiguration": { + "description": "Specifies encryption-related information.", + "$ref": "#/definitions/EncryptionConfiguration" + }, + "StorageClass": { + "description": "The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica. \n For valid values, see the ``StorageClass`` element of the [PUT Bucket replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) action in the *Amazon S3 API Reference*.", "type": "string", "enum": [ - "Daily", - "Weekly" + "DEEP_ARCHIVE", + "GLACIER", + "GLACIER_IR", + "INTELLIGENT_TIERING", + "ONEZONE_IA", + "REDUCED_REDUNDANCY", + "STANDARD", + "STANDARD_IA" ] + }, + "ReplicationTime": { + "description": "A container specifying S3 Replication Time Control (S3 RTC), including whether S3 RTC is enabled and the time when all objects and operations on objects must be replicated. Must be specified together with a ``Metrics`` block.", + "$ref": "#/definitions/ReplicationTime" } }, "required": [ - "Destination", - "Enabled", - "Id", - "IncludedObjectVersions", - "ScheduleFrequency" - ], - "description": "Specifies the inventory configuration for an Amazon S3 bucket. For more information, see [GET Bucket inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in the *Amazon S3 API Reference*." + "Bucket" + ] }, - "LifecycleConfiguration": { + "OwnershipControlsRule": { + "description": "Specifies an Object Ownership rule.\n S3 Object Ownership is an Amazon S3 bucket-level setting that you can use to disable access control lists (ACLs) and take ownership of every object in your bucket, simplifying access management for data stored in Amazon S3. For more information, see [Controlling ownership of objects and disabling ACLs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) in the *Amazon S3 User Guide*.", + "additionalProperties": false, "type": "object", + "properties": { + "ObjectOwnership": { + "description": "Specifies an object ownership rule.", + "type": "string", + "enum": [ + "ObjectWriter", + "BucketOwnerPreferred", + "BucketOwnerEnforced" + ] + } + } + }, + "EventBridgeConfiguration": { + "description": "Amazon S3 can send events to Amazon EventBridge whenever certain events happen in your bucket, see [Using EventBridge](https://docs.aws.amazon.com/AmazonS3/latest/userguide/EventBridge.html) in the *Amazon S3 User Guide*.\n Unlike other destinations, delivery of events to EventBridge can be either enabled or disabled for a bucket. If enabled, all events will be sent to EventBridge and you can use EventBridge rules to route events to additional targets. For more information, see [What Is Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) in the *Amazon EventBridge User Guide*", "additionalProperties": false, + "type": "object", "properties": { - "Rules": { - "description": "A lifecycle rule for individual objects in an Amazon S3 bucket.", - "type": "array", - "uniqueItems": true, - "insertionOrder": true, - "items": { - "$ref": "#/definitions/Rule" - } + "EventBridgeEnabled": { + "default": "true", + "description": "Enables delivery of events to Amazon EventBridge.", + "type": "boolean" } }, "required": [ - "Rules" - ], - "description": "Specifies the lifecycle configuration for objects in an Amazon S3 bucket. For more information, see [Object Lifecycle Management](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) in the *Amazon S3 User Guide*." + "EventBridgeEnabled" + ] }, - "Rule": { - "type": "object", - "description": "Specifies lifecycle rules for an Amazon S3 bucket. For more information, see [Put Bucket Lifecycle Configuration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlifecycle.html) in the *Amazon S3 API Reference*.\n You must specify at least one of the following properties: ``AbortIncompleteMultipartUpload``, ``ExpirationDate``, ``ExpirationInDays``, ``NoncurrentVersionExpirationInDays``, ``NoncurrentVersionTransition``, ``NoncurrentVersionTransitions``, ``Transition``, or ``Transitions``.", + "CorsRule": { + "description": "Specifies a cross-origin access rule for an Amazon S3 bucket.", "additionalProperties": false, + "type": "object", "properties": { - "AbortIncompleteMultipartUpload": { - "$ref": "#/definitions/AbortIncompleteMultipartUpload", - "description": "Specifies a lifecycle rule that stops incomplete multipart uploads to an Amazon S3 bucket." - }, - "ExpirationDate": { - "$ref": "#/definitions/iso8601UTC", - "description": "Indicates when objects are deleted from Amazon S3 and Amazon S3 Glacier. The date value must be in ISO 8601 format. The time is always midnight UTC. If you specify an expiration and transition time, you must use the same time unit for both properties (either in days or by date). The expiration time must also be later than the transition time." - }, - "ExpirationInDays": { - "type": "integer", - "description": "Indicates the number of days after creation when objects are deleted from Amazon S3 and Amazon S3 Glacier. If you specify an expiration and transition time, you must use the same time unit for both properties (either in days or by date). The expiration time must also be later than the transition time." - }, - "ExpiredObjectDeleteMarker": { - "type": "boolean", - "description": "Indicates whether Amazon S3 will remove a delete marker without any noncurrent versions. If set to true, the delete marker will be removed if there are no noncurrent versions. This cannot be specified with ``ExpirationInDays``, ``ExpirationDate``, or ``TagFilters``." - }, - "Id": { - "type": "string", - "maxLength": 255, - "description": "Unique identifier for the rule. The value can't be longer than 255 characters." - }, - "NoncurrentVersionExpirationInDays": { - "type": "integer", - "description": "(Deprecated.) For buckets with versioning enabled (or suspended), specifies the time, in days, between when a new version of the object is uploaded to the bucket and when old versions of the object expire. When object versions expire, Amazon S3 permanently deletes them. If you specify a transition and expiration time, the expiration time must be later than the transition time." - }, - "NoncurrentVersionExpiration": { - "$ref": "#/definitions/NoncurrentVersionExpiration", - "description": "Specifies when noncurrent object versions expire. Upon expiration, S3 permanently deletes the noncurrent object versions. You set this lifecycle configuration action on a bucket that has versioning enabled (or suspended) to request that S3 delete noncurrent object versions at a specific period in the object's lifetime." - }, - "NoncurrentVersionTransition": { - "$ref": "#/definitions/NoncurrentVersionTransition", - "description": "(Deprecated.) For buckets with versioning enabled (or suspended), specifies when non-current objects transition to a specified storage class. If you specify a transition and expiration time, the expiration time must be later than the transition time. If you specify this property, don't specify the ``NoncurrentVersionTransitions`` property." - }, - "NoncurrentVersionTransitions": { - "type": "array", + "ExposedHeaders": { "uniqueItems": true, + "description": "One or more headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript ``XMLHttpRequest`` object).", "insertionOrder": true, + "type": "array", "items": { - "$ref": "#/definitions/NoncurrentVersionTransition" - }, - "description": "For buckets with versioning enabled (or suspended), one or more transition rules that specify when non-current objects transition to a specified storage class. If you specify a transition and expiration time, the expiration time must be later than the transition time. If you specify this property, don't specify the ``NoncurrentVersionTransition`` property." - }, - "Prefix": { - "type": "string", - "description": "Object key prefix that identifies one or more objects to which this rule applies.\n Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints)." - }, - "Status": { - "type": "string", - "enum": [ - "Enabled", - "Disabled" - ], - "description": "If ``Enabled``, the rule is currently being applied. If ``Disabled``, the rule is not currently being applied." + "type": "string" + } }, - "TagFilters": { - "type": "array", + "AllowedMethods": { "uniqueItems": true, + "description": "An HTTP method that you allow the origin to run.\n *Allowed values*: ``GET`` | ``PUT`` | ``HEAD`` | ``POST`` | ``DELETE``", "insertionOrder": true, + "type": "array", "items": { - "$ref": "#/definitions/TagFilter" - }, - "description": "Tags to use to identify a subset of objects to which the lifecycle rule applies." - }, - "ObjectSizeGreaterThan": { - "type": "string", - "maxLength": 20, - "pattern": "[0-9]+", - "description": "Specifies the minimum object size in bytes for this rule to apply to. Objects must be larger than this value in bytes. For more information about size based rules, see [Lifecycle configuration using size-based rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-examples.html#lc-size-rules) in the *Amazon S3 User Guide*." - }, - "ObjectSizeLessThan": { - "type": "string", - "maxLength": 20, - "pattern": "[0-9]+", - "description": "Specifies the maximum object size in bytes for this rule to apply to. Objects must be smaller than this value in bytes. For more information about sized based rules, see [Lifecycle configuration using size-based rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-examples.html#lc-size-rules) in the *Amazon S3 User Guide*." - }, - "Transition": { - "$ref": "#/definitions/Transition", - "description": "(Deprecated.) Specifies when an object transitions to a specified storage class. If you specify an expiration and transition time, you must use the same time unit for both properties (either in days or by date). The expiration time must also be later than the transition time. If you specify this property, don't specify the ``Transitions`` property." + "type": "string", + "enum": [ + "GET", + "PUT", + "HEAD", + "POST", + "DELETE" + ] + } }, - "Transitions": { + "AllowedOrigins": { + "uniqueItems": true, + "description": "One or more origins you want customers to be able to access the bucket from.", + "insertionOrder": true, "type": "array", + "items": { + "type": "string" + } + }, + "AllowedHeaders": { "uniqueItems": true, + "description": "Headers that are specified in the ``Access-Control-Request-Headers`` header. These headers are allowed in a preflight OPTIONS request. In response to any preflight OPTIONS request, Amazon S3 returns any requested headers that are allowed.", "insertionOrder": true, + "type": "array", "items": { - "$ref": "#/definitions/Transition" - }, - "description": "One or more transition rules that specify when an object transitions to a specified storage class. If you specify an expiration and transition time, you must use the same time unit for both properties (either in days or by date). The expiration time must also be later than the transition time. If you specify this property, don't specify the ``Transition`` property." + "type": "string" + } + }, + "MaxAge": { + "description": "The time in seconds that your browser is to cache the preflight response for the specified resource.", + "type": "integer", + "minimum": 0 + }, + "Id": { + "description": "A unique identifier for this rule. The value must be no more than 255 characters.", + "type": "string", + "maxLength": 255 } }, "required": [ - "Status" + "AllowedMethods", + "AllowedOrigins" ] }, - "AbortIncompleteMultipartUpload": { - "description": "Specifies the days since the initiation of an incomplete multipart upload that Amazon S3 will wait before permanently removing all parts of the upload. For more information, see [Stopping Incomplete Multipart Uploads Using a Bucket Lifecycle Policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config) in the *Amazon S3 User Guide*.", - "type": "object", + "AccessControlTranslation": { + "description": "Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the AWS-account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same AWS-account that owns the source object.", "additionalProperties": false, + "type": "object", "properties": { - "DaysAfterInitiation": { - "description": "Specifies the number of days after which Amazon S3 stops an incomplete multipart upload.", - "type": "integer", - "minimum": 0 + "Owner": { + "const": "Destination", + "description": "Specifies the replica ownership. For default and valid values, see [PUT bucket replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) in the *Amazon S3 API Reference*.", + "type": "string" } }, "required": [ - "DaysAfterInitiation" + "Owner" ] }, - "iso8601UTC": { - "description": "The date value in ISO 8601 format. The timezone is always UTC. (YYYY-MM-DDThh:mm:ssZ)", - "type": "string", - "pattern": "^([0-2]\\d{3})-(0[0-9]|1[0-2])-([0-2]\\d|3[01])T([01]\\d|2[0-4]):([0-5]\\d):([0-6]\\d)((\\.\\d{3})?)Z$" - }, - "NoncurrentVersionExpiration": { - "type": "object", - "description": "Specifies when noncurrent object versions expire. Upon expiration, S3 permanently deletes the noncurrent object versions. You set this lifecycle configuration action on a bucket that has versioning enabled (or suspended) to request that S3 delete noncurrent object versions at a specific period in the object's lifetime. For more information about setting a lifecycle rule configuration, see [AWS::S3::Bucket Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html).", + "ObjectLockRule": { + "description": "Specifies the Object Lock rule for the specified object. Enable the this rule when you apply ``ObjectLockConfiguration`` to a bucket.", "additionalProperties": false, + "type": "object", "properties": { - "NoncurrentDays": { - "description": "Specifies the number of days an object is noncurrent before S3 can perform the associated action. For information about the noncurrent days calculations, see [How Amazon S3 Calculates When an Object Became Noncurrent](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) in the *Amazon S3 User Guide*.", - "type": "integer" - }, - "NewerNoncurrentVersions": { - "description": "Specifies how many noncurrent versions S3 will retain. If there are this many more recent noncurrent versions, S3 will take the associated action. For more information about noncurrent versions, see [Lifecycle configuration elements](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html) in the *Amazon S3 User Guide*.", - "type": "integer" + "DefaultRetention": { + "description": "The default Object Lock retention mode and period that you want to apply to new objects placed in the specified bucket. If Object Lock is turned on, bucket settings require both ``Mode`` and a period of either ``Days`` or ``Years``. You cannot specify ``Days`` and ``Years`` at the same time. For more information about allowable values for mode and period, see [DefaultRetention](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-defaultretention.html).", + "$ref": "#/definitions/DefaultRetention" } - }, - "required": [ - "NoncurrentDays" - ] + } }, - "NoncurrentVersionTransition": { - "type": "object", - "description": "Container for the transition rule that describes when noncurrent objects transition to the ``STANDARD_IA``, ``ONEZONE_IA``, ``INTELLIGENT_TIERING``, ``GLACIER_IR``, ``GLACIER``, or ``DEEP_ARCHIVE`` storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to the ``STANDARD_IA``, ``ONEZONE_IA``, ``INTELLIGENT_TIERING``, ``GLACIER_IR``, ``GLACIER``, or ``DEEP_ARCHIVE`` storage class at a specific period in the object's lifetime. If you specify this property, don't specify the ``NoncurrentVersionTransitions`` property.", + "Rule": { + "description": "Specifies lifecycle rules for an Amazon S3 bucket. For more information, see [Put Bucket Lifecycle Configuration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlifecycle.html) in the *Amazon S3 API Reference*.\n You must specify at least one of the following properties: ``AbortIncompleteMultipartUpload``, ``ExpirationDate``, ``ExpirationInDays``, ``NoncurrentVersionExpirationInDays``, ``NoncurrentVersionTransition``, ``NoncurrentVersionTransitions``, ``Transition``, or ``Transitions``.", "additionalProperties": false, + "type": "object", "properties": { - "StorageClass": { - "description": "The class of storage used to store the object.", + "Status": { + "description": "If ``Enabled``, the rule is currently being applied. If ``Disabled``, the rule is not currently being applied.", "type": "string", "enum": [ - "DEEP_ARCHIVE", - "GLACIER", - "Glacier", - "GLACIER_IR", - "INTELLIGENT_TIERING", - "ONEZONE_IA", - "STANDARD_IA" + "Enabled", + "Disabled" ] }, - "TransitionInDays": { - "description": "Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see [How Amazon S3 Calculates How Long an Object Has Been Noncurrent](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) in the *Amazon S3 User Guide*.", + "ExpiredObjectDeleteMarker": { + "description": "Indicates whether Amazon S3 will remove a delete marker without any noncurrent versions. If set to true, the delete marker will be removed if there are no noncurrent versions. This cannot be specified with ``ExpirationInDays``, ``ExpirationDate``, or ``TagFilters``.", + "type": "boolean" + }, + "NoncurrentVersionExpirationInDays": { + "description": "(Deprecated.) For buckets with versioning enabled (or suspended), specifies the time, in days, between when a new version of the object is uploaded to the bucket and when old versions of the object expire. When object versions expire, Amazon S3 permanently deletes them. If you specify a transition and expiration time, the expiration time must be later than the transition time.", "type": "integer" }, - "NewerNoncurrentVersions": { - "description": "Specifies how many noncurrent versions S3 will retain. If there are this many more recent noncurrent versions, S3 will take the associated action. For more information about noncurrent versions, see [Lifecycle configuration elements](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html) in the *Amazon S3 User Guide*.", + "Transitions": { + "uniqueItems": true, + "description": "One or more transition rules that specify when an object transitions to a specified storage class. If you specify an expiration and transition time, you must use the same time unit for both properties (either in days or by date). The expiration time must also be later than the transition time. If you specify this property, don't specify the ``Transition`` property.", + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/Transition" + } + }, + "ObjectSizeGreaterThan": { + "pattern": "[0-9]+", + "description": "Specifies the minimum object size in bytes for this rule to apply to. Objects must be larger than this value in bytes. For more information about size based rules, see [Lifecycle configuration using size-based rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-examples.html#lc-size-rules) in the *Amazon S3 User Guide*.", + "type": "string", + "maxLength": 20 + }, + "TagFilters": { + "uniqueItems": true, + "description": "Tags to use to identify a subset of objects to which the lifecycle rule applies.", + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/TagFilter" + } + }, + "NoncurrentVersionTransitions": { + "uniqueItems": true, + "description": "For buckets with versioning enabled (or suspended), one or more transition rules that specify when non-current objects transition to a specified storage class. If you specify a transition and expiration time, the expiration time must be later than the transition time. If you specify this property, don't specify the ``NoncurrentVersionTransition`` property.", + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/NoncurrentVersionTransition" + } + }, + "Prefix": { + "description": "Object key prefix that identifies one or more objects to which this rule applies.\n Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints).", + "type": "string" + }, + "ObjectSizeLessThan": { + "pattern": "[0-9]+", + "description": "Specifies the maximum object size in bytes for this rule to apply to. Objects must be smaller than this value in bytes. For more information about sized based rules, see [Lifecycle configuration using size-based rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-examples.html#lc-size-rules) in the *Amazon S3 User Guide*.", + "type": "string", + "maxLength": 20 + }, + "NoncurrentVersionTransition": { + "description": "(Deprecated.) For buckets with versioning enabled (or suspended), specifies when non-current objects transition to a specified storage class. If you specify a transition and expiration time, the expiration time must be later than the transition time. If you specify this property, don't specify the ``NoncurrentVersionTransitions`` property.", + "$ref": "#/definitions/NoncurrentVersionTransition" + }, + "ExpirationDate": { + "description": "Indicates when objects are deleted from Amazon S3 and Amazon S3 Glacier. The date value must be in ISO 8601 format. The time is always midnight UTC. If you specify an expiration and transition time, you must use the same time unit for both properties (either in days or by date). The expiration time must also be later than the transition time.", + "$ref": "#/definitions/iso8601UTC" + }, + "NoncurrentVersionExpiration": { + "description": "Specifies when noncurrent object versions expire. Upon expiration, S3 permanently deletes the noncurrent object versions. You set this lifecycle configuration action on a bucket that has versioning enabled (or suspended) to request that S3 delete noncurrent object versions at a specific period in the object's lifetime.", + "$ref": "#/definitions/NoncurrentVersionExpiration" + }, + "ExpirationInDays": { + "description": "Indicates the number of days after creation when objects are deleted from Amazon S3 and Amazon S3 Glacier. If you specify an expiration and transition time, you must use the same time unit for both properties (either in days or by date). The expiration time must also be later than the transition time.", "type": "integer" + }, + "Transition": { + "description": "(Deprecated.) Specifies when an object transitions to a specified storage class. If you specify an expiration and transition time, you must use the same time unit for both properties (either in days or by date). The expiration time must also be later than the transition time. If you specify this property, don't specify the ``Transitions`` property.", + "$ref": "#/definitions/Transition" + }, + "Id": { + "description": "Unique identifier for the rule. The value can't be longer than 255 characters.", + "type": "string", + "maxLength": 255 + }, + "AbortIncompleteMultipartUpload": { + "description": "Specifies a lifecycle rule that stops incomplete multipart uploads to an Amazon S3 bucket.", + "$ref": "#/definitions/AbortIncompleteMultipartUpload" } }, "required": [ - "StorageClass", - "TransitionInDays" + "Status" ] }, - "Transition": { + "Arn": { + "description": "the Amazon Resource Name (ARN) of the specified bucket.", + "type": "string" + }, + "S3KeyFilter": { + "description": "A container for object key name prefix and suffix filtering rules. For more information about object key name filtering, see [Configuring event notifications using object key name filtering](https://docs.aws.amazon.com/AmazonS3/latest/userguide/notification-how-to-filtering.html) in the *Amazon S3 User Guide*.\n The same type of filter rule cannot be used more than once. For example, you cannot specify two prefix rules.", + "additionalProperties": false, "type": "object", "properties": { - "StorageClass": { - "type": "string", - "enum": [ - "DEEP_ARCHIVE", - "GLACIER", - "Glacier", - "GLACIER_IR", - "INTELLIGENT_TIERING", - "ONEZONE_IA", - "STANDARD_IA" - ], - "description": "The storage class to which you want the object to transition." - }, - "TransitionDate": { - "$ref": "#/definitions/iso8601UTC", - "description": "Indicates when objects are transitioned to the specified storage class. The date value must be in ISO 8601 format. The time is always midnight UTC." - }, - "TransitionInDays": { - "type": "integer", - "description": "Indicates the number of days after creation when objects are transitioned to the specified storage class. The value must be a positive integer." + "Rules": { + "uniqueItems": true, + "description": "A list of containers for the key-value pair that defines the criteria for the filter rule.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/FilterRule" + } } }, - "additionalProperties": false, - "description": "Specifies when an object transitions to a specified storage class. For more information about Amazon S3 lifecycle configuration rules, see [Transitioning Objects Using Amazon S3 Lifecycle](https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-transition-general-considerations.html) in the *Amazon S3 User Guide*.", "required": [ - "StorageClass" + "Rules" ] }, - "LoggingConfiguration": { + "iso8601UTC": { + "pattern": "^([0-2]\\d{3})-(0[0-9]|1[0-2])-([0-2]\\d|3[01])T([01]\\d|2[0-4]):([0-5]\\d):([0-6]\\d)((\\.\\d{3})?)Z$", + "description": "The date value in ISO 8601 format. The timezone is always UTC. (YYYY-MM-DDThh:mm:ssZ)", + "type": "string" + }, + "AnalyticsConfiguration": { + "description": "Specifies the configuration and any analyses for the analytics filter of an Amazon S3 bucket.", + "additionalProperties": false, "type": "object", "properties": { - "DestinationBucketName": { - "type": "string", - "description": "The name of the bucket where Amazon S3 should store server access log files. You can store log files in any bucket that you own. By default, logs are stored in the bucket where the ``LoggingConfiguration`` property is defined." + "StorageClassAnalysis": { + "description": "Contains data related to access patterns to be collected and made available to analyze the tradeoffs between different storage classes.", + "$ref": "#/definitions/StorageClassAnalysis" }, - "LogFilePrefix": { - "type": "string", - "description": "A prefix for all log object keys. If you store log files from multiple Amazon S3 buckets in a single bucket, you can use a prefix to distinguish which log files came from which bucket." + "TagFilters": { + "uniqueItems": true, + "description": "The tags to use when evaluating an analytics filter.\n The analytics only includes objects that meet the filter's criteria. If no filter is specified, all of the contents of the bucket are included in the analysis.", + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/TagFilter" + } }, - "TargetObjectKeyFormat": { - "$ref": "#/definitions/TargetObjectKeyFormat", - "description": "Amazon S3 key format for log objects. Only one format, either PartitionedPrefix or SimplePrefix, is allowed." + "Id": { + "description": "The ID that identifies the analytics configuration.", + "type": "string" + }, + "Prefix": { + "description": "The prefix that an object must have to be included in the analytics results.", + "type": "string" } }, - "additionalProperties": false, - "description": "Describes where logs are stored and the prefix that Amazon S3 assigns to all log object keys for a bucket. For examples and more information, see [PUT Bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html) in the *Amazon S3 API Reference*.\n To successfully complete the ``AWS::S3::Bucket LoggingConfiguration`` request, you must have ``s3:PutObject`` and ``s3:PutObjectAcl`` in your IAM permissions." + "required": [ + "StorageClassAnalysis", + "Id" + ] }, - "TargetObjectKeyFormat": { + "Destination": { + "description": "Specifies information about where to publish analysis or configuration results for an Amazon S3 bucket.", + "additionalProperties": false, "type": "object", - "description": "Describes the key format for server access log file in the target bucket. You can choose between SimplePrefix and PartitionedPrefix.", - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "SimplePrefix": { - "description": "This format defaults the prefix to the given log file prefix for delivering server access log file.", - "type": "object", - "additionalProperties": false - } - }, - "required": [ - "SimplePrefix" - ] + "properties": { + "BucketArn": { + "description": "The Amazon Resource Name (ARN) of the bucket to which data is exported.", + "type": "string" }, - { - "additionalProperties": false, - "properties": { - "PartitionedPrefix": { - "$ref": "#/definitions/PartitionedPrefix" - } - }, - "required": [ - "PartitionedPrefix" + "Format": { + "description": "Specifies the file format used when exporting data to Amazon S3.\n *Allowed values*: ``CSV`` | ``ORC`` | ``Parquet``", + "type": "string", + "enum": [ + "CSV", + "ORC", + "Parquet" ] + }, + "BucketAccountId": { + "description": "The account ID that owns the destination S3 bucket. If no account ID is provided, the owner is not validated before exporting data.\n Although this value is optional, we strongly recommend that you set it to help prevent problems if the destination bucket ownership changes.", + "type": "string" + }, + "Prefix": { + "description": "The prefix to use when exporting data. The prefix is prepended to all results.", + "type": "string" } + }, + "required": [ + "BucketArn", + "Format" ] }, "PartitionedPrefix": { - "type": "object", "description": "Amazon S3 keys for log objects are partitioned in the following format:\n ``[DestinationPrefix][SourceAccountId]/[SourceRegion]/[SourceBucket]/[YYYY]/[MM]/[DD]/[YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]`` \n PartitionedPrefix defaults to EventTime delivery when server access logs are delivered.", + "additionalProperties": false, + "type": "object", "properties": { "PartitionDateSource": { + "description": "Specifies the partition date source for the partitioned prefix. ``PartitionDateSource`` can be ``EventTime`` or ``DeliveryTime``.\n For ``DeliveryTime``, the time in the log file names corresponds to the delivery time for the log files. \n For ``EventTime``, The logs delivered are for a specific day only. The year, month, and day correspond to the day on which the event occurred, and the hour, minutes and seconds are set to 00 in the key.", "type": "string", - "description": "Specifies the partition date source for the partitioned prefix. PartitionDateSource can be EventTime or DeliveryTime.", "enum": [ "EventTime", "DeliveryTime" ] } - }, - "additionalProperties": false + } }, - "MetricsConfiguration": { - "type": "object", + "RedirectAllRequestsTo": { + "description": "Specifies the redirect behavior of all requests to a website endpoint of an Amazon S3 bucket.", "additionalProperties": false, - "properties": { - "AccessPointArn": { - "type": "string", - "description": "The access point that was used while performing operations on the object. The metrics configuration only includes objects that meet the filter's criteria." - }, - "Id": { - "type": "string", - "description": "The ID used to identify the metrics configuration. This can be any value you choose that helps you identify your metrics configuration." - }, - "Prefix": { - "type": "string", - "description": "The prefix that an object must have to be included in the metrics results." - }, - "TagFilters": { - "type": "array", - "uniqueItems": true, - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TagFilter" - }, - "description": "Specifies a list of tag filters to use as a metrics configuration filter. The metrics configuration includes only objects that meet the filter's criteria." - } - }, - "required": [ - "Id" - ], - "description": "Specifies a metrics configuration for the CloudWatch request metrics (specified by the metrics configuration ID) from an Amazon S3 bucket. If you're updating an existing metrics configuration, note that this is a full replacement of the existing metrics configuration. If you don't include the elements you want to keep, they are erased. For examples, see [AWS::S3::Bucket](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#aws-properties-s3-bucket--examples). For more information, see [PUT Bucket metrics](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html) in the *Amazon S3 API Reference*." - }, - "NotificationConfiguration": { - "description": "Describes the notification configuration for an Amazon S3 bucket.\n If you create the target resource and related permissions in the same template, you might have a circular dependency.\n For example, you might use the ``AWS::Lambda::Permission`` resource to grant the bucket permission to invoke an AWS Lambda function. However, AWS CloudFormation can't create the bucket until the bucket has permission to invoke the function (AWS CloudFormation checks whether the bucket can invoke the function). If you're using Refs to pass the bucket name, this leads to a circular dependency.\n To avoid this dependency, you can create all resources without specifying the notification configuration. Then, update the stack with a notification configuration.\n For more information on permissions, see [AWS::Lambda::Permission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html) and [Granting Permissions to Publish Event Notification Messages to a Destination](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html#grant-destinations-permissions-to-s3).", "type": "object", - "additionalProperties": false, "properties": { - "EventBridgeConfiguration": { - "$ref": "#/definitions/EventBridgeConfiguration", - "description": "Enables delivery of events to Amazon EventBridge." - }, - "LambdaConfigurations": { - "type": "array", - "uniqueItems": true, - "insertionOrder": true, - "items": { - "$ref": "#/definitions/LambdaConfiguration" - }, - "description": "Describes the LAMlong functions to invoke and the events for which to invoke them." - }, - "QueueConfigurations": { - "type": "array", - "uniqueItems": true, - "insertionOrder": true, - "items": { - "$ref": "#/definitions/QueueConfiguration" - }, - "description": "The Amazon Simple Queue Service queues to publish messages to and the events for which to publish messages." + "Protocol": { + "description": "Protocol to use when redirecting requests. The default is the protocol that is used in the original request.", + "type": "string", + "enum": [ + "http", + "https" + ] }, - "TopicConfigurations": { - "type": "array", - "uniqueItems": true, - "insertionOrder": true, - "items": { - "$ref": "#/definitions/TopicConfiguration" - }, - "description": "The topic to which notifications are sent and the events for which notifications are generated." - } - } - }, - "EventBridgeConfiguration": { - "type": "object", - "description": "Amazon S3 can send events to Amazon EventBridge whenever certain events happen in your bucket, see [Using EventBridge](https://docs.aws.amazon.com/AmazonS3/latest/userguide/EventBridge.html) in the *Amazon S3 User Guide*.\n Unlike other destinations, delivery of events to EventBridge can be either enabled or disabled for a bucket. If enabled, all events will be sent to EventBridge and you can use EventBridge rules to route events to additional targets. For more information, see [What Is Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) in the *Amazon EventBridge User Guide*", - "additionalProperties": false, - "properties": { - "EventBridgeEnabled": { - "description": "Enables delivery of events to Amazon EventBridge.", - "type": "boolean", - "default": "true" + "HostName": { + "description": "Name of the host where requests are redirected.", + "type": "string" } }, "required": [ - "EventBridgeEnabled" + "HostName" ] }, - "LambdaConfiguration": { - "type": "object", - "description": "Describes the LAMlong functions to invoke and the events for which to invoke them.", + "TagFilter": { + "description": "Specifies tags to use to identify a subset of objects for an Amazon S3 bucket.", "additionalProperties": false, + "type": "object", "properties": { - "Event": { - "description": "The Amazon S3 bucket event for which to invoke the LAMlong function. For more information, see [Supported Event Types](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*.", + "Value": { + "description": "The tag value.", "type": "string" }, - "Filter": { - "description": "The filtering rules that determine which objects invoke the AWS Lambda function. For example, you can create a filter so that only image files with a ``.jpg`` extension invoke the function when they are added to the Amazon S3 bucket.", - "$ref": "#/definitions/NotificationFilter" - }, - "Function": { - "description": "The Amazon Resource Name (ARN) of the LAMlong function that Amazon S3 invokes when the specified event type occurs.", + "Key": { + "description": "The tag key.", "type": "string" } }, "required": [ - "Function", - "Event" + "Value", + "Key" ] }, - "QueueConfiguration": { - "type": "object", - "description": "Specifies the configuration for publishing messages to an Amazon Simple Queue Service (Amazon SQS) queue when Amazon S3 detects specified events.", + "WebsiteConfiguration": { + "description": "Specifies website configuration parameters for an Amazon S3 bucket.", "additionalProperties": false, + "type": "object", "properties": { - "Event": { - "description": "The Amazon S3 bucket event about which you want to publish messages to Amazon SQS. For more information, see [Supported Event Types](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*.", + "IndexDocument": { + "description": "The name of the index document for the website.", "type": "string" }, - "Filter": { - "description": "The filtering rules that determine which objects trigger notifications. For example, you can create a filter so that Amazon S3 sends notifications only when image files with a ``.jpg`` extension are added to the bucket. For more information, see [Configuring event notifications using object key name filtering](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/notification-how-to-filtering.html) in the *Amazon S3 User Guide*.", - "$ref": "#/definitions/NotificationFilter" + "RedirectAllRequestsTo": { + "description": "The redirect behavior for every request to this bucket's website endpoint.\n If you specify this property, you can't specify any other property.", + "$ref": "#/definitions/RedirectAllRequestsTo" }, - "Queue": { - "description": "The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3 publishes a message when it detects events of the specified type. FIFO queues are not allowed when enabling an SQS queue as the event notification destination.", + "RoutingRules": { + "description": "Rules that define when a redirect is applied and the redirect behavior.", + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/RoutingRule" + } + }, + "ErrorDocument": { + "description": "The name of the error document for the website.", "type": "string" } - }, - "required": [ - "Event", - "Queue" - ] + } }, "TopicConfiguration": { - "type": "object", "description": "A container for specifying the configuration for publication of messages to an Amazon Simple Notification Service (Amazon SNS) topic when Amazon S3 detects specified events.", "additionalProperties": false, - "properties": { - "Event": { - "description": "The Amazon S3 bucket event about which to send notifications. For more information, see [Supported Event Types](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*.", - "type": "string" - }, + "type": "object", + "properties": { "Filter": { "description": "The filtering rules that determine for which objects to send notifications. For example, you can create a filter so that Amazon S3 sends notifications only when image files with a ``.jpg`` extension are added to the bucket.", "$ref": "#/definitions/NotificationFilter" }, + "Event": { + "description": "The Amazon S3 bucket event about which to send notifications. For more information, see [Supported Event Types](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*.", + "type": "string" + }, "Topic": { "description": "The Amazon Resource Name (ARN) of the Amazon SNS topic to which Amazon S3 publishes a message when it detects events of the specified type.", "type": "string" @@ -1025,324 +912,350 @@ "Topic" ] }, - "NotificationFilter": { - "type": "object", - "description": "Specifies object key name filtering rules. For information about key name filtering, see [Configuring event notifications using object key name filtering](https://docs.aws.amazon.com/AmazonS3/latest/userguide/notification-how-to-filtering.html) in the *Amazon S3 User Guide*.", + "IntelligentTieringConfiguration": { + "description": "Specifies the S3 Intelligent-Tiering configuration for an Amazon S3 bucket.\n For information about the S3 Intelligent-Tiering storage class, see [Storage class for automatically optimizing frequently and infrequently accessed objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access).", "additionalProperties": false, - "properties": { - "S3Key": { - "$ref": "#/definitions/S3KeyFilter", - "description": "A container for object key name prefix and suffix filtering rules." - } - }, - "required": [ - "S3Key" - ] - }, - "S3KeyFilter": { "type": "object", - "description": "A container for object key name prefix and suffix filtering rules. For more information about object key name filtering, see [Configuring event notifications using object key name filtering](https://docs.aws.amazon.com/AmazonS3/latest/userguide/notification-how-to-filtering.html) in the *Amazon S3 User Guide*.\n The same type of filter rule cannot be used more than once. For example, you cannot specify two prefix rules.", - "additionalProperties": false, "properties": { - "Rules": { + "Status": { + "description": "Specifies the status of the configuration.", + "type": "string", + "enum": [ + "Disabled", + "Enabled" + ] + }, + "Tierings": { + "uniqueItems": true, + "description": "Specifies a list of S3 Intelligent-Tiering storage class tiers in the configuration. At least one tier must be defined in the list. At most, you can specify two tiers in the list, one for each available AccessTier: ``ARCHIVE_ACCESS`` and ``DEEP_ARCHIVE_ACCESS``.\n You only need Intelligent Tiering Configuration enabled on a bucket if you want to automatically move objects stored in the Intelligent-Tiering storage class to Archive Access or Deep Archive Access tiers.", + "insertionOrder": true, "type": "array", + "items": { + "$ref": "#/definitions/Tiering" + } + }, + "TagFilters": { "uniqueItems": true, - "insertionOrder": false, + "description": "A container for a key-value pair.", + "insertionOrder": true, + "type": "array", "items": { - "$ref": "#/definitions/FilterRule" - }, - "description": "A list of containers for the key-value pair that defines the criteria for the filter rule." + "$ref": "#/definitions/TagFilter" + } + }, + "Id": { + "description": "The ID used to identify the S3 Intelligent-Tiering configuration.", + "type": "string" + }, + "Prefix": { + "description": "An object key name prefix that identifies the subset of objects to which the rule applies.", + "type": "string" } }, "required": [ - "Rules" + "Id", + "Status", + "Tierings" ] }, - "FilterRule": { - "type": "object", - "description": "Specifies the Amazon S3 object key name to filter on. An object key name is the name assigned to an object in your Amazon S3 bucket. You specify whether to filter on the suffix or prefix of the object key name. A prefix is a specific string of characters at the beginning of an object key name, which you can use to organize objects. For example, you can start the key names of related objects with a prefix, such as ``2023-`` or ``engineering/``. Then, you can use ``FilterRule`` to find objects in a bucket with key names that have the same prefix. A suffix is similar to a prefix, but it is at the end of the object key name instead of at the beginning.", + "PublicAccessBlockConfiguration": { + "description": "The PublicAccessBlock configuration that you want to apply to this Amazon S3 bucket. You can enable the configuration options in any combination. For more information about when Amazon S3 considers a bucket or object public, see [The Meaning of \"Public\"](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) in the *Amazon S3 User Guide*.", "additionalProperties": false, + "type": "object", "properties": { - "Name": { - "type": "string", - "maxLength": 1024, - "description": "The object key name prefix or suffix identifying one or more objects to which the filtering rule applies. The maximum length is 1,024 characters. Overlapping prefixes and suffixes are not supported. For more information, see [Configuring Event Notifications](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*." + "RestrictPublicBuckets": { + "description": "Specifies whether Amazon S3 should restrict public bucket policies for this bucket. Setting this element to ``TRUE`` restricts access to this bucket to only AWS-service principals and authorized users within this account if the bucket has a public policy.\n Enabling this setting doesn't affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked.", + "type": "boolean" }, - "Value": { - "type": "string", - "description": "The value that the filter searches for in object key names." + "BlockPublicPolicy": { + "description": "Specifies whether Amazon S3 should block public bucket policies for this bucket. Setting this element to ``TRUE`` causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access. \n Enabling this setting doesn't affect existing bucket policies.", + "type": "boolean" + }, + "BlockPublicAcls": { + "description": "Specifies whether Amazon S3 should block public access control lists (ACLs) for this bucket and objects in this bucket. Setting this element to ``TRUE`` causes the following behavior:\n + PUT Bucket ACL and PUT Object ACL calls fail if the specified ACL is public.\n + PUT Object calls fail if the request includes a public ACL.\n + PUT Bucket calls fail if the request includes a public ACL.\n \n Enabling this setting doesn't affect existing policies or ACLs.", + "type": "boolean" + }, + "IgnorePublicAcls": { + "description": "Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket. Setting this element to ``TRUE`` causes Amazon S3 to ignore all public ACLs on this bucket and objects in this bucket.\n Enabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set.", + "type": "boolean" } - }, - "required": [ - "Value", - "Name" - ] + } }, - "ObjectLockConfiguration": { - "type": "object", + "NoncurrentVersionTransition": { + "description": "Container for the transition rule that describes when noncurrent objects transition to the ``STANDARD_IA``, ``ONEZONE_IA``, ``INTELLIGENT_TIERING``, ``GLACIER_IR``, ``GLACIER``, or ``DEEP_ARCHIVE`` storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to the ``STANDARD_IA``, ``ONEZONE_IA``, ``INTELLIGENT_TIERING``, ``GLACIER_IR``, ``GLACIER``, or ``DEEP_ARCHIVE`` storage class at a specific period in the object's lifetime. If you specify this property, don't specify the ``NoncurrentVersionTransitions`` property.", "additionalProperties": false, + "type": "object", "properties": { - "ObjectLockEnabled": { + "StorageClass": { + "description": "The class of storage used to store the object.", "type": "string", - "const": "Enabled", - "description": "Indicates whether this bucket has an Object Lock configuration enabled. Enable ``ObjectLockEnabled`` when you apply ``ObjectLockConfiguration`` to a bucket." + "enum": [ + "DEEP_ARCHIVE", + "GLACIER", + "Glacier", + "GLACIER_IR", + "INTELLIGENT_TIERING", + "ONEZONE_IA", + "STANDARD_IA" + ] }, - "Rule": { - "$ref": "#/definitions/ObjectLockRule", - "description": "Specifies the Object Lock rule for the specified object. Enable this rule when you apply ``ObjectLockConfiguration`` to a bucket. If Object Lock is turned on, bucket settings require both ``Mode`` and a period of either ``Days`` or ``Years``. You cannot specify ``Days`` and ``Years`` at the same time. For more information, see [ObjectLockRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-objectlockrule.html) and [DefaultRetention](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-defaultretention.html)." + "TransitionInDays": { + "description": "Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see [How Amazon S3 Calculates How Long an Object Has Been Noncurrent](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) in the *Amazon S3 User Guide*.", + "type": "integer" + }, + "NewerNoncurrentVersions": { + "description": "Specifies how many noncurrent versions S3 will retain. If there are this many more recent noncurrent versions, S3 will take the associated action. For more information about noncurrent versions, see [Lifecycle configuration elements](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html) in the *Amazon S3 User Guide*.", + "type": "integer" } }, - "description": "Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see [Locking Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html)." + "required": [ + "StorageClass", + "TransitionInDays" + ] }, - "ObjectLockRule": { - "type": "object", - "description": "Specifies the Object Lock rule for the specified object. Enable the this rule when you apply ``ObjectLockConfiguration`` to a bucket.", + "StorageClassAnalysis": { + "description": "Specifies data related to access patterns to be collected and made available to analyze the tradeoffs between different storage classes for an Amazon S3 bucket.", "additionalProperties": false, + "type": "object", "properties": { - "DefaultRetention": { - "$ref": "#/definitions/DefaultRetention", - "description": "The default Object Lock retention mode and period that you want to apply to new objects placed in the specified bucket. If Object Lock is turned on, bucket settings require both ``Mode`` and a period of either ``Days`` or ``Years``. You cannot specify ``Days`` and ``Years`` at the same time. For more information about allowable values for mode and period, see [DefaultRetention](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-defaultretention.html)." + "DataExport": { + "description": "Specifies how data related to the storage class analysis for an Amazon S3 bucket should be exported.", + "$ref": "#/definitions/DataExport" } } }, - "DefaultRetention": { - "type": "object", - "description": "The container element for optionally specifying the default Object Lock retention settings for new objects placed in the specified bucket.\n + The ``DefaultRetention`` settings require both a mode and a period.\n + The ``DefaultRetention`` period can be either ``Days`` or ``Years`` but you must select one. You cannot specify ``Days`` and ``Years`` at the same time.", + "ServerSideEncryptionByDefault": { + "description": "Describes the default server-side encryption to apply to new objects in the bucket. If a PUT Object request doesn't specify any server-side encryption, this default encryption will be applied. If you don't specify a customer managed key at configuration, Amazon S3 automatically creates an AWS KMS key in your AWS account the first time that you add an object encrypted with SSE-KMS to a bucket. By default, Amazon S3 uses this KMS key for SSE-KMS. For more information, see [PUT Bucket encryption](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html) in the *Amazon S3 API Reference*.\n If you're specifying a customer managed KMS key, we recommend using a fully qualified KMS key ARN. If you use a KMS key alias instead, then KMS resolves the key within the requester\u2019s account. This behavior can result in data that's encrypted with a KMS key that belongs to the requester, and not the bucket owner.", "additionalProperties": false, + "type": "object", "properties": { - "Years": { - "type": "integer", - "description": "The number of years that you want to specify for the default retention period. If Object Lock is turned on, you must specify ``Mode`` and specify either ``Days`` or ``Years``." - }, - "Days": { - "type": "integer", - "description": "The number of days that you want to specify for the default retention period. If Object Lock is turned on, you must specify ``Mode`` and specify either ``Days`` or ``Years``." - }, - "Mode": { + "SSEAlgorithm": { + "description": "Server-side encryption algorithm to use for the default encryption.", "type": "string", "enum": [ - "COMPLIANCE", - "GOVERNANCE" - ], - "description": "The default Object Lock retention mode you want to apply to new objects placed in the specified bucket. If Object Lock is turned on, you must specify ``Mode`` and specify either ``Days`` or ``Years``." + "aws:kms", + "AES256", + "aws:kms:dsse" + ] + }, + "KMSMasterKeyID": { + "description": "AWS Key Management Service (KMS) customer AWS KMS key ID to use for the default encryption. This parameter is allowed if and only if ``SSEAlgorithm`` is set to ``aws:kms`` or ``aws:kms:dsse``.\n You can specify the key ID, key alias, or the Amazon Resource Name (ARN) of the KMS key.\n + Key ID: ``1234abcd-12ab-34cd-56ef-1234567890ab`` \n + Key ARN: ``arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`` \n + Key Alias: ``alias/alias-name`` \n \n If you use a key ID, you can run into a LogDestination undeliverable error when creating a VPC flow log. \n If you are using encryption with cross-account or AWS service operations you must use a fully qualified KMS key ARN. For more information, see [Using encryption for cross-account operations](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy).\n Amazon S3 only supports symmetric encryption KMS keys. For more information, see [Asymmetric keys in KMS](https://docs.aws.amazon.com//kms/latest/developerguide/symmetric-asymmetric.html) in the *Key Management Service Developer Guide*.", + "type": "string" } - } + }, + "required": [ + "SSEAlgorithm" + ] }, - "OwnershipControls": { - "type": "object", + "MetricsConfiguration": { + "description": "Specifies a metrics configuration for the CloudWatch request metrics (specified by the metrics configuration ID) from an Amazon S3 bucket. If you're updating an existing metrics configuration, note that this is a full replacement of the existing metrics configuration. If you don't include the elements you want to keep, they are erased. For examples, see [AWS::S3::Bucket](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#aws-properties-s3-bucket--examples). For more information, see [PUT Bucket metrics](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html) in the *Amazon S3 API Reference*.", "additionalProperties": false, + "type": "object", "properties": { - "Rules": { - "type": "array", + "AccessPointArn": { + "description": "The access point that was used while performing operations on the object. The metrics configuration only includes objects that meet the filter's criteria.", + "type": "string" + }, + "TagFilters": { "uniqueItems": true, + "description": "Specifies a list of tag filters to use as a metrics configuration filter. The metrics configuration includes only objects that meet the filter's criteria.", "insertionOrder": true, + "type": "array", "items": { - "$ref": "#/definitions/OwnershipControlsRule" - }, - "description": "Specifies the container element for Object Ownership rules." + "$ref": "#/definitions/TagFilter" + } + }, + "Id": { + "description": "The ID used to identify the metrics configuration. This can be any value you choose that helps you identify your metrics configuration.", + "type": "string" + }, + "Prefix": { + "description": "The prefix that an object must have to be included in the metrics results.", + "type": "string" } }, "required": [ - "Rules" - ], - "description": "Specifies the container element for Object Ownership rules.\n S3 Object Ownership is an Amazon S3 bucket-level setting that you can use to disable access control lists (ACLs) and take ownership of every object in your bucket, simplifying access management for data stored in Amazon S3. For more information, see [Controlling ownership of objects and disabling ACLs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) in the *Amazon S3 User Guide*." + "Id" + ] }, - "OwnershipControlsRule": { - "type": "object", + "ObjectLockConfiguration": { + "description": "Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see [Locking Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html).", "additionalProperties": false, + "type": "object", "properties": { - "ObjectOwnership": { - "description": "Specifies an object ownership rule.", - "type": "string", - "enum": [ - "ObjectWriter", - "BucketOwnerPreferred", - "BucketOwnerEnforced" - ] + "ObjectLockEnabled": { + "const": "Enabled", + "description": "Indicates whether this bucket has an Object Lock configuration enabled. Enable ``ObjectLockEnabled`` when you apply ``ObjectLockConfiguration`` to a bucket.", + "type": "string" + }, + "Rule": { + "description": "Specifies the Object Lock rule for the specified object. Enable this rule when you apply ``ObjectLockConfiguration`` to a bucket. If Object Lock is turned on, bucket settings require both ``Mode`` and a period of either ``Days`` or ``Years``. You cannot specify ``Days`` and ``Years`` at the same time. For more information, see [ObjectLockRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-objectlockrule.html) and [DefaultRetention](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-defaultretention.html).", + "$ref": "#/definitions/ObjectLockRule" } - }, - "description": "Specifies an Object Ownership rule.\n S3 Object Ownership is an Amazon S3 bucket-level setting that you can use to disable access control lists (ACLs) and take ownership of every object in your bucket, simplifying access management for data stored in Amazon S3. For more information, see [Controlling ownership of objects and disabling ACLs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) in the *Amazon S3 User Guide*." + } }, - "PublicAccessBlockConfiguration": { - "description": "The PublicAccessBlock configuration that you want to apply to this Amazon S3 bucket. You can enable the configuration options in any combination. For more information about when Amazon S3 considers a bucket or object public, see [The Meaning of \"Public\"](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) in the *Amazon S3 User Guide*.", - "type": "object", + "LoggingConfiguration": { + "description": "Describes where logs are stored and the prefix that Amazon S3 assigns to all log object keys for a bucket. For examples and more information, see [PUT Bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html) in the *Amazon S3 API Reference*.\n To successfully complete the ``AWS::S3::Bucket LoggingConfiguration`` request, you must have ``s3:PutObject`` and ``s3:PutObjectAcl`` in your IAM permissions.", "additionalProperties": false, + "type": "object", "properties": { - "BlockPublicAcls": { - "type": "boolean", - "description": "Specifies whether Amazon S3 should block public access control lists (ACLs) for this bucket and objects in this bucket. Setting this element to ``TRUE`` causes the following behavior:\n + PUT Bucket ACL and PUT Object ACL calls fail if the specified ACL is public.\n + PUT Object calls fail if the request includes a public ACL.\n + PUT Bucket calls fail if the request includes a public ACL.\n \n Enabling this setting doesn't affect existing policies or ACLs." - }, - "BlockPublicPolicy": { - "type": "boolean", - "description": "Specifies whether Amazon S3 should block public bucket policies for this bucket. Setting this element to ``TRUE`` causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access. \n Enabling this setting doesn't affect existing bucket policies." + "TargetObjectKeyFormat": { + "description": "Amazon S3 key format for log objects. Only one format, either PartitionedPrefix or SimplePrefix, is allowed.", + "$ref": "#/definitions/TargetObjectKeyFormat" }, - "IgnorePublicAcls": { - "type": "boolean", - "description": "Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket. Setting this element to ``TRUE`` causes Amazon S3 to ignore all public ACLs on this bucket and objects in this bucket.\n Enabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set." + "LogFilePrefix": { + "description": "A prefix for all log object keys. If you store log files from multiple Amazon S3 buckets in a single bucket, you can use a prefix to distinguish which log files came from which bucket.", + "type": "string" }, - "RestrictPublicBuckets": { - "type": "boolean", - "description": "Specifies whether Amazon S3 should restrict public bucket policies for this bucket. Setting this element to ``TRUE`` restricts access to this bucket to only AWS-service principals and authorized users within this account if the bucket has a public policy.\n Enabling this setting doesn't affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked." + "DestinationBucketName": { + "description": "The name of the bucket where Amazon S3 should store server access log files. You can store log files in any bucket that you own. By default, logs are stored in the bucket where the ``LoggingConfiguration`` property is defined.", + "type": "string" } } }, - "ReplicationConfiguration": { - "type": "object", - "description": "A container for replication rules. You can add up to 1,000 rules. The maximum size of a replication configuration is 2 MB. The latest version of the replication configuration XML is V2. For more information about XML V2 replication configurations, see [Replication configuration](https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication-add-config.html) in the *Amazon S3 User Guide*.", + "LambdaConfiguration": { + "description": "Describes the LAMlong functions to invoke and the events for which to invoke them.", "additionalProperties": false, + "type": "object", "properties": { - "Role": { - "description": "The Amazon Resource Name (ARN) of the IAMlong (IAM) role that Amazon S3 assumes when replicating objects. For more information, see [How to Set Up Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-how-setup.html) in the *Amazon S3 User Guide*.", + "Function": { + "description": "The Amazon Resource Name (ARN) of the LAMlong function that Amazon S3 invokes when the specified event type occurs.", "type": "string" }, - "Rules": { - "description": "A container for one or more replication rules. A replication configuration must have at least one rule and can contain a maximum of 1,000 rules.", - "type": "array", - "uniqueItems": true, - "insertionOrder": true, - "items": { - "$ref": "#/definitions/ReplicationRule", - "maxLength": 1000, - "minLength": 1 - } + "Filter": { + "description": "The filtering rules that determine which objects invoke the AWS Lambda function. For example, you can create a filter so that only image files with a ``.jpg`` extension invoke the function when they are added to the Amazon S3 bucket.", + "$ref": "#/definitions/NotificationFilter" + }, + "Event": { + "description": "The Amazon S3 bucket event for which to invoke the LAMlong function. For more information, see [Supported Event Types](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*.", + "type": "string" } }, "required": [ - "Role", - "Rules" + "Function", + "Event" ] }, - "ReplicationRule": { + "DataExport": { + "description": "Specifies how data related to the storage class analysis for an Amazon S3 bucket should be exported.", + "additionalProperties": false, "type": "object", - "description": "Specifies which Amazon S3 objects to replicate and where to store the replicas.", + "properties": { + "Destination": { + "description": "The place to store the data for an analysis.", + "$ref": "#/definitions/Destination" + }, + "OutputSchemaVersion": { + "const": "V_1", + "description": "The version of the output schema to use when exporting data. Must be ``V_1``.", + "type": "string" + } + }, + "required": [ + "Destination", + "OutputSchemaVersion" + ] + }, + "Tiering": { + "description": "The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without additional operational overhead.", "additionalProperties": false, + "type": "object", "properties": { - "DeleteMarkerReplication": { - "$ref": "#/definitions/DeleteMarkerReplication", - "description": "Specifies whether Amazon S3 replicates delete markers. If you specify a ``Filter`` in your replication configuration, you must also include a ``DeleteMarkerReplication`` element. If your ``Filter`` includes a ``Tag`` element, the ``DeleteMarkerReplication`` ``Status`` must be set to Disabled, because Amazon S3 does not support replicating delete markers for tag-based rules. For an example configuration, see [Basic Rule Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config). \n For more information about delete marker replication, see [Basic Rule Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html). \n If you are using an earlier version of the replication configuration, Amazon S3 handles replication of delete markers differently. For more information, see [Backward Compatibility](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations)." - }, - "Destination": { - "$ref": "#/definitions/ReplicationDestination", - "description": "A container for information about the replication destination and its configurations including enabling the S3 Replication Time Control (S3 RTC)." - }, - "Filter": { - "$ref": "#/definitions/ReplicationRuleFilter", - "description": "A filter that identifies the subset of objects to which the replication rule applies. A ``Filter`` must specify exactly one ``Prefix``, ``TagFilter``, or an ``And`` child element. The use of the filter field indicates that this is a V2 replication configuration. This field isn't supported in a V1 replication configuration.\n V1 replication configuration only supports filtering by key prefix. To filter using a V1 replication configuration, add the ``Prefix`` directly as a child element of the ``Rule`` element." - }, - "Id": { - "description": "A unique identifier for the rule. The maximum value is 255 characters. If you don't specify a value, AWS CloudFormation generates a random ID. When using a V2 replication configuration this property is capitalized as \"ID\".", - "type": "string", - "maxLength": 255 - }, - "Prefix": { - "description": "An object key name prefix that identifies the object or objects to which the rule applies. The maximum prefix length is 1,024 characters. To include all objects in a bucket, specify an empty string. To filter using a V1 replication configuration, add the ``Prefix`` directly as a child element of the ``Rule`` element.\n Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints).", - "type": "string", - "maxLength": 1024 - }, - "Priority": { - "type": "integer", - "description": "The priority indicates which rule has precedence whenever two or more replication rules conflict. Amazon S3 will attempt to replicate objects according to all replication rules. However, if there are two or more rules with the same destination bucket, then objects will be replicated according to the rule with the highest priority. The higher the number, the higher the priority. \n For more information, see [Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) in the *Amazon S3 User Guide*." - }, - "SourceSelectionCriteria": { - "$ref": "#/definitions/SourceSelectionCriteria", - "description": "A container that describes additional filters for identifying the source objects that you want to replicate. You can choose to enable or disable the replication of these objects." - }, - "Status": { - "description": "Specifies whether the rule is enabled.", + "AccessTier": { + "description": "S3 Intelligent-Tiering access tier. See [Storage class for automatically optimizing frequently and infrequently accessed objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access) for a list of access tiers in the S3 Intelligent-Tiering storage class.", "type": "string", "enum": [ - "Disabled", - "Enabled" + "ARCHIVE_ACCESS", + "DEEP_ARCHIVE_ACCESS" ] + }, + "Days": { + "description": "The number of consecutive days of no access after which an object will be eligible to be transitioned to the corresponding tier. The minimum number of days specified for Archive Access tier must be at least 90 days and Deep Archive Access tier must be at least 180 days. The maximum can be up to 2 years (730 days).", + "type": "integer" } }, "required": [ - "Destination", - "Status" + "AccessTier", + "Days" ] }, - "DeleteMarkerReplication": { - "type": "object", + "ReplicationTime": { + "description": "A container specifying S3 Replication Time Control (S3 RTC) related information, including whether S3 RTC is enabled and the time when all objects and operations on objects must be replicated. Must be specified together with a ``Metrics`` block.", "additionalProperties": false, + "type": "object", "properties": { "Status": { + "description": "Specifies whether the replication time is enabled.", "type": "string", "enum": [ "Disabled", "Enabled" - ], - "description": "Indicates whether to replicate delete markers. Disabled by default." + ] + }, + "Time": { + "description": "A container specifying the time by which replication should be complete for all objects and operations on objects.", + "$ref": "#/definitions/ReplicationTimeValue" } }, - "description": "Specifies whether Amazon S3 replicates delete markers. If you specify a ``Filter`` in your replication configuration, you must also include a ``DeleteMarkerReplication`` element. If your ``Filter`` includes a ``Tag`` element, the ``DeleteMarkerReplication`` ``Status`` must be set to Disabled, because Amazon S3 does not support replicating delete markers for tag-based rules. For an example configuration, see [Basic Rule Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config). \n For more information about delete marker replication, see [Basic Rule Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html). \n If you are using an earlier version of the replication configuration, Amazon S3 handles replication of delete markers differently. For more information, see [Backward Compatibility](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations)." + "required": [ + "Status", + "Time" + ] }, - "ReplicationDestination": { - "type": "object", - "description": "A container for information about the replication destination and its configurations including enabling the S3 Replication Time Control (S3 RTC).", + "ReplicationRuleFilter": { + "description": "A filter that identifies the subset of objects to which the replication rule applies. A ``Filter`` must specify exactly one ``Prefix``, ``TagFilter``, or an ``And`` child element.", "additionalProperties": false, + "type": "object", "properties": { - "AccessControlTranslation": { - "$ref": "#/definitions/AccessControlTranslation", - "description": "Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the AWS-account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same AWS-account that owns the source object." - }, - "Account": { - "type": "string", - "description": "Destination bucket owner account ID. In a cross-account scenario, if you direct Amazon S3 to change replica ownership to the AWS-account that owns the destination bucket by specifying the ``AccessControlTranslation`` property, this is the account ID of the destination bucket owner. For more information, see [Cross-Region Replication Additional Configuration: Change Replica Owner](https://docs.aws.amazon.com/AmazonS3/latest/dev/crr-change-owner.html) in the *Amazon S3 User Guide*.\n If you specify the ``AccessControlTranslation`` property, the ``Account`` property is required." - }, - "Bucket": { - "type": "string", - "description": "The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to store the results." - }, - "EncryptionConfiguration": { - "$ref": "#/definitions/EncryptionConfiguration", - "description": "Specifies encryption-related information." - }, - "Metrics": { - "$ref": "#/definitions/Metrics", - "description": "A container specifying replication metrics-related settings enabling replication metrics and events." + "And": { + "description": "A container for specifying rule filters. The filters determine the subset of objects to which the rule applies. This element is required only if you specify more than one filter. For example: \n + If you specify both a ``Prefix`` and a ``TagFilter``, wrap these filters in an ``And`` tag.\n + If you specify a filter based on multiple tags, wrap the ``TagFilter`` elements in an ``And`` tag.", + "$ref": "#/definitions/ReplicationRuleAndOperator" }, - "ReplicationTime": { - "$ref": "#/definitions/ReplicationTime", - "description": "A container specifying S3 Replication Time Control (S3 RTC), including whether S3 RTC is enabled and the time when all objects and operations on objects must be replicated. Must be specified together with a ``Metrics`` block." + "TagFilter": { + "description": "A container for specifying a tag key and value. \n The rule applies only to objects that have the tag in their tag set.", + "$ref": "#/definitions/TagFilter" }, - "StorageClass": { - "description": "The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica. \n For valid values, see the ``StorageClass`` element of the [PUT Bucket replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) action in the *Amazon S3 API Reference*.", - "type": "string", - "enum": [ - "DEEP_ARCHIVE", - "GLACIER", - "GLACIER_IR", - "INTELLIGENT_TIERING", - "ONEZONE_IA", - "REDUCED_REDUNDANCY", - "STANDARD", - "STANDARD_IA" - ] + "Prefix": { + "description": "An object key name prefix that identifies the subset of objects to which the rule applies.\n Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints).", + "type": "string" } - }, - "required": [ - "Bucket" - ] + } }, - "AccessControlTranslation": { - "type": "object", - "description": "Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the AWS-account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same AWS-account that owns the source object.", + "RedirectRule": { + "description": "Specifies how requests are redirected. In the event of an error, you can specify a different error code to return.", "additionalProperties": false, + "type": "object", "properties": { - "Owner": { + "ReplaceKeyWith": { + "description": "The specific object key to use in the redirect request. For example, redirect request to ``error.html``. Not required if one of the siblings is present. Can be present only if ``ReplaceKeyPrefixWith`` is not provided.\n Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints).", + "type": "string" + }, + "HttpRedirectCode": { + "description": "The HTTP redirect code to use on the response. Not required if one of the siblings is present.", + "type": "string" + }, + "Protocol": { + "description": "Protocol to use when redirecting requests. The default is the protocol that is used in the original request.", "type": "string", - "const": "Destination", - "description": "Specifies the replica ownership. For default and valid values, see [PUT bucket replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) in the *Amazon S3 API Reference*." + "enum": [ + "http", + "https" + ] + }, + "HostName": { + "description": "The host name to use in the redirect request.", + "type": "string" + }, + "ReplaceKeyPrefixWith": { + "description": "The object key prefix to use in the redirect request. For example, to redirect requests for all pages with prefix ``docs/`` (objects in the ``docs/`` folder) to ``documents/``, you can set a condition block with ``KeyPrefixEquals`` set to ``docs/`` and in the Redirect set ``ReplaceKeyPrefixWith`` to ``/documents``. Not required if one of the siblings is present. Can be present only if ``ReplaceKeyWith`` is not provided.\n Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints).", + "type": "string" } - }, - "required": [ - "Owner" - ] + } }, "EncryptionConfiguration": { - "type": "object", - "description": "Specifies encryption-related information for an Amazon S3 bucket that is a destination for replicated objects.", + "description": "Specifies encryption-related information for an Amazon S3 bucket that is a destination for replicated objects.\n If you're specifying a customer managed KMS key, we recommend using a fully qualified KMS key ARN. If you use a KMS key alias instead, then KMS resolves the key within the requester\u2019s account. This behavior can result in data that's encrypted with a KMS key that belongs to the requester, and not the bucket owner.", "additionalProperties": false, + "type": "object", "properties": { "ReplicaKmsKeyID": { "description": "Specifies the ID (Key ARN or Alias ARN) of the customer managed AWS KMS key stored in AWS Key Management Service (KMS) for the destination bucket. Amazon S3 uses this key to encrypt replica objects. Amazon S3 only supports symmetric encryption KMS keys. For more information, see [Asymmetric keys in KMS](https://docs.aws.amazon.com//kms/latest/developerguide/symmetric-asymmetric.html) in the *Key Management Service Developer Guide*.", @@ -1353,189 +1266,224 @@ "ReplicaKmsKeyID" ] }, - "Metrics": { - "type": "object", + "BucketEncryption": { + "description": "Specifies default encryption for a bucket using server-side encryption with Amazon S3-managed keys (SSE-S3), AWS KMS-managed keys (SSE-KMS), or dual-layer server-side encryption with KMS-managed keys (DSSE-KMS). For information about the Amazon S3 default encryption feature, see [Amazon S3 Default Encryption for S3 Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) in the *Amazon S3 User Guide*.", "additionalProperties": false, + "type": "object", "properties": { - "EventThreshold": { - "$ref": "#/definitions/ReplicationTimeValue", - "description": "A container specifying the time threshold for emitting the ``s3:Replication:OperationMissedThreshold`` event." - }, - "Status": { - "type": "string", - "enum": [ - "Disabled", - "Enabled" - ], - "description": "Specifies whether the replication metrics are enabled." + "ServerSideEncryptionConfiguration": { + "uniqueItems": true, + "description": "Specifies the default server-side-encryption configuration.", + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/ServerSideEncryptionRule" + } } }, "required": [ - "Status" - ], - "description": "A container specifying replication metrics-related settings enabling replication metrics and events." + "ServerSideEncryptionConfiguration" + ] }, - "ReplicationTimeValue": { - "type": "object", + "NotificationConfiguration": { + "description": "Describes the notification configuration for an Amazon S3 bucket.\n If you create the target resource and related permissions in the same template, you might have a circular dependency.\n For example, you might use the ``AWS::Lambda::Permission`` resource to grant the bucket permission to invoke an AWS Lambda function. However, AWS CloudFormation can't create the bucket until the bucket has permission to invoke the function (AWS CloudFormation checks whether the bucket can invoke the function). If you're using Refs to pass the bucket name, this leads to a circular dependency.\n To avoid this dependency, you can create all resources without specifying the notification configuration. Then, update the stack with a notification configuration.\n For more information on permissions, see [AWS::Lambda::Permission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html) and [Granting Permissions to Publish Event Notification Messages to a Destination](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html#grant-destinations-permissions-to-s3).", "additionalProperties": false, + "type": "object", "properties": { - "Minutes": { - "type": "integer", - "description": "Contains an integer specifying time in minutes. \n Valid value: 15" + "TopicConfigurations": { + "uniqueItems": true, + "description": "The topic to which notifications are sent and the events for which notifications are generated.", + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/TopicConfiguration" + } + }, + "QueueConfigurations": { + "uniqueItems": true, + "description": "The Amazon Simple Queue Service queues to publish messages to and the events for which to publish messages.", + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/QueueConfiguration" + } + }, + "LambdaConfigurations": { + "uniqueItems": true, + "description": "Describes the LAMlong functions to invoke and the events for which to invoke them.", + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/LambdaConfiguration" + } + }, + "EventBridgeConfiguration": { + "description": "Enables delivery of events to Amazon EventBridge.", + "$ref": "#/definitions/EventBridgeConfiguration" } - }, - "required": [ - "Minutes" - ], - "description": "A container specifying the time value for S3 Replication Time Control (S3 RTC) and replication metrics ``EventThreshold``." + } }, - "ReplicationTime": { - "type": "object", + "LifecycleConfiguration": { + "description": "Specifies the lifecycle configuration for objects in an Amazon S3 bucket. For more information, see [Object Lifecycle Management](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) in the *Amazon S3 User Guide*.", "additionalProperties": false, + "type": "object", "properties": { - "Status": { - "type": "string", - "enum": [ - "Disabled", - "Enabled" - ], - "description": "Specifies whether the replication time is enabled." - }, - "Time": { - "$ref": "#/definitions/ReplicationTimeValue", - "description": "A container specifying the time by which replication should be complete for all objects and operations on objects." + "Rules": { + "uniqueItems": true, + "description": "A lifecycle rule for individual objects in an Amazon S3 bucket.", + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/Rule" + } } }, "required": [ - "Status", - "Time" - ], - "description": "A container specifying S3 Replication Time Control (S3 RTC) related information, including whether S3 RTC is enabled and the time when all objects and operations on objects must be replicated. Must be specified together with a ``Metrics`` block." + "Rules" + ] }, - "ReplicationRuleFilter": { - "type": "object", + "InventoryConfiguration": { + "description": "Specifies the inventory configuration for an Amazon S3 bucket. For more information, see [GET Bucket inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in the *Amazon S3 API Reference*.", "additionalProperties": false, + "type": "object", "properties": { - "And": { - "$ref": "#/definitions/ReplicationRuleAndOperator", - "description": "A container for specifying rule filters. The filters determine the subset of objects to which the rule applies. This element is required only if you specify more than one filter. For example: \n + If you specify both a ``Prefix`` and a ``TagFilter``, wrap these filters in an ``And`` tag.\n + If you specify a filter based on multiple tags, wrap the ``TagFilter`` elements in an ``And`` tag." + "Destination": { + "description": "Contains information about where to publish the inventory results.", + "$ref": "#/definitions/Destination" + }, + "OptionalFields": { + "uniqueItems": true, + "description": "Contains the optional fields that are included in the inventory results.", + "insertionOrder": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "Size", + "LastModifiedDate", + "StorageClass", + "ETag", + "IsMultipartUploaded", + "ReplicationStatus", + "EncryptionStatus", + "ObjectLockRetainUntilDate", + "ObjectLockMode", + "ObjectLockLegalHoldStatus", + "IntelligentTieringAccessTier", + "BucketKeyStatus", + "ChecksumAlgorithm", + "ObjectAccessControlList", + "ObjectOwner" + ] + } + }, + "IncludedObjectVersions": { + "description": "Object versions to include in the inventory list. If set to ``All``, the list includes all the object versions, which adds the version-related fields ``VersionId``, ``IsLatest``, and ``DeleteMarker`` to the list. If set to ``Current``, the list does not contain these version-related fields.", + "type": "string", + "enum": [ + "All", + "Current" + ] + }, + "Enabled": { + "description": "Specifies whether the inventory is enabled or disabled. If set to ``True``, an inventory list is generated. If set to ``False``, no inventory list is generated.", + "type": "boolean" + }, + "Id": { + "description": "The ID used to identify the inventory configuration.", + "type": "string" }, "Prefix": { - "type": "string", - "description": "An object key name prefix that identifies the subset of objects to which the rule applies.\n Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints)." + "description": "Specifies the inventory filter prefix.", + "type": "string" }, - "TagFilter": { - "$ref": "#/definitions/TagFilter", - "description": "A container for specifying a tag key and value. \n The rule applies only to objects that have the tag in their tag set." + "ScheduleFrequency": { + "description": "Specifies the schedule for generating inventory results.", + "type": "string", + "enum": [ + "Daily", + "Weekly" + ] } }, - "description": "A filter that identifies the subset of objects to which the replication rule applies. A ``Filter`` must specify exactly one ``Prefix``, ``TagFilter``, or an ``And`` child element." + "required": [ + "Destination", + "Enabled", + "Id", + "IncludedObjectVersions", + "ScheduleFrequency" + ] }, "ReplicationRuleAndOperator": { - "type": "object", + "description": "A container for specifying rule filters. The filters determine the subset of objects to which the rule applies. This element is required only if you specify more than one filter. \n For example:\n + If you specify both a ``Prefix`` and a ``TagFilter``, wrap these filters in an ``And`` tag. \n + If you specify a filter based on multiple tags, wrap the ``TagFilter`` elements in an ``And`` tag", "additionalProperties": false, + "type": "object", "properties": { - "Prefix": { - "type": "string", - "description": "An object key name prefix that identifies the subset of objects to which the rule applies." - }, "TagFilters": { - "type": "array", "uniqueItems": true, + "description": "An array of tags containing key and value pairs.", "insertionOrder": true, + "type": "array", "items": { "$ref": "#/definitions/TagFilter" - }, - "description": "An array of tags containing key and value pairs." - } - }, - "description": "A container for specifying rule filters. The filters determine the subset of objects to which the rule applies. This element is required only if you specify more than one filter. \n For example:\n + If you specify both a ``Prefix`` and a ``TagFilter``, wrap these filters in an ``And`` tag. \n + If you specify a filter based on multiple tags, wrap the ``TagFilter`` elements in an ``And`` tag" - }, - "SourceSelectionCriteria": { - "description": "A container that describes additional filters for identifying the source objects that you want to replicate. You can choose to enable or disable the replication of these objects.", - "type": "object", - "additionalProperties": false, - "properties": { - "ReplicaModifications": { - "description": "A filter that you can specify for selection for modifications on replicas.", - "$ref": "#/definitions/ReplicaModifications" + } }, - "SseKmsEncryptedObjects": { - "description": "A container for filter information for the selection of Amazon S3 objects encrypted with AWS KMS.", - "$ref": "#/definitions/SseKmsEncryptedObjects" + "Prefix": { + "description": "An object key name prefix that identifies the subset of objects to which the rule applies.", + "type": "string" } } }, - "ReplicaModifications": { - "type": "object", + "VersioningConfiguration": { + "description": "Describes the versioning state of an Amazon S3 bucket. For more information, see [PUT Bucket versioning](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html) in the *Amazon S3 API Reference*.\n When you enable versioning on a bucket for the first time, it might take a short amount of time for the change to be fully propagated. We recommend that you wait for 15 minutes after enabling versioning before issuing write operations (``PUT`` or ``DELETE``) on objects in the bucket.", "additionalProperties": false, + "type": "object", "properties": { "Status": { - "description": "Specifies whether Amazon S3 replicates modifications on replicas.\n *Allowed values*: ``Enabled`` | ``Disabled``", + "default": "Suspended", + "description": "The versioning state of the bucket.", "type": "string", "enum": [ "Enabled", - "Disabled" + "Suspended" ] } }, "required": [ "Status" - ], - "description": "A filter that you can specify for selection for modifications on replicas." + ] }, - "SseKmsEncryptedObjects": { - "type": "object", - "description": "A container for filter information for the selection of S3 objects encrypted with AWS KMS.", + "CorsConfiguration": { + "description": "Describes the cross-origin access configuration for objects in an Amazon S3 bucket. For more information, see [Enabling Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the *Amazon S3 User Guide*.", "additionalProperties": false, + "type": "object", "properties": { - "Status": { - "description": "Specifies whether Amazon S3 replicates objects created with server-side encryption using an AWS KMS key stored in AWS Key Management Service.", - "type": "string", - "enum": [ - "Disabled", - "Enabled" - ] + "CorsRules": { + "uniqueItems": true, + "description": "A set of origins and methods (cross-origin access that you want to allow). You can add up to 100 rules to the configuration.", + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/CorsRule", + "maxLength": 100 + } } }, "required": [ - "Status" + "CorsRules" ] }, - "Tag": { - "type": "object", + "ReplicaModifications": { + "description": "A filter that you can specify for selection for modifications on replicas.", "additionalProperties": false, - "properties": { - "Key": { - "type": "string", - "minLength": 1, - "maxLength": 128, - "description": "Name of the object key." - }, - "Value": { - "type": "string", - "maxLength": 256, - "description": "Value of the tag." - } - }, - "required": [ - "Value", - "Key" - ], - "description": "A container of a key value name pair." - }, - "VersioningConfiguration": { - "description": "Describes the versioning state of an Amazon S3 bucket. For more information, see [PUT Bucket versioning](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html) in the *Amazon S3 API Reference*.", "type": "object", - "additionalProperties": false, "properties": { "Status": { - "description": "The versioning state of the bucket.", + "description": "Specifies whether Amazon S3 replicates modifications on replicas.\n *Allowed values*: ``Enabled`` | ``Disabled``", "type": "string", - "default": "Suspended", "enum": [ "Enabled", - "Suspended" + "Disabled" ] } }, @@ -1543,253 +1491,285 @@ "Status" ] }, - "WebsiteConfiguration": { - "type": "object", - "description": "Specifies website configuration parameters for an Amazon S3 bucket.", + "NoncurrentVersionExpiration": { + "description": "Specifies when noncurrent object versions expire. Upon expiration, S3 permanently deletes the noncurrent object versions. You set this lifecycle configuration action on a bucket that has versioning enabled (or suspended) to request that S3 delete noncurrent object versions at a specific period in the object's lifetime. For more information about setting a lifecycle rule configuration, see [AWS::S3::Bucket Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html).", "additionalProperties": false, + "type": "object", "properties": { - "ErrorDocument": { - "description": "The name of the error document for the website.", - "type": "string" - }, - "IndexDocument": { - "description": "The name of the index document for the website.", - "type": "string" - }, - "RoutingRules": { - "type": "array", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/RoutingRule" - }, - "description": "Rules that define when a redirect is applied and the redirect behavior." + "NoncurrentDays": { + "description": "Specifies the number of days an object is noncurrent before S3 can perform the associated action. For information about the noncurrent days calculations, see [How Amazon S3 Calculates When an Object Became Noncurrent](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) in the *Amazon S3 User Guide*.", + "type": "integer" }, - "RedirectAllRequestsTo": { - "$ref": "#/definitions/RedirectAllRequestsTo", - "description": "The redirect behavior for every request to this bucket's website endpoint.\n If you specify this property, you can't specify any other property." + "NewerNoncurrentVersions": { + "description": "Specifies how many noncurrent versions S3 will retain. If there are this many more recent noncurrent versions, S3 will take the associated action. For more information about noncurrent versions, see [Lifecycle configuration elements](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html) in the *Amazon S3 User Guide*.", + "type": "integer" } - } + }, + "required": [ + "NoncurrentDays" + ] }, - "RoutingRule": { - "description": "Specifies the redirect behavior and when a redirect is applied. For more information about routing rules, see [Configuring advanced conditional redirects](https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html#advanced-conditional-redirects) in the *Amazon S3 User Guide*.", - "type": "object", + "QueueConfiguration": { + "description": "Specifies the configuration for publishing messages to an Amazon Simple Queue Service (Amazon SQS) queue when Amazon S3 detects specified events.", "additionalProperties": false, + "type": "object", "properties": { - "RedirectRule": { - "description": "Container for redirect information. You can redirect requests to another host, to another page, or with another protocol. In the event of an error, you can specify a different error code to return.", - "$ref": "#/definitions/RedirectRule" + "Filter": { + "description": "The filtering rules that determine which objects trigger notifications. For example, you can create a filter so that Amazon S3 sends notifications only when image files with a ``.jpg`` extension are added to the bucket. For more information, see [Configuring event notifications using object key name filtering](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/notification-how-to-filtering.html) in the *Amazon S3 User Guide*.", + "$ref": "#/definitions/NotificationFilter" }, - "RoutingRuleCondition": { - "$ref": "#/definitions/RoutingRuleCondition", - "description": "A container for describing a condition that must be met for the specified redirect to apply. For example, 1. If request is for pages in the ``/docs`` folder, redirect to the ``/documents`` folder. 2. If request results in HTTP error 4xx, redirect request to another host where you might process the error." + "Event": { + "description": "The Amazon S3 bucket event about which you want to publish messages to Amazon SQS. For more information, see [Supported Event Types](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*.", + "type": "string" + }, + "Queue": { + "description": "The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3 publishes a message when it detects events of the specified type. FIFO queues are not allowed when enabling an SQS queue as the event notification destination.", + "type": "string" } }, "required": [ - "RedirectRule" + "Event", + "Queue" ] }, - "RedirectRule": { - "type": "object", - "description": "Specifies how requests are redirected. In the event of an error, you can specify a different error code to return.", + "Transition": { + "description": "Specifies when an object transitions to a specified storage class. For more information about Amazon S3 lifecycle configuration rules, see [Transitioning Objects Using Amazon S3 Lifecycle](https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-transition-general-considerations.html) in the *Amazon S3 User Guide*.", "additionalProperties": false, + "type": "object", "properties": { - "HostName": { - "description": "The host name to use in the redirect request.", - "type": "string" - }, - "HttpRedirectCode": { - "description": "The HTTP redirect code to use on the response. Not required if one of the siblings is present.", - "type": "string" + "TransitionDate": { + "description": "Indicates when objects are transitioned to the specified storage class. The date value must be in ISO 8601 format. The time is always midnight UTC.", + "$ref": "#/definitions/iso8601UTC" }, - "Protocol": { - "description": "Protocol to use when redirecting requests. The default is the protocol that is used in the original request.", + "StorageClass": { + "description": "The storage class to which you want the object to transition.", + "type": "string", "enum": [ - "http", - "https" - ], - "type": "string" - }, - "ReplaceKeyPrefixWith": { - "description": "The object key prefix to use in the redirect request. For example, to redirect requests for all pages with prefix ``docs/`` (objects in the ``docs/`` folder) to ``documents/``, you can set a condition block with ``KeyPrefixEquals`` set to ``docs/`` and in the Redirect set ``ReplaceKeyPrefixWith`` to ``/documents``. Not required if one of the siblings is present. Can be present only if ``ReplaceKeyWith`` is not provided.\n Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints).", - "type": "string" + "DEEP_ARCHIVE", + "GLACIER", + "Glacier", + "GLACIER_IR", + "INTELLIGENT_TIERING", + "ONEZONE_IA", + "STANDARD_IA" + ] }, - "ReplaceKeyWith": { - "description": "The specific object key to use in the redirect request. For example, redirect request to ``error.html``. Not required if one of the siblings is present. Can be present only if ``ReplaceKeyPrefixWith`` is not provided.\n Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints).", - "type": "string" + "TransitionInDays": { + "description": "Indicates the number of days after creation when objects are transitioned to the specified storage class. The value must be a positive integer.", + "type": "integer" } - } + }, + "required": [ + "StorageClass" + ] }, - "RoutingRuleCondition": { - "description": "A container for describing a condition that must be met for the specified redirect to apply. For example, 1. If request is for pages in the ``/docs`` folder, redirect to the ``/documents`` folder. 2. If request results in HTTP error 4xx, redirect request to another host where you might process the error.", - "type": "object", + "SseKmsEncryptedObjects": { + "description": "A container for filter information for the selection of S3 objects encrypted with AWS KMS.", "additionalProperties": false, + "type": "object", "properties": { - "KeyPrefixEquals": { - "description": "The object key name prefix when the redirect is applied. For example, to redirect requests for ``ExamplePage.html``, the key prefix will be ``ExamplePage.html``. To redirect request for all pages with the prefix ``docs/``, the key prefix will be ``/docs``, which identifies all objects in the docs/ folder.\n Required when the parent element ``Condition`` is specified and sibling ``HttpErrorCodeReturnedEquals`` is not specified. If both conditions are specified, both must be true for the redirect to be applied.", - "type": "string" - }, - "HttpErrorCodeReturnedEquals": { - "description": "The HTTP error code when the redirect is applied. In the event of an error, if the error code equals this value, then the specified redirect is applied.\n Required when parent element ``Condition`` is specified and sibling ``KeyPrefixEquals`` is not specified. If both are specified, then both must be true for the redirect to be applied.", - "type": "string" + "Status": { + "description": "Specifies whether Amazon S3 replicates objects created with server-side encryption using an AWS KMS key stored in AWS Key Management Service.", + "type": "string", + "enum": [ + "Disabled", + "Enabled" + ] } - } + }, + "required": [ + "Status" + ] }, - "RedirectAllRequestsTo": { - "description": "Specifies the redirect behavior of all requests to a website endpoint of an Amazon S3 bucket.", - "type": "object", + "Tag": { + "description": "A container of a key value name pair.", "additionalProperties": false, + "type": "object", "properties": { - "HostName": { - "description": "Name of the host where requests are redirected.", - "type": "string" + "Value": { + "description": "Value of the tag.", + "type": "string", + "maxLength": 256 }, - "Protocol": { - "description": "Protocol to use when redirecting requests. The default is the protocol that is used in the original request.", + "Key": { + "minLength": 1, + "description": "Name of the object key.", "type": "string", - "enum": [ - "http", - "https" - ] + "maxLength": 128 + } + }, + "required": [ + "Value", + "Key" + ] + }, + "AbortIncompleteMultipartUpload": { + "description": "Specifies the days since the initiation of an incomplete multipart upload that Amazon S3 will wait before permanently removing all parts of the upload. For more information, see [Stopping Incomplete Multipart Uploads Using a Bucket Lifecycle Policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config) in the *Amazon S3 User Guide*.", + "additionalProperties": false, + "type": "object", + "properties": { + "DaysAfterInitiation": { + "description": "Specifies the number of days after which Amazon S3 stops an incomplete multipart upload.", + "type": "integer", + "minimum": 0 } }, "required": [ - "HostName" + "DaysAfterInitiation" ] - }, - "Arn": { - "description": "the Amazon Resource Name (ARN) of the specified bucket.", - "type": "string" } }, - "tagging": { - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" - }, - "createOnlyProperties": [ - "/properties/BucketName" - ], - "primaryIdentifier": [ - "/properties/BucketName" - ], - "readOnlyProperties": [ - "/properties/Arn", - "/properties/DomainName", - "/properties/DualStackDomainName", - "/properties/RegionalDomainName", - "/properties/WebsiteURL" - ], - "writeOnlyProperties": [ - "/properties/AccessControl", - "/properties/LifecycleConfiguration/Rules/*/NoncurrentVersionExpirationInDays", - "/properties/LifecycleConfiguration/Rules/*/NoncurrentVersionTransition", - "/properties/LifecycleConfiguration/Rules/*/Transition", - "/properties/ReplicationConfiguration/Rules/*/Prefix", - "/properties/LifecycleConfiguration/Rules/*/ExpiredObjectDeleteMarker" - ], - "propertyTransform": { - "/properties/NotificationConfiguration/QueueConfigurations/*/Filter/S3Key/Rules/*/Name": "$replace(Name, \"prefix\", \"Prefix\") $OR $replace(Name, \"suffix\", \"Suffix\")", - "/properties/NotificationConfiguration/LambdaConfigurations/*/Filter/S3Key/Rules/*/Name": "$replace(Name, \"prefix\", \"Prefix\") $OR $replace(Name, \"suffix\", \"Suffix\")", - "/properties/NotificationConfiguration/TopicConfigurations/*/Filter/S3Key/Rules/*/Name": "$replace(Name, \"prefix\", \"Prefix\") $OR $replace(Name, \"suffix\", \"Suffix\")" - }, - "handlers": { - "create": { - "permissions": [ - "s3:CreateBucket", - "s3:PutBucketTagging", - "s3:PutAnalyticsConfiguration", - "s3:PutEncryptionConfiguration", - "s3:PutBucketCORS", - "s3:PutInventoryConfiguration", - "s3:PutLifecycleConfiguration", - "s3:PutMetricsConfiguration", - "s3:PutBucketNotification", - "s3:PutBucketReplication", - "s3:PutBucketWebsite", - "s3:PutAccelerateConfiguration", - "s3:PutBucketPublicAccessBlock", - "s3:PutReplicationConfiguration", - "s3:PutObjectAcl", - "s3:PutBucketObjectLockConfiguration", - "s3:GetBucketAcl", - "s3:ListBucket", - "iam:PassRole", - "s3:DeleteObject", - "s3:PutBucketLogging", - "s3:PutBucketVersioning", - "s3:PutObjectLockConfiguration", - "s3:PutBucketOwnershipControls", - "s3:PutIntelligentTieringConfiguration" - ] + "properties": { + "InventoryConfigurations": { + "uniqueItems": true, + "description": "Specifies the inventory configuration for an Amazon S3 bucket. For more information, see [GET Bucket inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in the *Amazon S3 API Reference*.", + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/InventoryConfiguration" + } }, - "read": { - "permissions": [ - "s3:GetAccelerateConfiguration", - "s3:GetLifecycleConfiguration", - "s3:GetBucketPublicAccessBlock", - "s3:GetAnalyticsConfiguration", - "s3:GetBucketCORS", - "s3:GetEncryptionConfiguration", - "s3:GetInventoryConfiguration", - "s3:GetBucketLogging", - "s3:GetMetricsConfiguration", - "s3:GetBucketNotification", - "s3:GetBucketVersioning", - "s3:GetReplicationConfiguration", - "S3:GetBucketWebsite", - "s3:GetBucketPublicAccessBlock", - "s3:GetBucketObjectLockConfiguration", - "s3:GetBucketTagging", - "s3:GetBucketOwnershipControls", - "s3:GetIntelligentTieringConfiguration", - "s3:ListBucket" - ] + "WebsiteConfiguration": { + "description": "Information used to configure the bucket as a static website. For more information, see [Hosting Websites on Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html).", + "$ref": "#/definitions/WebsiteConfiguration" }, - "update": { - "permissions": [ - "s3:PutBucketAcl", - "s3:PutBucketTagging", - "s3:PutAnalyticsConfiguration", - "s3:PutEncryptionConfiguration", - "s3:PutBucketCORS", - "s3:PutInventoryConfiguration", - "s3:PutLifecycleConfiguration", - "s3:PutMetricsConfiguration", - "s3:PutBucketNotification", - "s3:PutBucketReplication", - "s3:PutBucketWebsite", - "s3:PutAccelerateConfiguration", - "s3:PutBucketPublicAccessBlock", - "s3:PutReplicationConfiguration", - "s3:PutBucketOwnershipControls", - "s3:PutIntelligentTieringConfiguration", - "s3:DeleteBucketWebsite", - "s3:PutBucketLogging", - "s3:PutBucketVersioning", - "s3:PutObjectLockConfiguration", - "s3:PutBucketObjectLockConfiguration", - "s3:DeleteBucketAnalyticsConfiguration", - "s3:DeleteBucketCors", - "s3:DeleteBucketMetricsConfiguration", - "s3:DeleteBucketEncryption", - "s3:DeleteBucketLifecycle", - "s3:DeleteBucketReplication", - "iam:PassRole", - "s3:ListBucket" - ] + "DualStackDomainName": { + "examples": [ + "mystack-mybucket-kdwwxmddtr2g.s3.dualstack.us-east-2.amazonaws.com" + ], + "description": "", + "type": "string" }, - "delete": { - "permissions": [ - "s3:DeleteBucket", - "s3:ListBucket" + "AccessControl": { + "description": "This is a legacy property, and it is not recommended for most use cases. A majority of modern use cases in Amazon S3 no longer require the use of ACLs, and we recommend that you keep ACLs disabled. For more information, see [Controlling object ownership](https://docs.aws.amazon.com//AmazonS3/latest/userguide/about-object-ownership.html) in the *Amazon S3 User Guide*.\n A canned access control list (ACL) that grants predefined permissions to the bucket. For more information about canned ACLs, see [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) in the *Amazon S3 User Guide*.\n S3 buckets are created with ACLs disabled by default. Therefore, unless you explicitly set the [AWS::S3::OwnershipControls](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ownershipcontrols.html) property to enable ACLs, your resource will fail to deploy with any value other than Private. Use cases requiring ACLs are uncommon.\n The majority of access control configurations can be successfully and more easily achieved with bucket policies. For more information, see [AWS::S3::BucketPolicy](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html). For examples of common policy configurations, including S3 Server Access Logs buckets and more, see [Bucket policy examples](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) in the *Amazon S3 User Guide*.", + "type": "string", + "enum": [ + "AuthenticatedRead", + "AwsExecRead", + "BucketOwnerFullControl", + "BucketOwnerRead", + "LogDeliveryWrite", + "Private", + "PublicRead", + "PublicReadWrite" ] }, - "list": { - "permissions": [ - "s3:ListAllMyBuckets" - ] + "AnalyticsConfigurations": { + "uniqueItems": true, + "description": "Specifies the configuration and any analyses for the analytics filter of an Amazon S3 bucket.", + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/AnalyticsConfiguration" + } + }, + "AccelerateConfiguration": { + "description": "Configures the transfer acceleration state for an Amazon S3 bucket. For more information, see [Amazon S3 Transfer Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) in the *Amazon S3 User Guide*.", + "$ref": "#/definitions/AccelerateConfiguration" + }, + "PublicAccessBlockConfiguration": { + "description": "Configuration that defines how Amazon S3 handles public access.", + "$ref": "#/definitions/PublicAccessBlockConfiguration" + }, + "BucketName": { + "description": "A name for the bucket. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the bucket name. The bucket name must contain only lowercase letters, numbers, periods (.), and dashes (-) and must follow [Amazon S3 bucket restrictions and limitations](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html). For more information, see [Rules for naming Amazon S3 buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html#bucketnamingrules) in the *Amazon S3 User Guide*. \n If you specify a name, you can't perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you need to replace the resource, specify a new name.", + "type": "string" + }, + "RegionalDomainName": { + "examples": [ + "mystack-mybucket-kdwwxmddtr2g.s3.us-east-2.amazonaws.com" + ], + "description": "", + "type": "string" + }, + "OwnershipControls": { + "description": "Configuration that defines how Amazon S3 handles Object Ownership rules.", + "$ref": "#/definitions/OwnershipControls" + }, + "ObjectLockConfiguration": { + "description": "This operation is not supported by directory buckets.\n Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see [Locking Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). \n + The ``DefaultRetention`` settings require both a mode and a period.\n + The ``DefaultRetention`` period can be either ``Days`` or ``Years`` but you must select one. You cannot specify ``Days`` and ``Years`` at the same time.\n + You can enable Object Lock for new or existing buckets. For more information, see [Configuring Object Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html).", + "$ref": "#/definitions/ObjectLockConfiguration" + }, + "ObjectLockEnabled": { + "description": "Indicates whether this bucket has an Object Lock configuration enabled. Enable ``ObjectLockEnabled`` when you apply ``ObjectLockConfiguration`` to a bucket.", + "type": "boolean" + }, + "LoggingConfiguration": { + "description": "Settings that define where logs are stored.", + "$ref": "#/definitions/LoggingConfiguration" + }, + "ReplicationConfiguration": { + "description": "Configuration for replicating objects in an S3 bucket. To enable replication, you must also enable versioning by using the ``VersioningConfiguration`` property.\n Amazon S3 can store replicated objects in a single destination bucket or multiple destination buckets. The destination bucket or buckets must already exist.", + "$ref": "#/definitions/ReplicationConfiguration" + }, + "Tags": { + "description": "An arbitrary set of tags (key-value pairs) for this S3 bucket.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + } + }, + "DomainName": { + "examples": [ + "mystack-mybucket-kdwwxmddtr2g.s3.amazonaws.com" + ], + "description": "", + "type": "string" + }, + "BucketEncryption": { + "description": "Specifies default encryption for a bucket using server-side encryption with Amazon S3-managed keys (SSE-S3), AWS KMS-managed keys (SSE-KMS), or dual-layer server-side encryption with KMS-managed keys (DSSE-KMS). For information about the Amazon S3 default encryption feature, see [Amazon S3 Default Encryption for S3 Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) in the *Amazon S3 User Guide*.", + "$ref": "#/definitions/BucketEncryption" + }, + "WebsiteURL": { + "examples": [ + "Example (IPv4): http://mystack-mybucket-kdwwxmddtr2g.s3-website-us-east-2.amazonaws.com/", + "Example (IPv6): http://mystack-mybucket-kdwwxmddtr2g.s3.dualstack.us-east-2.amazonaws.com/" + ], + "format": "uri", + "description": "", + "type": "string" + }, + "NotificationConfiguration": { + "description": "Configuration that defines how Amazon S3 handles bucket notifications.", + "$ref": "#/definitions/NotificationConfiguration" + }, + "LifecycleConfiguration": { + "description": "Specifies the lifecycle configuration for objects in an Amazon S3 bucket. For more information, see [Object Lifecycle Management](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) in the *Amazon S3 User Guide*.", + "$ref": "#/definitions/LifecycleConfiguration" + }, + "VersioningConfiguration": { + "description": "Enables multiple versions of all objects in this bucket. You might enable versioning to prevent objects from being deleted or overwritten by mistake or to archive objects so that you can retrieve previous versions of them.\n When you enable versioning on a bucket for the first time, it might take a short amount of time for the change to be fully propagated. We recommend that you wait for 15 minutes after enabling versioning before issuing write operations (``PUT`` or ``DELETE``) on objects in the bucket.", + "$ref": "#/definitions/VersioningConfiguration" + }, + "MetricsConfigurations": { + "uniqueItems": true, + "description": "Specifies a metrics configuration for the CloudWatch request metrics (specified by the metrics configuration ID) from an Amazon S3 bucket. If you're updating an existing metrics configuration, note that this is a full replacement of the existing metrics configuration. If you don't include the elements you want to keep, they are erased. For more information, see [PutBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html).", + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/MetricsConfiguration" + } + }, + "IntelligentTieringConfigurations": { + "uniqueItems": true, + "description": "Defines how Amazon S3 handles Intelligent-Tiering storage.", + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/IntelligentTieringConfiguration" + } + }, + "CorsConfiguration": { + "description": "Describes the cross-origin access configuration for objects in an Amazon S3 bucket. For more information, see [Enabling Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the *Amazon S3 User Guide*.", + "$ref": "#/definitions/CorsConfiguration" + }, + "Arn": { + "examples": [ + "arn:aws:s3:::mybucket" + ], + "description": "", + "$ref": "#/definitions/Arn" } } } diff --git a/internal/service/cloudformation/schemas/AWS_Signer_SigningProfile.json b/internal/service/cloudformation/schemas/AWS_Signer_SigningProfile.json index a532b558a..8a1ff25c3 100644 --- a/internal/service/cloudformation/schemas/AWS_Signer_SigningProfile.json +++ b/internal/service/cloudformation/schemas/AWS_Signer_SigningProfile.json @@ -18,7 +18,7 @@ "type": "string", "minLength": 2, "maxLength": 64, - "pattern": "^[0-9a-zA-Z_]$" + "pattern": "^[0-9a-zA-Z_]{2,64}$" }, "ProfileVersion": { "type": "string", diff --git a/internal/service/cloudformation/schemas/AWS_SystemsManagerSAP_Application.json b/internal/service/cloudformation/schemas/AWS_SystemsManagerSAP_Application.json index badd34a7a..254c14ac4 100644 --- a/internal/service/cloudformation/schemas/AWS_SystemsManagerSAP_Application.json +++ b/internal/service/cloudformation/schemas/AWS_SystemsManagerSAP_Application.json @@ -4,16 +4,17 @@ "properties": { "ApplicationId": { "type": "string", - "pattern": "[\\w\\d]{1,50}" + "pattern": "[\\w\\d\\.-]{1,60}" }, "ApplicationType": { "type": "string", "enum": [ - "HANA" + "HANA", + "SAP_ABAP" ] }, "Arn": { - "description": "The ARN of the Helix application", + "description": "The ARN of the SSM-SAP application", "type": "string", "pattern": "^arn:(.+:){2,4}.+$|^arn:(.+:){1,3}.+\\/.+$" }, @@ -48,6 +49,11 @@ "$ref": "#/definitions/Tag" }, "insertionOrder": true + }, + "DatabaseArn": { + "description": "The ARN of the SAP HANA database", + "type": "string", + "pattern": "^arn:(.+:){2,4}.+$|^arn:(.+:){1,3}.+\\/.+$" } }, "required": [ @@ -64,13 +70,15 @@ "/properties/Credentials", "/properties/Instances", "/properties/SapInstanceNumber", - "/properties/Sid" + "/properties/Sid", + "/properties/DatabaseArn" ], "writeOnlyProperties": [ "/properties/Credentials", "/properties/Instances", "/properties/SapInstanceNumber", - "/properties/Sid" + "/properties/Sid", + "/properties/DatabaseArn" ], "additionalProperties": false, "definitions": { @@ -128,7 +136,8 @@ "ssm-sap:RegisterApplication", "ssm-sap:GetApplication", "ssm-sap:TagResource", - "ssm-sap:ListTagsForResource" + "ssm-sap:ListTagsForResource", + "iam:CreateServiceLinkedRole" ] }, "read": { @@ -162,6 +171,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "ssm-sap:UntagResource", + "ssm-sap:TagResource", + "ssm-sap:ListTagsForResource" + ] } } diff --git a/internal/service/cloudformation/schemas/AWS_VpcLattice_AuthPolicy.json b/internal/service/cloudformation/schemas/AWS_VpcLattice_AuthPolicy.json index ab6e34583..45487ded7 100644 --- a/internal/service/cloudformation/schemas/AWS_VpcLattice_AuthPolicy.json +++ b/internal/service/cloudformation/schemas/AWS_VpcLattice_AuthPolicy.json @@ -7,7 +7,7 @@ "type": "string", "pattern": "^((((sn)|(svc))-[0-9a-z]{17})|(arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:((servicenetwork/sn)|(service/svc))-[0-9a-z]{17}))$", "maxLength": 200, - "minLength": 21 + "minLength": 17 }, "Policy": { "type": "object" From bcd43a47cdbdcb10c965c59371f8acadb82217d9 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 15 Aug 2024 11:48:07 -0400 Subject: [PATCH 85/89] 08/14/2024 CloudFormation schemas in us-east-1; New schemas. --- .../available_schemas.2024-08-14.hcl | 4400 +++++++++++++++++ 1 file changed, 4400 insertions(+) create mode 100644 internal/provider/generators/allschemas/available_schemas.2024-08-14.hcl diff --git a/internal/provider/generators/allschemas/available_schemas.2024-08-14.hcl b/internal/provider/generators/allschemas/available_schemas.2024-08-14.hcl new file mode 100644 index 000000000..a88997694 --- /dev/null +++ b/internal/provider/generators/allschemas/available_schemas.2024-08-14.hcl @@ -0,0 +1,4400 @@ +# 1037 CloudFormation resource types schemas are available for use with the Cloud Control API. + +resource_schema "aws_acmpca_certificate" { + cloudformation_type_name = "AWS::ACMPCA::Certificate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_acmpca_certificate_authority" { + cloudformation_type_name = "AWS::ACMPCA::CertificateAuthority" +} + +resource_schema "aws_acmpca_certificate_authority_activation" { + cloudformation_type_name = "AWS::ACMPCA::CertificateAuthorityActivation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_acmpca_permission" { + cloudformation_type_name = "AWS::ACMPCA::Permission" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_aps_rule_groups_namespace" { + cloudformation_type_name = "AWS::APS::RuleGroupsNamespace" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_aps_scraper" { + cloudformation_type_name = "AWS::APS::Scraper" +} + +resource_schema "aws_aps_workspace" { + cloudformation_type_name = "AWS::APS::Workspace" +} + +resource_schema "aws_arczonalshift_autoshift_observer_notification_status" { + cloudformation_type_name = "AWS::ARCZonalShift::AutoshiftObserverNotificationStatus" +} + +resource_schema "aws_arczonalshift_zonal_autoshift_configuration" { + cloudformation_type_name = "AWS::ARCZonalShift::ZonalAutoshiftConfiguration" +} + +resource_schema "aws_accessanalyzer_analyzer" { + cloudformation_type_name = "AWS::AccessAnalyzer::Analyzer" +} + +resource_schema "aws_amplify_app" { + cloudformation_type_name = "AWS::Amplify::App" +} + +resource_schema "aws_amplify_branch" { + cloudformation_type_name = "AWS::Amplify::Branch" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplify_domain" { + cloudformation_type_name = "AWS::Amplify::Domain" +} + +resource_schema "aws_amplifyuibuilder_component" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Component" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplifyuibuilder_form" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Form" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplifyuibuilder_theme" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Theme" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_account" { + cloudformation_type_name = "AWS::ApiGateway::Account" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_api_key" { + cloudformation_type_name = "AWS::ApiGateway::ApiKey" +} + +resource_schema "aws_apigateway_authorizer" { + cloudformation_type_name = "AWS::ApiGateway::Authorizer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_base_path_mapping" { + cloudformation_type_name = "AWS::ApiGateway::BasePathMapping" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_client_certificate" { + cloudformation_type_name = "AWS::ApiGateway::ClientCertificate" +} + +resource_schema "aws_apigateway_deployment" { + cloudformation_type_name = "AWS::ApiGateway::Deployment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_documentation_part" { + cloudformation_type_name = "AWS::ApiGateway::DocumentationPart" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_documentation_version" { + cloudformation_type_name = "AWS::ApiGateway::DocumentationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_domain_name" { + cloudformation_type_name = "AWS::ApiGateway::DomainName" +} + +resource_schema "aws_apigateway_gateway_response" { + cloudformation_type_name = "AWS::ApiGateway::GatewayResponse" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_method" { + cloudformation_type_name = "AWS::ApiGateway::Method" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_model" { + cloudformation_type_name = "AWS::ApiGateway::Model" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_request_validator" { + cloudformation_type_name = "AWS::ApiGateway::RequestValidator" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_resource" { + cloudformation_type_name = "AWS::ApiGateway::Resource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_rest_api" { + cloudformation_type_name = "AWS::ApiGateway::RestApi" +} + +resource_schema "aws_apigateway_stage" { + cloudformation_type_name = "AWS::ApiGateway::Stage" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_usage_plan" { + cloudformation_type_name = "AWS::ApiGateway::UsagePlan" +} + +resource_schema "aws_apigateway_usage_plan_key" { + cloudformation_type_name = "AWS::ApiGateway::UsagePlanKey" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_vpc_link" { + cloudformation_type_name = "AWS::ApiGateway::VpcLink" +} + +resource_schema "aws_apigatewayv2_api" { + cloudformation_type_name = "AWS::ApiGatewayV2::Api" +} + +resource_schema "aws_apigatewayv2_api_mapping" { + cloudformation_type_name = "AWS::ApiGatewayV2::ApiMapping" +} + +resource_schema "aws_apigatewayv2_authorizer" { + cloudformation_type_name = "AWS::ApiGatewayV2::Authorizer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_deployment" { + cloudformation_type_name = "AWS::ApiGatewayV2::Deployment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_domain_name" { + cloudformation_type_name = "AWS::ApiGatewayV2::DomainName" +} + +resource_schema "aws_apigatewayv2_integration_response" { + cloudformation_type_name = "AWS::ApiGatewayV2::IntegrationResponse" +} + +resource_schema "aws_apigatewayv2_model" { + cloudformation_type_name = "AWS::ApiGatewayV2::Model" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_route" { + cloudformation_type_name = "AWS::ApiGatewayV2::Route" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_route_response" { + cloudformation_type_name = "AWS::ApiGatewayV2::RouteResponse" +} + +resource_schema "aws_apigatewayv2_vpc_link" { + cloudformation_type_name = "AWS::ApiGatewayV2::VpcLink" +} + +resource_schema "aws_appconfig_application" { + cloudformation_type_name = "AWS::AppConfig::Application" +} + +resource_schema "aws_appconfig_configuration_profile" { + cloudformation_type_name = "AWS::AppConfig::ConfigurationProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appconfig_environment" { + cloudformation_type_name = "AWS::AppConfig::Environment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appconfig_extension" { + cloudformation_type_name = "AWS::AppConfig::Extension" +} + +resource_schema "aws_appconfig_extension_association" { + cloudformation_type_name = "AWS::AppConfig::ExtensionAssociation" +} + +resource_schema "aws_appconfig_hosted_configuration_version" { + cloudformation_type_name = "AWS::AppConfig::HostedConfigurationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appflow_connector" { + cloudformation_type_name = "AWS::AppFlow::Connector" +} + +resource_schema "aws_appflow_connector_profile" { + cloudformation_type_name = "AWS::AppFlow::ConnectorProfile" +} + +resource_schema "aws_appflow_flow" { + cloudformation_type_name = "AWS::AppFlow::Flow" +} + +resource_schema "aws_appintegrations_application" { + cloudformation_type_name = "AWS::AppIntegrations::Application" +} + +resource_schema "aws_appintegrations_data_integration" { + cloudformation_type_name = "AWS::AppIntegrations::DataIntegration" +} + +resource_schema "aws_appintegrations_event_integration" { + cloudformation_type_name = "AWS::AppIntegrations::EventIntegration" +} + +resource_schema "aws_apprunner_auto_scaling_configuration" { + cloudformation_type_name = "AWS::AppRunner::AutoScalingConfiguration" +} + +resource_schema "aws_apprunner_observability_configuration" { + cloudformation_type_name = "AWS::AppRunner::ObservabilityConfiguration" +} + +resource_schema "aws_apprunner_service" { + cloudformation_type_name = "AWS::AppRunner::Service" +} + +resource_schema "aws_apprunner_vpc_connector" { + cloudformation_type_name = "AWS::AppRunner::VpcConnector" +} + +resource_schema "aws_apprunner_vpc_ingress_connection" { + cloudformation_type_name = "AWS::AppRunner::VpcIngressConnection" +} + +resource_schema "aws_appstream_app_block" { + cloudformation_type_name = "AWS::AppStream::AppBlock" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_app_block_builder" { + cloudformation_type_name = "AWS::AppStream::AppBlockBuilder" +} + +resource_schema "aws_appstream_application" { + cloudformation_type_name = "AWS::AppStream::Application" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_application_entitlement_association" { + cloudformation_type_name = "AWS::AppStream::ApplicationEntitlementAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_application_fleet_association" { + cloudformation_type_name = "AWS::AppStream::ApplicationFleetAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_directory_config" { + cloudformation_type_name = "AWS::AppStream::DirectoryConfig" +} + +resource_schema "aws_appstream_entitlement" { + cloudformation_type_name = "AWS::AppStream::Entitlement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_image_builder" { + cloudformation_type_name = "AWS::AppStream::ImageBuilder" +} + +resource_schema "aws_appsync_domain_name" { + cloudformation_type_name = "AWS::AppSync::DomainName" +} + +resource_schema "aws_appsync_domain_name_api_association" { + cloudformation_type_name = "AWS::AppSync::DomainNameApiAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_function_configuration" { + cloudformation_type_name = "AWS::AppSync::FunctionConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_resolver" { + cloudformation_type_name = "AWS::AppSync::Resolver" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_source_api_association" { + cloudformation_type_name = "AWS::AppSync::SourceApiAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apptest_test_case" { + cloudformation_type_name = "AWS::AppTest::TestCase" +} + +resource_schema "aws_applicationautoscaling_scalable_target" { + cloudformation_type_name = "AWS::ApplicationAutoScaling::ScalableTarget" +} + +resource_schema "aws_applicationautoscaling_scaling_policy" { + cloudformation_type_name = "AWS::ApplicationAutoScaling::ScalingPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_applicationinsights_application" { + cloudformation_type_name = "AWS::ApplicationInsights::Application" +} + +resource_schema "aws_applicationsignals_service_level_objective" { + cloudformation_type_name = "AWS::ApplicationSignals::ServiceLevelObjective" +} + +resource_schema "aws_athena_capacity_reservation" { + cloudformation_type_name = "AWS::Athena::CapacityReservation" +} + +resource_schema "aws_athena_data_catalog" { + cloudformation_type_name = "AWS::Athena::DataCatalog" +} + +resource_schema "aws_athena_named_query" { + cloudformation_type_name = "AWS::Athena::NamedQuery" +} + +resource_schema "aws_athena_prepared_statement" { + cloudformation_type_name = "AWS::Athena::PreparedStatement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_athena_work_group" { + cloudformation_type_name = "AWS::Athena::WorkGroup" +} + +resource_schema "aws_auditmanager_assessment" { + cloudformation_type_name = "AWS::AuditManager::Assessment" +} + +resource_schema "aws_autoscaling_auto_scaling_group" { + cloudformation_type_name = "AWS::AutoScaling::AutoScalingGroup" +} + +resource_schema "aws_autoscaling_launch_configuration" { + cloudformation_type_name = "AWS::AutoScaling::LaunchConfiguration" +} + +resource_schema "aws_autoscaling_lifecycle_hook" { + cloudformation_type_name = "AWS::AutoScaling::LifecycleHook" +} + +resource_schema "aws_autoscaling_scaling_policy" { + cloudformation_type_name = "AWS::AutoScaling::ScalingPolicy" +} + +resource_schema "aws_autoscaling_scheduled_action" { + cloudformation_type_name = "AWS::AutoScaling::ScheduledAction" +} + +resource_schema "aws_autoscaling_warm_pool" { + cloudformation_type_name = "AWS::AutoScaling::WarmPool" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_b2bi_capability" { + cloudformation_type_name = "AWS::B2BI::Capability" +} + +resource_schema "aws_b2bi_partnership" { + cloudformation_type_name = "AWS::B2BI::Partnership" +} + +resource_schema "aws_b2bi_profile" { + cloudformation_type_name = "AWS::B2BI::Profile" +} + +resource_schema "aws_b2bi_transformer" { + cloudformation_type_name = "AWS::B2BI::Transformer" +} + +resource_schema "aws_bcmdataexports_export" { + cloudformation_type_name = "AWS::BCMDataExports::Export" +} + +resource_schema "aws_backup_backup_plan" { + cloudformation_type_name = "AWS::Backup::BackupPlan" +} + +resource_schema "aws_backup_backup_selection" { + cloudformation_type_name = "AWS::Backup::BackupSelection" +} + +resource_schema "aws_backup_backup_vault" { + cloudformation_type_name = "AWS::Backup::BackupVault" +} + +resource_schema "aws_backup_framework" { + cloudformation_type_name = "AWS::Backup::Framework" +} + +resource_schema "aws_backup_report_plan" { + cloudformation_type_name = "AWS::Backup::ReportPlan" +} + +resource_schema "aws_backup_restore_testing_plan" { + cloudformation_type_name = "AWS::Backup::RestoreTestingPlan" +} + +resource_schema "aws_backup_restore_testing_selection" { + cloudformation_type_name = "AWS::Backup::RestoreTestingSelection" +} + +resource_schema "aws_backupgateway_hypervisor" { + cloudformation_type_name = "AWS::BackupGateway::Hypervisor" +} + +resource_schema "aws_batch_compute_environment" { + cloudformation_type_name = "AWS::Batch::ComputeEnvironment" +} + +resource_schema "aws_batch_job_queue" { + cloudformation_type_name = "AWS::Batch::JobQueue" +} + +resource_schema "aws_batch_scheduling_policy" { + cloudformation_type_name = "AWS::Batch::SchedulingPolicy" +} + +resource_schema "aws_bedrock_agent" { + cloudformation_type_name = "AWS::Bedrock::Agent" +} + +resource_schema "aws_bedrock_agent_alias" { + cloudformation_type_name = "AWS::Bedrock::AgentAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_data_source" { + cloudformation_type_name = "AWS::Bedrock::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_flow" { + cloudformation_type_name = "AWS::Bedrock::Flow" +} + +resource_schema "aws_bedrock_flow_alias" { + cloudformation_type_name = "AWS::Bedrock::FlowAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_flow_version" { + cloudformation_type_name = "AWS::Bedrock::FlowVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_guardrail" { + cloudformation_type_name = "AWS::Bedrock::Guardrail" +} + +resource_schema "aws_bedrock_guardrail_version" { + cloudformation_type_name = "AWS::Bedrock::GuardrailVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_knowledge_base" { + cloudformation_type_name = "AWS::Bedrock::KnowledgeBase" +} + +resource_schema "aws_bedrock_prompt" { + cloudformation_type_name = "AWS::Bedrock::Prompt" +} + +resource_schema "aws_bedrock_prompt_version" { + cloudformation_type_name = "AWS::Bedrock::PromptVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_billingconductor_billing_group" { + cloudformation_type_name = "AWS::BillingConductor::BillingGroup" +} + +resource_schema "aws_billingconductor_custom_line_item" { + cloudformation_type_name = "AWS::BillingConductor::CustomLineItem" +} + +resource_schema "aws_billingconductor_pricing_plan" { + cloudformation_type_name = "AWS::BillingConductor::PricingPlan" +} + +resource_schema "aws_billingconductor_pricing_rule" { + cloudformation_type_name = "AWS::BillingConductor::PricingRule" +} + +resource_schema "aws_budgets_budgets_action" { + cloudformation_type_name = "AWS::Budgets::BudgetsAction" +} + +resource_schema "aws_ce_anomaly_monitor" { + cloudformation_type_name = "AWS::CE::AnomalyMonitor" +} + +resource_schema "aws_ce_anomaly_subscription" { + cloudformation_type_name = "AWS::CE::AnomalySubscription" +} + +resource_schema "aws_ce_cost_category" { + cloudformation_type_name = "AWS::CE::CostCategory" +} + +resource_schema "aws_cur_report_definition" { + cloudformation_type_name = "AWS::CUR::ReportDefinition" +} + +resource_schema "aws_cassandra_keyspace" { + cloudformation_type_name = "AWS::Cassandra::Keyspace" +} + +resource_schema "aws_cassandra_table" { + cloudformation_type_name = "AWS::Cassandra::Table" +} + +resource_schema "aws_certificatemanager_account" { + cloudformation_type_name = "AWS::CertificateManager::Account" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_chatbot_microsoft_teams_channel_configuration" { + cloudformation_type_name = "AWS::Chatbot::MicrosoftTeamsChannelConfiguration" +} + +resource_schema "aws_chatbot_slack_channel_configuration" { + cloudformation_type_name = "AWS::Chatbot::SlackChannelConfiguration" +} + +resource_schema "aws_cleanrooms_analysis_template" { + cloudformation_type_name = "AWS::CleanRooms::AnalysisTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_collaboration" { + cloudformation_type_name = "AWS::CleanRooms::Collaboration" +} + +resource_schema "aws_cleanrooms_configured_table" { + cloudformation_type_name = "AWS::CleanRooms::ConfiguredTable" +} + +resource_schema "aws_cleanrooms_configured_table_association" { + cloudformation_type_name = "AWS::CleanRooms::ConfiguredTableAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_id_mapping_table" { + cloudformation_type_name = "AWS::CleanRooms::IdMappingTable" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_id_namespace_association" { + cloudformation_type_name = "AWS::CleanRooms::IdNamespaceAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_membership" { + cloudformation_type_name = "AWS::CleanRooms::Membership" +} + +resource_schema "aws_cleanrooms_privacy_budget_template" { + cloudformation_type_name = "AWS::CleanRooms::PrivacyBudgetTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanroomsml_training_dataset" { + cloudformation_type_name = "AWS::CleanRoomsML::TrainingDataset" +} + +resource_schema "aws_cloudformation_hook_default_version" { + cloudformation_type_name = "AWS::CloudFormation::HookDefaultVersion" +} + +resource_schema "aws_cloudformation_hook_type_config" { + cloudformation_type_name = "AWS::CloudFormation::HookTypeConfig" +} + +resource_schema "aws_cloudformation_hook_version" { + cloudformation_type_name = "AWS::CloudFormation::HookVersion" +} + +resource_schema "aws_cloudformation_module_default_version" { + cloudformation_type_name = "AWS::CloudFormation::ModuleDefaultVersion" +} + +resource_schema "aws_cloudformation_module_version" { + cloudformation_type_name = "AWS::CloudFormation::ModuleVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudformation_public_type_version" { + cloudformation_type_name = "AWS::CloudFormation::PublicTypeVersion" +} + +resource_schema "aws_cloudformation_publisher" { + cloudformation_type_name = "AWS::CloudFormation::Publisher" +} + +resource_schema "aws_cloudformation_resource_default_version" { + cloudformation_type_name = "AWS::CloudFormation::ResourceDefaultVersion" +} + +resource_schema "aws_cloudformation_resource_version" { + cloudformation_type_name = "AWS::CloudFormation::ResourceVersion" +} + +resource_schema "aws_cloudformation_stack" { + cloudformation_type_name = "AWS::CloudFormation::Stack" +} + +resource_schema "aws_cloudformation_stack_set" { + cloudformation_type_name = "AWS::CloudFormation::StackSet" +} + +resource_schema "aws_cloudformation_type_activation" { + cloudformation_type_name = "AWS::CloudFormation::TypeActivation" +} + +resource_schema "aws_cloudfront_cache_policy" { + cloudformation_type_name = "AWS::CloudFront::CachePolicy" +} + +resource_schema "aws_cloudfront_cloudfront_origin_access_identity" { + cloudformation_type_name = "AWS::CloudFront::CloudFrontOriginAccessIdentity" +} + +resource_schema "aws_cloudfront_continuous_deployment_policy" { + cloudformation_type_name = "AWS::CloudFront::ContinuousDeploymentPolicy" +} + +resource_schema "aws_cloudfront_distribution" { + cloudformation_type_name = "AWS::CloudFront::Distribution" +} + +resource_schema "aws_cloudfront_function" { + cloudformation_type_name = "AWS::CloudFront::Function" +} + +resource_schema "aws_cloudfront_key_group" { + cloudformation_type_name = "AWS::CloudFront::KeyGroup" +} + +resource_schema "aws_cloudfront_key_value_store" { + cloudformation_type_name = "AWS::CloudFront::KeyValueStore" +} + +resource_schema "aws_cloudfront_monitoring_subscription" { + cloudformation_type_name = "AWS::CloudFront::MonitoringSubscription" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudfront_origin_access_control" { + cloudformation_type_name = "AWS::CloudFront::OriginAccessControl" +} + +resource_schema "aws_cloudfront_origin_request_policy" { + cloudformation_type_name = "AWS::CloudFront::OriginRequestPolicy" +} + +resource_schema "aws_cloudfront_public_key" { + cloudformation_type_name = "AWS::CloudFront::PublicKey" +} + +resource_schema "aws_cloudfront_realtime_log_config" { + cloudformation_type_name = "AWS::CloudFront::RealtimeLogConfig" +} + +resource_schema "aws_cloudfront_response_headers_policy" { + cloudformation_type_name = "AWS::CloudFront::ResponseHeadersPolicy" +} + +resource_schema "aws_cloudtrail_channel" { + cloudformation_type_name = "AWS::CloudTrail::Channel" +} + +resource_schema "aws_cloudtrail_event_data_store" { + cloudformation_type_name = "AWS::CloudTrail::EventDataStore" +} + +resource_schema "aws_cloudtrail_resource_policy" { + cloudformation_type_name = "AWS::CloudTrail::ResourcePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudtrail_trail" { + cloudformation_type_name = "AWS::CloudTrail::Trail" +} + +resource_schema "aws_cloudwatch_alarm" { + cloudformation_type_name = "AWS::CloudWatch::Alarm" +} + +resource_schema "aws_cloudwatch_composite_alarm" { + cloudformation_type_name = "AWS::CloudWatch::CompositeAlarm" +} + +resource_schema "aws_cloudwatch_dashboard" { + cloudformation_type_name = "AWS::CloudWatch::Dashboard" +} + +resource_schema "aws_cloudwatch_metric_stream" { + cloudformation_type_name = "AWS::CloudWatch::MetricStream" +} + +resource_schema "aws_codeartifact_domain" { + cloudformation_type_name = "AWS::CodeArtifact::Domain" +} + +resource_schema "aws_codeartifact_package_group" { + cloudformation_type_name = "AWS::CodeArtifact::PackageGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_codeartifact_repository" { + cloudformation_type_name = "AWS::CodeArtifact::Repository" +} + +resource_schema "aws_codebuild_fleet" { + cloudformation_type_name = "AWS::CodeBuild::Fleet" +} + +resource_schema "aws_codeconnections_connection" { + cloudformation_type_name = "AWS::CodeConnections::Connection" +} + +resource_schema "aws_codedeploy_application" { + cloudformation_type_name = "AWS::CodeDeploy::Application" +} + +resource_schema "aws_codedeploy_deployment_config" { + cloudformation_type_name = "AWS::CodeDeploy::DeploymentConfig" +} + +resource_schema "aws_codeguruprofiler_profiling_group" { + cloudformation_type_name = "AWS::CodeGuruProfiler::ProfilingGroup" +} + +resource_schema "aws_codegurureviewer_repository_association" { + cloudformation_type_name = "AWS::CodeGuruReviewer::RepositoryAssociation" +} + +resource_schema "aws_codepipeline_custom_action_type" { + cloudformation_type_name = "AWS::CodePipeline::CustomActionType" +} + +resource_schema "aws_codepipeline_pipeline" { + cloudformation_type_name = "AWS::CodePipeline::Pipeline" +} + +resource_schema "aws_codestarconnections_connection" { + cloudformation_type_name = "AWS::CodeStarConnections::Connection" +} + +resource_schema "aws_codestarconnections_repository_link" { + cloudformation_type_name = "AWS::CodeStarConnections::RepositoryLink" +} + +resource_schema "aws_codestarconnections_sync_configuration" { + cloudformation_type_name = "AWS::CodeStarConnections::SyncConfiguration" +} + +resource_schema "aws_codestarnotifications_notification_rule" { + cloudformation_type_name = "AWS::CodeStarNotifications::NotificationRule" +} + +resource_schema "aws_cognito_identity_pool" { + cloudformation_type_name = "AWS::Cognito::IdentityPool" +} + +resource_schema "aws_cognito_identity_pool_principal_tag" { + cloudformation_type_name = "AWS::Cognito::IdentityPoolPrincipalTag" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_identity_pool_role_attachment" { + cloudformation_type_name = "AWS::Cognito::IdentityPoolRoleAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_log_delivery_configuration" { + cloudformation_type_name = "AWS::Cognito::LogDeliveryConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool" { + cloudformation_type_name = "AWS::Cognito::UserPool" +} + +resource_schema "aws_cognito_user_pool_client" { + cloudformation_type_name = "AWS::Cognito::UserPoolClient" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_group" { + cloudformation_type_name = "AWS::Cognito::UserPoolGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_resource_server" { + cloudformation_type_name = "AWS::Cognito::UserPoolResourceServer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_risk_configuration_attachment" { + cloudformation_type_name = "AWS::Cognito::UserPoolRiskConfigurationAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_ui_customization_attachment" { + cloudformation_type_name = "AWS::Cognito::UserPoolUICustomizationAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_user" { + cloudformation_type_name = "AWS::Cognito::UserPoolUser" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_user_to_group_attachment" { + cloudformation_type_name = "AWS::Cognito::UserPoolUserToGroupAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_comprehend_document_classifier" { + cloudformation_type_name = "AWS::Comprehend::DocumentClassifier" +} + +resource_schema "aws_comprehend_flywheel" { + cloudformation_type_name = "AWS::Comprehend::Flywheel" +} + +resource_schema "aws_config_aggregation_authorization" { + cloudformation_type_name = "AWS::Config::AggregationAuthorization" +} + +resource_schema "aws_config_config_rule" { + cloudformation_type_name = "AWS::Config::ConfigRule" +} + +resource_schema "aws_config_configuration_aggregator" { + cloudformation_type_name = "AWS::Config::ConfigurationAggregator" +} + +resource_schema "aws_config_conformance_pack" { + cloudformation_type_name = "AWS::Config::ConformancePack" +} + +resource_schema "aws_config_organization_conformance_pack" { + cloudformation_type_name = "AWS::Config::OrganizationConformancePack" +} + +resource_schema "aws_config_stored_query" { + cloudformation_type_name = "AWS::Config::StoredQuery" +} + +resource_schema "aws_connect_approved_origin" { + cloudformation_type_name = "AWS::Connect::ApprovedOrigin" +} + +resource_schema "aws_connect_contact_flow" { + cloudformation_type_name = "AWS::Connect::ContactFlow" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_contact_flow_module" { + cloudformation_type_name = "AWS::Connect::ContactFlowModule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_evaluation_form" { + cloudformation_type_name = "AWS::Connect::EvaluationForm" +} + +resource_schema "aws_connect_hours_of_operation" { + cloudformation_type_name = "AWS::Connect::HoursOfOperation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_instance" { + cloudformation_type_name = "AWS::Connect::Instance" +} + +resource_schema "aws_connect_instance_storage_config" { + cloudformation_type_name = "AWS::Connect::InstanceStorageConfig" +} + +resource_schema "aws_connect_integration_association" { + cloudformation_type_name = "AWS::Connect::IntegrationAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_phone_number" { + cloudformation_type_name = "AWS::Connect::PhoneNumber" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_predefined_attribute" { + cloudformation_type_name = "AWS::Connect::PredefinedAttribute" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_prompt" { + cloudformation_type_name = "AWS::Connect::Prompt" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_queue" { + cloudformation_type_name = "AWS::Connect::Queue" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_quick_connect" { + cloudformation_type_name = "AWS::Connect::QuickConnect" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_routing_profile" { + cloudformation_type_name = "AWS::Connect::RoutingProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_rule" { + cloudformation_type_name = "AWS::Connect::Rule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_security_key" { + cloudformation_type_name = "AWS::Connect::SecurityKey" +} + +resource_schema "aws_connect_security_profile" { + cloudformation_type_name = "AWS::Connect::SecurityProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_task_template" { + cloudformation_type_name = "AWS::Connect::TaskTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_traffic_distribution_group" { + cloudformation_type_name = "AWS::Connect::TrafficDistributionGroup" +} + +resource_schema "aws_connect_user" { + cloudformation_type_name = "AWS::Connect::User" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_user_hierarchy_group" { + cloudformation_type_name = "AWS::Connect::UserHierarchyGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_view" { + cloudformation_type_name = "AWS::Connect::View" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_view_version" { + cloudformation_type_name = "AWS::Connect::ViewVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connectcampaigns_campaign" { + cloudformation_type_name = "AWS::ConnectCampaigns::Campaign" +} + +resource_schema "aws_controltower_enabled_baseline" { + cloudformation_type_name = "AWS::ControlTower::EnabledBaseline" +} + +resource_schema "aws_controltower_enabled_control" { + cloudformation_type_name = "AWS::ControlTower::EnabledControl" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_controltower_landing_zone" { + cloudformation_type_name = "AWS::ControlTower::LandingZone" +} + +resource_schema "aws_customerprofiles_calculated_attribute_definition" { + cloudformation_type_name = "AWS::CustomerProfiles::CalculatedAttributeDefinition" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_domain" { + cloudformation_type_name = "AWS::CustomerProfiles::Domain" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_event_stream" { + cloudformation_type_name = "AWS::CustomerProfiles::EventStream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_integration" { + cloudformation_type_name = "AWS::CustomerProfiles::Integration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_object_type" { + cloudformation_type_name = "AWS::CustomerProfiles::ObjectType" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_dms_data_provider" { + cloudformation_type_name = "AWS::DMS::DataProvider" +} + +resource_schema "aws_dms_instance_profile" { + cloudformation_type_name = "AWS::DMS::InstanceProfile" +} + +resource_schema "aws_dms_migration_project" { + cloudformation_type_name = "AWS::DMS::MigrationProject" +} + +resource_schema "aws_dms_replication_config" { + cloudformation_type_name = "AWS::DMS::ReplicationConfig" +} + +resource_schema "aws_databrew_dataset" { + cloudformation_type_name = "AWS::DataBrew::Dataset" +} + +resource_schema "aws_databrew_job" { + cloudformation_type_name = "AWS::DataBrew::Job" +} + +resource_schema "aws_databrew_project" { + cloudformation_type_name = "AWS::DataBrew::Project" +} + +resource_schema "aws_databrew_recipe" { + cloudformation_type_name = "AWS::DataBrew::Recipe" +} + +resource_schema "aws_databrew_ruleset" { + cloudformation_type_name = "AWS::DataBrew::Ruleset" +} + +resource_schema "aws_databrew_schedule" { + cloudformation_type_name = "AWS::DataBrew::Schedule" +} + +resource_schema "aws_datapipeline_pipeline" { + cloudformation_type_name = "AWS::DataPipeline::Pipeline" +} + +resource_schema "aws_datasync_agent" { + cloudformation_type_name = "AWS::DataSync::Agent" +} + +resource_schema "aws_datasync_location_azure_blob" { + cloudformation_type_name = "AWS::DataSync::LocationAzureBlob" +} + +resource_schema "aws_datasync_location_efs" { + cloudformation_type_name = "AWS::DataSync::LocationEFS" +} + +resource_schema "aws_datasync_location_fsx_lustre" { + cloudformation_type_name = "AWS::DataSync::LocationFSxLustre" +} + +resource_schema "aws_datasync_location_fsx_ontap" { + cloudformation_type_name = "AWS::DataSync::LocationFSxONTAP" +} + +resource_schema "aws_datasync_location_fsx_open_zfs" { + cloudformation_type_name = "AWS::DataSync::LocationFSxOpenZFS" +} + +resource_schema "aws_datasync_location_fsx_windows" { + cloudformation_type_name = "AWS::DataSync::LocationFSxWindows" +} + +resource_schema "aws_datasync_location_hdfs" { + cloudformation_type_name = "AWS::DataSync::LocationHDFS" +} + +resource_schema "aws_datasync_location_nfs" { + cloudformation_type_name = "AWS::DataSync::LocationNFS" +} + +resource_schema "aws_datasync_location_object_storage" { + cloudformation_type_name = "AWS::DataSync::LocationObjectStorage" +} + +resource_schema "aws_datasync_location_s3" { + cloudformation_type_name = "AWS::DataSync::LocationS3" +} + +resource_schema "aws_datasync_location_smb" { + cloudformation_type_name = "AWS::DataSync::LocationSMB" +} + +resource_schema "aws_datasync_storage_system" { + cloudformation_type_name = "AWS::DataSync::StorageSystem" +} + +resource_schema "aws_datasync_task" { + cloudformation_type_name = "AWS::DataSync::Task" +} + +resource_schema "aws_datazone_data_source" { + cloudformation_type_name = "AWS::DataZone::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_domain" { + cloudformation_type_name = "AWS::DataZone::Domain" +} + +resource_schema "aws_datazone_environment" { + cloudformation_type_name = "AWS::DataZone::Environment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_environment_blueprint_configuration" { + cloudformation_type_name = "AWS::DataZone::EnvironmentBlueprintConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_environment_profile" { + cloudformation_type_name = "AWS::DataZone::EnvironmentProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_group_profile" { + cloudformation_type_name = "AWS::DataZone::GroupProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_project" { + cloudformation_type_name = "AWS::DataZone::Project" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_project_membership" { + cloudformation_type_name = "AWS::DataZone::ProjectMembership" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_subscription_target" { + cloudformation_type_name = "AWS::DataZone::SubscriptionTarget" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_user_profile" { + cloudformation_type_name = "AWS::DataZone::UserProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_farm" { + cloudformation_type_name = "AWS::Deadline::Farm" +} + +resource_schema "aws_deadline_fleet" { + cloudformation_type_name = "AWS::Deadline::Fleet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_license_endpoint" { + cloudformation_type_name = "AWS::Deadline::LicenseEndpoint" +} + +resource_schema "aws_deadline_metered_product" { + cloudformation_type_name = "AWS::Deadline::MeteredProduct" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_monitor" { + cloudformation_type_name = "AWS::Deadline::Monitor" +} + +resource_schema "aws_deadline_queue" { + cloudformation_type_name = "AWS::Deadline::Queue" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_queue_environment" { + cloudformation_type_name = "AWS::Deadline::QueueEnvironment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_queue_fleet_association" { + cloudformation_type_name = "AWS::Deadline::QueueFleetAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_storage_profile" { + cloudformation_type_name = "AWS::Deadline::StorageProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_detective_graph" { + cloudformation_type_name = "AWS::Detective::Graph" +} + +resource_schema "aws_detective_member_invitation" { + cloudformation_type_name = "AWS::Detective::MemberInvitation" +} + +resource_schema "aws_detective_organization_admin" { + cloudformation_type_name = "AWS::Detective::OrganizationAdmin" +} + +resource_schema "aws_devopsguru_log_anomaly_detection_integration" { + cloudformation_type_name = "AWS::DevOpsGuru::LogAnomalyDetectionIntegration" +} + +resource_schema "aws_devopsguru_notification_channel" { + cloudformation_type_name = "AWS::DevOpsGuru::NotificationChannel" +} + +resource_schema "aws_devopsguru_resource_collection" { + cloudformation_type_name = "AWS::DevOpsGuru::ResourceCollection" +} + +resource_schema "aws_directoryservice_simple_ad" { + cloudformation_type_name = "AWS::DirectoryService::SimpleAD" +} + +resource_schema "aws_docdbelastic_cluster" { + cloudformation_type_name = "AWS::DocDBElastic::Cluster" +} + +resource_schema "aws_dynamodb_global_table" { + cloudformation_type_name = "AWS::DynamoDB::GlobalTable" +} + +resource_schema "aws_dynamodb_table" { + cloudformation_type_name = "AWS::DynamoDB::Table" +} + +resource_schema "aws_ec2_capacity_reservation" { + cloudformation_type_name = "AWS::EC2::CapacityReservation" +} + +resource_schema "aws_ec2_capacity_reservation_fleet" { + cloudformation_type_name = "AWS::EC2::CapacityReservationFleet" +} + +resource_schema "aws_ec2_carrier_gateway" { + cloudformation_type_name = "AWS::EC2::CarrierGateway" +} + +resource_schema "aws_ec2_customer_gateway" { + cloudformation_type_name = "AWS::EC2::CustomerGateway" +} + +resource_schema "aws_ec2_dhcp_options" { + cloudformation_type_name = "AWS::EC2::DHCPOptions" +} + +resource_schema "aws_ec2_ec2_fleet" { + cloudformation_type_name = "AWS::EC2::EC2Fleet" +} + +resource_schema "aws_ec2_eip" { + cloudformation_type_name = "AWS::EC2::EIP" +} + +resource_schema "aws_ec2_eip_association" { + cloudformation_type_name = "AWS::EC2::EIPAssociation" +} + +resource_schema "aws_ec2_egress_only_internet_gateway" { + cloudformation_type_name = "AWS::EC2::EgressOnlyInternetGateway" +} + +resource_schema "aws_ec2_enclave_certificate_iam_role_association" { + cloudformation_type_name = "AWS::EC2::EnclaveCertificateIamRoleAssociation" +} + +resource_schema "aws_ec2_flow_log" { + cloudformation_type_name = "AWS::EC2::FlowLog" +} + +resource_schema "aws_ec2_gateway_route_table_association" { + cloudformation_type_name = "AWS::EC2::GatewayRouteTableAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_host" { + cloudformation_type_name = "AWS::EC2::Host" +} + +resource_schema "aws_ec2_ipam" { + cloudformation_type_name = "AWS::EC2::IPAM" +} + +resource_schema "aws_ec2_ipam_allocation" { + cloudformation_type_name = "AWS::EC2::IPAMAllocation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_ipam_pool" { + cloudformation_type_name = "AWS::EC2::IPAMPool" +} + +resource_schema "aws_ec2_ipam_pool_cidr" { + cloudformation_type_name = "AWS::EC2::IPAMPoolCidr" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_ipam_resource_discovery" { + cloudformation_type_name = "AWS::EC2::IPAMResourceDiscovery" +} + +resource_schema "aws_ec2_ipam_resource_discovery_association" { + cloudformation_type_name = "AWS::EC2::IPAMResourceDiscoveryAssociation" +} + +resource_schema "aws_ec2_ipam_scope" { + cloudformation_type_name = "AWS::EC2::IPAMScope" +} + +resource_schema "aws_ec2_instance" { + cloudformation_type_name = "AWS::EC2::Instance" +} + +resource_schema "aws_ec2_instance_connect_endpoint" { + cloudformation_type_name = "AWS::EC2::InstanceConnectEndpoint" +} + +resource_schema "aws_ec2_internet_gateway" { + cloudformation_type_name = "AWS::EC2::InternetGateway" +} + +resource_schema "aws_ec2_key_pair" { + cloudformation_type_name = "AWS::EC2::KeyPair" +} + +resource_schema "aws_ec2_launch_template" { + cloudformation_type_name = "AWS::EC2::LaunchTemplate" +} + +resource_schema "aws_ec2_local_gateway_route" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRoute" +} + +resource_schema "aws_ec2_local_gateway_route_table" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRouteTable" +} + +resource_schema "aws_ec2_local_gateway_route_table_vpc_association" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRouteTableVPCAssociation" +} + +resource_schema "aws_ec2_local_gateway_route_table_virtual_interface_group_association" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRouteTableVirtualInterfaceGroupAssociation" +} + +resource_schema "aws_ec2_nat_gateway" { + cloudformation_type_name = "AWS::EC2::NatGateway" +} + +resource_schema "aws_ec2_network_acl" { + cloudformation_type_name = "AWS::EC2::NetworkAcl" +} + +resource_schema "aws_ec2_network_insights_access_scope" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsAccessScope" +} + +resource_schema "aws_ec2_network_insights_access_scope_analysis" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsAccessScopeAnalysis" +} + +resource_schema "aws_ec2_network_insights_analysis" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsAnalysis" +} + +resource_schema "aws_ec2_network_insights_path" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsPath" +} + +resource_schema "aws_ec2_network_interface" { + cloudformation_type_name = "AWS::EC2::NetworkInterface" +} + +resource_schema "aws_ec2_network_interface_attachment" { + cloudformation_type_name = "AWS::EC2::NetworkInterfaceAttachment" +} + +resource_schema "aws_ec2_network_performance_metric_subscription" { + cloudformation_type_name = "AWS::EC2::NetworkPerformanceMetricSubscription" +} + +resource_schema "aws_ec2_placement_group" { + cloudformation_type_name = "AWS::EC2::PlacementGroup" +} + +resource_schema "aws_ec2_prefix_list" { + cloudformation_type_name = "AWS::EC2::PrefixList" +} + +resource_schema "aws_ec2_route" { + cloudformation_type_name = "AWS::EC2::Route" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_route_table" { + cloudformation_type_name = "AWS::EC2::RouteTable" +} + +resource_schema "aws_ec2_security_group" { + cloudformation_type_name = "AWS::EC2::SecurityGroup" +} + +resource_schema "aws_ec2_security_group_egress" { + cloudformation_type_name = "AWS::EC2::SecurityGroupEgress" +} + +resource_schema "aws_ec2_security_group_ingress" { + cloudformation_type_name = "AWS::EC2::SecurityGroupIngress" +} + +resource_schema "aws_ec2_snapshot_block_public_access" { + cloudformation_type_name = "AWS::EC2::SnapshotBlockPublicAccess" +} + +resource_schema "aws_ec2_spot_fleet" { + cloudformation_type_name = "AWS::EC2::SpotFleet" +} + +resource_schema "aws_ec2_subnet" { + cloudformation_type_name = "AWS::EC2::Subnet" +} + +resource_schema "aws_ec2_subnet_cidr_block" { + cloudformation_type_name = "AWS::EC2::SubnetCidrBlock" +} + +resource_schema "aws_ec2_subnet_network_acl_association" { + cloudformation_type_name = "AWS::EC2::SubnetNetworkAclAssociation" +} + +resource_schema "aws_ec2_subnet_route_table_association" { + cloudformation_type_name = "AWS::EC2::SubnetRouteTableAssociation" +} + +resource_schema "aws_ec2_transit_gateway" { + cloudformation_type_name = "AWS::EC2::TransitGateway" +} + +resource_schema "aws_ec2_transit_gateway_attachment" { + cloudformation_type_name = "AWS::EC2::TransitGatewayAttachment" +} + +resource_schema "aws_ec2_transit_gateway_connect" { + cloudformation_type_name = "AWS::EC2::TransitGatewayConnect" +} + +resource_schema "aws_ec2_transit_gateway_multicast_domain" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastDomain" +} + +resource_schema "aws_ec2_transit_gateway_multicast_domain_association" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastDomainAssociation" +} + +resource_schema "aws_ec2_transit_gateway_multicast_group_member" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastGroupMember" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_multicast_group_source" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastGroupSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_peering_attachment" { + cloudformation_type_name = "AWS::EC2::TransitGatewayPeeringAttachment" +} + +resource_schema "aws_ec2_transit_gateway_route" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRoute" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_route_table" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRouteTable" +} + +resource_schema "aws_ec2_transit_gateway_route_table_association" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRouteTableAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_route_table_propagation" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRouteTablePropagation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_vpc_attachment" { + cloudformation_type_name = "AWS::EC2::TransitGatewayVpcAttachment" +} + +resource_schema "aws_ec2_vpc" { + cloudformation_type_name = "AWS::EC2::VPC" +} + +resource_schema "aws_ec2_vpc_cidr_block" { + cloudformation_type_name = "AWS::EC2::VPCCidrBlock" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_vpcdhcp_options_association" { + cloudformation_type_name = "AWS::EC2::VPCDHCPOptionsAssociation" +} + +resource_schema "aws_ec2_vpc_endpoint" { + cloudformation_type_name = "AWS::EC2::VPCEndpoint" +} + +resource_schema "aws_ec2_vpc_endpoint_connection_notification" { + cloudformation_type_name = "AWS::EC2::VPCEndpointConnectionNotification" +} + +resource_schema "aws_ec2_vpc_endpoint_service" { + cloudformation_type_name = "AWS::EC2::VPCEndpointService" +} + +resource_schema "aws_ec2_vpc_endpoint_service_permissions" { + cloudformation_type_name = "AWS::EC2::VPCEndpointServicePermissions" +} + +resource_schema "aws_ec2_vpc_gateway_attachment" { + cloudformation_type_name = "AWS::EC2::VPCGatewayAttachment" +} + +resource_schema "aws_ec2_vpc_peering_connection" { + cloudformation_type_name = "AWS::EC2::VPCPeeringConnection" +} + +resource_schema "aws_ec2_vpn_connection" { + cloudformation_type_name = "AWS::EC2::VPNConnection" +} + +resource_schema "aws_ec2_vpn_connection_route" { + cloudformation_type_name = "AWS::EC2::VPNConnectionRoute" +} + +resource_schema "aws_ec2_vpn_gateway" { + cloudformation_type_name = "AWS::EC2::VPNGateway" +} + +resource_schema "aws_ec2_verified_access_endpoint" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessEndpoint" +} + +resource_schema "aws_ec2_verified_access_group" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessGroup" +} + +resource_schema "aws_ec2_verified_access_instance" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessInstance" +} + +resource_schema "aws_ec2_verified_access_trust_provider" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessTrustProvider" +} + +resource_schema "aws_ec2_volume" { + cloudformation_type_name = "AWS::EC2::Volume" +} + +resource_schema "aws_ec2_volume_attachment" { + cloudformation_type_name = "AWS::EC2::VolumeAttachment" +} + +resource_schema "aws_ecr_public_repository" { + cloudformation_type_name = "AWS::ECR::PublicRepository" +} + +resource_schema "aws_ecr_pull_through_cache_rule" { + cloudformation_type_name = "AWS::ECR::PullThroughCacheRule" +} + +resource_schema "aws_ecr_registry_policy" { + cloudformation_type_name = "AWS::ECR::RegistryPolicy" +} + +resource_schema "aws_ecr_replication_configuration" { + cloudformation_type_name = "AWS::ECR::ReplicationConfiguration" +} + +resource_schema "aws_ecr_repository" { + cloudformation_type_name = "AWS::ECR::Repository" +} + +resource_schema "aws_ecr_repository_creation_template" { + cloudformation_type_name = "AWS::ECR::RepositoryCreationTemplate" +} + +resource_schema "aws_ecs_capacity_provider" { + cloudformation_type_name = "AWS::ECS::CapacityProvider" +} + +resource_schema "aws_ecs_cluster" { + cloudformation_type_name = "AWS::ECS::Cluster" +} + +resource_schema "aws_ecs_cluster_capacity_provider_associations" { + cloudformation_type_name = "AWS::ECS::ClusterCapacityProviderAssociations" +} + +resource_schema "aws_ecs_primary_task_set" { + cloudformation_type_name = "AWS::ECS::PrimaryTaskSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ecs_service" { + cloudformation_type_name = "AWS::ECS::Service" +} + +resource_schema "aws_ecs_task_definition" { + cloudformation_type_name = "AWS::ECS::TaskDefinition" +} + +resource_schema "aws_ecs_task_set" { + cloudformation_type_name = "AWS::ECS::TaskSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_efs_access_point" { + cloudformation_type_name = "AWS::EFS::AccessPoint" +} + +resource_schema "aws_efs_file_system" { + cloudformation_type_name = "AWS::EFS::FileSystem" +} + +resource_schema "aws_efs_mount_target" { + cloudformation_type_name = "AWS::EFS::MountTarget" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_access_entry" { + cloudformation_type_name = "AWS::EKS::AccessEntry" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_addon" { + cloudformation_type_name = "AWS::EKS::Addon" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_cluster" { + cloudformation_type_name = "AWS::EKS::Cluster" +} + +resource_schema "aws_eks_fargate_profile" { + cloudformation_type_name = "AWS::EKS::FargateProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_identity_provider_config" { + cloudformation_type_name = "AWS::EKS::IdentityProviderConfig" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_nodegroup" { + cloudformation_type_name = "AWS::EKS::Nodegroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_pod_identity_association" { + cloudformation_type_name = "AWS::EKS::PodIdentityAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_emr_security_configuration" { + cloudformation_type_name = "AWS::EMR::SecurityConfiguration" +} + +resource_schema "aws_emr_studio" { + cloudformation_type_name = "AWS::EMR::Studio" +} + +resource_schema "aws_emr_studio_session_mapping" { + cloudformation_type_name = "AWS::EMR::StudioSessionMapping" +} + +resource_schema "aws_emr_wal_workspace" { + cloudformation_type_name = "AWS::EMR::WALWorkspace" +} + +resource_schema "aws_emrcontainers_virtual_cluster" { + cloudformation_type_name = "AWS::EMRContainers::VirtualCluster" +} + +resource_schema "aws_emrserverless_application" { + cloudformation_type_name = "AWS::EMRServerless::Application" +} + +resource_schema "aws_elasticache_global_replication_group" { + cloudformation_type_name = "AWS::ElastiCache::GlobalReplicationGroup" +} + +resource_schema "aws_elasticache_parameter_group" { + cloudformation_type_name = "AWS::ElastiCache::ParameterGroup" +} + +resource_schema "aws_elasticache_serverless_cache" { + cloudformation_type_name = "AWS::ElastiCache::ServerlessCache" +} + +resource_schema "aws_elasticache_subnet_group" { + cloudformation_type_name = "AWS::ElastiCache::SubnetGroup" +} + +resource_schema "aws_elasticache_user" { + cloudformation_type_name = "AWS::ElastiCache::User" +} + +resource_schema "aws_elasticache_user_group" { + cloudformation_type_name = "AWS::ElastiCache::UserGroup" +} + +resource_schema "aws_elasticbeanstalk_application" { + cloudformation_type_name = "AWS::ElasticBeanstalk::Application" +} + +resource_schema "aws_elasticbeanstalk_application_version" { + cloudformation_type_name = "AWS::ElasticBeanstalk::ApplicationVersion" +} + +resource_schema "aws_elasticbeanstalk_configuration_template" { + cloudformation_type_name = "AWS::ElasticBeanstalk::ConfigurationTemplate" +} + +resource_schema "aws_elasticbeanstalk_environment" { + cloudformation_type_name = "AWS::ElasticBeanstalk::Environment" +} + +resource_schema "aws_elasticloadbalancingv2_listener" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::Listener" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_elasticloadbalancingv2_listener_rule" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::ListenerRule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_elasticloadbalancingv2_load_balancer" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::LoadBalancer" +} + +resource_schema "aws_elasticloadbalancingv2_target_group" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::TargetGroup" +} + +resource_schema "aws_elasticloadbalancingv2_trust_store" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::TrustStore" +} + +resource_schema "aws_elasticloadbalancingv2_trust_store_revocation" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::TrustStoreRevocation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_entityresolution_id_mapping_workflow" { + cloudformation_type_name = "AWS::EntityResolution::IdMappingWorkflow" +} + +resource_schema "aws_entityresolution_id_namespace" { + cloudformation_type_name = "AWS::EntityResolution::IdNamespace" +} + +resource_schema "aws_entityresolution_matching_workflow" { + cloudformation_type_name = "AWS::EntityResolution::MatchingWorkflow" +} + +resource_schema "aws_entityresolution_policy_statement" { + cloudformation_type_name = "AWS::EntityResolution::PolicyStatement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_entityresolution_schema_mapping" { + cloudformation_type_name = "AWS::EntityResolution::SchemaMapping" +} + +resource_schema "aws_eventschemas_discoverer" { + cloudformation_type_name = "AWS::EventSchemas::Discoverer" +} + +resource_schema "aws_eventschemas_registry" { + cloudformation_type_name = "AWS::EventSchemas::Registry" +} + +resource_schema "aws_eventschemas_registry_policy" { + cloudformation_type_name = "AWS::EventSchemas::RegistryPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eventschemas_schema" { + cloudformation_type_name = "AWS::EventSchemas::Schema" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_events_api_destination" { + cloudformation_type_name = "AWS::Events::ApiDestination" +} + +resource_schema "aws_events_archive" { + cloudformation_type_name = "AWS::Events::Archive" +} + +resource_schema "aws_events_connection" { + cloudformation_type_name = "AWS::Events::Connection" +} + +resource_schema "aws_events_endpoint" { + cloudformation_type_name = "AWS::Events::Endpoint" +} + +resource_schema "aws_events_event_bus" { + cloudformation_type_name = "AWS::Events::EventBus" +} + +resource_schema "aws_events_rule" { + cloudformation_type_name = "AWS::Events::Rule" +} + +resource_schema "aws_evidently_experiment" { + cloudformation_type_name = "AWS::Evidently::Experiment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_feature" { + cloudformation_type_name = "AWS::Evidently::Feature" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_launch" { + cloudformation_type_name = "AWS::Evidently::Launch" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_project" { + cloudformation_type_name = "AWS::Evidently::Project" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_segment" { + cloudformation_type_name = "AWS::Evidently::Segment" +} + +resource_schema "aws_fis_experiment_template" { + cloudformation_type_name = "AWS::FIS::ExperimentTemplate" +} + +resource_schema "aws_fis_target_account_configuration" { + cloudformation_type_name = "AWS::FIS::TargetAccountConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_fms_notification_channel" { + cloudformation_type_name = "AWS::FMS::NotificationChannel" +} + +resource_schema "aws_fms_policy" { + cloudformation_type_name = "AWS::FMS::Policy" +} + +resource_schema "aws_fms_resource_set" { + cloudformation_type_name = "AWS::FMS::ResourceSet" +} + +resource_schema "aws_fsx_data_repository_association" { + cloudformation_type_name = "AWS::FSx::DataRepositoryAssociation" +} + +resource_schema "aws_finspace_environment" { + cloudformation_type_name = "AWS::FinSpace::Environment" +} + +resource_schema "aws_forecast_dataset" { + cloudformation_type_name = "AWS::Forecast::Dataset" +} + +resource_schema "aws_forecast_dataset_group" { + cloudformation_type_name = "AWS::Forecast::DatasetGroup" +} + +resource_schema "aws_frauddetector_detector" { + cloudformation_type_name = "AWS::FraudDetector::Detector" +} + +resource_schema "aws_frauddetector_entity_type" { + cloudformation_type_name = "AWS::FraudDetector::EntityType" +} + +resource_schema "aws_frauddetector_event_type" { + cloudformation_type_name = "AWS::FraudDetector::EventType" +} + +resource_schema "aws_frauddetector_label" { + cloudformation_type_name = "AWS::FraudDetector::Label" +} + +resource_schema "aws_frauddetector_list" { + cloudformation_type_name = "AWS::FraudDetector::List" +} + +resource_schema "aws_frauddetector_outcome" { + cloudformation_type_name = "AWS::FraudDetector::Outcome" +} + +resource_schema "aws_frauddetector_variable" { + cloudformation_type_name = "AWS::FraudDetector::Variable" +} + +resource_schema "aws_gamelift_alias" { + cloudformation_type_name = "AWS::GameLift::Alias" +} + +resource_schema "aws_gamelift_build" { + cloudformation_type_name = "AWS::GameLift::Build" +} + +resource_schema "aws_gamelift_container_group_definition" { + cloudformation_type_name = "AWS::GameLift::ContainerGroupDefinition" +} + +resource_schema "aws_gamelift_fleet" { + cloudformation_type_name = "AWS::GameLift::Fleet" +} + +resource_schema "aws_gamelift_game_server_group" { + cloudformation_type_name = "AWS::GameLift::GameServerGroup" +} + +resource_schema "aws_gamelift_game_session_queue" { + cloudformation_type_name = "AWS::GameLift::GameSessionQueue" +} + +resource_schema "aws_gamelift_location" { + cloudformation_type_name = "AWS::GameLift::Location" +} + +resource_schema "aws_gamelift_matchmaking_configuration" { + cloudformation_type_name = "AWS::GameLift::MatchmakingConfiguration" +} + +resource_schema "aws_gamelift_matchmaking_rule_set" { + cloudformation_type_name = "AWS::GameLift::MatchmakingRuleSet" +} + +resource_schema "aws_gamelift_script" { + cloudformation_type_name = "AWS::GameLift::Script" +} + +resource_schema "aws_globalaccelerator_accelerator" { + cloudformation_type_name = "AWS::GlobalAccelerator::Accelerator" +} + +resource_schema "aws_globalaccelerator_cross_account_attachment" { + cloudformation_type_name = "AWS::GlobalAccelerator::CrossAccountAttachment" +} + +resource_schema "aws_globalaccelerator_endpoint_group" { + cloudformation_type_name = "AWS::GlobalAccelerator::EndpointGroup" +} + +resource_schema "aws_globalaccelerator_listener" { + cloudformation_type_name = "AWS::GlobalAccelerator::Listener" +} + +resource_schema "aws_glue_registry" { + cloudformation_type_name = "AWS::Glue::Registry" +} + +resource_schema "aws_glue_schema" { + cloudformation_type_name = "AWS::Glue::Schema" +} + +resource_schema "aws_glue_schema_version" { + cloudformation_type_name = "AWS::Glue::SchemaVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_glue_schema_version_metadata" { + cloudformation_type_name = "AWS::Glue::SchemaVersionMetadata" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_glue_trigger" { + cloudformation_type_name = "AWS::Glue::Trigger" +} + +resource_schema "aws_grafana_workspace" { + cloudformation_type_name = "AWS::Grafana::Workspace" +} + +resource_schema "aws_greengrassv2_component_version" { + cloudformation_type_name = "AWS::GreengrassV2::ComponentVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_greengrassv2_deployment" { + cloudformation_type_name = "AWS::GreengrassV2::Deployment" +} + +resource_schema "aws_groundstation_config" { + cloudformation_type_name = "AWS::GroundStation::Config" +} + +resource_schema "aws_groundstation_dataflow_endpoint_group" { + cloudformation_type_name = "AWS::GroundStation::DataflowEndpointGroup" +} + +resource_schema "aws_groundstation_mission_profile" { + cloudformation_type_name = "AWS::GroundStation::MissionProfile" +} + +resource_schema "aws_guardduty_detector" { + cloudformation_type_name = "AWS::GuardDuty::Detector" +} + +resource_schema "aws_guardduty_filter" { + cloudformation_type_name = "AWS::GuardDuty::Filter" +} + +resource_schema "aws_guardduty_ip_set" { + cloudformation_type_name = "AWS::GuardDuty::IPSet" +} + +resource_schema "aws_guardduty_malware_protection_plan" { + cloudformation_type_name = "AWS::GuardDuty::MalwareProtectionPlan" +} + +resource_schema "aws_guardduty_master" { + cloudformation_type_name = "AWS::GuardDuty::Master" +} + +resource_schema "aws_guardduty_member" { + cloudformation_type_name = "AWS::GuardDuty::Member" +} + +resource_schema "aws_guardduty_threat_intel_set" { + cloudformation_type_name = "AWS::GuardDuty::ThreatIntelSet" +} + +resource_schema "aws_healthimaging_datastore" { + cloudformation_type_name = "AWS::HealthImaging::Datastore" +} + +resource_schema "aws_healthlake_fhir_datastore" { + cloudformation_type_name = "AWS::HealthLake::FHIRDatastore" +} + +resource_schema "aws_iam_group" { + cloudformation_type_name = "AWS::IAM::Group" +} + +resource_schema "aws_iam_group_policy" { + cloudformation_type_name = "AWS::IAM::GroupPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_instance_profile" { + cloudformation_type_name = "AWS::IAM::InstanceProfile" +} + +resource_schema "aws_iam_managed_policy" { + cloudformation_type_name = "AWS::IAM::ManagedPolicy" +} + +resource_schema "aws_iam_oidc_provider" { + cloudformation_type_name = "AWS::IAM::OIDCProvider" +} + +resource_schema "aws_iam_role" { + cloudformation_type_name = "AWS::IAM::Role" +} + +resource_schema "aws_iam_role_policy" { + cloudformation_type_name = "AWS::IAM::RolePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_saml_provider" { + cloudformation_type_name = "AWS::IAM::SAMLProvider" +} + +resource_schema "aws_iam_server_certificate" { + cloudformation_type_name = "AWS::IAM::ServerCertificate" +} + +resource_schema "aws_iam_service_linked_role" { + cloudformation_type_name = "AWS::IAM::ServiceLinkedRole" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_user" { + cloudformation_type_name = "AWS::IAM::User" +} + +resource_schema "aws_iam_user_policy" { + cloudformation_type_name = "AWS::IAM::UserPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_virtual_mfa_device" { + cloudformation_type_name = "AWS::IAM::VirtualMFADevice" +} + +resource_schema "aws_ivs_channel" { + cloudformation_type_name = "AWS::IVS::Channel" +} + +resource_schema "aws_ivs_encoder_configuration" { + cloudformation_type_name = "AWS::IVS::EncoderConfiguration" +} + +resource_schema "aws_ivs_playback_key_pair" { + cloudformation_type_name = "AWS::IVS::PlaybackKeyPair" +} + +resource_schema "aws_ivs_playback_restriction_policy" { + cloudformation_type_name = "AWS::IVS::PlaybackRestrictionPolicy" +} + +resource_schema "aws_ivs_recording_configuration" { + cloudformation_type_name = "AWS::IVS::RecordingConfiguration" +} + +resource_schema "aws_ivs_stage" { + cloudformation_type_name = "AWS::IVS::Stage" +} + +resource_schema "aws_ivs_storage_configuration" { + cloudformation_type_name = "AWS::IVS::StorageConfiguration" +} + +resource_schema "aws_ivs_stream_key" { + cloudformation_type_name = "AWS::IVS::StreamKey" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ivschat_logging_configuration" { + cloudformation_type_name = "AWS::IVSChat::LoggingConfiguration" +} + +resource_schema "aws_ivschat_room" { + cloudformation_type_name = "AWS::IVSChat::Room" +} + +resource_schema "aws_identitystore_group" { + cloudformation_type_name = "AWS::IdentityStore::Group" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_identitystore_group_membership" { + cloudformation_type_name = "AWS::IdentityStore::GroupMembership" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_imagebuilder_component" { + cloudformation_type_name = "AWS::ImageBuilder::Component" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_imagebuilder_container_recipe" { + cloudformation_type_name = "AWS::ImageBuilder::ContainerRecipe" +} + +resource_schema "aws_imagebuilder_distribution_configuration" { + cloudformation_type_name = "AWS::ImageBuilder::DistributionConfiguration" +} + +resource_schema "aws_imagebuilder_image" { + cloudformation_type_name = "AWS::ImageBuilder::Image" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_imagebuilder_image_pipeline" { + cloudformation_type_name = "AWS::ImageBuilder::ImagePipeline" +} + +resource_schema "aws_imagebuilder_image_recipe" { + cloudformation_type_name = "AWS::ImageBuilder::ImageRecipe" +} + +resource_schema "aws_imagebuilder_infrastructure_configuration" { + cloudformation_type_name = "AWS::ImageBuilder::InfrastructureConfiguration" +} + +resource_schema "aws_imagebuilder_lifecycle_policy" { + cloudformation_type_name = "AWS::ImageBuilder::LifecyclePolicy" +} + +resource_schema "aws_imagebuilder_workflow" { + cloudformation_type_name = "AWS::ImageBuilder::Workflow" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_inspector_assessment_target" { + cloudformation_type_name = "AWS::Inspector::AssessmentTarget" +} + +resource_schema "aws_inspector_assessment_template" { + cloudformation_type_name = "AWS::Inspector::AssessmentTemplate" +} + +resource_schema "aws_inspector_resource_group" { + cloudformation_type_name = "AWS::Inspector::ResourceGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_inspectorv2_cis_scan_configuration" { + cloudformation_type_name = "AWS::InspectorV2::CisScanConfiguration" +} + +resource_schema "aws_inspectorv2_filter" { + cloudformation_type_name = "AWS::InspectorV2::Filter" +} + +resource_schema "aws_internetmonitor_monitor" { + cloudformation_type_name = "AWS::InternetMonitor::Monitor" +} + +resource_schema "aws_iot_account_audit_configuration" { + cloudformation_type_name = "AWS::IoT::AccountAuditConfiguration" +} + +resource_schema "aws_iot_authorizer" { + cloudformation_type_name = "AWS::IoT::Authorizer" +} + +resource_schema "aws_iot_billing_group" { + cloudformation_type_name = "AWS::IoT::BillingGroup" +} + +resource_schema "aws_iot_ca_certificate" { + cloudformation_type_name = "AWS::IoT::CACertificate" +} + +resource_schema "aws_iot_certificate" { + cloudformation_type_name = "AWS::IoT::Certificate" +} + +resource_schema "aws_iot_certificate_provider" { + cloudformation_type_name = "AWS::IoT::CertificateProvider" +} + +resource_schema "aws_iot_custom_metric" { + cloudformation_type_name = "AWS::IoT::CustomMetric" +} + +resource_schema "aws_iot_dimension" { + cloudformation_type_name = "AWS::IoT::Dimension" +} + +resource_schema "aws_iot_domain_configuration" { + cloudformation_type_name = "AWS::IoT::DomainConfiguration" +} + +resource_schema "aws_iot_fleet_metric" { + cloudformation_type_name = "AWS::IoT::FleetMetric" +} + +resource_schema "aws_iot_job_template" { + cloudformation_type_name = "AWS::IoT::JobTemplate" +} + +resource_schema "aws_iot_logging" { + cloudformation_type_name = "AWS::IoT::Logging" +} + +resource_schema "aws_iot_mitigation_action" { + cloudformation_type_name = "AWS::IoT::MitigationAction" +} + +resource_schema "aws_iot_policy" { + cloudformation_type_name = "AWS::IoT::Policy" +} + +resource_schema "aws_iot_provisioning_template" { + cloudformation_type_name = "AWS::IoT::ProvisioningTemplate" +} + +resource_schema "aws_iot_resource_specific_logging" { + cloudformation_type_name = "AWS::IoT::ResourceSpecificLogging" +} + +resource_schema "aws_iot_role_alias" { + cloudformation_type_name = "AWS::IoT::RoleAlias" +} + +resource_schema "aws_iot_scheduled_audit" { + cloudformation_type_name = "AWS::IoT::ScheduledAudit" +} + +resource_schema "aws_iot_security_profile" { + cloudformation_type_name = "AWS::IoT::SecurityProfile" +} + +resource_schema "aws_iot_software_package" { + cloudformation_type_name = "AWS::IoT::SoftwarePackage" +} + +resource_schema "aws_iot_software_package_version" { + cloudformation_type_name = "AWS::IoT::SoftwarePackageVersion" +} + +resource_schema "aws_iot_thing" { + cloudformation_type_name = "AWS::IoT::Thing" +} + +resource_schema "aws_iot_thing_group" { + cloudformation_type_name = "AWS::IoT::ThingGroup" +} + +resource_schema "aws_iot_thing_type" { + cloudformation_type_name = "AWS::IoT::ThingType" +} + +resource_schema "aws_iot_topic_rule" { + cloudformation_type_name = "AWS::IoT::TopicRule" +} + +resource_schema "aws_iot_topic_rule_destination" { + cloudformation_type_name = "AWS::IoT::TopicRuleDestination" +} + +resource_schema "aws_iotanalytics_channel" { + cloudformation_type_name = "AWS::IoTAnalytics::Channel" +} + +resource_schema "aws_iotanalytics_dataset" { + cloudformation_type_name = "AWS::IoTAnalytics::Dataset" +} + +resource_schema "aws_iotanalytics_datastore" { + cloudformation_type_name = "AWS::IoTAnalytics::Datastore" +} + +resource_schema "aws_iotanalytics_pipeline" { + cloudformation_type_name = "AWS::IoTAnalytics::Pipeline" +} + +resource_schema "aws_iotcoredeviceadvisor_suite_definition" { + cloudformation_type_name = "AWS::IoTCoreDeviceAdvisor::SuiteDefinition" +} + +resource_schema "aws_iotevents_alarm_model" { + cloudformation_type_name = "AWS::IoTEvents::AlarmModel" +} + +resource_schema "aws_iotevents_detector_model" { + cloudformation_type_name = "AWS::IoTEvents::DetectorModel" +} + +resource_schema "aws_iotevents_input" { + cloudformation_type_name = "AWS::IoTEvents::Input" +} + +resource_schema "aws_iotfleethub_application" { + cloudformation_type_name = "AWS::IoTFleetHub::Application" +} + +resource_schema "aws_iotfleetwise_campaign" { + cloudformation_type_name = "AWS::IoTFleetWise::Campaign" +} + +resource_schema "aws_iotfleetwise_decoder_manifest" { + cloudformation_type_name = "AWS::IoTFleetWise::DecoderManifest" +} + +resource_schema "aws_iotfleetwise_fleet" { + cloudformation_type_name = "AWS::IoTFleetWise::Fleet" +} + +resource_schema "aws_iotfleetwise_model_manifest" { + cloudformation_type_name = "AWS::IoTFleetWise::ModelManifest" +} + +resource_schema "aws_iotfleetwise_signal_catalog" { + cloudformation_type_name = "AWS::IoTFleetWise::SignalCatalog" +} + +resource_schema "aws_iotfleetwise_vehicle" { + cloudformation_type_name = "AWS::IoTFleetWise::Vehicle" +} + +resource_schema "aws_iotsitewise_access_policy" { + cloudformation_type_name = "AWS::IoTSiteWise::AccessPolicy" +} + +resource_schema "aws_iotsitewise_asset" { + cloudformation_type_name = "AWS::IoTSiteWise::Asset" +} + +resource_schema "aws_iotsitewise_asset_model" { + cloudformation_type_name = "AWS::IoTSiteWise::AssetModel" +} + +resource_schema "aws_iotsitewise_dashboard" { + cloudformation_type_name = "AWS::IoTSiteWise::Dashboard" +} + +resource_schema "aws_iotsitewise_gateway" { + cloudformation_type_name = "AWS::IoTSiteWise::Gateway" +} + +resource_schema "aws_iotsitewise_portal" { + cloudformation_type_name = "AWS::IoTSiteWise::Portal" +} + +resource_schema "aws_iotsitewise_project" { + cloudformation_type_name = "AWS::IoTSiteWise::Project" +} + +resource_schema "aws_iottwinmaker_component_type" { + cloudformation_type_name = "AWS::IoTTwinMaker::ComponentType" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_entity" { + cloudformation_type_name = "AWS::IoTTwinMaker::Entity" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_scene" { + cloudformation_type_name = "AWS::IoTTwinMaker::Scene" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_sync_job" { + cloudformation_type_name = "AWS::IoTTwinMaker::SyncJob" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_workspace" { + cloudformation_type_name = "AWS::IoTTwinMaker::Workspace" +} + +resource_schema "aws_iotwireless_destination" { + cloudformation_type_name = "AWS::IoTWireless::Destination" +} + +resource_schema "aws_iotwireless_device_profile" { + cloudformation_type_name = "AWS::IoTWireless::DeviceProfile" +} + +resource_schema "aws_iotwireless_fuota_task" { + cloudformation_type_name = "AWS::IoTWireless::FuotaTask" +} + +resource_schema "aws_iotwireless_multicast_group" { + cloudformation_type_name = "AWS::IoTWireless::MulticastGroup" +} + +resource_schema "aws_iotwireless_network_analyzer_configuration" { + cloudformation_type_name = "AWS::IoTWireless::NetworkAnalyzerConfiguration" +} + +resource_schema "aws_iotwireless_partner_account" { + cloudformation_type_name = "AWS::IoTWireless::PartnerAccount" +} + +resource_schema "aws_iotwireless_service_profile" { + cloudformation_type_name = "AWS::IoTWireless::ServiceProfile" +} + +resource_schema "aws_iotwireless_task_definition" { + cloudformation_type_name = "AWS::IoTWireless::TaskDefinition" +} + +resource_schema "aws_iotwireless_wireless_device" { + cloudformation_type_name = "AWS::IoTWireless::WirelessDevice" +} + +resource_schema "aws_iotwireless_wireless_device_import_task" { + cloudformation_type_name = "AWS::IoTWireless::WirelessDeviceImportTask" +} + +resource_schema "aws_iotwireless_wireless_gateway" { + cloudformation_type_name = "AWS::IoTWireless::WirelessGateway" +} + +resource_schema "aws_kms_alias" { + cloudformation_type_name = "AWS::KMS::Alias" +} + +resource_schema "aws_kms_key" { + cloudformation_type_name = "AWS::KMS::Key" +} + +resource_schema "aws_kms_replica_key" { + cloudformation_type_name = "AWS::KMS::ReplicaKey" +} + +resource_schema "aws_kafkaconnect_connector" { + cloudformation_type_name = "AWS::KafkaConnect::Connector" +} + +resource_schema "aws_kafkaconnect_custom_plugin" { + cloudformation_type_name = "AWS::KafkaConnect::CustomPlugin" +} + +resource_schema "aws_kafkaconnect_worker_configuration" { + cloudformation_type_name = "AWS::KafkaConnect::WorkerConfiguration" +} + +resource_schema "aws_kendra_data_source" { + cloudformation_type_name = "AWS::Kendra::DataSource" +} + +resource_schema "aws_kendra_faq" { + cloudformation_type_name = "AWS::Kendra::Faq" +} + +resource_schema "aws_kendra_index" { + cloudformation_type_name = "AWS::Kendra::Index" +} + +resource_schema "aws_kendraranking_execution_plan" { + cloudformation_type_name = "AWS::KendraRanking::ExecutionPlan" +} + +resource_schema "aws_kinesis_stream" { + cloudformation_type_name = "AWS::Kinesis::Stream" +} + +resource_schema "aws_kinesisanalyticsv2_application" { + cloudformation_type_name = "AWS::KinesisAnalyticsV2::Application" +} + +resource_schema "aws_kinesisfirehose_delivery_stream" { + cloudformation_type_name = "AWS::KinesisFirehose::DeliveryStream" +} + +resource_schema "aws_kinesisvideo_signaling_channel" { + cloudformation_type_name = "AWS::KinesisVideo::SignalingChannel" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_kinesisvideo_stream" { + cloudformation_type_name = "AWS::KinesisVideo::Stream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lakeformation_data_cells_filter" { + cloudformation_type_name = "AWS::LakeFormation::DataCellsFilter" +} + +resource_schema "aws_lakeformation_principal_permissions" { + cloudformation_type_name = "AWS::LakeFormation::PrincipalPermissions" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lakeformation_tag" { + cloudformation_type_name = "AWS::LakeFormation::Tag" +} + +resource_schema "aws_lakeformation_tag_association" { + cloudformation_type_name = "AWS::LakeFormation::TagAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_alias" { + cloudformation_type_name = "AWS::Lambda::Alias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_code_signing_config" { + cloudformation_type_name = "AWS::Lambda::CodeSigningConfig" +} + +resource_schema "aws_lambda_event_invoke_config" { + cloudformation_type_name = "AWS::Lambda::EventInvokeConfig" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_event_source_mapping" { + cloudformation_type_name = "AWS::Lambda::EventSourceMapping" +} + +resource_schema "aws_lambda_function" { + cloudformation_type_name = "AWS::Lambda::Function" +} + +resource_schema "aws_lambda_layer_version" { + cloudformation_type_name = "AWS::Lambda::LayerVersion" +} + +resource_schema "aws_lambda_layer_version_permission" { + cloudformation_type_name = "AWS::Lambda::LayerVersionPermission" +} + +resource_schema "aws_lambda_permission" { + cloudformation_type_name = "AWS::Lambda::Permission" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_url" { + cloudformation_type_name = "AWS::Lambda::Url" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_version" { + cloudformation_type_name = "AWS::Lambda::Version" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_launchwizard_deployment" { + cloudformation_type_name = "AWS::LaunchWizard::Deployment" +} + +resource_schema "aws_lex_bot" { + cloudformation_type_name = "AWS::Lex::Bot" +} + +resource_schema "aws_lex_bot_alias" { + cloudformation_type_name = "AWS::Lex::BotAlias" +} + +resource_schema "aws_lex_bot_version" { + cloudformation_type_name = "AWS::Lex::BotVersion" +} + +resource_schema "aws_lex_resource_policy" { + cloudformation_type_name = "AWS::Lex::ResourcePolicy" +} + +resource_schema "aws_licensemanager_grant" { + cloudformation_type_name = "AWS::LicenseManager::Grant" +} + +resource_schema "aws_licensemanager_license" { + cloudformation_type_name = "AWS::LicenseManager::License" +} + +resource_schema "aws_lightsail_alarm" { + cloudformation_type_name = "AWS::Lightsail::Alarm" +} + +resource_schema "aws_lightsail_bucket" { + cloudformation_type_name = "AWS::Lightsail::Bucket" +} + +resource_schema "aws_lightsail_certificate" { + cloudformation_type_name = "AWS::Lightsail::Certificate" +} + +resource_schema "aws_lightsail_container" { + cloudformation_type_name = "AWS::Lightsail::Container" +} + +resource_schema "aws_lightsail_database" { + cloudformation_type_name = "AWS::Lightsail::Database" +} + +resource_schema "aws_lightsail_disk" { + cloudformation_type_name = "AWS::Lightsail::Disk" +} + +resource_schema "aws_lightsail_distribution" { + cloudformation_type_name = "AWS::Lightsail::Distribution" +} + +resource_schema "aws_lightsail_instance" { + cloudformation_type_name = "AWS::Lightsail::Instance" +} + +resource_schema "aws_lightsail_load_balancer" { + cloudformation_type_name = "AWS::Lightsail::LoadBalancer" +} + +resource_schema "aws_lightsail_load_balancer_tls_certificate" { + cloudformation_type_name = "AWS::Lightsail::LoadBalancerTlsCertificate" +} + +resource_schema "aws_lightsail_static_ip" { + cloudformation_type_name = "AWS::Lightsail::StaticIp" +} + +resource_schema "aws_location_api_key" { + cloudformation_type_name = "AWS::Location::APIKey" +} + +resource_schema "aws_location_geofence_collection" { + cloudformation_type_name = "AWS::Location::GeofenceCollection" +} + +resource_schema "aws_location_map" { + cloudformation_type_name = "AWS::Location::Map" +} + +resource_schema "aws_location_place_index" { + cloudformation_type_name = "AWS::Location::PlaceIndex" +} + +resource_schema "aws_location_route_calculator" { + cloudformation_type_name = "AWS::Location::RouteCalculator" +} + +resource_schema "aws_location_tracker" { + cloudformation_type_name = "AWS::Location::Tracker" +} + +resource_schema "aws_location_tracker_consumer" { + cloudformation_type_name = "AWS::Location::TrackerConsumer" +} + +resource_schema "aws_logs_account_policy" { + cloudformation_type_name = "AWS::Logs::AccountPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_logs_delivery" { + cloudformation_type_name = "AWS::Logs::Delivery" +} + +resource_schema "aws_logs_delivery_destination" { + cloudformation_type_name = "AWS::Logs::DeliveryDestination" +} + +resource_schema "aws_logs_delivery_source" { + cloudformation_type_name = "AWS::Logs::DeliverySource" +} + +resource_schema "aws_logs_destination" { + cloudformation_type_name = "AWS::Logs::Destination" +} + +resource_schema "aws_logs_log_anomaly_detector" { + cloudformation_type_name = "AWS::Logs::LogAnomalyDetector" +} + +resource_schema "aws_logs_log_group" { + cloudformation_type_name = "AWS::Logs::LogGroup" +} + +resource_schema "aws_logs_log_stream" { + cloudformation_type_name = "AWS::Logs::LogStream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_logs_metric_filter" { + cloudformation_type_name = "AWS::Logs::MetricFilter" +} + +resource_schema "aws_logs_query_definition" { + cloudformation_type_name = "AWS::Logs::QueryDefinition" +} + +resource_schema "aws_logs_resource_policy" { + cloudformation_type_name = "AWS::Logs::ResourcePolicy" +} + +resource_schema "aws_logs_subscription_filter" { + cloudformation_type_name = "AWS::Logs::SubscriptionFilter" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lookoutequipment_inference_scheduler" { + cloudformation_type_name = "AWS::LookoutEquipment::InferenceScheduler" +} + +resource_schema "aws_lookoutmetrics_alert" { + cloudformation_type_name = "AWS::LookoutMetrics::Alert" +} + +resource_schema "aws_lookoutmetrics_anomaly_detector" { + cloudformation_type_name = "AWS::LookoutMetrics::AnomalyDetector" +} + +resource_schema "aws_lookoutvision_project" { + cloudformation_type_name = "AWS::LookoutVision::Project" +} + +resource_schema "aws_m2_application" { + cloudformation_type_name = "AWS::M2::Application" +} + +resource_schema "aws_m2_environment" { + cloudformation_type_name = "AWS::M2::Environment" +} + +resource_schema "aws_msk_batch_scram_secret" { + cloudformation_type_name = "AWS::MSK::BatchScramSecret" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_msk_cluster" { + cloudformation_type_name = "AWS::MSK::Cluster" +} + +resource_schema "aws_msk_cluster_policy" { + cloudformation_type_name = "AWS::MSK::ClusterPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_msk_configuration" { + cloudformation_type_name = "AWS::MSK::Configuration" +} + +resource_schema "aws_msk_replicator" { + cloudformation_type_name = "AWS::MSK::Replicator" +} + +resource_schema "aws_msk_serverless_cluster" { + cloudformation_type_name = "AWS::MSK::ServerlessCluster" +} + +resource_schema "aws_msk_vpc_connection" { + cloudformation_type_name = "AWS::MSK::VpcConnection" +} + +resource_schema "aws_mwaa_environment" { + cloudformation_type_name = "AWS::MWAA::Environment" +} + +resource_schema "aws_macie_allow_list" { + cloudformation_type_name = "AWS::Macie::AllowList" +} + +resource_schema "aws_macie_custom_data_identifier" { + cloudformation_type_name = "AWS::Macie::CustomDataIdentifier" +} + +resource_schema "aws_macie_findings_filter" { + cloudformation_type_name = "AWS::Macie::FindingsFilter" +} + +resource_schema "aws_macie_session" { + cloudformation_type_name = "AWS::Macie::Session" +} + +resource_schema "aws_managedblockchain_accessor" { + cloudformation_type_name = "AWS::ManagedBlockchain::Accessor" +} + +resource_schema "aws_mediaconnect_bridge" { + cloudformation_type_name = "AWS::MediaConnect::Bridge" +} + +resource_schema "aws_mediaconnect_bridge_output" { + cloudformation_type_name = "AWS::MediaConnect::BridgeOutput" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediaconnect_bridge_source" { + cloudformation_type_name = "AWS::MediaConnect::BridgeSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediaconnect_flow" { + cloudformation_type_name = "AWS::MediaConnect::Flow" +} + +resource_schema "aws_mediaconnect_flow_entitlement" { + cloudformation_type_name = "AWS::MediaConnect::FlowEntitlement" +} + +resource_schema "aws_mediaconnect_flow_output" { + cloudformation_type_name = "AWS::MediaConnect::FlowOutput" +} + +resource_schema "aws_mediaconnect_flow_source" { + cloudformation_type_name = "AWS::MediaConnect::FlowSource" +} + +resource_schema "aws_mediaconnect_flow_vpc_interface" { + cloudformation_type_name = "AWS::MediaConnect::FlowVpcInterface" +} + +resource_schema "aws_mediaconnect_gateway" { + cloudformation_type_name = "AWS::MediaConnect::Gateway" +} + +resource_schema "aws_medialive_multiplex" { + cloudformation_type_name = "AWS::MediaLive::Multiplex" +} + +resource_schema "aws_medialive_multiplexprogram" { + cloudformation_type_name = "AWS::MediaLive::Multiplexprogram" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackage_asset" { + cloudformation_type_name = "AWS::MediaPackage::Asset" +} + +resource_schema "aws_mediapackage_channel" { + cloudformation_type_name = "AWS::MediaPackage::Channel" +} + +resource_schema "aws_mediapackage_origin_endpoint" { + cloudformation_type_name = "AWS::MediaPackage::OriginEndpoint" +} + +resource_schema "aws_mediapackage_packaging_configuration" { + cloudformation_type_name = "AWS::MediaPackage::PackagingConfiguration" +} + +resource_schema "aws_mediapackage_packaging_group" { + cloudformation_type_name = "AWS::MediaPackage::PackagingGroup" +} + +resource_schema "aws_mediapackagev2_channel" { + cloudformation_type_name = "AWS::MediaPackageV2::Channel" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackagev2_channel_group" { + cloudformation_type_name = "AWS::MediaPackageV2::ChannelGroup" +} + +resource_schema "aws_mediapackagev2_channel_policy" { + cloudformation_type_name = "AWS::MediaPackageV2::ChannelPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackagev2_origin_endpoint" { + cloudformation_type_name = "AWS::MediaPackageV2::OriginEndpoint" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackagev2_origin_endpoint_policy" { + cloudformation_type_name = "AWS::MediaPackageV2::OriginEndpointPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediatailor_channel" { + cloudformation_type_name = "AWS::MediaTailor::Channel" +} + +resource_schema "aws_mediatailor_channel_policy" { + cloudformation_type_name = "AWS::MediaTailor::ChannelPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediatailor_live_source" { + cloudformation_type_name = "AWS::MediaTailor::LiveSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediatailor_playback_configuration" { + cloudformation_type_name = "AWS::MediaTailor::PlaybackConfiguration" +} + +resource_schema "aws_mediatailor_source_location" { + cloudformation_type_name = "AWS::MediaTailor::SourceLocation" +} + +resource_schema "aws_mediatailor_vod_source" { + cloudformation_type_name = "AWS::MediaTailor::VodSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_memorydb_acl" { + cloudformation_type_name = "AWS::MemoryDB::ACL" +} + +resource_schema "aws_memorydb_cluster" { + cloudformation_type_name = "AWS::MemoryDB::Cluster" +} + +resource_schema "aws_memorydb_parameter_group" { + cloudformation_type_name = "AWS::MemoryDB::ParameterGroup" +} + +resource_schema "aws_memorydb_subnet_group" { + cloudformation_type_name = "AWS::MemoryDB::SubnetGroup" +} + +resource_schema "aws_memorydb_user" { + cloudformation_type_name = "AWS::MemoryDB::User" +} + +resource_schema "aws_neptune_db_cluster" { + cloudformation_type_name = "AWS::Neptune::DBCluster" +} + +resource_schema "aws_neptunegraph_graph" { + cloudformation_type_name = "AWS::NeptuneGraph::Graph" +} + +resource_schema "aws_neptunegraph_private_graph_endpoint" { + cloudformation_type_name = "AWS::NeptuneGraph::PrivateGraphEndpoint" +} + +resource_schema "aws_networkfirewall_firewall" { + cloudformation_type_name = "AWS::NetworkFirewall::Firewall" +} + +resource_schema "aws_networkfirewall_firewall_policy" { + cloudformation_type_name = "AWS::NetworkFirewall::FirewallPolicy" +} + +resource_schema "aws_networkfirewall_logging_configuration" { + cloudformation_type_name = "AWS::NetworkFirewall::LoggingConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkfirewall_rule_group" { + cloudformation_type_name = "AWS::NetworkFirewall::RuleGroup" +} + +resource_schema "aws_networkfirewall_tls_inspection_configuration" { + cloudformation_type_name = "AWS::NetworkFirewall::TLSInspectionConfiguration" +} + +resource_schema "aws_networkmanager_connect_attachment" { + cloudformation_type_name = "AWS::NetworkManager::ConnectAttachment" +} + +resource_schema "aws_networkmanager_connect_peer" { + cloudformation_type_name = "AWS::NetworkManager::ConnectPeer" +} + +resource_schema "aws_networkmanager_core_network" { + cloudformation_type_name = "AWS::NetworkManager::CoreNetwork" +} + +resource_schema "aws_networkmanager_customer_gateway_association" { + cloudformation_type_name = "AWS::NetworkManager::CustomerGatewayAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_device" { + cloudformation_type_name = "AWS::NetworkManager::Device" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_global_network" { + cloudformation_type_name = "AWS::NetworkManager::GlobalNetwork" +} + +resource_schema "aws_networkmanager_link" { + cloudformation_type_name = "AWS::NetworkManager::Link" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_link_association" { + cloudformation_type_name = "AWS::NetworkManager::LinkAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_site" { + cloudformation_type_name = "AWS::NetworkManager::Site" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_site_to_site_vpn_attachment" { + cloudformation_type_name = "AWS::NetworkManager::SiteToSiteVpnAttachment" +} + +resource_schema "aws_networkmanager_transit_gateway_peering" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayPeering" +} + +resource_schema "aws_networkmanager_transit_gateway_registration" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayRegistration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_transit_gateway_route_table_attachment" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayRouteTableAttachment" +} + +resource_schema "aws_networkmanager_vpc_attachment" { + cloudformation_type_name = "AWS::NetworkManager::VpcAttachment" +} + +resource_schema "aws_nimblestudio_launch_profile" { + cloudformation_type_name = "AWS::NimbleStudio::LaunchProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_nimblestudio_streaming_image" { + cloudformation_type_name = "AWS::NimbleStudio::StreamingImage" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_nimblestudio_studio" { + cloudformation_type_name = "AWS::NimbleStudio::Studio" +} + +resource_schema "aws_nimblestudio_studio_component" { + cloudformation_type_name = "AWS::NimbleStudio::StudioComponent" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_osis_pipeline" { + cloudformation_type_name = "AWS::OSIS::Pipeline" +} + +resource_schema "aws_oam_link" { + cloudformation_type_name = "AWS::Oam::Link" +} + +resource_schema "aws_oam_sink" { + cloudformation_type_name = "AWS::Oam::Sink" +} + +resource_schema "aws_omics_annotation_store" { + cloudformation_type_name = "AWS::Omics::AnnotationStore" +} + +resource_schema "aws_omics_reference_store" { + cloudformation_type_name = "AWS::Omics::ReferenceStore" +} + +resource_schema "aws_omics_run_group" { + cloudformation_type_name = "AWS::Omics::RunGroup" +} + +resource_schema "aws_omics_sequence_store" { + cloudformation_type_name = "AWS::Omics::SequenceStore" +} + +resource_schema "aws_omics_variant_store" { + cloudformation_type_name = "AWS::Omics::VariantStore" +} + +resource_schema "aws_omics_workflow" { + cloudformation_type_name = "AWS::Omics::Workflow" +} + +resource_schema "aws_opensearchserverless_access_policy" { + cloudformation_type_name = "AWS::OpenSearchServerless::AccessPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_collection" { + cloudformation_type_name = "AWS::OpenSearchServerless::Collection" +} + +resource_schema "aws_opensearchserverless_lifecycle_policy" { + cloudformation_type_name = "AWS::OpenSearchServerless::LifecyclePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_security_config" { + cloudformation_type_name = "AWS::OpenSearchServerless::SecurityConfig" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_security_policy" { + cloudformation_type_name = "AWS::OpenSearchServerless::SecurityPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_vpc_endpoint" { + cloudformation_type_name = "AWS::OpenSearchServerless::VpcEndpoint" +} + +resource_schema "aws_opensearchservice_domain" { + cloudformation_type_name = "AWS::OpenSearchService::Domain" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opsworkscm_server" { + cloudformation_type_name = "AWS::OpsWorksCM::Server" +} + +resource_schema "aws_organizations_account" { + cloudformation_type_name = "AWS::Organizations::Account" +} + +resource_schema "aws_organizations_organization" { + cloudformation_type_name = "AWS::Organizations::Organization" +} + +resource_schema "aws_organizations_organizational_unit" { + cloudformation_type_name = "AWS::Organizations::OrganizationalUnit" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_organizations_policy" { + cloudformation_type_name = "AWS::Organizations::Policy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_organizations_resource_policy" { + cloudformation_type_name = "AWS::Organizations::ResourcePolicy" +} + +resource_schema "aws_pcaconnectorad_connector" { + cloudformation_type_name = "AWS::PCAConnectorAD::Connector" +} + +resource_schema "aws_pcaconnectorad_directory_registration" { + cloudformation_type_name = "AWS::PCAConnectorAD::DirectoryRegistration" +} + +resource_schema "aws_pcaconnectorad_service_principal_name" { + cloudformation_type_name = "AWS::PCAConnectorAD::ServicePrincipalName" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorad_template" { + cloudformation_type_name = "AWS::PCAConnectorAD::Template" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorad_template_group_access_control_entry" { + cloudformation_type_name = "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_panorama_application_instance" { + cloudformation_type_name = "AWS::Panorama::ApplicationInstance" +} + +resource_schema "aws_panorama_package" { + cloudformation_type_name = "AWS::Panorama::Package" +} + +resource_schema "aws_panorama_package_version" { + cloudformation_type_name = "AWS::Panorama::PackageVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_paymentcryptography_alias" { + cloudformation_type_name = "AWS::PaymentCryptography::Alias" +} + +resource_schema "aws_paymentcryptography_key" { + cloudformation_type_name = "AWS::PaymentCryptography::Key" +} + +resource_schema "aws_personalize_dataset" { + cloudformation_type_name = "AWS::Personalize::Dataset" +} + +resource_schema "aws_personalize_dataset_group" { + cloudformation_type_name = "AWS::Personalize::DatasetGroup" +} + +resource_schema "aws_personalize_schema" { + cloudformation_type_name = "AWS::Personalize::Schema" +} + +resource_schema "aws_personalize_solution" { + cloudformation_type_name = "AWS::Personalize::Solution" +} + +resource_schema "aws_pinpoint_in_app_template" { + cloudformation_type_name = "AWS::Pinpoint::InAppTemplate" +} + +resource_schema "aws_pipes_pipe" { + cloudformation_type_name = "AWS::Pipes::Pipe" +} + +resource_schema "aws_proton_environment_account_connection" { + cloudformation_type_name = "AWS::Proton::EnvironmentAccountConnection" +} + +resource_schema "aws_proton_environment_template" { + cloudformation_type_name = "AWS::Proton::EnvironmentTemplate" +} + +resource_schema "aws_proton_service_template" { + cloudformation_type_name = "AWS::Proton::ServiceTemplate" +} + +resource_schema "aws_qbusiness_application" { + cloudformation_type_name = "AWS::QBusiness::Application" +} + +resource_schema "aws_qbusiness_data_source" { + cloudformation_type_name = "AWS::QBusiness::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_index" { + cloudformation_type_name = "AWS::QBusiness::Index" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_plugin" { + cloudformation_type_name = "AWS::QBusiness::Plugin" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_retriever" { + cloudformation_type_name = "AWS::QBusiness::Retriever" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_web_experience" { + cloudformation_type_name = "AWS::QBusiness::WebExperience" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qldb_stream" { + cloudformation_type_name = "AWS::QLDB::Stream" +} + +resource_schema "aws_quicksight_analysis" { + cloudformation_type_name = "AWS::QuickSight::Analysis" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_dashboard" { + cloudformation_type_name = "AWS::QuickSight::Dashboard" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_data_set" { + cloudformation_type_name = "AWS::QuickSight::DataSet" +} + +resource_schema "aws_quicksight_data_source" { + cloudformation_type_name = "AWS::QuickSight::DataSource" +} + +resource_schema "aws_quicksight_refresh_schedule" { + cloudformation_type_name = "AWS::QuickSight::RefreshSchedule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_template" { + cloudformation_type_name = "AWS::QuickSight::Template" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_theme" { + cloudformation_type_name = "AWS::QuickSight::Theme" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_topic" { + cloudformation_type_name = "AWS::QuickSight::Topic" +} + +resource_schema "aws_quicksight_vpc_connection" { + cloudformation_type_name = "AWS::QuickSight::VPCConnection" +} + +resource_schema "aws_ram_permission" { + cloudformation_type_name = "AWS::RAM::Permission" +} + +resource_schema "aws_rds_custom_db_engine_version" { + cloudformation_type_name = "AWS::RDS::CustomDBEngineVersion" +} + +resource_schema "aws_rds_db_cluster" { + cloudformation_type_name = "AWS::RDS::DBCluster" +} + +resource_schema "aws_rds_db_cluster_parameter_group" { + cloudformation_type_name = "AWS::RDS::DBClusterParameterGroup" +} + +resource_schema "aws_rds_db_instance" { + cloudformation_type_name = "AWS::RDS::DBInstance" +} + +resource_schema "aws_rds_db_parameter_group" { + cloudformation_type_name = "AWS::RDS::DBParameterGroup" +} + +resource_schema "aws_rds_db_proxy" { + cloudformation_type_name = "AWS::RDS::DBProxy" +} + +resource_schema "aws_rds_db_proxy_endpoint" { + cloudformation_type_name = "AWS::RDS::DBProxyEndpoint" +} + +resource_schema "aws_rds_db_proxy_target_group" { + cloudformation_type_name = "AWS::RDS::DBProxyTargetGroup" +} + +resource_schema "aws_rds_db_subnet_group" { + cloudformation_type_name = "AWS::RDS::DBSubnetGroup" +} + +resource_schema "aws_rds_event_subscription" { + cloudformation_type_name = "AWS::RDS::EventSubscription" +} + +resource_schema "aws_rds_global_cluster" { + cloudformation_type_name = "AWS::RDS::GlobalCluster" +} + +resource_schema "aws_rds_integration" { + cloudformation_type_name = "AWS::RDS::Integration" +} + +resource_schema "aws_rds_option_group" { + cloudformation_type_name = "AWS::RDS::OptionGroup" +} + +resource_schema "aws_rum_app_monitor" { + cloudformation_type_name = "AWS::RUM::AppMonitor" +} + +resource_schema "aws_redshift_cluster" { + cloudformation_type_name = "AWS::Redshift::Cluster" +} + +resource_schema "aws_redshift_cluster_parameter_group" { + cloudformation_type_name = "AWS::Redshift::ClusterParameterGroup" +} + +resource_schema "aws_redshift_cluster_subnet_group" { + cloudformation_type_name = "AWS::Redshift::ClusterSubnetGroup" +} + +resource_schema "aws_redshift_endpoint_access" { + cloudformation_type_name = "AWS::Redshift::EndpointAccess" +} + +resource_schema "aws_redshift_endpoint_authorization" { + cloudformation_type_name = "AWS::Redshift::EndpointAuthorization" +} + +resource_schema "aws_redshift_event_subscription" { + cloudformation_type_name = "AWS::Redshift::EventSubscription" +} + +resource_schema "aws_redshift_scheduled_action" { + cloudformation_type_name = "AWS::Redshift::ScheduledAction" +} + +resource_schema "aws_redshiftserverless_namespace" { + cloudformation_type_name = "AWS::RedshiftServerless::Namespace" +} + +resource_schema "aws_redshiftserverless_workgroup" { + cloudformation_type_name = "AWS::RedshiftServerless::Workgroup" +} + +resource_schema "aws_refactorspaces_application" { + cloudformation_type_name = "AWS::RefactorSpaces::Application" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_refactorspaces_environment" { + cloudformation_type_name = "AWS::RefactorSpaces::Environment" +} + +resource_schema "aws_refactorspaces_route" { + cloudformation_type_name = "AWS::RefactorSpaces::Route" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_refactorspaces_service" { + cloudformation_type_name = "AWS::RefactorSpaces::Service" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_rekognition_collection" { + cloudformation_type_name = "AWS::Rekognition::Collection" +} + +resource_schema "aws_rekognition_project" { + cloudformation_type_name = "AWS::Rekognition::Project" +} + +resource_schema "aws_rekognition_stream_processor" { + cloudformation_type_name = "AWS::Rekognition::StreamProcessor" +} + +resource_schema "aws_resiliencehub_app" { + cloudformation_type_name = "AWS::ResilienceHub::App" +} + +resource_schema "aws_resiliencehub_resiliency_policy" { + cloudformation_type_name = "AWS::ResilienceHub::ResiliencyPolicy" +} + +resource_schema "aws_resourceexplorer2_default_view_association" { + cloudformation_type_name = "AWS::ResourceExplorer2::DefaultViewAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_resourceexplorer2_index" { + cloudformation_type_name = "AWS::ResourceExplorer2::Index" +} + +resource_schema "aws_resourceexplorer2_view" { + cloudformation_type_name = "AWS::ResourceExplorer2::View" +} + +resource_schema "aws_resourcegroups_group" { + cloudformation_type_name = "AWS::ResourceGroups::Group" +} + +resource_schema "aws_robomaker_fleet" { + cloudformation_type_name = "AWS::RoboMaker::Fleet" +} + +resource_schema "aws_robomaker_robot" { + cloudformation_type_name = "AWS::RoboMaker::Robot" +} + +resource_schema "aws_robomaker_robot_application" { + cloudformation_type_name = "AWS::RoboMaker::RobotApplication" +} + +resource_schema "aws_robomaker_robot_application_version" { + cloudformation_type_name = "AWS::RoboMaker::RobotApplicationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_robomaker_simulation_application" { + cloudformation_type_name = "AWS::RoboMaker::SimulationApplication" +} + +resource_schema "aws_robomaker_simulation_application_version" { + cloudformation_type_name = "AWS::RoboMaker::SimulationApplicationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_rolesanywhere_crl" { + cloudformation_type_name = "AWS::RolesAnywhere::CRL" +} + +resource_schema "aws_rolesanywhere_profile" { + cloudformation_type_name = "AWS::RolesAnywhere::Profile" +} + +resource_schema "aws_rolesanywhere_trust_anchor" { + cloudformation_type_name = "AWS::RolesAnywhere::TrustAnchor" +} + +resource_schema "aws_route53_cidr_collection" { + cloudformation_type_name = "AWS::Route53::CidrCollection" +} + +resource_schema "aws_route53_dnssec" { + cloudformation_type_name = "AWS::Route53::DNSSEC" +} + +resource_schema "aws_route53_health_check" { + cloudformation_type_name = "AWS::Route53::HealthCheck" +} + +resource_schema "aws_route53_hosted_zone" { + cloudformation_type_name = "AWS::Route53::HostedZone" +} + +resource_schema "aws_route53_key_signing_key" { + cloudformation_type_name = "AWS::Route53::KeySigningKey" +} + +resource_schema "aws_route53profiles_profile" { + cloudformation_type_name = "AWS::Route53Profiles::Profile" +} + +resource_schema "aws_route53profiles_profile_association" { + cloudformation_type_name = "AWS::Route53Profiles::ProfileAssociation" +} + +resource_schema "aws_route53profiles_profile_resource_association" { + cloudformation_type_name = "AWS::Route53Profiles::ProfileResourceAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53recoverycontrol_cluster" { + cloudformation_type_name = "AWS::Route53RecoveryControl::Cluster" +} + +resource_schema "aws_route53recoverycontrol_control_panel" { + cloudformation_type_name = "AWS::Route53RecoveryControl::ControlPanel" +} + +resource_schema "aws_route53recoverycontrol_routing_control" { + cloudformation_type_name = "AWS::Route53RecoveryControl::RoutingControl" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53recoverycontrol_safety_rule" { + cloudformation_type_name = "AWS::Route53RecoveryControl::SafetyRule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53recoveryreadiness_cell" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::Cell" +} + +resource_schema "aws_route53recoveryreadiness_readiness_check" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::ReadinessCheck" +} + +resource_schema "aws_route53recoveryreadiness_recovery_group" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::RecoveryGroup" +} + +resource_schema "aws_route53recoveryreadiness_resource_set" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::ResourceSet" +} + +resource_schema "aws_route53resolver_firewall_domain_list" { + cloudformation_type_name = "AWS::Route53Resolver::FirewallDomainList" +} + +resource_schema "aws_route53resolver_firewall_rule_group" { + cloudformation_type_name = "AWS::Route53Resolver::FirewallRuleGroup" +} + +resource_schema "aws_route53resolver_firewall_rule_group_association" { + cloudformation_type_name = "AWS::Route53Resolver::FirewallRuleGroupAssociation" +} + +resource_schema "aws_route53resolver_outpost_resolver" { + cloudformation_type_name = "AWS::Route53Resolver::OutpostResolver" +} + +resource_schema "aws_route53resolver_resolver_config" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverConfig" +} + +resource_schema "aws_route53resolver_resolver_dnssec_config" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverDNSSECConfig" +} + +resource_schema "aws_route53resolver_resolver_query_logging_config" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverQueryLoggingConfig" +} + +resource_schema "aws_route53resolver_resolver_query_logging_config_association" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation" +} + +resource_schema "aws_route53resolver_resolver_rule" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverRule" +} + +resource_schema "aws_route53resolver_resolver_rule_association" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverRuleAssociation" +} + +resource_schema "aws_s3_access_grant" { + cloudformation_type_name = "AWS::S3::AccessGrant" +} + +resource_schema "aws_s3_access_grants_instance" { + cloudformation_type_name = "AWS::S3::AccessGrantsInstance" +} + +resource_schema "aws_s3_access_grants_location" { + cloudformation_type_name = "AWS::S3::AccessGrantsLocation" +} + +resource_schema "aws_s3_access_point" { + cloudformation_type_name = "AWS::S3::AccessPoint" +} + +resource_schema "aws_s3_bucket" { + cloudformation_type_name = "AWS::S3::Bucket" +} + +resource_schema "aws_s3_bucket_policy" { + cloudformation_type_name = "AWS::S3::BucketPolicy" +} + +resource_schema "aws_s3_multi_region_access_point" { + cloudformation_type_name = "AWS::S3::MultiRegionAccessPoint" +} + +resource_schema "aws_s3_multi_region_access_point_policy" { + cloudformation_type_name = "AWS::S3::MultiRegionAccessPointPolicy" +} + +resource_schema "aws_s3_storage_lens" { + cloudformation_type_name = "AWS::S3::StorageLens" +} + +resource_schema "aws_s3_storage_lens_group" { + cloudformation_type_name = "AWS::S3::StorageLensGroup" +} + +resource_schema "aws_s3express_bucket_policy" { + cloudformation_type_name = "AWS::S3Express::BucketPolicy" +} + +resource_schema "aws_s3express_directory_bucket" { + cloudformation_type_name = "AWS::S3Express::DirectoryBucket" +} + +resource_schema "aws_s3objectlambda_access_point" { + cloudformation_type_name = "AWS::S3ObjectLambda::AccessPoint" +} + +resource_schema "aws_s3objectlambda_access_point_policy" { + cloudformation_type_name = "AWS::S3ObjectLambda::AccessPointPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_access_point" { + cloudformation_type_name = "AWS::S3Outposts::AccessPoint" +} + +resource_schema "aws_s3outposts_bucket" { + cloudformation_type_name = "AWS::S3Outposts::Bucket" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_bucket_policy" { + cloudformation_type_name = "AWS::S3Outposts::BucketPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_endpoint" { + cloudformation_type_name = "AWS::S3Outposts::Endpoint" +} + +resource_schema "aws_ses_configuration_set" { + cloudformation_type_name = "AWS::SES::ConfigurationSet" +} + +resource_schema "aws_ses_configuration_set_event_destination" { + cloudformation_type_name = "AWS::SES::ConfigurationSetEventDestination" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ses_contact_list" { + cloudformation_type_name = "AWS::SES::ContactList" +} + +resource_schema "aws_ses_dedicated_ip_pool" { + cloudformation_type_name = "AWS::SES::DedicatedIpPool" +} + +resource_schema "aws_ses_email_identity" { + cloudformation_type_name = "AWS::SES::EmailIdentity" +} + +resource_schema "aws_ses_mail_manager_addon_instance" { + cloudformation_type_name = "AWS::SES::MailManagerAddonInstance" +} + +resource_schema "aws_ses_mail_manager_addon_subscription" { + cloudformation_type_name = "AWS::SES::MailManagerAddonSubscription" +} + +resource_schema "aws_ses_mail_manager_archive" { + cloudformation_type_name = "AWS::SES::MailManagerArchive" +} + +resource_schema "aws_ses_mail_manager_ingress_point" { + cloudformation_type_name = "AWS::SES::MailManagerIngressPoint" +} + +resource_schema "aws_ses_mail_manager_relay" { + cloudformation_type_name = "AWS::SES::MailManagerRelay" +} + +resource_schema "aws_ses_mail_manager_rule_set" { + cloudformation_type_name = "AWS::SES::MailManagerRuleSet" +} + +resource_schema "aws_ses_mail_manager_traffic_policy" { + cloudformation_type_name = "AWS::SES::MailManagerTrafficPolicy" +} + +resource_schema "aws_ses_template" { + cloudformation_type_name = "AWS::SES::Template" +} + +resource_schema "aws_ses_vdm_attributes" { + cloudformation_type_name = "AWS::SES::VdmAttributes" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sns_topic" { + cloudformation_type_name = "AWS::SNS::Topic" +} + +resource_schema "aws_sns_topic_inline_policy" { + cloudformation_type_name = "AWS::SNS::TopicInlinePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sqs_queue" { + cloudformation_type_name = "AWS::SQS::Queue" +} + +resource_schema "aws_sqs_queue_inline_policy" { + cloudformation_type_name = "AWS::SQS::QueueInlinePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ssm_association" { + cloudformation_type_name = "AWS::SSM::Association" +} + +resource_schema "aws_ssm_document" { + cloudformation_type_name = "AWS::SSM::Document" +} + +resource_schema "aws_ssm_parameter" { + cloudformation_type_name = "AWS::SSM::Parameter" +} + +resource_schema "aws_ssm_patch_baseline" { + cloudformation_type_name = "AWS::SSM::PatchBaseline" +} + +resource_schema "aws_ssm_resource_data_sync" { + cloudformation_type_name = "AWS::SSM::ResourceDataSync" +} + +resource_schema "aws_ssm_resource_policy" { + cloudformation_type_name = "AWS::SSM::ResourcePolicy" +} + +resource_schema "aws_ssmcontacts_contact" { + cloudformation_type_name = "AWS::SSMContacts::Contact" +} + +resource_schema "aws_ssmcontacts_contact_channel" { + cloudformation_type_name = "AWS::SSMContacts::ContactChannel" +} + +resource_schema "aws_ssmcontacts_plan" { + cloudformation_type_name = "AWS::SSMContacts::Plan" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ssmcontacts_rotation" { + cloudformation_type_name = "AWS::SSMContacts::Rotation" +} + +resource_schema "aws_ssmincidents_replication_set" { + cloudformation_type_name = "AWS::SSMIncidents::ReplicationSet" +} + +resource_schema "aws_ssmincidents_response_plan" { + cloudformation_type_name = "AWS::SSMIncidents::ResponsePlan" +} + +resource_schema "aws_sso_application" { + cloudformation_type_name = "AWS::SSO::Application" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sso_application_assignment" { + cloudformation_type_name = "AWS::SSO::ApplicationAssignment" +} + +resource_schema "aws_sso_assignment" { + cloudformation_type_name = "AWS::SSO::Assignment" +} + +resource_schema "aws_sso_instance" { + cloudformation_type_name = "AWS::SSO::Instance" +} + +resource_schema "aws_sso_instance_access_control_attribute_configuration" { + cloudformation_type_name = "AWS::SSO::InstanceAccessControlAttributeConfiguration" +} + +resource_schema "aws_sso_permission_set" { + cloudformation_type_name = "AWS::SSO::PermissionSet" +} + +resource_schema "aws_sagemaker_app" { + cloudformation_type_name = "AWS::SageMaker::App" +} + +resource_schema "aws_sagemaker_app_image_config" { + cloudformation_type_name = "AWS::SageMaker::AppImageConfig" +} + +resource_schema "aws_sagemaker_data_quality_job_definition" { + cloudformation_type_name = "AWS::SageMaker::DataQualityJobDefinition" +} + +resource_schema "aws_sagemaker_device" { + cloudformation_type_name = "AWS::SageMaker::Device" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_device_fleet" { + cloudformation_type_name = "AWS::SageMaker::DeviceFleet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_domain" { + cloudformation_type_name = "AWS::SageMaker::Domain" +} + +resource_schema "aws_sagemaker_feature_group" { + cloudformation_type_name = "AWS::SageMaker::FeatureGroup" +} + +resource_schema "aws_sagemaker_image" { + cloudformation_type_name = "AWS::SageMaker::Image" +} + +resource_schema "aws_sagemaker_image_version" { + cloudformation_type_name = "AWS::SageMaker::ImageVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_inference_component" { + cloudformation_type_name = "AWS::SageMaker::InferenceComponent" +} + +resource_schema "aws_sagemaker_inference_experiment" { + cloudformation_type_name = "AWS::SageMaker::InferenceExperiment" +} + +resource_schema "aws_sagemaker_mlflow_tracking_server" { + cloudformation_type_name = "AWS::SageMaker::MlflowTrackingServer" +} + +resource_schema "aws_sagemaker_model_bias_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelBiasJobDefinition" +} + +resource_schema "aws_sagemaker_model_card" { + cloudformation_type_name = "AWS::SageMaker::ModelCard" +} + +resource_schema "aws_sagemaker_model_explainability_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelExplainabilityJobDefinition" +} + +resource_schema "aws_sagemaker_model_package" { + cloudformation_type_name = "AWS::SageMaker::ModelPackage" +} + +resource_schema "aws_sagemaker_model_package_group" { + cloudformation_type_name = "AWS::SageMaker::ModelPackageGroup" +} + +resource_schema "aws_sagemaker_model_quality_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelQualityJobDefinition" +} + +resource_schema "aws_sagemaker_monitoring_schedule" { + cloudformation_type_name = "AWS::SageMaker::MonitoringSchedule" +} + +resource_schema "aws_sagemaker_pipeline" { + cloudformation_type_name = "AWS::SageMaker::Pipeline" +} + +resource_schema "aws_sagemaker_project" { + cloudformation_type_name = "AWS::SageMaker::Project" +} + +resource_schema "aws_sagemaker_space" { + cloudformation_type_name = "AWS::SageMaker::Space" +} + +resource_schema "aws_sagemaker_studio_lifecycle_config" { + cloudformation_type_name = "AWS::SageMaker::StudioLifecycleConfig" +} + +resource_schema "aws_sagemaker_user_profile" { + cloudformation_type_name = "AWS::SageMaker::UserProfile" +} + +resource_schema "aws_scheduler_schedule" { + cloudformation_type_name = "AWS::Scheduler::Schedule" +} + +resource_schema "aws_scheduler_schedule_group" { + cloudformation_type_name = "AWS::Scheduler::ScheduleGroup" +} + +resource_schema "aws_secretsmanager_resource_policy" { + cloudformation_type_name = "AWS::SecretsManager::ResourcePolicy" +} + +resource_schema "aws_secretsmanager_secret" { + cloudformation_type_name = "AWS::SecretsManager::Secret" +} + +resource_schema "aws_securityhub_automation_rule" { + cloudformation_type_name = "AWS::SecurityHub::AutomationRule" +} + +resource_schema "aws_securityhub_configuration_policy" { + cloudformation_type_name = "AWS::SecurityHub::ConfigurationPolicy" +} + +resource_schema "aws_securityhub_delegated_admin" { + cloudformation_type_name = "AWS::SecurityHub::DelegatedAdmin" +} + +resource_schema "aws_securityhub_finding_aggregator" { + cloudformation_type_name = "AWS::SecurityHub::FindingAggregator" +} + +resource_schema "aws_securityhub_hub" { + cloudformation_type_name = "AWS::SecurityHub::Hub" +} + +resource_schema "aws_securityhub_insight" { + cloudformation_type_name = "AWS::SecurityHub::Insight" +} + +resource_schema "aws_securityhub_organization_configuration" { + cloudformation_type_name = "AWS::SecurityHub::OrganizationConfiguration" +} + +resource_schema "aws_securityhub_policy_association" { + cloudformation_type_name = "AWS::SecurityHub::PolicyAssociation" +} + +resource_schema "aws_securityhub_product_subscription" { + cloudformation_type_name = "AWS::SecurityHub::ProductSubscription" +} + +resource_schema "aws_securityhub_security_control" { + cloudformation_type_name = "AWS::SecurityHub::SecurityControl" +} + +resource_schema "aws_securityhub_standard" { + cloudformation_type_name = "AWS::SecurityHub::Standard" +} + +resource_schema "aws_securitylake_aws_log_source" { + cloudformation_type_name = "AWS::SecurityLake::AwsLogSource" +} + +resource_schema "aws_securitylake_data_lake" { + cloudformation_type_name = "AWS::SecurityLake::DataLake" +} + +resource_schema "aws_securitylake_subscriber" { + cloudformation_type_name = "AWS::SecurityLake::Subscriber" +} + +resource_schema "aws_securitylake_subscriber_notification" { + cloudformation_type_name = "AWS::SecurityLake::SubscriberNotification" +} + +resource_schema "aws_servicecatalog_cloudformation_provisioned_product" { + cloudformation_type_name = "AWS::ServiceCatalog::CloudFormationProvisionedProduct" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_servicecatalog_service_action" { + cloudformation_type_name = "AWS::ServiceCatalog::ServiceAction" +} + +resource_schema "aws_servicecatalog_service_action_association" { + cloudformation_type_name = "AWS::ServiceCatalog::ServiceActionAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_servicecatalogappregistry_application" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::Application" +} + +resource_schema "aws_servicecatalogappregistry_attribute_group" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::AttributeGroup" +} + +resource_schema "aws_servicecatalogappregistry_attribute_group_association" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_servicecatalogappregistry_resource_association" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::ResourceAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_shield_drt_access" { + cloudformation_type_name = "AWS::Shield::DRTAccess" +} + +resource_schema "aws_shield_proactive_engagement" { + cloudformation_type_name = "AWS::Shield::ProactiveEngagement" +} + +resource_schema "aws_shield_protection" { + cloudformation_type_name = "AWS::Shield::Protection" +} + +resource_schema "aws_shield_protection_group" { + cloudformation_type_name = "AWS::Shield::ProtectionGroup" +} + +resource_schema "aws_signer_profile_permission" { + cloudformation_type_name = "AWS::Signer::ProfilePermission" +} + +resource_schema "aws_signer_signing_profile" { + cloudformation_type_name = "AWS::Signer::SigningProfile" +} + +resource_schema "aws_simspaceweaver_simulation" { + cloudformation_type_name = "AWS::SimSpaceWeaver::Simulation" +} + +resource_schema "aws_stepfunctions_activity" { + cloudformation_type_name = "AWS::StepFunctions::Activity" +} + +resource_schema "aws_stepfunctions_state_machine" { + cloudformation_type_name = "AWS::StepFunctions::StateMachine" +} + +resource_schema "aws_stepfunctions_state_machine_alias" { + cloudformation_type_name = "AWS::StepFunctions::StateMachineAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_stepfunctions_state_machine_version" { + cloudformation_type_name = "AWS::StepFunctions::StateMachineVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_supportapp_account_alias" { + cloudformation_type_name = "AWS::SupportApp::AccountAlias" +} + +resource_schema "aws_supportapp_slack_channel_configuration" { + cloudformation_type_name = "AWS::SupportApp::SlackChannelConfiguration" +} + +resource_schema "aws_supportapp_slack_workspace_configuration" { + cloudformation_type_name = "AWS::SupportApp::SlackWorkspaceConfiguration" +} + +resource_schema "aws_synthetics_canary" { + cloudformation_type_name = "AWS::Synthetics::Canary" +} + +resource_schema "aws_synthetics_group" { + cloudformation_type_name = "AWS::Synthetics::Group" +} + +resource_schema "aws_systemsmanagersap_application" { + cloudformation_type_name = "AWS::SystemsManagerSAP::Application" +} + +resource_schema "aws_timestream_database" { + cloudformation_type_name = "AWS::Timestream::Database" +} + +resource_schema "aws_timestream_influx_db_instance" { + cloudformation_type_name = "AWS::Timestream::InfluxDBInstance" +} + +resource_schema "aws_timestream_scheduled_query" { + cloudformation_type_name = "AWS::Timestream::ScheduledQuery" +} + +resource_schema "aws_timestream_table" { + cloudformation_type_name = "AWS::Timestream::Table" +} + +resource_schema "aws_transfer_agreement" { + cloudformation_type_name = "AWS::Transfer::Agreement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_transfer_certificate" { + cloudformation_type_name = "AWS::Transfer::Certificate" +} + +resource_schema "aws_transfer_connector" { + cloudformation_type_name = "AWS::Transfer::Connector" +} + +resource_schema "aws_transfer_profile" { + cloudformation_type_name = "AWS::Transfer::Profile" +} + +resource_schema "aws_transfer_workflow" { + cloudformation_type_name = "AWS::Transfer::Workflow" +} + +resource_schema "aws_verifiedpermissions_identity_source" { + cloudformation_type_name = "AWS::VerifiedPermissions::IdentitySource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_verifiedpermissions_policy" { + cloudformation_type_name = "AWS::VerifiedPermissions::Policy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_verifiedpermissions_policy_store" { + cloudformation_type_name = "AWS::VerifiedPermissions::PolicyStore" +} + +resource_schema "aws_verifiedpermissions_policy_template" { + cloudformation_type_name = "AWS::VerifiedPermissions::PolicyTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_voiceid_domain" { + cloudformation_type_name = "AWS::VoiceID::Domain" +} + +resource_schema "aws_vpclattice_access_log_subscription" { + cloudformation_type_name = "AWS::VpcLattice::AccessLogSubscription" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_auth_policy" { + cloudformation_type_name = "AWS::VpcLattice::AuthPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_listener" { + cloudformation_type_name = "AWS::VpcLattice::Listener" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_resource_policy" { + cloudformation_type_name = "AWS::VpcLattice::ResourcePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_rule" { + cloudformation_type_name = "AWS::VpcLattice::Rule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_service" { + cloudformation_type_name = "AWS::VpcLattice::Service" +} + +resource_schema "aws_vpclattice_service_network" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetwork" +} + +resource_schema "aws_vpclattice_service_network_service_association" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetworkServiceAssociation" +} + +resource_schema "aws_vpclattice_service_network_vpc_association" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetworkVpcAssociation" +} + +resource_schema "aws_vpclattice_target_group" { + cloudformation_type_name = "AWS::VpcLattice::TargetGroup" +} + +resource_schema "aws_wafv2_ip_set" { + cloudformation_type_name = "AWS::WAFv2::IPSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_logging_configuration" { + cloudformation_type_name = "AWS::WAFv2::LoggingConfiguration" +} + +resource_schema "aws_wafv2_regex_pattern_set" { + cloudformation_type_name = "AWS::WAFv2::RegexPatternSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_rule_group" { + cloudformation_type_name = "AWS::WAFv2::RuleGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_web_acl" { + cloudformation_type_name = "AWS::WAFv2::WebACL" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_web_acl_association" { + cloudformation_type_name = "AWS::WAFv2::WebACLAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_assistant" { + cloudformation_type_name = "AWS::Wisdom::Assistant" +} + +resource_schema "aws_wisdom_assistant_association" { + cloudformation_type_name = "AWS::Wisdom::AssistantAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_knowledge_base" { + cloudformation_type_name = "AWS::Wisdom::KnowledgeBase" +} + +resource_schema "aws_workspaces_connection_alias" { + cloudformation_type_name = "AWS::WorkSpaces::ConnectionAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_workspaces_workspaces_pool" { + cloudformation_type_name = "AWS::WorkSpaces::WorkspacesPool" +} + +resource_schema "aws_workspacesthinclient_environment" { + cloudformation_type_name = "AWS::WorkSpacesThinClient::Environment" +} + +resource_schema "aws_workspacesweb_browser_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::BrowserSettings" +} + +resource_schema "aws_workspacesweb_identity_provider" { + cloudformation_type_name = "AWS::WorkSpacesWeb::IdentityProvider" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_workspacesweb_ip_access_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::IpAccessSettings" +} + +resource_schema "aws_workspacesweb_network_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::NetworkSettings" +} + +resource_schema "aws_workspacesweb_portal" { + cloudformation_type_name = "AWS::WorkSpacesWeb::Portal" +} + +resource_schema "aws_workspacesweb_trust_store" { + cloudformation_type_name = "AWS::WorkSpacesWeb::TrustStore" +} + +resource_schema "aws_workspacesweb_user_access_logging_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::UserAccessLoggingSettings" +} + +resource_schema "aws_workspacesweb_user_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::UserSettings" +} + +resource_schema "aws_xray_group" { + cloudformation_type_name = "AWS::XRay::Group" +} + +resource_schema "aws_xray_resource_policy" { + cloudformation_type_name = "AWS::XRay::ResourcePolicy" +} + +resource_schema "aws_xray_sampling_rule" { + cloudformation_type_name = "AWS::XRay::SamplingRule" +} From ec851977239202bdababae520db928b7443fdb4d Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 15 Aug 2024 11:58:52 -0400 Subject: [PATCH 86/89] 08/14/2024 CloudFormation schemas in us-east-1; Generate Terraform resource schemas. --- .../aws/bedrock/data_source_resource_gen.go | 1687 ++++++++++++++++- .../aws/cognito/identity_pool_resource_gen.go | 66 + ...log_delivery_configuration_resource_gen.go | 58 + .../aws/ec2/launch_template_resource_gen.go | 4 +- .../aws/ec2/subnet_cidr_block_resource_gen.go | 40 +- internal/aws/ec2/vpc_resource_gen.go | 6 +- .../event_source_mapping_resource_gen.go | 39 +- internal/aws/s3/bucket_resource_gen.go | 15 +- .../signer/signing_profile_resource_gen.go | 2 +- .../application_resource_gen.go | 35 +- .../influx_db_instance_resource_gen.go | 3 +- .../vpclattice/auth_policy_resource_gen.go | 4 +- 12 files changed, 1891 insertions(+), 68 deletions(-) diff --git a/internal/aws/bedrock/data_source_resource_gen.go b/internal/aws/bedrock/data_source_resource_gen.go index e5607637e..4cd680f99 100644 --- a/internal/aws/bedrock/data_source_resource_gen.go +++ b/internal/aws/bedrock/data_source_resource_gen.go @@ -14,6 +14,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" "github.com/hashicorp/terraform-plugin-framework/resource" "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/int64planmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" @@ -77,10 +78,167 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { // { // "additionalProperties": false, // "description": "Specifies a raw data source location to ingest.", + // "oneOf": [ + // { + // "required": [ + // "S3Configuration" + // ] + // }, + // { + // "required": [ + // "ConfluenceConfiguration" + // ] + // }, + // { + // "required": [ + // "SalesforceConfiguration" + // ] + // }, + // { + // "required": [ + // "SharePointConfiguration" + // ] + // }, + // { + // "required": [ + // "WebConfiguration" + // ] + // } + // ], // "properties": { + // "ConfluenceConfiguration": { + // "additionalProperties": false, + // "description": "The configuration information to connect to Confluence as your data source.", + // "properties": { + // "CrawlerConfiguration": { + // "additionalProperties": false, + // "description": "The configuration of the Confluence content. For example, configuring specific types of Confluence content.", + // "properties": { + // "FilterConfiguration": { + // "additionalProperties": false, + // "description": "The type of filtering that you want to apply to certain objects or content of the data source. For example, the PATTERN type is regular expression patterns you can apply to filter your content.", + // "properties": { + // "PatternObjectFilter": { + // "additionalProperties": false, + // "description": "The configuration of specific filters applied to your data source content. You can filter out or include certain content.", + // "properties": { + // "Filters": { + // "description": "Contains information", + // "items": { + // "additionalProperties": false, + // "description": "The specific filters applied to your data source content. You can filter out or include certain content.", + // "properties": { + // "ExclusionFilters": { + // "description": "A set of regular expression filter patterns for a type of object.", + // "insertionOrder": false, + // "items": { + // "description": "A list of one or more inclusion/exclusion regular expression patterns to include certain object types that adhere to the pattern. If you specify an inclusion and exclusion filter/pattern and both match a document, the exclusion filter takes precedence and the document isn't crawled.", + // "maxLength": 1000, + // "type": "string" + // }, + // "maxItems": 25, + // "minItems": 1, + // "type": "array" + // }, + // "InclusionFilters": { + // "description": "A set of regular expression filter patterns for a type of object.", + // "insertionOrder": false, + // "items": { + // "description": "A list of one or more inclusion/exclusion regular expression patterns to include certain object types that adhere to the pattern. If you specify an inclusion and exclusion filter/pattern and both match a document, the exclusion filter takes precedence and the document isn't crawled.", + // "maxLength": 1000, + // "type": "string" + // }, + // "maxItems": 25, + // "minItems": 1, + // "type": "array" + // }, + // "ObjectType": { + // "description": "The supported object type or content type of the data source.", + // "maxLength": 50, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "ObjectType" + // ], + // "type": "object" + // }, + // "maxItems": 25, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "Filters" + // ], + // "type": "object" + // }, + // "Type": { + // "description": "The crawl filter type.", + // "enum": [ + // "PATTERN" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Type" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "SourceConfiguration": { + // "additionalProperties": false, + // "description": "The endpoint information to connect to your Confluence data source.", + // "properties": { + // "AuthType": { + // "description": "The supported authentication type to authenticate and connect to your Confluence instance.", + // "enum": [ + // "BASIC", + // "OAUTH2_CLIENT_CREDENTIALS" + // ], + // "type": "string" + // }, + // "CredentialsSecretArn": { + // "description": "The Amazon Resource Name of an AWS Secrets Manager secret that stores your authentication credentials for your Confluence instance URL. For more information on the key-value pairs that must be included in your secret, depending on your authentication type, see Confluence connection configuration.", + // "pattern": "^arn:aws(|-cn|-us-gov):secretsmanager:[a-z0-9-]{1,20}:([0-9]{12}|):secret:[a-zA-Z0-9!/_+=.@-]{1,512}$", + // "type": "string" + // }, + // "HostType": { + // "description": "The supported host type, whether online/cloud or server/on-premises.", + // "enum": [ + // "SAAS" + // ], + // "type": "string" + // }, + // "HostUrl": { + // "description": "The Confluence host URL or instance URL.", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^https://[A-Za-z0-9][^\\s]*$", + // "type": "string" + // } + // }, + // "required": [ + // "HostUrl", + // "HostType", + // "AuthType", + // "CredentialsSecretArn" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "SourceConfiguration" + // ], + // "type": "object" + // }, // "S3Configuration": { // "additionalProperties": false, - // "description": "Contains information about the S3 configuration of the data source.", + // "description": "The configuration information to connect to Amazon S3 as your data source.", // "properties": { // "BucketArn": { // "description": "The ARN of the bucket that contains the data source.", @@ -115,22 +273,549 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { // ], // "type": "object" // }, + // "SalesforceConfiguration": { + // "additionalProperties": false, + // "description": "The configuration information to connect to Salesforce as your data source.", + // "properties": { + // "CrawlerConfiguration": { + // "additionalProperties": false, + // "description": "The configuration of filtering the Salesforce content. For example, configuring regular expression patterns to include or exclude certain content.", + // "properties": { + // "FilterConfiguration": { + // "additionalProperties": false, + // "description": "The type of filtering that you want to apply to certain objects or content of the data source. For example, the PATTERN type is regular expression patterns you can apply to filter your content.", + // "properties": { + // "PatternObjectFilter": { + // "additionalProperties": false, + // "description": "The configuration of specific filters applied to your data source content. You can filter out or include certain content.", + // "properties": { + // "Filters": { + // "description": "Contains information", + // "items": { + // "additionalProperties": false, + // "description": "The specific filters applied to your data source content. You can filter out or include certain content.", + // "properties": { + // "ExclusionFilters": { + // "description": "A set of regular expression filter patterns for a type of object.", + // "insertionOrder": false, + // "items": { + // "description": "A list of one or more inclusion/exclusion regular expression patterns to include certain object types that adhere to the pattern. If you specify an inclusion and exclusion filter/pattern and both match a document, the exclusion filter takes precedence and the document isn't crawled.", + // "maxLength": 1000, + // "type": "string" + // }, + // "maxItems": 25, + // "minItems": 1, + // "type": "array" + // }, + // "InclusionFilters": { + // "description": "A set of regular expression filter patterns for a type of object.", + // "insertionOrder": false, + // "items": { + // "description": "A list of one or more inclusion/exclusion regular expression patterns to include certain object types that adhere to the pattern. If you specify an inclusion and exclusion filter/pattern and both match a document, the exclusion filter takes precedence and the document isn't crawled.", + // "maxLength": 1000, + // "type": "string" + // }, + // "maxItems": 25, + // "minItems": 1, + // "type": "array" + // }, + // "ObjectType": { + // "description": "The supported object type or content type of the data source.", + // "maxLength": 50, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "ObjectType" + // ], + // "type": "object" + // }, + // "maxItems": 25, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "Filters" + // ], + // "type": "object" + // }, + // "Type": { + // "description": "The crawl filter type.", + // "enum": [ + // "PATTERN" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Type" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "SourceConfiguration": { + // "additionalProperties": false, + // "description": "The endpoint information to connect to your Salesforce data source.", + // "properties": { + // "AuthType": { + // "description": "The supported authentication type to authenticate and connect to your Salesforce instance.", + // "enum": [ + // "OAUTH2_CLIENT_CREDENTIALS" + // ], + // "type": "string" + // }, + // "CredentialsSecretArn": { + // "description": "The Amazon Resource Name of an AWS Secrets Manager secret that stores your authentication credentials for your Salesforce instance URL. For more information on the key-value pairs that must be included in your secret, depending on your authentication type, see Salesforce connection configuration.", + // "pattern": "^arn:aws(|-cn|-us-gov):secretsmanager:[a-z0-9-]{1,20}:([0-9]{12}|):secret:[a-zA-Z0-9!/_+=.@-]{1,512}$", + // "type": "string" + // }, + // "HostUrl": { + // "description": "The Salesforce host URL or instance URL.", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^https://[A-Za-z0-9][^\\s]*$", + // "type": "string" + // } + // }, + // "required": [ + // "HostUrl", + // "AuthType", + // "CredentialsSecretArn" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "SourceConfiguration" + // ], + // "type": "object" + // }, + // "SharePointConfiguration": { + // "additionalProperties": false, + // "description": "The configuration information to connect to SharePoint as your data source.", + // "properties": { + // "CrawlerConfiguration": { + // "additionalProperties": false, + // "description": "The configuration of the SharePoint content. For example, configuring specific types of SharePoint content.", + // "properties": { + // "FilterConfiguration": { + // "additionalProperties": false, + // "description": "The type of filtering that you want to apply to certain objects or content of the data source. For example, the PATTERN type is regular expression patterns you can apply to filter your content.", + // "properties": { + // "PatternObjectFilter": { + // "additionalProperties": false, + // "description": "The configuration of specific filters applied to your data source content. You can filter out or include certain content.", + // "properties": { + // "Filters": { + // "description": "Contains information", + // "items": { + // "additionalProperties": false, + // "description": "The specific filters applied to your data source content. You can filter out or include certain content.", + // "properties": { + // "ExclusionFilters": { + // "description": "A set of regular expression filter patterns for a type of object.", + // "insertionOrder": false, + // "items": { + // "description": "A list of one or more inclusion/exclusion regular expression patterns to include certain object types that adhere to the pattern. If you specify an inclusion and exclusion filter/pattern and both match a document, the exclusion filter takes precedence and the document isn't crawled.", + // "maxLength": 1000, + // "type": "string" + // }, + // "maxItems": 25, + // "minItems": 1, + // "type": "array" + // }, + // "InclusionFilters": { + // "description": "A set of regular expression filter patterns for a type of object.", + // "insertionOrder": false, + // "items": { + // "description": "A list of one or more inclusion/exclusion regular expression patterns to include certain object types that adhere to the pattern. If you specify an inclusion and exclusion filter/pattern and both match a document, the exclusion filter takes precedence and the document isn't crawled.", + // "maxLength": 1000, + // "type": "string" + // }, + // "maxItems": 25, + // "minItems": 1, + // "type": "array" + // }, + // "ObjectType": { + // "description": "The supported object type or content type of the data source.", + // "maxLength": 50, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "ObjectType" + // ], + // "type": "object" + // }, + // "maxItems": 25, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "Filters" + // ], + // "type": "object" + // }, + // "Type": { + // "description": "The crawl filter type.", + // "enum": [ + // "PATTERN" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Type" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "SourceConfiguration": { + // "additionalProperties": false, + // "description": "The endpoint information to connect to your SharePoint data source.", + // "properties": { + // "AuthType": { + // "description": "The supported authentication type to authenticate and connect to your SharePoint site/sites.", + // "enum": [ + // "OAUTH2_CLIENT_CREDENTIALS" + // ], + // "type": "string" + // }, + // "CredentialsSecretArn": { + // "description": "The Amazon Resource Name of an AWS Secrets Manager secret that stores your authentication credentials for your SharePoint site/sites. For more information on the key-value pairs that must be included in your secret, depending on your authentication type, see SharePoint connection configuration.", + // "pattern": "^arn:aws(|-cn|-us-gov):secretsmanager:[a-z0-9-]{1,20}:([0-9]{12}|):secret:[a-zA-Z0-9!/_+=.@-]{1,512}$", + // "type": "string" + // }, + // "Domain": { + // "description": "The domain of your SharePoint instance or site URL/URLs.", + // "maxLength": 50, + // "minLength": 1, + // "type": "string" + // }, + // "HostType": { + // "description": "The supported host type, whether online/cloud or server/on-premises.", + // "enum": [ + // "ONLINE" + // ], + // "type": "string" + // }, + // "SiteUrls": { + // "description": "A list of one or more SharePoint site URLs.", + // "insertionOrder": false, + // "items": { + // "description": "A forced-HTTPS web url.", + // "pattern": "^https://[A-Za-z0-9][^\\s]*$", + // "type": "string" + // }, + // "maxItems": 100, + // "minItems": 1, + // "type": "array" + // }, + // "TenantId": { + // "description": "The identifier of your Microsoft 365 tenant.", + // "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", + // "type": "string" + // } + // }, + // "required": [ + // "Domain", + // "SiteUrls", + // "HostType", + // "AuthType", + // "CredentialsSecretArn" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "SourceConfiguration" + // ], + // "type": "object" + // }, // "Type": { // "description": "The type of the data source location.", // "enum": [ - // "S3" + // "S3", + // "CONFLUENCE", + // "SALESFORCE", + // "SHAREPOINT", + // "WEB" // ], // "type": "string" + // }, + // "WebConfiguration": { + // "additionalProperties": false, + // "description": "Configures a web data source location.", + // "properties": { + // "CrawlerConfiguration": { + // "additionalProperties": false, + // "description": "Configuration for the web crawler.", + // "properties": { + // "CrawlerLimits": { + // "additionalProperties": false, + // "description": "Limit settings for the web crawler.", + // "properties": { + // "RateLimit": { + // "description": "Rate of web URLs retrieved per minute.", + // "maximum": 300, + // "minimum": 1, + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "ExclusionFilters": { + // "description": "A set of regular expression filter patterns for a type of object.", + // "insertionOrder": false, + // "items": { + // "description": "A list of one or more inclusion/exclusion regular expression patterns to include certain object types that adhere to the pattern. If you specify an inclusion and exclusion filter/pattern and both match a document, the exclusion filter takes precedence and the document isn't crawled.", + // "maxLength": 1000, + // "type": "string" + // }, + // "maxItems": 25, + // "minItems": 1, + // "type": "array" + // }, + // "InclusionFilters": { + // "description": "A set of regular expression filter patterns for a type of object.", + // "insertionOrder": false, + // "items": { + // "description": "A list of one or more inclusion/exclusion regular expression patterns to include certain object types that adhere to the pattern. If you specify an inclusion and exclusion filter/pattern and both match a document, the exclusion filter takes precedence and the document isn't crawled.", + // "maxLength": 1000, + // "type": "string" + // }, + // "maxItems": 25, + // "minItems": 1, + // "type": "array" + // }, + // "Scope": { + // "description": "The scope that a web crawl job will be restricted to.", + // "enum": [ + // "HOST_ONLY", + // "SUBDOMAINS" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "SourceConfiguration": { + // "additionalProperties": false, + // "description": "A web source configuration.", + // "properties": { + // "UrlConfiguration": { + // "additionalProperties": false, + // "description": "A url configuration.", + // "properties": { + // "SeedUrls": { + // "description": "A list of web urls.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A seed url object.", + // "properties": { + // "Url": { + // "description": "A web url.", + // "pattern": "^https?://[A-Za-z0-9][^\\s]*$", + // "type": "string" + // } + // }, + // "required": [ + // "Url" + // ], + // "type": "object" + // }, + // "maxItems": 100, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "SeedUrls" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "UrlConfiguration" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "SourceConfiguration" + // ], + // "type": "object" // } // }, // "required": [ - // "Type", - // "S3Configuration" + // "Type" // ], // "type": "object" // } "data_source_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ConfluenceConfiguration + "confluence_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CrawlerConfiguration + "crawler_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: FilterConfiguration + "filter_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PatternObjectFilter + "pattern_object_filter": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Filters + "filters": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ExclusionFilters + "exclusion_filters": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A set of regular expression filter patterns for a type of object.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 25), + listvalidator.ValueStringsAre( + stringvalidator.LengthAtMost(1000), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InclusionFilters + "inclusion_filters": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A set of regular expression filter patterns for a type of object.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 25), + listvalidator.ValueStringsAre( + stringvalidator.LengthAtMost(1000), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ObjectType + "object_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The supported object type or content type of the data source.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 50), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "Contains information", + Required: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 25), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The configuration of specific filters applied to your data source content. You can filter out or include certain content.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The crawl filter type.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "PATTERN", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The type of filtering that you want to apply to certain objects or content of the data source. For example, the PATTERN type is regular expression patterns you can apply to filter your content.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The configuration of the Confluence content. For example, configuring specific types of Confluence content.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SourceConfiguration + "source_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AuthType + "auth_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The supported authentication type to authenticate and connect to your Confluence instance.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "BASIC", + "OAUTH2_CLIENT_CREDENTIALS", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: CredentialsSecretArn + "credentials_secret_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name of an AWS Secrets Manager secret that stores your authentication credentials for your Confluence instance URL. For more information on the key-value pairs that must be included in your secret, depending on your authentication type, see Confluence connection configuration.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws(|-cn|-us-gov):secretsmanager:[a-z0-9-]{1,20}:([0-9]{12}|):secret:[a-zA-Z0-9!/_+=.@-]{1,512}$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: HostType + "host_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The supported host type, whether online/cloud or server/on-premises.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "SAAS", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: HostUrl + "host_url": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Confluence host URL or instance URL.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 2048), + stringvalidator.RegexMatches(regexp.MustCompile("^https://[A-Za-z0-9][^\\s]*$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The endpoint information to connect to your Confluence data source.", + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The configuration information to connect to Confluence as your data source.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: S3Configuration "s3_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -174,8 +859,332 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "Contains information about the S3 configuration of the data source.", - Required: true, + Description: "The configuration information to connect to Amazon S3 as your data source.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SalesforceConfiguration + "salesforce_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CrawlerConfiguration + "crawler_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: FilterConfiguration + "filter_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PatternObjectFilter + "pattern_object_filter": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Filters + "filters": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ExclusionFilters + "exclusion_filters": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A set of regular expression filter patterns for a type of object.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 25), + listvalidator.ValueStringsAre( + stringvalidator.LengthAtMost(1000), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InclusionFilters + "inclusion_filters": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A set of regular expression filter patterns for a type of object.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 25), + listvalidator.ValueStringsAre( + stringvalidator.LengthAtMost(1000), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ObjectType + "object_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The supported object type or content type of the data source.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 50), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "Contains information", + Required: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 25), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The configuration of specific filters applied to your data source content. You can filter out or include certain content.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The crawl filter type.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "PATTERN", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The type of filtering that you want to apply to certain objects or content of the data source. For example, the PATTERN type is regular expression patterns you can apply to filter your content.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The configuration of filtering the Salesforce content. For example, configuring regular expression patterns to include or exclude certain content.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SourceConfiguration + "source_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AuthType + "auth_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The supported authentication type to authenticate and connect to your Salesforce instance.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "OAUTH2_CLIENT_CREDENTIALS", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: CredentialsSecretArn + "credentials_secret_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name of an AWS Secrets Manager secret that stores your authentication credentials for your Salesforce instance URL. For more information on the key-value pairs that must be included in your secret, depending on your authentication type, see Salesforce connection configuration.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws(|-cn|-us-gov):secretsmanager:[a-z0-9-]{1,20}:([0-9]{12}|):secret:[a-zA-Z0-9!/_+=.@-]{1,512}$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: HostUrl + "host_url": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Salesforce host URL or instance URL.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 2048), + stringvalidator.RegexMatches(regexp.MustCompile("^https://[A-Za-z0-9][^\\s]*$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The endpoint information to connect to your Salesforce data source.", + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The configuration information to connect to Salesforce as your data source.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SharePointConfiguration + "share_point_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CrawlerConfiguration + "crawler_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: FilterConfiguration + "filter_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PatternObjectFilter + "pattern_object_filter": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Filters + "filters": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ExclusionFilters + "exclusion_filters": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A set of regular expression filter patterns for a type of object.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 25), + listvalidator.ValueStringsAre( + stringvalidator.LengthAtMost(1000), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InclusionFilters + "inclusion_filters": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A set of regular expression filter patterns for a type of object.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 25), + listvalidator.ValueStringsAre( + stringvalidator.LengthAtMost(1000), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ObjectType + "object_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The supported object type or content type of the data source.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 50), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "Contains information", + Required: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 25), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The configuration of specific filters applied to your data source content. You can filter out or include certain content.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The crawl filter type.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "PATTERN", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The type of filtering that you want to apply to certain objects or content of the data source. For example, the PATTERN type is regular expression patterns you can apply to filter your content.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The configuration of the SharePoint content. For example, configuring specific types of SharePoint content.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SourceConfiguration + "source_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AuthType + "auth_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The supported authentication type to authenticate and connect to your SharePoint site/sites.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "OAUTH2_CLIENT_CREDENTIALS", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: CredentialsSecretArn + "credentials_secret_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name of an AWS Secrets Manager secret that stores your authentication credentials for your SharePoint site/sites. For more information on the key-value pairs that must be included in your secret, depending on your authentication type, see SharePoint connection configuration.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws(|-cn|-us-gov):secretsmanager:[a-z0-9-]{1,20}:([0-9]{12}|):secret:[a-zA-Z0-9!/_+=.@-]{1,512}$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Domain + "domain": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The domain of your SharePoint instance or site URL/URLs.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 50), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: HostType + "host_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The supported host type, whether online/cloud or server/on-premises.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ONLINE", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: SiteUrls + "site_urls": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of one or more SharePoint site URLs.", + Required: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 100), + listvalidator.ValueStringsAre( + stringvalidator.RegexMatches(regexp.MustCompile("^https://[A-Za-z0-9][^\\s]*$"), ""), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TenantId + "tenant_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of your Microsoft 365 tenant.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The endpoint information to connect to your SharePoint data source.", + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The configuration information to connect to SharePoint as your data source.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: Type "type": schema.StringAttribute{ /*START ATTRIBUTE*/ @@ -184,8 +1193,146 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.OneOf( "S3", + "CONFLUENCE", + "SALESFORCE", + "SHAREPOINT", + "WEB", ), }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: WebConfiguration + "web_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CrawlerConfiguration + "crawler_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CrawlerLimits + "crawler_limits": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: RateLimit + "rate_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Rate of web URLs retrieved per minute.", + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(1, 300), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Limit settings for the web crawler.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ExclusionFilters + "exclusion_filters": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A set of regular expression filter patterns for a type of object.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 25), + listvalidator.ValueStringsAre( + stringvalidator.LengthAtMost(1000), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InclusionFilters + "inclusion_filters": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A set of regular expression filter patterns for a type of object.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 25), + listvalidator.ValueStringsAre( + stringvalidator.LengthAtMost(1000), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Scope + "scope": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The scope that a web crawl job will be restricted to.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "HOST_ONLY", + "SUBDOMAINS", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Configuration for the web crawler.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SourceConfiguration + "source_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: UrlConfiguration + "url_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SeedUrls + "seed_urls": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Url + "url": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A web url.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^https?://[A-Za-z0-9][^\\s]*$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of web urls.", + Required: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 100), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "A url configuration.", + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "A web source configuration.", + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Configures a web data source location.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "Specifies a raw data source location to ingest.", @@ -370,7 +1517,9 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { // "description": "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.", // "enum": [ // "FIXED_SIZE", - // "NONE" + // "NONE", + // "HIERARCHICAL", + // "SEMANTIC" // ], // "type": "string" // }, @@ -395,12 +1544,220 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { // "OverlapPercentage" // ], // "type": "object" + // }, + // "HierarchicalChunkingConfiguration": { + // "additionalProperties": false, + // "description": "Configurations for when you choose hierarchical chunking. If you set the chunkingStrategy as NONE, exclude this field.", + // "properties": { + // "LevelConfigurations": { + // "description": "Token settings for each layer.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "Token settings for a layer in a hierarchical chunking configuration.", + // "properties": { + // "MaxTokens": { + // "description": "The maximum number of tokens that a chunk can contain in this layer.", + // "maximum": 8192, + // "minimum": 1, + // "type": "integer" + // } + // }, + // "required": [ + // "MaxTokens" + // ], + // "type": "object" + // }, + // "maxItems": 2, + // "minItems": 2, + // "type": "array" + // }, + // "OverlapTokens": { + // "description": "The number of tokens to repeat across chunks in the same layer.", + // "minimum": 1, + // "type": "integer" + // } + // }, + // "required": [ + // "LevelConfigurations", + // "OverlapTokens" + // ], + // "type": "object" + // }, + // "SemanticChunkingConfiguration": { + // "additionalProperties": false, + // "description": "Configurations for when you choose semantic chunking. If you set the chunkingStrategy as NONE, exclude this field.", + // "properties": { + // "BreakpointPercentileThreshold": { + // "description": "The dissimilarity threshold for splitting chunks.", + // "maximum": 99, + // "minimum": 50, + // "type": "integer" + // }, + // "BufferSize": { + // "description": "The buffer size.", + // "maximum": 1, + // "minimum": 0, + // "type": "integer" + // }, + // "MaxTokens": { + // "description": "The maximum number of tokens that a chunk can contain.", + // "minimum": 1, + // "type": "integer" + // } + // }, + // "required": [ + // "BreakpointPercentileThreshold", + // "BufferSize", + // "MaxTokens" + // ], + // "type": "object" // } // }, // "required": [ // "ChunkingStrategy" // ], // "type": "object" + // }, + // "CustomTransformationConfiguration": { + // "additionalProperties": false, + // "description": "Settings for customizing steps in the data source content ingestion pipeline.", + // "properties": { + // "IntermediateStorage": { + // "additionalProperties": false, + // "description": "A location for storing content from data sources temporarily as it is processed by custom components in the ingestion pipeline.", + // "properties": { + // "S3Location": { + // "additionalProperties": false, + // "description": "An Amazon S3 location.", + // "properties": { + // "URI": { + // "description": "The location's URI", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^s3://.{1,128}$", + // "type": "string" + // } + // }, + // "required": [ + // "URI" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "S3Location" + // ], + // "type": "object" + // }, + // "Transformations": { + // "description": "A list of Lambda functions that process documents.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A Lambda function that processes documents.", + // "properties": { + // "StepToApply": { + // "description": "When the service applies the transformation.", + // "enum": [ + // "POST_CHUNKING" + // ], + // "type": "string" + // }, + // "TransformationFunction": { + // "additionalProperties": false, + // "description": "A Lambda function that processes documents.", + // "properties": { + // "TransformationLambdaConfiguration": { + // "additionalProperties": false, + // "description": "A Lambda function that processes documents.", + // "properties": { + // "LambdaArn": { + // "description": "The function's ARN identifier.", + // "maxLength": 2048, + // "minLength": 0, + // "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + // "type": "string" + // } + // }, + // "required": [ + // "LambdaArn" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "TransformationLambdaConfiguration" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "StepToApply", + // "TransformationFunction" + // ], + // "type": "object" + // }, + // "maxItems": 1, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "IntermediateStorage", + // "Transformations" + // ], + // "type": "object" + // }, + // "ParsingConfiguration": { + // "additionalProperties": false, + // "description": "Settings for parsing document contents", + // "properties": { + // "BedrockFoundationModelConfiguration": { + // "additionalProperties": false, + // "description": "Settings for a foundation model used to parse documents for a data source.", + // "properties": { + // "ModelArn": { + // "description": "The model's ARN.", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})$", + // "type": "string" + // }, + // "ParsingPrompt": { + // "additionalProperties": false, + // "description": "Instructions for interpreting the contents of a document.", + // "properties": { + // "ParsingPromptText": { + // "description": "Instructions for interpreting the contents of a document.", + // "maxLength": 10000, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "ParsingPromptText" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "ModelArn" + // ], + // "type": "object" + // }, + // "ParsingStrategy": { + // "description": "The parsing strategy for the data source.", + // "enum": [ + // "BEDROCK_FOUNDATION_MODEL" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "ParsingStrategy" + // ], + // "type": "object" // } // }, // "type": "object" @@ -418,6 +1775,8 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { stringvalidator.OneOf( "FIXED_SIZE", "NONE", + "HIERARCHICAL", + "SEMANTIC", ), }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ @@ -448,12 +1807,233 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: HierarchicalChunkingConfiguration + "hierarchical_chunking_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: LevelConfigurations + "level_configurations": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaxTokens + "max_tokens": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The maximum number of tokens that a chunk can contain in this layer.", + Required: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(1, 8192), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "Token settings for each layer.", + Required: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(2, 2), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: OverlapTokens + "overlap_tokens": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The number of tokens to repeat across chunks in the same layer.", + Required: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.AtLeast(1), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Configurations for when you choose hierarchical chunking. If you set the chunkingStrategy as NONE, exclude this field.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SemanticChunkingConfiguration + "semantic_chunking_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BreakpointPercentileThreshold + "breakpoint_percentile_threshold": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The dissimilarity threshold for splitting chunks.", + Required: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(50, 99), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: BufferSize + "buffer_size": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The buffer size.", + Required: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(0, 1), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: MaxTokens + "max_tokens": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The maximum number of tokens that a chunk can contain.", + Required: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.AtLeast(1), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Configurations for when you choose semantic chunking. If you set the chunkingStrategy as NONE, exclude this field.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "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.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ objectplanmodifier.UseStateForUnknown(), + objectplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CustomTransformationConfiguration + "custom_transformation_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IntermediateStorage + "intermediate_storage": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: S3Location + "s3_location": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: URI + "uri": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The location's URI", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 2048), + stringvalidator.RegexMatches(regexp.MustCompile("^s3://.{1,128}$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "An Amazon S3 location.", + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "A location for storing content from data sources temporarily as it is processed by custom components in the ingestion pipeline.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Transformations + "transformations": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: StepToApply + "step_to_apply": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "When the service applies the transformation.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "POST_CHUNKING", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: TransformationFunction + "transformation_function": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: TransformationLambdaConfiguration + "transformation_lambda_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: LambdaArn + "lambda_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The function's ARN identifier.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 2048), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "A Lambda function that processes documents.", + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "A Lambda function that processes documents.", + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of Lambda functions that process documents.", + Required: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 1), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Settings for customizing steps in the data source content ingestion pipeline.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ParsingConfiguration + "parsing_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BedrockFoundationModelConfiguration + "bedrock_foundation_model_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ModelArn + "model_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The model's ARN.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 2048), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: ParsingPrompt + "parsing_prompt": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ParsingPromptText + "parsing_prompt_text": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Instructions for interpreting the contents of a document.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 10000), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Instructions for interpreting the contents of a document.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Settings for a foundation model used to parse documents for a data source.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ParsingStrategy + "parsing_strategy": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The parsing strategy for the data source.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "BEDROCK_FOUNDATION_MODEL", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Settings for parsing document contents", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + objectplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -462,7 +2042,6 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ objectplanmodifier.UseStateForUnknown(), - objectplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ @@ -487,29 +2066,75 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithCloudFormationTypeName("AWS::Bedrock::DataSource").WithTerraformTypeName("awscc_bedrock_data_source") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "bucket_arn": "BucketArn", - "bucket_owner_account_id": "BucketOwnerAccountId", - "chunking_configuration": "ChunkingConfiguration", - "chunking_strategy": "ChunkingStrategy", - "created_at": "CreatedAt", - "data_deletion_policy": "DataDeletionPolicy", - "data_source_configuration": "DataSourceConfiguration", - "data_source_id": "DataSourceId", - "data_source_status": "DataSourceStatus", - "description": "Description", - "failure_reasons": "FailureReasons", - "fixed_size_chunking_configuration": "FixedSizeChunkingConfiguration", - "inclusion_prefixes": "InclusionPrefixes", - "kms_key_arn": "KmsKeyArn", - "knowledge_base_id": "KnowledgeBaseId", - "max_tokens": "MaxTokens", - "name": "Name", - "overlap_percentage": "OverlapPercentage", - "s3_configuration": "S3Configuration", - "server_side_encryption_configuration": "ServerSideEncryptionConfiguration", - "type": "Type", - "updated_at": "UpdatedAt", - "vector_ingestion_configuration": "VectorIngestionConfiguration", + "auth_type": "AuthType", + "bedrock_foundation_model_configuration": "BedrockFoundationModelConfiguration", + "breakpoint_percentile_threshold": "BreakpointPercentileThreshold", + "bucket_arn": "BucketArn", + "bucket_owner_account_id": "BucketOwnerAccountId", + "buffer_size": "BufferSize", + "chunking_configuration": "ChunkingConfiguration", + "chunking_strategy": "ChunkingStrategy", + "confluence_configuration": "ConfluenceConfiguration", + "crawler_configuration": "CrawlerConfiguration", + "crawler_limits": "CrawlerLimits", + "created_at": "CreatedAt", + "credentials_secret_arn": "CredentialsSecretArn", + "custom_transformation_configuration": "CustomTransformationConfiguration", + "data_deletion_policy": "DataDeletionPolicy", + "data_source_configuration": "DataSourceConfiguration", + "data_source_id": "DataSourceId", + "data_source_status": "DataSourceStatus", + "description": "Description", + "domain": "Domain", + "exclusion_filters": "ExclusionFilters", + "failure_reasons": "FailureReasons", + "filter_configuration": "FilterConfiguration", + "filters": "Filters", + "fixed_size_chunking_configuration": "FixedSizeChunkingConfiguration", + "hierarchical_chunking_configuration": "HierarchicalChunkingConfiguration", + "host_type": "HostType", + "host_url": "HostUrl", + "inclusion_filters": "InclusionFilters", + "inclusion_prefixes": "InclusionPrefixes", + "intermediate_storage": "IntermediateStorage", + "kms_key_arn": "KmsKeyArn", + "knowledge_base_id": "KnowledgeBaseId", + "lambda_arn": "LambdaArn", + "level_configurations": "LevelConfigurations", + "max_tokens": "MaxTokens", + "model_arn": "ModelArn", + "name": "Name", + "object_type": "ObjectType", + "overlap_percentage": "OverlapPercentage", + "overlap_tokens": "OverlapTokens", + "parsing_configuration": "ParsingConfiguration", + "parsing_prompt": "ParsingPrompt", + "parsing_prompt_text": "ParsingPromptText", + "parsing_strategy": "ParsingStrategy", + "pattern_object_filter": "PatternObjectFilter", + "rate_limit": "RateLimit", + "s3_configuration": "S3Configuration", + "s3_location": "S3Location", + "salesforce_configuration": "SalesforceConfiguration", + "scope": "Scope", + "seed_urls": "SeedUrls", + "semantic_chunking_configuration": "SemanticChunkingConfiguration", + "server_side_encryption_configuration": "ServerSideEncryptionConfiguration", + "share_point_configuration": "SharePointConfiguration", + "site_urls": "SiteUrls", + "source_configuration": "SourceConfiguration", + "step_to_apply": "StepToApply", + "tenant_id": "TenantId", + "transformation_function": "TransformationFunction", + "transformation_lambda_configuration": "TransformationLambdaConfiguration", + "transformations": "Transformations", + "type": "Type", + "updated_at": "UpdatedAt", + "uri": "URI", + "url": "Url", + "url_configuration": "UrlConfiguration", + "vector_ingestion_configuration": "VectorIngestionConfiguration", + "web_configuration": "WebConfiguration", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/cognito/identity_pool_resource_gen.go b/internal/aws/cognito/identity_pool_resource_gen.go index 94aadb87a..bfdc9eaa1 100644 --- a/internal/aws/cognito/identity_pool_resource_gen.go +++ b/internal/aws/cognito/identity_pool_resource_gen.go @@ -9,13 +9,16 @@ import ( "context" "github.com/hashicorp/terraform-plugin-framework-jsontypes/jsontypes" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" "github.com/hashicorp/terraform-plugin-framework/resource" "github.com/hashicorp/terraform-plugin-framework/resource/schema" "github.com/hashicorp/terraform-plugin-framework/resource/schema/boolplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/setplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" "github.com/hashicorp/terraform-plugin-framework/types" "github.com/hashicorp/terraform-provider-awscc/internal/generic" "github.com/hashicorp/terraform-provider-awscc/internal/registry" @@ -211,6 +214,66 @@ func identityPoolResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: IdentityPoolTags + // CloudFormation resource type schema: + // + // { + // "description": "An array of key-value pairs to apply to this resource.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "maxLength": 256, + // "minLength": 0, + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + "identity_pool_tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 256), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "An array of key-value pairs to apply to this resource.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Name // CloudFormation resource type schema: // @@ -357,6 +420,8 @@ func identityPoolResource(ctx context.Context) (resource.Resource, error) { "developer_provider_name": "DeveloperProviderName", "identity_pool_id": "Id", "identity_pool_name": "IdentityPoolName", + "identity_pool_tags": "IdentityPoolTags", + "key": "Key", "name": "Name", "open_id_connect_provider_ar_ns": "OpenIdConnectProviderARNs", "provider_name": "ProviderName", @@ -367,6 +432,7 @@ func identityPoolResource(ctx context.Context) (resource.Resource, error) { "stream_name": "StreamName", "streaming_status": "StreamingStatus", "supported_login_providers": "SupportedLoginProviders", + "value": "Value", }) opts = opts.WithWriteOnlyPropertyPaths([]string{ diff --git a/internal/aws/cognito/log_delivery_configuration_resource_gen.go b/internal/aws/cognito/log_delivery_configuration_resource_gen.go index a5764e259..da19ce586 100644 --- a/internal/aws/cognito/log_delivery_configuration_resource_gen.go +++ b/internal/aws/cognito/log_delivery_configuration_resource_gen.go @@ -57,8 +57,26 @@ func logDeliveryConfigurationResource(ctx context.Context) (resource.Resource, e // "EventSource": { // "type": "string" // }, + // "FirehoseConfiguration": { + // "additionalProperties": false, + // "properties": { + // "StreamArn": { + // "type": "string" + // } + // }, + // "type": "object" + // }, // "LogLevel": { // "type": "string" + // }, + // "S3Configuration": { + // "additionalProperties": false, + // "properties": { + // "BucketArn": { + // "type": "string" + // } + // }, + // "type": "object" // } // }, // "type": "object" @@ -94,6 +112,24 @@ func logDeliveryConfigurationResource(ctx context.Context) (resource.Resource, e stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: FirehoseConfiguration + "firehose_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: StreamArn + "stream_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: LogLevel "log_level": schema.StringAttribute{ /*START ATTRIBUTE*/ Optional: true, @@ -102,6 +138,24 @@ func logDeliveryConfigurationResource(ctx context.Context) (resource.Resource, e stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: S3Configuration + "s3_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BucketArn + "bucket_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ Optional: true, @@ -144,12 +198,16 @@ func logDeliveryConfigurationResource(ctx context.Context) (resource.Resource, e opts = opts.WithCloudFormationTypeName("AWS::Cognito::LogDeliveryConfiguration").WithTerraformTypeName("awscc_cognito_log_delivery_configuration") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ + "bucket_arn": "BucketArn", "cloudwatch_logs_configuration": "CloudWatchLogsConfiguration", "event_source": "EventSource", + "firehose_configuration": "FirehoseConfiguration", "log_configurations": "LogConfigurations", "log_delivery_configuration_id": "Id", "log_group_arn": "LogGroupArn", "log_level": "LogLevel", + "s3_configuration": "S3Configuration", + "stream_arn": "StreamArn", "user_pool_id": "UserPoolId", }) diff --git a/internal/aws/ec2/launch_template_resource_gen.go b/internal/aws/ec2/launch_template_resource_gen.go index 1555475df..65719361f 100644 --- a/internal/aws/ec2/launch_template_resource_gen.go +++ b/internal/aws/ec2/launch_template_resource_gen.go @@ -276,7 +276,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // "type": "object" // }, // "ImageId": { - // "description": "The ID of the AMI. Alternatively, you can specify a Systems Manager parameter, which will resolve to an AMI ID on launch.\n Valid formats:\n + ``ami-17characters00000`` \n + ``resolve:ssm:parameter-name`` \n + ``resolve:ssm:parameter-name:version-number`` \n + ``resolve:ssm:parameter-name:label`` \n \n For more information, see [Use a Systems Manager parameter to find an AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html#using-systems-manager-parameter-to-find-AMI) in the *Amazon Elastic Compute Cloud User Guide*.", + // "description": "The ID of the AMI. Alternatively, you can specify a Systems Manager parameter, which will resolve to an AMI ID on launch.\n Valid formats:\n + ``ami-0ac394d6a3example`` \n + ``resolve:ssm:parameter-name`` \n + ``resolve:ssm:parameter-name:version-number`` \n + ``resolve:ssm:parameter-name:label`` \n \n For more information, see [Use a Systems Manager parameter to find an AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html#using-systems-manager-parameter-to-find-AMI) in the *Amazon Elastic Compute Cloud User Guide*.", // "type": "string" // }, // "InstanceInitiatedShutdownBehavior": { @@ -1340,7 +1340,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: ImageId "image_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ID of the AMI. Alternatively, you can specify a Systems Manager parameter, which will resolve to an AMI ID on launch.\n Valid formats:\n + ``ami-17characters00000`` \n + ``resolve:ssm:parameter-name`` \n + ``resolve:ssm:parameter-name:version-number`` \n + ``resolve:ssm:parameter-name:label`` \n \n For more information, see [Use a Systems Manager parameter to find an AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html#using-systems-manager-parameter-to-find-AMI) in the *Amazon Elastic Compute Cloud User Guide*.", + Description: "The ID of the AMI. Alternatively, you can specify a Systems Manager parameter, which will resolve to an AMI ID on launch.\n Valid formats:\n + ``ami-0ac394d6a3example`` \n + ``resolve:ssm:parameter-name`` \n + ``resolve:ssm:parameter-name:version-number`` \n + ``resolve:ssm:parameter-name:label`` \n \n For more information, see [Use a Systems Manager parameter to find an AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html#using-systems-manager-parameter-to-find-AMI) in the *Amazon Elastic Compute Cloud User Guide*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/ec2/subnet_cidr_block_resource_gen.go b/internal/aws/ec2/subnet_cidr_block_resource_gen.go index f988721e4..5975563db 100644 --- a/internal/aws/ec2/subnet_cidr_block_resource_gen.go +++ b/internal/aws/ec2/subnet_cidr_block_resource_gen.go @@ -42,6 +42,34 @@ func subnetCidrBlockResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: IpSource + // CloudFormation resource type schema: + // + // { + // "description": "The IP Source of an IPv6 Subnet CIDR Block.", + // "type": "string" + // } + "ip_source": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The IP Source of an IPv6 Subnet CIDR Block.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Ipv6AddressAttribute + // CloudFormation resource type schema: + // + // { + // "description": "The value denoting whether an IPv6 Subnet CIDR Block is public or private.", + // "type": "string" + // } + "ipv_6_address_attribute": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The value denoting whether an IPv6 Subnet CIDR Block is public or private.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Ipv6CidrBlock // CloudFormation resource type schema: // @@ -137,11 +165,13 @@ func subnetCidrBlockResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithCloudFormationTypeName("AWS::EC2::SubnetCidrBlock").WithTerraformTypeName("awscc_ec2_subnet_cidr_block") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "ipv_6_cidr_block": "Ipv6CidrBlock", - "ipv_6_ipam_pool_id": "Ipv6IpamPoolId", - "ipv_6_netmask_length": "Ipv6NetmaskLength", - "subnet_cidr_block_id": "Id", - "subnet_id": "SubnetId", + "ip_source": "IpSource", + "ipv_6_address_attribute": "Ipv6AddressAttribute", + "ipv_6_cidr_block": "Ipv6CidrBlock", + "ipv_6_ipam_pool_id": "Ipv6IpamPoolId", + "ipv_6_netmask_length": "Ipv6NetmaskLength", + "subnet_cidr_block_id": "Id", + "subnet_id": "SubnetId", }) opts = opts.IsImmutableType(true) diff --git a/internal/aws/ec2/vpc_resource_gen.go b/internal/aws/ec2/vpc_resource_gen.go index 0e7d54c85..7d20dddb2 100644 --- a/internal/aws/ec2/vpc_resource_gen.go +++ b/internal/aws/ec2/vpc_resource_gen.go @@ -129,11 +129,11 @@ func vPCResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The allowed tenancy of instances launched into the VPC.\n + ``default``: An instance launched into the VPC runs on shared hardware by default, unless you explicitly specify a different tenancy during instance launch.\n + ``dedicated``: An instance launched into the VPC runs on dedicated hardware by default, unless you explicitly specify a tenancy of ``host`` during instance launch. You cannot specify a tenancy of ``default`` during instance launch.\n \n Updating ``InstanceTenancy`` requires no replacement only if you are updating its value from ``dedicated`` to ``default``. Updating ``InstanceTenancy`` from ``default`` to ``dedicated`` requires replacement.", + // "description": "The allowed tenancy of instances launched into the VPC.\n + ``default``: An instance launched into the VPC runs on shared hardware by default, unless you explicitly specify a different tenancy during instance launch.\n + ``dedicated``: An instance launched into the VPC runs on dedicated hardware by default, unless you explicitly specify a tenancy of ``host`` during instance launch. You cannot specify a tenancy of ``default`` during instance launch.\n \n Updating ``InstanceTenancy`` requires no replacement only if you are updating its value from ``dedicated`` to ``default``. Updating ``InstanceTenancy`` from ``default`` to ``dedicated`` requires replacement.", // "type": "string" // } "instance_tenancy": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The allowed tenancy of instances launched into the VPC.\n + ``default``: An instance launched into the VPC runs on shared hardware by default, unless you explicitly specify a different tenancy during instance launch.\n + ``dedicated``: An instance launched into the VPC runs on dedicated hardware by default, unless you explicitly specify a tenancy of ``host`` during instance launch. You cannot specify a tenancy of ``default`` during instance launch.\n \n Updating ``InstanceTenancy`` requires no replacement only if you are updating its value from ``dedicated`` to ``default``. Updating ``InstanceTenancy`` from ``default`` to ``dedicated`` requires replacement.", + Description: "The allowed tenancy of instances launched into the VPC.\n + ``default``: An instance launched into the VPC runs on shared hardware by default, unless you explicitly specify a different tenancy during instance launch.\n + ``dedicated``: An instance launched into the VPC runs on dedicated hardware by default, unless you explicitly specify a tenancy of ``host`` during instance launch. You cannot specify a tenancy of ``default`` during instance launch.\n \n Updating ``InstanceTenancy`` requires no replacement only if you are updating its value from ``dedicated`` to ``default``. Updating ``InstanceTenancy`` from ``default`` to ``dedicated`` requires replacement.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -272,7 +272,7 @@ func vPCResource(ctx context.Context) (resource.Resource, error) { } schema := schema.Schema{ - Description: "Specifies a virtual private cloud (VPC).\n You can optionally request an IPv6 CIDR block for the VPC. You can request an Amazon-provided IPv6 CIDR block from Amazon's pool of IPv6 addresses, or an IPv6 CIDR block from an IPv6 address pool that you provisioned through bring your own IP addresses (BYOIP).\n For more information, see [Virtual private clouds (VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/configure-your-vpc.html) in the *Amazon VPC User Guide*.", + Description: "Specifies a virtual private cloud (VPC).\n To add an IPv6 CIDR block to the VPC, see [AWS::EC2::VPCCidrBlock](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html).\n For more information, see [Virtual private clouds (VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/configure-your-vpc.html) in the *Amazon VPC User Guide*.", Version: 1, Attributes: attributes, } diff --git a/internal/aws/lambda/event_source_mapping_resource_gen.go b/internal/aws/lambda/event_source_mapping_resource_gen.go index f467d8795..0f3087067 100644 --- a/internal/aws/lambda/event_source_mapping_resource_gen.go +++ b/internal/aws/lambda/event_source_mapping_resource_gen.go @@ -80,13 +80,13 @@ func eventSourceMappingResource(ctx context.Context) (resource.Resource, error) // CloudFormation resource type schema: // // { - // "description": "The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB).\n + *Amazon Kinesis* – Default 100. Max 10,000.\n + *Amazon DynamoDB Streams* – Default 100. Max 10,000.\n + *Amazon Simple Queue Service* – Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10.\n + *Amazon Managed Streaming for Apache Kafka* – Default 100. Max 10,000.\n + *Self-managed Apache Kafka* – Default 100. Max 10,000.\n + *Amazon MQ (ActiveMQ and RabbitMQ)* – Default 100. Max 10,000.\n + *DocumentDB* – Default 100. Max 10,000.", + // "description": "The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB).\n + *Amazon Kinesis* ? Default 100. Max 10,000.\n + *Amazon DynamoDB Streams* ? Default 100. Max 10,000.\n + *Amazon Simple Queue Service* ? Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10.\n + *Amazon Managed Streaming for Apache Kafka* ? Default 100. Max 10,000.\n + *Self-managed Apache Kafka* ? Default 100. Max 10,000.\n + *Amazon MQ (ActiveMQ and RabbitMQ)* ? Default 100. Max 10,000.\n + *DocumentDB* ? Default 100. Max 10,000.", // "maximum": 10000, // "minimum": 1, // "type": "integer" // } "batch_size": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB).\n + *Amazon Kinesis* – Default 100. Max 10,000.\n + *Amazon DynamoDB Streams* – Default 100. Max 10,000.\n + *Amazon Simple Queue Service* – Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10.\n + *Amazon Managed Streaming for Apache Kafka* – Default 100. Max 10,000.\n + *Self-managed Apache Kafka* – Default 100. Max 10,000.\n + *Amazon MQ (ActiveMQ and RabbitMQ)* – Default 100. Max 10,000.\n + *DocumentDB* – Default 100. Max 10,000.", + Description: "The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB).\n + *Amazon Kinesis* ? Default 100. Max 10,000.\n + *Amazon DynamoDB Streams* ? Default 100. Max 10,000.\n + *Amazon Simple Queue Service* ? Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10.\n + *Amazon Managed Streaming for Apache Kafka* ? Default 100. Max 10,000.\n + *Self-managed Apache Kafka* ? Default 100. Max 10,000.\n + *Amazon MQ (ActiveMQ and RabbitMQ)* ? Default 100. Max 10,000.\n + *DocumentDB* ? Default 100. Max 10,000.", Optional: true, Computed: true, Validators: []validator.Int64{ /*START VALIDATORS*/ @@ -267,14 +267,14 @@ func eventSourceMappingResource(ctx context.Context) (resource.Resource, error) // CloudFormation resource type schema: // // { - // "description": "The Amazon Resource Name (ARN) of the event source.\n + *Amazon Kinesis* – The ARN of the data stream or a stream consumer.\n + *Amazon DynamoDB Streams* – The ARN of the stream.\n + *Amazon Simple Queue Service* – The ARN of the queue.\n + *Amazon Managed Streaming for Apache Kafka* – The ARN of the cluster or the ARN of the VPC connection (for [cross-account event source mappings](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#msk-multi-vpc)).\n + *Amazon MQ* – The ARN of the broker.\n + *Amazon DocumentDB* – The ARN of the DocumentDB change stream.", + // "description": "The Amazon Resource Name (ARN) of the event source.\n + *Amazon Kinesis* ? The ARN of the data stream or a stream consumer.\n + *Amazon DynamoDB Streams* ? The ARN of the stream.\n + *Amazon Simple Queue Service* ? The ARN of the queue.\n + *Amazon Managed Streaming for Apache Kafka* ? The ARN of the cluster or the ARN of the VPC connection (for [cross-account event source mappings](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#msk-multi-vpc)).\n + *Amazon MQ* ? The ARN of the broker.\n + *Amazon DocumentDB* ? The ARN of the DocumentDB change stream.", // "maxLength": 1024, // "minLength": 12, // "pattern": "arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(-gov)?(-iso([a-z])?)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)", // "type": "string" // } "event_source_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Amazon Resource Name (ARN) of the event source.\n + *Amazon Kinesis* – The ARN of the data stream or a stream consumer.\n + *Amazon DynamoDB Streams* – The ARN of the stream.\n + *Amazon Simple Queue Service* – The ARN of the queue.\n + *Amazon Managed Streaming for Apache Kafka* – The ARN of the cluster or the ARN of the VPC connection (for [cross-account event source mappings](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#msk-multi-vpc)).\n + *Amazon MQ* – The ARN of the broker.\n + *Amazon DocumentDB* – The ARN of the DocumentDB change stream.", + Description: "The Amazon Resource Name (ARN) of the event source.\n + *Amazon Kinesis* ? The ARN of the data stream or a stream consumer.\n + *Amazon DynamoDB Streams* ? The ARN of the stream.\n + *Amazon Simple Queue Service* ? The ARN of the queue.\n + *Amazon Managed Streaming for Apache Kafka* ? The ARN of the cluster or the ARN of the VPC connection (for [cross-account event source mappings](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#msk-multi-vpc)).\n + *Amazon MQ* ? The ARN of the broker.\n + *Amazon DocumentDB* ? The ARN of the DocumentDB change stream.", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -361,14 +361,14 @@ func eventSourceMappingResource(ctx context.Context) (resource.Resource, error) // CloudFormation resource type schema: // // { - // "description": "The name or ARN of the Lambda function.\n **Name formats**\n + *Function name* – ``MyFunction``.\n + *Function ARN* – ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction``.\n + *Version or Alias ARN* – ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD``.\n + *Partial ARN* – ``123456789012:function:MyFunction``.\n \n The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length.", + // "description": "The name or ARN of the Lambda function.\n **Name formats**\n + *Function name* ? ``MyFunction``.\n + *Function ARN* ? ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction``.\n + *Version or Alias ARN* ? ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD``.\n + *Partial ARN* ? ``123456789012:function:MyFunction``.\n \n The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length.", // "maxLength": 140, // "minLength": 1, // "pattern": "(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?(-iso([a-z])?)?-[a-z]+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?", // "type": "string" // } "function_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name or ARN of the Lambda function.\n **Name formats**\n + *Function name* – ``MyFunction``.\n + *Function ARN* – ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction``.\n + *Version or Alias ARN* – ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD``.\n + *Partial ARN* – ``123456789012:function:MyFunction``.\n \n The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length.", + Description: "The name or ARN of the Lambda function.\n **Name formats**\n + *Function name* ? ``MyFunction``.\n + *Function ARN* ? ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction``.\n + *Version or Alias ARN* ? ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD``.\n + *Partial ARN* ? ``123456789012:function:MyFunction``.\n \n The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length.", Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 140), @@ -425,6 +425,28 @@ func eventSourceMappingResource(ctx context.Context) (resource.Resource, error) stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: KmsKeyArn + // CloudFormation resource type schema: + // + // { + // "description": "", + // "maxLength": 2048, + // "minLength": 12, + // "pattern": "(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()", + // "type": "string" + // } + "kms_key_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(12, 2048), + stringvalidator.RegexMatches(regexp.MustCompile("(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: MaximumBatchingWindowInSeconds // CloudFormation resource type schema: // @@ -698,7 +720,7 @@ func eventSourceMappingResource(ctx context.Context) (resource.Resource, error) // "description": "An array of the authentication protocol, VPC components, or virtual host to secure and define your event source.", // "properties": { // "Type": { - // "description": "The type of authentication protocol, VPC components, or virtual host for your event source. For example: ``\"Type\":\"SASL_SCRAM_512_AUTH\"``.\n + ``BASIC_AUTH`` – (Amazon MQ) The ASMlong secret that stores your broker credentials.\n + ``BASIC_AUTH`` – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL/PLAIN authentication of your Apache Kafka brokers.\n + ``VPC_SUBNET`` – (Self-managed Apache Kafka) The subnets associated with your VPC. Lambda connects to these subnets to fetch data from your self-managed Apache Kafka cluster.\n + ``VPC_SECURITY_GROUP`` – (Self-managed Apache Kafka) The VPC security group used to manage access to your self-managed Apache Kafka brokers.\n + ``SASL_SCRAM_256_AUTH`` – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-256 authentication of your self-managed Apache Kafka brokers.\n + ``SASL_SCRAM_512_AUTH`` – (Amazon MSK, Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-512 authentication of your self-managed Apache Kafka brokers.\n + ``VIRTUAL_HOST`` –- (RabbitMQ) The name of the virtual host in your RabbitMQ broker. Lambda uses this RabbitMQ host as the event source. This property cannot be specified in an UpdateEventSourceMapping API call.\n + ``CLIENT_CERTIFICATE_TLS_AUTH`` – (Amazon MSK, self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the certificate chain (X.509 PEM), private key (PKCS#8 PEM), and private key password (optional) used for mutual TLS authentication of your MSK/Apache Kafka brokers.\n + ``SERVER_ROOT_CA_CERTIFICATE`` – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the root CA certificate (X.509 PEM) used for TLS encryption of your Apache Kafka brokers.", + // "description": "The type of authentication protocol, VPC components, or virtual host for your event source. For example: ``\"Type\":\"SASL_SCRAM_512_AUTH\"``.\n + ``BASIC_AUTH`` ? (Amazon MQ) The ASMlong secret that stores your broker credentials.\n + ``BASIC_AUTH`` ? (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL/PLAIN authentication of your Apache Kafka brokers.\n + ``VPC_SUBNET`` ? (Self-managed Apache Kafka) The subnets associated with your VPC. Lambda connects to these subnets to fetch data from your self-managed Apache Kafka cluster.\n + ``VPC_SECURITY_GROUP`` ? (Self-managed Apache Kafka) The VPC security group used to manage access to your self-managed Apache Kafka brokers.\n + ``SASL_SCRAM_256_AUTH`` ? (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-256 authentication of your self-managed Apache Kafka brokers.\n + ``SASL_SCRAM_512_AUTH`` ? (Amazon MSK, Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-512 authentication of your self-managed Apache Kafka brokers.\n + ``VIRTUAL_HOST`` ?- (RabbitMQ) The name of the virtual host in your RabbitMQ broker. Lambda uses this RabbitMQ host as the event source. This property cannot be specified in an UpdateEventSourceMapping API call.\n + ``CLIENT_CERTIFICATE_TLS_AUTH`` ? (Amazon MSK, self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the certificate chain (X.509 PEM), private key (PKCS#8 PEM), and private key password (optional) used for mutual TLS authentication of your MSK/Apache Kafka brokers.\n + ``SERVER_ROOT_CA_CERTIFICATE`` ? (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the root CA certificate (X.509 PEM) used for TLS encryption of your Apache Kafka brokers.", // "enum": [ // "BASIC_AUTH", // "VPC_SUBNET", @@ -731,7 +753,7 @@ func eventSourceMappingResource(ctx context.Context) (resource.Resource, error) Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Type "type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of authentication protocol, VPC components, or virtual host for your event source. For example: ``\"Type\":\"SASL_SCRAM_512_AUTH\"``.\n + ``BASIC_AUTH`` – (Amazon MQ) The ASMlong secret that stores your broker credentials.\n + ``BASIC_AUTH`` – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL/PLAIN authentication of your Apache Kafka brokers.\n + ``VPC_SUBNET`` – (Self-managed Apache Kafka) The subnets associated with your VPC. Lambda connects to these subnets to fetch data from your self-managed Apache Kafka cluster.\n + ``VPC_SECURITY_GROUP`` – (Self-managed Apache Kafka) The VPC security group used to manage access to your self-managed Apache Kafka brokers.\n + ``SASL_SCRAM_256_AUTH`` – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-256 authentication of your self-managed Apache Kafka brokers.\n + ``SASL_SCRAM_512_AUTH`` – (Amazon MSK, Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-512 authentication of your self-managed Apache Kafka brokers.\n + ``VIRTUAL_HOST`` –- (RabbitMQ) The name of the virtual host in your RabbitMQ broker. Lambda uses this RabbitMQ host as the event source. This property cannot be specified in an UpdateEventSourceMapping API call.\n + ``CLIENT_CERTIFICATE_TLS_AUTH`` – (Amazon MSK, self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the certificate chain (X.509 PEM), private key (PKCS#8 PEM), and private key password (optional) used for mutual TLS authentication of your MSK/Apache Kafka brokers.\n + ``SERVER_ROOT_CA_CERTIFICATE`` – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the root CA certificate (X.509 PEM) used for TLS encryption of your Apache Kafka brokers.", + Description: "The type of authentication protocol, VPC components, or virtual host for your event source. For example: ``\"Type\":\"SASL_SCRAM_512_AUTH\"``.\n + ``BASIC_AUTH`` ? (Amazon MQ) The ASMlong secret that stores your broker credentials.\n + ``BASIC_AUTH`` ? (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL/PLAIN authentication of your Apache Kafka brokers.\n + ``VPC_SUBNET`` ? (Self-managed Apache Kafka) The subnets associated with your VPC. Lambda connects to these subnets to fetch data from your self-managed Apache Kafka cluster.\n + ``VPC_SECURITY_GROUP`` ? (Self-managed Apache Kafka) The VPC security group used to manage access to your self-managed Apache Kafka brokers.\n + ``SASL_SCRAM_256_AUTH`` ? (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-256 authentication of your self-managed Apache Kafka brokers.\n + ``SASL_SCRAM_512_AUTH`` ? (Amazon MSK, Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-512 authentication of your self-managed Apache Kafka brokers.\n + ``VIRTUAL_HOST`` ?- (RabbitMQ) The name of the virtual host in your RabbitMQ broker. Lambda uses this RabbitMQ host as the event source. This property cannot be specified in an UpdateEventSourceMapping API call.\n + ``CLIENT_CERTIFICATE_TLS_AUTH`` ? (Amazon MSK, self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the certificate chain (X.509 PEM), private key (PKCS#8 PEM), and private key password (optional) used for mutual TLS authentication of your MSK/Apache Kafka brokers.\n + ``SERVER_ROOT_CA_CERTIFICATE`` ? (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the root CA certificate (X.509 PEM) used for TLS encryption of your Apache Kafka brokers.", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -909,6 +931,7 @@ func eventSourceMappingResource(ctx context.Context) (resource.Resource, error) "function_name": "FunctionName", "function_response_types": "FunctionResponseTypes", "kafka_bootstrap_servers": "KafkaBootstrapServers", + "kms_key_arn": "KmsKeyArn", "maximum_batching_window_in_seconds": "MaximumBatchingWindowInSeconds", "maximum_concurrency": "MaximumConcurrency", "maximum_record_age_in_seconds": "MaximumRecordAgeInSeconds", diff --git a/internal/aws/s3/bucket_resource_gen.go b/internal/aws/s3/bucket_resource_gen.go index 99015cb97..0ab998786 100644 --- a/internal/aws/s3/bucket_resource_gen.go +++ b/internal/aws/s3/bucket_resource_gen.go @@ -370,7 +370,7 @@ func bucketResource(ctx context.Context) (resource.Resource, error) { // "insertionOrder": true, // "items": { // "additionalProperties": false, - // "description": "Specifies the default server-side encryption configuration.", + // "description": "Specifies the default server-side encryption configuration.\n If you're specifying a customer managed KMS key, we recommend using a fully qualified KMS key ARN. If you use a KMS key alias instead, then KMS resolves the key within the requester’s account. This behavior can result in data that's encrypted with a KMS key that belongs to the requester, and not the bucket owner.", // "properties": { // "BucketKeyEnabled": { // "description": "Specifies whether Amazon S3 should use an S3 Bucket Key with server-side encryption using KMS (SSE-KMS) for new objects in the bucket. Existing objects are not affected. Setting the ``BucketKeyEnabled`` element to ``true`` causes Amazon S3 to use an S3 Bucket Key. By default, S3 Bucket Key is not enabled.\n For more information, see [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) in the *Amazon S3 User Guide*.", @@ -381,11 +381,6 @@ func bucketResource(ctx context.Context) (resource.Resource, error) { // "description": "Specifies the default server-side encryption to apply to new objects in the bucket. If a PUT Object request doesn't specify any server-side encryption, this default encryption will be applied.", // "properties": { // "KMSMasterKeyID": { - // "anyOf": [ - // {}, - // {}, - // {} - // ], // "description": "AWS Key Management Service (KMS) customer AWS KMS key ID to use for the default encryption. This parameter is allowed if and only if ``SSEAlgorithm`` is set to ``aws:kms`` or ``aws:kms:dsse``.\n You can specify the key ID, key alias, or the Amazon Resource Name (ARN) of the KMS key.\n + Key ID: ``1234abcd-12ab-34cd-56ef-1234567890ab`` \n + Key ARN: ``arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`` \n + Key Alias: ``alias/alias-name`` \n \n If you use a key ID, you can run into a LogDestination undeliverable error when creating a VPC flow log. \n If you are using encryption with cross-account or AWS service operations you must use a fully qualified KMS key ARN. For more information, see [Using encryption for cross-account operations](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy).\n Amazon S3 only supports symmetric encryption KMS keys. For more information, see [Asymmetric keys in KMS](https://docs.aws.amazon.com//kms/latest/developerguide/symmetric-asymmetric.html) in the *Key Management Service Developer Guide*.", // "type": "string" // }, @@ -1808,7 +1803,7 @@ func bucketResource(ctx context.Context) (resource.Resource, error) { // "description": "Amazon S3 keys for log objects are partitioned in the following format:\n ``[DestinationPrefix][SourceAccountId]/[SourceRegion]/[SourceBucket]/[YYYY]/[MM]/[DD]/[YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]`` \n PartitionedPrefix defaults to EventTime delivery when server access logs are delivered.", // "properties": { // "PartitionDateSource": { - // "description": "Specifies the partition date source for the partitioned prefix. PartitionDateSource can be EventTime or DeliveryTime.", + // "description": "Specifies the partition date source for the partitioned prefix. ``PartitionDateSource`` can be ``EventTime`` or ``DeliveryTime``.\n For ``DeliveryTime``, the time in the log file names corresponds to the delivery time for the log files. \n For ``EventTime``, The logs delivered are for a specific day only. The year, month, and day correspond to the day on which the event occurred, and the hour, minutes and seconds are set to 00 in the key.", // "enum": [ // "EventTime", // "DeliveryTime" @@ -1857,7 +1852,7 @@ func bucketResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: PartitionDateSource "partition_date_source": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies the partition date source for the partitioned prefix. PartitionDateSource can be EventTime or DeliveryTime.", + Description: "Specifies the partition date source for the partitioned prefix. ``PartitionDateSource`` can be ``EventTime`` or ``DeliveryTime``.\n For ``DeliveryTime``, the time in the log file names corresponds to the delivery time for the log files. \n For ``EventTime``, The logs delivered are for a specific day only. The year, month, and day correspond to the day on which the event occurred, and the hour, minutes and seconds are set to 00 in the key.", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -3541,7 +3536,7 @@ func bucketResource(ctx context.Context) (resource.Resource, error) { // // { // "additionalProperties": false, - // "description": "Enables multiple versions of all objects in this bucket. You might enable versioning to prevent objects from being deleted or overwritten by mistake or to archive objects so that you can retrieve previous versions of them.", + // "description": "Enables multiple versions of all objects in this bucket. You might enable versioning to prevent objects from being deleted or overwritten by mistake or to archive objects so that you can retrieve previous versions of them.\n When you enable versioning on a bucket for the first time, it might take a short amount of time for the change to be fully propagated. We recommend that you wait for 15 minutes after enabling versioning before issuing write operations (``PUT`` or ``DELETE``) on objects in the bucket.", // "properties": { // "Status": { // "default": "Suspended", @@ -3577,7 +3572,7 @@ func bucketResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "Enables multiple versions of all objects in this bucket. You might enable versioning to prevent objects from being deleted or overwritten by mistake or to archive objects so that you can retrieve previous versions of them.", + Description: "Enables multiple versions of all objects in this bucket. You might enable versioning to prevent objects from being deleted or overwritten by mistake or to archive objects so that you can retrieve previous versions of them.\n When you enable versioning on a bucket for the first time, it might take a short amount of time for the change to be fully propagated. We recommend that you wait for 15 minutes after enabling versioning before issuing write operations (``PUT`` or ``DELETE``) on objects in the bucket.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/signer/signing_profile_resource_gen.go b/internal/aws/signer/signing_profile_resource_gen.go index 90f813e17..71bee5787 100644 --- a/internal/aws/signer/signing_profile_resource_gen.go +++ b/internal/aws/signer/signing_profile_resource_gen.go @@ -75,7 +75,7 @@ func signingProfileResource(ctx context.Context) (resource.Resource, error) { // "description": "A name for the signing profile. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the signing profile name. ", // "maxLength": 64, // "minLength": 2, - // "pattern": "^[0-9a-zA-Z_]$", + // "pattern": "^[0-9a-zA-Z_]{2,64}$", // "type": "string" // } "profile_name": schema.StringAttribute{ /*START ATTRIBUTE*/ diff --git a/internal/aws/systemsmanagersap/application_resource_gen.go b/internal/aws/systemsmanagersap/application_resource_gen.go index 830c28784..24fbaaebf 100644 --- a/internal/aws/systemsmanagersap/application_resource_gen.go +++ b/internal/aws/systemsmanagersap/application_resource_gen.go @@ -34,13 +34,13 @@ func applicationResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "pattern": "[\\w\\d]{1,50}", + // "pattern": "[\\w\\d\\.-]{1,60}", // "type": "string" // } "application_id": schema.StringAttribute{ /*START ATTRIBUTE*/ Required: true, Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.RegexMatches(regexp.MustCompile("[\\w\\d]{1,50}"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("[\\w\\d\\.-]{1,60}"), ""), }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ // Property: ApplicationType @@ -48,7 +48,8 @@ func applicationResource(ctx context.Context) (resource.Resource, error) { // // { // "enum": [ - // "HANA" + // "HANA", + // "SAP_ABAP" // ], // "type": "string" // } @@ -57,6 +58,7 @@ func applicationResource(ctx context.Context) (resource.Resource, error) { Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.OneOf( "HANA", + "SAP_ABAP", ), }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ @@ -64,12 +66,12 @@ func applicationResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The ARN of the Helix application", + // "description": "The ARN of the SSM-SAP application", // "pattern": "^arn:(.+:){2,4}.+$|^arn:(.+:){1,3}.+\\/.+$", // "type": "string" // } "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ARN of the Helix application", + Description: "The ARN of the SSM-SAP application", Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -148,6 +150,27 @@ func applicationResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ // Credentials is a write-only property. }, /*END ATTRIBUTE*/ + // Property: DatabaseArn + // CloudFormation resource type schema: + // + // { + // "description": "The ARN of the SAP HANA database", + // "pattern": "^arn:(.+:){2,4}.+$|^arn:(.+:){1,3}.+\\/.+$", + // "type": "string" + // } + "database_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of the SAP HANA database", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^arn:(.+:){2,4}.+$|^arn:(.+:){1,3}.+\\/.+$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + // DatabaseArn is a write-only property. + }, /*END ATTRIBUTE*/ // Property: Instances // CloudFormation resource type schema: // @@ -300,6 +323,7 @@ func applicationResource(ctx context.Context) (resource.Resource, error) { "arn": "Arn", "credential_type": "CredentialType", "credentials": "Credentials", + "database_arn": "DatabaseArn", "database_name": "DatabaseName", "instances": "Instances", "key": "Key", @@ -315,6 +339,7 @@ func applicationResource(ctx context.Context) (resource.Resource, error) { "/properties/Instances", "/properties/SapInstanceNumber", "/properties/Sid", + "/properties/DatabaseArn", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/timestream/influx_db_instance_resource_gen.go b/internal/aws/timestream/influx_db_instance_resource_gen.go index a2cd2cb86..7e53bf37d 100644 --- a/internal/aws/timestream/influx_db_instance_resource_gen.go +++ b/internal/aws/timestream/influx_db_instance_resource_gen.go @@ -7,6 +7,8 @@ package timestream import ( "context" + "regexp" + "github.com/hashicorp/terraform-plugin-framework-validators/int64validator" "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" "github.com/hashicorp/terraform-plugin-framework-validators/setvalidator" @@ -25,7 +27,6 @@ import ( "github.com/hashicorp/terraform-plugin-framework/types" "github.com/hashicorp/terraform-provider-awscc/internal/generic" "github.com/hashicorp/terraform-provider-awscc/internal/registry" - "regexp" ) func init() { diff --git a/internal/aws/vpclattice/auth_policy_resource_gen.go b/internal/aws/vpclattice/auth_policy_resource_gen.go index 91eba3336..7b96e599a 100644 --- a/internal/aws/vpclattice/auth_policy_resource_gen.go +++ b/internal/aws/vpclattice/auth_policy_resource_gen.go @@ -43,14 +43,14 @@ func authPolicyResource(ctx context.Context) (resource.Resource, error) { // // { // "maxLength": 200, - // "minLength": 21, + // "minLength": 17, // "pattern": "^((((sn)|(svc))-[0-9a-z]{17})|(arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:((servicenetwork/sn)|(service/svc))-[0-9a-z]{17}))$", // "type": "string" // } "resource_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ Required: true, Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.LengthBetween(21, 200), + stringvalidator.LengthBetween(17, 200), stringvalidator.RegexMatches(regexp.MustCompile("^((((sn)|(svc))-[0-9a-z]{17})|(arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:((servicenetwork/sn)|(service/svc))-[0-9a-z]{17}))$"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ From a9b672150e9117d3f9a9e7a3a48fb9edb83d7e4b Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 15 Aug 2024 12:24:45 -0400 Subject: [PATCH 87/89] 08/14/2024 CloudFormation schemas in us-east-1; Generate Terraform data source schemas. --- .../data_source_singular_data_source_gen.go | 1323 ++++++++++++++++- .../identity_pool_singular_data_source_gen.go | 53 + ..._configuration_singular_data_source_gen.go | 42 + ...aunch_template_singular_data_source_gen.go | 4 +- ...net_cidr_block_singular_data_source_gen.go | 34 +- .../aws/ec2/vpc_singular_data_source_gen.go | 4 +- ...source_mapping_singular_data_source_gen.go | 31 +- .../aws/s3/bucket_singular_data_source_gen.go | 15 +- ...igning_profile_singular_data_source_gen.go | 2 +- .../application_singular_data_source_gen.go | 22 +- .../auth_policy_singular_data_source_gen.go | 2 +- 11 files changed, 1470 insertions(+), 62 deletions(-) diff --git a/internal/aws/bedrock/data_source_singular_data_source_gen.go b/internal/aws/bedrock/data_source_singular_data_source_gen.go index 1f9c31a59..a5b25a729 100644 --- a/internal/aws/bedrock/data_source_singular_data_source_gen.go +++ b/internal/aws/bedrock/data_source_singular_data_source_gen.go @@ -55,10 +55,167 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { // { // "additionalProperties": false, // "description": "Specifies a raw data source location to ingest.", + // "oneOf": [ + // { + // "required": [ + // "S3Configuration" + // ] + // }, + // { + // "required": [ + // "ConfluenceConfiguration" + // ] + // }, + // { + // "required": [ + // "SalesforceConfiguration" + // ] + // }, + // { + // "required": [ + // "SharePointConfiguration" + // ] + // }, + // { + // "required": [ + // "WebConfiguration" + // ] + // } + // ], // "properties": { + // "ConfluenceConfiguration": { + // "additionalProperties": false, + // "description": "The configuration information to connect to Confluence as your data source.", + // "properties": { + // "CrawlerConfiguration": { + // "additionalProperties": false, + // "description": "The configuration of the Confluence content. For example, configuring specific types of Confluence content.", + // "properties": { + // "FilterConfiguration": { + // "additionalProperties": false, + // "description": "The type of filtering that you want to apply to certain objects or content of the data source. For example, the PATTERN type is regular expression patterns you can apply to filter your content.", + // "properties": { + // "PatternObjectFilter": { + // "additionalProperties": false, + // "description": "The configuration of specific filters applied to your data source content. You can filter out or include certain content.", + // "properties": { + // "Filters": { + // "description": "Contains information", + // "items": { + // "additionalProperties": false, + // "description": "The specific filters applied to your data source content. You can filter out or include certain content.", + // "properties": { + // "ExclusionFilters": { + // "description": "A set of regular expression filter patterns for a type of object.", + // "insertionOrder": false, + // "items": { + // "description": "A list of one or more inclusion/exclusion regular expression patterns to include certain object types that adhere to the pattern. If you specify an inclusion and exclusion filter/pattern and both match a document, the exclusion filter takes precedence and the document isn't crawled.", + // "maxLength": 1000, + // "type": "string" + // }, + // "maxItems": 25, + // "minItems": 1, + // "type": "array" + // }, + // "InclusionFilters": { + // "description": "A set of regular expression filter patterns for a type of object.", + // "insertionOrder": false, + // "items": { + // "description": "A list of one or more inclusion/exclusion regular expression patterns to include certain object types that adhere to the pattern. If you specify an inclusion and exclusion filter/pattern and both match a document, the exclusion filter takes precedence and the document isn't crawled.", + // "maxLength": 1000, + // "type": "string" + // }, + // "maxItems": 25, + // "minItems": 1, + // "type": "array" + // }, + // "ObjectType": { + // "description": "The supported object type or content type of the data source.", + // "maxLength": 50, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "ObjectType" + // ], + // "type": "object" + // }, + // "maxItems": 25, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "Filters" + // ], + // "type": "object" + // }, + // "Type": { + // "description": "The crawl filter type.", + // "enum": [ + // "PATTERN" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Type" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "SourceConfiguration": { + // "additionalProperties": false, + // "description": "The endpoint information to connect to your Confluence data source.", + // "properties": { + // "AuthType": { + // "description": "The supported authentication type to authenticate and connect to your Confluence instance.", + // "enum": [ + // "BASIC", + // "OAUTH2_CLIENT_CREDENTIALS" + // ], + // "type": "string" + // }, + // "CredentialsSecretArn": { + // "description": "The Amazon Resource Name of an AWS Secrets Manager secret that stores your authentication credentials for your Confluence instance URL. For more information on the key-value pairs that must be included in your secret, depending on your authentication type, see Confluence connection configuration.", + // "pattern": "^arn:aws(|-cn|-us-gov):secretsmanager:[a-z0-9-]{1,20}:([0-9]{12}|):secret:[a-zA-Z0-9!/_+=.@-]{1,512}$", + // "type": "string" + // }, + // "HostType": { + // "description": "The supported host type, whether online/cloud or server/on-premises.", + // "enum": [ + // "SAAS" + // ], + // "type": "string" + // }, + // "HostUrl": { + // "description": "The Confluence host URL or instance URL.", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^https://[A-Za-z0-9][^\\s]*$", + // "type": "string" + // } + // }, + // "required": [ + // "HostUrl", + // "HostType", + // "AuthType", + // "CredentialsSecretArn" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "SourceConfiguration" + // ], + // "type": "object" + // }, // "S3Configuration": { // "additionalProperties": false, - // "description": "Contains information about the S3 configuration of the data source.", + // "description": "The configuration information to connect to Amazon S3 as your data source.", // "properties": { // "BucketArn": { // "description": "The ARN of the bucket that contains the data source.", @@ -93,22 +250,482 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { // ], // "type": "object" // }, + // "SalesforceConfiguration": { + // "additionalProperties": false, + // "description": "The configuration information to connect to Salesforce as your data source.", + // "properties": { + // "CrawlerConfiguration": { + // "additionalProperties": false, + // "description": "The configuration of filtering the Salesforce content. For example, configuring regular expression patterns to include or exclude certain content.", + // "properties": { + // "FilterConfiguration": { + // "additionalProperties": false, + // "description": "The type of filtering that you want to apply to certain objects or content of the data source. For example, the PATTERN type is regular expression patterns you can apply to filter your content.", + // "properties": { + // "PatternObjectFilter": { + // "additionalProperties": false, + // "description": "The configuration of specific filters applied to your data source content. You can filter out or include certain content.", + // "properties": { + // "Filters": { + // "description": "Contains information", + // "items": { + // "additionalProperties": false, + // "description": "The specific filters applied to your data source content. You can filter out or include certain content.", + // "properties": { + // "ExclusionFilters": { + // "description": "A set of regular expression filter patterns for a type of object.", + // "insertionOrder": false, + // "items": { + // "description": "A list of one or more inclusion/exclusion regular expression patterns to include certain object types that adhere to the pattern. If you specify an inclusion and exclusion filter/pattern and both match a document, the exclusion filter takes precedence and the document isn't crawled.", + // "maxLength": 1000, + // "type": "string" + // }, + // "maxItems": 25, + // "minItems": 1, + // "type": "array" + // }, + // "InclusionFilters": { + // "description": "A set of regular expression filter patterns for a type of object.", + // "insertionOrder": false, + // "items": { + // "description": "A list of one or more inclusion/exclusion regular expression patterns to include certain object types that adhere to the pattern. If you specify an inclusion and exclusion filter/pattern and both match a document, the exclusion filter takes precedence and the document isn't crawled.", + // "maxLength": 1000, + // "type": "string" + // }, + // "maxItems": 25, + // "minItems": 1, + // "type": "array" + // }, + // "ObjectType": { + // "description": "The supported object type or content type of the data source.", + // "maxLength": 50, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "ObjectType" + // ], + // "type": "object" + // }, + // "maxItems": 25, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "Filters" + // ], + // "type": "object" + // }, + // "Type": { + // "description": "The crawl filter type.", + // "enum": [ + // "PATTERN" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Type" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "SourceConfiguration": { + // "additionalProperties": false, + // "description": "The endpoint information to connect to your Salesforce data source.", + // "properties": { + // "AuthType": { + // "description": "The supported authentication type to authenticate and connect to your Salesforce instance.", + // "enum": [ + // "OAUTH2_CLIENT_CREDENTIALS" + // ], + // "type": "string" + // }, + // "CredentialsSecretArn": { + // "description": "The Amazon Resource Name of an AWS Secrets Manager secret that stores your authentication credentials for your Salesforce instance URL. For more information on the key-value pairs that must be included in your secret, depending on your authentication type, see Salesforce connection configuration.", + // "pattern": "^arn:aws(|-cn|-us-gov):secretsmanager:[a-z0-9-]{1,20}:([0-9]{12}|):secret:[a-zA-Z0-9!/_+=.@-]{1,512}$", + // "type": "string" + // }, + // "HostUrl": { + // "description": "The Salesforce host URL or instance URL.", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^https://[A-Za-z0-9][^\\s]*$", + // "type": "string" + // } + // }, + // "required": [ + // "HostUrl", + // "AuthType", + // "CredentialsSecretArn" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "SourceConfiguration" + // ], + // "type": "object" + // }, + // "SharePointConfiguration": { + // "additionalProperties": false, + // "description": "The configuration information to connect to SharePoint as your data source.", + // "properties": { + // "CrawlerConfiguration": { + // "additionalProperties": false, + // "description": "The configuration of the SharePoint content. For example, configuring specific types of SharePoint content.", + // "properties": { + // "FilterConfiguration": { + // "additionalProperties": false, + // "description": "The type of filtering that you want to apply to certain objects or content of the data source. For example, the PATTERN type is regular expression patterns you can apply to filter your content.", + // "properties": { + // "PatternObjectFilter": { + // "additionalProperties": false, + // "description": "The configuration of specific filters applied to your data source content. You can filter out or include certain content.", + // "properties": { + // "Filters": { + // "description": "Contains information", + // "items": { + // "additionalProperties": false, + // "description": "The specific filters applied to your data source content. You can filter out or include certain content.", + // "properties": { + // "ExclusionFilters": { + // "description": "A set of regular expression filter patterns for a type of object.", + // "insertionOrder": false, + // "items": { + // "description": "A list of one or more inclusion/exclusion regular expression patterns to include certain object types that adhere to the pattern. If you specify an inclusion and exclusion filter/pattern and both match a document, the exclusion filter takes precedence and the document isn't crawled.", + // "maxLength": 1000, + // "type": "string" + // }, + // "maxItems": 25, + // "minItems": 1, + // "type": "array" + // }, + // "InclusionFilters": { + // "description": "A set of regular expression filter patterns for a type of object.", + // "insertionOrder": false, + // "items": { + // "description": "A list of one or more inclusion/exclusion regular expression patterns to include certain object types that adhere to the pattern. If you specify an inclusion and exclusion filter/pattern and both match a document, the exclusion filter takes precedence and the document isn't crawled.", + // "maxLength": 1000, + // "type": "string" + // }, + // "maxItems": 25, + // "minItems": 1, + // "type": "array" + // }, + // "ObjectType": { + // "description": "The supported object type or content type of the data source.", + // "maxLength": 50, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "ObjectType" + // ], + // "type": "object" + // }, + // "maxItems": 25, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "Filters" + // ], + // "type": "object" + // }, + // "Type": { + // "description": "The crawl filter type.", + // "enum": [ + // "PATTERN" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Type" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "SourceConfiguration": { + // "additionalProperties": false, + // "description": "The endpoint information to connect to your SharePoint data source.", + // "properties": { + // "AuthType": { + // "description": "The supported authentication type to authenticate and connect to your SharePoint site/sites.", + // "enum": [ + // "OAUTH2_CLIENT_CREDENTIALS" + // ], + // "type": "string" + // }, + // "CredentialsSecretArn": { + // "description": "The Amazon Resource Name of an AWS Secrets Manager secret that stores your authentication credentials for your SharePoint site/sites. For more information on the key-value pairs that must be included in your secret, depending on your authentication type, see SharePoint connection configuration.", + // "pattern": "^arn:aws(|-cn|-us-gov):secretsmanager:[a-z0-9-]{1,20}:([0-9]{12}|):secret:[a-zA-Z0-9!/_+=.@-]{1,512}$", + // "type": "string" + // }, + // "Domain": { + // "description": "The domain of your SharePoint instance or site URL/URLs.", + // "maxLength": 50, + // "minLength": 1, + // "type": "string" + // }, + // "HostType": { + // "description": "The supported host type, whether online/cloud or server/on-premises.", + // "enum": [ + // "ONLINE" + // ], + // "type": "string" + // }, + // "SiteUrls": { + // "description": "A list of one or more SharePoint site URLs.", + // "insertionOrder": false, + // "items": { + // "description": "A forced-HTTPS web url.", + // "pattern": "^https://[A-Za-z0-9][^\\s]*$", + // "type": "string" + // }, + // "maxItems": 100, + // "minItems": 1, + // "type": "array" + // }, + // "TenantId": { + // "description": "The identifier of your Microsoft 365 tenant.", + // "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", + // "type": "string" + // } + // }, + // "required": [ + // "Domain", + // "SiteUrls", + // "HostType", + // "AuthType", + // "CredentialsSecretArn" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "SourceConfiguration" + // ], + // "type": "object" + // }, // "Type": { // "description": "The type of the data source location.", // "enum": [ - // "S3" + // "S3", + // "CONFLUENCE", + // "SALESFORCE", + // "SHAREPOINT", + // "WEB" // ], // "type": "string" + // }, + // "WebConfiguration": { + // "additionalProperties": false, + // "description": "Configures a web data source location.", + // "properties": { + // "CrawlerConfiguration": { + // "additionalProperties": false, + // "description": "Configuration for the web crawler.", + // "properties": { + // "CrawlerLimits": { + // "additionalProperties": false, + // "description": "Limit settings for the web crawler.", + // "properties": { + // "RateLimit": { + // "description": "Rate of web URLs retrieved per minute.", + // "maximum": 300, + // "minimum": 1, + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "ExclusionFilters": { + // "description": "A set of regular expression filter patterns for a type of object.", + // "insertionOrder": false, + // "items": { + // "description": "A list of one or more inclusion/exclusion regular expression patterns to include certain object types that adhere to the pattern. If you specify an inclusion and exclusion filter/pattern and both match a document, the exclusion filter takes precedence and the document isn't crawled.", + // "maxLength": 1000, + // "type": "string" + // }, + // "maxItems": 25, + // "minItems": 1, + // "type": "array" + // }, + // "InclusionFilters": { + // "description": "A set of regular expression filter patterns for a type of object.", + // "insertionOrder": false, + // "items": { + // "description": "A list of one or more inclusion/exclusion regular expression patterns to include certain object types that adhere to the pattern. If you specify an inclusion and exclusion filter/pattern and both match a document, the exclusion filter takes precedence and the document isn't crawled.", + // "maxLength": 1000, + // "type": "string" + // }, + // "maxItems": 25, + // "minItems": 1, + // "type": "array" + // }, + // "Scope": { + // "description": "The scope that a web crawl job will be restricted to.", + // "enum": [ + // "HOST_ONLY", + // "SUBDOMAINS" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "SourceConfiguration": { + // "additionalProperties": false, + // "description": "A web source configuration.", + // "properties": { + // "UrlConfiguration": { + // "additionalProperties": false, + // "description": "A url configuration.", + // "properties": { + // "SeedUrls": { + // "description": "A list of web urls.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A seed url object.", + // "properties": { + // "Url": { + // "description": "A web url.", + // "pattern": "^https?://[A-Za-z0-9][^\\s]*$", + // "type": "string" + // } + // }, + // "required": [ + // "Url" + // ], + // "type": "object" + // }, + // "maxItems": 100, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "SeedUrls" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "UrlConfiguration" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "SourceConfiguration" + // ], + // "type": "object" // } // }, // "required": [ - // "Type", - // "S3Configuration" + // "Type" // ], // "type": "object" // } "data_source_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ConfluenceConfiguration + "confluence_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CrawlerConfiguration + "crawler_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: FilterConfiguration + "filter_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PatternObjectFilter + "pattern_object_filter": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Filters + "filters": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ExclusionFilters + "exclusion_filters": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A set of regular expression filter patterns for a type of object.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InclusionFilters + "inclusion_filters": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A set of regular expression filter patterns for a type of object.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ObjectType + "object_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The supported object type or content type of the data source.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "Contains information", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The configuration of specific filters applied to your data source content. You can filter out or include certain content.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The crawl filter type.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The type of filtering that you want to apply to certain objects or content of the data source. For example, the PATTERN type is regular expression patterns you can apply to filter your content.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The configuration of the Confluence content. For example, configuring specific types of Confluence content.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SourceConfiguration + "source_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AuthType + "auth_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The supported authentication type to authenticate and connect to your Confluence instance.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CredentialsSecretArn + "credentials_secret_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name of an AWS Secrets Manager secret that stores your authentication credentials for your Confluence instance URL. For more information on the key-value pairs that must be included in your secret, depending on your authentication type, see Confluence connection configuration.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: HostType + "host_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The supported host type, whether online/cloud or server/on-premises.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: HostUrl + "host_url": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Confluence host URL or instance URL.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The endpoint information to connect to your Confluence data source.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The configuration information to connect to Confluence as your data source.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: S3Configuration "s3_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -129,7 +746,185 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "Contains information about the S3 configuration of the data source.", + Description: "The configuration information to connect to Amazon S3 as your data source.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SalesforceConfiguration + "salesforce_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CrawlerConfiguration + "crawler_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: FilterConfiguration + "filter_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PatternObjectFilter + "pattern_object_filter": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Filters + "filters": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ExclusionFilters + "exclusion_filters": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A set of regular expression filter patterns for a type of object.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InclusionFilters + "inclusion_filters": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A set of regular expression filter patterns for a type of object.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ObjectType + "object_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The supported object type or content type of the data source.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "Contains information", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The configuration of specific filters applied to your data source content. You can filter out or include certain content.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The crawl filter type.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The type of filtering that you want to apply to certain objects or content of the data source. For example, the PATTERN type is regular expression patterns you can apply to filter your content.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The configuration of filtering the Salesforce content. For example, configuring regular expression patterns to include or exclude certain content.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SourceConfiguration + "source_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AuthType + "auth_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The supported authentication type to authenticate and connect to your Salesforce instance.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CredentialsSecretArn + "credentials_secret_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name of an AWS Secrets Manager secret that stores your authentication credentials for your Salesforce instance URL. For more information on the key-value pairs that must be included in your secret, depending on your authentication type, see Salesforce connection configuration.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: HostUrl + "host_url": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Salesforce host URL or instance URL.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The endpoint information to connect to your Salesforce data source.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The configuration information to connect to Salesforce as your data source.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SharePointConfiguration + "share_point_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CrawlerConfiguration + "crawler_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: FilterConfiguration + "filter_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PatternObjectFilter + "pattern_object_filter": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Filters + "filters": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ExclusionFilters + "exclusion_filters": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A set of regular expression filter patterns for a type of object.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InclusionFilters + "inclusion_filters": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A set of regular expression filter patterns for a type of object.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ObjectType + "object_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The supported object type or content type of the data source.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "Contains information", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The configuration of specific filters applied to your data source content. You can filter out or include certain content.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The crawl filter type.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The type of filtering that you want to apply to certain objects or content of the data source. For example, the PATTERN type is regular expression patterns you can apply to filter your content.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The configuration of the SharePoint content. For example, configuring specific types of SharePoint content.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SourceConfiguration + "source_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AuthType + "auth_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The supported authentication type to authenticate and connect to your SharePoint site/sites.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CredentialsSecretArn + "credentials_secret_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name of an AWS Secrets Manager secret that stores your authentication credentials for your SharePoint site/sites. For more information on the key-value pairs that must be included in your secret, depending on your authentication type, see SharePoint connection configuration.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Domain + "domain": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The domain of your SharePoint instance or site URL/URLs.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: HostType + "host_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The supported host type, whether online/cloud or server/on-premises.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SiteUrls + "site_urls": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of one or more SharePoint site URLs.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TenantId + "tenant_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of your Microsoft 365 tenant.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The endpoint information to connect to your SharePoint data source.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The configuration information to connect to SharePoint as your data source.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Type @@ -137,6 +932,77 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The type of the data source location.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: WebConfiguration + "web_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CrawlerConfiguration + "crawler_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CrawlerLimits + "crawler_limits": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: RateLimit + "rate_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Rate of web URLs retrieved per minute.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Limit settings for the web crawler.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ExclusionFilters + "exclusion_filters": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A set of regular expression filter patterns for a type of object.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InclusionFilters + "inclusion_filters": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A set of regular expression filter patterns for a type of object.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Scope + "scope": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The scope that a web crawl job will be restricted to.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Configuration for the web crawler.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SourceConfiguration + "source_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: UrlConfiguration + "url_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SeedUrls + "seed_urls": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Url + "url": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A web url.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of web urls.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "A url configuration.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "A web source configuration.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Configures a web data source location.", + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "Specifies a raw data source location to ingest.", Computed: true, @@ -279,7 +1145,9 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "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.", // "enum": [ // "FIXED_SIZE", - // "NONE" + // "NONE", + // "HIERARCHICAL", + // "SEMANTIC" // ], // "type": "string" // }, @@ -304,12 +1172,220 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { // "OverlapPercentage" // ], // "type": "object" + // }, + // "HierarchicalChunkingConfiguration": { + // "additionalProperties": false, + // "description": "Configurations for when you choose hierarchical chunking. If you set the chunkingStrategy as NONE, exclude this field.", + // "properties": { + // "LevelConfigurations": { + // "description": "Token settings for each layer.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "Token settings for a layer in a hierarchical chunking configuration.", + // "properties": { + // "MaxTokens": { + // "description": "The maximum number of tokens that a chunk can contain in this layer.", + // "maximum": 8192, + // "minimum": 1, + // "type": "integer" + // } + // }, + // "required": [ + // "MaxTokens" + // ], + // "type": "object" + // }, + // "maxItems": 2, + // "minItems": 2, + // "type": "array" + // }, + // "OverlapTokens": { + // "description": "The number of tokens to repeat across chunks in the same layer.", + // "minimum": 1, + // "type": "integer" + // } + // }, + // "required": [ + // "LevelConfigurations", + // "OverlapTokens" + // ], + // "type": "object" + // }, + // "SemanticChunkingConfiguration": { + // "additionalProperties": false, + // "description": "Configurations for when you choose semantic chunking. If you set the chunkingStrategy as NONE, exclude this field.", + // "properties": { + // "BreakpointPercentileThreshold": { + // "description": "The dissimilarity threshold for splitting chunks.", + // "maximum": 99, + // "minimum": 50, + // "type": "integer" + // }, + // "BufferSize": { + // "description": "The buffer size.", + // "maximum": 1, + // "minimum": 0, + // "type": "integer" + // }, + // "MaxTokens": { + // "description": "The maximum number of tokens that a chunk can contain.", + // "minimum": 1, + // "type": "integer" + // } + // }, + // "required": [ + // "BreakpointPercentileThreshold", + // "BufferSize", + // "MaxTokens" + // ], + // "type": "object" // } // }, // "required": [ // "ChunkingStrategy" // ], // "type": "object" + // }, + // "CustomTransformationConfiguration": { + // "additionalProperties": false, + // "description": "Settings for customizing steps in the data source content ingestion pipeline.", + // "properties": { + // "IntermediateStorage": { + // "additionalProperties": false, + // "description": "A location for storing content from data sources temporarily as it is processed by custom components in the ingestion pipeline.", + // "properties": { + // "S3Location": { + // "additionalProperties": false, + // "description": "An Amazon S3 location.", + // "properties": { + // "URI": { + // "description": "The location's URI", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^s3://.{1,128}$", + // "type": "string" + // } + // }, + // "required": [ + // "URI" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "S3Location" + // ], + // "type": "object" + // }, + // "Transformations": { + // "description": "A list of Lambda functions that process documents.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A Lambda function that processes documents.", + // "properties": { + // "StepToApply": { + // "description": "When the service applies the transformation.", + // "enum": [ + // "POST_CHUNKING" + // ], + // "type": "string" + // }, + // "TransformationFunction": { + // "additionalProperties": false, + // "description": "A Lambda function that processes documents.", + // "properties": { + // "TransformationLambdaConfiguration": { + // "additionalProperties": false, + // "description": "A Lambda function that processes documents.", + // "properties": { + // "LambdaArn": { + // "description": "The function's ARN identifier.", + // "maxLength": 2048, + // "minLength": 0, + // "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + // "type": "string" + // } + // }, + // "required": [ + // "LambdaArn" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "TransformationLambdaConfiguration" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "StepToApply", + // "TransformationFunction" + // ], + // "type": "object" + // }, + // "maxItems": 1, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "IntermediateStorage", + // "Transformations" + // ], + // "type": "object" + // }, + // "ParsingConfiguration": { + // "additionalProperties": false, + // "description": "Settings for parsing document contents", + // "properties": { + // "BedrockFoundationModelConfiguration": { + // "additionalProperties": false, + // "description": "Settings for a foundation model used to parse documents for a data source.", + // "properties": { + // "ModelArn": { + // "description": "The model's ARN.", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})$", + // "type": "string" + // }, + // "ParsingPrompt": { + // "additionalProperties": false, + // "description": "Instructions for interpreting the contents of a document.", + // "properties": { + // "ParsingPromptText": { + // "description": "Instructions for interpreting the contents of a document.", + // "maxLength": 10000, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "ParsingPromptText" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "ModelArn" + // ], + // "type": "object" + // }, + // "ParsingStrategy": { + // "description": "The parsing strategy for the data source.", + // "enum": [ + // "BEDROCK_FOUNDATION_MODEL" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "ParsingStrategy" + // ], + // "type": "object" // } // }, // "type": "object" @@ -341,10 +1417,153 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "Configurations for when you choose fixed-size chunking. If you set the chunkingStrategy as NONE, exclude this field.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: HierarchicalChunkingConfiguration + "hierarchical_chunking_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: LevelConfigurations + "level_configurations": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaxTokens + "max_tokens": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The maximum number of tokens that a chunk can contain in this layer.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "Token settings for each layer.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: OverlapTokens + "overlap_tokens": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The number of tokens to repeat across chunks in the same layer.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Configurations for when you choose hierarchical chunking. If you set the chunkingStrategy as NONE, exclude this field.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SemanticChunkingConfiguration + "semantic_chunking_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BreakpointPercentileThreshold + "breakpoint_percentile_threshold": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The dissimilarity threshold for splitting chunks.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: BufferSize + "buffer_size": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The buffer size.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MaxTokens + "max_tokens": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The maximum number of tokens that a chunk can contain.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Configurations for when you choose semantic chunking. If you set the chunkingStrategy as NONE, exclude this field.", + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "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.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: CustomTransformationConfiguration + "custom_transformation_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IntermediateStorage + "intermediate_storage": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: S3Location + "s3_location": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: URI + "uri": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The location's URI", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "An Amazon S3 location.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "A location for storing content from data sources temporarily as it is processed by custom components in the ingestion pipeline.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Transformations + "transformations": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: StepToApply + "step_to_apply": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "When the service applies the transformation.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TransformationFunction + "transformation_function": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: TransformationLambdaConfiguration + "transformation_lambda_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: LambdaArn + "lambda_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The function's ARN identifier.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "A Lambda function that processes documents.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "A Lambda function that processes documents.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of Lambda functions that process documents.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Settings for customizing steps in the data source content ingestion pipeline.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ParsingConfiguration + "parsing_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BedrockFoundationModelConfiguration + "bedrock_foundation_model_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ModelArn + "model_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The model's ARN.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ParsingPrompt + "parsing_prompt": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ParsingPromptText + "parsing_prompt_text": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Instructions for interpreting the contents of a document.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Instructions for interpreting the contents of a document.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Settings for a foundation model used to parse documents for a data source.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ParsingStrategy + "parsing_strategy": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The parsing strategy for the data source.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Settings for parsing document contents", + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "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.", Computed: true, @@ -366,29 +1585,75 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { opts = opts.WithCloudFormationTypeName("AWS::Bedrock::DataSource").WithTerraformTypeName("awscc_bedrock_data_source") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "bucket_arn": "BucketArn", - "bucket_owner_account_id": "BucketOwnerAccountId", - "chunking_configuration": "ChunkingConfiguration", - "chunking_strategy": "ChunkingStrategy", - "created_at": "CreatedAt", - "data_deletion_policy": "DataDeletionPolicy", - "data_source_configuration": "DataSourceConfiguration", - "data_source_id": "DataSourceId", - "data_source_status": "DataSourceStatus", - "description": "Description", - "failure_reasons": "FailureReasons", - "fixed_size_chunking_configuration": "FixedSizeChunkingConfiguration", - "inclusion_prefixes": "InclusionPrefixes", - "kms_key_arn": "KmsKeyArn", - "knowledge_base_id": "KnowledgeBaseId", - "max_tokens": "MaxTokens", - "name": "Name", - "overlap_percentage": "OverlapPercentage", - "s3_configuration": "S3Configuration", - "server_side_encryption_configuration": "ServerSideEncryptionConfiguration", - "type": "Type", - "updated_at": "UpdatedAt", - "vector_ingestion_configuration": "VectorIngestionConfiguration", + "auth_type": "AuthType", + "bedrock_foundation_model_configuration": "BedrockFoundationModelConfiguration", + "breakpoint_percentile_threshold": "BreakpointPercentileThreshold", + "bucket_arn": "BucketArn", + "bucket_owner_account_id": "BucketOwnerAccountId", + "buffer_size": "BufferSize", + "chunking_configuration": "ChunkingConfiguration", + "chunking_strategy": "ChunkingStrategy", + "confluence_configuration": "ConfluenceConfiguration", + "crawler_configuration": "CrawlerConfiguration", + "crawler_limits": "CrawlerLimits", + "created_at": "CreatedAt", + "credentials_secret_arn": "CredentialsSecretArn", + "custom_transformation_configuration": "CustomTransformationConfiguration", + "data_deletion_policy": "DataDeletionPolicy", + "data_source_configuration": "DataSourceConfiguration", + "data_source_id": "DataSourceId", + "data_source_status": "DataSourceStatus", + "description": "Description", + "domain": "Domain", + "exclusion_filters": "ExclusionFilters", + "failure_reasons": "FailureReasons", + "filter_configuration": "FilterConfiguration", + "filters": "Filters", + "fixed_size_chunking_configuration": "FixedSizeChunkingConfiguration", + "hierarchical_chunking_configuration": "HierarchicalChunkingConfiguration", + "host_type": "HostType", + "host_url": "HostUrl", + "inclusion_filters": "InclusionFilters", + "inclusion_prefixes": "InclusionPrefixes", + "intermediate_storage": "IntermediateStorage", + "kms_key_arn": "KmsKeyArn", + "knowledge_base_id": "KnowledgeBaseId", + "lambda_arn": "LambdaArn", + "level_configurations": "LevelConfigurations", + "max_tokens": "MaxTokens", + "model_arn": "ModelArn", + "name": "Name", + "object_type": "ObjectType", + "overlap_percentage": "OverlapPercentage", + "overlap_tokens": "OverlapTokens", + "parsing_configuration": "ParsingConfiguration", + "parsing_prompt": "ParsingPrompt", + "parsing_prompt_text": "ParsingPromptText", + "parsing_strategy": "ParsingStrategy", + "pattern_object_filter": "PatternObjectFilter", + "rate_limit": "RateLimit", + "s3_configuration": "S3Configuration", + "s3_location": "S3Location", + "salesforce_configuration": "SalesforceConfiguration", + "scope": "Scope", + "seed_urls": "SeedUrls", + "semantic_chunking_configuration": "SemanticChunkingConfiguration", + "server_side_encryption_configuration": "ServerSideEncryptionConfiguration", + "share_point_configuration": "SharePointConfiguration", + "site_urls": "SiteUrls", + "source_configuration": "SourceConfiguration", + "step_to_apply": "StepToApply", + "tenant_id": "TenantId", + "transformation_function": "TransformationFunction", + "transformation_lambda_configuration": "TransformationLambdaConfiguration", + "transformations": "Transformations", + "type": "Type", + "updated_at": "UpdatedAt", + "uri": "URI", + "url": "Url", + "url_configuration": "UrlConfiguration", + "vector_ingestion_configuration": "VectorIngestionConfiguration", + "web_configuration": "WebConfiguration", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/cognito/identity_pool_singular_data_source_gen.go b/internal/aws/cognito/identity_pool_singular_data_source_gen.go index 2700abe79..85784b338 100644 --- a/internal/aws/cognito/identity_pool_singular_data_source_gen.go +++ b/internal/aws/cognito/identity_pool_singular_data_source_gen.go @@ -160,6 +160,56 @@ func identityPoolDataSource(ctx context.Context) (datasource.DataSource, error) "identity_pool_name": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: IdentityPoolTags + // CloudFormation resource type schema: + // + // { + // "description": "An array of key-value pairs to apply to this resource.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "maxLength": 256, + // "minLength": 0, + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + "identity_pool_tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "An array of key-value pairs to apply to this resource.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Name // CloudFormation resource type schema: // @@ -270,6 +320,8 @@ func identityPoolDataSource(ctx context.Context) (datasource.DataSource, error) "developer_provider_name": "DeveloperProviderName", "identity_pool_id": "Id", "identity_pool_name": "IdentityPoolName", + "identity_pool_tags": "IdentityPoolTags", + "key": "Key", "name": "Name", "open_id_connect_provider_ar_ns": "OpenIdConnectProviderARNs", "provider_name": "ProviderName", @@ -280,6 +332,7 @@ func identityPoolDataSource(ctx context.Context) (datasource.DataSource, error) "stream_name": "StreamName", "streaming_status": "StreamingStatus", "supported_login_providers": "SupportedLoginProviders", + "value": "Value", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/cognito/log_delivery_configuration_singular_data_source_gen.go b/internal/aws/cognito/log_delivery_configuration_singular_data_source_gen.go index 290cef77a..57b4c6707 100644 --- a/internal/aws/cognito/log_delivery_configuration_singular_data_source_gen.go +++ b/internal/aws/cognito/log_delivery_configuration_singular_data_source_gen.go @@ -50,8 +50,26 @@ func logDeliveryConfigurationDataSource(ctx context.Context) (datasource.DataSou // "EventSource": { // "type": "string" // }, + // "FirehoseConfiguration": { + // "additionalProperties": false, + // "properties": { + // "StreamArn": { + // "type": "string" + // } + // }, + // "type": "object" + // }, // "LogLevel": { // "type": "string" + // }, + // "S3Configuration": { + // "additionalProperties": false, + // "properties": { + // "BucketArn": { + // "type": "string" + // } + // }, + // "type": "object" // } // }, // "type": "object" @@ -75,10 +93,30 @@ func logDeliveryConfigurationDataSource(ctx context.Context) (datasource.DataSou "event_source": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: FirehoseConfiguration + "firehose_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: StreamArn + "stream_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: LogLevel "log_level": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: S3Configuration + "s3_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BucketArn + "bucket_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ Computed: true, @@ -109,12 +147,16 @@ func logDeliveryConfigurationDataSource(ctx context.Context) (datasource.DataSou opts = opts.WithCloudFormationTypeName("AWS::Cognito::LogDeliveryConfiguration").WithTerraformTypeName("awscc_cognito_log_delivery_configuration") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ + "bucket_arn": "BucketArn", "cloudwatch_logs_configuration": "CloudWatchLogsConfiguration", "event_source": "EventSource", + "firehose_configuration": "FirehoseConfiguration", "log_configurations": "LogConfigurations", "log_delivery_configuration_id": "Id", "log_group_arn": "LogGroupArn", "log_level": "LogLevel", + "s3_configuration": "S3Configuration", + "stream_arn": "StreamArn", "user_pool_id": "UserPoolId", }) diff --git a/internal/aws/ec2/launch_template_singular_data_source_gen.go b/internal/aws/ec2/launch_template_singular_data_source_gen.go index 8f6201ebb..0f25068e0 100644 --- a/internal/aws/ec2/launch_template_singular_data_source_gen.go +++ b/internal/aws/ec2/launch_template_singular_data_source_gen.go @@ -261,7 +261,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // "type": "object" // }, // "ImageId": { - // "description": "The ID of the AMI. Alternatively, you can specify a Systems Manager parameter, which will resolve to an AMI ID on launch.\n Valid formats:\n + ``ami-17characters00000`` \n + ``resolve:ssm:parameter-name`` \n + ``resolve:ssm:parameter-name:version-number`` \n + ``resolve:ssm:parameter-name:label`` \n \n For more information, see [Use a Systems Manager parameter to find an AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html#using-systems-manager-parameter-to-find-AMI) in the *Amazon Elastic Compute Cloud User Guide*.", + // "description": "The ID of the AMI. Alternatively, you can specify a Systems Manager parameter, which will resolve to an AMI ID on launch.\n Valid formats:\n + ``ami-0ac394d6a3example`` \n + ``resolve:ssm:parameter-name`` \n + ``resolve:ssm:parameter-name:version-number`` \n + ``resolve:ssm:parameter-name:label`` \n \n For more information, see [Use a Systems Manager parameter to find an AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html#using-systems-manager-parameter-to-find-AMI) in the *Amazon Elastic Compute Cloud User Guide*.", // "type": "string" // }, // "InstanceInitiatedShutdownBehavior": { @@ -1163,7 +1163,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error }, /*END ATTRIBUTE*/ // Property: ImageId "image_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ID of the AMI. Alternatively, you can specify a Systems Manager parameter, which will resolve to an AMI ID on launch.\n Valid formats:\n + ``ami-17characters00000`` \n + ``resolve:ssm:parameter-name`` \n + ``resolve:ssm:parameter-name:version-number`` \n + ``resolve:ssm:parameter-name:label`` \n \n For more information, see [Use a Systems Manager parameter to find an AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html#using-systems-manager-parameter-to-find-AMI) in the *Amazon Elastic Compute Cloud User Guide*.", + Description: "The ID of the AMI. Alternatively, you can specify a Systems Manager parameter, which will resolve to an AMI ID on launch.\n Valid formats:\n + ``ami-0ac394d6a3example`` \n + ``resolve:ssm:parameter-name`` \n + ``resolve:ssm:parameter-name:version-number`` \n + ``resolve:ssm:parameter-name:label`` \n \n For more information, see [Use a Systems Manager parameter to find an AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html#using-systems-manager-parameter-to-find-AMI) in the *Amazon Elastic Compute Cloud User Guide*.", Computed: true, }, /*END ATTRIBUTE*/ // Property: InstanceInitiatedShutdownBehavior diff --git a/internal/aws/ec2/subnet_cidr_block_singular_data_source_gen.go b/internal/aws/ec2/subnet_cidr_block_singular_data_source_gen.go index 817dfbb3d..5aa3a6abf 100644 --- a/internal/aws/ec2/subnet_cidr_block_singular_data_source_gen.go +++ b/internal/aws/ec2/subnet_cidr_block_singular_data_source_gen.go @@ -33,6 +33,28 @@ func subnetCidrBlockDataSource(ctx context.Context) (datasource.DataSource, erro Description: "Information about the IPv6 association.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: IpSource + // CloudFormation resource type schema: + // + // { + // "description": "The IP Source of an IPv6 Subnet CIDR Block.", + // "type": "string" + // } + "ip_source": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The IP Source of an IPv6 Subnet CIDR Block.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Ipv6AddressAttribute + // CloudFormation resource type schema: + // + // { + // "description": "The value denoting whether an IPv6 Subnet CIDR Block is public or private.", + // "type": "string" + // } + "ipv_6_address_attribute": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The value denoting whether an IPv6 Subnet CIDR Block is public or private.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Ipv6CidrBlock // CloudFormation resource type schema: // @@ -97,11 +119,13 @@ func subnetCidrBlockDataSource(ctx context.Context) (datasource.DataSource, erro opts = opts.WithCloudFormationTypeName("AWS::EC2::SubnetCidrBlock").WithTerraformTypeName("awscc_ec2_subnet_cidr_block") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "ipv_6_cidr_block": "Ipv6CidrBlock", - "ipv_6_ipam_pool_id": "Ipv6IpamPoolId", - "ipv_6_netmask_length": "Ipv6NetmaskLength", - "subnet_cidr_block_id": "Id", - "subnet_id": "SubnetId", + "ip_source": "IpSource", + "ipv_6_address_attribute": "Ipv6AddressAttribute", + "ipv_6_cidr_block": "Ipv6CidrBlock", + "ipv_6_ipam_pool_id": "Ipv6IpamPoolId", + "ipv_6_netmask_length": "Ipv6NetmaskLength", + "subnet_cidr_block_id": "Id", + "subnet_id": "SubnetId", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/ec2/vpc_singular_data_source_gen.go b/internal/aws/ec2/vpc_singular_data_source_gen.go index e60152119..d6588416c 100644 --- a/internal/aws/ec2/vpc_singular_data_source_gen.go +++ b/internal/aws/ec2/vpc_singular_data_source_gen.go @@ -101,11 +101,11 @@ func vPCDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The allowed tenancy of instances launched into the VPC.\n + ``default``: An instance launched into the VPC runs on shared hardware by default, unless you explicitly specify a different tenancy during instance launch.\n + ``dedicated``: An instance launched into the VPC runs on dedicated hardware by default, unless you explicitly specify a tenancy of ``host`` during instance launch. You cannot specify a tenancy of ``default`` during instance launch.\n \n Updating ``InstanceTenancy`` requires no replacement only if you are updating its value from ``dedicated`` to ``default``. Updating ``InstanceTenancy`` from ``default`` to ``dedicated`` requires replacement.", + // "description": "The allowed tenancy of instances launched into the VPC.\n + ``default``: An instance launched into the VPC runs on shared hardware by default, unless you explicitly specify a different tenancy during instance launch.\n + ``dedicated``: An instance launched into the VPC runs on dedicated hardware by default, unless you explicitly specify a tenancy of ``host`` during instance launch. You cannot specify a tenancy of ``default`` during instance launch.\n \n Updating ``InstanceTenancy`` requires no replacement only if you are updating its value from ``dedicated`` to ``default``. Updating ``InstanceTenancy`` from ``default`` to ``dedicated`` requires replacement.", // "type": "string" // } "instance_tenancy": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The allowed tenancy of instances launched into the VPC.\n + ``default``: An instance launched into the VPC runs on shared hardware by default, unless you explicitly specify a different tenancy during instance launch.\n + ``dedicated``: An instance launched into the VPC runs on dedicated hardware by default, unless you explicitly specify a tenancy of ``host`` during instance launch. You cannot specify a tenancy of ``default`` during instance launch.\n \n Updating ``InstanceTenancy`` requires no replacement only if you are updating its value from ``dedicated`` to ``default``. Updating ``InstanceTenancy`` from ``default`` to ``dedicated`` requires replacement.", + Description: "The allowed tenancy of instances launched into the VPC.\n + ``default``: An instance launched into the VPC runs on shared hardware by default, unless you explicitly specify a different tenancy during instance launch.\n + ``dedicated``: An instance launched into the VPC runs on dedicated hardware by default, unless you explicitly specify a tenancy of ``host`` during instance launch. You cannot specify a tenancy of ``default`` during instance launch.\n \n Updating ``InstanceTenancy`` requires no replacement only if you are updating its value from ``dedicated`` to ``default``. Updating ``InstanceTenancy`` from ``default`` to ``dedicated`` requires replacement.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Ipv4IpamPoolId diff --git a/internal/aws/lambda/event_source_mapping_singular_data_source_gen.go b/internal/aws/lambda/event_source_mapping_singular_data_source_gen.go index 06b37f403..5db124ce1 100644 --- a/internal/aws/lambda/event_source_mapping_singular_data_source_gen.go +++ b/internal/aws/lambda/event_source_mapping_singular_data_source_gen.go @@ -55,13 +55,13 @@ func eventSourceMappingDataSource(ctx context.Context) (datasource.DataSource, e // CloudFormation resource type schema: // // { - // "description": "The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB).\n + *Amazon Kinesis* – Default 100. Max 10,000.\n + *Amazon DynamoDB Streams* – Default 100. Max 10,000.\n + *Amazon Simple Queue Service* – Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10.\n + *Amazon Managed Streaming for Apache Kafka* – Default 100. Max 10,000.\n + *Self-managed Apache Kafka* – Default 100. Max 10,000.\n + *Amazon MQ (ActiveMQ and RabbitMQ)* – Default 100. Max 10,000.\n + *DocumentDB* – Default 100. Max 10,000.", + // "description": "The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB).\n + *Amazon Kinesis* ? Default 100. Max 10,000.\n + *Amazon DynamoDB Streams* ? Default 100. Max 10,000.\n + *Amazon Simple Queue Service* ? Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10.\n + *Amazon Managed Streaming for Apache Kafka* ? Default 100. Max 10,000.\n + *Self-managed Apache Kafka* ? Default 100. Max 10,000.\n + *Amazon MQ (ActiveMQ and RabbitMQ)* ? Default 100. Max 10,000.\n + *DocumentDB* ? Default 100. Max 10,000.", // "maximum": 10000, // "minimum": 1, // "type": "integer" // } "batch_size": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB).\n + *Amazon Kinesis* – Default 100. Max 10,000.\n + *Amazon DynamoDB Streams* – Default 100. Max 10,000.\n + *Amazon Simple Queue Service* – Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10.\n + *Amazon Managed Streaming for Apache Kafka* – Default 100. Max 10,000.\n + *Self-managed Apache Kafka* – Default 100. Max 10,000.\n + *Amazon MQ (ActiveMQ and RabbitMQ)* – Default 100. Max 10,000.\n + *DocumentDB* – Default 100. Max 10,000.", + Description: "The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB).\n + *Amazon Kinesis* ? Default 100. Max 10,000.\n + *Amazon DynamoDB Streams* ? Default 100. Max 10,000.\n + *Amazon Simple Queue Service* ? Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10.\n + *Amazon Managed Streaming for Apache Kafka* ? Default 100. Max 10,000.\n + *Self-managed Apache Kafka* ? Default 100. Max 10,000.\n + *Amazon MQ (ActiveMQ and RabbitMQ)* ? Default 100. Max 10,000.\n + *DocumentDB* ? Default 100. Max 10,000.", Computed: true, }, /*END ATTRIBUTE*/ // Property: BisectBatchOnFunctionError @@ -183,14 +183,14 @@ func eventSourceMappingDataSource(ctx context.Context) (datasource.DataSource, e // CloudFormation resource type schema: // // { - // "description": "The Amazon Resource Name (ARN) of the event source.\n + *Amazon Kinesis* – The ARN of the data stream or a stream consumer.\n + *Amazon DynamoDB Streams* – The ARN of the stream.\n + *Amazon Simple Queue Service* – The ARN of the queue.\n + *Amazon Managed Streaming for Apache Kafka* – The ARN of the cluster or the ARN of the VPC connection (for [cross-account event source mappings](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#msk-multi-vpc)).\n + *Amazon MQ* – The ARN of the broker.\n + *Amazon DocumentDB* – The ARN of the DocumentDB change stream.", + // "description": "The Amazon Resource Name (ARN) of the event source.\n + *Amazon Kinesis* ? The ARN of the data stream or a stream consumer.\n + *Amazon DynamoDB Streams* ? The ARN of the stream.\n + *Amazon Simple Queue Service* ? The ARN of the queue.\n + *Amazon Managed Streaming for Apache Kafka* ? The ARN of the cluster or the ARN of the VPC connection (for [cross-account event source mappings](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#msk-multi-vpc)).\n + *Amazon MQ* ? The ARN of the broker.\n + *Amazon DocumentDB* ? The ARN of the DocumentDB change stream.", // "maxLength": 1024, // "minLength": 12, // "pattern": "arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(-gov)?(-iso([a-z])?)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)", // "type": "string" // } "event_source_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Amazon Resource Name (ARN) of the event source.\n + *Amazon Kinesis* – The ARN of the data stream or a stream consumer.\n + *Amazon DynamoDB Streams* – The ARN of the stream.\n + *Amazon Simple Queue Service* – The ARN of the queue.\n + *Amazon Managed Streaming for Apache Kafka* – The ARN of the cluster or the ARN of the VPC connection (for [cross-account event source mappings](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#msk-multi-vpc)).\n + *Amazon MQ* – The ARN of the broker.\n + *Amazon DocumentDB* – The ARN of the DocumentDB change stream.", + Description: "The Amazon Resource Name (ARN) of the event source.\n + *Amazon Kinesis* ? The ARN of the data stream or a stream consumer.\n + *Amazon DynamoDB Streams* ? The ARN of the stream.\n + *Amazon Simple Queue Service* ? The ARN of the queue.\n + *Amazon Managed Streaming for Apache Kafka* ? The ARN of the cluster or the ARN of the VPC connection (for [cross-account event source mappings](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#msk-multi-vpc)).\n + *Amazon MQ* ? The ARN of the broker.\n + *Amazon DocumentDB* ? The ARN of the DocumentDB change stream.", Computed: true, }, /*END ATTRIBUTE*/ // Property: FilterCriteria @@ -248,14 +248,14 @@ func eventSourceMappingDataSource(ctx context.Context) (datasource.DataSource, e // CloudFormation resource type schema: // // { - // "description": "The name or ARN of the Lambda function.\n **Name formats**\n + *Function name* – ``MyFunction``.\n + *Function ARN* – ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction``.\n + *Version or Alias ARN* – ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD``.\n + *Partial ARN* – ``123456789012:function:MyFunction``.\n \n The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length.", + // "description": "The name or ARN of the Lambda function.\n **Name formats**\n + *Function name* ? ``MyFunction``.\n + *Function ARN* ? ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction``.\n + *Version or Alias ARN* ? ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD``.\n + *Partial ARN* ? ``123456789012:function:MyFunction``.\n \n The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length.", // "maxLength": 140, // "minLength": 1, // "pattern": "(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?(-iso([a-z])?)?-[a-z]+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?", // "type": "string" // } "function_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name or ARN of the Lambda function.\n **Name formats**\n + *Function name* – ``MyFunction``.\n + *Function ARN* – ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction``.\n + *Version or Alias ARN* – ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD``.\n + *Partial ARN* – ``123456789012:function:MyFunction``.\n \n The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length.", + Description: "The name or ARN of the Lambda function.\n **Name formats**\n + *Function name* ? ``MyFunction``.\n + *Function ARN* ? ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction``.\n + *Version or Alias ARN* ? ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD``.\n + *Partial ARN* ? ``123456789012:function:MyFunction``.\n \n The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length.", Computed: true, }, /*END ATTRIBUTE*/ // Property: FunctionResponseTypes @@ -293,6 +293,20 @@ func eventSourceMappingDataSource(ctx context.Context) (datasource.DataSource, e Description: "", Computed: true, }, /*END ATTRIBUTE*/ + // Property: KmsKeyArn + // CloudFormation resource type schema: + // + // { + // "description": "", + // "maxLength": 2048, + // "minLength": 12, + // "pattern": "(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()", + // "type": "string" + // } + "kms_key_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: MaximumBatchingWindowInSeconds // CloudFormation resource type schema: // @@ -481,7 +495,7 @@ func eventSourceMappingDataSource(ctx context.Context) (datasource.DataSource, e // "description": "An array of the authentication protocol, VPC components, or virtual host to secure and define your event source.", // "properties": { // "Type": { - // "description": "The type of authentication protocol, VPC components, or virtual host for your event source. For example: ``\"Type\":\"SASL_SCRAM_512_AUTH\"``.\n + ``BASIC_AUTH`` – (Amazon MQ) The ASMlong secret that stores your broker credentials.\n + ``BASIC_AUTH`` – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL/PLAIN authentication of your Apache Kafka brokers.\n + ``VPC_SUBNET`` – (Self-managed Apache Kafka) The subnets associated with your VPC. Lambda connects to these subnets to fetch data from your self-managed Apache Kafka cluster.\n + ``VPC_SECURITY_GROUP`` – (Self-managed Apache Kafka) The VPC security group used to manage access to your self-managed Apache Kafka brokers.\n + ``SASL_SCRAM_256_AUTH`` – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-256 authentication of your self-managed Apache Kafka brokers.\n + ``SASL_SCRAM_512_AUTH`` – (Amazon MSK, Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-512 authentication of your self-managed Apache Kafka brokers.\n + ``VIRTUAL_HOST`` –- (RabbitMQ) The name of the virtual host in your RabbitMQ broker. Lambda uses this RabbitMQ host as the event source. This property cannot be specified in an UpdateEventSourceMapping API call.\n + ``CLIENT_CERTIFICATE_TLS_AUTH`` – (Amazon MSK, self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the certificate chain (X.509 PEM), private key (PKCS#8 PEM), and private key password (optional) used for mutual TLS authentication of your MSK/Apache Kafka brokers.\n + ``SERVER_ROOT_CA_CERTIFICATE`` – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the root CA certificate (X.509 PEM) used for TLS encryption of your Apache Kafka brokers.", + // "description": "The type of authentication protocol, VPC components, or virtual host for your event source. For example: ``\"Type\":\"SASL_SCRAM_512_AUTH\"``.\n + ``BASIC_AUTH`` ? (Amazon MQ) The ASMlong secret that stores your broker credentials.\n + ``BASIC_AUTH`` ? (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL/PLAIN authentication of your Apache Kafka brokers.\n + ``VPC_SUBNET`` ? (Self-managed Apache Kafka) The subnets associated with your VPC. Lambda connects to these subnets to fetch data from your self-managed Apache Kafka cluster.\n + ``VPC_SECURITY_GROUP`` ? (Self-managed Apache Kafka) The VPC security group used to manage access to your self-managed Apache Kafka brokers.\n + ``SASL_SCRAM_256_AUTH`` ? (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-256 authentication of your self-managed Apache Kafka brokers.\n + ``SASL_SCRAM_512_AUTH`` ? (Amazon MSK, Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-512 authentication of your self-managed Apache Kafka brokers.\n + ``VIRTUAL_HOST`` ?- (RabbitMQ) The name of the virtual host in your RabbitMQ broker. Lambda uses this RabbitMQ host as the event source. This property cannot be specified in an UpdateEventSourceMapping API call.\n + ``CLIENT_CERTIFICATE_TLS_AUTH`` ? (Amazon MSK, self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the certificate chain (X.509 PEM), private key (PKCS#8 PEM), and private key password (optional) used for mutual TLS authentication of your MSK/Apache Kafka brokers.\n + ``SERVER_ROOT_CA_CERTIFICATE`` ? (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the root CA certificate (X.509 PEM) used for TLS encryption of your Apache Kafka brokers.", // "enum": [ // "BASIC_AUTH", // "VPC_SUBNET", @@ -514,7 +528,7 @@ func eventSourceMappingDataSource(ctx context.Context) (datasource.DataSource, e Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Type "type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of authentication protocol, VPC components, or virtual host for your event source. For example: ``\"Type\":\"SASL_SCRAM_512_AUTH\"``.\n + ``BASIC_AUTH`` – (Amazon MQ) The ASMlong secret that stores your broker credentials.\n + ``BASIC_AUTH`` – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL/PLAIN authentication of your Apache Kafka brokers.\n + ``VPC_SUBNET`` – (Self-managed Apache Kafka) The subnets associated with your VPC. Lambda connects to these subnets to fetch data from your self-managed Apache Kafka cluster.\n + ``VPC_SECURITY_GROUP`` – (Self-managed Apache Kafka) The VPC security group used to manage access to your self-managed Apache Kafka brokers.\n + ``SASL_SCRAM_256_AUTH`` – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-256 authentication of your self-managed Apache Kafka brokers.\n + ``SASL_SCRAM_512_AUTH`` – (Amazon MSK, Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-512 authentication of your self-managed Apache Kafka brokers.\n + ``VIRTUAL_HOST`` –- (RabbitMQ) The name of the virtual host in your RabbitMQ broker. Lambda uses this RabbitMQ host as the event source. This property cannot be specified in an UpdateEventSourceMapping API call.\n + ``CLIENT_CERTIFICATE_TLS_AUTH`` – (Amazon MSK, self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the certificate chain (X.509 PEM), private key (PKCS#8 PEM), and private key password (optional) used for mutual TLS authentication of your MSK/Apache Kafka brokers.\n + ``SERVER_ROOT_CA_CERTIFICATE`` – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the root CA certificate (X.509 PEM) used for TLS encryption of your Apache Kafka brokers.", + Description: "The type of authentication protocol, VPC components, or virtual host for your event source. For example: ``\"Type\":\"SASL_SCRAM_512_AUTH\"``.\n + ``BASIC_AUTH`` ? (Amazon MQ) The ASMlong secret that stores your broker credentials.\n + ``BASIC_AUTH`` ? (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL/PLAIN authentication of your Apache Kafka brokers.\n + ``VPC_SUBNET`` ? (Self-managed Apache Kafka) The subnets associated with your VPC. Lambda connects to these subnets to fetch data from your self-managed Apache Kafka cluster.\n + ``VPC_SECURITY_GROUP`` ? (Self-managed Apache Kafka) The VPC security group used to manage access to your self-managed Apache Kafka brokers.\n + ``SASL_SCRAM_256_AUTH`` ? (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-256 authentication of your self-managed Apache Kafka brokers.\n + ``SASL_SCRAM_512_AUTH`` ? (Amazon MSK, Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-512 authentication of your self-managed Apache Kafka brokers.\n + ``VIRTUAL_HOST`` ?- (RabbitMQ) The name of the virtual host in your RabbitMQ broker. Lambda uses this RabbitMQ host as the event source. This property cannot be specified in an UpdateEventSourceMapping API call.\n + ``CLIENT_CERTIFICATE_TLS_AUTH`` ? (Amazon MSK, self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the certificate chain (X.509 PEM), private key (PKCS#8 PEM), and private key password (optional) used for mutual TLS authentication of your MSK/Apache Kafka brokers.\n + ``SERVER_ROOT_CA_CERTIFICATE`` ? (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the root CA certificate (X.509 PEM) used for TLS encryption of your Apache Kafka brokers.", Computed: true, }, /*END ATTRIBUTE*/ // Property: URI @@ -622,6 +636,7 @@ func eventSourceMappingDataSource(ctx context.Context) (datasource.DataSource, e "function_name": "FunctionName", "function_response_types": "FunctionResponseTypes", "kafka_bootstrap_servers": "KafkaBootstrapServers", + "kms_key_arn": "KmsKeyArn", "maximum_batching_window_in_seconds": "MaximumBatchingWindowInSeconds", "maximum_concurrency": "MaximumConcurrency", "maximum_record_age_in_seconds": "MaximumRecordAgeInSeconds", diff --git a/internal/aws/s3/bucket_singular_data_source_gen.go b/internal/aws/s3/bucket_singular_data_source_gen.go index c82ba969d..8a77e245f 100644 --- a/internal/aws/s3/bucket_singular_data_source_gen.go +++ b/internal/aws/s3/bucket_singular_data_source_gen.go @@ -290,7 +290,7 @@ func bucketDataSource(ctx context.Context) (datasource.DataSource, error) { // "insertionOrder": true, // "items": { // "additionalProperties": false, - // "description": "Specifies the default server-side encryption configuration.", + // "description": "Specifies the default server-side encryption configuration.\n If you're specifying a customer managed KMS key, we recommend using a fully qualified KMS key ARN. If you use a KMS key alias instead, then KMS resolves the key within the requester’s account. This behavior can result in data that's encrypted with a KMS key that belongs to the requester, and not the bucket owner.", // "properties": { // "BucketKeyEnabled": { // "description": "Specifies whether Amazon S3 should use an S3 Bucket Key with server-side encryption using KMS (SSE-KMS) for new objects in the bucket. Existing objects are not affected. Setting the ``BucketKeyEnabled`` element to ``true`` causes Amazon S3 to use an S3 Bucket Key. By default, S3 Bucket Key is not enabled.\n For more information, see [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) in the *Amazon S3 User Guide*.", @@ -301,11 +301,6 @@ func bucketDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "Specifies the default server-side encryption to apply to new objects in the bucket. If a PUT Object request doesn't specify any server-side encryption, this default encryption will be applied.", // "properties": { // "KMSMasterKeyID": { - // "anyOf": [ - // {}, - // {}, - // {} - // ], // "description": "AWS Key Management Service (KMS) customer AWS KMS key ID to use for the default encryption. This parameter is allowed if and only if ``SSEAlgorithm`` is set to ``aws:kms`` or ``aws:kms:dsse``.\n You can specify the key ID, key alias, or the Amazon Resource Name (ARN) of the KMS key.\n + Key ID: ``1234abcd-12ab-34cd-56ef-1234567890ab`` \n + Key ARN: ``arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`` \n + Key Alias: ``alias/alias-name`` \n \n If you use a key ID, you can run into a LogDestination undeliverable error when creating a VPC flow log. \n If you are using encryption with cross-account or AWS service operations you must use a fully qualified KMS key ARN. For more information, see [Using encryption for cross-account operations](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy).\n Amazon S3 only supports symmetric encryption KMS keys. For more information, see [Asymmetric keys in KMS](https://docs.aws.amazon.com//kms/latest/developerguide/symmetric-asymmetric.html) in the *Key Management Service Developer Guide*.", // "type": "string" // }, @@ -1367,7 +1362,7 @@ func bucketDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "Amazon S3 keys for log objects are partitioned in the following format:\n ``[DestinationPrefix][SourceAccountId]/[SourceRegion]/[SourceBucket]/[YYYY]/[MM]/[DD]/[YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]`` \n PartitionedPrefix defaults to EventTime delivery when server access logs are delivered.", // "properties": { // "PartitionDateSource": { - // "description": "Specifies the partition date source for the partitioned prefix. PartitionDateSource can be EventTime or DeliveryTime.", + // "description": "Specifies the partition date source for the partitioned prefix. ``PartitionDateSource`` can be ``EventTime`` or ``DeliveryTime``.\n For ``DeliveryTime``, the time in the log file names corresponds to the delivery time for the log files. \n For ``EventTime``, The logs delivered are for a specific day only. The year, month, and day correspond to the day on which the event occurred, and the hour, minutes and seconds are set to 00 in the key.", // "enum": [ // "EventTime", // "DeliveryTime" @@ -1408,7 +1403,7 @@ func bucketDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: PartitionDateSource "partition_date_source": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies the partition date source for the partitioned prefix. PartitionDateSource can be EventTime or DeliveryTime.", + Description: "Specifies the partition date source for the partitioned prefix. ``PartitionDateSource`` can be ``EventTime`` or ``DeliveryTime``.\n For ``DeliveryTime``, the time in the log file names corresponds to the delivery time for the log files. \n For ``EventTime``, The logs delivered are for a specific day only. The year, month, and day correspond to the day on which the event occurred, and the hour, minutes and seconds are set to 00 in the key.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -2751,7 +2746,7 @@ func bucketDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "additionalProperties": false, - // "description": "Enables multiple versions of all objects in this bucket. You might enable versioning to prevent objects from being deleted or overwritten by mistake or to archive objects so that you can retrieve previous versions of them.", + // "description": "Enables multiple versions of all objects in this bucket. You might enable versioning to prevent objects from being deleted or overwritten by mistake or to archive objects so that you can retrieve previous versions of them.\n When you enable versioning on a bucket for the first time, it might take a short amount of time for the change to be fully propagated. We recommend that you wait for 15 minutes after enabling versioning before issuing write operations (``PUT`` or ``DELETE``) on objects in the bucket.", // "properties": { // "Status": { // "default": "Suspended", @@ -2776,7 +2771,7 @@ func bucketDataSource(ctx context.Context) (datasource.DataSource, error) { Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "Enables multiple versions of all objects in this bucket. You might enable versioning to prevent objects from being deleted or overwritten by mistake or to archive objects so that you can retrieve previous versions of them.", + Description: "Enables multiple versions of all objects in this bucket. You might enable versioning to prevent objects from being deleted or overwritten by mistake or to archive objects so that you can retrieve previous versions of them.\n When you enable versioning on a bucket for the first time, it might take a short amount of time for the change to be fully propagated. We recommend that you wait for 15 minutes after enabling versioning before issuing write operations (``PUT`` or ``DELETE``) on objects in the bucket.", Computed: true, }, /*END ATTRIBUTE*/ // Property: WebsiteConfiguration diff --git a/internal/aws/signer/signing_profile_singular_data_source_gen.go b/internal/aws/signer/signing_profile_singular_data_source_gen.go index f9136a272..3a81a294e 100644 --- a/internal/aws/signer/signing_profile_singular_data_source_gen.go +++ b/internal/aws/signer/signing_profile_singular_data_source_gen.go @@ -56,7 +56,7 @@ func signingProfileDataSource(ctx context.Context) (datasource.DataSource, error // "description": "A name for the signing profile. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the signing profile name. ", // "maxLength": 64, // "minLength": 2, - // "pattern": "^[0-9a-zA-Z_]$", + // "pattern": "^[0-9a-zA-Z_]{2,64}$", // "type": "string" // } "profile_name": schema.StringAttribute{ /*START ATTRIBUTE*/ diff --git a/internal/aws/systemsmanagersap/application_singular_data_source_gen.go b/internal/aws/systemsmanagersap/application_singular_data_source_gen.go index 5aa131718..80d2ef3e1 100644 --- a/internal/aws/systemsmanagersap/application_singular_data_source_gen.go +++ b/internal/aws/systemsmanagersap/application_singular_data_source_gen.go @@ -27,7 +27,7 @@ func applicationDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "pattern": "[\\w\\d]{1,50}", + // "pattern": "[\\w\\d\\.-]{1,60}", // "type": "string" // } "application_id": schema.StringAttribute{ /*START ATTRIBUTE*/ @@ -38,7 +38,8 @@ func applicationDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "enum": [ - // "HANA" + // "HANA", + // "SAP_ABAP" // ], // "type": "string" // } @@ -49,12 +50,12 @@ func applicationDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The ARN of the Helix application", + // "description": "The ARN of the SSM-SAP application", // "pattern": "^arn:(.+:){2,4}.+$|^arn:(.+:){1,3}.+\\/.+$", // "type": "string" // } "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ARN of the Helix application", + Description: "The ARN of the SSM-SAP application", Computed: true, }, /*END ATTRIBUTE*/ // Property: Credentials @@ -104,6 +105,18 @@ func applicationDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END NESTED OBJECT*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: DatabaseArn + // CloudFormation resource type schema: + // + // { + // "description": "The ARN of the SAP HANA database", + // "pattern": "^arn:(.+:){2,4}.+$|^arn:(.+:){1,3}.+\\/.+$", + // "type": "string" + // } + "database_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of the SAP HANA database", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Instances // CloudFormation resource type schema: // @@ -211,6 +224,7 @@ func applicationDataSource(ctx context.Context) (datasource.DataSource, error) { "arn": "Arn", "credential_type": "CredentialType", "credentials": "Credentials", + "database_arn": "DatabaseArn", "database_name": "DatabaseName", "instances": "Instances", "key": "Key", diff --git a/internal/aws/vpclattice/auth_policy_singular_data_source_gen.go b/internal/aws/vpclattice/auth_policy_singular_data_source_gen.go index be37c3d0b..67977c456 100644 --- a/internal/aws/vpclattice/auth_policy_singular_data_source_gen.go +++ b/internal/aws/vpclattice/auth_policy_singular_data_source_gen.go @@ -38,7 +38,7 @@ func authPolicyDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "maxLength": 200, - // "minLength": 21, + // "minLength": 17, // "pattern": "^((((sn)|(svc))-[0-9a-z]{17})|(arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:((servicenetwork/sn)|(service/svc))-[0-9a-z]{17}))$", // "type": "string" // } From b7c9815874b5c5b444846ba25d0429108ff39f44 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 15 Aug 2024 12:26:57 -0400 Subject: [PATCH 88/89] Run 'make docs'. --- docs/data-sources/bedrock_data_source.md | 330 +++++++++++++++- docs/data-sources/cognito_identity_pool.md | 10 + .../cognito_log_delivery_configuration.md | 18 + docs/data-sources/ec2_launch_template.md | 2 +- docs/data-sources/ec2_subnet_cidr_block.md | 2 + docs/data-sources/ec2_vpc.md | 4 +- .../lambda_event_source_mapping.md | 53 +-- docs/data-sources/s3_bucket.md | 7 +- .../systemsmanagersap_application.md | 3 +- docs/resources/bedrock_data_source.md | 372 +++++++++++++++++- docs/resources/cognito_identity_pool.md | 10 + .../cognito_log_delivery_configuration.md | 18 + docs/resources/ec2_launch_template.md | 2 +- docs/resources/ec2_subnet_cidr_block.md | 2 + docs/resources/ec2_vpc.md | 8 +- docs/resources/lambda_event_source_mapping | 53 +-- docs/resources/lambda_event_source_mapping.md | 53 +-- docs/resources/s3_bucket.md | 7 +- .../systemsmanagersap_application.md | 3 +- 19 files changed, 863 insertions(+), 94 deletions(-) diff --git a/docs/data-sources/bedrock_data_source.md b/docs/data-sources/bedrock_data_source.md index 40b8a7c99..8d78611d9 100644 --- a/docs/data-sources/bedrock_data_source.md +++ b/docs/data-sources/bedrock_data_source.md @@ -39,8 +39,67 @@ Data Source schema for AWS::Bedrock::DataSource Read-Only: -- `s3_configuration` (Attributes) Contains information about the S3 configuration of the data source. (see [below for nested schema](#nestedatt--data_source_configuration--s3_configuration)) +- `confluence_configuration` (Attributes) The configuration information to connect to Confluence as your data source. (see [below for nested schema](#nestedatt--data_source_configuration--confluence_configuration)) +- `s3_configuration` (Attributes) The configuration information to connect to Amazon S3 as your data source. (see [below for nested schema](#nestedatt--data_source_configuration--s3_configuration)) +- `salesforce_configuration` (Attributes) The configuration information to connect to Salesforce as your data source. (see [below for nested schema](#nestedatt--data_source_configuration--salesforce_configuration)) +- `share_point_configuration` (Attributes) The configuration information to connect to SharePoint as your data source. (see [below for nested schema](#nestedatt--data_source_configuration--share_point_configuration)) - `type` (String) The type of the data source location. +- `web_configuration` (Attributes) Configures a web data source location. (see [below for nested schema](#nestedatt--data_source_configuration--web_configuration)) + + +### Nested Schema for `data_source_configuration.confluence_configuration` + +Read-Only: + +- `crawler_configuration` (Attributes) The configuration of the Confluence content. For example, configuring specific types of Confluence content. (see [below for nested schema](#nestedatt--data_source_configuration--confluence_configuration--crawler_configuration)) +- `source_configuration` (Attributes) The endpoint information to connect to your Confluence data source. (see [below for nested schema](#nestedatt--data_source_configuration--confluence_configuration--source_configuration)) + + +### Nested Schema for `data_source_configuration.confluence_configuration.crawler_configuration` + +Read-Only: + +- `filter_configuration` (Attributes) The type of filtering that you want to apply to certain objects or content of the data source. For example, the PATTERN type is regular expression patterns you can apply to filter your content. (see [below for nested schema](#nestedatt--data_source_configuration--confluence_configuration--crawler_configuration--filter_configuration)) + + +### Nested Schema for `data_source_configuration.confluence_configuration.crawler_configuration.filter_configuration` + +Read-Only: + +- `pattern_object_filter` (Attributes) The configuration of specific filters applied to your data source content. You can filter out or include certain content. (see [below for nested schema](#nestedatt--data_source_configuration--confluence_configuration--crawler_configuration--filter_configuration--pattern_object_filter)) +- `type` (String) The crawl filter type. + + +### Nested Schema for `data_source_configuration.confluence_configuration.crawler_configuration.filter_configuration.pattern_object_filter` + +Read-Only: + +- `filters` (Attributes List) Contains information (see [below for nested schema](#nestedatt--data_source_configuration--confluence_configuration--crawler_configuration--filter_configuration--pattern_object_filter--filters)) + + +### Nested Schema for `data_source_configuration.confluence_configuration.crawler_configuration.filter_configuration.pattern_object_filter.filters` + +Read-Only: + +- `exclusion_filters` (List of String) A set of regular expression filter patterns for a type of object. +- `inclusion_filters` (List of String) A set of regular expression filter patterns for a type of object. +- `object_type` (String) The supported object type or content type of the data source. + + + + + + +### Nested Schema for `data_source_configuration.confluence_configuration.source_configuration` + +Read-Only: + +- `auth_type` (String) The supported authentication type to authenticate and connect to your Confluence instance. +- `credentials_secret_arn` (String) The Amazon Resource Name of an AWS Secrets Manager secret that stores your authentication credentials for your Confluence instance URL. For more information on the key-value pairs that must be included in your secret, depending on your authentication type, see Confluence connection configuration. +- `host_type` (String) The supported host type, whether online/cloud or server/on-premises. +- `host_url` (String) The Confluence host URL or instance URL. + + ### Nested Schema for `data_source_configuration.s3_configuration` @@ -52,6 +111,169 @@ Read-Only: - `inclusion_prefixes` (List of String) A list of S3 prefixes that define the object containing the data sources. + +### Nested Schema for `data_source_configuration.salesforce_configuration` + +Read-Only: + +- `crawler_configuration` (Attributes) The configuration of filtering the Salesforce content. For example, configuring regular expression patterns to include or exclude certain content. (see [below for nested schema](#nestedatt--data_source_configuration--salesforce_configuration--crawler_configuration)) +- `source_configuration` (Attributes) The endpoint information to connect to your Salesforce data source. (see [below for nested schema](#nestedatt--data_source_configuration--salesforce_configuration--source_configuration)) + + +### Nested Schema for `data_source_configuration.salesforce_configuration.crawler_configuration` + +Read-Only: + +- `filter_configuration` (Attributes) The type of filtering that you want to apply to certain objects or content of the data source. For example, the PATTERN type is regular expression patterns you can apply to filter your content. (see [below for nested schema](#nestedatt--data_source_configuration--salesforce_configuration--crawler_configuration--filter_configuration)) + + +### Nested Schema for `data_source_configuration.salesforce_configuration.crawler_configuration.filter_configuration` + +Read-Only: + +- `pattern_object_filter` (Attributes) The configuration of specific filters applied to your data source content. You can filter out or include certain content. (see [below for nested schema](#nestedatt--data_source_configuration--salesforce_configuration--crawler_configuration--filter_configuration--pattern_object_filter)) +- `type` (String) The crawl filter type. + + +### Nested Schema for `data_source_configuration.salesforce_configuration.crawler_configuration.filter_configuration.pattern_object_filter` + +Read-Only: + +- `filters` (Attributes List) Contains information (see [below for nested schema](#nestedatt--data_source_configuration--salesforce_configuration--crawler_configuration--filter_configuration--pattern_object_filter--filters)) + + +### Nested Schema for `data_source_configuration.salesforce_configuration.crawler_configuration.filter_configuration.pattern_object_filter.filters` + +Read-Only: + +- `exclusion_filters` (List of String) A set of regular expression filter patterns for a type of object. +- `inclusion_filters` (List of String) A set of regular expression filter patterns for a type of object. +- `object_type` (String) The supported object type or content type of the data source. + + + + + + +### Nested Schema for `data_source_configuration.salesforce_configuration.source_configuration` + +Read-Only: + +- `auth_type` (String) The supported authentication type to authenticate and connect to your Salesforce instance. +- `credentials_secret_arn` (String) The Amazon Resource Name of an AWS Secrets Manager secret that stores your authentication credentials for your Salesforce instance URL. For more information on the key-value pairs that must be included in your secret, depending on your authentication type, see Salesforce connection configuration. +- `host_url` (String) The Salesforce host URL or instance URL. + + + + +### Nested Schema for `data_source_configuration.share_point_configuration` + +Read-Only: + +- `crawler_configuration` (Attributes) The configuration of the SharePoint content. For example, configuring specific types of SharePoint content. (see [below for nested schema](#nestedatt--data_source_configuration--share_point_configuration--crawler_configuration)) +- `source_configuration` (Attributes) The endpoint information to connect to your SharePoint data source. (see [below for nested schema](#nestedatt--data_source_configuration--share_point_configuration--source_configuration)) + + +### Nested Schema for `data_source_configuration.share_point_configuration.crawler_configuration` + +Read-Only: + +- `filter_configuration` (Attributes) The type of filtering that you want to apply to certain objects or content of the data source. For example, the PATTERN type is regular expression patterns you can apply to filter your content. (see [below for nested schema](#nestedatt--data_source_configuration--share_point_configuration--crawler_configuration--filter_configuration)) + + +### Nested Schema for `data_source_configuration.share_point_configuration.crawler_configuration.filter_configuration` + +Read-Only: + +- `pattern_object_filter` (Attributes) The configuration of specific filters applied to your data source content. You can filter out or include certain content. (see [below for nested schema](#nestedatt--data_source_configuration--share_point_configuration--crawler_configuration--filter_configuration--pattern_object_filter)) +- `type` (String) The crawl filter type. + + +### Nested Schema for `data_source_configuration.share_point_configuration.crawler_configuration.filter_configuration.pattern_object_filter` + +Read-Only: + +- `filters` (Attributes List) Contains information (see [below for nested schema](#nestedatt--data_source_configuration--share_point_configuration--crawler_configuration--filter_configuration--pattern_object_filter--filters)) + + +### Nested Schema for `data_source_configuration.share_point_configuration.crawler_configuration.filter_configuration.pattern_object_filter.filters` + +Read-Only: + +- `exclusion_filters` (List of String) A set of regular expression filter patterns for a type of object. +- `inclusion_filters` (List of String) A set of regular expression filter patterns for a type of object. +- `object_type` (String) The supported object type or content type of the data source. + + + + + + +### Nested Schema for `data_source_configuration.share_point_configuration.source_configuration` + +Read-Only: + +- `auth_type` (String) The supported authentication type to authenticate and connect to your SharePoint site/sites. +- `credentials_secret_arn` (String) The Amazon Resource Name of an AWS Secrets Manager secret that stores your authentication credentials for your SharePoint site/sites. For more information on the key-value pairs that must be included in your secret, depending on your authentication type, see SharePoint connection configuration. +- `domain` (String) The domain of your SharePoint instance or site URL/URLs. +- `host_type` (String) The supported host type, whether online/cloud or server/on-premises. +- `site_urls` (List of String) A list of one or more SharePoint site URLs. +- `tenant_id` (String) The identifier of your Microsoft 365 tenant. + + + + +### Nested Schema for `data_source_configuration.web_configuration` + +Read-Only: + +- `crawler_configuration` (Attributes) Configuration for the web crawler. (see [below for nested schema](#nestedatt--data_source_configuration--web_configuration--crawler_configuration)) +- `source_configuration` (Attributes) A web source configuration. (see [below for nested schema](#nestedatt--data_source_configuration--web_configuration--source_configuration)) + + +### Nested Schema for `data_source_configuration.web_configuration.crawler_configuration` + +Read-Only: + +- `crawler_limits` (Attributes) Limit settings for the web crawler. (see [below for nested schema](#nestedatt--data_source_configuration--web_configuration--crawler_configuration--crawler_limits)) +- `exclusion_filters` (List of String) A set of regular expression filter patterns for a type of object. +- `inclusion_filters` (List of String) A set of regular expression filter patterns for a type of object. +- `scope` (String) The scope that a web crawl job will be restricted to. + + +### Nested Schema for `data_source_configuration.web_configuration.crawler_configuration.crawler_limits` + +Read-Only: + +- `rate_limit` (Number) Rate of web URLs retrieved per minute. + + + + +### Nested Schema for `data_source_configuration.web_configuration.source_configuration` + +Read-Only: + +- `url_configuration` (Attributes) A url configuration. (see [below for nested schema](#nestedatt--data_source_configuration--web_configuration--source_configuration--url_configuration)) + + +### Nested Schema for `data_source_configuration.web_configuration.source_configuration.url_configuration` + +Read-Only: + +- `seed_urls` (Attributes List) A list of web urls. (see [below for nested schema](#nestedatt--data_source_configuration--web_configuration--source_configuration--url_configuration--seed_urls)) + + +### Nested Schema for `data_source_configuration.web_configuration.source_configuration.url_configuration.seed_urls` + +Read-Only: + +- `url` (String) A web url. + + + + + ### Nested Schema for `server_side_encryption_configuration` @@ -67,6 +289,8 @@ Read-Only: Read-Only: - `chunking_configuration` (Attributes) 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. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--chunking_configuration)) +- `custom_transformation_configuration` (Attributes) Settings for customizing steps in the data source content ingestion pipeline. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--custom_transformation_configuration)) +- `parsing_configuration` (Attributes) Settings for parsing document contents (see [below for nested schema](#nestedatt--vector_ingestion_configuration--parsing_configuration)) ### Nested Schema for `vector_ingestion_configuration.chunking_configuration` @@ -75,6 +299,8 @@ Read-Only: - `chunking_strategy` (String) 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_chunking_configuration` (Attributes) Configurations for when you choose fixed-size chunking. If you set the chunkingStrategy as NONE, exclude this field. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--chunking_configuration--fixed_size_chunking_configuration)) +- `hierarchical_chunking_configuration` (Attributes) Configurations for when you choose hierarchical chunking. If you set the chunkingStrategy as NONE, exclude this field. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--chunking_configuration--hierarchical_chunking_configuration)) +- `semantic_chunking_configuration` (Attributes) Configurations for when you choose semantic chunking. If you set the chunkingStrategy as NONE, exclude this field. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--chunking_configuration--semantic_chunking_configuration)) ### Nested Schema for `vector_ingestion_configuration.chunking_configuration.fixed_size_chunking_configuration` @@ -83,3 +309,105 @@ Read-Only: - `max_tokens` (Number) The maximum number of tokens to include in a chunk. - `overlap_percentage` (Number) The percentage of overlap between adjacent chunks of a data source. + + + +### Nested Schema for `vector_ingestion_configuration.chunking_configuration.hierarchical_chunking_configuration` + +Read-Only: + +- `level_configurations` (Attributes List) Token settings for each layer. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--chunking_configuration--hierarchical_chunking_configuration--level_configurations)) +- `overlap_tokens` (Number) The number of tokens to repeat across chunks in the same layer. + + +### Nested Schema for `vector_ingestion_configuration.chunking_configuration.hierarchical_chunking_configuration.level_configurations` + +Read-Only: + +- `max_tokens` (Number) The maximum number of tokens that a chunk can contain in this layer. + + + + +### Nested Schema for `vector_ingestion_configuration.chunking_configuration.semantic_chunking_configuration` + +Read-Only: + +- `breakpoint_percentile_threshold` (Number) The dissimilarity threshold for splitting chunks. +- `buffer_size` (Number) The buffer size. +- `max_tokens` (Number) The maximum number of tokens that a chunk can contain. + + + + +### Nested Schema for `vector_ingestion_configuration.custom_transformation_configuration` + +Read-Only: + +- `intermediate_storage` (Attributes) A location for storing content from data sources temporarily as it is processed by custom components in the ingestion pipeline. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--custom_transformation_configuration--intermediate_storage)) +- `transformations` (Attributes List) A list of Lambda functions that process documents. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--custom_transformation_configuration--transformations)) + + +### Nested Schema for `vector_ingestion_configuration.custom_transformation_configuration.intermediate_storage` + +Read-Only: + +- `s3_location` (Attributes) An Amazon S3 location. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--custom_transformation_configuration--intermediate_storage--s3_location)) + + +### Nested Schema for `vector_ingestion_configuration.custom_transformation_configuration.intermediate_storage.s3_location` + +Read-Only: + +- `uri` (String) The location's URI + + + + +### Nested Schema for `vector_ingestion_configuration.custom_transformation_configuration.transformations` + +Read-Only: + +- `step_to_apply` (String) When the service applies the transformation. +- `transformation_function` (Attributes) A Lambda function that processes documents. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--custom_transformation_configuration--transformations--transformation_function)) + + +### Nested Schema for `vector_ingestion_configuration.custom_transformation_configuration.transformations.transformation_function` + +Read-Only: + +- `transformation_lambda_configuration` (Attributes) A Lambda function that processes documents. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--custom_transformation_configuration--transformations--transformation_function--transformation_lambda_configuration)) + + +### Nested Schema for `vector_ingestion_configuration.custom_transformation_configuration.transformations.transformation_function.transformation_lambda_configuration` + +Read-Only: + +- `lambda_arn` (String) The function's ARN identifier. + + + + + + +### Nested Schema for `vector_ingestion_configuration.parsing_configuration` + +Read-Only: + +- `bedrock_foundation_model_configuration` (Attributes) Settings for a foundation model used to parse documents for a data source. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--parsing_configuration--bedrock_foundation_model_configuration)) +- `parsing_strategy` (String) The parsing strategy for the data source. + + +### Nested Schema for `vector_ingestion_configuration.parsing_configuration.bedrock_foundation_model_configuration` + +Read-Only: + +- `model_arn` (String) The model's ARN. +- `parsing_prompt` (Attributes) Instructions for interpreting the contents of a document. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--parsing_configuration--bedrock_foundation_model_configuration--parsing_prompt)) + + +### Nested Schema for `vector_ingestion_configuration.parsing_configuration.bedrock_foundation_model_configuration.parsing_prompt` + +Read-Only: + +- `parsing_prompt_text` (String) Instructions for interpreting the contents of a document. diff --git a/docs/data-sources/cognito_identity_pool.md b/docs/data-sources/cognito_identity_pool.md index 7a79d6535..209a444b3 100644 --- a/docs/data-sources/cognito_identity_pool.md +++ b/docs/data-sources/cognito_identity_pool.md @@ -29,6 +29,7 @@ Data Source schema for AWS::Cognito::IdentityPool - `developer_provider_name` (String) - `identity_pool_id` (String) - `identity_pool_name` (String) +- `identity_pool_tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--identity_pool_tags)) - `name` (String) - `open_id_connect_provider_ar_ns` (List of String) - `push_sync` (Attributes) (see [below for nested schema](#nestedatt--push_sync)) @@ -55,6 +56,15 @@ Read-Only: - `streaming_status` (String) + +### Nested Schema for `identity_pool_tags` + +Read-Only: + +- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + + ### Nested Schema for `push_sync` diff --git a/docs/data-sources/cognito_log_delivery_configuration.md b/docs/data-sources/cognito_log_delivery_configuration.md index 2b14ed5f4..9f81a64e7 100644 --- a/docs/data-sources/cognito_log_delivery_configuration.md +++ b/docs/data-sources/cognito_log_delivery_configuration.md @@ -32,7 +32,9 @@ Read-Only: - `cloudwatch_logs_configuration` (Attributes) (see [below for nested schema](#nestedatt--log_configurations--cloudwatch_logs_configuration)) - `event_source` (String) +- `firehose_configuration` (Attributes) (see [below for nested schema](#nestedatt--log_configurations--firehose_configuration)) - `log_level` (String) +- `s3_configuration` (Attributes) (see [below for nested schema](#nestedatt--log_configurations--s3_configuration)) ### Nested Schema for `log_configurations.cloudwatch_logs_configuration` @@ -40,3 +42,19 @@ Read-Only: Read-Only: - `log_group_arn` (String) + + + +### Nested Schema for `log_configurations.firehose_configuration` + +Read-Only: + +- `stream_arn` (String) + + + +### Nested Schema for `log_configurations.s3_configuration` + +Read-Only: + +- `bucket_arn` (String) diff --git a/docs/data-sources/ec2_launch_template.md b/docs/data-sources/ec2_launch_template.md index 8e6f39a07..426d44dbf 100644 --- a/docs/data-sources/ec2_launch_template.md +++ b/docs/data-sources/ec2_launch_template.md @@ -53,7 +53,7 @@ Read-Only: - `iam_instance_profile` (Attributes) The name or Amazon Resource Name (ARN) of an IAM instance profile. (see [below for nested schema](#nestedatt--launch_template_data--iam_instance_profile)) - `image_id` (String) The ID of the AMI. Alternatively, you can specify a Systems Manager parameter, which will resolve to an AMI ID on launch. Valid formats: - + ``ami-17characters00000`` + + ``ami-0ac394d6a3example`` + ``resolve:ssm:parameter-name`` + ``resolve:ssm:parameter-name:version-number`` + ``resolve:ssm:parameter-name:label`` diff --git a/docs/data-sources/ec2_subnet_cidr_block.md b/docs/data-sources/ec2_subnet_cidr_block.md index 79ba4592c..e3e0a2815 100644 --- a/docs/data-sources/ec2_subnet_cidr_block.md +++ b/docs/data-sources/ec2_subnet_cidr_block.md @@ -21,6 +21,8 @@ Data Source schema for AWS::EC2::SubnetCidrBlock ### Read-Only +- `ip_source` (String) The IP Source of an IPv6 Subnet CIDR Block. +- `ipv_6_address_attribute` (String) The value denoting whether an IPv6 Subnet CIDR Block is public or private. - `ipv_6_cidr_block` (String) The IPv6 network range for the subnet, in CIDR notation. The subnet size must use a /64 prefix length - `ipv_6_ipam_pool_id` (String) The ID of an IPv6 Amazon VPC IP Address Manager (IPAM) pool from which to allocate, to get the subnet's CIDR - `ipv_6_netmask_length` (Number) The netmask length of the IPv6 CIDR to allocate to the subnet from an IPAM pool diff --git a/docs/data-sources/ec2_vpc.md b/docs/data-sources/ec2_vpc.md index f3095c94e..c9084a42f 100644 --- a/docs/data-sources/ec2_vpc.md +++ b/docs/data-sources/ec2_vpc.md @@ -30,8 +30,8 @@ Data Source schema for AWS::EC2::VPC You can only enable DNS hostnames if you've enabled DNS support. - `enable_dns_support` (Boolean) Indicates whether the DNS resolution is supported for the VPC. If enabled, queries to the Amazon provided DNS server at the 169.254.169.253 IP address, or the reserved IP address at the base of the VPC network range "plus two" succeed. If disabled, the Amazon provided DNS service in the VPC that resolves public DNS hostnames to IP addresses is not enabled. Enabled by default. For more information, see [DNS attributes in your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support). - `instance_tenancy` (String) The allowed tenancy of instances launched into the VPC. - + ``default``: An instance launched into the VPC runs on shared hardware by default, unless you explicitly specify a different tenancy during instance launch. - + ``dedicated``: An instance launched into the VPC runs on dedicated hardware by default, unless you explicitly specify a tenancy of ``host`` during instance launch. You cannot specify a tenancy of ``default`` during instance launch. + + ``default``: An instance launched into the VPC runs on shared hardware by default, unless you explicitly specify a different tenancy during instance launch. + + ``dedicated``: An instance launched into the VPC runs on dedicated hardware by default, unless you explicitly specify a tenancy of ``host`` during instance launch. You cannot specify a tenancy of ``default`` during instance launch. Updating ``InstanceTenancy`` requires no replacement only if you are updating its value from ``dedicated`` to ``default``. Updating ``InstanceTenancy`` from ``default`` to ``dedicated`` requires replacement. - `ipv_4_ipam_pool_id` (String) The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. For more information, see [What is IPAM?](https://docs.aws.amazon.com//vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide*. diff --git a/docs/data-sources/lambda_event_source_mapping.md b/docs/data-sources/lambda_event_source_mapping.md index 7b9c26732..9ff83cc93 100644 --- a/docs/data-sources/lambda_event_source_mapping.md +++ b/docs/data-sources/lambda_event_source_mapping.md @@ -23,37 +23,38 @@ Data Source schema for AWS::Lambda::EventSourceMapping - `amazon_managed_kafka_event_source_config` (Attributes) Specific configuration settings for an Amazon Managed Streaming for Apache Kafka (Amazon MSK) event source. (see [below for nested schema](#nestedatt--amazon_managed_kafka_event_source_config)) - `batch_size` (Number) The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB). - + *Amazon Kinesis* – Default 100. Max 10,000. - + *Amazon DynamoDB Streams* – Default 100. Max 10,000. - + *Amazon Simple Queue Service* – Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10. - + *Amazon Managed Streaming for Apache Kafka* – Default 100. Max 10,000. - + *Self-managed Apache Kafka* – Default 100. Max 10,000. - + *Amazon MQ (ActiveMQ and RabbitMQ)* – Default 100. Max 10,000. - + *DocumentDB* – Default 100. Max 10,000. + + *Amazon Kinesis* ? Default 100. Max 10,000. + + *Amazon DynamoDB Streams* ? Default 100. Max 10,000. + + *Amazon Simple Queue Service* ? Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10. + + *Amazon Managed Streaming for Apache Kafka* ? Default 100. Max 10,000. + + *Self-managed Apache Kafka* ? Default 100. Max 10,000. + + *Amazon MQ (ActiveMQ and RabbitMQ)* ? Default 100. Max 10,000. + + *DocumentDB* ? Default 100. Max 10,000. - `bisect_batch_on_function_error` (Boolean) (Kinesis and DynamoDB Streams only) If the function returns an error, split the batch in two and retry. The default value is false. - `destination_config` (Attributes) (Kinesis, DynamoDB Streams, Amazon MSK, and self-managed Apache Kafka event sources only) A configuration object that specifies the destination of an event after Lambda processes it. (see [below for nested schema](#nestedatt--destination_config)) - `document_db_event_source_config` (Attributes) Specific configuration settings for a DocumentDB event source. (see [below for nested schema](#nestedatt--document_db_event_source_config)) - `enabled` (Boolean) When true, the event source mapping is active. When false, Lambda pauses polling and invocation. Default: True - `event_source_arn` (String) The Amazon Resource Name (ARN) of the event source. - + *Amazon Kinesis* – The ARN of the data stream or a stream consumer. - + *Amazon DynamoDB Streams* – The ARN of the stream. - + *Amazon Simple Queue Service* – The ARN of the queue. - + *Amazon Managed Streaming for Apache Kafka* – The ARN of the cluster or the ARN of the VPC connection (for [cross-account event source mappings](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#msk-multi-vpc)). - + *Amazon MQ* – The ARN of the broker. - + *Amazon DocumentDB* – The ARN of the DocumentDB change stream. + + *Amazon Kinesis* ? The ARN of the data stream or a stream consumer. + + *Amazon DynamoDB Streams* ? The ARN of the stream. + + *Amazon Simple Queue Service* ? The ARN of the queue. + + *Amazon Managed Streaming for Apache Kafka* ? The ARN of the cluster or the ARN of the VPC connection (for [cross-account event source mappings](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#msk-multi-vpc)). + + *Amazon MQ* ? The ARN of the broker. + + *Amazon DocumentDB* ? The ARN of the DocumentDB change stream. - `event_source_mapping_id` (String) - `filter_criteria` (Attributes) An object that defines the filter criteria that determine whether Lambda should process an event. For more information, see [Lambda event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html). (see [below for nested schema](#nestedatt--filter_criteria)) - `function_name` (String) The name or ARN of the Lambda function. **Name formats** - + *Function name* – ``MyFunction``. - + *Function ARN* – ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction``. - + *Version or Alias ARN* – ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD``. - + *Partial ARN* – ``123456789012:function:MyFunction``. + + *Function name* ? ``MyFunction``. + + *Function ARN* ? ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction``. + + *Version or Alias ARN* ? ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD``. + + *Partial ARN* ? ``123456789012:function:MyFunction``. The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length. - `function_response_types` (List of String) (Streams and SQS) A list of current response type enums applied to the event source mapping. Valid Values: ``ReportBatchItemFailures`` +- `kms_key_arn` (String) - `maximum_batching_window_in_seconds` (Number) The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function. *Default (, , event sources)*: 0 *Default (, Kafka, , event sources)*: 500 ms @@ -166,13 +167,13 @@ Read-Only: Read-Only: - `type` (String) The type of authentication protocol, VPC components, or virtual host for your event source. For example: ``"Type":"SASL_SCRAM_512_AUTH"``. - + ``BASIC_AUTH`` – (Amazon MQ) The ASMlong secret that stores your broker credentials. - + ``BASIC_AUTH`` – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL/PLAIN authentication of your Apache Kafka brokers. - + ``VPC_SUBNET`` – (Self-managed Apache Kafka) The subnets associated with your VPC. Lambda connects to these subnets to fetch data from your self-managed Apache Kafka cluster. - + ``VPC_SECURITY_GROUP`` – (Self-managed Apache Kafka) The VPC security group used to manage access to your self-managed Apache Kafka brokers. - + ``SASL_SCRAM_256_AUTH`` – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-256 authentication of your self-managed Apache Kafka brokers. - + ``SASL_SCRAM_512_AUTH`` – (Amazon MSK, Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-512 authentication of your self-managed Apache Kafka brokers. - + ``VIRTUAL_HOST`` –- (RabbitMQ) The name of the virtual host in your RabbitMQ broker. Lambda uses this RabbitMQ host as the event source. This property cannot be specified in an UpdateEventSourceMapping API call. - + ``CLIENT_CERTIFICATE_TLS_AUTH`` – (Amazon MSK, self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the certificate chain (X.509 PEM), private key (PKCS#8 PEM), and private key password (optional) used for mutual TLS authentication of your MSK/Apache Kafka brokers. - + ``SERVER_ROOT_CA_CERTIFICATE`` – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the root CA certificate (X.509 PEM) used for TLS encryption of your Apache Kafka brokers. + + ``BASIC_AUTH`` ? (Amazon MQ) The ASMlong secret that stores your broker credentials. + + ``BASIC_AUTH`` ? (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL/PLAIN authentication of your Apache Kafka brokers. + + ``VPC_SUBNET`` ? (Self-managed Apache Kafka) The subnets associated with your VPC. Lambda connects to these subnets to fetch data from your self-managed Apache Kafka cluster. + + ``VPC_SECURITY_GROUP`` ? (Self-managed Apache Kafka) The VPC security group used to manage access to your self-managed Apache Kafka brokers. + + ``SASL_SCRAM_256_AUTH`` ? (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-256 authentication of your self-managed Apache Kafka brokers. + + ``SASL_SCRAM_512_AUTH`` ? (Amazon MSK, Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-512 authentication of your self-managed Apache Kafka brokers. + + ``VIRTUAL_HOST`` ?- (RabbitMQ) The name of the virtual host in your RabbitMQ broker. Lambda uses this RabbitMQ host as the event source. This property cannot be specified in an UpdateEventSourceMapping API call. + + ``CLIENT_CERTIFICATE_TLS_AUTH`` ? (Amazon MSK, self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the certificate chain (X.509 PEM), private key (PKCS#8 PEM), and private key password (optional) used for mutual TLS authentication of your MSK/Apache Kafka brokers. + + ``SERVER_ROOT_CA_CERTIFICATE`` ? (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the root CA certificate (X.509 PEM) used for TLS encryption of your Apache Kafka brokers. - `uri` (String) The value for your chosen configuration in ``Type``. For example: ``"URI": "arn:aws:secretsmanager:us-east-1:01234567890:secret:MyBrokerSecretName"``. diff --git a/docs/data-sources/s3_bucket.md b/docs/data-sources/s3_bucket.md index d160c890e..737e64b73 100644 --- a/docs/data-sources/s3_bucket.md +++ b/docs/data-sources/s3_bucket.md @@ -52,7 +52,8 @@ Data Source schema for AWS::S3::Bucket - `replication_configuration` (Attributes) Configuration for replicating objects in an S3 bucket. To enable replication, you must also enable versioning by using the ``VersioningConfiguration`` property. Amazon S3 can store replicated objects in a single destination bucket or multiple destination buckets. The destination bucket or buckets must already exist. (see [below for nested schema](#nestedatt--replication_configuration)) - `tags` (Attributes List) An arbitrary set of tags (key-value pairs) for this S3 bucket. (see [below for nested schema](#nestedatt--tags)) -- `versioning_configuration` (Attributes) Enables multiple versions of all objects in this bucket. You might enable versioning to prevent objects from being deleted or overwritten by mistake or to archive objects so that you can retrieve previous versions of them. (see [below for nested schema](#nestedatt--versioning_configuration)) +- `versioning_configuration` (Attributes) Enables multiple versions of all objects in this bucket. You might enable versioning to prevent objects from being deleted or overwritten by mistake or to archive objects so that you can retrieve previous versions of them. + When you enable versioning on a bucket for the first time, it might take a short amount of time for the change to be fully propagated. We recommend that you wait for 15 minutes after enabling versioning before issuing write operations (``PUT`` or ``DELETE``) on objects in the bucket. (see [below for nested schema](#nestedatt--versioning_configuration)) - `website_configuration` (Attributes) Information used to configure the bucket as a static website. For more information, see [Hosting Websites on Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html). (see [below for nested schema](#nestedatt--website_configuration)) - `website_url` (String) @@ -352,7 +353,9 @@ Read-Only: Read-Only: -- `partition_date_source` (String) Specifies the partition date source for the partitioned prefix. PartitionDateSource can be EventTime or DeliveryTime. +- `partition_date_source` (String) Specifies the partition date source for the partitioned prefix. ``PartitionDateSource`` can be ``EventTime`` or ``DeliveryTime``. + For ``DeliveryTime``, the time in the log file names corresponds to the delivery time for the log files. + For ``EventTime``, The logs delivered are for a specific day only. The year, month, and day correspond to the day on which the event occurred, and the hour, minutes and seconds are set to 00 in the key. diff --git a/docs/data-sources/systemsmanagersap_application.md b/docs/data-sources/systemsmanagersap_application.md index 82470cfbc..1c4f1ffbc 100644 --- a/docs/data-sources/systemsmanagersap_application.md +++ b/docs/data-sources/systemsmanagersap_application.md @@ -23,8 +23,9 @@ Data Source schema for AWS::SystemsManagerSAP::Application - `application_id` (String) - `application_type` (String) -- `arn` (String) The ARN of the Helix application +- `arn` (String) The ARN of the SSM-SAP application - `credentials` (Attributes List) (see [below for nested schema](#nestedatt--credentials)) +- `database_arn` (String) The ARN of the SAP HANA database - `instances` (List of String) - `sap_instance_number` (String) - `sid` (String) diff --git a/docs/resources/bedrock_data_source.md b/docs/resources/bedrock_data_source.md index fa3c26814..53775ac92 100644 --- a/docs/resources/bedrock_data_source.md +++ b/docs/resources/bedrock_data_source.md @@ -70,9 +70,80 @@ variable "kms_key_arn" { Required: -- `s3_configuration` (Attributes) Contains information about the S3 configuration of the data source. (see [below for nested schema](#nestedatt--data_source_configuration--s3_configuration)) - `type` (String) The type of the data source location. +Optional: + +- `confluence_configuration` (Attributes) The configuration information to connect to Confluence as your data source. (see [below for nested schema](#nestedatt--data_source_configuration--confluence_configuration)) +- `s3_configuration` (Attributes) The configuration information to connect to Amazon S3 as your data source. (see [below for nested schema](#nestedatt--data_source_configuration--s3_configuration)) +- `salesforce_configuration` (Attributes) The configuration information to connect to Salesforce as your data source. (see [below for nested schema](#nestedatt--data_source_configuration--salesforce_configuration)) +- `share_point_configuration` (Attributes) The configuration information to connect to SharePoint as your data source. (see [below for nested schema](#nestedatt--data_source_configuration--share_point_configuration)) +- `web_configuration` (Attributes) Configures a web data source location. (see [below for nested schema](#nestedatt--data_source_configuration--web_configuration)) + + +### Nested Schema for `data_source_configuration.confluence_configuration` + +Required: + +- `source_configuration` (Attributes) The endpoint information to connect to your Confluence data source. (see [below for nested schema](#nestedatt--data_source_configuration--confluence_configuration--source_configuration)) + +Optional: + +- `crawler_configuration` (Attributes) The configuration of the Confluence content. For example, configuring specific types of Confluence content. (see [below for nested schema](#nestedatt--data_source_configuration--confluence_configuration--crawler_configuration)) + + +### Nested Schema for `data_source_configuration.confluence_configuration.source_configuration` + +Required: + +- `auth_type` (String) The supported authentication type to authenticate and connect to your Confluence instance. +- `credentials_secret_arn` (String) The Amazon Resource Name of an AWS Secrets Manager secret that stores your authentication credentials for your Confluence instance URL. For more information on the key-value pairs that must be included in your secret, depending on your authentication type, see Confluence connection configuration. +- `host_type` (String) The supported host type, whether online/cloud or server/on-premises. +- `host_url` (String) The Confluence host URL or instance URL. + + + +### Nested Schema for `data_source_configuration.confluence_configuration.crawler_configuration` + +Optional: + +- `filter_configuration` (Attributes) The type of filtering that you want to apply to certain objects or content of the data source. For example, the PATTERN type is regular expression patterns you can apply to filter your content. (see [below for nested schema](#nestedatt--data_source_configuration--confluence_configuration--crawler_configuration--filter_configuration)) + + +### Nested Schema for `data_source_configuration.confluence_configuration.crawler_configuration.filter_configuration` + +Required: + +- `type` (String) The crawl filter type. + +Optional: + +- `pattern_object_filter` (Attributes) The configuration of specific filters applied to your data source content. You can filter out or include certain content. (see [below for nested schema](#nestedatt--data_source_configuration--confluence_configuration--crawler_configuration--filter_configuration--pattern_object_filter)) + + +### Nested Schema for `data_source_configuration.confluence_configuration.crawler_configuration.filter_configuration.pattern_object_filter` + +Required: + +- `filters` (Attributes List) Contains information (see [below for nested schema](#nestedatt--data_source_configuration--confluence_configuration--crawler_configuration--filter_configuration--pattern_object_filter--filters)) + + +### Nested Schema for `data_source_configuration.confluence_configuration.crawler_configuration.filter_configuration.pattern_object_filter.filters` + +Required: + +- `object_type` (String) The supported object type or content type of the data source. + +Optional: + +- `exclusion_filters` (List of String) A set of regular expression filter patterns for a type of object. +- `inclusion_filters` (List of String) A set of regular expression filter patterns for a type of object. + + + + + + ### Nested Schema for `data_source_configuration.s3_configuration` @@ -86,6 +157,193 @@ Optional: - `inclusion_prefixes` (List of String) A list of S3 prefixes that define the object containing the data sources. + +### Nested Schema for `data_source_configuration.salesforce_configuration` + +Required: + +- `source_configuration` (Attributes) The endpoint information to connect to your Salesforce data source. (see [below for nested schema](#nestedatt--data_source_configuration--salesforce_configuration--source_configuration)) + +Optional: + +- `crawler_configuration` (Attributes) The configuration of filtering the Salesforce content. For example, configuring regular expression patterns to include or exclude certain content. (see [below for nested schema](#nestedatt--data_source_configuration--salesforce_configuration--crawler_configuration)) + + +### Nested Schema for `data_source_configuration.salesforce_configuration.source_configuration` + +Required: + +- `auth_type` (String) The supported authentication type to authenticate and connect to your Salesforce instance. +- `credentials_secret_arn` (String) The Amazon Resource Name of an AWS Secrets Manager secret that stores your authentication credentials for your Salesforce instance URL. For more information on the key-value pairs that must be included in your secret, depending on your authentication type, see Salesforce connection configuration. +- `host_url` (String) The Salesforce host URL or instance URL. + + + +### Nested Schema for `data_source_configuration.salesforce_configuration.crawler_configuration` + +Optional: + +- `filter_configuration` (Attributes) The type of filtering that you want to apply to certain objects or content of the data source. For example, the PATTERN type is regular expression patterns you can apply to filter your content. (see [below for nested schema](#nestedatt--data_source_configuration--salesforce_configuration--crawler_configuration--filter_configuration)) + + +### Nested Schema for `data_source_configuration.salesforce_configuration.crawler_configuration.filter_configuration` + +Required: + +- `type` (String) The crawl filter type. + +Optional: + +- `pattern_object_filter` (Attributes) The configuration of specific filters applied to your data source content. You can filter out or include certain content. (see [below for nested schema](#nestedatt--data_source_configuration--salesforce_configuration--crawler_configuration--filter_configuration--pattern_object_filter)) + + +### Nested Schema for `data_source_configuration.salesforce_configuration.crawler_configuration.filter_configuration.pattern_object_filter` + +Required: + +- `filters` (Attributes List) Contains information (see [below for nested schema](#nestedatt--data_source_configuration--salesforce_configuration--crawler_configuration--filter_configuration--pattern_object_filter--filters)) + + +### Nested Schema for `data_source_configuration.salesforce_configuration.crawler_configuration.filter_configuration.pattern_object_filter.filters` + +Required: + +- `object_type` (String) The supported object type or content type of the data source. + +Optional: + +- `exclusion_filters` (List of String) A set of regular expression filter patterns for a type of object. +- `inclusion_filters` (List of String) A set of regular expression filter patterns for a type of object. + + + + + + + +### Nested Schema for `data_source_configuration.share_point_configuration` + +Required: + +- `source_configuration` (Attributes) The endpoint information to connect to your SharePoint data source. (see [below for nested schema](#nestedatt--data_source_configuration--share_point_configuration--source_configuration)) + +Optional: + +- `crawler_configuration` (Attributes) The configuration of the SharePoint content. For example, configuring specific types of SharePoint content. (see [below for nested schema](#nestedatt--data_source_configuration--share_point_configuration--crawler_configuration)) + + +### Nested Schema for `data_source_configuration.share_point_configuration.source_configuration` + +Required: + +- `auth_type` (String) The supported authentication type to authenticate and connect to your SharePoint site/sites. +- `credentials_secret_arn` (String) The Amazon Resource Name of an AWS Secrets Manager secret that stores your authentication credentials for your SharePoint site/sites. For more information on the key-value pairs that must be included in your secret, depending on your authentication type, see SharePoint connection configuration. +- `domain` (String) The domain of your SharePoint instance or site URL/URLs. +- `host_type` (String) The supported host type, whether online/cloud or server/on-premises. +- `site_urls` (List of String) A list of one or more SharePoint site URLs. + +Optional: + +- `tenant_id` (String) The identifier of your Microsoft 365 tenant. + + + +### Nested Schema for `data_source_configuration.share_point_configuration.crawler_configuration` + +Optional: + +- `filter_configuration` (Attributes) The type of filtering that you want to apply to certain objects or content of the data source. For example, the PATTERN type is regular expression patterns you can apply to filter your content. (see [below for nested schema](#nestedatt--data_source_configuration--share_point_configuration--crawler_configuration--filter_configuration)) + + +### Nested Schema for `data_source_configuration.share_point_configuration.crawler_configuration.filter_configuration` + +Required: + +- `type` (String) The crawl filter type. + +Optional: + +- `pattern_object_filter` (Attributes) The configuration of specific filters applied to your data source content. You can filter out or include certain content. (see [below for nested schema](#nestedatt--data_source_configuration--share_point_configuration--crawler_configuration--filter_configuration--pattern_object_filter)) + + +### Nested Schema for `data_source_configuration.share_point_configuration.crawler_configuration.filter_configuration.pattern_object_filter` + +Required: + +- `filters` (Attributes List) Contains information (see [below for nested schema](#nestedatt--data_source_configuration--share_point_configuration--crawler_configuration--filter_configuration--pattern_object_filter--filters)) + + +### Nested Schema for `data_source_configuration.share_point_configuration.crawler_configuration.filter_configuration.pattern_object_filter.filters` + +Required: + +- `object_type` (String) The supported object type or content type of the data source. + +Optional: + +- `exclusion_filters` (List of String) A set of regular expression filter patterns for a type of object. +- `inclusion_filters` (List of String) A set of regular expression filter patterns for a type of object. + + + + + + + +### Nested Schema for `data_source_configuration.web_configuration` + +Required: + +- `source_configuration` (Attributes) A web source configuration. (see [below for nested schema](#nestedatt--data_source_configuration--web_configuration--source_configuration)) + +Optional: + +- `crawler_configuration` (Attributes) Configuration for the web crawler. (see [below for nested schema](#nestedatt--data_source_configuration--web_configuration--crawler_configuration)) + + +### Nested Schema for `data_source_configuration.web_configuration.source_configuration` + +Required: + +- `url_configuration` (Attributes) A url configuration. (see [below for nested schema](#nestedatt--data_source_configuration--web_configuration--source_configuration--url_configuration)) + + +### Nested Schema for `data_source_configuration.web_configuration.source_configuration.url_configuration` + +Required: + +- `seed_urls` (Attributes List) A list of web urls. (see [below for nested schema](#nestedatt--data_source_configuration--web_configuration--source_configuration--url_configuration--seed_urls)) + + +### Nested Schema for `data_source_configuration.web_configuration.source_configuration.url_configuration.seed_urls` + +Required: + +- `url` (String) A web url. + + + + + +### Nested Schema for `data_source_configuration.web_configuration.crawler_configuration` + +Optional: + +- `crawler_limits` (Attributes) Limit settings for the web crawler. (see [below for nested schema](#nestedatt--data_source_configuration--web_configuration--crawler_configuration--crawler_limits)) +- `exclusion_filters` (List of String) A set of regular expression filter patterns for a type of object. +- `inclusion_filters` (List of String) A set of regular expression filter patterns for a type of object. +- `scope` (String) The scope that a web crawl job will be restricted to. + + +### Nested Schema for `data_source_configuration.web_configuration.crawler_configuration.crawler_limits` + +Optional: + +- `rate_limit` (Number) Rate of web URLs retrieved per minute. + + + + ### Nested Schema for `server_side_encryption_configuration` @@ -101,6 +359,8 @@ Optional: Optional: - `chunking_configuration` (Attributes) 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. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--chunking_configuration)) +- `custom_transformation_configuration` (Attributes) Settings for customizing steps in the data source content ingestion pipeline. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--custom_transformation_configuration)) +- `parsing_configuration` (Attributes) Settings for parsing document contents (see [below for nested schema](#nestedatt--vector_ingestion_configuration--parsing_configuration)) ### Nested Schema for `vector_ingestion_configuration.chunking_configuration` @@ -112,6 +372,8 @@ Required: Optional: - `fixed_size_chunking_configuration` (Attributes) Configurations for when you choose fixed-size chunking. If you set the chunkingStrategy as NONE, exclude this field. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--chunking_configuration--fixed_size_chunking_configuration)) +- `hierarchical_chunking_configuration` (Attributes) Configurations for when you choose hierarchical chunking. If you set the chunkingStrategy as NONE, exclude this field. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--chunking_configuration--hierarchical_chunking_configuration)) +- `semantic_chunking_configuration` (Attributes) Configurations for when you choose semantic chunking. If you set the chunkingStrategy as NONE, exclude this field. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--chunking_configuration--semantic_chunking_configuration)) ### Nested Schema for `vector_ingestion_configuration.chunking_configuration.fixed_size_chunking_configuration` @@ -121,6 +383,114 @@ Required: - `max_tokens` (Number) The maximum number of tokens to include in a chunk. - `overlap_percentage` (Number) The percentage of overlap between adjacent chunks of a data source. + + +### Nested Schema for `vector_ingestion_configuration.chunking_configuration.hierarchical_chunking_configuration` + +Required: + +- `level_configurations` (Attributes List) Token settings for each layer. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--chunking_configuration--hierarchical_chunking_configuration--level_configurations)) +- `overlap_tokens` (Number) The number of tokens to repeat across chunks in the same layer. + + +### Nested Schema for `vector_ingestion_configuration.chunking_configuration.hierarchical_chunking_configuration.level_configurations` + +Required: + +- `max_tokens` (Number) The maximum number of tokens that a chunk can contain in this layer. + + + + +### Nested Schema for `vector_ingestion_configuration.chunking_configuration.semantic_chunking_configuration` + +Required: + +- `breakpoint_percentile_threshold` (Number) The dissimilarity threshold for splitting chunks. +- `buffer_size` (Number) The buffer size. +- `max_tokens` (Number) The maximum number of tokens that a chunk can contain. + + + + +### Nested Schema for `vector_ingestion_configuration.custom_transformation_configuration` + +Required: + +- `intermediate_storage` (Attributes) A location for storing content from data sources temporarily as it is processed by custom components in the ingestion pipeline. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--custom_transformation_configuration--intermediate_storage)) +- `transformations` (Attributes List) A list of Lambda functions that process documents. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--custom_transformation_configuration--transformations)) + + +### Nested Schema for `vector_ingestion_configuration.custom_transformation_configuration.intermediate_storage` + +Required: + +- `s3_location` (Attributes) An Amazon S3 location. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--custom_transformation_configuration--intermediate_storage--s3_location)) + + +### Nested Schema for `vector_ingestion_configuration.custom_transformation_configuration.intermediate_storage.s3_location` + +Required: + +- `uri` (String) The location's URI + + + + +### Nested Schema for `vector_ingestion_configuration.custom_transformation_configuration.transformations` + +Required: + +- `step_to_apply` (String) When the service applies the transformation. +- `transformation_function` (Attributes) A Lambda function that processes documents. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--custom_transformation_configuration--transformations--transformation_function)) + + +### Nested Schema for `vector_ingestion_configuration.custom_transformation_configuration.transformations.transformation_function` + +Required: + +- `transformation_lambda_configuration` (Attributes) A Lambda function that processes documents. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--custom_transformation_configuration--transformations--transformation_function--transformation_lambda_configuration)) + + +### Nested Schema for `vector_ingestion_configuration.custom_transformation_configuration.transformations.transformation_function.transformation_lambda_configuration` + +Required: + +- `lambda_arn` (String) The function's ARN identifier. + + + + + + +### Nested Schema for `vector_ingestion_configuration.parsing_configuration` + +Required: + +- `parsing_strategy` (String) The parsing strategy for the data source. + +Optional: + +- `bedrock_foundation_model_configuration` (Attributes) Settings for a foundation model used to parse documents for a data source. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--parsing_configuration--bedrock_foundation_model_configuration)) + + +### Nested Schema for `vector_ingestion_configuration.parsing_configuration.bedrock_foundation_model_configuration` + +Required: + +- `model_arn` (String) The model's ARN. + +Optional: + +- `parsing_prompt` (Attributes) Instructions for interpreting the contents of a document. (see [below for nested schema](#nestedatt--vector_ingestion_configuration--parsing_configuration--bedrock_foundation_model_configuration--parsing_prompt)) + + +### Nested Schema for `vector_ingestion_configuration.parsing_configuration.bedrock_foundation_model_configuration.parsing_prompt` + +Required: + +- `parsing_prompt_text` (String) Instructions for interpreting the contents of a document. + ## Import Import is supported using the following syntax: diff --git a/docs/resources/cognito_identity_pool.md b/docs/resources/cognito_identity_pool.md index d88200fc3..a7f88b267 100644 --- a/docs/resources/cognito_identity_pool.md +++ b/docs/resources/cognito_identity_pool.md @@ -58,6 +58,7 @@ resource "awscc_cognito_identity_pool" "example_identity_pool" { - `cognito_streams` (Attributes) (see [below for nested schema](#nestedatt--cognito_streams)) - `developer_provider_name` (String) - `identity_pool_name` (String) +- `identity_pool_tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--identity_pool_tags)) - `open_id_connect_provider_ar_ns` (List of String) - `push_sync` (Attributes) (see [below for nested schema](#nestedatt--push_sync)) - `saml_provider_ar_ns` (List of String) @@ -92,6 +93,15 @@ Optional: - `streaming_status` (String) + +### Nested Schema for `identity_pool_tags` + +Required: + +- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + + ### Nested Schema for `push_sync` diff --git a/docs/resources/cognito_log_delivery_configuration.md b/docs/resources/cognito_log_delivery_configuration.md index c3d49605d..3e08c69fd 100644 --- a/docs/resources/cognito_log_delivery_configuration.md +++ b/docs/resources/cognito_log_delivery_configuration.md @@ -35,7 +35,9 @@ Optional: - `cloudwatch_logs_configuration` (Attributes) (see [below for nested schema](#nestedatt--log_configurations--cloudwatch_logs_configuration)) - `event_source` (String) +- `firehose_configuration` (Attributes) (see [below for nested schema](#nestedatt--log_configurations--firehose_configuration)) - `log_level` (String) +- `s3_configuration` (Attributes) (see [below for nested schema](#nestedatt--log_configurations--s3_configuration)) ### Nested Schema for `log_configurations.cloudwatch_logs_configuration` @@ -44,6 +46,22 @@ Optional: - `log_group_arn` (String) + + +### Nested Schema for `log_configurations.firehose_configuration` + +Optional: + +- `stream_arn` (String) + + + +### Nested Schema for `log_configurations.s3_configuration` + +Optional: + +- `bucket_arn` (String) + ## Import Import is supported using the following syntax: diff --git a/docs/resources/ec2_launch_template.md b/docs/resources/ec2_launch_template.md index 0ef49a900..19c1b42c2 100644 --- a/docs/resources/ec2_launch_template.md +++ b/docs/resources/ec2_launch_template.md @@ -159,7 +159,7 @@ Optional: - `iam_instance_profile` (Attributes) The name or Amazon Resource Name (ARN) of an IAM instance profile. (see [below for nested schema](#nestedatt--launch_template_data--iam_instance_profile)) - `image_id` (String) The ID of the AMI. Alternatively, you can specify a Systems Manager parameter, which will resolve to an AMI ID on launch. Valid formats: - + ``ami-17characters00000`` + + ``ami-0ac394d6a3example`` + ``resolve:ssm:parameter-name`` + ``resolve:ssm:parameter-name:version-number`` + ``resolve:ssm:parameter-name:label`` diff --git a/docs/resources/ec2_subnet_cidr_block.md b/docs/resources/ec2_subnet_cidr_block.md index c6c5148c3..4b504201b 100644 --- a/docs/resources/ec2_subnet_cidr_block.md +++ b/docs/resources/ec2_subnet_cidr_block.md @@ -28,6 +28,8 @@ The AWS::EC2::SubnetCidrBlock resource creates association between subnet and IP ### Read-Only - `id` (String) Uniquely identifies the resource. +- `ip_source` (String) The IP Source of an IPv6 Subnet CIDR Block. +- `ipv_6_address_attribute` (String) The value denoting whether an IPv6 Subnet CIDR Block is public or private. - `subnet_cidr_block_id` (String) Information about the IPv6 association. ## Import diff --git a/docs/resources/ec2_vpc.md b/docs/resources/ec2_vpc.md index c02e80939..07a7e3451 100644 --- a/docs/resources/ec2_vpc.md +++ b/docs/resources/ec2_vpc.md @@ -3,14 +3,14 @@ page_title: "awscc_ec2_vpc Resource - terraform-provider-awscc" subcategory: "" description: |- Specifies a virtual private cloud (VPC). - You can optionally request an IPv6 CIDR block for the VPC. You can request an Amazon-provided IPv6 CIDR block from Amazon's pool of IPv6 addresses, or an IPv6 CIDR block from an IPv6 address pool that you provisioned through bring your own IP addresses (BYOIP). + To add an IPv6 CIDR block to the VPC, see AWS::EC2::VPCCidrBlock https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html. For more information, see Virtual private clouds (VPC) https://docs.aws.amazon.com/vpc/latest/userguide/configure-your-vpc.html in the Amazon VPC User Guide. --- # awscc_ec2_vpc (Resource) Specifies a virtual private cloud (VPC). - You can optionally request an IPv6 CIDR block for the VPC. You can request an Amazon-provided IPv6 CIDR block from Amazon's pool of IPv6 addresses, or an IPv6 CIDR block from an IPv6 address pool that you provisioned through bring your own IP addresses (BYOIP). + To add an IPv6 CIDR block to the VPC, see [AWS::EC2::VPCCidrBlock](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html). For more information, see [Virtual private clouds (VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/configure-your-vpc.html) in the *Amazon VPC User Guide*. ## Example Usage @@ -88,8 +88,8 @@ resource "awscc_ec2_vpc" "main" { You can only enable DNS hostnames if you've enabled DNS support. - `enable_dns_support` (Boolean) Indicates whether the DNS resolution is supported for the VPC. If enabled, queries to the Amazon provided DNS server at the 169.254.169.253 IP address, or the reserved IP address at the base of the VPC network range "plus two" succeed. If disabled, the Amazon provided DNS service in the VPC that resolves public DNS hostnames to IP addresses is not enabled. Enabled by default. For more information, see [DNS attributes in your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support). - `instance_tenancy` (String) The allowed tenancy of instances launched into the VPC. - + ``default``: An instance launched into the VPC runs on shared hardware by default, unless you explicitly specify a different tenancy during instance launch. - + ``dedicated``: An instance launched into the VPC runs on dedicated hardware by default, unless you explicitly specify a tenancy of ``host`` during instance launch. You cannot specify a tenancy of ``default`` during instance launch. + + ``default``: An instance launched into the VPC runs on shared hardware by default, unless you explicitly specify a different tenancy during instance launch. + + ``dedicated``: An instance launched into the VPC runs on dedicated hardware by default, unless you explicitly specify a tenancy of ``host`` during instance launch. You cannot specify a tenancy of ``default`` during instance launch. Updating ``InstanceTenancy`` requires no replacement only if you are updating its value from ``dedicated`` to ``default``. Updating ``InstanceTenancy`` from ``default`` to ``dedicated`` requires replacement. - `ipv_4_ipam_pool_id` (String) The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. For more information, see [What is IPAM?](https://docs.aws.amazon.com//vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide*. diff --git a/docs/resources/lambda_event_source_mapping b/docs/resources/lambda_event_source_mapping index cd69fa5e1..abde8e4bf 100644 --- a/docs/resources/lambda_event_source_mapping +++ b/docs/resources/lambda_event_source_mapping @@ -52,10 +52,10 @@ resource "awscc_lambda_permission" "example" { - `function_name` (String) The name or ARN of the Lambda function. **Name formats** - + *Function name* – ``MyFunction``. - + *Function ARN* – ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction``. - + *Version or Alias ARN* – ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD``. - + *Partial ARN* – ``123456789012:function:MyFunction``. + + *Function name* ? ``MyFunction``. + + *Function ARN* ? ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction``. + + *Version or Alias ARN* ? ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD``. + + *Partial ARN* ? ``123456789012:function:MyFunction``. The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length. @@ -63,28 +63,29 @@ resource "awscc_lambda_permission" "example" { - `amazon_managed_kafka_event_source_config` (Attributes) Specific configuration settings for an Amazon Managed Streaming for Apache Kafka (Amazon MSK) event source. (see [below for nested schema](#nestedatt--amazon_managed_kafka_event_source_config)) - `batch_size` (Number) The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB). - + *Amazon Kinesis* – Default 100. Max 10,000. - + *Amazon DynamoDB Streams* – Default 100. Max 10,000. - + *Amazon Simple Queue Service* – Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10. - + *Amazon Managed Streaming for Apache Kafka* – Default 100. Max 10,000. - + *Self-managed Apache Kafka* – Default 100. Max 10,000. - + *Amazon MQ (ActiveMQ and RabbitMQ)* – Default 100. Max 10,000. - + *DocumentDB* – Default 100. Max 10,000. + + *Amazon Kinesis* ? Default 100. Max 10,000. + + *Amazon DynamoDB Streams* ? Default 100. Max 10,000. + + *Amazon Simple Queue Service* ? Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10. + + *Amazon Managed Streaming for Apache Kafka* ? Default 100. Max 10,000. + + *Self-managed Apache Kafka* ? Default 100. Max 10,000. + + *Amazon MQ (ActiveMQ and RabbitMQ)* ? Default 100. Max 10,000. + + *DocumentDB* ? Default 100. Max 10,000. - `bisect_batch_on_function_error` (Boolean) (Kinesis and DynamoDB Streams only) If the function returns an error, split the batch in two and retry. The default value is false. - `destination_config` (Attributes) (Kinesis, DynamoDB Streams, Amazon MSK, and self-managed Apache Kafka event sources only) A configuration object that specifies the destination of an event after Lambda processes it. (see [below for nested schema](#nestedatt--destination_config)) - `document_db_event_source_config` (Attributes) Specific configuration settings for a DocumentDB event source. (see [below for nested schema](#nestedatt--document_db_event_source_config)) - `enabled` (Boolean) When true, the event source mapping is active. When false, Lambda pauses polling and invocation. Default: True - `event_source_arn` (String) The Amazon Resource Name (ARN) of the event source. - + *Amazon Kinesis* – The ARN of the data stream or a stream consumer. - + *Amazon DynamoDB Streams* – The ARN of the stream. - + *Amazon Simple Queue Service* – The ARN of the queue. - + *Amazon Managed Streaming for Apache Kafka* – The ARN of the cluster or the ARN of the VPC connection (for [cross-account event source mappings](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#msk-multi-vpc)). - + *Amazon MQ* – The ARN of the broker. - + *Amazon DocumentDB* – The ARN of the DocumentDB change stream. + + *Amazon Kinesis* ? The ARN of the data stream or a stream consumer. + + *Amazon DynamoDB Streams* ? The ARN of the stream. + + *Amazon Simple Queue Service* ? The ARN of the queue. + + *Amazon Managed Streaming for Apache Kafka* ? The ARN of the cluster or the ARN of the VPC connection (for [cross-account event source mappings](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#msk-multi-vpc)). + + *Amazon MQ* ? The ARN of the broker. + + *Amazon DocumentDB* ? The ARN of the DocumentDB change stream. - `filter_criteria` (Attributes) An object that defines the filter criteria that determine whether Lambda should process an event. For more information, see [Lambda event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html). (see [below for nested schema](#nestedatt--filter_criteria)) - `function_response_types` (List of String) (Streams and SQS) A list of current response type enums applied to the event source mapping. Valid Values: ``ReportBatchItemFailures`` +- `kms_key_arn` (String) - `maximum_batching_window_in_seconds` (Number) The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function. *Default (, , event sources)*: 0 *Default (, Kafka, , event sources)*: 500 ms @@ -202,15 +203,15 @@ Optional: Optional: - `type` (String) The type of authentication protocol, VPC components, or virtual host for your event source. For example: ``"Type":"SASL_SCRAM_512_AUTH"``. - + ``BASIC_AUTH`` – (Amazon MQ) The ASMlong secret that stores your broker credentials. - + ``BASIC_AUTH`` – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL/PLAIN authentication of your Apache Kafka brokers. - + ``VPC_SUBNET`` – (Self-managed Apache Kafka) The subnets associated with your VPC. Lambda connects to these subnets to fetch data from your self-managed Apache Kafka cluster. - + ``VPC_SECURITY_GROUP`` – (Self-managed Apache Kafka) The VPC security group used to manage access to your self-managed Apache Kafka brokers. - + ``SASL_SCRAM_256_AUTH`` – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-256 authentication of your self-managed Apache Kafka brokers. - + ``SASL_SCRAM_512_AUTH`` – (Amazon MSK, Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-512 authentication of your self-managed Apache Kafka brokers. - + ``VIRTUAL_HOST`` –- (RabbitMQ) The name of the virtual host in your RabbitMQ broker. Lambda uses this RabbitMQ host as the event source. This property cannot be specified in an UpdateEventSourceMapping API call. - + ``CLIENT_CERTIFICATE_TLS_AUTH`` – (Amazon MSK, self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the certificate chain (X.509 PEM), private key (PKCS#8 PEM), and private key password (optional) used for mutual TLS authentication of your MSK/Apache Kafka brokers. - + ``SERVER_ROOT_CA_CERTIFICATE`` – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the root CA certificate (X.509 PEM) used for TLS encryption of your Apache Kafka brokers. + + ``BASIC_AUTH`` ? (Amazon MQ) The ASMlong secret that stores your broker credentials. + + ``BASIC_AUTH`` ? (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL/PLAIN authentication of your Apache Kafka brokers. + + ``VPC_SUBNET`` ? (Self-managed Apache Kafka) The subnets associated with your VPC. Lambda connects to these subnets to fetch data from your self-managed Apache Kafka cluster. + + ``VPC_SECURITY_GROUP`` ? (Self-managed Apache Kafka) The VPC security group used to manage access to your self-managed Apache Kafka brokers. + + ``SASL_SCRAM_256_AUTH`` ? (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-256 authentication of your self-managed Apache Kafka brokers. + + ``SASL_SCRAM_512_AUTH`` ? (Amazon MSK, Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-512 authentication of your self-managed Apache Kafka brokers. + + ``VIRTUAL_HOST`` ?- (RabbitMQ) The name of the virtual host in your RabbitMQ broker. Lambda uses this RabbitMQ host as the event source. This property cannot be specified in an UpdateEventSourceMapping API call. + + ``CLIENT_CERTIFICATE_TLS_AUTH`` ? (Amazon MSK, self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the certificate chain (X.509 PEM), private key (PKCS#8 PEM), and private key password (optional) used for mutual TLS authentication of your MSK/Apache Kafka brokers. + + ``SERVER_ROOT_CA_CERTIFICATE`` ? (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the root CA certificate (X.509 PEM) used for TLS encryption of your Apache Kafka brokers. - `uri` (String) The value for your chosen configuration in ``Type``. For example: ``"URI": "arn:aws:secretsmanager:us-east-1:01234567890:secret:MyBrokerSecretName"``. ## Import diff --git a/docs/resources/lambda_event_source_mapping.md b/docs/resources/lambda_event_source_mapping.md index 9e6f59416..228e17700 100644 --- a/docs/resources/lambda_event_source_mapping.md +++ b/docs/resources/lambda_event_source_mapping.md @@ -29,10 +29,10 @@ The ``AWS::Lambda::EventSourceMapping`` resource creates a mapping between an ev - `function_name` (String) The name or ARN of the Lambda function. **Name formats** - + *Function name* – ``MyFunction``. - + *Function ARN* – ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction``. - + *Version or Alias ARN* – ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD``. - + *Partial ARN* – ``123456789012:function:MyFunction``. + + *Function name* ? ``MyFunction``. + + *Function ARN* ? ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction``. + + *Version or Alias ARN* ? ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD``. + + *Partial ARN* ? ``123456789012:function:MyFunction``. The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length. @@ -40,28 +40,29 @@ The ``AWS::Lambda::EventSourceMapping`` resource creates a mapping between an ev - `amazon_managed_kafka_event_source_config` (Attributes) Specific configuration settings for an Amazon Managed Streaming for Apache Kafka (Amazon MSK) event source. (see [below for nested schema](#nestedatt--amazon_managed_kafka_event_source_config)) - `batch_size` (Number) The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB). - + *Amazon Kinesis* – Default 100. Max 10,000. - + *Amazon DynamoDB Streams* – Default 100. Max 10,000. - + *Amazon Simple Queue Service* – Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10. - + *Amazon Managed Streaming for Apache Kafka* – Default 100. Max 10,000. - + *Self-managed Apache Kafka* – Default 100. Max 10,000. - + *Amazon MQ (ActiveMQ and RabbitMQ)* – Default 100. Max 10,000. - + *DocumentDB* – Default 100. Max 10,000. + + *Amazon Kinesis* ? Default 100. Max 10,000. + + *Amazon DynamoDB Streams* ? Default 100. Max 10,000. + + *Amazon Simple Queue Service* ? Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10. + + *Amazon Managed Streaming for Apache Kafka* ? Default 100. Max 10,000. + + *Self-managed Apache Kafka* ? Default 100. Max 10,000. + + *Amazon MQ (ActiveMQ and RabbitMQ)* ? Default 100. Max 10,000. + + *DocumentDB* ? Default 100. Max 10,000. - `bisect_batch_on_function_error` (Boolean) (Kinesis and DynamoDB Streams only) If the function returns an error, split the batch in two and retry. The default value is false. - `destination_config` (Attributes) (Kinesis, DynamoDB Streams, Amazon MSK, and self-managed Apache Kafka event sources only) A configuration object that specifies the destination of an event after Lambda processes it. (see [below for nested schema](#nestedatt--destination_config)) - `document_db_event_source_config` (Attributes) Specific configuration settings for a DocumentDB event source. (see [below for nested schema](#nestedatt--document_db_event_source_config)) - `enabled` (Boolean) When true, the event source mapping is active. When false, Lambda pauses polling and invocation. Default: True - `event_source_arn` (String) The Amazon Resource Name (ARN) of the event source. - + *Amazon Kinesis* – The ARN of the data stream or a stream consumer. - + *Amazon DynamoDB Streams* – The ARN of the stream. - + *Amazon Simple Queue Service* – The ARN of the queue. - + *Amazon Managed Streaming for Apache Kafka* – The ARN of the cluster or the ARN of the VPC connection (for [cross-account event source mappings](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#msk-multi-vpc)). - + *Amazon MQ* – The ARN of the broker. - + *Amazon DocumentDB* – The ARN of the DocumentDB change stream. + + *Amazon Kinesis* ? The ARN of the data stream or a stream consumer. + + *Amazon DynamoDB Streams* ? The ARN of the stream. + + *Amazon Simple Queue Service* ? The ARN of the queue. + + *Amazon Managed Streaming for Apache Kafka* ? The ARN of the cluster or the ARN of the VPC connection (for [cross-account event source mappings](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#msk-multi-vpc)). + + *Amazon MQ* ? The ARN of the broker. + + *Amazon DocumentDB* ? The ARN of the DocumentDB change stream. - `filter_criteria` (Attributes) An object that defines the filter criteria that determine whether Lambda should process an event. For more information, see [Lambda event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html). (see [below for nested schema](#nestedatt--filter_criteria)) - `function_response_types` (List of String) (Streams and SQS) A list of current response type enums applied to the event source mapping. Valid Values: ``ReportBatchItemFailures`` +- `kms_key_arn` (String) - `maximum_batching_window_in_seconds` (Number) The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function. *Default (, , event sources)*: 0 *Default (, Kafka, , event sources)*: 500 ms @@ -179,15 +180,15 @@ Optional: Optional: - `type` (String) The type of authentication protocol, VPC components, or virtual host for your event source. For example: ``"Type":"SASL_SCRAM_512_AUTH"``. - + ``BASIC_AUTH`` – (Amazon MQ) The ASMlong secret that stores your broker credentials. - + ``BASIC_AUTH`` – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL/PLAIN authentication of your Apache Kafka brokers. - + ``VPC_SUBNET`` – (Self-managed Apache Kafka) The subnets associated with your VPC. Lambda connects to these subnets to fetch data from your self-managed Apache Kafka cluster. - + ``VPC_SECURITY_GROUP`` – (Self-managed Apache Kafka) The VPC security group used to manage access to your self-managed Apache Kafka brokers. - + ``SASL_SCRAM_256_AUTH`` – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-256 authentication of your self-managed Apache Kafka brokers. - + ``SASL_SCRAM_512_AUTH`` – (Amazon MSK, Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-512 authentication of your self-managed Apache Kafka brokers. - + ``VIRTUAL_HOST`` –- (RabbitMQ) The name of the virtual host in your RabbitMQ broker. Lambda uses this RabbitMQ host as the event source. This property cannot be specified in an UpdateEventSourceMapping API call. - + ``CLIENT_CERTIFICATE_TLS_AUTH`` – (Amazon MSK, self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the certificate chain (X.509 PEM), private key (PKCS#8 PEM), and private key password (optional) used for mutual TLS authentication of your MSK/Apache Kafka brokers. - + ``SERVER_ROOT_CA_CERTIFICATE`` – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the root CA certificate (X.509 PEM) used for TLS encryption of your Apache Kafka brokers. + + ``BASIC_AUTH`` ? (Amazon MQ) The ASMlong secret that stores your broker credentials. + + ``BASIC_AUTH`` ? (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL/PLAIN authentication of your Apache Kafka brokers. + + ``VPC_SUBNET`` ? (Self-managed Apache Kafka) The subnets associated with your VPC. Lambda connects to these subnets to fetch data from your self-managed Apache Kafka cluster. + + ``VPC_SECURITY_GROUP`` ? (Self-managed Apache Kafka) The VPC security group used to manage access to your self-managed Apache Kafka brokers. + + ``SASL_SCRAM_256_AUTH`` ? (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-256 authentication of your self-managed Apache Kafka brokers. + + ``SASL_SCRAM_512_AUTH`` ? (Amazon MSK, Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-512 authentication of your self-managed Apache Kafka brokers. + + ``VIRTUAL_HOST`` ?- (RabbitMQ) The name of the virtual host in your RabbitMQ broker. Lambda uses this RabbitMQ host as the event source. This property cannot be specified in an UpdateEventSourceMapping API call. + + ``CLIENT_CERTIFICATE_TLS_AUTH`` ? (Amazon MSK, self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the certificate chain (X.509 PEM), private key (PKCS#8 PEM), and private key password (optional) used for mutual TLS authentication of your MSK/Apache Kafka brokers. + + ``SERVER_ROOT_CA_CERTIFICATE`` ? (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the root CA certificate (X.509 PEM) used for TLS encryption of your Apache Kafka brokers. - `uri` (String) The value for your chosen configuration in ``Type``. For example: ``"URI": "arn:aws:secretsmanager:us-east-1:01234567890:secret:MyBrokerSecretName"``. ## Import diff --git a/docs/resources/s3_bucket.md b/docs/resources/s3_bucket.md index 0257d7cc0..135b5dfa7 100644 --- a/docs/resources/s3_bucket.md +++ b/docs/resources/s3_bucket.md @@ -381,7 +381,8 @@ resource "awscc_s3_bucket" "example" { - `replication_configuration` (Attributes) Configuration for replicating objects in an S3 bucket. To enable replication, you must also enable versioning by using the ``VersioningConfiguration`` property. Amazon S3 can store replicated objects in a single destination bucket or multiple destination buckets. The destination bucket or buckets must already exist. (see [below for nested schema](#nestedatt--replication_configuration)) - `tags` (Attributes List) An arbitrary set of tags (key-value pairs) for this S3 bucket. (see [below for nested schema](#nestedatt--tags)) -- `versioning_configuration` (Attributes) Enables multiple versions of all objects in this bucket. You might enable versioning to prevent objects from being deleted or overwritten by mistake or to archive objects so that you can retrieve previous versions of them. (see [below for nested schema](#nestedatt--versioning_configuration)) +- `versioning_configuration` (Attributes) Enables multiple versions of all objects in this bucket. You might enable versioning to prevent objects from being deleted or overwritten by mistake or to archive objects so that you can retrieve previous versions of them. + When you enable versioning on a bucket for the first time, it might take a short amount of time for the change to be fully propagated. We recommend that you wait for 15 minutes after enabling versioning before issuing write operations (``PUT`` or ``DELETE``) on objects in the bucket. (see [below for nested schema](#nestedatt--versioning_configuration)) - `website_configuration` (Attributes) Information used to configure the bucket as a static website. For more information, see [Hosting Websites on Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html). (see [below for nested schema](#nestedatt--website_configuration)) ### Read-Only @@ -728,7 +729,9 @@ Optional: Optional: -- `partition_date_source` (String) Specifies the partition date source for the partitioned prefix. PartitionDateSource can be EventTime or DeliveryTime. +- `partition_date_source` (String) Specifies the partition date source for the partitioned prefix. ``PartitionDateSource`` can be ``EventTime`` or ``DeliveryTime``. + For ``DeliveryTime``, the time in the log file names corresponds to the delivery time for the log files. + For ``EventTime``, The logs delivered are for a specific day only. The year, month, and day correspond to the day on which the event occurred, and the hour, minutes and seconds are set to 00 in the key. diff --git a/docs/resources/systemsmanagersap_application.md b/docs/resources/systemsmanagersap_application.md index 646ca0e5b..68f4038f4 100644 --- a/docs/resources/systemsmanagersap_application.md +++ b/docs/resources/systemsmanagersap_application.md @@ -23,6 +23,7 @@ Resource schema for AWS::SystemsManagerSAP::Application ### Optional - `credentials` (Attributes List) (see [below for nested schema](#nestedatt--credentials)) +- `database_arn` (String) The ARN of the SAP HANA database - `instances` (List of String) - `sap_instance_number` (String) - `sid` (String) @@ -30,7 +31,7 @@ Resource schema for AWS::SystemsManagerSAP::Application ### Read-Only -- `arn` (String) The ARN of the Helix application +- `arn` (String) The ARN of the SSM-SAP application - `id` (String) Uniquely identifies the resource. From 1c96f8444bfd707334be8707f6ecbd7a8cac2493 Mon Sep 17 00:00:00 2001 From: changelogbot Date: Thu, 15 Aug 2024 16:51:06 +0000 Subject: [PATCH 89/89] Update CHANGELOG.md after v1.10.0 --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 94afdc291..d3f8d89a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ -## 1.10.0 (Unreleased) +## 1.11.0 (Unreleased) +## 1.10.0 (August 15, 2024) FEATURES: