diff --git a/CHANGELOG.md b/CHANGELOG.md index 1db89fec5..e0629694b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,14 @@ ## 1.33.0 (Unreleased) + +FEATURES: + +* **New Data Source:** `awscc_applicationsignals_discoveries` +* **New Data Source:** `awscc_applicationsignals_discovery` +* **New Data Source:** `awscc_xray_transaction_search_config` +* **New Data Source:** `awscc_xray_transaction_search_configs` +* **New Resource:** `awscc_applicationsignals_discovery` +* **New Resource:** `awscc_xray_transaction_search_config` + ## 1.32.0 (March 6, 2025) FEATURES: diff --git a/docs/data-sources/applicationsignals_discoveries.md b/docs/data-sources/applicationsignals_discoveries.md new file mode 100644 index 000000000..bf400a51e --- /dev/null +++ b/docs/data-sources/applicationsignals_discoveries.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_applicationsignals_discoveries Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::ApplicationSignals::Discovery +--- + +# awscc_applicationsignals_discoveries (Data Source) + +Plural Data Source schema for AWS::ApplicationSignals::Discovery + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/applicationsignals_discovery.md b/docs/data-sources/applicationsignals_discovery.md new file mode 100644 index 000000000..c5471c540 --- /dev/null +++ b/docs/data-sources/applicationsignals_discovery.md @@ -0,0 +1,24 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_applicationsignals_discovery Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::ApplicationSignals::Discovery +--- + +# awscc_applicationsignals_discovery (Data Source) + +Data Source schema for AWS::ApplicationSignals::Discovery + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `account_id` (String) The identifier for the specified AWS account. diff --git a/docs/data-sources/athena_data_catalog.md b/docs/data-sources/athena_data_catalog.md index 5fc4578b4..3d236a5c6 100644 --- a/docs/data-sources/athena_data_catalog.md +++ b/docs/data-sources/athena_data_catalog.md @@ -21,11 +21,14 @@ Data Source schema for AWS::Athena::DataCatalog ### Read-Only +- `connection_type` (String) The type of connection for a FEDERATED data catalog - `description` (String) A description of the data catalog to be created. +- `error` (String) Text of the error that occurred during data catalog creation or deletion. - `name` (String) The name of the data catalog to create. The catalog name must be unique for the AWS account and can use a maximum of 128 alphanumeric, underscore, at sign, or hyphen characters. - `parameters` (Map of String) Specifies the Lambda function or functions to use for creating the data catalog. This is a mapping whose values depend on the catalog type. +- `status` (String) The status of the creation or deletion of the data catalog. LAMBDA, GLUE, and HIVE data catalog types are created synchronously. Their status is either CREATE_COMPLETE or CREATE_FAILED. The FEDERATED data catalog type is created asynchronously. - `tags` (Attributes List) A list of comma separated tags to add to the data catalog that is created. (see [below for nested schema](#nestedatt--tags)) -- `type` (String) The type of data catalog to create: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore. +- `type` (String) The type of data catalog to create: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore. FEDERATED is a federated catalog for which Athena creates the connection and the Lambda function for you based on the parameters that you pass. ### Nested Schema for `tags` diff --git a/docs/data-sources/batch_job_definition.md b/docs/data-sources/batch_job_definition.md index 0631b8200..796ccdd8d 100644 --- a/docs/data-sources/batch_job_definition.md +++ b/docs/data-sources/batch_job_definition.md @@ -25,6 +25,7 @@ Data Source schema for AWS::Batch::JobDefinition - `container_properties` (Attributes) (see [below for nested schema](#nestedatt--container_properties)) - `ecs_properties` (Attributes) (see [below for nested schema](#nestedatt--ecs_properties)) - `eks_properties` (Attributes) (see [below for nested schema](#nestedatt--eks_properties)) +- `job_definition_arn` (String) - `job_definition_name` (String) - `node_properties` (Attributes) (see [below for nested schema](#nestedatt--node_properties)) - `parameters` (Map of String) diff --git a/docs/data-sources/bedrock_agent.md b/docs/data-sources/bedrock_agent.md index 5ff688620..4926599a3 100644 --- a/docs/data-sources/bedrock_agent.md +++ b/docs/data-sources/bedrock_agent.md @@ -207,6 +207,7 @@ Read-Only: Read-Only: +- `additional_model_request_fields` (String) Additional Model Request Fields for Prompt Configuration - `base_prompt_template` (String) Base Prompt Template. - `foundation_model` (String) ARN or name of a Bedrock model. - `inference_configuration` (Attributes) Configuration for inference in prompt configuration (see [below for nested schema](#nestedatt--prompt_override_configuration--prompt_configurations--inference_configuration)) diff --git a/docs/data-sources/chatbot_microsoft_teams_channel_configuration.md b/docs/data-sources/chatbot_microsoft_teams_channel_configuration.md index 3842b69ee..6a13121d4 100644 --- a/docs/data-sources/chatbot_microsoft_teams_channel_configuration.md +++ b/docs/data-sources/chatbot_microsoft_teams_channel_configuration.md @@ -31,6 +31,7 @@ Data Source schema for AWS::Chatbot::MicrosoftTeamsChannelConfiguration - `tags` (Attributes List) The tags to add to the configuration (see [below for nested schema](#nestedatt--tags)) - `team_id` (String) The id of the Microsoft Teams team - `teams_channel_id` (String) The id of the Microsoft Teams channel +- `teams_channel_name` (String) The name of the Microsoft Teams channel - `teams_tenant_id` (String) The id of the Microsoft Teams tenant - `user_role_required` (Boolean) Enables use of a user role requirement in your chat configuration diff --git a/docs/data-sources/dynamodb_table.md b/docs/data-sources/dynamodb_table.md index ce2c34ffb..1e360dcf1 100644 --- a/docs/data-sources/dynamodb_table.md +++ b/docs/data-sources/dynamodb_table.md @@ -27,8 +27,8 @@ Data Source schema for AWS::DynamoDB::Table Update requires: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt). Replacement if you edit an existing AttributeDefinition. (see [below for nested schema](#nestedatt--attribute_definitions)) - `billing_mode` (String) Specify how you are charged for read and write throughput and how you manage capacity. Valid values include: - + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for predictable workloads. ``PROVISIONED`` sets the billing mode to [Provisioned Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual). - + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for unpredictable workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-Demand Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand). + + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for most DynamoDB workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-demand capacity mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/on-demand-capacity-mode.html). + + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for steady workloads with predictable growth where capacity requirements can be reliably forecasted. ``PROVISIONED`` sets the billing mode to [Provisioned capacity mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/provisioned-capacity-mode.html). If not specified, the default is ``PROVISIONED``. - `contributor_insights_specification` (Attributes) The settings used to enable or disable CloudWatch Contributor Insights for the specified table. (see [below for nested schema](#nestedatt--contributor_insights_specification)) diff --git a/docs/data-sources/ec2_vpc_endpoint_service.md b/docs/data-sources/ec2_vpc_endpoint_service.md index ba1eb6614..6d61942a4 100644 --- a/docs/data-sources/ec2_vpc_endpoint_service.md +++ b/docs/data-sources/ec2_vpc_endpoint_service.md @@ -27,6 +27,7 @@ Data Source schema for AWS::EC2::VPCEndpointService - `network_load_balancer_arns` (List of String) - `payer_responsibility` (String) - `service_id` (String) +- `supported_ip_address_types` (List of String) Specify which Ip Address types are supported for VPC endpoint service. - `tags` (Attributes List) The tags to add to the VPC endpoint service. (see [below for nested schema](#nestedatt--tags)) diff --git a/docs/data-sources/ecr_pull_through_cache_rule.md b/docs/data-sources/ecr_pull_through_cache_rule.md index 211bbedb1..3a5403278 100644 --- a/docs/data-sources/ecr_pull_through_cache_rule.md +++ b/docs/data-sources/ecr_pull_through_cache_rule.md @@ -22,6 +22,8 @@ Data Source schema for AWS::ECR::PullThroughCacheRule ### Read-Only - `credential_arn` (String) The ARN of the Secrets Manager secret associated with the pull through cache rule. +- `custom_role_arn` (String) The ARN of the IAM role to be assumed by Amazon ECR to authenticate to ECR upstream registry. This role must be in the same account as the registry that you are configuring. - `ecr_repository_prefix` (String) The Amazon ECR repository prefix associated with the pull through cache rule. - `upstream_registry` (String) The name of the upstream source registry associated with the pull through cache rule. - `upstream_registry_url` (String) The upstream registry URL associated with the pull through cache rule. +- `upstream_repository_prefix` (String) The repository name prefix of upstream registry to match with the upstream repository name. When this field isn't specified, Amazon ECR will use the `ROOT`. diff --git a/docs/data-sources/ecs_service.md b/docs/data-sources/ecs_service.md index f74ea5447..4265d5e99 100644 --- a/docs/data-sources/ecs_service.md +++ b/docs/data-sources/ecs_service.md @@ -25,7 +25,7 @@ Data Source schema for AWS::ECS::Service For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide*. - `capacity_provider_strategy` (Attributes List) The capacity provider strategy to use for the service. If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used. - A capacity provider strategy may contain a maximum of 6 capacity providers. + A capacity provider strategy can contain a maximum of 20 capacity providers. To remove this property from your service resource, specify an empty ``CapacityProviderStrategyItem`` array. (see [below for nested schema](#nestedatt--capacity_provider_strategy)) - `cluster` (String) The short name or full Amazon Resource Name (ARN) of the cluster that you run your service on. If you do not specify a cluster, the default cluster is assumed. - `deployment_configuration` (Attributes) Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks. (see [below for nested schema](#nestedatt--deployment_configuration)) @@ -184,7 +184,11 @@ Read-Only: Read-Only: -- `assign_public_ip` (String) Whether the task's elastic network interface receives a public IP address. The default value is ``ENABLED``. +- `assign_public_ip` (String) Whether the task's elastic network interface receives a public IP address. + Consider the following when you set this value: + + When you use ``create-service`` or ``update-service``, the default is ``DISABLED``. + + When the service ``deploymentController`` is ``ECS``, the value must be ``DISABLED``. + + When you use ``create-service`` or ``update-service``, the default is ``ENABLED``. - `security_groups` (List of String) The IDs of the security groups associated with the task or service. If you don't specify a security group, the default security group for the VPC is used. There's a limit of 5 security groups that can be specified. All specified security groups must be from the same VPC. - `subnets` (List of String) The IDs of the subnets associated with the task or service. There's a limit of 16 subnets that can be specified. diff --git a/docs/data-sources/ecs_task_definition.md b/docs/data-sources/ecs_task_definition.md index bec93df8e..4df41cab3 100644 --- a/docs/data-sources/ecs_task_definition.md +++ b/docs/data-sources/ecs_task_definition.md @@ -23,8 +23,7 @@ Data Source schema for AWS::ECS::TaskDefinition - `container_definitions` (Attributes Set) A list of container definitions in JSON format that describe the different containers that make up your task. For more information about container definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*. (see [below for nested schema](#nestedatt--container_definitions)) - `cpu` (String) The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter. - If you use the EC2 launch type, this field is optional. Supported values are between ``128`` CPU units (``0.125`` vCPUs) and ``10240`` CPU units (``10`` vCPUs). - The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate. + If you're using the EC2 launch type or the external launch type, this field is optional. Supported values are between ``128`` CPU units (``0.125`` vCPUs) and ``196608`` CPU units (``192`` vCPUs). The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate. + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) @@ -294,11 +293,11 @@ Read-Only: You don't include the double quotes and brackets when you use the AWS Management Console. ``CMD-SHELL, curl -f http://localhost/ || exit 1`` An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command. -- `interval` (Number) The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. -- `retries` (Number) The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3. -- `start_period` (Number) The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off. +- `interval` (Number) The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. This value applies only when you specify a ``command``. +- `retries` (Number) The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3. This value applies only when you specify a ``command``. +- `start_period` (Number) The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off. This value applies only when you specify a ``command``. If a health check succeeds within the ``startPeriod``, then the container is considered healthy and any subsequent failures count toward the maximum number of retries. -- `timeout` (Number) The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5. +- `timeout` (Number) The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5. This value applies only when you specify a ``command``. diff --git a/docs/data-sources/elasticloadbalancingv2_load_balancer.md b/docs/data-sources/elasticloadbalancingv2_load_balancer.md index fe59d2162..0ef514893 100644 --- a/docs/data-sources/elasticloadbalancingv2_load_balancer.md +++ b/docs/data-sources/elasticloadbalancingv2_load_balancer.md @@ -24,11 +24,12 @@ Data Source schema for AWS::ElasticLoadBalancingV2::LoadBalancer - `canonical_hosted_zone_id` (String) - `dns_name` (String) - `enable_prefix_for_ipv_6_source_nat` (String) [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be ``dualstack``. The default value is ``off``. -- `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. +- `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. The default is ``on``. - `ip_address_type` (String) The IP address type. Internal load balancers must use ``ipv4``. [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses). Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors. [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses). +- `ipv_4_ipam_pool_id` (String) - `load_balancer_arn` (String) - `load_balancer_attributes` (Attributes Set) The load balancer attributes. (see [below for nested schema](#nestedatt--load_balancer_attributes)) - `load_balancer_full_name` (String) diff --git a/docs/data-sources/iot_software_package_version.md b/docs/data-sources/iot_software_package_version.md index 8689ea992..535ae15de 100644 --- a/docs/data-sources/iot_software_package_version.md +++ b/docs/data-sources/iot_software_package_version.md @@ -21,15 +21,55 @@ Data Source schema for AWS::IoT::SoftwarePackageVersion ### Read-Only +- `artifact` (Attributes) The artifact location of the package version (see [below for nested schema](#nestedatt--artifact)) - `attributes` (Map of String) - `description` (String) - `error_reason` (String) - `package_name` (String) - `package_version_arn` (String) +- `recipe` (String) The inline json job document associated with a software package version +- `sbom` (Attributes) The sbom zip archive location of the package version (see [below for nested schema](#nestedatt--sbom)) +- `sbom_validation_status` (String) The validation status of the Sbom file - `status` (String) - `tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) - `version_name` (String) + +### Nested Schema for `artifact` + +Read-Only: + +- `s3_location` (Attributes) The Amazon S3 location (see [below for nested schema](#nestedatt--artifact--s3_location)) + + +### Nested Schema for `artifact.s3_location` + +Read-Only: + +- `bucket` (String) The S3 bucket +- `key` (String) The S3 key +- `version` (String) The S3 version + + + + +### Nested Schema for `sbom` + +Read-Only: + +- `s3_location` (Attributes) The Amazon S3 location (see [below for nested schema](#nestedatt--sbom--s3_location)) + + +### Nested Schema for `sbom.s3_location` + +Read-Only: + +- `bucket` (String) The S3 bucket +- `key` (String) The S3 key +- `version` (String) The S3 version + + + ### Nested Schema for `tags` diff --git a/docs/data-sources/rds_db_cluster.md b/docs/data-sources/rds_db_cluster.md index 4ddedf85e..220c73373 100644 --- a/docs/data-sources/rds_db_cluster.md +++ b/docs/data-sources/rds_db_cluster.md @@ -46,7 +46,7 @@ Data Source schema for AWS::RDS::DBCluster Valid for: Aurora DB clusters and Multi-AZ DB clusters - `database_insights_mode` (String) The mode of Database Insights to enable for the DB cluster. If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465. - Valid for Cluster Type: Aurora DB clusters only + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters - `database_name` (String) The name of your database. If you don't provide a name, then Amazon RDS won't create a database in this DB cluster. For naming constraints, see [Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Limits.html#RDS_Limits.Constraints) in the *Amazon Aurora User Guide*. Valid for: Aurora DB clusters and Multi-AZ DB clusters - `db_cluster_arn` (String) diff --git a/docs/data-sources/rds_db_instance.md b/docs/data-sources/rds_db_instance.md index 6c6f0e1d5..1f51c94a2 100644 --- a/docs/data-sources/rds_db_instance.md +++ b/docs/data-sources/rds_db_instance.md @@ -221,7 +221,7 @@ Data Source schema for AWS::RDS::DBInstance *Amazon Aurora* 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. + If you don't specify a DB subnet group, RDS uses the default DB subnet group if one exists. If a default DB subnet group does not exist, and you don't specify a ``DBSubnetGroupName``, the DB instance fails to launch. 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. diff --git a/docs/data-sources/rum_app_monitor.md b/docs/data-sources/rum_app_monitor.md index af1ac55a7..6e41ad48c 100644 --- a/docs/data-sources/rum_app_monitor.md +++ b/docs/data-sources/rum_app_monitor.md @@ -27,6 +27,7 @@ Data Source schema for AWS::RUM::AppMonitor - `cw_log_enabled` (Boolean) Data collected by RUM is kept by RUM for 30 days and then deleted. This parameter specifies whether RUM sends a copy of this telemetry data to CWLlong in your account. This enables you to keep the telemetry data for more than 30 days, but it does incur CWLlong charges. If you omit this parameter, the default is false - `domain` (String) The top-level internet domain name for which your application has administrative authority. - `name` (String) A name for the app monitor +- `resource_policy` (Attributes) A structure that defines resource policy attached to your app monitor. (see [below for nested schema](#nestedatt--resource_policy)) - `tags` (Attributes Set) Assigns one or more tags (key-value pairs) to the app monitor. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values. Tags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters.You can associate as many as 50 tags with an app monitor. (see [below for nested schema](#nestedatt--tags)) @@ -134,6 +135,17 @@ Read-Only: - `status` (String) Indicates whether AppMonitor accepts custom events. + +### Nested Schema for `resource_policy` + +Read-Only: + +- `policy_document` (String) The JSON to use as the resource policy. The document can be up to 4 KB in size. +- `policy_revision_id` (String) A string value that you can use to conditionally update your policy. You can provide the revision ID of your existing policy to make mutating requests against that policy. + + When you assign a policy revision ID, then later requests about that policy will be rejected with an InvalidPolicyRevisionIdException error if they don't provide the correct current revision ID. + + ### Nested Schema for `tags` diff --git a/docs/data-sources/sagemaker_inference_component.md b/docs/data-sources/sagemaker_inference_component.md index de4fbc193..4092d2182 100644 --- a/docs/data-sources/sagemaker_inference_component.md +++ b/docs/data-sources/sagemaker_inference_component.md @@ -22,6 +22,7 @@ Data Source schema for AWS::SageMaker::InferenceComponent ### Read-Only - `creation_time` (String) +- `deployment_config` (Attributes) The deployment config for the inference component (see [below for nested schema](#nestedatt--deployment_config)) - `endpoint_arn` (String) The Amazon Resource Name (ARN) of the endpoint the inference component is associated with - `endpoint_name` (String) The name of the endpoint the inference component is associated with - `failure_reason` (String) The failure reason if the inference component is in a failed state @@ -34,6 +35,60 @@ Data Source schema for AWS::SageMaker::InferenceComponent - `tags` (Attributes List) An array of tags to apply to the resource (see [below for nested schema](#nestedatt--tags)) - `variant_name` (String) The name of the endpoint variant the inference component is associated with + +### Nested Schema for `deployment_config` + +Read-Only: + +- `auto_rollback_configuration` (Attributes) (see [below for nested schema](#nestedatt--deployment_config--auto_rollback_configuration)) +- `rolling_update_policy` (Attributes) The rolling update policy for the inference component (see [below for nested schema](#nestedatt--deployment_config--rolling_update_policy)) + + +### Nested Schema for `deployment_config.auto_rollback_configuration` + +Read-Only: + +- `alarms` (Attributes List) (see [below for nested schema](#nestedatt--deployment_config--auto_rollback_configuration--alarms)) + + +### Nested Schema for `deployment_config.auto_rollback_configuration.alarms` + +Read-Only: + +- `alarm_name` (String) + + + + +### Nested Schema for `deployment_config.rolling_update_policy` + +Read-Only: + +- `maximum_batch_size` (Attributes) Capacity size configuration for the inference component (see [below for nested schema](#nestedatt--deployment_config--rolling_update_policy--maximum_batch_size)) +- `maximum_execution_timeout_in_seconds` (Number) +- `rollback_maximum_batch_size` (Attributes) Capacity size configuration for the inference component (see [below for nested schema](#nestedatt--deployment_config--rolling_update_policy--rollback_maximum_batch_size)) +- `wait_interval_in_seconds` (Number) + + +### Nested Schema for `deployment_config.rolling_update_policy.maximum_batch_size` + +Read-Only: + +- `type` (String) +- `value` (Number) The number of copies for the inference component + + + +### Nested Schema for `deployment_config.rolling_update_policy.rollback_maximum_batch_size` + +Read-Only: + +- `type` (String) +- `value` (Number) The number of copies for the inference component + + + + ### Nested Schema for `runtime_config` diff --git a/docs/data-sources/xray_transaction_search_config.md b/docs/data-sources/xray_transaction_search_config.md new file mode 100644 index 000000000..a9b5590a1 --- /dev/null +++ b/docs/data-sources/xray_transaction_search_config.md @@ -0,0 +1,25 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_xray_transaction_search_config Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::XRay::TransactionSearchConfig +--- + +# awscc_xray_transaction_search_config (Data Source) + +Data Source schema for AWS::XRay::TransactionSearchConfig + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `account_id` (String) User account id, used as the primary identifier for the resource +- `indexing_percentage` (Number) Determines the percentage of traces indexed from CloudWatch Logs to X-Ray diff --git a/docs/data-sources/xray_transaction_search_configs.md b/docs/data-sources/xray_transaction_search_configs.md new file mode 100644 index 000000000..abb7565ab --- /dev/null +++ b/docs/data-sources/xray_transaction_search_configs.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_xray_transaction_search_configs Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::XRay::TransactionSearchConfig +--- + +# awscc_xray_transaction_search_configs (Data Source) + +Plural Data Source schema for AWS::XRay::TransactionSearchConfig + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/resources/applicationsignals_discovery.md b/docs/resources/applicationsignals_discovery.md new file mode 100644 index 000000000..64a7299f1 --- /dev/null +++ b/docs/resources/applicationsignals_discovery.md @@ -0,0 +1,29 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_applicationsignals_discovery Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::ApplicationSignals::Discovery +--- + +# awscc_applicationsignals_discovery (Resource) + +Resource Type definition for AWS::ApplicationSignals::Discovery + + + + +## Schema + +### Read-Only + +- `account_id` (String) The identifier for the specified AWS account. +- `id` (String) Uniquely identifies the resource. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_applicationsignals_discovery.example "account_id" +``` diff --git a/docs/resources/athena_data_catalog.md b/docs/resources/athena_data_catalog.md index 9c6172f32..ee5d806d3 100644 --- a/docs/resources/athena_data_catalog.md +++ b/docs/resources/athena_data_catalog.md @@ -31,12 +31,15 @@ resource "awscc_athena_data_catalog" "this" { ### Required - `name` (String) The name of the data catalog to create. The catalog name must be unique for the AWS account and can use a maximum of 128 alphanumeric, underscore, at sign, or hyphen characters. -- `type` (String) The type of data catalog to create: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore. +- `type` (String) The type of data catalog to create: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore. FEDERATED is a federated catalog for which Athena creates the connection and the Lambda function for you based on the parameters that you pass. ### Optional +- `connection_type` (String) The type of connection for a FEDERATED data catalog - `description` (String) A description of the data catalog to be created. +- `error` (String) Text of the error that occurred during data catalog creation or deletion. - `parameters` (Map of String) Specifies the Lambda function or functions to use for creating the data catalog. This is a mapping whose values depend on the catalog type. +- `status` (String) The status of the creation or deletion of the data catalog. LAMBDA, GLUE, and HIVE data catalog types are created synchronously. Their status is either CREATE_COMPLETE or CREATE_FAILED. The FEDERATED data catalog type is created asynchronously. - `tags` (Attributes List) A list of comma separated tags to add to the data catalog that is created. (see [below for nested schema](#nestedatt--tags)) ### Read-Only diff --git a/docs/resources/batch_job_definition.md b/docs/resources/batch_job_definition.md index ebe004e88..8dee36217 100644 --- a/docs/resources/batch_job_definition.md +++ b/docs/resources/batch_job_definition.md @@ -108,6 +108,7 @@ resource "awscc_batch_job_definition" "example" { ### Read-Only - `id` (String) Uniquely identifies the resource. +- `job_definition_arn` (String) ### Nested Schema for `consumable_resource_properties` diff --git a/docs/resources/bedrock_agent.md b/docs/resources/bedrock_agent.md index 8adda8a32..aba2732ac 100644 --- a/docs/resources/bedrock_agent.md +++ b/docs/resources/bedrock_agent.md @@ -274,6 +274,7 @@ Optional: Optional: +- `additional_model_request_fields` (String) Additional Model Request Fields for Prompt Configuration - `base_prompt_template` (String) Base Prompt Template. - `foundation_model` (String) ARN or name of a Bedrock model. - `inference_configuration` (Attributes) Configuration for inference in prompt configuration (see [below for nested schema](#nestedatt--prompt_override_configuration--prompt_configurations--inference_configuration)) diff --git a/docs/resources/chatbot_microsoft_teams_channel_configuration.md b/docs/resources/chatbot_microsoft_teams_channel_configuration.md index b95890fce..4e2ae9eb8 100644 --- a/docs/resources/chatbot_microsoft_teams_channel_configuration.md +++ b/docs/resources/chatbot_microsoft_teams_channel_configuration.md @@ -30,6 +30,7 @@ Resource schema for AWS::Chatbot::MicrosoftTeamsChannelConfiguration. - `logging_level` (String) Specifies the logging level for this configuration:ERROR,INFO or NONE. This property affects the log entries pushed to Amazon CloudWatch logs - `sns_topic_arns` (List of String) ARNs of SNS topics which delivers notifications to AWS Chatbot, for example CloudWatch alarm notifications. - `tags` (Attributes List) The tags to add to the configuration (see [below for nested schema](#nestedatt--tags)) +- `teams_channel_name` (String) The name of the Microsoft Teams channel - `user_role_required` (Boolean) Enables use of a user role requirement in your chat configuration ### Read-Only diff --git a/docs/resources/dynamodb_table.md b/docs/resources/dynamodb_table.md index 9dfcb2d7b..2ae3661d2 100644 --- a/docs/resources/dynamodb_table.md +++ b/docs/resources/dynamodb_table.md @@ -149,8 +149,8 @@ resource "awscc_dynamodb_table" "example" { Update requires: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt). Replacement if you edit an existing AttributeDefinition. (see [below for nested schema](#nestedatt--attribute_definitions)) - `billing_mode` (String) Specify how you are charged for read and write throughput and how you manage capacity. Valid values include: - + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for predictable workloads. ``PROVISIONED`` sets the billing mode to [Provisioned Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual). - + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for unpredictable workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-Demand Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand). + + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for most DynamoDB workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-demand capacity mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/on-demand-capacity-mode.html). + + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for steady workloads with predictable growth where capacity requirements can be reliably forecasted. ``PROVISIONED`` sets the billing mode to [Provisioned capacity mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/provisioned-capacity-mode.html). If not specified, the default is ``PROVISIONED``. - `contributor_insights_specification` (Attributes) The settings used to enable or disable CloudWatch Contributor Insights for the specified table. (see [below for nested schema](#nestedatt--contributor_insights_specification)) diff --git a/docs/resources/ec2_vpc_endpoint_service.md b/docs/resources/ec2_vpc_endpoint_service.md index cf5a5e9fa..429d30b14 100644 --- a/docs/resources/ec2_vpc_endpoint_service.md +++ b/docs/resources/ec2_vpc_endpoint_service.md @@ -72,6 +72,7 @@ resource "awscc_ec2_vpc_endpoint_service" "example" { - `gateway_load_balancer_arns` (List of String) - `network_load_balancer_arns` (List of String) - `payer_responsibility` (String) +- `supported_ip_address_types` (List of String) Specify which Ip Address types are supported for VPC endpoint service. - `tags` (Attributes List) The tags to add to the VPC endpoint service. (see [below for nested schema](#nestedatt--tags)) ### Read-Only diff --git a/docs/resources/ecr_pull_through_cache_rule.md b/docs/resources/ecr_pull_through_cache_rule.md index 08e4ab9fc..ca9be3679 100644 --- a/docs/resources/ecr_pull_through_cache_rule.md +++ b/docs/resources/ecr_pull_through_cache_rule.md @@ -27,9 +27,11 @@ resource "awscc_ecr_pull_through_cache_rule" "ecr_pull_through_cache_rule_exampl ### Optional - `credential_arn` (String) The ARN of the Secrets Manager secret associated with the pull through cache rule. +- `custom_role_arn` (String) The ARN of the IAM role to be assumed by Amazon ECR to authenticate to ECR upstream registry. This role must be in the same account as the registry that you are configuring. - `ecr_repository_prefix` (String) The Amazon ECR repository prefix associated with the pull through cache rule. - `upstream_registry` (String) The name of the upstream source registry associated with the pull through cache rule. - `upstream_registry_url` (String) The upstream registry URL associated with the pull through cache rule. +- `upstream_repository_prefix` (String) The repository name prefix of upstream registry to match with the upstream repository name. When this field isn't specified, Amazon ECR will use the `ROOT`. ### Read-Only diff --git a/docs/resources/ecs_service.md b/docs/resources/ecs_service.md index c414d642d..9f5c24226 100644 --- a/docs/resources/ecs_service.md +++ b/docs/resources/ecs_service.md @@ -73,7 +73,7 @@ resource "awscc_ecs_service" "nginx" { For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide*. - `capacity_provider_strategy` (Attributes List) The capacity provider strategy to use for the service. If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used. - A capacity provider strategy may contain a maximum of 6 capacity providers. + A capacity provider strategy can contain a maximum of 20 capacity providers. To remove this property from your service resource, specify an empty ``CapacityProviderStrategyItem`` array. (see [below for nested schema](#nestedatt--capacity_provider_strategy)) - `cluster` (String) The short name or full Amazon Resource Name (ARN) of the cluster that you run your service on. If you do not specify a cluster, the default cluster is assumed. - `deployment_configuration` (Attributes) Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks. (see [below for nested schema](#nestedatt--deployment_configuration)) @@ -236,7 +236,11 @@ Optional: Optional: -- `assign_public_ip` (String) Whether the task's elastic network interface receives a public IP address. The default value is ``ENABLED``. +- `assign_public_ip` (String) Whether the task's elastic network interface receives a public IP address. + Consider the following when you set this value: + + When you use ``create-service`` or ``update-service``, the default is ``DISABLED``. + + When the service ``deploymentController`` is ``ECS``, the value must be ``DISABLED``. + + When you use ``create-service`` or ``update-service``, the default is ``ENABLED``. - `security_groups` (List of String) The IDs of the security groups associated with the task or service. If you don't specify a security group, the default security group for the VPC is used. There's a limit of 5 security groups that can be specified. All specified security groups must be from the same VPC. - `subnets` (List of String) The IDs of the subnets associated with the task or service. There's a limit of 16 subnets that can be specified. diff --git a/docs/resources/ecs_task_definition.md b/docs/resources/ecs_task_definition.md index 09b767ea9..d0f7e00c0 100644 --- a/docs/resources/ecs_task_definition.md +++ b/docs/resources/ecs_task_definition.md @@ -143,8 +143,7 @@ resource "awscc_ecs_task_definition" "example" { - `container_definitions` (Attributes Set) A list of container definitions in JSON format that describe the different containers that make up your task. For more information about container definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*. (see [below for nested schema](#nestedatt--container_definitions)) - `cpu` (String) The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter. - If you use the EC2 launch type, this field is optional. Supported values are between ``128`` CPU units (``0.125`` vCPUs) and ``10240`` CPU units (``10`` vCPUs). - The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate. + If you're using the EC2 launch type or the external launch type, this field is optional. Supported values are between ``128`` CPU units (``0.125`` vCPUs) and ``196608`` CPU units (``192`` vCPUs). The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate. + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) @@ -418,11 +417,11 @@ Optional: You don't include the double quotes and brackets when you use the AWS Management Console. ``CMD-SHELL, curl -f http://localhost/ || exit 1`` An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command. -- `interval` (Number) The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. -- `retries` (Number) The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3. -- `start_period` (Number) The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off. +- `interval` (Number) The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. This value applies only when you specify a ``command``. +- `retries` (Number) The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3. This value applies only when you specify a ``command``. +- `start_period` (Number) The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off. This value applies only when you specify a ``command``. If a health check succeeds within the ``startPeriod``, then the container is considered healthy and any subsequent failures count toward the maximum number of retries. -- `timeout` (Number) The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5. +- `timeout` (Number) The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5. This value applies only when you specify a ``command``. diff --git a/docs/resources/elasticloadbalancingv2_load_balancer.md b/docs/resources/elasticloadbalancingv2_load_balancer.md index 0db40e8ee..9fa228170 100644 --- a/docs/resources/elasticloadbalancingv2_load_balancer.md +++ b/docs/resources/elasticloadbalancingv2_load_balancer.md @@ -154,11 +154,12 @@ resource "awscc_elasticloadbalancingv2_load_balancer" "example" { ### Optional - `enable_prefix_for_ipv_6_source_nat` (String) [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be ``dualstack``. The default value is ``off``. -- `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. +- `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. The default is ``on``. - `ip_address_type` (String) The IP address type. Internal load balancers must use ``ipv4``. [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses). Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors. [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses). +- `ipv_4_ipam_pool_id` (String) - `load_balancer_attributes` (Attributes Set) The load balancer attributes. (see [below for nested schema](#nestedatt--load_balancer_attributes)) - `minimum_load_balancer_capacity` (Attributes) The minimum capacity for a load balancer. (see [below for nested schema](#nestedatt--minimum_load_balancer_capacity)) - `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/iot_software_package_version.md b/docs/resources/iot_software_package_version.md index 10396e4bf..2ba9c5273 100644 --- a/docs/resources/iot_software_package_version.md +++ b/docs/resources/iot_software_package_version.md @@ -21,8 +21,11 @@ resource definition ### Optional +- `artifact` (Attributes) The artifact location of the package version (see [below for nested schema](#nestedatt--artifact)) - `attributes` (Map of String) - `description` (String) +- `recipe` (String) The inline json job document associated with a software package version +- `sbom` (Attributes) The sbom zip archive location of the package version (see [below for nested schema](#nestedatt--sbom)) - `tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) - `version_name` (String) @@ -31,8 +34,45 @@ resource definition - `error_reason` (String) - `id` (String) Uniquely identifies the resource. - `package_version_arn` (String) +- `sbom_validation_status` (String) The validation status of the Sbom file - `status` (String) + +### Nested Schema for `artifact` + +Optional: + +- `s3_location` (Attributes) The Amazon S3 location (see [below for nested schema](#nestedatt--artifact--s3_location)) + + +### Nested Schema for `artifact.s3_location` + +Optional: + +- `bucket` (String) The S3 bucket +- `key` (String) The S3 key +- `version` (String) The S3 version + + + + +### Nested Schema for `sbom` + +Optional: + +- `s3_location` (Attributes) The Amazon S3 location (see [below for nested schema](#nestedatt--sbom--s3_location)) + + +### Nested Schema for `sbom.s3_location` + +Optional: + +- `bucket` (String) The S3 bucket +- `key` (String) The S3 key +- `version` (String) The S3 version + + + ### Nested Schema for `tags` diff --git a/docs/resources/msk_replicator.md b/docs/resources/msk_replicator.md index bbde53fd0..ee24c288b 100644 --- a/docs/resources/msk_replicator.md +++ b/docs/resources/msk_replicator.md @@ -24,12 +24,12 @@ Resource Type definition for AWS::MSK::Replicator ### Optional -- `current_version` (String) The current version of the MSK replicator. - `description` (String) A summary description of the replicator. - `tags` (Attributes Set) A collection of tags associated with a resource (see [below for nested schema](#nestedatt--tags)) ### Read-Only +- `current_version` (String) The current version of the MSK replicator. - `id` (String) Uniquely identifies the resource. - `replicator_arn` (String) Amazon Resource Name for the created replicator. diff --git a/docs/resources/rds_db_cluster.md b/docs/resources/rds_db_cluster.md index 13a86de5a..a3fc80cb9 100644 --- a/docs/resources/rds_db_cluster.md +++ b/docs/resources/rds_db_cluster.md @@ -81,7 +81,7 @@ resource "awscc_rds_db_cluster" "example_db_cluster" { Valid for: Aurora DB clusters and Multi-AZ DB clusters - `database_insights_mode` (String) The mode of Database Insights to enable for the DB cluster. If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465. - Valid for Cluster Type: Aurora DB clusters only + Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters - `database_name` (String) The name of your database. If you don't provide a name, then Amazon RDS won't create a database in this DB cluster. For naming constraints, see [Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Limits.html#RDS_Limits.Constraints) in the *Amazon Aurora User Guide*. Valid for: Aurora DB clusters and Multi-AZ DB clusters - `db_cluster_identifier` (String) The DB cluster identifier. This parameter is stored as a lowercase string. diff --git a/docs/resources/rds_db_instance.md b/docs/resources/rds_db_instance.md index eafd4afd5..81795d866 100644 --- a/docs/resources/rds_db_instance.md +++ b/docs/resources/rds_db_instance.md @@ -343,7 +343,7 @@ resource "awscc_rds_db_instance" "this" { *Amazon Aurora* 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. + If you don't specify a DB subnet group, RDS uses the default DB subnet group if one exists. If a default DB subnet group does not exist, and you don't specify a ``DBSubnetGroupName``, the DB instance fails to launch. 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. diff --git a/docs/resources/rum_app_monitor.md b/docs/resources/rum_app_monitor.md index 01996937c..000ddc65b 100644 --- a/docs/resources/rum_app_monitor.md +++ b/docs/resources/rum_app_monitor.md @@ -118,6 +118,7 @@ resource "awscc_rum_app_monitor" "example" { - `app_monitor_configuration` (Attributes) AppMonitor configuration (see [below for nested schema](#nestedatt--app_monitor_configuration)) - `custom_events` (Attributes) AppMonitor custom events configuration (see [below for nested schema](#nestedatt--custom_events)) - `cw_log_enabled` (Boolean) Data collected by RUM is kept by RUM for 30 days and then deleted. This parameter specifies whether RUM sends a copy of this telemetry data to CWLlong in your account. This enables you to keep the telemetry data for more than 30 days, but it does incur CWLlong charges. If you omit this parameter, the default is false +- `resource_policy` (Attributes) A structure that defines resource policy attached to your app monitor. (see [below for nested schema](#nestedatt--resource_policy)) - `tags` (Attributes Set) Assigns one or more tags (key-value pairs) to the app monitor. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values. Tags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters.You can associate as many as 50 tags with an app monitor. (see [below for nested schema](#nestedatt--tags)) ### Read-Only @@ -230,6 +231,17 @@ Optional: - `status` (String) Indicates whether AppMonitor accepts custom events. + +### Nested Schema for `resource_policy` + +Optional: + +- `policy_document` (String) The JSON to use as the resource policy. The document can be up to 4 KB in size. +- `policy_revision_id` (String) A string value that you can use to conditionally update your policy. You can provide the revision ID of your existing policy to make mutating requests against that policy. + + When you assign a policy revision ID, then later requests about that policy will be rejected with an InvalidPolicyRevisionIdException error if they don't provide the correct current revision ID. + + ### Nested Schema for `tags` diff --git a/docs/resources/sagemaker_inference_component.md b/docs/resources/sagemaker_inference_component.md index 4ac3a30e3..a5f716f8b 100644 --- a/docs/resources/sagemaker_inference_component.md +++ b/docs/resources/sagemaker_inference_component.md @@ -22,6 +22,7 @@ Resource Type definition for AWS::SageMaker::InferenceComponent ### Optional +- `deployment_config` (Attributes) The deployment config for the inference component (see [below for nested schema](#nestedatt--deployment_config)) - `endpoint_arn` (String) The Amazon Resource Name (ARN) of the endpoint the inference component is associated with - `inference_component_name` (String) The name of the inference component - `runtime_config` (Attributes) The runtime config for the inference component (see [below for nested schema](#nestedatt--runtime_config)) @@ -93,6 +94,60 @@ Optional: + +### Nested Schema for `deployment_config` + +Optional: + +- `auto_rollback_configuration` (Attributes) (see [below for nested schema](#nestedatt--deployment_config--auto_rollback_configuration)) +- `rolling_update_policy` (Attributes) The rolling update policy for the inference component (see [below for nested schema](#nestedatt--deployment_config--rolling_update_policy)) + + +### Nested Schema for `deployment_config.auto_rollback_configuration` + +Optional: + +- `alarms` (Attributes List) (see [below for nested schema](#nestedatt--deployment_config--auto_rollback_configuration--alarms)) + + +### Nested Schema for `deployment_config.auto_rollback_configuration.alarms` + +Optional: + +- `alarm_name` (String) + + + + +### Nested Schema for `deployment_config.rolling_update_policy` + +Optional: + +- `maximum_batch_size` (Attributes) Capacity size configuration for the inference component (see [below for nested schema](#nestedatt--deployment_config--rolling_update_policy--maximum_batch_size)) +- `maximum_execution_timeout_in_seconds` (Number) +- `rollback_maximum_batch_size` (Attributes) Capacity size configuration for the inference component (see [below for nested schema](#nestedatt--deployment_config--rolling_update_policy--rollback_maximum_batch_size)) +- `wait_interval_in_seconds` (Number) + + +### Nested Schema for `deployment_config.rolling_update_policy.maximum_batch_size` + +Optional: + +- `type` (String) +- `value` (Number) The number of copies for the inference component + + + +### Nested Schema for `deployment_config.rolling_update_policy.rollback_maximum_batch_size` + +Optional: + +- `type` (String) +- `value` (Number) The number of copies for the inference component + + + + ### Nested Schema for `runtime_config` diff --git a/docs/resources/xray_transaction_search_config.md b/docs/resources/xray_transaction_search_config.md new file mode 100644 index 000000000..93885d83c --- /dev/null +++ b/docs/resources/xray_transaction_search_config.md @@ -0,0 +1,33 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_xray_transaction_search_config Resource - terraform-provider-awscc" +subcategory: "" +description: |- + This schema provides construct and validation rules for AWS-XRay TransactionSearchConfig resource parameters. +--- + +# awscc_xray_transaction_search_config (Resource) + +This schema provides construct and validation rules for AWS-XRay TransactionSearchConfig resource parameters. + + + + +## Schema + +### Optional + +- `indexing_percentage` (Number) Determines the percentage of traces indexed from CloudWatch Logs to X-Ray + +### Read-Only + +- `account_id` (String) User account id, used as the primary identifier for the resource +- `id` (String) Uniquely identifies the resource. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_xray_transaction_search_config.example "account_id" +``` diff --git a/examples/resources/awscc_applicationsignals_discovery/import.sh b/examples/resources/awscc_applicationsignals_discovery/import.sh new file mode 100644 index 000000000..0a91b2c0d --- /dev/null +++ b/examples/resources/awscc_applicationsignals_discovery/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_applicationsignals_discovery.example "account_id" \ No newline at end of file diff --git a/examples/resources/awscc_xray_transaction_search_config/import.sh b/examples/resources/awscc_xray_transaction_search_config/import.sh new file mode 100644 index 000000000..d50f6affe --- /dev/null +++ b/examples/resources/awscc_xray_transaction_search_config/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_xray_transaction_search_config.example "account_id" \ No newline at end of file diff --git a/internal/aws/applicationsignals/discovery_plural_data_source_gen.go b/internal/aws/applicationsignals/discovery_plural_data_source_gen.go new file mode 100644 index 000000000..659ab0585 --- /dev/null +++ b/internal/aws/applicationsignals/discovery_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 applicationsignals + +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_applicationsignals_discoveries", discoveriesDataSource) +} + +// discoveriesDataSource returns the Terraform awscc_applicationsignals_discoveries data source. +// This Terraform data source corresponds to the CloudFormation AWS::ApplicationSignals::Discovery resource. +func discoveriesDataSource(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::ApplicationSignals::Discovery", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::ApplicationSignals::Discovery").WithTerraformTypeName("awscc_applicationsignals_discoveries") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/applicationsignals/discovery_plural_data_source_gen_test.go b/internal/aws/applicationsignals/discovery_plural_data_source_gen_test.go new file mode 100644 index 000000000..39cde008f --- /dev/null +++ b/internal/aws/applicationsignals/discovery_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 applicationsignals_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSApplicationSignalsDiscoveriesDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::ApplicationSignals::Discovery", "awscc_applicationsignals_discoveries", "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/applicationsignals/discovery_resource_gen.go b/internal/aws/applicationsignals/discovery_resource_gen.go new file mode 100644 index 000000000..51bbe57d8 --- /dev/null +++ b/internal/aws/applicationsignals/discovery_resource_gen.go @@ -0,0 +1,80 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package applicationsignals + +import ( + "context" + + "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-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_applicationsignals_discovery", discoveryResource) +} + +// discoveryResource returns the Terraform awscc_applicationsignals_discovery resource. +// This Terraform resource corresponds to the CloudFormation AWS::ApplicationSignals::Discovery resource. +func discoveryResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AccountId + // CloudFormation resource type schema: + // + // { + // "description": "The identifier for the specified AWS account.", + // "maxLength": 12, + // "minLength": 12, + // "pattern": "^[0-9]{12}$", + // "type": "string" + // } + "account_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier for the specified AWS account.", + 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: "Resource Type definition for AWS::ApplicationSignals::Discovery", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::ApplicationSignals::Discovery").WithTerraformTypeName("awscc_applicationsignals_discovery") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "account_id": "AccountId", + }) + + 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/applicationsignals/discovery_resource_gen_test.go b/internal/aws/applicationsignals/discovery_resource_gen_test.go new file mode 100644 index 000000000..eb3a113ff --- /dev/null +++ b/internal/aws/applicationsignals/discovery_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 applicationsignals_test + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSApplicationSignalsDiscovery_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::ApplicationSignals::Discovery", "awscc_applicationsignals_discovery", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + ), + }, + { + ResourceName: td.ResourceName, + ImportState: true, + ImportStateVerify: true, + }, + }) +} + +func TestAccAWSApplicationSignalsDiscovery_disappears(t *testing.T) { + td := acctest.NewTestData(t, "AWS::ApplicationSignals::Discovery", "awscc_applicationsignals_discovery", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + td.DeleteResource(), + ), + ExpectNonEmptyPlan: true, + }, + }) +} diff --git a/internal/aws/applicationsignals/discovery_singular_data_source_gen.go b/internal/aws/applicationsignals/discovery_singular_data_source_gen.go new file mode 100644 index 000000000..5ec1184c5 --- /dev/null +++ b/internal/aws/applicationsignals/discovery_singular_data_source_gen.go @@ -0,0 +1,66 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package applicationsignals + +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_applicationsignals_discovery", discoveryDataSource) +} + +// discoveryDataSource returns the Terraform awscc_applicationsignals_discovery data source. +// This Terraform data source corresponds to the CloudFormation AWS::ApplicationSignals::Discovery resource. +func discoveryDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AccountId + // CloudFormation resource type schema: + // + // { + // "description": "The identifier for the specified AWS account.", + // "maxLength": 12, + // "minLength": 12, + // "pattern": "^[0-9]{12}$", + // "type": "string" + // } + "account_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier for the specified AWS account.", + 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::ApplicationSignals::Discovery", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::ApplicationSignals::Discovery").WithTerraformTypeName("awscc_applicationsignals_discovery") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "account_id": "AccountId", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/applicationsignals/discovery_singular_data_source_gen_test.go b/internal/aws/applicationsignals/discovery_singular_data_source_gen_test.go new file mode 100644 index 000000000..fe298f24b --- /dev/null +++ b/internal/aws/applicationsignals/discovery_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 applicationsignals_test + +import ( + "fmt" + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSApplicationSignalsDiscoveryDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::ApplicationSignals::Discovery", "awscc_applicationsignals_discovery", "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 TestAccAWSApplicationSignalsDiscoveryDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::ApplicationSignals::Discovery", "awscc_applicationsignals_discovery", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/athena/data_catalog_resource_gen.go b/internal/aws/athena/data_catalog_resource_gen.go index 469b0cf6f..cb94bf25d 100644 --- a/internal/aws/athena/data_catalog_resource_gen.go +++ b/internal/aws/athena/data_catalog_resource_gen.go @@ -30,6 +30,21 @@ func init() { // This Terraform resource corresponds to the CloudFormation AWS::Athena::DataCatalog resource. func dataCatalogResource(ctx context.Context) (resource.Resource, error) { attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ConnectionType + // CloudFormation resource type schema: + // + // { + // "description": "The type of connection for a FEDERATED data catalog", + // "type": "string" + // } + "connection_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The type of connection for a FEDERATED data catalog", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Description // CloudFormation resource type schema: // @@ -50,6 +65,21 @@ func dataCatalogResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: Error + // CloudFormation resource type schema: + // + // { + // "description": "Text of the error that occurred during data catalog creation or deletion.", + // "type": "string" + // } + "error": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Text of the error that occurred during data catalog creation or deletion.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Name // CloudFormation resource type schema: // @@ -93,6 +123,45 @@ func dataCatalogResource(ctx context.Context) (resource.Resource, error) { mapplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: Status + // CloudFormation resource type schema: + // + // { + // "description": "The status of the creation or deletion of the data catalog. LAMBDA, GLUE, and HIVE data catalog types are created synchronously. Their status is either CREATE_COMPLETE or CREATE_FAILED. The FEDERATED data catalog type is created asynchronously.", + // "enum": [ + // "CREATE_IN_PROGRESS", + // "CREATE_COMPLETE", + // "CREATE_FAILED", + // "CREATE_FAILED_CLEANUP_IN_PROGRESS", + // "CREATE_FAILED_CLEANUP_COMPLETE", + // "CREATE_FAILED_CLEANUP_FAILED", + // "DELETE_IN_PROGRESS", + // "DELETE_COMPLETE", + // "DELETE_FAILED" + // ], + // "type": "string" + // } + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The status of the creation or deletion of the data catalog. LAMBDA, GLUE, and HIVE data catalog types are created synchronously. Their status is either CREATE_COMPLETE or CREATE_FAILED. The FEDERATED data catalog type is created asynchronously.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "CREATE_IN_PROGRESS", + "CREATE_COMPLETE", + "CREATE_FAILED", + "CREATE_FAILED_CLEANUP_IN_PROGRESS", + "CREATE_FAILED_CLEANUP_COMPLETE", + "CREATE_FAILED_CLEANUP_FAILED", + "DELETE_IN_PROGRESS", + "DELETE_COMPLETE", + "DELETE_FAILED", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // @@ -162,22 +231,24 @@ func dataCatalogResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The type of data catalog to create: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore. ", + // "description": "The type of data catalog to create: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore. FEDERATED is a federated catalog for which Athena creates the connection and the Lambda function for you based on the parameters that you pass.", // "enum": [ // "LAMBDA", // "GLUE", - // "HIVE" + // "HIVE", + // "FEDERATED" // ], // "type": "string" // } "type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of data catalog to create: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore. ", + Description: "The type of data catalog to create: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore. FEDERATED is a federated catalog for which Athena creates the connection and the Lambda function for you based on the parameters that you pass.", Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.OneOf( "LAMBDA", "GLUE", "HIVE", + "FEDERATED", ), }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ @@ -203,13 +274,16 @@ func dataCatalogResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithCloudFormationTypeName("AWS::Athena::DataCatalog").WithTerraformTypeName("awscc_athena_data_catalog") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "description": "Description", - "key": "Key", - "name": "Name", - "parameters": "Parameters", - "tags": "Tags", - "type": "Type", - "value": "Value", + "connection_type": "ConnectionType", + "description": "Description", + "error": "Error", + "key": "Key", + "name": "Name", + "parameters": "Parameters", + "status": "Status", + "tags": "Tags", + "type": "Type", + "value": "Value", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/athena/data_catalog_singular_data_source_gen.go b/internal/aws/athena/data_catalog_singular_data_source_gen.go index 194f4cef6..577e5cde2 100644 --- a/internal/aws/athena/data_catalog_singular_data_source_gen.go +++ b/internal/aws/athena/data_catalog_singular_data_source_gen.go @@ -23,6 +23,17 @@ func init() { // This Terraform data source corresponds to the CloudFormation AWS::Athena::DataCatalog resource. func dataCatalogDataSource(ctx context.Context) (datasource.DataSource, error) { attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ConnectionType + // CloudFormation resource type schema: + // + // { + // "description": "The type of connection for a FEDERATED data catalog", + // "type": "string" + // } + "connection_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The type of connection for a FEDERATED data catalog", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Description // CloudFormation resource type schema: // @@ -36,6 +47,17 @@ func dataCatalogDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "A description of the data catalog to be created. ", Computed: true, }, /*END ATTRIBUTE*/ + // Property: Error + // CloudFormation resource type schema: + // + // { + // "description": "Text of the error that occurred during data catalog creation or deletion.", + // "type": "string" + // } + "error": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Text of the error that occurred during data catalog creation or deletion.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Name // CloudFormation resource type schema: // @@ -69,6 +91,28 @@ func dataCatalogDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "Specifies the Lambda function or functions to use for creating the data catalog. This is a mapping whose values depend on the catalog type. ", Computed: true, }, /*END ATTRIBUTE*/ + // Property: Status + // CloudFormation resource type schema: + // + // { + // "description": "The status of the creation or deletion of the data catalog. LAMBDA, GLUE, and HIVE data catalog types are created synchronously. Their status is either CREATE_COMPLETE or CREATE_FAILED. The FEDERATED data catalog type is created asynchronously.", + // "enum": [ + // "CREATE_IN_PROGRESS", + // "CREATE_COMPLETE", + // "CREATE_FAILED", + // "CREATE_FAILED_CLEANUP_IN_PROGRESS", + // "CREATE_FAILED_CLEANUP_COMPLETE", + // "CREATE_FAILED_CLEANUP_FAILED", + // "DELETE_IN_PROGRESS", + // "DELETE_COMPLETE", + // "DELETE_FAILED" + // ], + // "type": "string" + // } + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The status of the creation or deletion of the data catalog. LAMBDA, GLUE, and HIVE data catalog types are created synchronously. Their status is either CREATE_COMPLETE or CREATE_FAILED. The FEDERATED data catalog type is created asynchronously.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // @@ -117,16 +161,17 @@ func dataCatalogDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The type of data catalog to create: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore. ", + // "description": "The type of data catalog to create: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore. FEDERATED is a federated catalog for which Athena creates the connection and the Lambda function for you based on the parameters that you pass.", // "enum": [ // "LAMBDA", // "GLUE", - // "HIVE" + // "HIVE", + // "FEDERATED" // ], // "type": "string" // } "type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of data catalog to create: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore. ", + Description: "The type of data catalog to create: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore. FEDERATED is a federated catalog for which Athena creates the connection and the Lambda function for you based on the parameters that you pass.", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ @@ -146,13 +191,16 @@ func dataCatalogDataSource(ctx context.Context) (datasource.DataSource, error) { opts = opts.WithCloudFormationTypeName("AWS::Athena::DataCatalog").WithTerraformTypeName("awscc_athena_data_catalog") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "description": "Description", - "key": "Key", - "name": "Name", - "parameters": "Parameters", - "tags": "Tags", - "type": "Type", - "value": "Value", + "connection_type": "ConnectionType", + "description": "Description", + "error": "Error", + "key": "Key", + "name": "Name", + "parameters": "Parameters", + "status": "Status", + "tags": "Tags", + "type": "Type", + "value": "Value", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/batch/job_definition_resource_gen.go b/internal/aws/batch/job_definition_resource_gen.go index 34f716487..ec115ab80 100644 --- a/internal/aws/batch/job_definition_resource_gen.go +++ b/internal/aws/batch/job_definition_resource_gen.go @@ -3380,6 +3380,18 @@ func jobDefinitionResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: JobDefinitionArn + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "job_definition_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: JobDefinitionName // CloudFormation resource type schema: // @@ -6999,6 +7011,7 @@ func jobDefinitionResource(ctx context.Context) (resource.Resource, error) { "instance_type": "InstanceType", "instance_types": "InstanceTypes", "ipc_mode": "IpcMode", + "job_definition_arn": "JobDefinitionArn", "job_definition_name": "JobDefinitionName", "job_role_arn": "JobRoleArn", "labels": "Labels", diff --git a/internal/aws/batch/job_definition_singular_data_source_gen.go b/internal/aws/batch/job_definition_singular_data_source_gen.go index acdc98d3b..eda3ceff4 100644 --- a/internal/aws/batch/job_definition_singular_data_source_gen.go +++ b/internal/aws/batch/job_definition_singular_data_source_gen.go @@ -2330,6 +2330,15 @@ func jobDefinitionDataSource(ctx context.Context) (datasource.DataSource, error) }, /*END SCHEMA*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: JobDefinitionArn + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "job_definition_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: JobDefinitionName // CloudFormation resource type schema: // @@ -4846,6 +4855,7 @@ func jobDefinitionDataSource(ctx context.Context) (datasource.DataSource, error) "instance_type": "InstanceType", "instance_types": "InstanceTypes", "ipc_mode": "IpcMode", + "job_definition_arn": "JobDefinitionArn", "job_definition_name": "JobDefinitionName", "job_role_arn": "JobRoleArn", "labels": "Labels", diff --git a/internal/aws/bedrock/agent_resource_gen.go b/internal/aws/bedrock/agent_resource_gen.go index 8a446f04a..8bb98d121 100644 --- a/internal/aws/bedrock/agent_resource_gen.go +++ b/internal/aws/bedrock/agent_resource_gen.go @@ -9,6 +9,7 @@ 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/float64validator" "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" @@ -1297,6 +1298,10 @@ func agentResource(ctx context.Context) (resource.Resource, error) { // "additionalProperties": false, // "description": "BasePromptConfiguration per Prompt Type.", // "properties": { + // "AdditionalModelRequestFields": { + // "description": "Additional Model Request Fields for Prompt Configuration", + // "type": "object" + // }, // "BasePromptTemplate": { // "description": "Base Prompt Template.", // "maxLength": 100000, @@ -1418,6 +1423,16 @@ func agentResource(ctx context.Context) (resource.Resource, error) { "prompt_configurations": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AdditionalModelRequestFields + "additional_model_request_fields": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Description: "Additional Model Request Fields for Prompt Configuration", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: BasePromptTemplate "base_prompt_template": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "Base Prompt Template.", @@ -1739,6 +1754,7 @@ func agentResource(ctx context.Context) (resource.Resource, error) { "action_group_name": "ActionGroupName", "action_group_state": "ActionGroupState", "action_groups": "ActionGroups", + "additional_model_request_fields": "AdditionalModelRequestFields", "agent_arn": "AgentArn", "agent_collaboration": "AgentCollaboration", "agent_collaborators": "AgentCollaborators", diff --git a/internal/aws/bedrock/agent_singular_data_source_gen.go b/internal/aws/bedrock/agent_singular_data_source_gen.go index 2d774694b..fd3f2eaf5 100644 --- a/internal/aws/bedrock/agent_singular_data_source_gen.go +++ b/internal/aws/bedrock/agent_singular_data_source_gen.go @@ -8,6 +8,7 @@ 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" @@ -890,6 +891,10 @@ func agentDataSource(ctx context.Context) (datasource.DataSource, error) { // "additionalProperties": false, // "description": "BasePromptConfiguration per Prompt Type.", // "properties": { + // "AdditionalModelRequestFields": { + // "description": "Additional Model Request Fields for Prompt Configuration", + // "type": "object" + // }, // "BasePromptTemplate": { // "description": "Base Prompt Template.", // "maxLength": 100000, @@ -1003,6 +1008,12 @@ func agentDataSource(ctx context.Context) (datasource.DataSource, error) { "prompt_configurations": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AdditionalModelRequestFields + "additional_model_request_fields": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Description: "Additional Model Request Fields for Prompt Configuration", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: BasePromptTemplate "base_prompt_template": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "Base Prompt Template.", @@ -1186,6 +1197,7 @@ func agentDataSource(ctx context.Context) (datasource.DataSource, error) { "action_group_name": "ActionGroupName", "action_group_state": "ActionGroupState", "action_groups": "ActionGroups", + "additional_model_request_fields": "AdditionalModelRequestFields", "agent_arn": "AgentArn", "agent_collaboration": "AgentCollaboration", "agent_collaborators": "AgentCollaborators", diff --git a/internal/aws/chatbot/custom_action_resource_gen.go b/internal/aws/chatbot/custom_action_resource_gen.go index 20b1b5470..a46bc08ee 100644 --- a/internal/aws/chatbot/custom_action_resource_gen.go +++ b/internal/aws/chatbot/custom_action_resource_gen.go @@ -257,7 +257,7 @@ func customActionResource(ctx context.Context) (resource.Resource, error) { // "additionalProperties": false, // "properties": { // "CommandText": { - // "maxLength": 100, + // "maxLength": 5000, // "minLength": 1, // "type": "string" // } @@ -273,7 +273,7 @@ func customActionResource(ctx context.Context) (resource.Resource, error) { "command_text": schema.StringAttribute{ /*START ATTRIBUTE*/ Required: true, Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.LengthBetween(1, 100), + stringvalidator.LengthBetween(1, 5000), }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ diff --git a/internal/aws/chatbot/custom_action_singular_data_source_gen.go b/internal/aws/chatbot/custom_action_singular_data_source_gen.go index 5b8c5cdae..057496d68 100644 --- a/internal/aws/chatbot/custom_action_singular_data_source_gen.go +++ b/internal/aws/chatbot/custom_action_singular_data_source_gen.go @@ -172,7 +172,7 @@ func customActionDataSource(ctx context.Context) (datasource.DataSource, error) // "additionalProperties": false, // "properties": { // "CommandText": { - // "maxLength": 100, + // "maxLength": 5000, // "minLength": 1, // "type": "string" // } diff --git a/internal/aws/chatbot/microsoft_teams_channel_configuration_resource_gen.go b/internal/aws/chatbot/microsoft_teams_channel_configuration_resource_gen.go index 840d4d7e3..77660703e 100644 --- a/internal/aws/chatbot/microsoft_teams_channel_configuration_resource_gen.go +++ b/internal/aws/chatbot/microsoft_teams_channel_configuration_resource_gen.go @@ -273,6 +273,28 @@ func microsoftTeamsChannelConfigurationResource(ctx context.Context) (resource.R stringvalidator.RegexMatches(regexp.MustCompile("^([a-zA-Z0-9-_=+/.,])*%3[aA]([a-zA-Z0-9-_=+/.,])*%40([a-zA-Z0-9-_=+/.,])*$"), ""), }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ + // Property: TeamsChannelName + // CloudFormation resource type schema: + // + // { + // "description": "The name of the Microsoft Teams channel", + // "maxLength": 256, + // "minLength": 1, + // "pattern": "^(.*)$", + // "type": "string" + // } + "teams_channel_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the Microsoft Teams channel", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + stringvalidator.RegexMatches(regexp.MustCompile("^(.*)$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: TeamsTenantId // CloudFormation resource type schema: // @@ -344,6 +366,7 @@ func microsoftTeamsChannelConfigurationResource(ctx context.Context) (resource.R "tags": "Tags", "team_id": "TeamId", "teams_channel_id": "TeamsChannelId", + "teams_channel_name": "TeamsChannelName", "teams_tenant_id": "TeamsTenantId", "user_role_required": "UserRoleRequired", "value": "Value", diff --git a/internal/aws/chatbot/microsoft_teams_channel_configuration_singular_data_source_gen.go b/internal/aws/chatbot/microsoft_teams_channel_configuration_singular_data_source_gen.go index 9dedc3cbe..de8c9a532 100644 --- a/internal/aws/chatbot/microsoft_teams_channel_configuration_singular_data_source_gen.go +++ b/internal/aws/chatbot/microsoft_teams_channel_configuration_singular_data_source_gen.go @@ -194,6 +194,20 @@ func microsoftTeamsChannelConfigurationDataSource(ctx context.Context) (datasour Description: "The id of the Microsoft Teams channel", Computed: true, }, /*END ATTRIBUTE*/ + // Property: TeamsChannelName + // CloudFormation resource type schema: + // + // { + // "description": "The name of the Microsoft Teams channel", + // "maxLength": 256, + // "minLength": 1, + // "pattern": "^(.*)$", + // "type": "string" + // } + "teams_channel_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the Microsoft Teams channel", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: TeamsTenantId // CloudFormation resource type schema: // @@ -248,6 +262,7 @@ func microsoftTeamsChannelConfigurationDataSource(ctx context.Context) (datasour "tags": "Tags", "team_id": "TeamId", "teams_channel_id": "TeamsChannelId", + "teams_channel_name": "TeamsChannelName", "teams_tenant_id": "TeamsTenantId", "user_role_required": "UserRoleRequired", "value": "Value", diff --git a/internal/aws/dynamodb/table_resource_gen.go b/internal/aws/dynamodb/table_resource_gen.go index 96ad3b324..7e0a4776d 100644 --- a/internal/aws/dynamodb/table_resource_gen.go +++ b/internal/aws/dynamodb/table_resource_gen.go @@ -119,11 +119,11 @@ func tableResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "Specify how you are charged for read and write throughput and how you manage capacity.\n Valid values include:\n + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for predictable workloads. ``PROVISIONED`` sets the billing mode to [Provisioned Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual).\n + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for unpredictable workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-Demand Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand).\n \n If not specified, the default is ``PROVISIONED``.", + // "description": "Specify how you are charged for read and write throughput and how you manage capacity.\n Valid values include:\n + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for most DynamoDB workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-demand capacity mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/on-demand-capacity-mode.html). \n + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for steady workloads with predictable growth where capacity requirements can be reliably forecasted. ``PROVISIONED`` sets the billing mode to [Provisioned capacity mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/provisioned-capacity-mode.html).\n \n If not specified, the default is ``PROVISIONED``.", // "type": "string" // } "billing_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specify how you are charged for read and write throughput and how you manage capacity.\n Valid values include:\n + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for predictable workloads. ``PROVISIONED`` sets the billing mode to [Provisioned Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual).\n + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for unpredictable workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-Demand Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand).\n \n If not specified, the default is ``PROVISIONED``.", + Description: "Specify how you are charged for read and write throughput and how you manage capacity.\n Valid values include:\n + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for most DynamoDB workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-demand capacity mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/on-demand-capacity-mode.html). \n + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for steady workloads with predictable growth where capacity requirements can be reliably forecasted. ``PROVISIONED`` sets the billing mode to [Provisioned capacity mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/provisioned-capacity-mode.html).\n \n If not specified, the default is ``PROVISIONED``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/dynamodb/table_singular_data_source_gen.go b/internal/aws/dynamodb/table_singular_data_source_gen.go index 0029d3dbc..3742d198a 100644 --- a/internal/aws/dynamodb/table_singular_data_source_gen.go +++ b/internal/aws/dynamodb/table_singular_data_source_gen.go @@ -84,11 +84,11 @@ func tableDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "Specify how you are charged for read and write throughput and how you manage capacity.\n Valid values include:\n + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for predictable workloads. ``PROVISIONED`` sets the billing mode to [Provisioned Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual).\n + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for unpredictable workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-Demand Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand).\n \n If not specified, the default is ``PROVISIONED``.", + // "description": "Specify how you are charged for read and write throughput and how you manage capacity.\n Valid values include:\n + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for most DynamoDB workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-demand capacity mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/on-demand-capacity-mode.html). \n + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for steady workloads with predictable growth where capacity requirements can be reliably forecasted. ``PROVISIONED`` sets the billing mode to [Provisioned capacity mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/provisioned-capacity-mode.html).\n \n If not specified, the default is ``PROVISIONED``.", // "type": "string" // } "billing_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specify how you are charged for read and write throughput and how you manage capacity.\n Valid values include:\n + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for predictable workloads. ``PROVISIONED`` sets the billing mode to [Provisioned Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual).\n + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for unpredictable workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-Demand Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand).\n \n If not specified, the default is ``PROVISIONED``.", + Description: "Specify how you are charged for read and write throughput and how you manage capacity.\n Valid values include:\n + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for most DynamoDB workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-demand capacity mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/on-demand-capacity-mode.html). \n + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for steady workloads with predictable growth where capacity requirements can be reliably forecasted. ``PROVISIONED`` sets the billing mode to [Provisioned capacity mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/provisioned-capacity-mode.html).\n \n If not specified, the default is ``PROVISIONED``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: ContributorInsightsSpecification diff --git a/internal/aws/ec2/vpc_endpoint_service_resource_gen.go b/internal/aws/ec2/vpc_endpoint_service_resource_gen.go index dba31d98e..f8e20eeff 100644 --- a/internal/aws/ec2/vpc_endpoint_service_resource_gen.go +++ b/internal/aws/ec2/vpc_endpoint_service_resource_gen.go @@ -8,6 +8,8 @@ package ec2 import ( "context" + "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/boolplanmodifier" @@ -121,6 +123,40 @@ func vPCEndpointServiceResource(ctx context.Context) (resource.Resource, error) stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: SupportedIpAddressTypes + // CloudFormation resource type schema: + // + // { + // "description": "Specify which Ip Address types are supported for VPC endpoint service.", + // "insertionOrder": false, + // "items": { + // "enum": [ + // "ipv4", + // "ipv6" + // ], + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // } + "supported_ip_address_types": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "Specify which Ip Address types are supported for VPC endpoint service.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.ValueStringsAre( + stringvalidator.OneOf( + "ipv4", + "ipv6", + ), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // @@ -210,6 +246,7 @@ func vPCEndpointServiceResource(ctx context.Context) (resource.Resource, error) "network_load_balancer_arns": "NetworkLoadBalancerArns", "payer_responsibility": "PayerResponsibility", "service_id": "ServiceId", + "supported_ip_address_types": "SupportedIpAddressTypes", "tags": "Tags", "value": "Value", }) diff --git a/internal/aws/ec2/vpc_endpoint_service_singular_data_source_gen.go b/internal/aws/ec2/vpc_endpoint_service_singular_data_source_gen.go index 8fb09c898..51147e42a 100644 --- a/internal/aws/ec2/vpc_endpoint_service_singular_data_source_gen.go +++ b/internal/aws/ec2/vpc_endpoint_service_singular_data_source_gen.go @@ -91,6 +91,27 @@ func vPCEndpointServiceDataSource(ctx context.Context) (datasource.DataSource, e "service_id": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: SupportedIpAddressTypes + // CloudFormation resource type schema: + // + // { + // "description": "Specify which Ip Address types are supported for VPC endpoint service.", + // "insertionOrder": false, + // "items": { + // "enum": [ + // "ipv4", + // "ipv6" + // ], + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // } + "supported_ip_address_types": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "Specify which Ip Address types are supported for VPC endpoint service.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // @@ -156,6 +177,7 @@ func vPCEndpointServiceDataSource(ctx context.Context) (datasource.DataSource, e "network_load_balancer_arns": "NetworkLoadBalancerArns", "payer_responsibility": "PayerResponsibility", "service_id": "ServiceId", + "supported_ip_address_types": "SupportedIpAddressTypes", "tags": "Tags", "value": "Value", }) diff --git a/internal/aws/ecr/pull_through_cache_rule_resource_gen.go b/internal/aws/ecr/pull_through_cache_rule_resource_gen.go index 9147e2283..f9414ddbd 100644 --- a/internal/aws/ecr/pull_through_cache_rule_resource_gen.go +++ b/internal/aws/ecr/pull_through_cache_rule_resource_gen.go @@ -51,6 +51,27 @@ func pullThroughCacheRuleResource(ctx context.Context) (resource.Resource, error }, /*END PLAN MODIFIERS*/ // CredentialArn is a write-only property. }, /*END ATTRIBUTE*/ + // Property: CustomRoleArn + // CloudFormation resource type schema: + // + // { + // "description": "The ARN of the IAM role to be assumed by Amazon ECR to authenticate to ECR upstream registry. This role must be in the same account as the registry that you are configuring.", + // "maxLength": 2048, + // "type": "string" + // } + "custom_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of the IAM role to be assumed by Amazon ECR to authenticate to ECR upstream registry. 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), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + // CustomRoleArn is a write-only property. + }, /*END ATTRIBUTE*/ // Property: EcrRepositoryPrefix // CloudFormation resource type schema: // @@ -58,7 +79,7 @@ func pullThroughCacheRuleResource(ctx context.Context) (resource.Resource, error // "description": "The Amazon ECR repository prefix associated with the pull through cache rule.", // "maxLength": 30, // "minLength": 2, - // "pattern": "(?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*", + // "pattern": "^((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*/?|ROOT)$", // "type": "string" // } "ecr_repository_prefix": schema.StringAttribute{ /*START ATTRIBUTE*/ @@ -67,7 +88,7 @@ func pullThroughCacheRuleResource(ctx context.Context) (resource.Resource, error Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(2, 30), - stringvalidator.RegexMatches(regexp.MustCompile("(?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*/?|ROOT)$"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -107,6 +128,29 @@ func pullThroughCacheRuleResource(ctx context.Context) (resource.Resource, error stringplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: UpstreamRepositoryPrefix + // CloudFormation resource type schema: + // + // { + // "description": "The repository name prefix of upstream registry to match with the upstream repository name. When this field isn't specified, Amazon ECR will use the `ROOT`.", + // "maxLength": 30, + // "minLength": 2, + // "pattern": "^((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*/?|ROOT)$", + // "type": "string" + // } + "upstream_repository_prefix": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The repository name prefix of upstream registry to match with the upstream repository name. When this field isn't specified, Amazon ECR will use the `ROOT`.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(2, 30), + stringvalidator.RegexMatches(regexp.MustCompile("^((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*/?|ROOT)$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ // Corresponds to CloudFormation primaryIdentifier. @@ -129,10 +173,12 @@ func pullThroughCacheRuleResource(ctx context.Context) (resource.Resource, error opts = opts.WithCloudFormationTypeName("AWS::ECR::PullThroughCacheRule").WithTerraformTypeName("awscc_ecr_pull_through_cache_rule") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "credential_arn": "CredentialArn", - "ecr_repository_prefix": "EcrRepositoryPrefix", - "upstream_registry": "UpstreamRegistry", - "upstream_registry_url": "UpstreamRegistryUrl", + "credential_arn": "CredentialArn", + "custom_role_arn": "CustomRoleArn", + "ecr_repository_prefix": "EcrRepositoryPrefix", + "upstream_registry": "UpstreamRegistry", + "upstream_registry_url": "UpstreamRegistryUrl", + "upstream_repository_prefix": "UpstreamRepositoryPrefix", }) opts = opts.IsImmutableType(true) @@ -140,6 +186,7 @@ func pullThroughCacheRuleResource(ctx context.Context) (resource.Resource, error opts = opts.WithWriteOnlyPropertyPaths([]string{ "/properties/CredentialArn", "/properties/UpstreamRegistry", + "/properties/CustomRoleArn", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/ecr/pull_through_cache_rule_singular_data_source_gen.go b/internal/aws/ecr/pull_through_cache_rule_singular_data_source_gen.go index bb518d506..e95cf531c 100644 --- a/internal/aws/ecr/pull_through_cache_rule_singular_data_source_gen.go +++ b/internal/aws/ecr/pull_through_cache_rule_singular_data_source_gen.go @@ -36,6 +36,18 @@ func pullThroughCacheRuleDataSource(ctx context.Context) (datasource.DataSource, Description: "The ARN of the Secrets Manager secret associated with the pull through cache rule.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: CustomRoleArn + // CloudFormation resource type schema: + // + // { + // "description": "The ARN of the IAM role to be assumed by Amazon ECR to authenticate to ECR upstream registry. This role must be in the same account as the registry that you are configuring.", + // "maxLength": 2048, + // "type": "string" + // } + "custom_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of the IAM role to be assumed by Amazon ECR to authenticate to ECR upstream registry. This role must be in the same account as the registry that you are configuring.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: EcrRepositoryPrefix // CloudFormation resource type schema: // @@ -43,7 +55,7 @@ func pullThroughCacheRuleDataSource(ctx context.Context) (datasource.DataSource, // "description": "The Amazon ECR repository prefix associated with the pull through cache rule.", // "maxLength": 30, // "minLength": 2, - // "pattern": "(?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*", + // "pattern": "^((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*/?|ROOT)$", // "type": "string" // } "ecr_repository_prefix": schema.StringAttribute{ /*START ATTRIBUTE*/ @@ -72,6 +84,20 @@ func pullThroughCacheRuleDataSource(ctx context.Context) (datasource.DataSource, Description: "The upstream registry URL associated with the pull through cache rule.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: UpstreamRepositoryPrefix + // CloudFormation resource type schema: + // + // { + // "description": "The repository name prefix of upstream registry to match with the upstream repository name. When this field isn't specified, Amazon ECR will use the `ROOT`.", + // "maxLength": 30, + // "minLength": 2, + // "pattern": "^((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*/?|ROOT)$", + // "type": "string" + // } + "upstream_repository_prefix": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The repository name prefix of upstream registry to match with the upstream repository name. When this field isn't specified, Amazon ECR will use the `ROOT`.", + Computed: true, + }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ attributes["id"] = schema.StringAttribute{ @@ -89,10 +115,12 @@ func pullThroughCacheRuleDataSource(ctx context.Context) (datasource.DataSource, opts = opts.WithCloudFormationTypeName("AWS::ECR::PullThroughCacheRule").WithTerraformTypeName("awscc_ecr_pull_through_cache_rule") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "credential_arn": "CredentialArn", - "ecr_repository_prefix": "EcrRepositoryPrefix", - "upstream_registry": "UpstreamRegistry", - "upstream_registry_url": "UpstreamRegistryUrl", + "credential_arn": "CredentialArn", + "custom_role_arn": "CustomRoleArn", + "ecr_repository_prefix": "EcrRepositoryPrefix", + "upstream_registry": "UpstreamRegistry", + "upstream_registry_url": "UpstreamRegistryUrl", + "upstream_repository_prefix": "UpstreamRepositoryPrefix", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/ecs/service_resource_gen.go b/internal/aws/ecs/service_resource_gen.go index f340761cc..bbf215c41 100644 --- a/internal/aws/ecs/service_resource_gen.go +++ b/internal/aws/ecs/service_resource_gen.go @@ -65,7 +65,7 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy may contain a maximum of 6 capacity providers.\n To remove this property from your service resource, specify an empty ``CapacityProviderStrategyItem`` array.", + // "description": "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy can contain a maximum of 20 capacity providers.\n To remove this property from your service resource, specify an empty ``CapacityProviderStrategyItem`` array.", // "items": { // "additionalProperties": false, // "description": "The details of a capacity provider strategy. A capacity provider strategy can be set when using the ``RunTask`` or ``CreateService`` APIs or as the default capacity provider strategy for a cluster with the ``CreateCluster`` API.\n Only capacity providers that are already associated with a cluster and have an ``ACTIVE`` or ``UPDATING`` status can be used in a capacity provider strategy. The ``PutClusterCapacityProviders`` API is used to associate a capacity provider with a cluster.\n If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New Auto Scaling group capacity providers can be created with the ``CreateCapacityProvider`` API operation.\n To use an FARGATElong capacity provider, specify either the ``FARGATE`` or ``FARGATE_SPOT`` capacity providers. The FARGATElong capacity providers are available to all accounts and only need to be associated with a cluster to be used in a capacity provider strategy.", @@ -119,7 +119,7 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy may contain a maximum of 6 capacity providers.\n To remove this property from your service resource, specify an empty ``CapacityProviderStrategyItem`` array.", + Description: "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy can contain a maximum of 20 capacity providers.\n To remove this property from your service resource, specify an empty ``CapacityProviderStrategyItem`` array.", Optional: true, Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ @@ -555,7 +555,7 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { // "description": "The VPC subnets and security groups that are associated with a task.\n All specified subnets and security groups must be from the same VPC.", // "properties": { // "AssignPublicIp": { - // "description": "Whether the task's elastic network interface receives a public IP address. The default value is ``ENABLED``.", + // "description": "Whether the task's elastic network interface receives a public IP address. \n Consider the following when you set this value:\n + When you use ``create-service`` or ``update-service``, the default is ``DISABLED``. \n + When the service ``deploymentController`` is ``ECS``, the value must be ``DISABLED``. \n + When you use ``create-service`` or ``update-service``, the default is ``ENABLED``.", // "enum": [ // "DISABLED", // "ENABLED" @@ -589,7 +589,7 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: AssignPublicIp "assign_public_ip": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Whether the task's elastic network interface receives a public IP address. The default value is ``ENABLED``.", + Description: "Whether the task's elastic network interface receives a public IP address. \n Consider the following when you set this value:\n + When you use ``create-service`` or ``update-service``, the default is ``DISABLED``. \n + When the service ``deploymentController`` is ``ECS``, the value must be ``DISABLED``. \n + When you use ``create-service`` or ``update-service``, the default is ``ENABLED``.", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -1388,7 +1388,7 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { // "description": "The metadata that you apply to the service to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. When a service is deleted, the tags are deleted as well.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.", // "items": { // "additionalProperties": false, - // "description": "The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.", + // "description": "The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.\n \n In order to tag a service that has the following ARN format, you need to migrate the service to the long ARN. You must use the API, CLI or console to migrate the service ARN. For more information, see [Migrate an short service ARN to a long ARN](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-arn-migration.html) in the *Developer Guide*.\n ``arn:aws:ecs:region:aws_account_id:service/service-name`` \n After the migration is complete, the following are true:\n + The service ARN is: ``arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name`` \n + You can use CFN to tag the service as you would a service with a long ARN format.\n + When the ``PhysicalResourceId`` in the CFN stack represents a service, the value does not change and will be the short service ARN.", // "properties": { // "Key": { // "description": "One part of a key-value pair that make up a tag. A ``key`` is a general label that acts like a category for more specific tag values.", @@ -1511,7 +1511,7 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { // "description": "The tags applied to this Amazon EBS volume. ``AmazonECSCreated`` and ``AmazonECSManaged`` are reserved tags that can't be used.", // "items": { // "additionalProperties": false, - // "description": "The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.", + // "description": "The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.\n \n In order to tag a service that has the following ARN format, you need to migrate the service to the long ARN. You must use the API, CLI or console to migrate the service ARN. For more information, see [Migrate an short service ARN to a long ARN](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-arn-migration.html) in the *Developer Guide*.\n ``arn:aws:ecs:region:aws_account_id:service/service-name`` \n After the migration is complete, the following are true:\n + The service ARN is: ``arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name`` \n + You can use CFN to tag the service as you would a service with a long ARN format.\n + When the ``PhysicalResourceId`` in the CFN stack represents a service, the value does not change and will be the short service ARN.", // "properties": { // "Key": { // "description": "One part of a key-value pair that make up a tag. A ``key`` is a general label that acts like a category for more specific tag values.", diff --git a/internal/aws/ecs/service_singular_data_source_gen.go b/internal/aws/ecs/service_singular_data_source_gen.go index 6f57d3ace..c89da4b49 100644 --- a/internal/aws/ecs/service_singular_data_source_gen.go +++ b/internal/aws/ecs/service_singular_data_source_gen.go @@ -43,7 +43,7 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy may contain a maximum of 6 capacity providers.\n To remove this property from your service resource, specify an empty ``CapacityProviderStrategyItem`` array.", + // "description": "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy can contain a maximum of 20 capacity providers.\n To remove this property from your service resource, specify an empty ``CapacityProviderStrategyItem`` array.", // "items": { // "additionalProperties": false, // "description": "The details of a capacity provider strategy. A capacity provider strategy can be set when using the ``RunTask`` or ``CreateService`` APIs or as the default capacity provider strategy for a cluster with the ``CreateCluster`` API.\n Only capacity providers that are already associated with a cluster and have an ``ACTIVE`` or ``UPDATING`` status can be used in a capacity provider strategy. The ``PutClusterCapacityProviders`` API is used to associate a capacity provider with a cluster.\n If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New Auto Scaling group capacity providers can be created with the ``CreateCapacityProvider`` API operation.\n To use an FARGATElong capacity provider, specify either the ``FARGATE`` or ``FARGATE_SPOT`` capacity providers. The FARGATElong capacity providers are available to all accounts and only need to be associated with a cluster to be used in a capacity provider strategy.", @@ -85,7 +85,7 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy may contain a maximum of 6 capacity providers.\n To remove this property from your service resource, specify an empty ``CapacityProviderStrategyItem`` array.", + Description: "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy can contain a maximum of 20 capacity providers.\n To remove this property from your service resource, specify an empty ``CapacityProviderStrategyItem`` array.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Cluster @@ -390,7 +390,7 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "The VPC subnets and security groups that are associated with a task.\n All specified subnets and security groups must be from the same VPC.", // "properties": { // "AssignPublicIp": { - // "description": "Whether the task's elastic network interface receives a public IP address. The default value is ``ENABLED``.", + // "description": "Whether the task's elastic network interface receives a public IP address. \n Consider the following when you set this value:\n + When you use ``create-service`` or ``update-service``, the default is ``DISABLED``. \n + When the service ``deploymentController`` is ``ECS``, the value must be ``DISABLED``. \n + When you use ``create-service`` or ``update-service``, the default is ``ENABLED``.", // "enum": [ // "DISABLED", // "ENABLED" @@ -424,7 +424,7 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: AssignPublicIp "assign_public_ip": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Whether the task's elastic network interface receives a public IP address. The default value is ``ENABLED``.", + Description: "Whether the task's elastic network interface receives a public IP address. \n Consider the following when you set this value:\n + When you use ``create-service`` or ``update-service``, the default is ``DISABLED``. \n + When the service ``deploymentController`` is ``ECS``, the value must be ``DISABLED``. \n + When you use ``create-service`` or ``update-service``, the default is ``ENABLED``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: SecurityGroups @@ -983,7 +983,7 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "The metadata that you apply to the service to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. When a service is deleted, the tags are deleted as well.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.", // "items": { // "additionalProperties": false, - // "description": "The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.", + // "description": "The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.\n \n In order to tag a service that has the following ARN format, you need to migrate the service to the long ARN. You must use the API, CLI or console to migrate the service ARN. For more information, see [Migrate an short service ARN to a long ARN](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-arn-migration.html) in the *Developer Guide*.\n ``arn:aws:ecs:region:aws_account_id:service/service-name`` \n After the migration is complete, the following are true:\n + The service ARN is: ``arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name`` \n + You can use CFN to tag the service as you would a service with a long ARN format.\n + When the ``PhysicalResourceId`` in the CFN stack represents a service, the value does not change and will be the short service ARN.", // "properties": { // "Key": { // "description": "One part of a key-value pair that make up a tag. A ``key`` is a general label that acts like a category for more specific tag values.", @@ -1090,7 +1090,7 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "The tags applied to this Amazon EBS volume. ``AmazonECSCreated`` and ``AmazonECSManaged`` are reserved tags that can't be used.", // "items": { // "additionalProperties": false, - // "description": "The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.", + // "description": "The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.\n \n In order to tag a service that has the following ARN format, you need to migrate the service to the long ARN. You must use the API, CLI or console to migrate the service ARN. For more information, see [Migrate an short service ARN to a long ARN](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-arn-migration.html) in the *Developer Guide*.\n ``arn:aws:ecs:region:aws_account_id:service/service-name`` \n After the migration is complete, the following are true:\n + The service ARN is: ``arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name`` \n + You can use CFN to tag the service as you would a service with a long ARN format.\n + When the ``PhysicalResourceId`` in the CFN stack represents a service, the value does not change and will be the short service ARN.", // "properties": { // "Key": { // "description": "One part of a key-value pair that make up a tag. A ``key`` is a general label that acts like a category for more specific tag values.", diff --git a/internal/aws/ecs/task_definition_resource_gen.go b/internal/aws/ecs/task_definition_resource_gen.go index 4bf6ef795..06bb98a78 100644 --- a/internal/aws/ecs/task_definition_resource_gen.go +++ b/internal/aws/ecs/task_definition_resource_gen.go @@ -231,19 +231,19 @@ func taskDefinitionResource(ctx context.Context) (resource.Resource, error) { // "type": "array" // }, // "Interval": { - // "description": "The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds.", + // "description": "The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. This value applies only when you specify a ``command``.", // "type": "integer" // }, // "Retries": { - // "description": "The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3.", + // "description": "The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3. This value applies only when you specify a ``command``.", // "type": "integer" // }, // "StartPeriod": { - // "description": "The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off.\n If a health check succeeds within the ``startPeriod``, then the container is considered healthy and any subsequent failures count toward the maximum number of retries.", + // "description": "The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off. This value applies only when you specify a ``command``. \n If a health check succeeds within the ``startPeriod``, then the container is considered healthy and any subsequent failures count toward the maximum number of retries.", // "type": "integer" // }, // "Timeout": { - // "description": "The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5.", + // "description": "The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5. This value applies only when you specify a ``command``.", // "type": "integer" // } // }, @@ -979,7 +979,7 @@ func taskDefinitionResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Interval "interval": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds.", + Description: "The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. This value applies only when you specify a ``command``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ @@ -988,7 +988,7 @@ func taskDefinitionResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Retries "retries": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3.", + Description: "The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3. This value applies only when you specify a ``command``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ @@ -997,7 +997,7 @@ func taskDefinitionResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: StartPeriod "start_period": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off.\n If a health check succeeds within the ``startPeriod``, then the container is considered healthy and any subsequent failures count toward the maximum number of retries.", + Description: "The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off. This value applies only when you specify a ``command``. \n If a health check succeeds within the ``startPeriod``, then the container is considered healthy and any subsequent failures count toward the maximum number of retries.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ @@ -1006,7 +1006,7 @@ func taskDefinitionResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Timeout "timeout": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5.", + Description: "The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5. This value applies only when you specify a ``command``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ @@ -1790,11 +1790,11 @@ func taskDefinitionResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n If you use the EC2 launch type, this field is optional. Supported values are between ``128`` CPU units (``0.125`` vCPUs) and ``10240`` CPU units (``10`` vCPUs).\n The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments\n This option requires Linux platform ``1.4.0`` or later.\n + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments\n This option requires Linux platform ``1.4.0`` or later.", + // "description": "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n If you're using the EC2 launch type or the external launch type, this field is optional. Supported values are between ``128`` CPU units (``0.125`` vCPUs) and ``196608`` CPU units (``192`` vCPUs). The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments\n This option requires Linux platform ``1.4.0`` or later.\n + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments\n This option requires Linux platform ``1.4.0`` or later.", // "type": "string" // } "cpu": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n If you use the EC2 launch type, this field is optional. Supported values are between ``128`` CPU units (``0.125`` vCPUs) and ``10240`` CPU units (``10`` vCPUs).\n The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments\n This option requires Linux platform ``1.4.0`` or later.\n + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments\n This option requires Linux platform ``1.4.0`` or later.", + Description: "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n If you're using the EC2 launch type or the external launch type, this field is optional. Supported values are between ``128`` CPU units (``0.125`` vCPUs) and ``196608`` CPU units (``192`` vCPUs). The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments\n This option requires Linux platform ``1.4.0`` or later.\n + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments\n This option requires Linux platform ``1.4.0`` or later.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/ecs/task_definition_singular_data_source_gen.go b/internal/aws/ecs/task_definition_singular_data_source_gen.go index 134e836a2..529c9abf5 100644 --- a/internal/aws/ecs/task_definition_singular_data_source_gen.go +++ b/internal/aws/ecs/task_definition_singular_data_source_gen.go @@ -218,19 +218,19 @@ func taskDefinitionDataSource(ctx context.Context) (datasource.DataSource, error // "type": "array" // }, // "Interval": { - // "description": "The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds.", + // "description": "The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. This value applies only when you specify a ``command``.", // "type": "integer" // }, // "Retries": { - // "description": "The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3.", + // "description": "The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3. This value applies only when you specify a ``command``.", // "type": "integer" // }, // "StartPeriod": { - // "description": "The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off.\n If a health check succeeds within the ``startPeriod``, then the container is considered healthy and any subsequent failures count toward the maximum number of retries.", + // "description": "The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off. This value applies only when you specify a ``command``. \n If a health check succeeds within the ``startPeriod``, then the container is considered healthy and any subsequent failures count toward the maximum number of retries.", // "type": "integer" // }, // "Timeout": { - // "description": "The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5.", + // "description": "The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5. This value applies only when you specify a ``command``.", // "type": "integer" // } // }, @@ -856,22 +856,22 @@ func taskDefinitionDataSource(ctx context.Context) (datasource.DataSource, error }, /*END ATTRIBUTE*/ // Property: Interval "interval": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds.", + Description: "The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. This value applies only when you specify a ``command``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Retries "retries": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3.", + Description: "The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3. This value applies only when you specify a ``command``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: StartPeriod "start_period": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off.\n If a health check succeeds within the ``startPeriod``, then the container is considered healthy and any subsequent failures count toward the maximum number of retries.", + Description: "The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off. This value applies only when you specify a ``command``. \n If a health check succeeds within the ``startPeriod``, then the container is considered healthy and any subsequent failures count toward the maximum number of retries.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Timeout "timeout": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5.", + Description: "The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5. This value applies only when you specify a ``command``.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -1295,11 +1295,11 @@ func taskDefinitionDataSource(ctx context.Context) (datasource.DataSource, error // CloudFormation resource type schema: // // { - // "description": "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n If you use the EC2 launch type, this field is optional. Supported values are between ``128`` CPU units (``0.125`` vCPUs) and ``10240`` CPU units (``10`` vCPUs).\n The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments\n This option requires Linux platform ``1.4.0`` or later.\n + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments\n This option requires Linux platform ``1.4.0`` or later.", + // "description": "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n If you're using the EC2 launch type or the external launch type, this field is optional. Supported values are between ``128`` CPU units (``0.125`` vCPUs) and ``196608`` CPU units (``192`` vCPUs). The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments\n This option requires Linux platform ``1.4.0`` or later.\n + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments\n This option requires Linux platform ``1.4.0`` or later.", // "type": "string" // } "cpu": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n If you use the EC2 launch type, this field is optional. Supported values are between ``128`` CPU units (``0.125`` vCPUs) and ``10240`` CPU units (``10`` vCPUs).\n The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments\n This option requires Linux platform ``1.4.0`` or later.\n + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments\n This option requires Linux platform ``1.4.0`` or later.", + Description: "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n If you're using the EC2 launch type or the external launch type, this field is optional. Supported values are between ``128`` CPU units (``0.125`` vCPUs) and ``196608`` CPU units (``192`` vCPUs). The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments\n This option requires Linux platform ``1.4.0`` or later.\n + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments\n This option requires Linux platform ``1.4.0`` or later.", Computed: true, }, /*END ATTRIBUTE*/ // Property: EnableFaultInjection diff --git a/internal/aws/elasticloadbalancingv2/load_balancer_resource_gen.go b/internal/aws/elasticloadbalancingv2/load_balancer_resource_gen.go index e28ee95cc..305277a5d 100644 --- a/internal/aws/elasticloadbalancingv2/load_balancer_resource_gen.go +++ b/internal/aws/elasticloadbalancingv2/load_balancer_resource_gen.go @@ -78,11 +78,11 @@ func loadBalancerResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink.", + // "description": "Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. The default is ``on``.", // "type": "string" // } "enforce_security_group_inbound_rules_on_private_link_traffic": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink.", + Description: "Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. The default is ``on``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -104,6 +104,21 @@ func loadBalancerResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: Ipv4IpamPoolId + // CloudFormation resource type schema: + // + // { + // "description": "", + // "type": "string" + // } + "ipv_4_ipam_pool_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: LoadBalancerArn // CloudFormation resource type schema: // @@ -520,6 +535,7 @@ func loadBalancerResource(ctx context.Context) (resource.Resource, error) { "enforce_security_group_inbound_rules_on_private_link_traffic": "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic", "i_pv_6_address": "IPv6Address", "ip_address_type": "IpAddressType", + "ipv_4_ipam_pool_id": "Ipv4IpamPoolId", "key": "Key", "load_balancer_arn": "LoadBalancerArn", "load_balancer_attributes": "LoadBalancerAttributes", 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 8233f04e5..c3189ac6e 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": "Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink.", + // "description": "Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. The default is ``on``.", // "type": "string" // } "enforce_security_group_inbound_rules_on_private_link_traffic": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink.", + Description: "Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. The default is ``on``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: IpAddressType @@ -78,6 +78,17 @@ func loadBalancerDataSource(ctx context.Context) (datasource.DataSource, error) Description: "The IP address type. Internal load balancers must use ``ipv4``.\n [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses).\n Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors.\n [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses).", Computed: true, }, /*END ATTRIBUTE*/ + // Property: Ipv4IpamPoolId + // CloudFormation resource type schema: + // + // { + // "description": "", + // "type": "string" + // } + "ipv_4_ipam_pool_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: LoadBalancerArn // CloudFormation resource type schema: // @@ -391,6 +402,7 @@ func loadBalancerDataSource(ctx context.Context) (datasource.DataSource, error) "enforce_security_group_inbound_rules_on_private_link_traffic": "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic", "i_pv_6_address": "IPv6Address", "ip_address_type": "IpAddressType", + "ipv_4_ipam_pool_id": "Ipv4IpamPoolId", "key": "Key", "load_balancer_arn": "LoadBalancerArn", "load_balancer_attributes": "LoadBalancerAttributes", diff --git a/internal/aws/iot/software_package_version_resource_gen.go b/internal/aws/iot/software_package_version_resource_gen.go index 9b30459f6..6fd4a3ed4 100644 --- a/internal/aws/iot/software_package_version_resource_gen.go +++ b/internal/aws/iot/software_package_version_resource_gen.go @@ -14,6 +14,7 @@ import ( "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/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" @@ -32,6 +33,107 @@ func init() { // This Terraform resource corresponds to the CloudFormation AWS::IoT::SoftwarePackageVersion resource. func softwarePackageVersionResource(ctx context.Context) (resource.Resource, error) { attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Artifact + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The artifact location of the package version", + // "properties": { + // "S3Location": { + // "additionalProperties": false, + // "description": "The Amazon S3 location", + // "properties": { + // "Bucket": { + // "description": "The S3 bucket", + // "minLength": 1, + // "type": "string" + // }, + // "Key": { + // "description": "The S3 key", + // "minLength": 1, + // "type": "string" + // }, + // "Version": { + // "description": "The S3 version", + // "type": "string" + // } + // }, + // "required": [ + // "Bucket", + // "Key", + // "Version" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "S3Location" + // ], + // "type": "object" + // } + "artifact": 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: Bucket + "bucket": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The S3 bucket", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtLeast(1), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The S3 key", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtLeast(1), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Version + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The S3 version", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The Amazon S3 location", + Optional: true, + Computed: true, + Validators: []validator.Object{ /*START VALIDATORS*/ + fwvalidators.NotNullObject(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The artifact location of the package version", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Attributes // CloudFormation resource type schema: // @@ -119,6 +221,142 @@ func softwarePackageVersionResource(ctx context.Context) (resource.Resource, err stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: Recipe + // CloudFormation resource type schema: + // + // { + // "description": "The inline json job document associated with a software package version", + // "type": "string" + // } + "recipe": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The inline json job document associated with a software package version", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Sbom + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The sbom zip archive location of the package version", + // "properties": { + // "S3Location": { + // "additionalProperties": false, + // "description": "The Amazon S3 location", + // "properties": { + // "Bucket": { + // "description": "The S3 bucket", + // "minLength": 1, + // "type": "string" + // }, + // "Key": { + // "description": "The S3 key", + // "minLength": 1, + // "type": "string" + // }, + // "Version": { + // "description": "The S3 version", + // "type": "string" + // } + // }, + // "required": [ + // "Bucket", + // "Key", + // "Version" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "S3Location" + // ], + // "type": "object" + // } + "sbom": 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: Bucket + "bucket": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The S3 bucket", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtLeast(1), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The S3 key", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtLeast(1), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Version + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The S3 version", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The Amazon S3 location", + Optional: true, + Computed: true, + Validators: []validator.Object{ /*START VALIDATORS*/ + fwvalidators.NotNullObject(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The sbom zip archive location of the package version", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SbomValidationStatus + // CloudFormation resource type schema: + // + // { + // "description": "The validation status of the Sbom file", + // "enum": [ + // "IN_PROGRESS", + // "FAILED", + // "SUCCEEDED", + // "" + // ], + // "type": "string" + // } + "sbom_validation_status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The validation status of the Sbom file", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Status // CloudFormation resource type schema: // @@ -255,16 +493,23 @@ func softwarePackageVersionResource(ctx context.Context) (resource.Resource, err opts = opts.WithCloudFormationTypeName("AWS::IoT::SoftwarePackageVersion").WithTerraformTypeName("awscc_iot_software_package_version") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "attributes": "Attributes", - "description": "Description", - "error_reason": "ErrorReason", - "key": "Key", - "package_name": "PackageName", - "package_version_arn": "PackageVersionArn", - "status": "Status", - "tags": "Tags", - "value": "Value", - "version_name": "VersionName", + "artifact": "Artifact", + "attributes": "Attributes", + "bucket": "Bucket", + "description": "Description", + "error_reason": "ErrorReason", + "key": "Key", + "package_name": "PackageName", + "package_version_arn": "PackageVersionArn", + "recipe": "Recipe", + "s3_location": "S3Location", + "sbom": "Sbom", + "sbom_validation_status": "SbomValidationStatus", + "status": "Status", + "tags": "Tags", + "value": "Value", + "version": "Version", + "version_name": "VersionName", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/iot/software_package_version_singular_data_source_gen.go b/internal/aws/iot/software_package_version_singular_data_source_gen.go index cc67332b7..1ff91a8dd 100644 --- a/internal/aws/iot/software_package_version_singular_data_source_gen.go +++ b/internal/aws/iot/software_package_version_singular_data_source_gen.go @@ -23,6 +23,73 @@ func init() { // This Terraform data source corresponds to the CloudFormation AWS::IoT::SoftwarePackageVersion resource. func softwarePackageVersionDataSource(ctx context.Context) (datasource.DataSource, error) { attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Artifact + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The artifact location of the package version", + // "properties": { + // "S3Location": { + // "additionalProperties": false, + // "description": "The Amazon S3 location", + // "properties": { + // "Bucket": { + // "description": "The S3 bucket", + // "minLength": 1, + // "type": "string" + // }, + // "Key": { + // "description": "The S3 key", + // "minLength": 1, + // "type": "string" + // }, + // "Version": { + // "description": "The S3 version", + // "type": "string" + // } + // }, + // "required": [ + // "Bucket", + // "Key", + // "Version" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "S3Location" + // ], + // "type": "object" + // } + "artifact": 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: Bucket + "bucket": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The S3 bucket", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The S3 key", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Version + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The S3 version", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The Amazon S3 location", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The artifact location of the package version", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Attributes // CloudFormation resource type schema: // @@ -85,6 +152,101 @@ func softwarePackageVersionDataSource(ctx context.Context) (datasource.DataSourc "package_version_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: Recipe + // CloudFormation resource type schema: + // + // { + // "description": "The inline json job document associated with a software package version", + // "type": "string" + // } + "recipe": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The inline json job document associated with a software package version", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Sbom + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The sbom zip archive location of the package version", + // "properties": { + // "S3Location": { + // "additionalProperties": false, + // "description": "The Amazon S3 location", + // "properties": { + // "Bucket": { + // "description": "The S3 bucket", + // "minLength": 1, + // "type": "string" + // }, + // "Key": { + // "description": "The S3 key", + // "minLength": 1, + // "type": "string" + // }, + // "Version": { + // "description": "The S3 version", + // "type": "string" + // } + // }, + // "required": [ + // "Bucket", + // "Key", + // "Version" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "S3Location" + // ], + // "type": "object" + // } + "sbom": 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: Bucket + "bucket": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The S3 bucket", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The S3 key", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Version + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The S3 version", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The Amazon S3 location", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The sbom zip archive location of the package version", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SbomValidationStatus + // CloudFormation resource type schema: + // + // { + // "description": "The validation status of the Sbom file", + // "enum": [ + // "IN_PROGRESS", + // "FAILED", + // "SUCCEEDED", + // "" + // ], + // "type": "string" + // } + "sbom_validation_status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The validation status of the Sbom file", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Status // CloudFormation resource type schema: // @@ -180,16 +342,23 @@ func softwarePackageVersionDataSource(ctx context.Context) (datasource.DataSourc opts = opts.WithCloudFormationTypeName("AWS::IoT::SoftwarePackageVersion").WithTerraformTypeName("awscc_iot_software_package_version") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "attributes": "Attributes", - "description": "Description", - "error_reason": "ErrorReason", - "key": "Key", - "package_name": "PackageName", - "package_version_arn": "PackageVersionArn", - "status": "Status", - "tags": "Tags", - "value": "Value", - "version_name": "VersionName", + "artifact": "Artifact", + "attributes": "Attributes", + "bucket": "Bucket", + "description": "Description", + "error_reason": "ErrorReason", + "key": "Key", + "package_name": "PackageName", + "package_version_arn": "PackageVersionArn", + "recipe": "Recipe", + "s3_location": "S3Location", + "sbom": "Sbom", + "sbom_validation_status": "SbomValidationStatus", + "status": "Status", + "tags": "Tags", + "value": "Value", + "version": "Version", + "version_name": "VersionName", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/msk/replicator_resource_gen.go b/internal/aws/msk/replicator_resource_gen.go index a027db938..fe4f3aed8 100644 --- a/internal/aws/msk/replicator_resource_gen.go +++ b/internal/aws/msk/replicator_resource_gen.go @@ -42,7 +42,6 @@ func replicatorResource(ctx context.Context) (resource.Resource, error) { // } "current_version": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The current version of the MSK replicator.", - Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), diff --git a/internal/aws/omics/reference_store_resource_gen.go b/internal/aws/omics/reference_store_resource_gen.go index a6598a8bf..1836a0056 100644 --- a/internal/aws/omics/reference_store_resource_gen.go +++ b/internal/aws/omics/reference_store_resource_gen.go @@ -211,7 +211,6 @@ func referenceStoreResource(ctx context.Context) (resource.Resource, error) { mapplanmodifier.UseStateForUnknown(), mapplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ - // Tags is a write-only property. }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ @@ -246,9 +245,6 @@ func referenceStoreResource(ctx context.Context) (resource.Resource, error) { "type": "Type", }) - opts = opts.WithWriteOnlyPropertyPaths([]string{ - "/properties/Tags", - }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) opts = opts.WithUpdateTimeoutInMinutes(0) diff --git a/internal/aws/omics/sequence_store_resource_gen.go b/internal/aws/omics/sequence_store_resource_gen.go index 47a0d25da..eda22bddf 100644 --- a/internal/aws/omics/sequence_store_resource_gen.go +++ b/internal/aws/omics/sequence_store_resource_gen.go @@ -232,7 +232,6 @@ func sequenceStoreResource(ctx context.Context) (resource.Resource, error) { mapplanmodifier.UseStateForUnknown(), mapplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ - // Tags is a write-only property. }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ @@ -268,9 +267,6 @@ func sequenceStoreResource(ctx context.Context) (resource.Resource, error) { "type": "Type", }) - opts = opts.WithWriteOnlyPropertyPaths([]string{ - "/properties/Tags", - }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) opts = opts.WithUpdateTimeoutInMinutes(0) diff --git a/internal/aws/rds/db_cluster_resource_gen.go b/internal/aws/rds/db_cluster_resource_gen.go index 689a42d36..5b97e0f8b 100644 --- a/internal/aws/rds/db_cluster_resource_gen.go +++ b/internal/aws/rds/db_cluster_resource_gen.go @@ -360,11 +360,11 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The mode of Database Insights to enable for the DB cluster.\n If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465.\n Valid for Cluster Type: Aurora DB clusters only", + // "description": "The mode of Database Insights to enable for the DB cluster.\n If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", // "type": "string" // } "database_insights_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The mode of Database Insights to enable for the DB cluster.\n If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465.\n Valid for Cluster Type: Aurora DB clusters only", + Description: "The mode of Database Insights to enable for the DB cluster.\n If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ 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 bbb976cb4..1a54b7df5 100644 --- a/internal/aws/rds/db_cluster_singular_data_source_gen.go +++ b/internal/aws/rds/db_cluster_singular_data_source_gen.go @@ -247,11 +247,11 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The mode of Database Insights to enable for the DB cluster.\n If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465.\n Valid for Cluster Type: Aurora DB clusters only", + // "description": "The mode of Database Insights to enable for the DB cluster.\n If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", // "type": "string" // } "database_insights_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The mode of Database Insights to enable for the DB cluster.\n If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465.\n Valid for Cluster Type: Aurora DB clusters only", + Description: "The mode of Database Insights to enable for the DB cluster.\n If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", Computed: true, }, /*END ATTRIBUTE*/ // Property: DatabaseName diff --git a/internal/aws/rds/db_instance_resource_gen.go b/internal/aws/rds/db_instance_resource_gen.go index dc3faaf88..ce287bd72 100644 --- a/internal/aws/rds/db_instance_resource_gen.go +++ b/internal/aws/rds/db_instance_resource_gen.go @@ -510,11 +510,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 [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.", + // "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 you don't specify a DB subnet group, RDS uses the default DB subnet group if one exists. If a default DB subnet group does not exist, and you don't specify a ``DBSubnetGroupName``, the DB instance fails to launch. \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 [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.", + 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 you don't specify a DB subnet group, RDS uses the default DB subnet group if one exists. If a default DB subnet group does not exist, and you don't specify a ``DBSubnetGroupName``, the DB instance fails to launch. \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*/ 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 dbafbe038..bbfb4e132 100644 --- a/internal/aws/rds/db_instance_singular_data_source_gen.go +++ b/internal/aws/rds/db_instance_singular_data_source_gen.go @@ -360,11 +360,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 [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.", + // "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 you don't specify a DB subnet group, RDS uses the default DB subnet group if one exists. If a default DB subnet group does not exist, and you don't specify a ``DBSubnetGroupName``, the DB instance fails to launch. \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 [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.", + 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 you don't specify a DB subnet group, RDS uses the default DB subnet group if one exists. If a default DB subnet group does not exist, and you don't specify a ``DBSubnetGroupName``, the DB instance fails to launch. \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 diff --git a/internal/aws/rum/app_monitor_resource_gen.go b/internal/aws/rum/app_monitor_resource_gen.go index 72e932d1b..c71592afa 100644 --- a/internal/aws/rum/app_monitor_resource_gen.go +++ b/internal/aws/rum/app_monitor_resource_gen.go @@ -618,6 +618,63 @@ func appMonitorResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.RequiresReplace(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: ResourcePolicy + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "A structure that defines resource policy attached to your app monitor.", + // "properties": { + // "PolicyDocument": { + // "description": "The JSON to use as the resource policy. The document can be up to 4 KB in size. ", + // "type": "string" + // }, + // "PolicyRevisionId": { + // "description": "A string value that you can use to conditionally update your policy. You can provide the revision ID of your existing policy to make mutating requests against that policy. \n\n When you assign a policy revision ID, then later requests about that policy will be rejected with an InvalidPolicyRevisionIdException error if they don't provide the correct current revision ID.", + // "maxLength": 255, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "PolicyDocument" + // ], + // "type": "object" + // } + "resource_policy": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PolicyDocument + "policy_document": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The JSON to use as the resource policy. The document can be up to 4 KB in size. ", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PolicyRevisionId + "policy_revision_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A string value that you can use to conditionally update your policy. You can provide the revision ID of your existing policy to make mutating requests against that policy. \n\n When you assign a policy revision ID, then later requests about that policy will be rejected with an InvalidPolicyRevisionIdException error if they don't provide the correct current revision ID.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 255), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "A structure that defines resource policy attached to your app monitor.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // @@ -733,6 +790,9 @@ func appMonitorResource(ctx context.Context) (resource.Resource, error) { "metric_destinations": "MetricDestinations", "name": "Name", "namespace": "Namespace", + "policy_document": "PolicyDocument", + "policy_revision_id": "PolicyRevisionId", + "resource_policy": "ResourcePolicy", "session_sample_rate": "SessionSampleRate", "status": "Status", "tags": "Tags", diff --git a/internal/aws/rum/app_monitor_singular_data_source_gen.go b/internal/aws/rum/app_monitor_singular_data_source_gen.go index 13761acd2..27965d22c 100644 --- a/internal/aws/rum/app_monitor_singular_data_source_gen.go +++ b/internal/aws/rum/app_monitor_singular_data_source_gen.go @@ -411,6 +411,45 @@ func appMonitorDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "A name for the app monitor", Computed: true, }, /*END ATTRIBUTE*/ + // Property: ResourcePolicy + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "A structure that defines resource policy attached to your app monitor.", + // "properties": { + // "PolicyDocument": { + // "description": "The JSON to use as the resource policy. The document can be up to 4 KB in size. ", + // "type": "string" + // }, + // "PolicyRevisionId": { + // "description": "A string value that you can use to conditionally update your policy. You can provide the revision ID of your existing policy to make mutating requests against that policy. \n\n When you assign a policy revision ID, then later requests about that policy will be rejected with an InvalidPolicyRevisionIdException error if they don't provide the correct current revision ID.", + // "maxLength": 255, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "PolicyDocument" + // ], + // "type": "object" + // } + "resource_policy": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PolicyDocument + "policy_document": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The JSON to use as the resource policy. The document can be up to 4 KB in size. ", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PolicyRevisionId + "policy_revision_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A string value that you can use to conditionally update your policy. You can provide the revision ID of your existing policy to make mutating requests against that policy. \n\n When you assign a policy revision ID, then later requests about that policy will be rejected with an InvalidPolicyRevisionIdException error if they don't provide the correct current revision ID.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "A structure that defines resource policy attached to your app monitor.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // @@ -501,6 +540,9 @@ func appMonitorDataSource(ctx context.Context) (datasource.DataSource, error) { "metric_destinations": "MetricDestinations", "name": "Name", "namespace": "Namespace", + "policy_document": "PolicyDocument", + "policy_revision_id": "PolicyRevisionId", + "resource_policy": "ResourcePolicy", "session_sample_rate": "SessionSampleRate", "status": "Status", "tags": "Tags", diff --git a/internal/aws/sagemaker/inference_component_resource_gen.go b/internal/aws/sagemaker/inference_component_resource_gen.go index 88f741548..ec08876e3 100644 --- a/internal/aws/sagemaker/inference_component_resource_gen.go +++ b/internal/aws/sagemaker/inference_component_resource_gen.go @@ -49,6 +49,264 @@ func inferenceComponentResource(ctx context.Context) (resource.Resource, error) stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: DeploymentConfig + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The deployment config for the inference component", + // "properties": { + // "AutoRollbackConfiguration": { + // "additionalProperties": false, + // "properties": { + // "Alarms": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "AlarmName": { + // "maxLength": 255, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // } + // }, + // "required": [ + // "AlarmName" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "Alarms" + // ], + // "type": "object" + // }, + // "RollingUpdatePolicy": { + // "additionalProperties": false, + // "description": "The rolling update policy for the inference component", + // "properties": { + // "MaximumBatchSize": { + // "additionalProperties": false, + // "description": "Capacity size configuration for the inference component", + // "properties": { + // "Type": { + // "enum": [ + // "COPY_COUNT", + // "CAPACITY_PERCENT" + // ], + // "type": "string" + // }, + // "Value": { + // "description": "The number of copies for the inference component", + // "type": "integer" + // } + // }, + // "required": [ + // "Type", + // "Value" + // ], + // "type": "object" + // }, + // "MaximumExecutionTimeoutInSeconds": { + // "maximum": 28800, + // "minimum": 600, + // "type": "integer" + // }, + // "RollbackMaximumBatchSize": { + // "additionalProperties": false, + // "description": "Capacity size configuration for the inference component", + // "properties": { + // "Type": { + // "enum": [ + // "COPY_COUNT", + // "CAPACITY_PERCENT" + // ], + // "type": "string" + // }, + // "Value": { + // "description": "The number of copies for the inference component", + // "type": "integer" + // } + // }, + // "required": [ + // "Type", + // "Value" + // ], + // "type": "object" + // }, + // "WaitIntervalInSeconds": { + // "maximum": 3600, + // "minimum": 0, + // "type": "integer" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // } + "deployment_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AutoRollbackConfiguration + "auto_rollback_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Alarms + "alarms": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AlarmName + "alarm_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 255), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 10), + fwvalidators.NotNullList(), + }, /*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: RollingUpdatePolicy + "rolling_update_policy": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaximumBatchSize + "maximum_batch_size": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "COPY_COUNT", + "CAPACITY_PERCENT", + ), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The number of copies for the inference component", + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + fwvalidators.NotNullInt64(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Capacity size configuration for the inference component", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MaximumExecutionTimeoutInSeconds + "maximum_execution_timeout_in_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(600, 28800), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RollbackMaximumBatchSize + "rollback_maximum_batch_size": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "COPY_COUNT", + "CAPACITY_PERCENT", + ), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The number of copies for the inference component", + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + fwvalidators.NotNullInt64(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Capacity size configuration for the inference component", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: WaitIntervalInSeconds + "wait_interval_in_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(0, 3600), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The rolling update policy for the inference component", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The deployment config for the inference component", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + // DeploymentConfig is a write-only property. + }, /*END ATTRIBUTE*/ // Property: EndpointArn // CloudFormation resource type schema: // @@ -654,7 +912,10 @@ func inferenceComponentResource(ctx context.Context) (resource.Resource, error) opts = opts.WithCloudFormationTypeName("AWS::SageMaker::InferenceComponent").WithTerraformTypeName("awscc_sagemaker_inference_component") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ + "alarm_name": "AlarmName", + "alarms": "Alarms", "artifact_url": "ArtifactUrl", + "auto_rollback_configuration": "AutoRollbackConfiguration", "base_inference_component_name": "BaseInferenceComponentName", "compute_resource_requirements": "ComputeResourceRequirements", "container": "Container", @@ -663,6 +924,7 @@ func inferenceComponentResource(ctx context.Context) (resource.Resource, error) "creation_time": "CreationTime", "current_copy_count": "CurrentCopyCount", "deployed_image": "DeployedImage", + "deployment_config": "DeploymentConfig", "desired_copy_count": "DesiredCopyCount", "endpoint_arn": "EndpointArn", "endpoint_name": "EndpointName", @@ -675,6 +937,8 @@ func inferenceComponentResource(ctx context.Context) (resource.Resource, error) "key": "Key", "last_modified_time": "LastModifiedTime", "max_memory_required_in_mb": "MaxMemoryRequiredInMb", + "maximum_batch_size": "MaximumBatchSize", + "maximum_execution_timeout_in_seconds": "MaximumExecutionTimeoutInSeconds", "min_memory_required_in_mb": "MinMemoryRequiredInMb", "model_data_download_timeout_in_seconds": "ModelDataDownloadTimeoutInSeconds", "model_name": "ModelName", @@ -682,18 +946,23 @@ func inferenceComponentResource(ctx context.Context) (resource.Resource, error) "number_of_cpu_cores_required": "NumberOfCpuCoresRequired", "resolution_time": "ResolutionTime", "resolved_image": "ResolvedImage", + "rollback_maximum_batch_size": "RollbackMaximumBatchSize", + "rolling_update_policy": "RollingUpdatePolicy", "runtime_config": "RuntimeConfig", "specification": "Specification", "specified_image": "SpecifiedImage", "startup_parameters": "StartupParameters", "tags": "Tags", + "type": "Type", "value": "Value", "variant_name": "VariantName", + "wait_interval_in_seconds": "WaitIntervalInSeconds", }) opts = opts.WithWriteOnlyPropertyPaths([]string{ "/properties/Specification/Container/Image", "/properties/RuntimeConfig/CopyCount", + "/properties/DeploymentConfig", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/sagemaker/inference_component_singular_data_source_gen.go b/internal/aws/sagemaker/inference_component_singular_data_source_gen.go index 380776b7a..2dd02c460 100644 --- a/internal/aws/sagemaker/inference_component_singular_data_source_gen.go +++ b/internal/aws/sagemaker/inference_component_singular_data_source_gen.go @@ -32,6 +32,177 @@ func inferenceComponentDataSource(ctx context.Context) (datasource.DataSource, e "creation_time": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: DeploymentConfig + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The deployment config for the inference component", + // "properties": { + // "AutoRollbackConfiguration": { + // "additionalProperties": false, + // "properties": { + // "Alarms": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "AlarmName": { + // "maxLength": 255, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // } + // }, + // "required": [ + // "AlarmName" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "Alarms" + // ], + // "type": "object" + // }, + // "RollingUpdatePolicy": { + // "additionalProperties": false, + // "description": "The rolling update policy for the inference component", + // "properties": { + // "MaximumBatchSize": { + // "additionalProperties": false, + // "description": "Capacity size configuration for the inference component", + // "properties": { + // "Type": { + // "enum": [ + // "COPY_COUNT", + // "CAPACITY_PERCENT" + // ], + // "type": "string" + // }, + // "Value": { + // "description": "The number of copies for the inference component", + // "type": "integer" + // } + // }, + // "required": [ + // "Type", + // "Value" + // ], + // "type": "object" + // }, + // "MaximumExecutionTimeoutInSeconds": { + // "maximum": 28800, + // "minimum": 600, + // "type": "integer" + // }, + // "RollbackMaximumBatchSize": { + // "additionalProperties": false, + // "description": "Capacity size configuration for the inference component", + // "properties": { + // "Type": { + // "enum": [ + // "COPY_COUNT", + // "CAPACITY_PERCENT" + // ], + // "type": "string" + // }, + // "Value": { + // "description": "The number of copies for the inference component", + // "type": "integer" + // } + // }, + // "required": [ + // "Type", + // "Value" + // ], + // "type": "object" + // }, + // "WaitIntervalInSeconds": { + // "maximum": 3600, + // "minimum": 0, + // "type": "integer" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // } + "deployment_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AutoRollbackConfiguration + "auto_rollback_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Alarms + "alarms": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AlarmName + "alarm_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RollingUpdatePolicy + "rolling_update_policy": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaximumBatchSize + "maximum_batch_size": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The number of copies for the inference component", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Capacity size configuration for the inference component", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MaximumExecutionTimeoutInSeconds + "maximum_execution_timeout_in_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RollbackMaximumBatchSize + "rollback_maximum_batch_size": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The number of copies for the inference component", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Capacity size configuration for the inference component", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: WaitIntervalInSeconds + "wait_interval_in_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The rolling update policy for the inference component", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The deployment config for the inference component", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: EndpointArn // CloudFormation resource type schema: // @@ -458,7 +629,10 @@ func inferenceComponentDataSource(ctx context.Context) (datasource.DataSource, e opts = opts.WithCloudFormationTypeName("AWS::SageMaker::InferenceComponent").WithTerraformTypeName("awscc_sagemaker_inference_component") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ + "alarm_name": "AlarmName", + "alarms": "Alarms", "artifact_url": "ArtifactUrl", + "auto_rollback_configuration": "AutoRollbackConfiguration", "base_inference_component_name": "BaseInferenceComponentName", "compute_resource_requirements": "ComputeResourceRequirements", "container": "Container", @@ -467,6 +641,7 @@ func inferenceComponentDataSource(ctx context.Context) (datasource.DataSource, e "creation_time": "CreationTime", "current_copy_count": "CurrentCopyCount", "deployed_image": "DeployedImage", + "deployment_config": "DeploymentConfig", "desired_copy_count": "DesiredCopyCount", "endpoint_arn": "EndpointArn", "endpoint_name": "EndpointName", @@ -479,6 +654,8 @@ func inferenceComponentDataSource(ctx context.Context) (datasource.DataSource, e "key": "Key", "last_modified_time": "LastModifiedTime", "max_memory_required_in_mb": "MaxMemoryRequiredInMb", + "maximum_batch_size": "MaximumBatchSize", + "maximum_execution_timeout_in_seconds": "MaximumExecutionTimeoutInSeconds", "min_memory_required_in_mb": "MinMemoryRequiredInMb", "model_data_download_timeout_in_seconds": "ModelDataDownloadTimeoutInSeconds", "model_name": "ModelName", @@ -486,13 +663,17 @@ func inferenceComponentDataSource(ctx context.Context) (datasource.DataSource, e "number_of_cpu_cores_required": "NumberOfCpuCoresRequired", "resolution_time": "ResolutionTime", "resolved_image": "ResolvedImage", + "rollback_maximum_batch_size": "RollbackMaximumBatchSize", + "rolling_update_policy": "RollingUpdatePolicy", "runtime_config": "RuntimeConfig", "specification": "Specification", "specified_image": "SpecifiedImage", "startup_parameters": "StartupParameters", "tags": "Tags", + "type": "Type", "value": "Value", "variant_name": "VariantName", + "wait_interval_in_seconds": "WaitIntervalInSeconds", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/xray/transaction_search_config_plural_data_source_gen.go b/internal/aws/xray/transaction_search_config_plural_data_source_gen.go new file mode 100644 index 000000000..1d14038a5 --- /dev/null +++ b/internal/aws/xray/transaction_search_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 xray + +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_xray_transaction_search_configs", transactionSearchConfigsDataSource) +} + +// transactionSearchConfigsDataSource returns the Terraform awscc_xray_transaction_search_configs data source. +// This Terraform data source corresponds to the CloudFormation AWS::XRay::TransactionSearchConfig resource. +func transactionSearchConfigsDataSource(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::XRay::TransactionSearchConfig", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::XRay::TransactionSearchConfig").WithTerraformTypeName("awscc_xray_transaction_search_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/xray/transaction_search_config_plural_data_source_gen_test.go b/internal/aws/xray/transaction_search_config_plural_data_source_gen_test.go new file mode 100644 index 000000000..ff2abab96 --- /dev/null +++ b/internal/aws/xray/transaction_search_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 xray_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSXRayTransactionSearchConfigsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::XRay::TransactionSearchConfig", "awscc_xray_transaction_search_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/xray/transaction_search_config_resource_gen.go b/internal/aws/xray/transaction_search_config_resource_gen.go new file mode 100644 index 000000000..a097298a4 --- /dev/null +++ b/internal/aws/xray/transaction_search_config_resource_gen.go @@ -0,0 +1,102 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package xray + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework-validators/float64validator" + "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/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_xray_transaction_search_config", transactionSearchConfigResource) +} + +// transactionSearchConfigResource returns the Terraform awscc_xray_transaction_search_config resource. +// This Terraform resource corresponds to the CloudFormation AWS::XRay::TransactionSearchConfig resource. +func transactionSearchConfigResource(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 the primary identifier for the resource", + // "pattern": "^\\d{12}$", + // "type": "string" + // } + "account_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "User account id, used as the primary identifier for the resource", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: IndexingPercentage + // CloudFormation resource type schema: + // + // { + // "description": "Determines the percentage of traces indexed from CloudWatch Logs to X-Ray", + // "maximum": 100, + // "minimum": 0, + // "type": "number" + // } + "indexing_percentage": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Determines the percentage of traces indexed from CloudWatch Logs to X-Ray", + Optional: true, + Computed: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.Between(0.000000, 100.000000), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.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: "This schema provides construct and validation rules for AWS-XRay TransactionSearchConfig resource parameters.", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::XRay::TransactionSearchConfig").WithTerraformTypeName("awscc_xray_transaction_search_config") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "account_id": "AccountId", + "indexing_percentage": "IndexingPercentage", + }) + + 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/xray/transaction_search_config_resource_gen_test.go b/internal/aws/xray/transaction_search_config_resource_gen_test.go new file mode 100644 index 000000000..2e0f438d0 --- /dev/null +++ b/internal/aws/xray/transaction_search_config_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 xray_test + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSXRayTransactionSearchConfig_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::XRay::TransactionSearchConfig", "awscc_xray_transaction_search_config", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + ), + }, + { + ResourceName: td.ResourceName, + ImportState: true, + ImportStateVerify: true, + }, + }) +} + +func TestAccAWSXRayTransactionSearchConfig_disappears(t *testing.T) { + td := acctest.NewTestData(t, "AWS::XRay::TransactionSearchConfig", "awscc_xray_transaction_search_config", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + td.DeleteResource(), + ), + ExpectNonEmptyPlan: true, + }, + }) +} diff --git a/internal/aws/xray/transaction_search_config_singular_data_source_gen.go b/internal/aws/xray/transaction_search_config_singular_data_source_gen.go new file mode 100644 index 000000000..99f58449a --- /dev/null +++ b/internal/aws/xray/transaction_search_config_singular_data_source_gen.go @@ -0,0 +1,78 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package xray + +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_xray_transaction_search_config", transactionSearchConfigDataSource) +} + +// transactionSearchConfigDataSource returns the Terraform awscc_xray_transaction_search_config data source. +// This Terraform data source corresponds to the CloudFormation AWS::XRay::TransactionSearchConfig resource. +func transactionSearchConfigDataSource(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 the primary identifier for the resource", + // "pattern": "^\\d{12}$", + // "type": "string" + // } + "account_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "User account id, used as the primary identifier for the resource", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: IndexingPercentage + // CloudFormation resource type schema: + // + // { + // "description": "Determines the percentage of traces indexed from CloudWatch Logs to X-Ray", + // "maximum": 100, + // "minimum": 0, + // "type": "number" + // } + "indexing_percentage": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Determines the percentage of traces indexed from CloudWatch Logs to X-Ray", + 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::XRay::TransactionSearchConfig", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::XRay::TransactionSearchConfig").WithTerraformTypeName("awscc_xray_transaction_search_config") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "account_id": "AccountId", + "indexing_percentage": "IndexingPercentage", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/xray/transaction_search_config_singular_data_source_gen_test.go b/internal/aws/xray/transaction_search_config_singular_data_source_gen_test.go new file mode 100644 index 000000000..bc98cf87c --- /dev/null +++ b/internal/aws/xray/transaction_search_config_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 xray_test + +import ( + "fmt" + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSXRayTransactionSearchConfigDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::XRay::TransactionSearchConfig", "awscc_xray_transaction_search_config", "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 TestAccAWSXRayTransactionSearchConfigDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::XRay::TransactionSearchConfig", "awscc_xray_transaction_search_config", "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 009a84304..ca6335120 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" } -# 1133 CloudFormation resource types schemas are available for use with the Cloud Control API. +# 1149 CloudFormation resource types schemas are available for use with the Cloud Control API. resource_schema "aws_acmpca_certificate" { cloudformation_type_name = "AWS::ACMPCA::Certificate" @@ -461,6 +461,10 @@ resource_schema "aws_applicationsignals_service_level_objective" { cloudformation_type_name = "AWS::ApplicationSignals::ServiceLevelObjective" } +resource_schema "aws_applicationsignals_discovery" { + cloudformation_type_name = "AWS::ApplicationSignals::Discovery" +} + resource_schema "aws_athena_capacity_reservation" { cloudformation_type_name = "AWS::Athena::CapacityReservation" } @@ -5193,3 +5197,7 @@ resource_schema "aws_xray_resource_policy" { resource_schema "aws_xray_sampling_rule" { cloudformation_type_name = "AWS::XRay::SamplingRule" } + +resource_schema "aws_xray_transaction_search_config" { + cloudformation_type_name = "AWS::XRay::TransactionSearchConfig" +} \ No newline at end of file diff --git a/internal/provider/generators/allschemas/available_schemas.2025-03-12.hcl b/internal/provider/generators/allschemas/available_schemas.2025-03-12.hcl new file mode 100644 index 000000000..a66f99b10 --- /dev/null +++ b/internal/provider/generators/allschemas/available_schemas.2025-03-12.hcl @@ -0,0 +1,4887 @@ +# 1149 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_amazonmq_configuration" { + cloudformation_type_name = "AWS::AmazonMQ::Configuration" +} + +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_base_path_mapping_v2" { + cloudformation_type_name = "AWS::ApiGateway::BasePathMappingV2" + 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_domain_name_access_association" { + cloudformation_type_name = "AWS::ApiGateway::DomainNameAccessAssociation" +} + +resource_schema "aws_apigateway_domain_name_v2" { + cloudformation_type_name = "AWS::ApiGateway::DomainNameV2" +} + +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" { + cloudformation_type_name = "AWS::ApiGatewayV2::Integration" + suppress_plural_data_source_generation = true +} + +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_deployment" { + cloudformation_type_name = "AWS::AppConfig::Deployment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appconfig_deployment_strategy" { + cloudformation_type_name = "AWS::AppConfig::DeploymentStrategy" +} + +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_api" { + cloudformation_type_name = "AWS::AppSync::Api" +} + +resource_schema "aws_appsync_channel_namespace" { + cloudformation_type_name = "AWS::AppSync::ChannelNamespace" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_data_source" { + cloudformation_type_name = "AWS::AppSync::DataSource" + suppress_plural_data_source_generation = true +} + +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_graph_ql_api" { + cloudformation_type_name = "AWS::AppSync::GraphQLApi" +} + +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_discovery" { + cloudformation_type_name = "AWS::ApplicationSignals::Discovery" +} + +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_logically_air_gapped_backup_vault" { + cloudformation_type_name = "AWS::Backup::LogicallyAirGappedBackupVault" +} + +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_consumable_resource" { + cloudformation_type_name = "AWS::Batch::ConsumableResource" +} + +resource_schema "aws_batch_job_definition" { + cloudformation_type_name = "AWS::Batch::JobDefinition" +} + +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_application_inference_profile" { + cloudformation_type_name = "AWS::Bedrock::ApplicationInferenceProfile" +} + +resource_schema "aws_bedrock_blueprint" { + cloudformation_type_name = "AWS::Bedrock::Blueprint" +} + +resource_schema "aws_bedrock_data_automation_project" { + cloudformation_type_name = "AWS::Bedrock::DataAutomationProject" +} + +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_cassandra_type" { + cloudformation_type_name = "AWS::Cassandra::Type" +} + +resource_schema "aws_certificatemanager_account" { + cloudformation_type_name = "AWS::CertificateManager::Account" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_chatbot_custom_action" { + cloudformation_type_name = "AWS::Chatbot::CustomAction" +} + +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_guard_hook" { + cloudformation_type_name = "AWS::CloudFormation::GuardHook" +} + +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_lambda_hook" { + cloudformation_type_name = "AWS::CloudFormation::LambdaHook" +} + +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_anycast_ip_list" { + cloudformation_type_name = "AWS::CloudFront::AnycastIpList" +} + +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_cloudfront_vpc_origin" { + cloudformation_type_name = "AWS::CloudFront::VpcOrigin" +} + +resource_schema "aws_cloudtrail_channel" { + cloudformation_type_name = "AWS::CloudTrail::Channel" +} + +resource_schema "aws_cloudtrail_dashboard" { + cloudformation_type_name = "AWS::CloudTrail::Dashboard" +} + +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_managed_login_branding" { + cloudformation_type_name = "AWS::Cognito::ManagedLoginBranding" + 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_domain" { + cloudformation_type_name = "AWS::Cognito::UserPoolDomain" + 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_identity_provider" { + cloudformation_type_name = "AWS::Cognito::UserPoolIdentityProvider" + 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_agent_status" { + cloudformation_type_name = "AWS::Connect::AgentStatus" + suppress_plural_data_source_generation = true +} + +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_contact_flow_version" { + cloudformation_type_name = "AWS::Connect::ContactFlowVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_email_address" { + cloudformation_type_name = "AWS::Connect::EmailAddress" + 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_user_hierarchy_structure" { + cloudformation_type_name = "AWS::Connect::UserHierarchyStructure" + 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_connectcampaignsv2_campaign" { + cloudformation_type_name = "AWS::ConnectCampaignsV2::Campaign" + suppress_plural_data_source_generation = true +} + +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_event_trigger" { + cloudformation_type_name = "AWS::CustomerProfiles::EventTrigger" + 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_customerprofiles_segment_definition" { + cloudformation_type_name = "AWS::CustomerProfiles::SegmentDefinition" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_dms_data_migration" { + cloudformation_type_name = "AWS::DMS::DataMigration" +} + +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_actions" { + cloudformation_type_name = "AWS::DataZone::EnvironmentActions" + 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_limit" { + cloudformation_type_name = "AWS::Deadline::Limit" + suppress_plural_data_source_generation = true +} + +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_queue_limit_association" { + cloudformation_type_name = "AWS::Deadline::QueueLimitAssociation" + 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_security_group_vpc_association" { + cloudformation_type_name = "AWS::EC2::SecurityGroupVpcAssociation" +} + +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_block_public_access_exclusion" { + cloudformation_type_name = "AWS::EC2::VPCBlockPublicAccessExclusion" +} + +resource_schema "aws_ec2_vpc_block_public_access_options" { + cloudformation_type_name = "AWS::EC2::VPCBlockPublicAccessOptions" + suppress_plural_data_source_generation = true +} + +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_fleet" { + cloudformation_type_name = "AWS::GameLift::ContainerFleet" +} + +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_crawler" { + cloudformation_type_name = "AWS::Glue::Crawler" +} + +resource_schema "aws_glue_database" { + cloudformation_type_name = "AWS::Glue::Database" +} + +resource_schema "aws_glue_job" { + cloudformation_type_name = "AWS::Glue::Job" +} + +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_glue_usage_profile" { + cloudformation_type_name = "AWS::Glue::UsageProfile" +} + +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_publishing_destination" { + cloudformation_type_name = "AWS::GuardDuty::PublishingDestination" +} + +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_ingest_configuration" { + cloudformation_type_name = "AWS::IVS::IngestConfiguration" +} + +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_public_key" { + cloudformation_type_name = "AWS::IVS::PublicKey" +} + +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_invoicing_invoice_unit" { + cloudformation_type_name = "AWS::Invoicing::InvoiceUnit" +} + +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_command" { + cloudformation_type_name = "AWS::IoT::Command" +} + +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" + suppress_plural_data_source_generation = true +} + +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_state_template" { + cloudformation_type_name = "AWS::IoTFleetWise::StateTemplate" +} + +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_resource_policy" { + cloudformation_type_name = "AWS::Kinesis::ResourcePolicy" + suppress_plural_data_source_generation = true +} + +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" +} + +resource_schema "aws_kinesisvideo_stream" { + cloudformation_type_name = "AWS::KinesisVideo::Stream" +} + +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_integration" { + cloudformation_type_name = "AWS::Logs::Integration" +} + +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_logs_transformer" { + cloudformation_type_name = "AWS::Logs::Transformer" +} + +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_deployment" { + cloudformation_type_name = "AWS::M2::Deployment" + suppress_plural_data_source_generation = true +} + +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_channel_placement_group" { + cloudformation_type_name = "AWS::MediaLive::ChannelPlacementGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_medialive_cloudwatch_alarm_template" { + cloudformation_type_name = "AWS::MediaLive::CloudWatchAlarmTemplate" +} + +resource_schema "aws_medialive_cloudwatch_alarm_template_group" { + cloudformation_type_name = "AWS::MediaLive::CloudWatchAlarmTemplateGroup" +} + +resource_schema "aws_medialive_cluster" { + cloudformation_type_name = "AWS::MediaLive::Cluster" +} + +resource_schema "aws_medialive_event_bridge_rule_template" { + cloudformation_type_name = "AWS::MediaLive::EventBridgeRuleTemplate" +} + +resource_schema "aws_medialive_event_bridge_rule_template_group" { + cloudformation_type_name = "AWS::MediaLive::EventBridgeRuleTemplateGroup" +} + +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_medialive_network" { + cloudformation_type_name = "AWS::MediaLive::Network" +} + +resource_schema "aws_medialive_sdi_source" { + cloudformation_type_name = "AWS::MediaLive::SdiSource" +} + +resource_schema "aws_medialive_signal_map" { + cloudformation_type_name = "AWS::MediaLive::SignalMap" +} + +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_multi_region_cluster" { + cloudformation_type_name = "AWS::MemoryDB::MultiRegionCluster" +} + +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_direct_connect_gateway_attachment" { + cloudformation_type_name = "AWS::NetworkManager::DirectConnectGatewayAttachment" +} + +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_notifications_channel_association" { + cloudformation_type_name = "AWS::Notifications::ChannelAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_notifications_event_rule" { + cloudformation_type_name = "AWS::Notifications::EventRule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_notifications_managed_notification_account_contact_association" { + cloudformation_type_name = "AWS::Notifications::ManagedNotificationAccountContactAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_notifications_managed_notification_additional_channel_association" { + cloudformation_type_name = "AWS::Notifications::ManagedNotificationAdditionalChannelAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_notifications_notification_configuration" { + cloudformation_type_name = "AWS::Notifications::NotificationConfiguration" +} + +resource_schema "aws_notifications_notification_hub" { + cloudformation_type_name = "AWS::Notifications::NotificationHub" +} + +resource_schema "aws_notificationscontacts_email_contact" { + cloudformation_type_name = "AWS::NotificationsContacts::EmailContact" +} + +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_index" { + cloudformation_type_name = "AWS::OpenSearchServerless::Index" + suppress_plural_data_source_generation = true +} + +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_application" { + cloudformation_type_name = "AWS::OpenSearchService::Application" +} + +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_pcaconnectorscep_challenge" { + cloudformation_type_name = "AWS::PCAConnectorSCEP::Challenge" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorscep_connector" { + cloudformation_type_name = "AWS::PCAConnectorSCEP::Connector" +} + +resource_schema "aws_pcs_cluster" { + cloudformation_type_name = "AWS::PCS::Cluster" +} + +resource_schema "aws_pcs_compute_node_group" { + cloudformation_type_name = "AWS::PCS::ComputeNodeGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcs_queue" { + cloudformation_type_name = "AWS::PCS::Queue" + 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_accessor" { + cloudformation_type_name = "AWS::QBusiness::DataAccessor" + suppress_plural_data_source_generation = true +} + +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_permission" { + cloudformation_type_name = "AWS::QBusiness::Permission" + 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" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_analysis" { + cloudformation_type_name = "AWS::QuickSight::Analysis" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_custom_permissions" { + cloudformation_type_name = "AWS::QuickSight::CustomPermissions" +} + +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_folder" { + cloudformation_type_name = "AWS::QuickSight::Folder" +} + +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_ram_resource_share" { + cloudformation_type_name = "AWS::RAM::ResourceShare" +} + +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_shard_group" { + cloudformation_type_name = "AWS::RDS::DBShardGroup" +} + +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_rbin_rule" { + cloudformation_type_name = "AWS::Rbin::Rule" + suppress_plural_data_source_generation = true +} + +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_integration" { + cloudformation_type_name = "AWS::Redshift::Integration" +} + +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_resourcegroups_tag_sync_task" { + cloudformation_type_name = "AWS::ResourceGroups::TagSyncTask" +} + +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_s3tables_table_bucket" { + cloudformation_type_name = "AWS::S3Tables::TableBucket" +} + +resource_schema "aws_s3tables_table_bucket_policy" { + cloudformation_type_name = "AWS::S3Tables::TableBucketPolicy" +} + +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_subscription" { + cloudformation_type_name = "AWS::SNS::Subscription" +} + +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_ssmquicksetup_configuration_manager" { + cloudformation_type_name = "AWS::SSMQuickSetup::ConfigurationManager" +} + +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_cluster" { + cloudformation_type_name = "AWS::SageMaker::Cluster" +} + +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_endpoint" { + cloudformation_type_name = "AWS::SageMaker::Endpoint" +} + +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_partner_app" { + cloudformation_type_name = "AWS::SageMaker::PartnerApp" +} + +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_rotation_schedule" { + cloudformation_type_name = "AWS::SecretsManager::RotationSchedule" +} + +resource_schema "aws_secretsmanager_secret" { + cloudformation_type_name = "AWS::SecretsManager::Secret" +} + +resource_schema "aws_secretsmanager_secret_target_attachment" { + cloudformation_type_name = "AWS::SecretsManager::SecretTargetAttachment" +} + +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_server" { + cloudformation_type_name = "AWS::Transfer::Server" +} + +resource_schema "aws_transfer_user" { + cloudformation_type_name = "AWS::Transfer::User" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_transfer_web_app" { + cloudformation_type_name = "AWS::Transfer::WebApp" +} + +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_configuration" { + cloudformation_type_name = "AWS::VpcLattice::ResourceConfiguration" +} + +resource_schema "aws_vpclattice_resource_gateway" { + cloudformation_type_name = "AWS::VpcLattice::ResourceGateway" +} + +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_resource_association" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetworkResourceAssociation" +} + +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_ai_agent" { + cloudformation_type_name = "AWS::Wisdom::AIAgent" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_ai_agent_version" { + cloudformation_type_name = "AWS::Wisdom::AIAgentVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_ai_guardrail" { + cloudformation_type_name = "AWS::Wisdom::AIGuardrail" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_ai_guardrail_version" { + cloudformation_type_name = "AWS::Wisdom::AIGuardrailVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_ai_prompt" { + cloudformation_type_name = "AWS::Wisdom::AIPrompt" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_ai_prompt_version" { + cloudformation_type_name = "AWS::Wisdom::AIPromptVersion" + 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_wisdom_message_template" { + cloudformation_type_name = "AWS::Wisdom::MessageTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_message_template_version" { + cloudformation_type_name = "AWS::Wisdom::MessageTemplateVersion" + suppress_plural_data_source_generation = true +} + +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_data_protection_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::DataProtectionSettings" +} + +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" +} + +resource_schema "aws_xray_transaction_search_config" { + cloudformation_type_name = "AWS::XRay::TransactionSearchConfig" +} diff --git a/internal/provider/import_examples_gen.json b/internal/provider/import_examples_gen.json index 032200d59..e31999242 100644 --- a/internal/provider/import_examples_gen.json +++ b/internal/provider/import_examples_gen.json @@ -424,6 +424,11 @@ "identifier": ["Arn"], "path": "./examples/resources/awscc_applicationsignals_service_level_objective/import.sh" }, + { + "resource": "awscc_applicationsignals_discovery", + "identifier": ["AccountId"], + "path": "./examples/resources/awscc_applicationsignals_discovery/import.sh" + }, { "resource": "awscc_athena_capacity_reservation", "identifier": ["Arn"], @@ -5598,5 +5603,10 @@ "resource": "awscc_xray_sampling_rule", "identifier": ["RuleARN"], "path": "./examples/resources/awscc_xray_sampling_rule/import.sh" + }, + { + "resource": "awscc_xray_transaction_search_config", + "identifier": ["AccountId"], + "path": "./examples/resources/awscc_xray_transaction_search_config/import.sh" } ] diff --git a/internal/provider/plural_data_sources.go b/internal/provider/plural_data_sources.go index a37a80272..fa7925818 100644 --- a/internal/provider/plural_data_sources.go +++ b/internal/provider/plural_data_sources.go @@ -48,6 +48,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_applicationautoscaling_scalable_targets -cftype AWS::ApplicationAutoScaling::ScalableTarget -package applicationautoscaling ../aws/applicationautoscaling/scalable_target_plural_data_source_gen.go ../aws/applicationautoscaling/scalable_target_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_applicationinsights_applications -cftype AWS::ApplicationInsights::Application -package applicationinsights ../aws/applicationinsights/application_plural_data_source_gen.go ../aws/applicationinsights/application_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_applicationsignals_service_level_objectives -cftype AWS::ApplicationSignals::ServiceLevelObjective -package applicationsignals ../aws/applicationsignals/service_level_objective_plural_data_source_gen.go ../aws/applicationsignals/service_level_objective_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_applicationsignals_discoveries -cftype AWS::ApplicationSignals::Discovery -package applicationsignals ../aws/applicationsignals/discovery_plural_data_source_gen.go ../aws/applicationsignals/discovery_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_athena_capacity_reservations -cftype AWS::Athena::CapacityReservation -package athena ../aws/athena/capacity_reservation_plural_data_source_gen.go ../aws/athena/capacity_reservation_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_athena_data_catalogs -cftype AWS::Athena::DataCatalog -package athena ../aws/athena/data_catalog_plural_data_source_gen.go ../aws/athena/data_catalog_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_athena_named_queries -cftype AWS::Athena::NamedQuery -package athena ../aws/athena/named_query_plural_data_source_gen.go ../aws/athena/named_query_plural_data_source_gen_test.go @@ -849,6 +850,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_xray_groups -cftype AWS::XRay::Group -package xray ../aws/xray/group_plural_data_source_gen.go ../aws/xray/group_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_xray_resource_policies -cftype AWS::XRay::ResourcePolicy -package xray ../aws/xray/resource_policy_plural_data_source_gen.go ../aws/xray/resource_policy_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_xray_sampling_rules -cftype AWS::XRay::SamplingRule -package xray ../aws/xray/sampling_rule_plural_data_source_gen.go ../aws/xray/sampling_rule_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_xray_transaction_search_configs -cftype AWS::XRay::TransactionSearchConfig -package xray ../aws/xray/transaction_search_config_plural_data_source_gen.go ../aws/xray/transaction_search_config_plural_data_source_gen_test.go package provider diff --git a/internal/provider/resources.go b/internal/provider/resources.go index bde93610e..c10f5403d 100644 --- a/internal/provider/resources.go +++ b/internal/provider/resources.go @@ -87,6 +87,7 @@ //go:generate go run generators/resource/main.go -resource awscc_applicationautoscaling_scaling_policy -cfschema ../service/cloudformation/schemas/AWS_ApplicationAutoScaling_ScalingPolicy.json -package applicationautoscaling -- ../aws/applicationautoscaling/scaling_policy_resource_gen.go ../aws/applicationautoscaling/scaling_policy_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_applicationinsights_application -cfschema ../service/cloudformation/schemas/AWS_ApplicationInsights_Application.json -package applicationinsights -- ../aws/applicationinsights/application_resource_gen.go ../aws/applicationinsights/application_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_applicationsignals_service_level_objective -cfschema ../service/cloudformation/schemas/AWS_ApplicationSignals_ServiceLevelObjective.json -package applicationsignals -- ../aws/applicationsignals/service_level_objective_resource_gen.go ../aws/applicationsignals/service_level_objective_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_applicationsignals_discovery -cfschema ../service/cloudformation/schemas/AWS_ApplicationSignals_Discovery.json -package applicationsignals -- ../aws/applicationsignals/discovery_resource_gen.go ../aws/applicationsignals/discovery_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_athena_capacity_reservation -cfschema ../service/cloudformation/schemas/AWS_Athena_CapacityReservation.json -package athena -- ../aws/athena/capacity_reservation_resource_gen.go ../aws/athena/capacity_reservation_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_athena_data_catalog -cfschema ../service/cloudformation/schemas/AWS_Athena_DataCatalog.json -package athena -- ../aws/athena/data_catalog_resource_gen.go ../aws/athena/data_catalog_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_athena_named_query -cfschema ../service/cloudformation/schemas/AWS_Athena_NamedQuery.json -package athena -- ../aws/athena/named_query_resource_gen.go ../aws/athena/named_query_resource_gen_test.go @@ -1122,6 +1123,7 @@ //go:generate go run generators/resource/main.go -resource awscc_xray_group -cfschema ../service/cloudformation/schemas/AWS_XRay_Group.json -package xray -- ../aws/xray/group_resource_gen.go ../aws/xray/group_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_xray_resource_policy -cfschema ../service/cloudformation/schemas/AWS_XRay_ResourcePolicy.json -package xray -- ../aws/xray/resource_policy_resource_gen.go ../aws/xray/resource_policy_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_xray_sampling_rule -cfschema ../service/cloudformation/schemas/AWS_XRay_SamplingRule.json -package xray -- ../aws/xray/sampling_rule_resource_gen.go ../aws/xray/sampling_rule_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_xray_transaction_search_config -cfschema ../service/cloudformation/schemas/AWS_XRay_TransactionSearchConfig.json -package xray -- ../aws/xray/transaction_search_config_resource_gen.go ../aws/xray/transaction_search_config_resource_gen_test.go package provider diff --git a/internal/provider/singular_data_sources.go b/internal/provider/singular_data_sources.go index 889cb4c8f..5ea79be02 100644 --- a/internal/provider/singular_data_sources.go +++ b/internal/provider/singular_data_sources.go @@ -87,6 +87,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_applicationautoscaling_scaling_policy -cfschema ../service/cloudformation/schemas/AWS_ApplicationAutoScaling_ScalingPolicy.json -package applicationautoscaling ../aws/applicationautoscaling/scaling_policy_singular_data_source_gen.go ../aws/applicationautoscaling/scaling_policy_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_applicationinsights_application -cfschema ../service/cloudformation/schemas/AWS_ApplicationInsights_Application.json -package applicationinsights ../aws/applicationinsights/application_singular_data_source_gen.go ../aws/applicationinsights/application_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_applicationsignals_service_level_objective -cfschema ../service/cloudformation/schemas/AWS_ApplicationSignals_ServiceLevelObjective.json -package applicationsignals ../aws/applicationsignals/service_level_objective_singular_data_source_gen.go ../aws/applicationsignals/service_level_objective_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_applicationsignals_discovery -cfschema ../service/cloudformation/schemas/AWS_ApplicationSignals_Discovery.json -package applicationsignals ../aws/applicationsignals/discovery_singular_data_source_gen.go ../aws/applicationsignals/discovery_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_athena_capacity_reservation -cfschema ../service/cloudformation/schemas/AWS_Athena_CapacityReservation.json -package athena ../aws/athena/capacity_reservation_singular_data_source_gen.go ../aws/athena/capacity_reservation_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_athena_data_catalog -cfschema ../service/cloudformation/schemas/AWS_Athena_DataCatalog.json -package athena ../aws/athena/data_catalog_singular_data_source_gen.go ../aws/athena/data_catalog_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_athena_named_query -cfschema ../service/cloudformation/schemas/AWS_Athena_NamedQuery.json -package athena ../aws/athena/named_query_singular_data_source_gen.go ../aws/athena/named_query_singular_data_source_gen_test.go @@ -1122,6 +1123,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_xray_group -cfschema ../service/cloudformation/schemas/AWS_XRay_Group.json -package xray ../aws/xray/group_singular_data_source_gen.go ../aws/xray/group_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_xray_resource_policy -cfschema ../service/cloudformation/schemas/AWS_XRay_ResourcePolicy.json -package xray ../aws/xray/resource_policy_singular_data_source_gen.go ../aws/xray/resource_policy_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_xray_sampling_rule -cfschema ../service/cloudformation/schemas/AWS_XRay_SamplingRule.json -package xray ../aws/xray/sampling_rule_singular_data_source_gen.go ../aws/xray/sampling_rule_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_xray_transaction_search_config -cfschema ../service/cloudformation/schemas/AWS_XRay_TransactionSearchConfig.json -package xray ../aws/xray/transaction_search_config_singular_data_source_gen.go ../aws/xray/transaction_search_config_singular_data_source_gen_test.go package provider diff --git a/internal/service/cloudformation/schemas/AWS_ApplicationSignals_Discovery.json b/internal/service/cloudformation/schemas/AWS_ApplicationSignals_Discovery.json new file mode 100644 index 000000000..81ae5af3c --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_ApplicationSignals_Discovery.json @@ -0,0 +1,59 @@ +{ + "typeName": "AWS::ApplicationSignals::Discovery", + "description": "Resource Type definition for AWS::ApplicationSignals::Discovery", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-applicationsignals", + "definitions": { + "AccountId": { + "description": "The identifier for the specified AWS account.", + "type": "string", + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$" + } + }, + "properties": { + "AccountId": { + "$ref": "#/definitions/AccountId" + } + }, + "additionalProperties": false, + "required": [], + "readOnlyProperties": [ + "/properties/AccountId" + ], + "primaryIdentifier": [ + "/properties/AccountId" + ], + "handlers": { + "create": { + "permissions": [ + "application-signals:StartDiscovery", + "application-signals:ListServices", + "iam:CreateServiceLinkedRole" + ] + }, + "read": { + "permissions": [ + "application-signals:ListServices" + ] + }, + "update": { + "permissions": [ + "application-signals:ListServices" + ] + }, + "delete": { + "permissions": [ + "application-signals:ListServices" + ] + }, + "list": { + "permissions": [ + "application-signals:ListServices" + ] + } + }, + "tagging": { + "taggable": false + } +} diff --git a/internal/service/cloudformation/schemas/AWS_Athena_CapacityReservation.json b/internal/service/cloudformation/schemas/AWS_Athena_CapacityReservation.json index 4269c7aac..9c97fe964 100644 --- a/internal/service/cloudformation/schemas/AWS_Athena_CapacityReservation.json +++ b/internal/service/cloudformation/schemas/AWS_Athena_CapacityReservation.json @@ -201,6 +201,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "athena:UntagResource", + "athena:TagResource", + "athena:ListTagsForResource" + ] } } diff --git a/internal/service/cloudformation/schemas/AWS_Athena_DataCatalog.json b/internal/service/cloudformation/schemas/AWS_Athena_DataCatalog.json index 0ea3a4fd4..7bbeb8173 100644 --- a/internal/service/cloudformation/schemas/AWS_Athena_DataCatalog.json +++ b/internal/service/cloudformation/schemas/AWS_Athena_DataCatalog.json @@ -60,13 +60,37 @@ "$ref": "#/definitions/Tags" }, "Type": { - "description": "The type of data catalog to create: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore. ", + "description": "The type of data catalog to create: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore. FEDERATED is a federated catalog for which Athena creates the connection and the Lambda function for you based on the parameters that you pass.", "type": "string", "enum": [ "LAMBDA", "GLUE", - "HIVE" + "HIVE", + "FEDERATED" ] + }, + "Status": { + "description": "The status of the creation or deletion of the data catalog. LAMBDA, GLUE, and HIVE data catalog types are created synchronously. Their status is either CREATE_COMPLETE or CREATE_FAILED. The FEDERATED data catalog type is created asynchronously.", + "type": "string", + "enum": [ + "CREATE_IN_PROGRESS", + "CREATE_COMPLETE", + "CREATE_FAILED", + "CREATE_FAILED_CLEANUP_IN_PROGRESS", + "CREATE_FAILED_CLEANUP_COMPLETE", + "CREATE_FAILED_CLEANUP_FAILED", + "DELETE_IN_PROGRESS", + "DELETE_COMPLETE", + "DELETE_FAILED" + ] + }, + "ConnectionType": { + "description": "The type of connection for a FEDERATED data catalog", + "type": "string" + }, + "Error": { + "description": "Text of the error that occurred during data catalog creation or deletion.", + "type": "string" } }, "required": [ @@ -77,7 +101,40 @@ "create": { "permissions": [ "athena:CreateDataCatalog", - "athena:TagResource" + "athena:GetDataCatalog", + "athena:TagResource", + "s3:ListBucket", + "glue:TagResource", + "glue:CreateConnection", + "glue:DeleteConnection", + "glue:UpdateConnection", + "serverlessrepo:CreateCloudFormationTemplate", + "serverlessrepo:GetCloudFormationTemplate", + "cloudformation:CreateStack", + "cloudformation:DeleteStack", + "cloudformation:DescribeStacks", + "cloudformation:CreateChangeSet", + "iam:AttachRolePolicy", + "iam:DetachRolePolicy", + "iam:DeleteRolePolicy", + "iam:PutRolePolicy", + "iam:CreateRole", + "iam:TagRole", + "iam:DeleteRole", + "iam:GetRole", + "iam:GetRolePolicy", + "iam:PassRole", + "lambda:DeleteFunction", + "lambda:CreateFunction", + "lambda:TagResource", + "lambda:GetFunction", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "secretsmanager:ListSecrets", + "glue:GetConnection", + "ecr:BatchGetImage", + "ecr:GetDownloadUrlForLayer" ] }, "read": { @@ -97,7 +154,17 @@ }, "delete": { "permissions": [ - "athena:DeleteDataCatalog" + "athena:DeleteDataCatalog", + "athena:GetDataCatalog", + "glue:GetConnection", + "glue:UpdateConnection", + "cloudformation:DeleteStack", + "cloudformation:DescribeStacks", + "lambda:DeleteFunction", + "iam:DeleteRole", + "iam:DeleteRolePolicy", + "iam:DetachRolePolicy", + "s3:ListBucket" ] }, "list": { diff --git a/internal/service/cloudformation/schemas/AWS_Batch_JobDefinition.json b/internal/service/cloudformation/schemas/AWS_Batch_JobDefinition.json index ea7b1f141..60008047f 100644 --- a/internal/service/cloudformation/schemas/AWS_Batch_JobDefinition.json +++ b/internal/service/cloudformation/schemas/AWS_Batch_JobDefinition.json @@ -1,260 +1,492 @@ { - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "permissions": [ - "Batch:TagResource", - "Batch:UntagResource" - ], - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": true - }, - "handlers": { - "read": { - "permissions": [ - "Batch:DescribeJobDefinitions" - ] - }, - "create": { - "permissions": [ - "Batch:RegisterJobDefinition", - "Batch:TagResource", - "Batch:DescribeJobDefinitions", - "Iam:PassRole" - ] - }, - "update": { - "permissions": [ - "Batch:DescribeJobDefinitions", - "Batch:RegisterJobDefinition", - "Batch:DeregisterJobDefinition", - "Batch:TagResource", - "Batch:UntagResource", - "Iam:PassRole" - ] - }, - "list": { - "permissions": [ - "Batch:DescribeJobDefinitions" - ] - }, - "delete": { - "permissions": [ - "Batch:DescribeJobDefinitions", - "Batch:DeregisterJobDefinition", - "Iam:PassRole" - ] - } - }, "typeName": "AWS::Batch::JobDefinition", "description": "Resource Type definition for AWS::Batch::JobDefinition", - "createOnlyProperties": [ - "/properties/JobDefinitionName" - ], - "additionalProperties": false, - "primaryIdentifier": [ - "/properties/JobDefinitionName" - ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "definitions": { - "JobTimeout": { - "additionalProperties": false, + "ContainerProperties": { "type": "object", + "additionalProperties": false, "properties": { - "AttemptDurationSeconds": { + "Command": { + "type": "array", + "uniqueItems": false, + "insertionOrder": true, + "items": { + "type": "string" + } + }, + "Environment": { + "type": "array", + "uniqueItems": false, + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Environment" + } + }, + "Image": { + "type": "string" + }, + "JobRoleArn": { + "type": "string" + }, + "Memory": { + "type": "integer" + }, + "MountPoints": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MountPoint" + } + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "Ulimits": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Ulimit" + } + }, + "User": { + "type": "string" + }, + "Vcpus": { "type": "integer" + }, + "Volumes": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Volume" + } + }, + "ResourceRequirements": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ResourceRequirement" + } + }, + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "Secrets": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + } + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "FargatePlatformConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "PlatformVersion": { + "type": "string" + } + } + }, + "EphemeralStorage": { + "$ref": "#/definitions/EphemeralStorage" + }, + "RuntimePlatform": { + "$ref": "#/definitions/RuntimePlatform" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" } - } + }, + "required": [ + "Image" + ] }, - "EksContainerEnvironmentVariable": { - "additionalProperties": false, + "MultiNodeContainerProperties": { "type": "object", + "additionalProperties": false, "properties": { - "Value": { + "Command": { + "type": "array", + "uniqueItems": false, + "insertionOrder": true, + "items": { + "type": "string" + } + }, + "Environment": { + "type": "array", + "uniqueItems": false, + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Environment" + } + }, + "Image": { "type": "string" }, - "Name": { + "JobRoleArn": { "type": "string" + }, + "Memory": { + "type": "integer" + }, + "MountPoints": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MountPoint" + } + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "Ulimits": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Ulimit" + } + }, + "User": { + "type": "string" + }, + "Vcpus": { + "type": "integer" + }, + "Volumes": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Volume" + } + }, + "InstanceType": { + "type": "string" + }, + "ResourceRequirements": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ResourceRequirement" + } + }, + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "Secrets": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + } + }, + "EphemeralStorage": { + "$ref": "#/definitions/EphemeralStorage" + }, + "RuntimePlatform": { + "$ref": "#/definitions/RuntimePlatform" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" } }, "required": [ - "Name" + "Image" ] }, - "NodeRangeProperty": { + "EphemeralStorage": { + "type": "object", "additionalProperties": false, + "properties": { + "SizeInGiB": { + "type": "integer" + } + }, + "required": [ + "SizeInGiB" + ] + }, + "LinuxParameters": { "type": "object", + "additionalProperties": false, "properties": { - "Container": { - "$ref": "#/definitions/MultiNodeContainerProperties" + "Devices": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Device" + } }, - "TargetNodes": { - "type": "string" + "InitProcessEnabled": { + "type": "boolean" }, - "EcsProperties": { - "$ref": "#/definitions/MultiNodeEcsProperties" + "MaxSwap": { + "type": "integer" }, - "InstanceTypes": { + "Swappiness": { + "type": "integer" + }, + "SharedMemorySize": { + "type": "integer" + }, + "Tmpfs": { + "type": "array", "uniqueItems": false, "insertionOrder": false, - "type": "array", "items": { - "type": "string" + "$ref": "#/definitions/Tmpfs" } + } + } + }, + "LogConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" }, - "EksProperties": { - "$ref": "#/definitions/EksProperties" + "Options": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "": { + "type": "string" + } + } }, - "ConsumableResourceProperties": { - "$ref": "#/definitions/ConsumableResourceProperties" + "SecretOptions": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + } } }, "required": [ - "TargetNodes" + "LogDriver" ] }, - "EksEmptyDir": { + "RuntimePlatform": { + "type": "object", + "additionalProperties": false, + "properties": { + "OperatingSystemFamily": { + "type": "string" + }, + "CpuArchitecture": { + "type": "string" + } + } + }, + "NetworkConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "type": "string" + } + } + }, + "RepositoryCredentials": { + "type": "object", + "additionalProperties": false, + "properties": { + "CredentialsParameter": { + "type": "string" + } + }, + "required": [ + "CredentialsParameter" + ] + }, + "Environment": { + "type": "object", "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + } + }, + "MountPoint": { "type": "object", + "additionalProperties": false, "properties": { - "Medium": { + "ContainerPath": { "type": "string" }, - "SizeLimit": { + "ReadOnly": { + "type": "boolean" + }, + "SourceVolume": { "type": "string" } } }, - "LogConfiguration": { - "additionalProperties": false, + "Ulimit": { "type": "object", + "additionalProperties": false, "properties": { - "SecretOptions": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/Secret" - } - }, - "Options": { - "patternProperties": { - "": { - "type": "string" - } - }, - "additionalProperties": false, - "type": "object" + "HardLimit": { + "type": "integer" }, - "LogDriver": { + "Name": { "type": "string" + }, + "SoftLimit": { + "type": "integer" } }, "required": [ - "LogDriver" + "HardLimit", + "Name", + "SoftLimit" ] }, - "RuntimePlatform": { - "additionalProperties": false, + "Volume": { "type": "object", + "additionalProperties": false, "properties": { - "OperatingSystemFamily": { - "type": "string" + "Host": { + "$ref": "#/definitions/Host" }, - "CpuArchitecture": { + "EfsVolumeConfiguration": { + "$ref": "#/definitions/EFSVolumeConfiguration" + }, + "Name": { "type": "string" } } }, - "MultiNodeEcsTaskProperties": { + "Host": { + "type": "object", "additionalProperties": false, + "properties": { + "SourcePath": { + "type": "string" + } + } + }, + "EFSVolumeConfiguration": { "type": "object", + "additionalProperties": false, "properties": { - "ExecutionRoleArn": { + "FileSystemId": { "type": "string" }, - "TaskRoleArn": { + "RootDirectory": { "type": "string" }, - "IpcMode": { + "TransitEncryption": { "type": "string" }, - "Volumes": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } + "TransitEncryptionPort": { + "type": "integer" }, - "Containers": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/TaskContainerProperties" - } + "AuthorizationConfig": { + "$ref": "#/definitions/EFSAuthorizationConfig" + } + }, + "required": [ + "FileSystemId" + ] + }, + "EFSAuthorizationConfig": { + "type": "object", + "additionalProperties": false, + "properties": { + "AccessPointId": { + "type": "string" }, - "PidMode": { + "Iam": { "type": "string" } } }, - "EksPersistentVolumeClaim": { - "additionalProperties": false, + "ResourceRequirement": { "type": "object", + "additionalProperties": false, "properties": { - "ReadOnly": { - "type": "boolean" + "Type": { + "type": "string" }, - "ClaimName": { + "Value": { "type": "string" } - }, - "required": [ - "ClaimName" - ] + } }, - "NodeProperties": { - "additionalProperties": false, + "Device": { "type": "object", + "additionalProperties": false, "properties": { - "MainNode": { - "type": "integer" + "HostPath": { + "type": "string" }, - "NodeRangeProperties": { - "uniqueItems": false, - "insertionOrder": false, + "ContainerPath": { + "type": "string" + }, + "Permissions": { "type": "array", + "insertionOrder": false, + "uniqueItems": false, "items": { - "$ref": "#/definitions/NodeRangeProperty" + "type": "string" } - }, - "NumNodes": { - "type": "integer" } - }, - "required": [ - "NumNodes", - "MainNode", - "NodeRangeProperties" - ] + } }, "Tmpfs": { - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { - "Size": { - "type": "integer" - }, "ContainerPath": { "type": "string" }, + "Size": { + "type": "integer" + }, "MountOptions": { - "uniqueItems": false, - "insertionOrder": false, "type": "array", + "insertionOrder": false, + "uniqueItems": false, "items": { "type": "string" } @@ -265,380 +497,251 @@ "Size" ] }, - "TaskContainerDependency": { - "additionalProperties": false, + "Secret": { "type": "object", + "additionalProperties": false, "properties": { - "Condition": { + "Name": { "type": "string" }, - "ContainerName": { + "ValueFrom": { "type": "string" } }, "required": [ - "ContainerName", - "Condition" + "Name", + "ValueFrom" ] }, - "ContainerProperties": { + "EksProperties": { + "type": "object", "additionalProperties": false, + "properties": { + "PodProperties": { + "$ref": "#/definitions/EksPodProperties" + } + } + }, + "EksPodProperties": { "type": "object", + "additionalProperties": false, "properties": { - "RepositoryCredentials": { - "$ref": "#/definitions/RepositoryCredentials" + "ServiceAccountName": { + "type": "string" }, - "User": { + "HostNetwork": { + "type": "boolean" + }, + "DnsPolicy": { "type": "string" }, - "Secrets": { + "InitContainers": { + "type": "array", "uniqueItems": false, "insertionOrder": false, - "type": "array", "items": { - "$ref": "#/definitions/Secret" + "$ref": "#/definitions/EksContainer" } }, - "Memory": { - "type": "integer" - }, - "Privileged": { - "type": "boolean" - }, - "LinuxParameters": { - "$ref": "#/definitions/LinuxParameters" - }, - "FargatePlatformConfiguration": { - "additionalProperties": false, - "type": "object", - "properties": { - "PlatformVersion": { - "type": "string" - } + "Containers": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EksContainer" } }, - "JobRoleArn": { - "type": "string" - }, - "ReadonlyRootFilesystem": { - "type": "boolean" - }, - "Vcpus": { - "type": "integer" - }, - "Image": { - "type": "string" - }, - "ResourceRequirements": { + "Volumes": { + "type": "array", "uniqueItems": false, "insertionOrder": false, - "type": "array", "items": { - "$ref": "#/definitions/ResourceRequirement" + "$ref": "#/definitions/EksVolume" } }, - "LogConfiguration": { - "$ref": "#/definitions/LogConfiguration" - }, - "MountPoints": { + "ImagePullSecrets": { + "type": "array", "uniqueItems": false, "insertionOrder": false, - "type": "array", "items": { - "$ref": "#/definitions/MountPoint" + "$ref": "#/definitions/ImagePullSecret" } }, - "ExecutionRoleArn": { + "Metadata": { + "$ref": "#/definitions/EksMetadata" + }, + "ShareProcessNamespace": { + "type": "boolean" + } + } + }, + "EksContainer": { + "type": "object", + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Image": { "type": "string" }, - "RuntimePlatform": { - "$ref": "#/definitions/RuntimePlatform" + "ImagePullPolicy": { + "type": "string" }, - "Volumes": { - "uniqueItems": false, - "insertionOrder": false, + "Command": { "type": "array", + "insertionOrder": true, + "uniqueItems": false, "items": { - "$ref": "#/definitions/Volume" + "type": "string" } }, - "Command": { - "uniqueItems": false, - "insertionOrder": true, + "Args": { "type": "array", + "insertionOrder": true, + "uniqueItems": false, "items": { "type": "string" } }, - "Environment": { - "uniqueItems": false, - "insertionOrder": true, + "Env": { "type": "array", + "uniqueItems": false, + "insertionOrder": false, "items": { - "$ref": "#/definitions/Environment" + "$ref": "#/definitions/EksContainerEnvironmentVariable" } }, - "Ulimits": { + "Resources": { + "$ref": "#/definitions/EksContainerResourceRequirements" + }, + "VolumeMounts": { + "type": "array", "uniqueItems": false, "insertionOrder": false, - "type": "array", "items": { - "$ref": "#/definitions/Ulimit" + "$ref": "#/definitions/EksContainerVolumeMount" } }, - "NetworkConfiguration": { - "$ref": "#/definitions/NetworkConfiguration" - }, - "EphemeralStorage": { - "$ref": "#/definitions/EphemeralStorage" + "SecurityContext": { + "$ref": "#/definitions/EksContainerSecurityContext" } }, "required": [ "Image" ] }, - "EcsProperties": { - "additionalProperties": false, + "EksContainerEnvironmentVariable": { "type": "object", + "additionalProperties": false, "properties": { - "TaskProperties": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/EcsTaskProperties" - } + "Name": { + "type": "string" + }, + "Value": { + "type": "string" } }, "required": [ - "TaskProperties" + "Name" ] }, "EksContainerResourceRequirements": { - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "Limits": { + "type": "object", + "additionalProperties": false, "patternProperties": { "": { "type": "string" } - }, - "additionalProperties": false, - "type": "object" + } }, "Requests": { + "type": "object", + "additionalProperties": false, "patternProperties": { "": { "type": "string" } - }, - "additionalProperties": false, - "type": "object" - } - } - }, - "NetworkConfiguration": { - "additionalProperties": false, - "type": "object", - "properties": { - "AssignPublicIp": { - "type": "string" - } - } - }, - "EcsTaskProperties": { - "additionalProperties": false, - "type": "object", - "properties": { - "PlatformVersion": { - "type": "string" - }, - "ExecutionRoleArn": { - "type": "string" - }, - "RuntimePlatform": { - "$ref": "#/definitions/RuntimePlatform" - }, - "TaskRoleArn": { - "type": "string" - }, - "IpcMode": { - "type": "string" - }, - "Volumes": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - }, - "Containers": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/TaskContainerProperties" } - }, - "NetworkConfiguration": { - "$ref": "#/definitions/NetworkConfiguration" - }, - "PidMode": { - "type": "string" - }, - "EphemeralStorage": { - "$ref": "#/definitions/EphemeralStorage" } } }, "EksContainerSecurityContext": { - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "RunAsUser": { "type": "integer" }, - "AllowPrivilegeEscalation": { - "type": "boolean" + "RunAsGroup": { + "type": "integer" }, - "RunAsNonRoot": { + "Privileged": { "type": "boolean" }, - "Privileged": { + "AllowPrivilegeEscalation": { "type": "boolean" }, "ReadOnlyRootFilesystem": { "type": "boolean" }, - "RunAsGroup": { - "type": "integer" + "RunAsNonRoot": { + "type": "boolean" } } }, - "TaskContainerProperties": { - "additionalProperties": false, + "EksVolume": { "type": "object", + "additionalProperties": false, "properties": { - "RepositoryCredentials": { - "$ref": "#/definitions/RepositoryCredentials" - }, - "User": { - "type": "string" - }, - "Secrets": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/Secret" - } - }, - "Privileged": { - "type": "boolean" - }, - "LinuxParameters": { - "$ref": "#/definitions/LinuxParameters" - }, - "ReadonlyRootFilesystem": { - "type": "boolean" - }, - "Image": { - "type": "string" - }, - "LogConfiguration": { - "$ref": "#/definitions/LogConfiguration" - }, - "Essential": { - "type": "boolean" - }, - "ResourceRequirements": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/ResourceRequirement" - } - }, "Name": { "type": "string" }, - "MountPoints": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/MountPoint" - } - }, - "DependsOn": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/TaskContainerDependency" - } + "HostPath": { + "$ref": "#/definitions/EksHostPath" }, - "Command": { - "uniqueItems": false, - "insertionOrder": true, - "type": "array", - "items": { - "type": "string" - } + "EmptyDir": { + "$ref": "#/definitions/EksEmptyDir" }, - "Environment": { - "uniqueItems": false, - "insertionOrder": true, - "type": "array", - "items": { - "$ref": "#/definitions/Environment" - } + "Secret": { + "$ref": "#/definitions/EksSecret" }, - "Ulimits": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/Ulimit" - } + "PersistentVolumeClaim": { + "$ref": "#/definitions/EksPersistentVolumeClaim" } }, "required": [ - "Image" + "Name" ] }, - "EksMetadata": { + "EksHostPath": { + "type": "object", "additionalProperties": false, + "properties": { + "Path": { + "type": "string" + } + } + }, + "EksEmptyDir": { "type": "object", + "additionalProperties": false, "properties": { - "Annotations": { - "patternProperties": { - "": { - "type": "string" - } - }, - "additionalProperties": false, - "type": "object" - }, - "Labels": { - "patternProperties": { - "": { - "type": "string" - } - }, - "additionalProperties": false, - "type": "object" + "Medium": { + "type": "string" }, - "Namespace": { + "SizeLimit": { "type": "string" } } }, "EksSecret": { - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "SecretName": { "type": "string" @@ -651,660 +754,563 @@ "SecretName" ] }, - "RepositoryCredentials": { - "additionalProperties": false, + "EksPersistentVolumeClaim": { "type": "object", + "additionalProperties": false, "properties": { - "CredentialsParameter": { + "ClaimName": { "type": "string" + }, + "ReadOnly": { + "type": "boolean" } }, "required": [ - "CredentialsParameter" + "ClaimName" ] }, - "EFSVolumeConfiguration": { - "additionalProperties": false, + "EksContainerVolumeMount": { "type": "object", + "additionalProperties": false, "properties": { - "TransitEncryption": { + "Name": { "type": "string" }, - "AuthorizationConfig": { - "$ref": "#/definitions/EFSAuthorizationConfig" - }, - "FileSystemId": { + "MountPath": { "type": "string" }, - "RootDirectory": { + "SubPath": { "type": "string" }, - "TransitEncryptionPort": { - "type": "integer" + "ReadOnly": { + "type": "boolean" } - }, - "required": [ - "FileSystemId" - ] + } }, - "ImagePullSecret": { - "additionalProperties": false, + "EksMetadata": { "type": "object", + "additionalProperties": false, "properties": { - "Name": { + "Labels": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "": { + "type": "string" + } + } + }, + "Annotations": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "": { + "type": "string" + } + } + }, + "Namespace": { "type": "string" } } }, - "EvaluateOnExit": { - "additionalProperties": false, + "ImagePullSecret": { "type": "object", + "additionalProperties": false, "properties": { - "Action": { - "type": "string" - }, - "OnExitCode": { - "type": "string" - }, - "OnReason": { - "type": "string" - }, - "OnStatusReason": { + "Name": { "type": "string" } - }, - "required": [ - "Action" - ] + } }, - "MultiNodeEcsProperties": { - "additionalProperties": false, + "RetryStrategy": { "type": "object", + "additionalProperties": false, "properties": { - "TaskProperties": { + "Attempts": { + "type": "integer" + }, + "EvaluateOnExit": { + "type": "array", "uniqueItems": false, "insertionOrder": false, - "type": "array", "items": { - "$ref": "#/definitions/MultiNodeEcsTaskProperties" + "$ref": "#/definitions/EvaluateOnExit" } } - }, - "required": [ - "TaskProperties" - ] + } }, - "Device": { - "additionalProperties": false, + "EvaluateOnExit": { "type": "object", + "additionalProperties": false, "properties": { - "HostPath": { + "OnExitCode": { "type": "string" }, - "Permissions": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "type": "string" - } + "OnStatusReason": { + "type": "string" }, - "ContainerPath": { + "OnReason": { + "type": "string" + }, + "Action": { "type": "string" } - } + }, + "required": [ + "Action" + ] }, - "LinuxParameters": { - "additionalProperties": false, + "NodeProperties": { "type": "object", + "additionalProperties": false, "properties": { - "Swappiness": { + "NumNodes": { "type": "integer" }, - "Tmpfs": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/Tmpfs" - } - }, - "SharedMemorySize": { + "MainNode": { "type": "integer" }, - "Devices": { + "NodeRangeProperties": { + "type": "array", "uniqueItems": false, "insertionOrder": false, - "type": "array", "items": { - "$ref": "#/definitions/Device" + "$ref": "#/definitions/NodeRangeProperty" } - }, - "InitProcessEnabled": { - "type": "boolean" - }, - "MaxSwap": { - "type": "integer" - } - } - }, - "Ulimit": { - "additionalProperties": false, - "type": "object", - "properties": { - "SoftLimit": { - "type": "integer" - }, - "HardLimit": { - "type": "integer" - }, - "Name": { - "type": "string" } }, "required": [ - "HardLimit", - "Name", - "SoftLimit" + "NumNodes", + "MainNode", + "NodeRangeProperties" ] }, - "Host": { - "additionalProperties": false, + "NodeRangeProperty": { "type": "object", - "properties": { - "SourcePath": { - "type": "string" - } - } - }, - "EFSAuthorizationConfig": { "additionalProperties": false, - "type": "object", "properties": { - "Iam": { + "TargetNodes": { "type": "string" }, - "AccessPointId": { - "type": "string" - } - } - }, - "EksVolume": { - "additionalProperties": false, - "type": "object", - "properties": { - "Secret": { - "$ref": "#/definitions/EksSecret" + "Container": { + "$ref": "#/definitions/MultiNodeContainerProperties" }, - "EmptyDir": { - "$ref": "#/definitions/EksEmptyDir" + "EcsProperties": { + "$ref": "#/definitions/MultiNodeEcsProperties" }, - "HostPath": { - "$ref": "#/definitions/EksHostPath" + "EksProperties": { + "$ref": "#/definitions/EksProperties" }, - "PersistentVolumeClaim": { - "$ref": "#/definitions/EksPersistentVolumeClaim" + "ConsumableResourceProperties": { + "$ref": "#/definitions/ConsumableResourceProperties" }, - "Name": { - "type": "string" + "InstanceTypes": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "type": "string" + } } }, "required": [ - "Name" + "TargetNodes" ] }, - "EksContainerVolumeMount": { - "additionalProperties": false, + "JobTimeout": { "type": "object", - "properties": { - "MountPath": { - "type": "string" - }, - "ReadOnly": { - "type": "boolean" - }, - "SubPath": { - "type": "string" - }, - "Name": { - "type": "string" - } - } - }, - "EksProperties": { "additionalProperties": false, - "type": "object", "properties": { - "PodProperties": { - "$ref": "#/definitions/EksPodProperties" + "AttemptDurationSeconds": { + "type": "integer" } } }, - "ConsumableResourceProperties": { - "additionalProperties": false, + "EcsProperties": { "type": "object", + "additionalProperties": false, "properties": { - "ConsumableResourceList": { - "uniqueItems": true, - "insertionOrder": true, + "TaskProperties": { "type": "array", + "uniqueItems": false, + "insertionOrder": false, "items": { - "$ref": "#/definitions/ConsumableResourceRequirement" + "$ref": "#/definitions/EcsTaskProperties" } } }, "required": [ - "ConsumableResourceList" + "TaskProperties" ] }, - "MultiNodeContainerProperties": { - "additionalProperties": false, + "EcsTaskProperties": { "type": "object", + "additionalProperties": false, "properties": { - "RepositoryCredentials": { - "$ref": "#/definitions/RepositoryCredentials" - }, - "User": { - "type": "string" - }, - "Secrets": { + "Containers": { + "type": "array", "uniqueItems": false, "insertionOrder": false, - "type": "array", "items": { - "$ref": "#/definitions/Secret" + "$ref": "#/definitions/TaskContainerProperties" } }, - "Memory": { - "type": "integer" - }, - "Privileged": { - "type": "boolean" - }, - "LinuxParameters": { - "$ref": "#/definitions/LinuxParameters" + "EphemeralStorage": { + "$ref": "#/definitions/EphemeralStorage" }, - "JobRoleArn": { + "ExecutionRoleArn": { "type": "string" }, - "ReadonlyRootFilesystem": { - "type": "boolean" - }, - "Vcpus": { - "type": "integer" + "RuntimePlatform": { + "$ref": "#/definitions/RuntimePlatform" }, - "Image": { - "type": "string" + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" }, - "ResourceRequirements": { + "Volumes": { + "type": "array", "uniqueItems": false, "insertionOrder": false, - "type": "array", "items": { - "$ref": "#/definitions/ResourceRequirement" + "$ref": "#/definitions/Volume" } }, - "LogConfiguration": { - "$ref": "#/definitions/LogConfiguration" + "PidMode": { + "type": "string" }, - "MountPoints": { + "IpcMode": { + "type": "string" + }, + "PlatformVersion": { + "type": "string" + }, + "TaskRoleArn": { + "type": "string" + } + } + }, + "MultiNodeEcsProperties": { + "type": "object", + "additionalProperties": false, + "properties": { + "TaskProperties": { + "type": "array", "uniqueItems": false, "insertionOrder": false, + "items": { + "$ref": "#/definitions/MultiNodeEcsTaskProperties" + } + } + }, + "required": [ + "TaskProperties" + ] + }, + "MultiNodeEcsTaskProperties": { + "type": "object", + "additionalProperties": false, + "properties": { + "Containers": { "type": "array", + "uniqueItems": false, + "insertionOrder": false, "items": { - "$ref": "#/definitions/MountPoint" + "$ref": "#/definitions/TaskContainerProperties" } }, "ExecutionRoleArn": { "type": "string" }, - "RuntimePlatform": { - "$ref": "#/definitions/RuntimePlatform" - }, "Volumes": { + "type": "array", "uniqueItems": false, "insertionOrder": false, - "type": "array", "items": { "$ref": "#/definitions/Volume" } }, + "PidMode": { + "type": "string" + }, + "IpcMode": { + "type": "string" + }, + "TaskRoleArn": { + "type": "string" + } + } + }, + "TaskContainerProperties": { + "type": "object", + "additionalProperties": false, + "properties": { "Command": { + "type": "array", "uniqueItems": false, "insertionOrder": true, - "type": "array", "items": { "type": "string" } }, "Environment": { + "type": "array", "uniqueItems": false, "insertionOrder": true, - "type": "array", "items": { "$ref": "#/definitions/Environment" } }, - "Ulimits": { + "DependsOn": { + "type": "array", "uniqueItems": false, "insertionOrder": false, - "type": "array", "items": { - "$ref": "#/definitions/Ulimit" + "$ref": "#/definitions/TaskContainerDependency" } }, - "InstanceType": { - "type": "string" - }, - "EphemeralStorage": { - "$ref": "#/definitions/EphemeralStorage" - } - }, - "required": [ - "Image" - ] - }, - "MountPoint": { - "additionalProperties": false, - "type": "object", - "properties": { - "ReadOnly": { - "type": "boolean" - }, - "SourceVolume": { - "type": "string" - }, - "ContainerPath": { - "type": "string" - } - } - }, - "Secret": { - "additionalProperties": false, - "type": "object", - "properties": { - "ValueFrom": { - "type": "string" - }, "Name": { "type": "string" - } - }, - "required": [ - "Name", - "ValueFrom" - ] - }, - "Volume": { - "additionalProperties": false, - "type": "object", - "properties": { - "Host": { - "$ref": "#/definitions/Host" - }, - "EfsVolumeConfiguration": { - "$ref": "#/definitions/EFSVolumeConfiguration" }, - "Name": { - "type": "string" - } - } - }, - "EksHostPath": { - "additionalProperties": false, - "type": "object", - "properties": { - "Path": { - "type": "string" - } - } - }, - "ConsumableResourceRequirement": { - "additionalProperties": false, - "type": "object", - "properties": { - "ConsumableResource": { - "pattern": "", - "description": "The ARN of the consumable resource the job definition should consume.", + "Image": { "type": "string" }, - "Quantity": { - "format": "int64", - "type": "integer" - } - }, - "required": [ - "ConsumableResource", - "Quantity" - ] - }, - "Environment": { - "additionalProperties": false, - "type": "object", - "properties": { - "Value": { - "type": "string" + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" }, - "Name": { - "type": "string" - } - } - }, - "ResourceRequirement": { - "additionalProperties": false, - "type": "object", - "properties": { - "Type": { - "type": "string" + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" }, - "Value": { - "type": "string" - } - } - }, - "EphemeralStorage": { - "additionalProperties": false, - "type": "object", - "properties": { - "SizeInGiB": { - "type": "integer" - } - }, - "required": [ - "SizeInGiB" - ] - }, - "EksContainer": { - "additionalProperties": false, - "type": "object", - "properties": { - "Args": { - "uniqueItems": false, - "insertionOrder": true, + "MountPoints": { "type": "array", + "uniqueItems": false, + "insertionOrder": false, "items": { - "type": "string" + "$ref": "#/definitions/MountPoint" } }, - "VolumeMounts": { + "Essential": { + "type": "boolean" + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "Ulimits": { + "type": "array", "uniqueItems": false, "insertionOrder": false, - "type": "array", "items": { - "$ref": "#/definitions/EksContainerVolumeMount" + "$ref": "#/definitions/Ulimit" } }, - "ImagePullPolicy": { + "User": { "type": "string" }, - "Command": { - "uniqueItems": false, - "insertionOrder": true, + "Secrets": { "type": "array", + "uniqueItems": false, + "insertionOrder": false, "items": { - "type": "string" + "$ref": "#/definitions/Secret" } }, - "SecurityContext": { - "$ref": "#/definitions/EksContainerSecurityContext" - }, - "Resources": { - "$ref": "#/definitions/EksContainerResourceRequirements" - }, - "Image": { - "type": "string" + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" }, - "Env": { + "ResourceRequirements": { + "type": "array", "uniqueItems": false, "insertionOrder": false, - "type": "array", "items": { - "$ref": "#/definitions/EksContainerEnvironmentVariable" + "$ref": "#/definitions/ResourceRequirement" } - }, - "Name": { - "type": "string" } }, "required": [ "Image" ] }, - "RetryStrategy": { - "additionalProperties": false, + "TaskContainerDependency": { "type": "object", + "additionalProperties": false, "properties": { - "EvaluateOnExit": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/EvaluateOnExit" - } + "ContainerName": { + "type": "string" }, - "Attempts": { - "type": "integer" + "Condition": { + "type": "string" } - } + }, + "required": [ + "ContainerName", + "Condition" + ] }, - "EksPodProperties": { - "additionalProperties": false, + "ConsumableResourceRequirement": { "type": "object", + "additionalProperties": false, "properties": { - "InitContainers": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/EksContainer" - } - }, - "Volumes": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/EksVolume" - } - }, - "DnsPolicy": { - "type": "string" - }, - "Containers": { - "uniqueItems": false, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/EksContainer" - } - }, - "Metadata": { - "$ref": "#/definitions/EksMetadata" - }, - "ServiceAccountName": { - "type": "string" + "ConsumableResource": { + "type": "string", + "description": "The ARN of the consumable resource the job definition should consume.", + "pattern": "" }, - "ImagePullSecrets": { - "uniqueItems": false, - "insertionOrder": false, + "Quantity": { + "type": "integer", + "format": "int64" + } + }, + "required": [ + "ConsumableResource", + "Quantity" + ] + }, + "ConsumableResourceProperties": { + "type": "object", + "additionalProperties": false, + "properties": { + "ConsumableResourceList": { "type": "array", + "insertionOrder": true, + "uniqueItems": true, "items": { - "$ref": "#/definitions/ImagePullSecret" + "$ref": "#/definitions/ConsumableResourceRequirement" } - }, - "HostNetwork": { - "type": "boolean" - }, - "ShareProcessNamespace": { - "type": "boolean" } - } + }, + "required": [ + "ConsumableResourceList" + ] } }, "properties": { - "Parameters": { - "patternProperties": { - "": { - "type": "string" - } - }, - "additionalProperties": false, - "type": "object" + "ContainerProperties": { + "$ref": "#/definitions/ContainerProperties" }, - "Timeout": { - "$ref": "#/definitions/JobTimeout" + "EcsProperties": { + "$ref": "#/definitions/EcsProperties" + }, + "NodeProperties": { + "$ref": "#/definitions/NodeProperties" }, "JobDefinitionName": { "type": "string", "maxLength": 128 }, - "PropagateTags": { - "type": "boolean" + "JobDefinitionArn": { + "type": "string" + }, + "SchedulingPriority": { + "type": "integer" + }, + "Parameters": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "": { + "type": "string" + } + } }, "PlatformCapabilities": { - "uniqueItems": false, - "insertionOrder": true, "type": "array", + "insertionOrder": true, + "uniqueItems": false, "items": { "type": "string" } }, - "EksProperties": { - "$ref": "#/definitions/EksProperties" + "PropagateTags": { + "type": "boolean" }, - "ConsumableResourceProperties": { - "$ref": "#/definitions/ConsumableResourceProperties" + "RetryStrategy": { + "$ref": "#/definitions/RetryStrategy" + }, + "Timeout": { + "$ref": "#/definitions/JobTimeout" }, "Type": { "type": "string" }, - "NodeProperties": { - "$ref": "#/definitions/NodeProperties" - }, - "SchedulingPriority": { - "type": "integer" - }, - "ContainerProperties": { - "$ref": "#/definitions/ContainerProperties" - }, - "EcsProperties": { - "$ref": "#/definitions/EcsProperties" - }, - "RetryStrategy": { - "$ref": "#/definitions/RetryStrategy" - }, "Tags": { + "type": "object", + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", "patternProperties": { "": { "type": "string" } - }, - "description": "A key-value pair to associate with a resource.", - "additionalProperties": false, - "type": "object" + } + }, + "EksProperties": { + "$ref": "#/definitions/EksProperties" + }, + "ConsumableResourceProperties": { + "$ref": "#/definitions/ConsumableResourceProperties" } }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "Batch:TagResource", + "Batch:UntagResource" + ] + }, + "additionalProperties": false, "required": [ "Type" - ] + ], + "createOnlyProperties": [ + "/properties/JobDefinitionName" + ], + "readOnlyProperties": [ + "/properties/JobDefinitionArn" + ], + "primaryIdentifier": [ + "/properties/JobDefinitionName" + ], + "handlers": { + "create": { + "permissions": [ + "Batch:RegisterJobDefinition", + "Batch:TagResource", + "Batch:DescribeJobDefinitions", + "Iam:PassRole" + ] + }, + "read": { + "permissions": [ + "Batch:DescribeJobDefinitions" + ] + }, + "update": { + "permissions": [ + "Batch:DescribeJobDefinitions", + "Batch:RegisterJobDefinition", + "Batch:DeregisterJobDefinition", + "Batch:TagResource", + "Batch:UntagResource", + "Iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "Batch:DescribeJobDefinitions", + "Batch:DeregisterJobDefinition", + "Iam:PassRole" + ] + }, + "list": { + "permissions": [ + "Batch:DescribeJobDefinitions" + ] + } + } } diff --git a/internal/service/cloudformation/schemas/AWS_Bedrock_Agent.json b/internal/service/cloudformation/schemas/AWS_Bedrock_Agent.json index 7a1ea39dc..f77da3636 100644 --- a/internal/service/cloudformation/schemas/AWS_Bedrock_Agent.json +++ b/internal/service/cloudformation/schemas/AWS_Bedrock_Agent.json @@ -84,6 +84,10 @@ "DISABLED" ] }, + "AdditionalModelRequestFields": { + "type": "object", + "description": "Additional Model Request Fields for Prompt Configuration" + }, "AgentActionGroup": { "type": "object", "description": "Contains the information of an Agent Action Group", @@ -481,6 +485,9 @@ }, "FoundationModel": { "$ref": "#/definitions/FoundationModel" + }, + "AdditionalModelRequestFields": { + "$ref": "#/definitions/AdditionalModelRequestFields" } }, "additionalProperties": false diff --git a/internal/service/cloudformation/schemas/AWS_Chatbot_CustomAction.json b/internal/service/cloudformation/schemas/AWS_Chatbot_CustomAction.json index 9add06a11..4b6694de7 100644 --- a/internal/service/cloudformation/schemas/AWS_Chatbot_CustomAction.json +++ b/internal/service/cloudformation/schemas/AWS_Chatbot_CustomAction.json @@ -76,7 +76,7 @@ "properties": { "CommandText": { "type": "string", - "maxLength": 100, + "maxLength": 5000, "minLength": 1 } }, diff --git a/internal/service/cloudformation/schemas/AWS_Chatbot_MicrosoftTeamsChannelConfiguration.json b/internal/service/cloudformation/schemas/AWS_Chatbot_MicrosoftTeamsChannelConfiguration.json index 1e4d0ad0d..b4f2200fc 100644 --- a/internal/service/cloudformation/schemas/AWS_Chatbot_MicrosoftTeamsChannelConfiguration.json +++ b/internal/service/cloudformation/schemas/AWS_Chatbot_MicrosoftTeamsChannelConfiguration.json @@ -35,6 +35,13 @@ "minLength": 1, "maxLength": 256 }, + "TeamsChannelName": { + "description": "The name of the Microsoft Teams channel", + "type": "string", + "pattern": "^(.*)$", + "minLength": 1, + "maxLength": 256 + }, "TeamsTenantId": { "description": "The id of the Microsoft Teams tenant", "type": "string", diff --git a/internal/service/cloudformation/schemas/AWS_DynamoDB_GlobalTable.json b/internal/service/cloudformation/schemas/AWS_DynamoDB_GlobalTable.json index f808e73a5..0bb26841f 100644 --- a/internal/service/cloudformation/schemas/AWS_DynamoDB_GlobalTable.json +++ b/internal/service/cloudformation/schemas/AWS_DynamoDB_GlobalTable.json @@ -1,222 +1,89 @@ { - "handlers": { - "read": { - "permissions": [ - "dynamodb:Describe*", - "dynamodb:GetResourcePolicy", - "application-autoscaling:Describe*", - "cloudwatch:PutMetricData", - "dynamodb:ListTagsOfResource", - "kms:DescribeKey" - ] - }, - "create": { - "permissions": [ - "dynamodb:CreateTable", - "dynamodb:CreateTableReplica", - "dynamodb:Describe*", - "dynamodb:UpdateTimeToLive", - "dynamodb:UpdateContributorInsights", - "dynamodb:UpdateContinuousBackups", - "dynamodb:ListTagsOfResource", - "dynamodb:Query", - "dynamodb:Scan", - "dynamodb:UpdateItem", - "dynamodb:PutItem", - "dynamodb:GetItem", - "dynamodb:DeleteItem", - "dynamodb:BatchWriteItem", - "dynamodb:TagResource", - "dynamodb:EnableKinesisStreamingDestination", - "dynamodb:DisableKinesisStreamingDestination", - "dynamodb:UpdateTableReplicaAutoScaling", - "dynamodb:TagResource", - "dynamodb:GetResourcePolicy", - "dynamodb:PutResourcePolicy", - "application-autoscaling:DeleteScalingPolicy", - "application-autoscaling:DeleteScheduledAction", - "application-autoscaling:DeregisterScalableTarget", - "application-autoscaling:Describe*", - "application-autoscaling:PutScalingPolicy", - "application-autoscaling:PutScheduledAction", - "application-autoscaling:RegisterScalableTarget", - "kinesis:ListStreams", - "kinesis:DescribeStream", - "kinesis:PutRecords", - "kms:CreateGrant", - "kms:DescribeKey", - "kms:ListAliases", - "kms:Decrypt", - "kms:RevokeGrant", - "cloudwatch:PutMetricData", - "iam:CreateServiceLinkedRole" - ] - }, - "update": { - "permissions": [ - "dynamodb:Describe*", - "dynamodb:CreateTableReplica", - "dynamodb:UpdateTable", - "dynamodb:UpdateTimeToLive", - "dynamodb:UpdateContinuousBackups", - "dynamodb:UpdateContributorInsights", - "dynamodb:ListTagsOfResource", - "dynamodb:Query", - "dynamodb:Scan", - "dynamodb:UpdateItem", - "dynamodb:PutItem", - "dynamodb:GetItem", - "dynamodb:DeleteItem", - "dynamodb:BatchWriteItem", - "dynamodb:DeleteTable", - "dynamodb:DeleteTableReplica", - "dynamodb:UpdateItem", - "dynamodb:TagResource", - "dynamodb:UntagResource", - "dynamodb:EnableKinesisStreamingDestination", - "dynamodb:DisableKinesisStreamingDestination", - "dynamodb:UpdateTableReplicaAutoScaling", - "dynamodb:UpdateKinesisStreamingDestination", - "dynamodb:GetResourcePolicy", - "dynamodb:PutResourcePolicy", - "dynamodb:DeleteResourcePolicy", - "application-autoscaling:DeleteScalingPolicy", - "application-autoscaling:DeleteScheduledAction", - "application-autoscaling:DeregisterScalableTarget", - "application-autoscaling:Describe*", - "application-autoscaling:PutScalingPolicy", - "application-autoscaling:PutScheduledAction", - "application-autoscaling:RegisterScalableTarget", - "kinesis:ListStreams", - "kinesis:DescribeStream", - "kinesis:PutRecords", - "kms:CreateGrant", - "kms:DescribeKey", - "kms:ListAliases", - "kms:RevokeGrant", - "cloudwatch:PutMetricData" - ], - "timeoutInMinutes": 1200 - }, - "list": { - "permissions": [ - "dynamodb:ListTables", - "cloudwatch:PutMetricData" - ] - }, - "delete": { - "permissions": [ - "dynamodb:Describe*", - "dynamodb:DeleteTable", - "application-autoscaling:DeleteScalingPolicy", - "application-autoscaling:DeleteScheduledAction", - "application-autoscaling:DeregisterScalableTarget", - "application-autoscaling:Describe*", - "application-autoscaling:PutScalingPolicy", - "application-autoscaling:PutScheduledAction", - "application-autoscaling:RegisterScalableTarget" - ] - } - }, "typeName": "AWS::DynamoDB::GlobalTable", - "readOnlyProperties": [ - "/properties/Arn", - "/properties/StreamArn", - "/properties/TableId" - ], "description": "Version: None. Resource Type definition for AWS::DynamoDB::GlobalTable", - "additionalIdentifiers": [ - [ - "/properties/Arn" - ], - [ - "/properties/StreamArn" - ] - ], - "writeOnlyProperties": [ - "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", - "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", - "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", - "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" - ], - "createOnlyProperties": [ - "/properties/LocalSecondaryIndexes", - "/properties/TableName", - "/properties/KeySchema" - ], "additionalProperties": false, - "primaryIdentifier": [ - "/properties/TableName" - ], - "definitions": { - "LocalSecondaryIndex": { - "additionalProperties": false, - "type": "object", - "properties": { - "IndexName": { - "minLength": 3, - "type": "string", - "maxLength": 255 - }, - "Projection": { - "$ref": "#/definitions/Projection" - }, - "KeySchema": { - "maxItems": 2, - "uniqueItems": true, - "type": "array", - "items": { - "$ref": "#/definitions/KeySchema" - } - } + "properties": { + "Arn": { + "type": "string" + }, + "StreamArn": { + "type": "string" + }, + "AttributeDefinitions": { + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttributeDefinition" }, - "required": [ - "IndexName", - "Projection", - "KeySchema" - ] + "minItems": 1 }, - "SSESpecification": { - "additionalProperties": false, - "type": "object", - "properties": { - "SSEEnabled": { - "type": "boolean" - }, - "SSEType": { - "type": "string" - } + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + } + }, + "KeySchema": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/KeySchema" }, - "required": [ - "SSEEnabled" - ] + "minItems": 1, + "maxItems": 2 }, - "KinesisStreamSpecification": { - "additionalProperties": false, - "type": "object", - "properties": { - "ApproximateCreationDateTimePrecision": { - "type": "string", - "enum": [ - "MICROSECOND", - "MILLISECOND" - ] - }, - "StreamArn": { - "relationshipRef": { - "typeName": "AWS::Kinesis::Stream", - "propertyPath": "/properties/Arn" - }, - "type": "string" - } + "LocalSecondaryIndexes": { + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + } + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + }, + "WriteOnDemandThroughputSettings": { + "$ref": "#/definitions/WriteOnDemandThroughputSettings" + }, + "WarmThroughput": { + "$ref": "#/definitions/WarmThroughput" + }, + "Replicas": { + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaSpecification" }, - "required": [ - "StreamArn" - ] + "minItems": 1 + }, + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" }, "StreamSpecification": { - "additionalProperties": false, + "$ref": "#/definitions/StreamSpecification" + }, + "TableName": { + "type": "string" + }, + "TableId": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" + } + }, + "definitions": { + "StreamSpecification": { "type": "object", + "additionalProperties": false, "properties": { "StreamViewType": { "type": "string" @@ -226,149 +93,82 @@ "StreamViewType" ] }, - "ContributorInsightsSpecification": { - "additionalProperties": false, + "ResourcePolicy": { "type": "object", + "additionalProperties": false, "properties": { - "Enabled": { - "type": "boolean" + "PolicyDocument": { + "type": "object" } }, "required": [ - "Enabled" + "PolicyDocument" ] }, - "ReplicaSpecification": { - "additionalProperties": false, + "ReplicaStreamSpecification": { "type": "object", + "additionalProperties": false, "properties": { - "SSESpecification": { - "$ref": "#/definitions/ReplicaSSESpecification" - }, - "KinesisStreamSpecification": { - "$ref": "#/definitions/KinesisStreamSpecification" - }, - "ContributorInsightsSpecification": { - "$ref": "#/definitions/ContributorInsightsSpecification" - }, - "PointInTimeRecoverySpecification": { - "$ref": "#/definitions/PointInTimeRecoverySpecification" - }, - "ReplicaStreamSpecification": { - "$ref": "#/definitions/ReplicaStreamSpecification" - }, - "GlobalSecondaryIndexes": { - "uniqueItems": true, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" - } - }, - "Region": { - "type": "string" - }, "ResourcePolicy": { "$ref": "#/definitions/ResourcePolicy" - }, - "ReadProvisionedThroughputSettings": { - "$ref": "#/definitions/ReadProvisionedThroughputSettings" - }, - "TableClass": { - "type": "string" - }, - "DeletionProtectionEnabled": { - "type": "boolean" - }, - "Tags": { - "uniqueItems": true, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/Tag" - } - }, - "ReadOnDemandThroughputSettings": { - "$ref": "#/definitions/ReadOnDemandThroughputSettings" } }, "required": [ - "Region" + "ResourcePolicy" ] }, - "CapacityAutoScalingSettings": { - "additionalProperties": false, + "KinesisStreamSpecification": { "type": "object", + "additionalProperties": false, "properties": { - "MinCapacity": { - "type": "integer", - "minimum": 1 - }, - "SeedCapacity": { - "type": "integer", - "minimum": 1 - }, - "TargetTrackingScalingPolicyConfiguration": { - "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + "StreamArn": { + "type": "string", + "relationshipRef": { + "typeName": "AWS::Kinesis::Stream", + "propertyPath": "/properties/Arn" + } }, - "MaxCapacity": { - "type": "integer", - "minimum": 1 + "ApproximateCreationDateTimePrecision": { + "type": "string", + "enum": [ + "MICROSECOND", + "MILLISECOND" + ] } }, "required": [ - "MinCapacity", - "MaxCapacity", - "TargetTrackingScalingPolicyConfiguration" + "StreamArn" ] }, - "AttributeDefinition": { - "additionalProperties": false, + "KeySchema": { "type": "object", + "additionalProperties": false, "properties": { - "AttributeType": { - "type": "string" - }, "AttributeName": { - "minLength": 1, "type": "string", + "minLength": 1, "maxLength": 255 + }, + "KeyType": { + "type": "string" } }, "required": [ - "AttributeName", - "AttributeType" + "KeyType", + "AttributeName" ] }, - "Projection": { - "additionalProperties": false, - "type": "object", - "properties": { - "NonKeyAttributes": { - "maxItems": 20, - "uniqueItems": true, - "insertionOrder": false, - "type": "array", - "items": { - "type": "string" - } - }, - "ProjectionType": { - "type": "string" - } - } - }, "PointInTimeRecoverySpecification": { - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "PointInTimeRecoveryEnabled": { "type": "boolean" }, "RecoveryPeriodInDays": { - "maximum": 35, "type": "integer", - "minimum": 1 + "minimum": 1, + "maximum": 35 } }, "dependencies": { @@ -377,108 +177,135 @@ ] } }, - "ReplicaGlobalSecondaryIndexSpecification": { - "additionalProperties": false, + "ReplicaSpecification": { "type": "object", + "additionalProperties": false, "properties": { - "IndexName": { - "minLength": 3, - "type": "string", - "maxLength": 255 + "Region": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + } }, "ContributorInsightsSpecification": { "$ref": "#/definitions/ContributorInsightsSpecification" }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "TableClass": { + "type": "string" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "Tags": { + "type": "array", + "insertionOrder": false, + "uniqueItems": true, + "items": { + "$ref": "#/definitions/Tag" + } + }, "ReadProvisionedThroughputSettings": { "$ref": "#/definitions/ReadProvisionedThroughputSettings" }, "ReadOnDemandThroughputSettings": { "$ref": "#/definitions/ReadOnDemandThroughputSettings" + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" } }, "required": [ - "IndexName" + "Region" ] }, - "WarmThroughput": { - "anyOf": [ - { - "required": [ - "ReadUnitsPerSecond" - ] - }, - { - "required": [ - "WriteUnitsPerSecond" - ] - } - ], - "additionalProperties": false, + "TimeToLiveSpecification": { "type": "object", + "additionalProperties": false, "properties": { - "ReadUnitsPerSecond": { - "type": "integer", - "minimum": 1 + "AttributeName": { + "type": "string" }, - "WriteUnitsPerSecond": { - "type": "integer", - "minimum": 1 + "Enabled": { + "type": "boolean" } - } + }, + "required": [ + "Enabled" + ] }, - "TargetTrackingScalingPolicyConfiguration": { - "additionalProperties": false, + "LocalSecondaryIndex": { "type": "object", + "additionalProperties": false, "properties": { - "ScaleOutCooldown": { - "type": "integer", - "minimum": 0 - }, - "TargetValue": { - "format": "double", - "type": "number" + "IndexName": { + "type": "string", + "minLength": 3, + "maxLength": 255 }, - "DisableScaleIn": { - "type": "boolean" + "KeySchema": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2 }, - "ScaleInCooldown": { - "type": "integer", - "minimum": 0 + "Projection": { + "$ref": "#/definitions/Projection" } }, "required": [ - "TargetValue" + "IndexName", + "Projection", + "KeySchema" ] }, "GlobalSecondaryIndex": { - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "IndexName": { - "minLength": 3, "type": "string", + "minLength": 3, "maxLength": 255 }, - "Projection": { - "$ref": "#/definitions/Projection" - }, "KeySchema": { - "minItems": 1, - "maxItems": 2, - "uniqueItems": true, "type": "array", + "uniqueItems": true, "items": { "$ref": "#/definitions/KeySchema" - } + }, + "minItems": 1, + "maxItems": 2 }, - "WarmThroughput": { - "$ref": "#/definitions/WarmThroughput" + "Projection": { + "$ref": "#/definitions/Projection" }, "WriteProvisionedThroughputSettings": { "$ref": "#/definitions/WriteProvisionedThroughputSettings" }, "WriteOnDemandThroughputSettings": { "$ref": "#/definitions/WriteOnDemandThroughputSettings" + }, + "WarmThroughput": { + "$ref": "#/definitions/WarmThroughput" } }, "required": [ @@ -487,42 +314,27 @@ "KeySchema" ] }, - "WriteProvisionedThroughputSettings": { - "additionalProperties": false, - "type": "object", - "properties": { - "WriteCapacityAutoScalingSettings": { - "$ref": "#/definitions/CapacityAutoScalingSettings" - } - } - }, - "WriteOnDemandThroughputSettings": { - "additionalProperties": false, + "SSESpecification": { "type": "object", - "properties": { - "MaxWriteRequestUnits": { - "type": "integer", - "minimum": 1 - } - } - }, - "ReplicaStreamSpecification": { "additionalProperties": false, - "type": "object", "properties": { - "ResourcePolicy": { - "$ref": "#/definitions/ResourcePolicy" + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" } }, "required": [ - "ResourcePolicy" + "SSEEnabled" ] }, "ReplicaSSESpecification": { - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { "KMSMasterKeyId": { + "type": "string", "anyOf": [ { "relationshipRef": { @@ -542,63 +354,103 @@ "propertyPath": "/properties/AliasName" } } - ], - "type": "string" + ] } }, "required": [ "KMSMasterKeyId" ] }, - "ResourcePolicy": { - "additionalProperties": false, + "AttributeDefinition": { "type": "object", + "additionalProperties": false, "properties": { - "PolicyDocument": { - "type": "object" + "AttributeName": { + "type": "string", + "minLength": 1, + "maxLength": 255 + }, + "AttributeType": { + "type": "string" } }, "required": [ - "PolicyDocument" + "AttributeName", + "AttributeType" ] }, - "KeySchema": { - "additionalProperties": false, + "Tag": { "type": "object", + "additionalProperties": false, "properties": { - "KeyType": { + "Key": { "type": "string" }, - "AttributeName": { - "minLength": 1, - "type": "string", - "maxLength": 255 + "Value": { + "type": "string" } }, "required": [ - "KeyType", - "AttributeName" + "Value", + "Key" ] }, - "Tag": { - "additionalProperties": false, + "Projection": { "type": "object", + "additionalProperties": false, "properties": { - "Value": { - "type": "string" + "NonKeyAttributes": { + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 20 }, - "Key": { + "ProjectionType": { "type": "string" } + } + }, + "ReplicaGlobalSecondaryIndexSpecification": { + "type": "object", + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string", + "minLength": 3, + "maxLength": 255 + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "ReadOnDemandThroughputSettings": { + "$ref": "#/definitions/ReadOnDemandThroughputSettings" + } }, "required": [ - "Value", - "Key" + "IndexName" ] }, - "ReadProvisionedThroughputSettings": { + "ContributorInsightsSpecification": { + "type": "object", "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ] + }, + "ReadProvisionedThroughputSettings": { "type": "object", + "additionalProperties": false, "properties": { "ReadCapacityUnits": { "type": "integer", @@ -609,30 +461,110 @@ } } }, - "TimeToLiveSpecification": { - "additionalProperties": false, + "WriteProvisionedThroughputSettings": { + "type": "object", + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + } + }, + "ReadOnDemandThroughputSettings": { + "type": "object", + "additionalProperties": false, + "properties": { + "MaxReadRequestUnits": { + "type": "integer", + "minimum": 1 + } + } + }, + "WriteOnDemandThroughputSettings": { + "type": "object", + "additionalProperties": false, + "properties": { + "MaxWriteRequestUnits": { + "type": "integer", + "minimum": 1 + } + } + }, + "CapacityAutoScalingSettings": { + "type": "object", + "additionalProperties": false, + "properties": { + "MinCapacity": { + "type": "integer", + "minimum": 1 + }, + "MaxCapacity": { + "type": "integer", + "minimum": 1 + }, + "SeedCapacity": { + "type": "integer", + "minimum": 1 + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" + ] + }, + "TargetTrackingScalingPolicyConfiguration": { "type": "object", + "additionalProperties": false, "properties": { - "Enabled": { + "DisableScaleIn": { "type": "boolean" }, - "AttributeName": { - "type": "string" + "ScaleInCooldown": { + "type": "integer", + "minimum": 0 + }, + "ScaleOutCooldown": { + "type": "integer", + "minimum": 0 + }, + "TargetValue": { + "type": "number", + "format": "double" } }, "required": [ - "Enabled" + "TargetValue" ] }, - "ReadOnDemandThroughputSettings": { - "additionalProperties": false, + "WarmThroughput": { "type": "object", + "additionalProperties": false, "properties": { - "MaxReadRequestUnits": { + "ReadUnitsPerSecond": { + "type": "integer", + "minimum": 1 + }, + "WriteUnitsPerSecond": { "type": "integer", "minimum": 1 } - } + }, + "anyOf": [ + { + "required": [ + "ReadUnitsPerSecond" + ] + }, + { + "required": [ + "WriteUnitsPerSecond" + ] + } + ] } }, "required": [ @@ -640,82 +572,150 @@ "AttributeDefinitions", "Replicas" ], - "properties": { - "TableId": { - "type": "string" - }, - "SSESpecification": { - "$ref": "#/definitions/SSESpecification" - }, - "StreamSpecification": { - "$ref": "#/definitions/StreamSpecification" - }, - "WarmThroughput": { - "$ref": "#/definitions/WarmThroughput" - }, - "Replicas": { - "minItems": 1, - "uniqueItems": true, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/ReplicaSpecification" - } - }, - "WriteProvisionedThroughputSettings": { - "$ref": "#/definitions/WriteProvisionedThroughputSettings" - }, - "WriteOnDemandThroughputSettings": { - "$ref": "#/definitions/WriteOnDemandThroughputSettings" - }, - "TableName": { - "type": "string" - }, - "AttributeDefinitions": { - "minItems": 1, - "uniqueItems": true, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/AttributeDefinition" - } - }, - "BillingMode": { - "type": "string" - }, - "GlobalSecondaryIndexes": { - "uniqueItems": true, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/GlobalSecondaryIndex" - } - }, - "KeySchema": { - "minItems": 1, - "maxItems": 2, - "uniqueItems": true, - "type": "array", - "items": { - "$ref": "#/definitions/KeySchema" - } + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "primaryIdentifier": [ + "/properties/TableName" + ], + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ], + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] }, - "LocalSecondaryIndexes": { - "uniqueItems": true, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/LocalSecondaryIndex" - } + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] }, - "Arn": { - "type": "string" + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 }, - "StreamArn": { - "type": "string" + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] }, - "TimeToLiveSpecification": { - "$ref": "#/definitions/TimeToLiveSpecification" + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] } } } diff --git a/internal/service/cloudformation/schemas/AWS_DynamoDB_Table.json b/internal/service/cloudformation/schemas/AWS_DynamoDB_Table.json index 8a5fa317b..34d12e5d9 100644 --- a/internal/service/cloudformation/schemas/AWS_DynamoDB_Table.json +++ b/internal/service/cloudformation/schemas/AWS_DynamoDB_Table.json @@ -664,7 +664,7 @@ } }, "BillingMode": { - "description": "Specify how you are charged for read and write throughput and how you manage capacity.\n Valid values include:\n + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for predictable workloads. ``PROVISIONED`` sets the billing mode to [Provisioned Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual).\n + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for unpredictable workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-Demand Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand).\n \n If not specified, the default is ``PROVISIONED``.", + "description": "Specify how you are charged for read and write throughput and how you manage capacity.\n Valid values include:\n + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for most DynamoDB workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-demand capacity mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/on-demand-capacity-mode.html). \n + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for steady workloads with predictable growth where capacity requirements can be reliably forecasted. ``PROVISIONED`` sets the billing mode to [Provisioned capacity mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/provisioned-capacity-mode.html).\n \n If not specified, the default is ``PROVISIONED``.", "type": "string" }, "GlobalSecondaryIndexes": { diff --git a/internal/service/cloudformation/schemas/AWS_EC2_VPCEndpointService.json b/internal/service/cloudformation/schemas/AWS_EC2_VPCEndpointService.json index ec3d7e149..7e10f4b01 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_VPCEndpointService.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_VPCEndpointService.json @@ -18,6 +18,13 @@ "Value", "Key" ] + }, + "IpAddressType": { + "type": "string", + "enum": [ + "ipv4", + "ipv6" + ] } }, "properties": { @@ -59,6 +66,15 @@ "items": { "$ref": "#/definitions/Tag" } + }, + "SupportedIpAddressTypes": { + "type": "array", + "description": "Specify which Ip Address types are supported for VPC endpoint service.", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/IpAddressType" + } } }, "primaryIdentifier": [ diff --git a/internal/service/cloudformation/schemas/AWS_ECR_PullThroughCacheRule.json b/internal/service/cloudformation/schemas/AWS_ECR_PullThroughCacheRule.json index 638efb43f..6d33df35d 100644 --- a/internal/service/cloudformation/schemas/AWS_ECR_PullThroughCacheRule.json +++ b/internal/service/cloudformation/schemas/AWS_ECR_PullThroughCacheRule.json @@ -22,6 +22,12 @@ }, "UpstreamRegistry": { "$ref": "#/definitions/UpstreamRegistry" + }, + "CustomRoleArn": { + "$ref": "#/definitions/CustomRoleArn" + }, + "UpstreamRepositoryPrefix": { + "$ref": "#/definitions/UpstreamRepositoryPrefix" } }, "required": [ @@ -41,7 +47,7 @@ "description": "The ECRRepositoryPrefix is a custom alias for upstream registry url.", "minLength": 2, "maxLength": 30, - "pattern": "(?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*" + "pattern": "^((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*/?|ROOT)$" }, "UpstreamRegistryUrl": { "type": "string", @@ -57,30 +63,44 @@ "UpstreamRegistry": { "type": "string", "description": "The name of the upstream registry." + }, + "CustomRoleArn": { + "type": "string", + "description": "The ARN of the IAM role to be assumed by Amazon ECR to authenticate to ECR upstream registry. This role must be in the same account as the registry that you are configuring.", + "maxLength": 2048 + }, + "UpstreamRepositoryPrefix": { + "type": "string", + "description": "The repository name prefix of upstream registry to match with the upstream repository name. When this field isn't specified, Amazon ECR will use the `ROOT`.", + "minLength": 2, + "maxLength": 30, + "pattern": "^((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*/?|ROOT)$" } }, "properties": { "EcrRepositoryPrefix": { - "type": "string", - "description": "The Amazon ECR repository prefix associated with the pull through cache rule.", - "minLength": 2, - "maxLength": 30, - "pattern": "(?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*" + "$ref": "#/definitions/EcrRepositoryPrefix", + "description": "The Amazon ECR repository prefix associated with the pull through cache rule." }, "UpstreamRegistryUrl": { - "type": "string", + "$ref": "#/definitions/UpstreamRegistryUrl", "description": "The upstream registry URL associated with the pull through cache rule." }, "CredentialArn": { - "type": "string", - "description": "The ARN of the Secrets Manager secret associated with the pull through cache rule.", - "minLength": 50, - "maxLength": 612, - "pattern": "^arn:aws:secretsmanager:[a-zA-Z0-9-:]+:secret:ecr\\-pullthroughcache\\/[a-zA-Z0-9\\/_+=.@-]+$" + "$ref": "#/definitions/CredentialArn", + "description": "The ARN of the Secrets Manager secret associated with the pull through cache rule." }, "UpstreamRegistry": { - "type": "string", + "$ref": "#/definitions/UpstreamRegistry", "description": "The name of the upstream source registry associated with the pull through cache rule." + }, + "CustomRoleArn": { + "$ref": "#/definitions/CustomRoleArn", + "description": "" + }, + "UpstreamRepositoryPrefix": { + "$ref": "#/definitions/UpstreamRepositoryPrefix", + "description": "" } }, "tagging": { @@ -93,11 +113,14 @@ "/properties/EcrRepositoryPrefix", "/properties/UpstreamRegistryUrl", "/properties/CredentialArn", - "/properties/UpstreamRegistry" + "/properties/UpstreamRegistry", + "/properties/CustomRoleArn", + "/properties/UpstreamRepositoryPrefix" ], "writeOnlyProperties": [ "/properties/CredentialArn", - "/properties/UpstreamRegistry" + "/properties/UpstreamRegistry", + "/properties/CustomRoleArn" ], "handlers": { "create": { @@ -106,7 +129,8 @@ "ecr:CreatePullThroughCacheRule", "ecr:DeletePullThroughCacheRule", "iam:CreateServiceLinkedRole", - "secretsmanager:GetSecretValue" + "secretsmanager:GetSecretValue", + "iam:PassRole" ] }, "read": { @@ -120,7 +144,8 @@ "ecr:CreatePullThroughCacheRule", "ecr:DeletePullThroughCacheRule", "iam:CreateServiceLinkedRole", - "secretsmanager:GetSecretValue" + "secretsmanager:GetSecretValue", + "iam:PassRole" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_ECS_Service.json b/internal/service/cloudformation/schemas/AWS_ECS_Service.json index 30ce36bac..126abf9ea 100644 --- a/internal/service/cloudformation/schemas/AWS_ECS_Service.json +++ b/internal/service/cloudformation/schemas/AWS_ECS_Service.json @@ -356,7 +356,7 @@ } }, "AssignPublicIp": { - "description": "Whether the task's elastic network interface receives a public IP address. The default value is ``ENABLED``.", + "description": "Whether the task's elastic network interface receives a public IP address. \n Consider the following when you set this value:\n + When you use ``create-service`` or ``update-service``, the default is ``DISABLED``. \n + When the service ``deploymentController`` is ``ECS``, the value must be ``DISABLED``. \n + When you use ``create-service`` or ``update-service``, the default is ``ENABLED``.", "type": "string", "enum": [ "DISABLED", @@ -511,7 +511,7 @@ } }, "Tag": { - "description": "The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.", + "description": "The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.\n \n In order to tag a service that has the following ARN format, you need to migrate the service to the long ARN. You must use the API, CLI or console to migrate the service ARN. For more information, see [Migrate an short service ARN to a long ARN](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-arn-migration.html) in the *Developer Guide*.\n ``arn:aws:ecs:region:aws_account_id:service/service-name`` \n After the migration is complete, the following are true:\n + The service ARN is: ``arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name`` \n + You can use CFN to tag the service as you would a service with a long ARN format.\n + When the ``PhysicalResourceId`` in the CFN stack represents a service, the value does not change and will be the short service ARN.", "additionalProperties": false, "type": "object", "properties": { @@ -674,7 +674,7 @@ } }, "CapacityProviderStrategy": { - "description": "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy may contain a maximum of 6 capacity providers.\n To remove this property from your service resource, specify an empty ``CapacityProviderStrategyItem`` array.", + "description": "The capacity provider strategy to use for the service.\n If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used.\n A capacity provider strategy can contain a maximum of 20 capacity providers.\n To remove this property from your service resource, specify an empty ``CapacityProviderStrategyItem`` array.", "type": "array", "items": { "$ref": "#/definitions/CapacityProviderStrategyItem" diff --git a/internal/service/cloudformation/schemas/AWS_ECS_TaskDefinition.json b/internal/service/cloudformation/schemas/AWS_ECS_TaskDefinition.json index 7cb144b9f..f01fc42de 100644 --- a/internal/service/cloudformation/schemas/AWS_ECS_TaskDefinition.json +++ b/internal/service/cloudformation/schemas/AWS_ECS_TaskDefinition.json @@ -128,19 +128,19 @@ } }, "Timeout": { - "description": "The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5.", + "description": "The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5. This value applies only when you specify a ``command``.", "type": "integer" }, "Retries": { - "description": "The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3.", + "description": "The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3. This value applies only when you specify a ``command``.", "type": "integer" }, "Interval": { - "description": "The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds.", + "description": "The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. This value applies only when you specify a ``command``.", "type": "integer" }, "StartPeriod": { - "description": "The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off.\n If a health check succeeds within the ``startPeriod``, then the container is considered healthy and any subsequent failures count toward the maximum number of retries.", + "description": "The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off. This value applies only when you specify a ``command``. \n If a health check succeeds within the ``startPeriod``, then the container is considered healthy and any subsequent failures count toward the maximum number of retries.", "type": "integer" } } @@ -550,7 +550,7 @@ } }, "KernelCapabilities": { - "description": "The Linux capabilities to add or remove from the default Docker configuration for a container defined in the task definition. For more detailed information about these Linux capabilities, see the [capabilities(7)](https://docs.aws.amazon.com/http://man7.org/linux/man-pages/man7/capabilities.7.html) Linux manual page.", + "description": "The Linux capabilities to add or remove from the default Docker configuration for a container defined in the task definition. For more detailed information about these Linux capabilities, see the [capabilities(7)](https://docs.aws.amazon.com/http://man7.org/linux/man-pages/man7/capabilities.7.html) Linux manual page.\n The following describes how Docker processes the Linux capabilities specified in the ``add`` and ``drop`` request parameters. For information about the latest behavior, see [Docker Compose: order of cap_drop and cap_add](https://docs.aws.amazon.com/https://forums.docker.com/t/docker-compose-order-of-cap-drop-and-cap-add/97136/1) in the Docker Community Forum.\n + When the container is a privleged container, the container capabilities are all of the default Docker capabilities. The capabilities specified in the ``add`` request parameter, and the ``drop`` request parameter are ignored.\n + When the ``add`` request parameter is set to ALL, the container capabilities are all of the default Docker capabilities, excluding those specified in the ``drop`` request parameter.\n + When the ``drop`` request parameter is set to ALL, the container capabilities are the capabilities specified in the ``add`` request parameter.\n + When the ``add`` request parameter and the ``drop`` request parameter are both empty, the capabilities the container capabilities are all of the default Docker capabilities.\n + The default is to first drop the capabilities specified in the ``drop`` request parameter, and then add the capabilities specified in the ``add`` request parameter.", "additionalProperties": false, "type": "object", "properties": { @@ -1102,7 +1102,7 @@ } }, "Cpu": { - "description": "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n If you use the EC2 launch type, this field is optional. Supported values are between ``128`` CPU units (``0.125`` vCPUs) and ``10240`` CPU units (``10`` vCPUs).\n The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments\n This option requires Linux platform ``1.4.0`` or later.\n + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments\n This option requires Linux platform ``1.4.0`` or later.", + "description": "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n If you're using the EC2 launch type or the external launch type, this field is optional. Supported values are between ``128`` CPU units (``0.125`` vCPUs) and ``196608`` CPU units (``192`` vCPUs). The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments\n This option requires Linux platform ``1.4.0`` or later.\n + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments\n This option requires Linux platform ``1.4.0`` or later.", "type": "string" }, "RequiresCompatibilities": { diff --git a/internal/service/cloudformation/schemas/AWS_ElasticLoadBalancingV2_Listener.json b/internal/service/cloudformation/schemas/AWS_ElasticLoadBalancingV2_Listener.json index ab55256ca..93719a8ab 100644 --- a/internal/service/cloudformation/schemas/AWS_ElasticLoadBalancingV2_Listener.json +++ b/internal/service/cloudformation/schemas/AWS_ElasticLoadBalancingV2_Listener.json @@ -88,7 +88,7 @@ "additionalProperties": false, "definitions": { "MutualAuthentication": { - "description": "Specifies the configuration information for mutual authentication.", + "description": "The mutual authentication configuration information.", "additionalProperties": false, "type": "object", "properties": { @@ -97,7 +97,7 @@ "type": "boolean" }, "Mode": { - "description": "The client certificate handling method. Options are ``off``, ``passthrough`` or ``verify``. The default value is ``off``.", + "description": "The client certificate handling method. The possible values are ``off``, ``passthrough``, and ``verify``. The default value is ``off``.", "type": "string" }, "TrustStoreArn": { @@ -105,7 +105,7 @@ "type": "string" }, "AdvertiseTrustStoreCaNames": { - "description": "", + "description": "Indicates whether trust store CA certificate names are advertised. The default value is ``off``.", "type": "string" } } diff --git a/internal/service/cloudformation/schemas/AWS_ElasticLoadBalancingV2_LoadBalancer.json b/internal/service/cloudformation/schemas/AWS_ElasticLoadBalancingV2_LoadBalancer.json index f9ff3f11d..05a6e9f64 100644 --- a/internal/service/cloudformation/schemas/AWS_ElasticLoadBalancingV2_LoadBalancer.json +++ b/internal/service/cloudformation/schemas/AWS_ElasticLoadBalancingV2_LoadBalancer.json @@ -98,7 +98,11 @@ }, "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { "type": "string", - "description": "Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink." + "description": "Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. The default is ``on``." + }, + "Ipv4IpamPoolId": { + "type": "string", + "description": "" } }, "definitions": { @@ -213,7 +217,8 @@ "elasticloadbalancing:CreateLoadBalancer", "elasticloadbalancing:DescribeLoadBalancers", "elasticloadbalancing:ModifyLoadBalancerAttributes", - "elasticloadbalancing:AddTags" + "elasticloadbalancing:AddTags", + "ec2:DescribeIpamPools" ], "timeoutInMinutes": 30 }, @@ -242,6 +247,7 @@ "elasticloadbalancing:ModifyCapacityReservation", "elasticloadbalancing:SetSubnets", "elasticloadbalancing:SetIpAddressType", + "elasticloadbalancing:ModifyIpPools", "elasticloadbalancing:SetSecurityGroups", "elasticloadbalancing:AddTags", "elasticloadbalancing:RemoveTags" diff --git a/internal/service/cloudformation/schemas/AWS_EventSchemas_Discoverer.json b/internal/service/cloudformation/schemas/AWS_EventSchemas_Discoverer.json index f58129c45..6b261ed39 100644 --- a/internal/service/cloudformation/schemas/AWS_EventSchemas_Discoverer.json +++ b/internal/service/cloudformation/schemas/AWS_EventSchemas_Discoverer.json @@ -74,7 +74,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "schemas:TagResource", + "schemas:UntagResource", + "schemas:ListTagsForResource" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_EventSchemas_Registry.json b/internal/service/cloudformation/schemas/AWS_EventSchemas_Registry.json index f84ff25ce..33fc1cd59 100644 --- a/internal/service/cloudformation/schemas/AWS_EventSchemas_Registry.json +++ b/internal/service/cloudformation/schemas/AWS_EventSchemas_Registry.json @@ -56,7 +56,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "schemas:TagResource", + "schemas:UntagResource", + "schemas:ListTagsForResource" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_EventSchemas_Schema.json b/internal/service/cloudformation/schemas/AWS_EventSchemas_Schema.json index 69295e60e..7416d509f 100644 --- a/internal/service/cloudformation/schemas/AWS_EventSchemas_Schema.json +++ b/internal/service/cloudformation/schemas/AWS_EventSchemas_Schema.json @@ -90,7 +90,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "schemas:TagResource", + "schemas:UntagResource", + "schemas:ListTagsForResource" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_ImageBuilder_Component.json b/internal/service/cloudformation/schemas/AWS_ImageBuilder_Component.json index 1a160cc32..3fa5dcc23 100644 --- a/internal/service/cloudformation/schemas/AWS_ImageBuilder_Component.json +++ b/internal/service/cloudformation/schemas/AWS_ImageBuilder_Component.json @@ -121,7 +121,15 @@ "/properties/Tags" ], "tagging": { - "taggable": false + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": false, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "imagebuilder:TagResource", + "imagebuilder:UnTagResource" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_ImageBuilder_ContainerRecipe.json b/internal/service/cloudformation/schemas/AWS_ImageBuilder_ContainerRecipe.json index e53282ead..f7c5f7505 100644 --- a/internal/service/cloudformation/schemas/AWS_ImageBuilder_ContainerRecipe.json +++ b/internal/service/cloudformation/schemas/AWS_ImageBuilder_ContainerRecipe.json @@ -296,7 +296,15 @@ "/properties/InstanceConfiguration/BlockDeviceMappings/*/Ebs/VolumeType": "$uppercase(VolumeType)" }, "tagging": { - "taggable": false + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": false, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "imagebuilder:TagResource", + "imagebuilder:UnTagResource" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_ImageBuilder_DistributionConfiguration.json b/internal/service/cloudformation/schemas/AWS_ImageBuilder_DistributionConfiguration.json index 32b48b08a..81bffbbe7 100644 --- a/internal/service/cloudformation/schemas/AWS_ImageBuilder_DistributionConfiguration.json +++ b/internal/service/cloudformation/schemas/AWS_ImageBuilder_DistributionConfiguration.json @@ -295,7 +295,11 @@ "/properties/Name" ], "tagging": { - "taggable": false + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags" }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_ImageBuilder_Image.json b/internal/service/cloudformation/schemas/AWS_ImageBuilder_Image.json index 9cc90f9ad..2934b0805 100644 --- a/internal/service/cloudformation/schemas/AWS_ImageBuilder_Image.json +++ b/internal/service/cloudformation/schemas/AWS_ImageBuilder_Image.json @@ -1,7 +1,15 @@ { "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", "tagging": { - "taggable": false + "permissions": [ + "imagebuilder:TagResource", + "imagebuilder:UnTagResource" + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": false, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true }, "oneOf": [ { diff --git a/internal/service/cloudformation/schemas/AWS_ImageBuilder_ImagePipeline.json b/internal/service/cloudformation/schemas/AWS_ImageBuilder_ImagePipeline.json index d405bb618..0f3e7ff15 100644 --- a/internal/service/cloudformation/schemas/AWS_ImageBuilder_ImagePipeline.json +++ b/internal/service/cloudformation/schemas/AWS_ImageBuilder_ImagePipeline.json @@ -229,7 +229,11 @@ "/properties/Name" ], "tagging": { - "taggable": false + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags" }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_ImageBuilder_ImageRecipe.json b/internal/service/cloudformation/schemas/AWS_ImageBuilder_ImageRecipe.json index 89f242433..5d8d8a329 100644 --- a/internal/service/cloudformation/schemas/AWS_ImageBuilder_ImageRecipe.json +++ b/internal/service/cloudformation/schemas/AWS_ImageBuilder_ImageRecipe.json @@ -226,7 +226,15 @@ "/properties/BlockDeviceMappings/*/Ebs/VolumeType": "$uppercase(VolumeType)" }, "tagging": { - "taggable": false + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": false, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "imagebuilder:TagResource", + "imagebuilder:UnTagResource" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_ImageBuilder_InfrastructureConfiguration.json b/internal/service/cloudformation/schemas/AWS_ImageBuilder_InfrastructureConfiguration.json index 6c1670b4f..7e2261b2c 100644 --- a/internal/service/cloudformation/schemas/AWS_ImageBuilder_InfrastructureConfiguration.json +++ b/internal/service/cloudformation/schemas/AWS_ImageBuilder_InfrastructureConfiguration.json @@ -191,7 +191,11 @@ "/properties/Name" ], "tagging": { - "taggable": false + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags" }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_ImageBuilder_LifecyclePolicy.json b/internal/service/cloudformation/schemas/AWS_ImageBuilder_LifecyclePolicy.json index b93b2a0a5..706237fc7 100644 --- a/internal/service/cloudformation/schemas/AWS_ImageBuilder_LifecyclePolicy.json +++ b/internal/service/cloudformation/schemas/AWS_ImageBuilder_LifecyclePolicy.json @@ -303,7 +303,11 @@ "/properties/Name" ], "tagging": { - "taggable": false + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags" }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_ImageBuilder_Workflow.json b/internal/service/cloudformation/schemas/AWS_ImageBuilder_Workflow.json index 63b007f79..f369d99ea 100644 --- a/internal/service/cloudformation/schemas/AWS_ImageBuilder_Workflow.json +++ b/internal/service/cloudformation/schemas/AWS_ImageBuilder_Workflow.json @@ -97,7 +97,15 @@ "/properties/Tags" ], "tagging": { - "taggable": false + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": false, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "imagebuilder:TagResource", + "imagebuilder:UnTagResource" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_IoT_SoftwarePackage.json b/internal/service/cloudformation/schemas/AWS_IoT_SoftwarePackage.json index 09bd9f0fc..231cfdbd2 100644 --- a/internal/service/cloudformation/schemas/AWS_IoT_SoftwarePackage.json +++ b/internal/service/cloudformation/schemas/AWS_IoT_SoftwarePackage.json @@ -58,8 +58,13 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] }, "readOnlyProperties": [ "/properties/PackageArn" diff --git a/internal/service/cloudformation/schemas/AWS_IoT_SoftwarePackageVersion.json b/internal/service/cloudformation/schemas/AWS_IoT_SoftwarePackageVersion.json index 53a9e117b..06613d89a 100644 --- a/internal/service/cloudformation/schemas/AWS_IoT_SoftwarePackageVersion.json +++ b/internal/service/cloudformation/schemas/AWS_IoT_SoftwarePackageVersion.json @@ -1,5 +1,6 @@ { "typeName": "AWS::IoT::SoftwarePackageVersion", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-iot", "description": "resource definition", "definitions": { "PackageVersionStatus": { @@ -10,6 +11,19 @@ "DEPRECATED" ] }, + "PackageVersionArtifact": { + "description": "The artifact location of the package version", + "type": "object", + "properties": { + "S3Location": { + "$ref": "#/definitions/S3Location" + } + }, + "required": [ + "S3Location" + ], + "additionalProperties": false + }, "ResourceAttributes": { "type": "object", "patternProperties": { @@ -44,12 +58,64 @@ "Value" ], "additionalProperties": false + }, + "Sbom": { + "description": "The sbom zip archive location of the package version", + "type": "object", + "properties": { + "S3Location": { + "$ref": "#/definitions/S3Location" + } + }, + "required": [ + "S3Location" + ], + "additionalProperties": false + }, + "S3Location": { + "description": "The Amazon S3 location", + "type": "object", + "properties": { + "Bucket": { + "type": "string", + "description": "The S3 bucket", + "minLength": 1 + }, + "Key": { + "type": "string", + "description": "The S3 key", + "minLength": 1 + }, + "Version": { + "type": "string", + "description": "The S3 version" + } + }, + "required": [ + "Bucket", + "Key", + "Version" + ], + "additionalProperties": false + }, + "SbomValidationStatus": { + "description": "The validation status of the Sbom file", + "type": "string", + "enum": [ + "IN_PROGRESS", + "FAILED", + "SUCCEEDED", + "" + ] } }, "properties": { "Attributes": { "$ref": "#/definitions/ResourceAttributes" }, + "Artifact": { + "$ref": "#/definitions/PackageVersionArtifact" + }, "Description": { "type": "string", "maxLength": 1024, @@ -69,6 +135,16 @@ "type": "string", "pattern": "^arn:[!-~]+$" }, + "Recipe": { + "description": "The inline json job document associated with a software package version", + "type": "string" + }, + "Sbom": { + "$ref": "#/definitions/Sbom" + }, + "SbomValidationStatus": { + "$ref": "#/definitions/SbomValidationStatus" + }, "Status": { "$ref": "#/definitions/PackageVersionStatus" }, @@ -93,7 +169,7 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, + "cloudFormationSystemTags": false, "tagProperty": "/properties/Tags", "permissions": [ "iot:TagResource", @@ -107,7 +183,8 @@ "readOnlyProperties": [ "/properties/ErrorReason", "/properties/PackageVersionArn", - "/properties/Status" + "/properties/Status", + "/properties/SbomValidationStatus" ], "createOnlyProperties": [ "/properties/PackageName", @@ -122,8 +199,11 @@ "permissions": [ "iot:CreatePackageVersion", "iot:GetPackageVersion", + "iot:ListTagsForResource", "iot:TagResource", - "iot:GetIndexingConfiguration" + "iot:GetIndexingConfiguration", + "s3:GetObjectVersion", + "iot:AssociateSbomWithPackageVersion" ] }, "read": { @@ -139,7 +219,10 @@ "iot:ListTagsForResource", "iot:TagResource", "iot:UntagResource", - "iot:GetIndexingConfiguration" + "iot:GetIndexingConfiguration", + "s3:GetObjectVersion", + "iot:AssociateSbomWithPackageVersion", + "iot:DisassociateSbomFromPackageVersion" ] }, "delete": { @@ -151,6 +234,16 @@ ] }, "list": { + "handlerSchema": { + "properties": { + "PackageName": { + "$ref": "resource-schema.json#/properties/PackageName" + } + }, + "required": [ + "PackageName" + ] + }, "permissions": [ "iot:ListPackageVersions" ] diff --git a/internal/service/cloudformation/schemas/AWS_MSK_Replicator.json b/internal/service/cloudformation/schemas/AWS_MSK_Replicator.json index 231f8e532..e3cf428d7 100644 --- a/internal/service/cloudformation/schemas/AWS_MSK_Replicator.json +++ b/internal/service/cloudformation/schemas/AWS_MSK_Replicator.json @@ -352,7 +352,8 @@ ] ], "readOnlyProperties": [ - "/properties/ReplicatorArn" + "/properties/ReplicatorArn", + "/properties/CurrentVersion" ], "createOnlyProperties": [ "/properties/ReplicatorName", diff --git a/internal/service/cloudformation/schemas/AWS_Omics_ReferenceStore.json b/internal/service/cloudformation/schemas/AWS_Omics_ReferenceStore.json index af6fefdca..4b4075ec8 100644 --- a/internal/service/cloudformation/schemas/AWS_Omics_ReferenceStore.json +++ b/internal/service/cloudformation/schemas/AWS_Omics_ReferenceStore.json @@ -88,9 +88,6 @@ "/properties/CreationTime", "/properties/ReferenceStoreId" ], - "writeOnlyProperties": [ - "/properties/Tags" - ], "createOnlyProperties": [ "/properties/Description", "/properties/Name", diff --git a/internal/service/cloudformation/schemas/AWS_Omics_SequenceStore.json b/internal/service/cloudformation/schemas/AWS_Omics_SequenceStore.json index d0728b391..35f8b8abf 100644 --- a/internal/service/cloudformation/schemas/AWS_Omics_SequenceStore.json +++ b/internal/service/cloudformation/schemas/AWS_Omics_SequenceStore.json @@ -94,9 +94,6 @@ "/properties/CreationTime", "/properties/SequenceStoreId" ], - "writeOnlyProperties": [ - "/properties/Tags" - ], "createOnlyProperties": [ "/properties/Description", "/properties/Name", diff --git a/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json b/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json index a9f023f18..e325eac08 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json @@ -55,7 +55,7 @@ "type": "boolean" }, "DatabaseInsightsMode": { - "description": "The mode of Database Insights to enable for the DB cluster.\n If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465.\n Valid for Cluster Type: Aurora DB clusters only", + "description": "The mode of Database Insights to enable for the DB cluster.\n If you set this value to ``advanced``, you must also set the ``PerformanceInsightsEnabled`` parameter to ``true`` and the ``PerformanceInsightsRetentionPeriod`` parameter to 465.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", "type": "string" }, "DatabaseName": { diff --git a/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json b/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json index a1ea48ca8..354246316 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json @@ -229,7 +229,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 [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." + "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 you don't specify a DB subnet group, RDS uses the default DB subnet group if one exists. If a default DB subnet group does not exist, and you don't specify a ``DBSubnetGroupName``, the DB instance fails to launch. \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", diff --git a/internal/service/cloudformation/schemas/AWS_RUM_AppMonitor.json b/internal/service/cloudformation/schemas/AWS_RUM_AppMonitor.json index d0258f25d..788dafe27 100644 --- a/internal/service/cloudformation/schemas/AWS_RUM_AppMonitor.json +++ b/internal/service/cloudformation/schemas/AWS_RUM_AppMonitor.json @@ -233,6 +233,26 @@ "Name" ] }, + "ResourcePolicy": { + "description": "A structure that defines resource policy attached to your app monitor.", + "additionalProperties": false, + "type": "object", + "properties": { + "PolicyDocument": { + "type": "string", + "description": "The JSON to use as the resource policy. The document can be up to 4 KB in size. " + }, + "PolicyRevisionId": { + "type": "string", + "description": "A string value that you can use to conditionally update your policy. You can provide the revision ID of your existing policy to make mutating requests against that policy. \n\n When you assign a policy revision ID, then later requests about that policy will be rejected with an InvalidPolicyRevisionIdException error if they don't provide the correct current revision ID.", + "minLength": 1, + "maxLength": 255 + } + }, + "required": [ + "PolicyDocument" + ] + }, "CustomEventsStatus": { "type": "string", "enum": [ @@ -286,6 +306,9 @@ }, "CustomEvents": { "$ref": "#/definitions/CustomEvents" + }, + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" } }, "additionalProperties": false, @@ -347,7 +370,9 @@ "rum:PutRumMetricsDestination", "rum:BatchCreateRumMetricDefinitions", "rum:ListRumMetricsDestinations", - "rum:BatchGetRumMetricDefinitions" + "rum:BatchGetRumMetricDefinitions", + "rum:GetResourcePolicy", + "rum:PutResourcePolicy" ] }, "read": { @@ -359,7 +384,8 @@ "s3:GetObjectAcl", "rum:ListTagsForResource", "rum:ListRumMetricsDestinations", - "rum:BatchGetRumMetricDefinitions" + "rum:BatchGetRumMetricDefinitions", + "rum:GetResourcePolicy" ] }, "update": { @@ -394,7 +420,10 @@ "rum:BatchCreateRumMetricDefinitions", "rum:BatchDeleteRumMetricDefinitions", "rum:BatchGetRumMetricDefinitions", - "rum:UpdateRumMetricDefinition" + "rum:UpdateRumMetricDefinition", + "rum:GetResourcePolicy", + "rum:PutResourcePolicy", + "rum:DeleteResourcePolicy" ] }, "delete": { @@ -411,7 +440,10 @@ "rum:DeleteRumMetricsDestination", "rum:BatchDeleteRumMetricDefinitions", "rum:ListRumMetricsDestinations", - "rum:BatchGetRumMetricDefinitions" + "rum:BatchGetRumMetricDefinitions", + "rum:GetResourcePolicy", + "rum:PutResourcePolicy", + "rum:DeleteResourcePolicy" ] }, "list": { diff --git a/internal/service/cloudformation/schemas/AWS_SageMaker_InferenceComponent.json b/internal/service/cloudformation/schemas/AWS_SageMaker_InferenceComponent.json index 217250e42..ea4ba44bd 100644 --- a/internal/service/cloudformation/schemas/AWS_SageMaker_InferenceComponent.json +++ b/internal/service/cloudformation/schemas/AWS_SageMaker_InferenceComponent.json @@ -26,6 +26,9 @@ "RuntimeConfig": { "$ref": "#/definitions/InferenceComponentRuntimeConfig" }, + "DeploymentConfig": { + "$ref": "#/definitions/InferenceComponentDeploymentConfig" + }, "InferenceComponentStatus": { "$ref": "#/definitions/InferenceComponentStatus" }, @@ -246,6 +249,108 @@ } } }, + "InferenceComponentDeploymentConfig": { + "description": "The deployment config for the inference component", + "type": "object", + "additionalProperties": false, + "properties": { + "RollingUpdatePolicy": { + "$ref": "#/definitions/InferenceComponentRollingUpdatePolicy" + }, + "AutoRollbackConfiguration": { + "$ref": "#/definitions/AutoRollbackConfiguration" + } + } + }, + "AutoRollbackConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "Alarms": { + "type": "array", + "minItems": 1, + "maxItems": 10, + "items": { + "$ref": "#/definitions/Alarm" + } + } + }, + "required": [ + "Alarms" + ] + }, + "Alarm": { + "type": "object", + "additionalProperties": false, + "properties": { + "AlarmName": { + "type": "string", + "minLength": 1, + "maxLength": 255, + "pattern": "" + } + }, + "required": [ + "AlarmName" + ] + }, + "InferenceComponentRollingUpdatePolicy": { + "description": "The rolling update policy for the inference component", + "type": "object", + "additionalProperties": false, + "properties": { + "MaximumBatchSize": { + "$ref": "#/definitions/InferenceComponentCapacitySize" + }, + "WaitIntervalInSeconds": { + "$ref": "#/definitions/WaitIntervalInSeconds" + }, + "RollbackMaximumBatchSize": { + "$ref": "#/definitions/InferenceComponentCapacitySize" + }, + "MaximumExecutionTimeoutInSeconds": { + "$ref": "#/definitions/MaximumExecutionTimeoutInSeconds" + } + } + }, + "WaitIntervalInSeconds": { + "type": "integer", + "minimum": 0, + "maximum": 3600 + }, + "MaximumExecutionTimeoutInSeconds": { + "type": "integer", + "minimum": 600, + "maximum": 28800 + }, + "InferenceComponentCapacitySize": { + "type": "object", + "description": "Capacity size configuration for the inference component", + "required": [ + "Type", + "Value" + ], + "additionalProperties": false, + "properties": { + "Type": { + "$ref": "#/definitions/InferenceComponentCapacitySizeType" + }, + "Value": { + "$ref": "#/definitions/CapacitySizeValue" + } + } + }, + "InferenceComponentCapacitySizeType": { + "type": "string", + "enum": [ + "COPY_COUNT", + "CAPACITY_PERCENT" + ] + }, + "CapacitySizeValue": { + "description": "The number of copies for the inference component", + "type": "integer" + }, "InferenceComponentStatus": { "type": "string", "enum": [ @@ -293,7 +398,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "sagemaker:AddTags", + "sagemaker:ListTags", + "sagemaker:DeleteTags" + ] }, "primaryIdentifier": [ "/properties/InferenceComponentArn" @@ -350,6 +460,7 @@ ], "writeOnlyProperties": [ "/properties/Specification/Container/Image", - "/properties/RuntimeConfig/CopyCount" + "/properties/RuntimeConfig/CopyCount", + "/properties/DeploymentConfig" ] } diff --git a/internal/service/cloudformation/schemas/AWS_Shield_Protection.json b/internal/service/cloudformation/schemas/AWS_Shield_Protection.json index 0c61e8804..af5c9e00e 100644 --- a/internal/service/cloudformation/schemas/AWS_Shield_Protection.json +++ b/internal/service/cloudformation/schemas/AWS_Shield_Protection.json @@ -16,8 +16,15 @@ "replacementStrategy": "delete_then_create", "tagging": { "taggable": true, + "tagOnCreate": true, + "tagUpdatable": 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_Shield_ProtectionGroup.json b/internal/service/cloudformation/schemas/AWS_Shield_ProtectionGroup.json index 2d7ef15fa..46c489c55 100644 --- a/internal/service/cloudformation/schemas/AWS_Shield_ProtectionGroup.json +++ b/internal/service/cloudformation/schemas/AWS_Shield_ProtectionGroup.json @@ -14,6 +14,8 @@ "replacementStrategy": "delete_then_create", "tagging": { "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, "tagProperty": "/properties/Tags", "cloudFormationSystemTags": false, "permissions": [ diff --git a/internal/service/cloudformation/schemas/AWS_XRay_TransactionSearchConfig.json b/internal/service/cloudformation/schemas/AWS_XRay_TransactionSearchConfig.json new file mode 100644 index 000000000..3e684cd19 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_XRay_TransactionSearchConfig.json @@ -0,0 +1,77 @@ +{ + "typeName": "AWS::XRay::TransactionSearchConfig", + "description": "This schema provides construct and validation rules for AWS-XRay TransactionSearchConfig resource parameters.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "properties": { + "AccountId": { + "$ref": "#/definitions/AccountId" + }, + "IndexingPercentage": { + "$ref": "#/definitions/IndexingPercentage" + } + }, + "definitions": { + "AccountId": { + "description": "User account id, used as the primary identifier for the resource", + "type": "string", + "pattern": "^\\d{12}$" + }, + "IndexingPercentage": { + "description": "Determines the percentage of traces indexed from CloudWatch Logs to X-Ray", + "type": "number", + "minimum": 0, + "maximum": 100 + } + }, + "tagging": { + "taggable": false + }, + "handlers": { + "create": { + "permissions": [ + "application-signals:StartDiscovery", + "iam:CreateServiceLinkedRole", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutRetentionPolicy", + "xray:GetIndexingRules", + "xray:GetTraceSegmentDestination", + "xray:UpdateIndexingRule", + "xray:UpdateTraceSegmentDestination" + ] + }, + "read": { + "permissions": [ + "xray:GetTraceSegmentDestination", + "xray:GetIndexingRules" + ] + }, + "list": { + "permissions": [ + "xray:GetTraceSegmentDestination", + "xray:GetIndexingRules" + ] + }, + "update": { + "permissions": [ + "xray:GetIndexingRules", + "xray:GetTraceSegmentDestination", + "xray:UpdateIndexingRule" + ] + }, + "delete": { + "permissions": [ + "xray:GetTraceSegmentDestination", + "xray:UpdateTraceSegmentDestination", + "xray:UpdateIndexingRule" + ] + } + }, + "additionalProperties": false, + "readOnlyProperties": [ + "/properties/AccountId" + ], + "primaryIdentifier": [ + "/properties/AccountId" + ] +}