diff --git a/CHANGELOG.md b/CHANGELOG.md index c9e8da5532..3da1a57bfc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,27 @@ ## 0.64.0 (Unreleased) +FEATURES: + +* **New Data Source:** `awscc_appconfig_configuration_profile` +* **New Data Source:** `awscc_cognito_user_pool_user_to_group_attachment` +* **New Data Source:** `awscc_ec2_vpc_gateway_attachment` +* **New Data Source:** `awscc_ec2_vpc_gateway_attachments` +* **New Data Source:** `awscc_events_rule` +* **New Data Source:** `awscc_events_rules` +* **New Data Source:** `awscc_iam_user` +* **New Data Source:** `awscc_iam_users` +* **New Data Source:** `awscc_medialive_multiplex` +* **New Data Source:** `awscc_medialive_multiplexes` +* **New Data Source:** `awscc_medialive_multiplexprogram` +* **New Data Source:** `awscc_route53resolver_firewall_domain_lists` +* **New Resource:** `awscc_appconfig_configuration_profile` +* **New Resource:** `awscc_cognito_user_pool_user_to_group_attachment` +* **New Resource:** `awscc_ec2_vpc_gateway_attachment` +* **New Resource:** `awscc_events_rule` +* **New Resource:** `awscc_iam_user` +* **New Resource:** `awscc_medialive_multiplex` +* **New Resource:** `awscc_medialive_multiplexprogram` + BREAKING CHANGES: * resource/awscc_apigatewayv2_api: `body` attribute's type has changed from `Map of String` to `String` and must be valid JSON diff --git a/docs/data-sources/apigateway_api_key.md b/docs/data-sources/apigateway_api_key.md index 7c9873d75f..ba80a8471e 100644 --- a/docs/data-sources/apigateway_api_key.md +++ b/docs/data-sources/apigateway_api_key.md @@ -21,23 +21,24 @@ Data Source schema for AWS::ApiGateway::ApiKey ### Read-Only -- `api_key_id` (String) A Unique Key ID which identifies the API Key. Generated by the Create API and returned by the Read and List APIs -- `customer_id` (String) An AWS Marketplace customer identifier to use when integrating with the AWS SaaS Marketplace. -- `description` (String) A description of the purpose of the API key. -- `enabled` (Boolean) Indicates whether the API key can be used by clients. -- `generate_distinct_id` (Boolean) Specifies whether the key identifier is distinct from the created API key value. This parameter is deprecated and should not be used. -- `name` (String) A name for the API key. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the API key name. -- `stage_keys` (Attributes List) A list of stages to associate with this API key. (see [below for nested schema](#nestedatt--stage_keys)) -- `tags` (Attributes List) An array of arbitrary tags (key-value pairs) to associate with the API key. (see [below for nested schema](#nestedatt--tags)) -- `value` (String) The value of the API key. Must be at least 20 characters long. +- `api_key_id` (String) +- `customer_id` (String) An MKT customer identifier, when integrating with the AWS SaaS Marketplace. +- `description` (String) The description of the ApiKey. +- `enabled` (Boolean) Specifies whether the ApiKey can be used by callers. +- `generate_distinct_id` (Boolean) Specifies whether (``true``) or not (``false``) the key identifier is distinct from the created API key value. This parameter is deprecated and should not be used. +- `name` (String) A name for the API key. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the API key name. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html). + If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name. +- `stage_keys` (Attributes List) DEPRECATED FOR USAGE PLANS - Specifies stages associated with the API key. (see [below for nested schema](#nestedatt--stage_keys)) +- `tags` (Attributes List) The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with ``aws:``. The tag value can be up to 256 characters. (see [below for nested schema](#nestedatt--tags)) +- `value` (String) Specifies a value of the API key. ### Nested Schema for `stage_keys` Read-Only: -- `rest_api_id` (String) The ID of a RestApi resource that includes the stage with which you want to associate the API key. -- `stage_name` (String) The name of the stage with which to associate the API key. The stage must be included in the RestApi resource that you specified in the RestApiId property. +- `rest_api_id` (String) The string identifier of the associated RestApi. +- `stage_name` (String) The stage name associated with the stage key. diff --git a/docs/data-sources/apigateway_client_certificate.md b/docs/data-sources/apigateway_client_certificate.md index 61c6e815b6..0497d12de6 100644 --- a/docs/data-sources/apigateway_client_certificate.md +++ b/docs/data-sources/apigateway_client_certificate.md @@ -21,7 +21,7 @@ Data Source schema for AWS::ApiGateway::ClientCertificate ### Read-Only -- `client_certificate_id` (String) The Primary Identifier of the Client Certficate, generated by a Create API Call +- `client_certificate_id` (String) - `description` (String) The description of the client certificate. - `tags` (Attributes List) The collection of tags. Each tag element is associated with a given resource. (see [below for nested schema](#nestedatt--tags)) diff --git a/docs/data-sources/apigateway_deployment.md b/docs/data-sources/apigateway_deployment.md index 3f50f52bfe..fc07de25da 100644 --- a/docs/data-sources/apigateway_deployment.md +++ b/docs/data-sources/apigateway_deployment.md @@ -22,7 +22,7 @@ Data Source schema for AWS::ApiGateway::Deployment ### Read-Only - `deployment_canary_settings` (Attributes) The input configuration for a canary deployment. (see [below for nested schema](#nestedatt--deployment_canary_settings)) -- `deployment_id` (String) Primary Id for this resource +- `deployment_id` (String) - `description` (String) The description for the Deployment resource to create. - `rest_api_id` (String) The string identifier of the associated RestApi. - `stage_description` (Attributes) The description of the Stage resource for the Deployment resource to create. To specify a stage description, you must also provide a stage name. (see [below for nested schema](#nestedatt--stage_description)) diff --git a/docs/data-sources/apigateway_documentation_part.md b/docs/data-sources/apigateway_documentation_part.md index 0b084ae895..b209a17952 100644 --- a/docs/data-sources/apigateway_documentation_part.md +++ b/docs/data-sources/apigateway_documentation_part.md @@ -21,7 +21,7 @@ Data Source schema for AWS::ApiGateway::DocumentationPart ### Read-Only -- `documentation_part_id` (String) The identifier of the documentation Part. +- `documentation_part_id` (String) - `location` (Attributes) The location of the targeted API entity of the to-be-created documentation part. (see [below for nested schema](#nestedatt--location)) - `properties` (String) The new documentation content map of the targeted API entity. Enclosed key-value pairs are API-specific, but only OpenAPI-compliant key-value pairs can be exported and, hence, published. - `rest_api_id` (String) The string identifier of the associated RestApi. diff --git a/docs/data-sources/apigateway_request_validator.md b/docs/data-sources/apigateway_request_validator.md index 4e3a9a3a0a..1f3bed4e65 100644 --- a/docs/data-sources/apigateway_request_validator.md +++ b/docs/data-sources/apigateway_request_validator.md @@ -21,8 +21,8 @@ Data Source schema for AWS::ApiGateway::RequestValidator ### Read-Only -- `name` (String) Name of the request validator. -- `request_validator_id` (String) ID of the request validator. -- `rest_api_id` (String) The identifier of the targeted API entity. -- `validate_request_body` (Boolean) Indicates whether to validate the request body according to the configured schema for the targeted API and method. -- `validate_request_parameters` (Boolean) Indicates whether to validate request parameters. +- `name` (String) The name of this RequestValidator +- `request_validator_id` (String) +- `rest_api_id` (String) The string identifier of the associated RestApi. +- `validate_request_body` (Boolean) A Boolean flag to indicate whether to validate a request body according to the configured Model schema. +- `validate_request_parameters` (Boolean) A Boolean flag to indicate whether to validate request parameters (``true``) or not (``false``). diff --git a/docs/data-sources/apigateway_resource.md b/docs/data-sources/apigateway_resource.md index 1b3baa994a..f092b58cb7 100644 --- a/docs/data-sources/apigateway_resource.md +++ b/docs/data-sources/apigateway_resource.md @@ -23,5 +23,5 @@ Data Source schema for AWS::ApiGateway::Resource - `parent_id` (String) The parent resource's identifier. - `path_part` (String) The last path segment for this resource. -- `resource_id` (String) A unique primary identifier for a Resource +- `resource_id` (String) - `rest_api_id` (String) The string identifier of the associated RestApi. diff --git a/docs/data-sources/apigateway_usage_plan.md b/docs/data-sources/apigateway_usage_plan.md index ed9d74d8d2..d2b4054b75 100644 --- a/docs/data-sources/apigateway_usage_plan.md +++ b/docs/data-sources/apigateway_usage_plan.md @@ -21,29 +21,29 @@ Data Source schema for AWS::ApiGateway::UsagePlan ### Read-Only -- `api_stages` (Attributes List) The API stages to associate with this usage plan. (see [below for nested schema](#nestedatt--api_stages)) -- `description` (String) A description of the usage plan. -- `quota` (Attributes) Configures the number of requests that users can make within a given interval. (see [below for nested schema](#nestedatt--quota)) -- `tags` (Attributes List) An array of arbitrary tags (key-value pairs) to associate with the usage plan. (see [below for nested schema](#nestedatt--tags)) -- `throttle` (Attributes) Configures the overall request rate (average requests per second) and burst capacity. (see [below for nested schema](#nestedatt--throttle)) -- `usage_plan_name` (String) A name for the usage plan. +- `api_stages` (Attributes List) The associated API stages of a usage plan. (see [below for nested schema](#nestedatt--api_stages)) +- `description` (String) The description of a usage plan. +- `quota` (Attributes) The target maximum number of permitted requests per a given unit time interval. (see [below for nested schema](#nestedatt--quota)) +- `tags` (Attributes List) The collection of tags. Each tag element is associated with a given resource. (see [below for nested schema](#nestedatt--tags)) +- `throttle` (Attributes) A map containing method level throttling information for API stage in a usage plan. (see [below for nested schema](#nestedatt--throttle)) +- `usage_plan_name` (String) The name of a usage plan. ### Nested Schema for `api_stages` Read-Only: -- `api_id` (String) The ID of an API that is in the specified Stage property that you want to associate with the usage plan. -- `stage` (String) The name of the stage to associate with the usage plan. -- `throttle` (Attributes Map) Map containing method-level throttling information for an API stage in a usage plan. The key for the map is the path and method for which to configure custom throttling, for example, '/pets/GET'. Duplicates are not allowed. (see [below for nested schema](#nestedatt--api_stages--throttle)) +- `api_id` (String) API Id of the associated API stage in a usage plan. +- `stage` (String) API stage name of the associated API stage in a usage plan. +- `throttle` (Attributes Map) Map containing method level throttling information for API stage in a usage plan. (see [below for nested schema](#nestedatt--api_stages--throttle)) ### Nested Schema for `api_stages.throttle` Read-Only: -- `burst_limit` (Number) The maximum API request rate limit over a time ranging from one to a few seconds. The maximum API request rate limit depends on whether the underlying token bucket is at its full capacity. -- `rate_limit` (Number) The API request steady-state rate limit (average requests per second over an extended period of time). +- `burst_limit` (Number) The API target request burst rate limit. This allows more requests through for a period of time than the target rate limit. +- `rate_limit` (Number) The API target request rate limit. @@ -52,9 +52,9 @@ Read-Only: Read-Only: -- `limit` (Number) The maximum number of requests that users can make within the specified time period. -- `offset` (Number) For the initial time period, the number of requests to subtract from the specified limit. When you first implement a usage plan, the plan might start in the middle of the week or month. With this property, you can decrease the limit for this initial time period. -- `period` (String) The time period for which the maximum limit of requests applies, such as DAY or WEEK. For valid values, see the period property for the UsagePlan resource in the Amazon API Gateway REST API Reference. +- `limit` (Number) The target maximum number of requests that can be made in a given time period. +- `offset` (Number) The number of requests subtracted from the given limit in the initial time period. +- `period` (String) The time period in which the limit applies. Valid values are "DAY", "WEEK" or "MONTH". @@ -71,5 +71,5 @@ Read-Only: Read-Only: -- `burst_limit` (Number) The maximum API request rate limit over a time ranging from one to a few seconds. The maximum API request rate limit depends on whether the underlying token bucket is at its full capacity. -- `rate_limit` (Number) The API request steady-state rate limit (average requests per second over an extended period of time). +- `burst_limit` (Number) The API target request burst rate limit. This allows more requests through for a period of time than the target rate limit. +- `rate_limit` (Number) The API target request rate limit. diff --git a/docs/data-sources/appconfig_application.md b/docs/data-sources/appconfig_application.md index 2d28019353..599c866f1c 100644 --- a/docs/data-sources/appconfig_application.md +++ b/docs/data-sources/appconfig_application.md @@ -31,5 +31,5 @@ Data Source schema for AWS::AppConfig::Application Read-Only: -- `key` (String) The key-value string map. The valid character set is [a-zA-Z1-9+-=._:/]. The tag key can be up to 128 characters and must not start with aws:. +- `key` (String) The key-value string map. The valid character set is [a-zA-Z1-9 +-=._:/-]. The tag key can be up to 128 characters and must not start with aws:. - `value` (String) The tag value can be up to 256 characters. diff --git a/docs/data-sources/appconfig_configuration_profile.md b/docs/data-sources/appconfig_configuration_profile.md new file mode 100644 index 0000000000..04cba8c796 --- /dev/null +++ b/docs/data-sources/appconfig_configuration_profile.md @@ -0,0 +1,51 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_appconfig_configuration_profile Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::AppConfig::ConfigurationProfile +--- + +# awscc_appconfig_configuration_profile (Data Source) + +Data Source schema for AWS::AppConfig::ConfigurationProfile + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `application_id` (String) The application ID. +- `configuration_profile_id` (String) The configuration profile ID +- `description` (String) A description of the configuration profile. +- `kms_key_arn` (String) The Amazon Resource Name of the AWS Key Management Service key to encrypt new configuration data versions in the AWS AppConfig hosted configuration store. This attribute is only used for hosted configuration types. To encrypt data managed in other configuration stores, see the documentation for how to specify an AWS KMS key for that particular service. +- `kms_key_identifier` (String) The AWS Key Management Service key identifier (key ID, key alias, or key ARN) provided when the resource was created or updated. +- `location_uri` (String) A URI to locate the configuration. You can specify the AWS AppConfig hosted configuration store, Systems Manager (SSM) document, an SSM Parameter Store parameter, or an Amazon S3 object. +- `name` (String) A name for the configuration profile. +- `retrieval_role_arn` (String) The ARN of an IAM role with permission to access the configuration at the specified LocationUri. +- `tags` (Attributes List) Metadata to assign to the configuration profile. Tags help organize and categorize your AWS AppConfig resources. Each tag consists of a key and an optional value, both of which you define. (see [below for nested schema](#nestedatt--tags)) +- `type` (String) The type of configurations contained in the profile. When calling this API, enter one of the following values for Type: AWS.AppConfig.FeatureFlags, AWS.Freeform +- `validators` (Attributes List) A list of methods for validating the configuration. (see [below for nested schema](#nestedatt--validators)) + + +### Nested Schema for `tags` + +Read-Only: + +- `key` (String) The key-value string map. The tag key can be up to 128 characters and must not start with aws:. +- `value` (String) The tag value can be up to 256 characters. + + + +### Nested Schema for `validators` + +Read-Only: + +- `content` (String) Either the JSON Schema content or the Amazon Resource Name (ARN) of an Lambda function. +- `type` (String) AWS AppConfig supports validators of type JSON_SCHEMA and LAMBDA. diff --git a/docs/data-sources/apprunner_service.md b/docs/data-sources/apprunner_service.md index ef68e2690e..32b4884195 100644 --- a/docs/data-sources/apprunner_service.md +++ b/docs/data-sources/apprunner_service.md @@ -73,6 +73,7 @@ Read-Only: - `egress_configuration` (Attributes) Network egress configuration (see [below for nested schema](#nestedatt--network_configuration--egress_configuration)) - `ingress_configuration` (Attributes) Network ingress configuration (see [below for nested schema](#nestedatt--network_configuration--ingress_configuration)) +- `ip_address_type` (String) App Runner service endpoint IP address type ### Nested Schema for `network_configuration.egress_configuration` diff --git a/docs/data-sources/cognito_user_pool_user_to_group_attachment.md b/docs/data-sources/cognito_user_pool_user_to_group_attachment.md new file mode 100644 index 0000000000..36d086454f --- /dev/null +++ b/docs/data-sources/cognito_user_pool_user_to_group_attachment.md @@ -0,0 +1,26 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_cognito_user_pool_user_to_group_attachment Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Cognito::UserPoolUserToGroupAttachment +--- + +# awscc_cognito_user_pool_user_to_group_attachment (Data Source) + +Data Source schema for AWS::Cognito::UserPoolUserToGroupAttachment + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `group_name` (String) +- `user_pool_id` (String) +- `username` (String) diff --git a/docs/data-sources/ec2_ipam.md b/docs/data-sources/ec2_ipam.md index 64c11f93b5..c519e8ec2f 100644 --- a/docs/data-sources/ec2_ipam.md +++ b/docs/data-sources/ec2_ipam.md @@ -32,6 +32,7 @@ Data Source schema for AWS::EC2::IPAM - `resource_discovery_association_count` (Number) The count of resource discoveries associated with this IPAM. - `scope_count` (Number) The number of scopes that currently exist in this IPAM. - `tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) +- `tier` (String) The tier of the IPAM. ### Nested Schema for `operating_regions` diff --git a/docs/data-sources/ec2_subnet.md b/docs/data-sources/ec2_subnet.md index 05ead22671..6c90e29689 100644 --- a/docs/data-sources/ec2_subnet.md +++ b/docs/data-sources/ec2_subnet.md @@ -26,9 +26,11 @@ Data Source schema for AWS::EC2::Subnet - `availability_zone_id` (String) - `cidr_block` (String) - `enable_dns_64` (Boolean) +- `ipv_4_netmask_length` (Number) The netmask length of the IPv4 CIDR you want to allocate to this subnet from an Amazon VPC IP Address Manager (IPAM) pool - `ipv_6_cidr_block` (String) - `ipv_6_cidr_blocks` (List of String) - `ipv_6_native` (Boolean) +- `ipv_6_netmask_length` (Number) The netmask length of the IPv6 CIDR you want to allocate to this subnet from an Amazon VPC IP Address Manager (IPAM) pool - `map_public_ip_on_launch` (Boolean) - `network_acl_association_id` (String) - `outpost_arn` (String) diff --git a/docs/data-sources/ec2_vpc_gateway_attachment.md b/docs/data-sources/ec2_vpc_gateway_attachment.md new file mode 100644 index 0000000000..360a7fb0e1 --- /dev/null +++ b/docs/data-sources/ec2_vpc_gateway_attachment.md @@ -0,0 +1,27 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_ec2_vpc_gateway_attachment Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::EC2::VPCGatewayAttachment +--- + +# awscc_ec2_vpc_gateway_attachment (Data Source) + +Data Source schema for AWS::EC2::VPCGatewayAttachment + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `attachment_type` (String) Used to identify if this resource is an Internet Gateway or Vpn Gateway Attachment +- `internet_gateway_id` (String) The ID of the internet gateway. You must specify either InternetGatewayId or VpnGatewayId, but not both. +- `vpc_id` (String) The ID of the VPC. +- `vpn_gateway_id` (String) The ID of the virtual private gateway. You must specify either InternetGatewayId or VpnGatewayId, but not both. diff --git a/docs/data-sources/ec2_vpc_gateway_attachments.md b/docs/data-sources/ec2_vpc_gateway_attachments.md new file mode 100644 index 0000000000..a547ad01be --- /dev/null +++ b/docs/data-sources/ec2_vpc_gateway_attachments.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_ec2_vpc_gateway_attachments Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::EC2::VPCGatewayAttachment +--- + +# awscc_ec2_vpc_gateway_attachments (Data Source) + +Plural Data Source schema for AWS::EC2::VPCGatewayAttachment + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/events_rule.md b/docs/data-sources/events_rule.md new file mode 100644 index 0000000000..d304725f0f --- /dev/null +++ b/docs/data-sources/events_rule.md @@ -0,0 +1,257 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_events_rule Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Events::Rule +--- + +# awscc_events_rule (Data Source) + +Data Source schema for AWS::Events::Rule + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `arn` (String) The ARN of the rule, such as arn:aws:events:us-east-2:123456789012:rule/example. +- `description` (String) The description of the rule. +- `event_bus_name` (String) The name or ARN of the event bus associated with the rule. If you omit this, the default event bus is used. +- `event_pattern` (String) The event pattern of the rule. For more information, see Events and Event Patterns in the Amazon EventBridge User Guide. +- `name` (String) The name of the rule. +- `role_arn` (String) The Amazon Resource Name (ARN) of the role that is used for target invocation. +- `schedule_expression` (String) The scheduling expression. For example, "cron(0 20 * * ? *)", "rate(5 minutes)". For more information, see Creating an Amazon EventBridge rule that runs on a schedule. +- `state` (String) The state of the rule. +- `targets` (Attributes Set) Adds the specified targets to the specified rule, or updates the targets if they are already associated with the rule. +Targets are the resources that are invoked when a rule is triggered. (see [below for nested schema](#nestedatt--targets)) + + +### Nested Schema for `targets` + +Read-Only: + +- `arn` (String) +- `batch_parameters` (Attributes) (see [below for nested schema](#nestedatt--targets--batch_parameters)) +- `dead_letter_config` (Attributes) (see [below for nested schema](#nestedatt--targets--dead_letter_config)) +- `ecs_parameters` (Attributes) (see [below for nested schema](#nestedatt--targets--ecs_parameters)) +- `http_parameters` (Attributes) (see [below for nested schema](#nestedatt--targets--http_parameters)) +- `id` (String) +- `input` (String) +- `input_path` (String) +- `input_transformer` (Attributes) (see [below for nested schema](#nestedatt--targets--input_transformer)) +- `kinesis_parameters` (Attributes) (see [below for nested schema](#nestedatt--targets--kinesis_parameters)) +- `redshift_data_parameters` (Attributes) (see [below for nested schema](#nestedatt--targets--redshift_data_parameters)) +- `retry_policy` (Attributes) (see [below for nested schema](#nestedatt--targets--retry_policy)) +- `role_arn` (String) +- `run_command_parameters` (Attributes) (see [below for nested schema](#nestedatt--targets--run_command_parameters)) +- `sage_maker_pipeline_parameters` (Attributes) (see [below for nested schema](#nestedatt--targets--sage_maker_pipeline_parameters)) +- `sqs_parameters` (Attributes) (see [below for nested schema](#nestedatt--targets--sqs_parameters)) + + +### Nested Schema for `targets.batch_parameters` + +Read-Only: + +- `array_properties` (Attributes) (see [below for nested schema](#nestedatt--targets--batch_parameters--array_properties)) +- `job_definition` (String) +- `job_name` (String) +- `retry_strategy` (Attributes) (see [below for nested schema](#nestedatt--targets--batch_parameters--retry_strategy)) + + +### Nested Schema for `targets.batch_parameters.array_properties` + +Read-Only: + +- `size` (Number) + + + +### Nested Schema for `targets.batch_parameters.retry_strategy` + +Read-Only: + +- `attempts` (Number) + + + + +### Nested Schema for `targets.dead_letter_config` + +Read-Only: + +- `arn` (String) + + + +### Nested Schema for `targets.ecs_parameters` + +Read-Only: + +- `capacity_provider_strategy` (Attributes List) (see [below for nested schema](#nestedatt--targets--ecs_parameters--capacity_provider_strategy)) +- `enable_ecs_managed_tags` (Boolean) +- `enable_execute_command` (Boolean) +- `group` (String) +- `launch_type` (String) +- `network_configuration` (Attributes) (see [below for nested schema](#nestedatt--targets--ecs_parameters--network_configuration)) +- `placement_constraints` (Attributes List) (see [below for nested schema](#nestedatt--targets--ecs_parameters--placement_constraints)) +- `placement_strategies` (Attributes List) (see [below for nested schema](#nestedatt--targets--ecs_parameters--placement_strategies)) +- `platform_version` (String) +- `propagate_tags` (String) +- `reference_id` (String) +- `tag_list` (Attributes List) (see [below for nested schema](#nestedatt--targets--ecs_parameters--tag_list)) +- `task_count` (Number) +- `task_definition_arn` (String) + + +### Nested Schema for `targets.ecs_parameters.capacity_provider_strategy` + +Read-Only: + +- `base` (Number) +- `capacity_provider` (String) +- `weight` (Number) + + + +### Nested Schema for `targets.ecs_parameters.network_configuration` + +Read-Only: + +- `aws_vpc_configuration` (Attributes) (see [below for nested schema](#nestedatt--targets--ecs_parameters--network_configuration--aws_vpc_configuration)) + + +### Nested Schema for `targets.ecs_parameters.network_configuration.aws_vpc_configuration` + +Read-Only: + +- `assign_public_ip` (String) +- `security_groups` (List of String) +- `subnets` (List of String) + + + + +### Nested Schema for `targets.ecs_parameters.placement_constraints` + +Read-Only: + +- `expression` (String) +- `type` (String) + + + +### Nested Schema for `targets.ecs_parameters.placement_strategies` + +Read-Only: + +- `field` (String) +- `type` (String) + + + +### Nested Schema for `targets.ecs_parameters.tag_list` + +Read-Only: + +- `key` (String) +- `value` (String) + + + + +### Nested Schema for `targets.http_parameters` + +Read-Only: + +- `header_parameters` (Map of String) +- `path_parameter_values` (List of String) +- `query_string_parameters` (Map of String) + + + +### Nested Schema for `targets.input_transformer` + +Read-Only: + +- `input_paths_map` (Map of String) +- `input_template` (String) + + + +### Nested Schema for `targets.kinesis_parameters` + +Read-Only: + +- `partition_key_path` (String) + + + +### Nested Schema for `targets.redshift_data_parameters` + +Read-Only: + +- `database` (String) +- `db_user` (String) +- `secret_manager_arn` (String) +- `sql` (String) +- `sqls` (List of String) +- `statement_name` (String) +- `with_event` (Boolean) + + + +### Nested Schema for `targets.retry_policy` + +Read-Only: + +- `maximum_event_age_in_seconds` (Number) +- `maximum_retry_attempts` (Number) + + + +### Nested Schema for `targets.run_command_parameters` + +Read-Only: + +- `run_command_targets` (Attributes List) (see [below for nested schema](#nestedatt--targets--run_command_parameters--run_command_targets)) + + +### Nested Schema for `targets.run_command_parameters.run_command_targets` + +Read-Only: + +- `key` (String) +- `values` (List of String) + + + + +### Nested Schema for `targets.sage_maker_pipeline_parameters` + +Read-Only: + +- `pipeline_parameter_list` (Attributes List) (see [below for nested schema](#nestedatt--targets--sage_maker_pipeline_parameters--pipeline_parameter_list)) + + +### Nested Schema for `targets.sage_maker_pipeline_parameters.pipeline_parameter_list` + +Read-Only: + +- `name` (String) +- `value` (String) + + + + +### Nested Schema for `targets.sqs_parameters` + +Read-Only: + +- `message_group_id` (String) diff --git a/docs/data-sources/events_rules.md b/docs/data-sources/events_rules.md new file mode 100644 index 0000000000..14cc5811bf --- /dev/null +++ b/docs/data-sources/events_rules.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_events_rules Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::Events::Rule +--- + +# awscc_events_rules (Data Source) + +Plural Data Source schema for AWS::Events::Rule + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/gamelift_fleet.md b/docs/data-sources/gamelift_fleet.md index baf2cf29ee..09cc39f577 100644 --- a/docs/data-sources/gamelift_fleet.md +++ b/docs/data-sources/gamelift_fleet.md @@ -22,6 +22,7 @@ Data Source schema for AWS::GameLift::Fleet ### Read-Only - `anywhere_configuration` (Attributes) Configuration for Anywhere fleet. (see [below for nested schema](#nestedatt--anywhere_configuration)) +- `apply_capacity` (String) ComputeType to differentiate EC2 hardware managed by GameLift and Anywhere hardware managed by the customer. - `build_id` (String) A unique identifier for a build to be deployed on the new fleet. If you are deploying the fleet with a custom game build, you must specify this property. The build must have been successfully uploaded to Amazon GameLift and be in a READY status. This fleet setting cannot be changed once the fleet is created. - `certificate_configuration` (Attributes) Indicates whether to generate a TLS/SSL certificate for the new fleet. TLS certificates are used for encrypting traffic between game clients and game servers running on GameLift. If this parameter is not set, certificate generation is disabled. This fleet setting cannot be changed once the fleet is created. (see [below for nested schema](#nestedatt--certificate_configuration)) - `compute_type` (String) ComputeType to differentiate EC2 hardware managed by GameLift and Anywhere hardware managed by the customer. @@ -46,6 +47,7 @@ Data Source schema for AWS::GameLift::Fleet - `runtime_configuration` (Attributes) Instructions for launching server processes on each instance in the fleet. Server processes run either a custom game build executable or a Realtime script. The runtime configuration defines the server executables or launch script file, launch parameters, and the number of processes to run concurrently on each instance. When creating a fleet, the runtime configuration must have at least one server process configuration; otherwise the request fails with an invalid request exception. This parameter is required unless the parameters ServerLaunchPath and ServerLaunchParameters are defined. Runtime configuration has replaced these parameters, but fleets that use them will continue to work. (see [below for nested schema](#nestedatt--runtime_configuration)) +- `scaling_policies` (Attributes List) A list of rules that control how a fleet is scaled. (see [below for nested schema](#nestedatt--scaling_policies)) - `script_id` (String) A unique identifier for a Realtime script to be deployed on a new Realtime Servers fleet. The script must have been successfully uploaded to Amazon GameLift. This fleet setting cannot be changed once the fleet is created. Note: It is not currently possible to use the !Ref command to reference a script created with a CloudFormation template for the fleet property ScriptId. Instead, use Fn::GetAtt Script.Arn or Fn::GetAtt Script.Id to retrieve either of these properties as input for ScriptId. Alternatively, enter a ScriptId string manually. @@ -128,3 +130,30 @@ Windows (for custom game builds only): C:\game. Example: "C:\game\MyGame\server. Linux: /local/game. Examples: "/local/game/MyGame/server.exe" or "/local/game/MyRealtimeScript.js" - `parameters` (String) An optional list of parameters to pass to the server executable or Realtime script on launch. + + + + +### Nested Schema for `scaling_policies` + +Read-Only: + +- `comparison_operator` (String) Comparison operator to use when measuring a metric against the threshold value. +- `evaluation_periods` (Number) Length of time (in minutes) the metric must be at or beyond the threshold before a scaling event is triggered. +- `location` (String) +- `metric_name` (String) Name of the Amazon GameLift-defined metric that is used to trigger a scaling adjustment. +- `name` (String) A descriptive label that is associated with a fleet's scaling policy. Policy names do not need to be unique. +- `policy_type` (String) The type of scaling policy to create. For a target-based policy, set the parameter MetricName to 'PercentAvailableGameSessions' and specify a TargetConfiguration. For a rule-based policy set the following parameters: MetricName, ComparisonOperator, Threshold, EvaluationPeriods, ScalingAdjustmentType, and ScalingAdjustment. +- `scaling_adjustment` (Number) Amount of adjustment to make, based on the scaling adjustment type. +- `scaling_adjustment_type` (String) The type of adjustment to make to a fleet's instance count. +- `status` (String) Current status of the scaling policy. The scaling policy can be in force only when in an ACTIVE status. Scaling policies can be suspended for individual fleets. If the policy is suspended for a fleet, the policy status does not change. +- `target_configuration` (Attributes) An object that contains settings for a target-based scaling policy. (see [below for nested schema](#nestedatt--scaling_policies--target_configuration)) +- `threshold` (Number) Metric value used to trigger a scaling event. +- `update_status` (String) The current status of the fleet's scaling policies in a requested fleet location. The status PENDING_UPDATE indicates that an update was requested for the fleet but has not yet been completed for the location. + + +### Nested Schema for `scaling_policies.target_configuration` + +Read-Only: + +- `target_value` (Number) Desired value to use with a target-based scaling policy. The value must be relevant for whatever metric the scaling policy is using. For example, in a policy using the metric PercentAvailableGameSessions, the target value should be the preferred size of the fleet's buffer (the percent of capacity that should be idle and ready for new game sessions). diff --git a/docs/data-sources/iam_user.md b/docs/data-sources/iam_user.md new file mode 100644 index 0000000000..3f381960a7 --- /dev/null +++ b/docs/data-sources/iam_user.md @@ -0,0 +1,58 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_iam_user Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::IAM::User +--- + +# awscc_iam_user (Data Source) + +Data Source schema for AWS::IAM::User + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `arn` (String) The Amazon Resource Name (ARN) that identifies the user. For more information about ARNs and how to use ARNs in policies, see IAM Identifiers in the IAM User Guide. +- `groups` (List of String) A list of group names to which you want to add the user. +- `login_profile` (Attributes) Creates a password for the specified IAM user. A password allows an IAM user to access AWS services through the AWS Management Console. (see [below for nested schema](#nestedatt--login_profile)) +- `managed_policy_arns` (Set of String) A list of Amazon Resource Names (ARNs) of the IAM managed policies that you want to attach to the role. +- `path` (String) The path to the user. For more information about paths, see IAM identifiers in the IAM User Guide. The ARN of the policy used to set the permissions boundary for the user. +- `permissions_boundary` (String) The ARN of the policy that is used to set the permissions boundary for the user. +- `policies` (Attributes List) Adds or updates an inline policy document that is embedded in the specified IAM role. (see [below for nested schema](#nestedatt--policies)) +- `tags` (Attributes List) A list of tags that are associated with the user. For more information about tagging, see Tagging IAM resources in the IAM User Guide. (see [below for nested schema](#nestedatt--tags)) +- `user_name` (String) The friendly name identifying the user. + + +### Nested Schema for `login_profile` + +Read-Only: + +- `password` (String) The user's password. +- `password_reset_required` (Boolean) Specifies whether the user is required to set a new password on next sign-in. + + + +### Nested Schema for `policies` + +Read-Only: + +- `policy_document` (String) The policy document. +- `policy_name` (String) The friendly name (not ARN) identifying the policy. + + + +### Nested Schema for `tags` + +Read-Only: + +- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. diff --git a/docs/data-sources/iam_users.md b/docs/data-sources/iam_users.md new file mode 100644 index 0000000000..61558d9257 --- /dev/null +++ b/docs/data-sources/iam_users.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_iam_users Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::IAM::User +--- + +# awscc_iam_users (Data Source) + +Plural Data Source schema for AWS::IAM::User + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/medialive_multiplex.md b/docs/data-sources/medialive_multiplex.md new file mode 100644 index 0000000000..846a682813 --- /dev/null +++ b/docs/data-sources/medialive_multiplex.md @@ -0,0 +1,67 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_medialive_multiplex Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::MediaLive::Multiplex +--- + +# awscc_medialive_multiplex (Data Source) + +Data Source schema for AWS::MediaLive::Multiplex + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `arn` (String) The unique arn of the multiplex. +- `availability_zones` (List of String) A list of availability zones for the multiplex. +- `destinations` (Attributes List) A list of the multiplex output destinations. (see [below for nested schema](#nestedatt--destinations)) +- `multiplex_settings` (Attributes) Configuration for a multiplex event. (see [below for nested schema](#nestedatt--multiplex_settings)) +- `name` (String) Name of multiplex. +- `pipelines_running_count` (Number) The number of currently healthy pipelines. +- `program_count` (Number) The number of programs in the multiplex. +- `state` (String) +- `tags` (Attributes List) A collection of key-value pairs. (see [below for nested schema](#nestedatt--tags)) + + +### Nested Schema for `destinations` + +Read-Only: + +- `multiplex_media_connect_output_destination_settings` (Attributes) Multiplex MediaConnect output destination settings. (see [below for nested schema](#nestedatt--destinations--multiplex_media_connect_output_destination_settings)) + + +### Nested Schema for `destinations.multiplex_media_connect_output_destination_settings` + +Read-Only: + +- `entitlement_arn` (String) The MediaConnect entitlement ARN available as a Flow source. + + + + +### Nested Schema for `multiplex_settings` + +Read-Only: + +- `maximum_video_buffer_delay_milliseconds` (Number) Maximum video buffer delay in milliseconds. +- `transport_stream_bitrate` (Number) Transport stream bit rate. +- `transport_stream_id` (Number) Transport stream ID. +- `transport_stream_reserved_bitrate` (Number) Transport stream reserved bit rate. + + + +### Nested Schema for `tags` + +Read-Only: + +- `key` (String) +- `value` (String) diff --git a/docs/data-sources/medialive_multiplexes.md b/docs/data-sources/medialive_multiplexes.md new file mode 100644 index 0000000000..a4fbcd6e3f --- /dev/null +++ b/docs/data-sources/medialive_multiplexes.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_medialive_multiplexes Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::MediaLive::Multiplex +--- + +# awscc_medialive_multiplexes (Data Source) + +Plural Data Source schema for AWS::MediaLive::Multiplex + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/medialive_multiplexprogram.md b/docs/data-sources/medialive_multiplexprogram.md new file mode 100644 index 0000000000..1f7a1b7f99 --- /dev/null +++ b/docs/data-sources/medialive_multiplexprogram.md @@ -0,0 +1,103 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_medialive_multiplexprogram Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::MediaLive::Multiplexprogram +--- + +# awscc_medialive_multiplexprogram (Data Source) + +Data Source schema for AWS::MediaLive::Multiplexprogram + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `channel_id` (String) The MediaLive channel associated with the program. +- `multiplex_id` (String) The ID of the multiplex that the program belongs to. +- `multiplex_program_settings` (Attributes) The settings for this multiplex program. (see [below for nested schema](#nestedatt--multiplex_program_settings)) +- `packet_identifiers_map` (Attributes) The packet identifier map for this multiplex program. (see [below for nested schema](#nestedatt--packet_identifiers_map)) +- `pipeline_details` (Attributes List) Contains information about the current sources for the specified program in the specified multiplex. Keep in mind that each multiplex pipeline connects to both pipelines in a given source channel (the channel identified by the program). But only one of those channel pipelines is ever active at one time. (see [below for nested schema](#nestedatt--pipeline_details)) +- `preferred_channel_pipeline` (String) The settings for this multiplex program. +- `program_name` (String) The name of the multiplex program. + + +### Nested Schema for `multiplex_program_settings` + +Read-Only: + +- `preferred_channel_pipeline` (String) Indicates which pipeline is preferred by the multiplex for program ingest. +If set to \"PIPELINE_0\" or \"PIPELINE_1\" and an unhealthy ingest causes the multiplex to switch to the non-preferred pipeline, +it will switch back once that ingest is healthy again. If set to \"CURRENTLY_ACTIVE\", +it will not switch back to the other pipeline based on it recovering to a healthy state, +it will only switch if the active pipeline becomes unhealthy. +- `program_number` (Number) Unique program number. +- `service_descriptor` (Attributes) Transport stream service descriptor configuration for the Multiplex program. (see [below for nested schema](#nestedatt--multiplex_program_settings--service_descriptor)) +- `video_settings` (Attributes) Program video settings configuration. (see [below for nested schema](#nestedatt--multiplex_program_settings--video_settings)) + + +### Nested Schema for `multiplex_program_settings.service_descriptor` + +Read-Only: + +- `provider_name` (String) Name of the provider. +- `service_name` (String) Name of the service. + + + +### Nested Schema for `multiplex_program_settings.video_settings` + +Read-Only: + +- `constant_bitrate` (Number) The constant bitrate configuration for the video encode. +When this field is defined, StatmuxSettings must be undefined. +- `statmux_settings` (Attributes) Statmux rate control settings. +When this field is defined, ConstantBitrate must be undefined. (see [below for nested schema](#nestedatt--multiplex_program_settings--video_settings--statmux_settings)) + + +### Nested Schema for `multiplex_program_settings.video_settings.statmux_settings` + +Read-Only: + +- `maximum_bitrate` (Number) Maximum statmux bitrate. +- `minimum_bitrate` (Number) Minimum statmux bitrate. +- `priority` (Number) The purpose of the priority is to use a combination of the\nmultiplex rate control algorithm and the QVBR capability of the\nencoder to prioritize the video quality of some channels in a\nmultiplex over others. Channels that have a higher priority will\nget higher video quality at the expense of the video quality of\nother channels in the multiplex with lower priority. + + + + + +### Nested Schema for `packet_identifiers_map` + +Read-Only: + +- `audio_pids` (List of Number) +- `dvb_sub_pids` (List of Number) +- `dvb_teletext_pid` (Number) +- `etv_platform_pid` (Number) +- `etv_signal_pid` (Number) +- `klv_data_pids` (List of Number) +- `pcr_pid` (Number) +- `pmt_pid` (Number) +- `private_metadata_pid` (Number) +- `scte_27_pids` (List of Number) +- `scte_35_pid` (Number) +- `timed_metadata_pid` (Number) +- `video_pid` (Number) + + + +### Nested Schema for `pipeline_details` + +Read-Only: + +- `active_channel_pipeline` (String) Identifies the channel pipeline that is currently active for the pipeline (identified by PipelineId) in the multiplex. +- `pipeline_id` (String) Identifies a specific pipeline in the multiplex. diff --git a/docs/data-sources/mediapackagev2_origin_endpoint.md b/docs/data-sources/mediapackagev2_origin_endpoint.md index aee104c272..4208b5f84f 100644 --- a/docs/data-sources/mediapackagev2_origin_endpoint.md +++ b/docs/data-sources/mediapackagev2_origin_endpoint.md @@ -41,6 +41,7 @@ Data Source schema for AWS::MediaPackageV2::OriginEndpoint Read-Only: - `child_manifest_name` (String)
A short string that's appended to the endpoint URL. The child manifest name creates a unique path to this endpoint. If you don't enter a value, MediaPackage uses the default child manifest name, index_1. The manifestName on the HLSManifest object overrides the manifestName you provided on the originEndpoint object.
+- `filter_configuration` (Attributes)Filter configuration includes settings for manifest filtering, start and end times, and time delay that apply to all of your egress requests for this manifest.
(see [below for nested schema](#nestedatt--hls_manifests--filter_configuration)) - `manifest_name` (String)A short short string that's appended to the endpoint URL. The manifest name creates a unique path to this endpoint. If you don't enter a value, MediaPackage uses the default manifest name, index. MediaPackage automatically inserts the format extension, such as .m3u8. You can't use the same manifest name if you use HLS manifest and low-latency HLS manifest. The manifestName on the HLSManifest object overrides the manifestName you provided on the originEndpoint object.
- `manifest_window_seconds` (Number)The total duration (in seconds) of the manifest's content.
- `program_date_time_interval_seconds` (Number)Inserts EXT-X-PROGRAM-DATE-TIME tags in the output manifest at the interval that you specify. If you don't enter an interval, @@ -51,6 +52,17 @@ Read-Only: - `scte_hls` (Attributes)
The SCTE configuration.
(see [below for nested schema](#nestedatt--hls_manifests--scte_hls)) - `url` (String)The egress domain URL for stream delivery from MediaPackage.
+ +### Nested Schema for `hls_manifests.filter_configuration` + +Read-Only: + +- `end` (String)Optionally specify the end time for all of your manifest egress requests. When you include end time, note that you cannot use end time query parameters for this manifest's endpoint URL.
+- `manifest_filter` (String)Optionally specify one or more manifest filters for all of your manifest egress requests. When you include a manifest filter, note that you cannot use an identical manifest filter query parameter for this manifest's endpoint URL.
+- `start` (String)Optionally specify the start time for all of your manifest egress requests. When you include start time, note that you cannot use start time query parameters for this manifest's endpoint URL.
+- `time_delay_seconds` (Number)Optionally specify the time delay for all of your manifest egress requests. Enter a value that is smaller than your endpoint's startover window. When you include time delay, note that you cannot use time delay query parameters for this manifest's endpoint URL.
+ + ### Nested Schema for `hls_manifests.scte_hls` @@ -66,6 +78,7 @@ Read-Only: Read-Only: - `child_manifest_name` (String)A short string that's appended to the endpoint URL. The child manifest name creates a unique path to this endpoint. If you don't enter a value, MediaPackage uses the default child manifest name, index_1. The manifestName on the HLSManifest object overrides the manifestName you provided on the originEndpoint object.
+- `filter_configuration` (Attributes)Filter configuration includes settings for manifest filtering, start and end times, and time delay that apply to all of your egress requests for this manifest.
(see [below for nested schema](#nestedatt--low_latency_hls_manifests--filter_configuration)) - `manifest_name` (String)A short short string that's appended to the endpoint URL. The manifest name creates a unique path to this endpoint. If you don't enter a value, MediaPackage uses the default manifest name, index. MediaPackage automatically inserts the format extension, such as .m3u8. You can't use the same manifest name if you use HLS manifest and low-latency HLS manifest. The manifestName on the HLSManifest object overrides the manifestName you provided on the originEndpoint object.
- `manifest_window_seconds` (Number)The total duration (in seconds) of the manifest's content.
- `program_date_time_interval_seconds` (Number)Inserts EXT-X-PROGRAM-DATE-TIME tags in the output manifest at the interval that you specify. If you don't enter an interval, @@ -76,6 +89,17 @@ Read-Only: - `scte_hls` (Attributes)
The SCTE configuration.
(see [below for nested schema](#nestedatt--low_latency_hls_manifests--scte_hls)) - `url` (String)The egress domain URL for stream delivery from MediaPackage.
+ +### Nested Schema for `low_latency_hls_manifests.filter_configuration` + +Read-Only: + +- `end` (String)Optionally specify the end time for all of your manifest egress requests. When you include end time, note that you cannot use end time query parameters for this manifest's endpoint URL.
+- `manifest_filter` (String)Optionally specify one or more manifest filters for all of your manifest egress requests. When you include a manifest filter, note that you cannot use an identical manifest filter query parameter for this manifest's endpoint URL.
+- `start` (String)Optionally specify the start time for all of your manifest egress requests. When you include start time, note that you cannot use start time query parameters for this manifest's endpoint URL.
+- `time_delay_seconds` (Number)Optionally specify the time delay for all of your manifest egress requests. Enter a value that is smaller than your endpoint's startover window. When you include time delay, note that you cannot use time delay query parameters for this manifest's endpoint URL.
+ + ### Nested Schema for `low_latency_hls_manifests.scte_hls` diff --git a/docs/data-sources/quicksight_data_source.md b/docs/data-sources/quicksight_data_source.md index 9d29f62da0..5afe3aba50 100644 --- a/docs/data-sources/quicksight_data_source.md +++ b/docs/data-sources/quicksight_data_source.md @@ -74,7 +74,9 @@ Read-Only: - `snowflake_parameters` (Attributes)Snowflake parameters.
(see [below for nested schema](#nestedatt--alternate_data_source_parameters--snowflake_parameters)) - `spark_parameters` (Attributes)Spark parameters.
(see [below for nested schema](#nestedatt--alternate_data_source_parameters--spark_parameters)) - `sql_server_parameters` (Attributes)SQL Server parameters.
(see [below for nested schema](#nestedatt--alternate_data_source_parameters--sql_server_parameters)) +- `starburst_parameters` (Attributes)Starburst parameters.
(see [below for nested schema](#nestedatt--alternate_data_source_parameters--starburst_parameters)) - `teradata_parameters` (Attributes)Teradata parameters.
(see [below for nested schema](#nestedatt--alternate_data_source_parameters--teradata_parameters)) +- `trino_parameters` (Attributes)Trino parameters.
(see [below for nested schema](#nestedatt--alternate_data_source_parameters--trino_parameters)) ### Nested Schema for `alternate_data_source_parameters.amazon_elasticsearch_parameters` @@ -249,6 +251,17 @@ Read-Only: - `port` (Number)Port.
+ +### Nested Schema for `alternate_data_source_parameters.starburst_parameters` + +Read-Only: + +- `catalog` (String)Catalog.
+- `host` (String)Host.
+- `port` (Number)Port.
+- `product_type` (String) + + ### Nested Schema for `alternate_data_source_parameters.teradata_parameters` @@ -259,6 +272,16 @@ Read-Only: - `port` (Number)Port.
+ +### Nested Schema for `alternate_data_source_parameters.trino_parameters` + +Read-Only: + +- `catalog` (String)Catalog.
+- `host` (String)Host.
+- `port` (Number)Port.
+ + ### Nested Schema for `credentials` @@ -313,10 +336,12 @@ Read-Only: - `snowflake_parameters` (Attributes)Snowflake parameters.
(see [below for nested schema](#nestedatt--credentials--credential_pair--alternate_data_source_parameters--snowflake_parameters)) - `spark_parameters` (Attributes)Spark parameters.
(see [below for nested schema](#nestedatt--credentials--credential_pair--alternate_data_source_parameters--spark_parameters)) - `sql_server_parameters` (Attributes)SQL Server parameters.
(see [below for nested schema](#nestedatt--credentials--credential_pair--alternate_data_source_parameters--sql_server_parameters)) +- `starburst_parameters` (Attributes)Starburst parameters.
(see [below for nested schema](#nestedatt--credentials--credential_pair--alternate_data_source_parameters--starburst_parameters)) - `teradata_parameters` (Attributes)Teradata parameters.
(see [below for nested schema](#nestedatt--credentials--credential_pair--alternate_data_source_parameters--teradata_parameters)) +- `trino_parameters` (Attributes)Trino parameters.
(see [below for nested schema](#nestedatt--credentials--credential_pair--alternate_data_source_parameters--trino_parameters)) -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters` +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` Read-Only: @@ -324,7 +349,7 @@ Read-Only: -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters` +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` Read-Only: @@ -332,7 +357,7 @@ Read-Only: -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters` +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` Read-Only: @@ -341,7 +366,7 @@ Read-Only: -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters` +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` Read-Only: @@ -351,7 +376,7 @@ Read-Only: -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters` +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` Read-Only: @@ -361,7 +386,7 @@ Read-Only: -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters` +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` Read-Only: @@ -371,7 +396,7 @@ Read-Only: -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters` +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` Read-Only: @@ -381,7 +406,7 @@ Read-Only: -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters` +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` Read-Only: @@ -391,7 +416,7 @@ Read-Only: -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters` +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` Read-Only: @@ -401,7 +426,7 @@ Read-Only: -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters` +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` Read-Only: @@ -411,7 +436,7 @@ Read-Only: -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters` +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` Read-Only: @@ -421,7 +446,7 @@ Read-Only: -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters` +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` Read-Only: @@ -430,7 +455,7 @@ Read-Only: -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters` +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` Read-Only: @@ -442,15 +467,15 @@ Read-Only: -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters` +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` Read-Only: -- `manifest_file_location` (Attributes)Amazon S3 manifest file location.
(see [below for nested schema](#nestedatt--credentials--credential_pair--alternate_data_source_parameters--teradata_parameters--manifest_file_location)) +- `manifest_file_location` (Attributes)Amazon S3 manifest file location.
(see [below for nested schema](#nestedatt--credentials--credential_pair--alternate_data_source_parameters--trino_parameters--manifest_file_location)) - `role_arn` (String)Use the RoleArn
structure to override an account-wide role for a specific S3 data source. For example, say an account administrator has turned off all S3 access with an account-wide role. The administrator can then use RoleArn
to bypass the account-wide role and allow S3 access for the single S3 data source that is specified in the structure, even if the account-wide role forbidding S3 access is still active.
Port.
+ +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` + +Read-Only: + +- `catalog` (String)Catalog.
+- `host` (String)Host.
+- `port` (Number)Port.
+- `product_type` (String) + + -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters` +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` Read-Only: @@ -498,6 +534,16 @@ Read-Only: - `port` (Number)Port.
+ +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` + +Read-Only: + +- `catalog` (String)Catalog.
+- `host` (String)Host.
+- `port` (Number)Port.
+ + @@ -525,7 +571,9 @@ Read-Only: - `snowflake_parameters` (Attributes)Snowflake parameters.
(see [below for nested schema](#nestedatt--data_source_parameters--snowflake_parameters)) - `spark_parameters` (Attributes)Spark parameters.
(see [below for nested schema](#nestedatt--data_source_parameters--spark_parameters)) - `sql_server_parameters` (Attributes)SQL Server parameters.
(see [below for nested schema](#nestedatt--data_source_parameters--sql_server_parameters)) +- `starburst_parameters` (Attributes)Starburst parameters.
(see [below for nested schema](#nestedatt--data_source_parameters--starburst_parameters)) - `teradata_parameters` (Attributes)Teradata parameters.
(see [below for nested schema](#nestedatt--data_source_parameters--teradata_parameters)) +- `trino_parameters` (Attributes)Trino parameters.
(see [below for nested schema](#nestedatt--data_source_parameters--trino_parameters)) ### Nested Schema for `data_source_parameters.amazon_elasticsearch_parameters` @@ -700,6 +748,17 @@ Read-Only: - `port` (Number)Port.
+ +### Nested Schema for `data_source_parameters.starburst_parameters` + +Read-Only: + +- `catalog` (String)Catalog.
+- `host` (String)Host.
+- `port` (Number)Port.
+- `product_type` (String) + + ### Nested Schema for `data_source_parameters.teradata_parameters` @@ -710,6 +769,16 @@ Read-Only: - `port` (Number)Port.
+ +### Nested Schema for `data_source_parameters.trino_parameters` + +Read-Only: + +- `catalog` (String)Catalog.
+- `host` (String)Host.
+- `port` (Number)Port.
+ + ### Nested Schema for `error_info` diff --git a/docs/data-sources/rds_db_cluster.md b/docs/data-sources/rds_db_cluster.md index 1b60a70d59..271e3e5b3b 100644 --- a/docs/data-sources/rds_db_cluster.md +++ b/docs/data-sources/rds_db_cluster.md @@ -41,6 +41,7 @@ Data Source schema for AWS::RDS::DBCluster - `domain` (String) The Active Directory directory ID to create the DB cluster in. - `domain_iam_role_name` (String) Specify the name of the IAM role to be used when making API calls to the Directory Service. - `enable_cloudwatch_logs_exports` (List of String) The list of log types that need to be enabled for exporting to CloudWatch Logs. The values in the list depend on the DB engine being used. For more information, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide. +- `enable_global_write_forwarding` (Boolean) Specifies whether to enable this DB cluster to forward write operations to the primary cluster of a global cluster (Aurora global database). By default, write operations are not allowed on Aurora DB clusters that are secondary clusters in an Aurora global database. - `enable_http_endpoint` (Boolean) A value that indicates whether to enable the HTTP endpoint for an Aurora Serverless DB cluster. By default, the HTTP endpoint is disabled. - `enable_iam_database_authentication` (Boolean) A value that indicates whether to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled. - `endpoint` (Attributes) (see [below for nested schema](#nestedatt--endpoint)) diff --git a/docs/data-sources/rds_db_instance.md b/docs/data-sources/rds_db_instance.md index 9d4aba6061..e711d8bcac 100644 --- a/docs/data-sources/rds_db_instance.md +++ b/docs/data-sources/rds_db_instance.md @@ -63,6 +63,7 @@ Constraints: - `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. - `db_system_id` (String) The Oracle system ID (Oracle SID) for a container database (CDB). The Oracle SID is also the name of the CDB. This setting is valid for RDS Custom only. - `dbi_resource_id` (String) The AWS Region-unique, immutable identifier for the DB instance. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB instance is accessed. +- `dedicated_log_volume` (Boolean) Indicates whether the DB instance has a dedicated log volume (DLV) enabled. - `delete_automated_backups` (Boolean) A value that indicates whether to remove automated backups immediately after the DB instance is deleted. This parameter isn't case-sensitive. The default is to remove automated backups immediately after the DB instance is deleted. - `deletion_protection` (Boolean) A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. - `domain` (String) The Active Directory directory ID to create the DB instance in. Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain. diff --git a/docs/data-sources/route53resolver_firewall_domain_lists.md b/docs/data-sources/route53resolver_firewall_domain_lists.md new file mode 100644 index 0000000000..c682f31c3f --- /dev/null +++ b/docs/data-sources/route53resolver_firewall_domain_lists.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_route53resolver_firewall_domain_lists Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::Route53Resolver::FirewallDomainList +--- + +# awscc_route53resolver_firewall_domain_lists (Data Source) + +Plural Data Source schema for AWS::Route53Resolver::FirewallDomainList + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/s3_storage_lens.md b/docs/data-sources/s3_storage_lens.md index e39cb3062f..89d34b1ad2 100644 --- a/docs/data-sources/s3_storage_lens.md +++ b/docs/data-sources/s3_storage_lens.md @@ -48,6 +48,7 @@ Read-Only: - `advanced_data_protection_metrics` (Attributes) Enables advanced data protection metrics. (see [below for nested schema](#nestedatt--storage_lens_configuration--account_level--advanced_data_protection_metrics)) - `bucket_level` (Attributes) Bucket-level metrics configurations. (see [below for nested schema](#nestedatt--storage_lens_configuration--account_level--bucket_level)) - `detailed_status_codes_metrics` (Attributes) Enables detailed status codes metrics. (see [below for nested schema](#nestedatt--storage_lens_configuration--account_level--detailed_status_codes_metrics)) +- `storage_lens_group_level` (Attributes) Specifies the details of Amazon S3 Storage Lens Group configuration. (see [below for nested schema](#nestedatt--storage_lens_configuration--account_level--storage_lens_group_level)) ### Nested Schema for `storage_lens_configuration.account_level.activity_metrics` @@ -152,6 +153,23 @@ Read-Only: - `is_enabled` (Boolean) Specifies whether detailed status codes metrics are enabled or disabled. + +### Nested Schema for `storage_lens_configuration.account_level.storage_lens_group_level` + +Read-Only: + +- `storage_lens_group_selection_criteria` (Attributes) Selection criteria for Storage Lens Group level metrics (see [below for nested schema](#nestedatt--storage_lens_configuration--account_level--storage_lens_group_level--storage_lens_group_selection_criteria)) + + +### Nested Schema for `storage_lens_configuration.account_level.storage_lens_group_level.storage_lens_group_selection_criteria` + +Read-Only: + +- `exclude` (Set of String) +- `include` (Set of String) + + + ### Nested Schema for `storage_lens_configuration.aws_org` diff --git a/docs/resources/apigateway_account.md b/docs/resources/apigateway_account.md index 300014e47c..4094ce9da4 100644 --- a/docs/resources/apigateway_account.md +++ b/docs/resources/apigateway_account.md @@ -21,7 +21,7 @@ The ``AWS::ApiGateway::Account`` resource specifies the IAM role that Amazon API ### Read-Only -- `id` (String) Primary identifier which is manually generated. +- `id` (String) The ID of this resource. ## Import diff --git a/docs/resources/apigateway_api_key.md b/docs/resources/apigateway_api_key.md index 48fdf4d8f0..d4bef58fff 100644 --- a/docs/resources/apigateway_api_key.md +++ b/docs/resources/apigateway_api_key.md @@ -3,12 +3,12 @@ page_title: "awscc_apigateway_api_key Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource Type definition for AWS::ApiGateway::ApiKey + The AWS::ApiGateway::ApiKey resource creates a unique key that you can distribute to clients who are executing API Gateway Method resources that require an API key. To specify which API key clients must use, map the API key with the RestApi and Stage resources that include the methods that require a key. --- # awscc_apigateway_api_key (Resource) -Resource Type definition for AWS::ApiGateway::ApiKey +The ``AWS::ApiGateway::ApiKey`` resource creates a unique key that you can distribute to clients who are executing API Gateway ``Method`` resources that require an API key. To specify which API key clients must use, map the API key with the ``RestApi`` and ``Stage`` resources that include the methods that require a key. @@ -17,18 +17,19 @@ Resource Type definition for AWS::ApiGateway::ApiKey ### Optional -- `customer_id` (String) An AWS Marketplace customer identifier to use when integrating with the AWS SaaS Marketplace. -- `description` (String) A description of the purpose of the API key. -- `enabled` (Boolean) Indicates whether the API key can be used by clients. -- `generate_distinct_id` (Boolean) Specifies whether the key identifier is distinct from the created API key value. This parameter is deprecated and should not be used. -- `name` (String) A name for the API key. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the API key name. -- `stage_keys` (Attributes List) A list of stages to associate with this API key. (see [below for nested schema](#nestedatt--stage_keys)) -- `tags` (Attributes List) An array of arbitrary tags (key-value pairs) to associate with the API key. (see [below for nested schema](#nestedatt--tags)) -- `value` (String) The value of the API key. Must be at least 20 characters long. +- `customer_id` (String) An MKT customer identifier, when integrating with the AWS SaaS Marketplace. +- `description` (String) The description of the ApiKey. +- `enabled` (Boolean) Specifies whether the ApiKey can be used by callers. +- `generate_distinct_id` (Boolean) Specifies whether (``true``) or not (``false``) the key identifier is distinct from the created API key value. This parameter is deprecated and should not be used. +- `name` (String) A name for the API key. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the API key name. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html). + If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name. +- `stage_keys` (Attributes List) DEPRECATED FOR USAGE PLANS - Specifies stages associated with the API key. (see [below for nested schema](#nestedatt--stage_keys)) +- `tags` (Attributes List) The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with ``aws:``. The tag value can be up to 256 characters. (see [below for nested schema](#nestedatt--tags)) +- `value` (String) Specifies a value of the API key. ### Read-Only -- `api_key_id` (String) A Unique Key ID which identifies the API Key. Generated by the Create API and returned by the Read and List APIs +- `api_key_id` (String) - `id` (String) Uniquely identifies the resource. @@ -36,8 +37,8 @@ Resource Type definition for AWS::ApiGateway::ApiKey Optional: -- `rest_api_id` (String) The ID of a RestApi resource that includes the stage with which you want to associate the API key. -- `stage_name` (String) The name of the stage with which to associate the API key. The stage must be included in the RestApi resource that you specified in the RestApiId property. +- `rest_api_id` (String) The string identifier of the associated RestApi. +- `stage_name` (String) The stage name associated with the stage key. diff --git a/docs/resources/apigateway_client_certificate.md b/docs/resources/apigateway_client_certificate.md index 8cb1a901aa..3b3741fe76 100644 --- a/docs/resources/apigateway_client_certificate.md +++ b/docs/resources/apigateway_client_certificate.md @@ -22,7 +22,7 @@ The ``AWS::ApiGateway::ClientCertificate`` resource creates a client certificate ### Read-Only -- `client_certificate_id` (String) The Primary Identifier of the Client Certficate, generated by a Create API Call +- `client_certificate_id` (String) - `id` (String) Uniquely identifies the resource. diff --git a/docs/resources/apigateway_deployment.md b/docs/resources/apigateway_deployment.md index c0b67646cc..1bcbe6aa95 100644 --- a/docs/resources/apigateway_deployment.md +++ b/docs/resources/apigateway_deployment.md @@ -64,7 +64,7 @@ resource "awscc_apigateway_deployment" "terraform_apigateway_deployment" { ### Read-Only -- `deployment_id` (String) Primary Id for this resource +- `deployment_id` (String) - `id` (String) Uniquely identifies the resource. diff --git a/docs/resources/apigateway_documentation_part.md b/docs/resources/apigateway_documentation_part.md index c674aaced4..394ac987a2 100644 --- a/docs/resources/apigateway_documentation_part.md +++ b/docs/resources/apigateway_documentation_part.md @@ -23,7 +23,7 @@ The ``AWS::ApiGateway::DocumentationPart`` resource creates a documentation part ### Read-Only -- `documentation_part_id` (String) The identifier of the documentation Part. +- `documentation_part_id` (String) - `id` (String) Uniquely identifies the resource. diff --git a/docs/resources/apigateway_request_validator.md b/docs/resources/apigateway_request_validator.md index aba578f51a..7582be8ea6 100644 --- a/docs/resources/apigateway_request_validator.md +++ b/docs/resources/apigateway_request_validator.md @@ -2,12 +2,12 @@ page_title: "awscc_apigateway_request_validator Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource Type definition for AWS::ApiGateway::RequestValidator + The AWS::ApiGateway::RequestValidator resource sets up basic validation rules for incoming requests to your API. For more information, see Enable Basic Request Validation for an API in API Gateway https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html in the API Gateway Developer Guide. --- # awscc_apigateway_request_validator (Resource) -Resource Type definition for AWS::ApiGateway::RequestValidator +The ``AWS::ApiGateway::RequestValidator`` resource sets up basic validation rules for incoming requests to your API. For more information, see [Enable Basic Request Validation for an API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html) in the *API Gateway Developer Guide*. ## Example Usage @@ -31,18 +31,18 @@ resource "awscc_apigateway_request_validator" "example" { ### Required -- `rest_api_id` (String) The identifier of the targeted API entity. +- `rest_api_id` (String) The string identifier of the associated RestApi. ### Optional -- `name` (String) Name of the request validator. -- `validate_request_body` (Boolean) Indicates whether to validate the request body according to the configured schema for the targeted API and method. -- `validate_request_parameters` (Boolean) Indicates whether to validate request parameters. +- `name` (String) The name of this RequestValidator +- `validate_request_body` (Boolean) A Boolean flag to indicate whether to validate a request body according to the configured Model schema. +- `validate_request_parameters` (Boolean) A Boolean flag to indicate whether to validate request parameters (``true``) or not (``false``). ### Read-Only - `id` (String) Uniquely identifies the resource. -- `request_validator_id` (String) ID of the request validator. +- `request_validator_id` (String) ## Import diff --git a/docs/resources/apigateway_resource.md b/docs/resources/apigateway_resource.md index dee4cd4ae8..4a98aeba45 100644 --- a/docs/resources/apigateway_resource.md +++ b/docs/resources/apigateway_resource.md @@ -59,7 +59,7 @@ resource "awscc_apigateway_resource" "DemoAPIGatewayResource" { ### Read-Only - `id` (String) Uniquely identifies the resource. -- `resource_id` (String) A unique primary identifier for a Resource +- `resource_id` (String) ## Import diff --git a/docs/resources/apigateway_usage_plan.md b/docs/resources/apigateway_usage_plan.md index 4273a53ac7..ae4091d19c 100644 --- a/docs/resources/apigateway_usage_plan.md +++ b/docs/resources/apigateway_usage_plan.md @@ -3,12 +3,14 @@ page_title: "awscc_apigateway_usage_plan Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource Type definition for AWS::ApiGateway::UsagePlan + The AWS::ApiGateway::UsagePlan resource creates a usage plan for deployed APIs. A usage plan sets a target for the throttling and quota limits on individual client API keys. For more information, see Creating and Using API Usage Plans in Amazon API Gateway https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html in the API Gateway Developer Guide. + In some cases clients can exceed the targets that you set. Don?t rely on usage plans to control costs. Consider using [](https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-managing-costs.html) to monitor costs and [](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) to manage API requests. --- # awscc_apigateway_usage_plan (Resource) -Resource Type definition for AWS::ApiGateway::UsagePlan +The ``AWS::ApiGateway::UsagePlan`` resource creates a usage plan for deployed APIs. A usage plan sets a target for the throttling and quota limits on individual client API keys. For more information, see [Creating and Using API Usage Plans in Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) in the *API Gateway Developer Guide*. + In some cases clients can exceed the targets that you set. Don?t rely on usage plans to control costs. Consider using [](https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-managing-costs.html) to monitor costs and [](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) to manage API requests. @@ -17,33 +19,33 @@ Resource Type definition for AWS::ApiGateway::UsagePlan ### Optional -- `api_stages` (Attributes List) The API stages to associate with this usage plan. (see [below for nested schema](#nestedatt--api_stages)) -- `description` (String) A description of the usage plan. -- `quota` (Attributes) Configures the number of requests that users can make within a given interval. (see [below for nested schema](#nestedatt--quota)) -- `tags` (Attributes List) An array of arbitrary tags (key-value pairs) to associate with the usage plan. (see [below for nested schema](#nestedatt--tags)) -- `throttle` (Attributes) Configures the overall request rate (average requests per second) and burst capacity. (see [below for nested schema](#nestedatt--throttle)) -- `usage_plan_name` (String) A name for the usage plan. +- `api_stages` (Attributes List) The associated API stages of a usage plan. (see [below for nested schema](#nestedatt--api_stages)) +- `description` (String) The description of a usage plan. +- `quota` (Attributes) The target maximum number of permitted requests per a given unit time interval. (see [below for nested schema](#nestedatt--quota)) +- `tags` (Attributes List) The collection of tags. Each tag element is associated with a given resource. (see [below for nested schema](#nestedatt--tags)) +- `throttle` (Attributes) A map containing method level throttling information for API stage in a usage plan. (see [below for nested schema](#nestedatt--throttle)) +- `usage_plan_name` (String) The name of a usage plan. ### Read-Only -- `id` (String) The provider-assigned unique ID for this managed resource. +- `id` (String) The ID of this resource. ### Nested Schema for `api_stages` Optional: -- `api_id` (String) The ID of an API that is in the specified Stage property that you want to associate with the usage plan. -- `stage` (String) The name of the stage to associate with the usage plan. -- `throttle` (Attributes Map) Map containing method-level throttling information for an API stage in a usage plan. The key for the map is the path and method for which to configure custom throttling, for example, '/pets/GET'. Duplicates are not allowed. (see [below for nested schema](#nestedatt--api_stages--throttle)) +- `api_id` (String) API Id of the associated API stage in a usage plan. +- `stage` (String) API stage name of the associated API stage in a usage plan. +- `throttle` (Attributes Map) Map containing method level throttling information for API stage in a usage plan. (see [below for nested schema](#nestedatt--api_stages--throttle)) ### Nested Schema for `api_stages.throttle` Optional: -- `burst_limit` (Number) The maximum API request rate limit over a time ranging from one to a few seconds. The maximum API request rate limit depends on whether the underlying token bucket is at its full capacity. -- `rate_limit` (Number) The API request steady-state rate limit (average requests per second over an extended period of time). +- `burst_limit` (Number) The API target request burst rate limit. This allows more requests through for a period of time than the target rate limit. +- `rate_limit` (Number) The API target request rate limit. @@ -52,9 +54,9 @@ Optional: Optional: -- `limit` (Number) The maximum number of requests that users can make within the specified time period. -- `offset` (Number) For the initial time period, the number of requests to subtract from the specified limit. When you first implement a usage plan, the plan might start in the middle of the week or month. With this property, you can decrease the limit for this initial time period. -- `period` (String) The time period for which the maximum limit of requests applies, such as DAY or WEEK. For valid values, see the period property for the UsagePlan resource in the Amazon API Gateway REST API Reference. +- `limit` (Number) The target maximum number of requests that can be made in a given time period. +- `offset` (Number) The number of requests subtracted from the given limit in the initial time period. +- `period` (String) The time period in which the limit applies. Valid values are "DAY", "WEEK" or "MONTH". @@ -71,8 +73,8 @@ Required: Optional: -- `burst_limit` (Number) The maximum API request rate limit over a time ranging from one to a few seconds. The maximum API request rate limit depends on whether the underlying token bucket is at its full capacity. -- `rate_limit` (Number) The API request steady-state rate limit (average requests per second over an extended period of time). +- `burst_limit` (Number) The API target request burst rate limit. This allows more requests through for a period of time than the target rate limit. +- `rate_limit` (Number) The API target request rate limit. ## Import diff --git a/docs/resources/apigateway_usage_plan_key.md b/docs/resources/apigateway_usage_plan_key.md index e16bfc004c..1181164fb6 100644 --- a/docs/resources/apigateway_usage_plan_key.md +++ b/docs/resources/apigateway_usage_plan_key.md @@ -23,7 +23,7 @@ The ``AWS::ApiGateway::UsagePlanKey`` resource associates an API key with a usag ### Read-Only -- `id` (String) An autogenerated ID which is a combination of the ID of the key and ID of the usage plan combined with a : such as 123abcdef:abc123. +- `id` (String) The ID of this resource. ## Import diff --git a/docs/resources/appconfig_application.md b/docs/resources/appconfig_application.md index 0d9b8e8f79..922326b3a7 100644 --- a/docs/resources/appconfig_application.md +++ b/docs/resources/appconfig_application.md @@ -34,7 +34,7 @@ Resource Type definition for AWS::AppConfig::Application Required: -- `key` (String) The key-value string map. The valid character set is [a-zA-Z1-9+-=._:/]. The tag key can be up to 128 characters and must not start with aws:. +- `key` (String) The key-value string map. The valid character set is [a-zA-Z1-9 +-=._:/-]. The tag key can be up to 128 characters and must not start with aws:. - `value` (String) The tag value can be up to 256 characters. ## Import diff --git a/docs/resources/appconfig_configuration_profile.md b/docs/resources/appconfig_configuration_profile.md new file mode 100644 index 0000000000..453c5b687c --- /dev/null +++ b/docs/resources/appconfig_configuration_profile.md @@ -0,0 +1,62 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_appconfig_configuration_profile Resource - terraform-provider-awscc" +subcategory: "" +description: |- + An example resource schema demonstrating some basic constructs and validation rules. +--- + +# awscc_appconfig_configuration_profile (Resource) + +An example resource schema demonstrating some basic constructs and validation rules. + + + + +## Schema + +### Required + +- `application_id` (String) The application ID. +- `location_uri` (String) A URI to locate the configuration. You can specify the AWS AppConfig hosted configuration store, Systems Manager (SSM) document, an SSM Parameter Store parameter, or an Amazon S3 object. +- `name` (String) A name for the configuration profile. + +### Optional + +- `description` (String) A description of the configuration profile. +- `kms_key_identifier` (String) The AWS Key Management Service key identifier (key ID, key alias, or key ARN) provided when the resource was created or updated. +- `retrieval_role_arn` (String) The ARN of an IAM role with permission to access the configuration at the specified LocationUri. +- `tags` (Attributes List) Metadata to assign to the configuration profile. Tags help organize and categorize your AWS AppConfig resources. Each tag consists of a key and an optional value, both of which you define. (see [below for nested schema](#nestedatt--tags)) +- `type` (String) The type of configurations contained in the profile. When calling this API, enter one of the following values for Type: AWS.AppConfig.FeatureFlags, AWS.Freeform +- `validators` (Attributes List) A list of methods for validating the configuration. (see [below for nested schema](#nestedatt--validators)) + +### Read-Only + +- `configuration_profile_id` (String) The configuration profile ID +- `id` (String) Uniquely identifies the resource. +- `kms_key_arn` (String) The Amazon Resource Name of the AWS Key Management Service key to encrypt new configuration data versions in the AWS AppConfig hosted configuration store. This attribute is only used for hosted configuration types. To encrypt data managed in other configuration stores, see the documentation for how to specify an AWS KMS key for that particular service. + + +### Nested Schema for `tags` + +Optional: + +- `key` (String) The key-value string map. The tag key can be up to 128 characters and must not start with aws:. +- `value` (String) The tag value can be up to 256 characters. + + + +### Nested Schema for `validators` + +Optional: + +- `content` (String) Either the JSON Schema content or the Amazon Resource Name (ARN) of an Lambda function. +- `type` (String) AWS AppConfig supports validators of type JSON_SCHEMA and LAMBDA. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_appconfig_configuration_profile.exampleRepresents an origin endpoint that is associated with a channel, offering a dynamically repackaged version of its content through various streaming media protocols. The content can be efficiently disseminated to end-users via a Content Delivery Network (CDN), like Amazon CloudFront.
--- # awscc_mediapackagev2_origin_endpoint (Resource) -Definition of AWS::MediaPackageV2::OriginEndpoint Resource Type +Represents an origin endpoint that is associated with a channel, offering a dynamically repackaged version of its content through various streaming media protocols. The content can be efficiently disseminated to end-users via a Content Delivery Network (CDN), like Amazon CloudFront.
@@ -48,6 +48,7 @@ Required: Optional: - `child_manifest_name` (String)A short string that's appended to the endpoint URL. The child manifest name creates a unique path to this endpoint. If you don't enter a value, MediaPackage uses the default child manifest name, index_1. The manifestName on the HLSManifest object overrides the manifestName you provided on the originEndpoint object.
+- `filter_configuration` (Attributes)Filter configuration includes settings for manifest filtering, start and end times, and time delay that apply to all of your egress requests for this manifest.
(see [below for nested schema](#nestedatt--hls_manifests--filter_configuration)) - `manifest_window_seconds` (Number)The total duration (in seconds) of the manifest's content.
- `program_date_time_interval_seconds` (Number)Inserts EXT-X-PROGRAM-DATE-TIME tags in the output manifest at the interval that you specify. If you don't enter an interval, EXT-X-PROGRAM-DATE-TIME tags aren't included in the manifest. @@ -57,6 +58,17 @@ Optional: - `scte_hls` (Attributes)
The SCTE configuration.
(see [below for nested schema](#nestedatt--hls_manifests--scte_hls)) - `url` (String)The egress domain URL for stream delivery from MediaPackage.
+ +### Nested Schema for `hls_manifests.filter_configuration` + +Optional: + +- `end` (String)Optionally specify the end time for all of your manifest egress requests. When you include end time, note that you cannot use end time query parameters for this manifest's endpoint URL.
+- `manifest_filter` (String)Optionally specify one or more manifest filters for all of your manifest egress requests. When you include a manifest filter, note that you cannot use an identical manifest filter query parameter for this manifest's endpoint URL.
+- `start` (String)Optionally specify the start time for all of your manifest egress requests. When you include start time, note that you cannot use start time query parameters for this manifest's endpoint URL.
+- `time_delay_seconds` (Number)Optionally specify the time delay for all of your manifest egress requests. Enter a value that is smaller than your endpoint's startover window. When you include time delay, note that you cannot use time delay query parameters for this manifest's endpoint URL.
+ + ### Nested Schema for `hls_manifests.scte_hls` @@ -76,6 +88,7 @@ Required: Optional: - `child_manifest_name` (String)A short string that's appended to the endpoint URL. The child manifest name creates a unique path to this endpoint. If you don't enter a value, MediaPackage uses the default child manifest name, index_1. The manifestName on the HLSManifest object overrides the manifestName you provided on the originEndpoint object.
+- `filter_configuration` (Attributes)Filter configuration includes settings for manifest filtering, start and end times, and time delay that apply to all of your egress requests for this manifest.
(see [below for nested schema](#nestedatt--low_latency_hls_manifests--filter_configuration)) - `manifest_window_seconds` (Number)The total duration (in seconds) of the manifest's content.
- `program_date_time_interval_seconds` (Number)Inserts EXT-X-PROGRAM-DATE-TIME tags in the output manifest at the interval that you specify. If you don't enter an interval, EXT-X-PROGRAM-DATE-TIME tags aren't included in the manifest. @@ -85,6 +98,17 @@ Optional: - `scte_hls` (Attributes)
The SCTE configuration.
(see [below for nested schema](#nestedatt--low_latency_hls_manifests--scte_hls)) - `url` (String)The egress domain URL for stream delivery from MediaPackage.
+ +### Nested Schema for `low_latency_hls_manifests.filter_configuration` + +Optional: + +- `end` (String)Optionally specify the end time for all of your manifest egress requests. When you include end time, note that you cannot use end time query parameters for this manifest's endpoint URL.
+- `manifest_filter` (String)Optionally specify one or more manifest filters for all of your manifest egress requests. When you include a manifest filter, note that you cannot use an identical manifest filter query parameter for this manifest's endpoint URL.
+- `start` (String)Optionally specify the start time for all of your manifest egress requests. When you include start time, note that you cannot use start time query parameters for this manifest's endpoint URL.
+- `time_delay_seconds` (Number)Optionally specify the time delay for all of your manifest egress requests. Enter a value that is smaller than your endpoint's startover window. When you include time delay, note that you cannot use time delay query parameters for this manifest's endpoint URL.
+ + ### Nested Schema for `low_latency_hls_manifests.scte_hls` diff --git a/docs/resources/quicksight_data_source.md b/docs/resources/quicksight_data_source.md index aaaca7f254..41597f285d 100644 --- a/docs/resources/quicksight_data_source.md +++ b/docs/resources/quicksight_data_source.md @@ -74,7 +74,9 @@ Optional: - `snowflake_parameters` (Attributes)Snowflake parameters.
(see [below for nested schema](#nestedatt--alternate_data_source_parameters--snowflake_parameters)) - `spark_parameters` (Attributes)Spark parameters.
(see [below for nested schema](#nestedatt--alternate_data_source_parameters--spark_parameters)) - `sql_server_parameters` (Attributes)SQL Server parameters.
(see [below for nested schema](#nestedatt--alternate_data_source_parameters--sql_server_parameters)) +- `starburst_parameters` (Attributes)Starburst parameters.
(see [below for nested schema](#nestedatt--alternate_data_source_parameters--starburst_parameters)) - `teradata_parameters` (Attributes)Teradata parameters.
(see [below for nested schema](#nestedatt--alternate_data_source_parameters--teradata_parameters)) +- `trino_parameters` (Attributes)Trino parameters.
(see [below for nested schema](#nestedatt--alternate_data_source_parameters--trino_parameters)) ### Nested Schema for `alternate_data_source_parameters.amazon_elasticsearch_parameters` @@ -255,6 +257,20 @@ Required: - `port` (Number)Port.
+ +### Nested Schema for `alternate_data_source_parameters.starburst_parameters` + +Required: + +- `catalog` (String)Catalog.
+- `host` (String)Host.
+- `port` (Number)Port.
+ +Optional: + +- `product_type` (String) + + ### Nested Schema for `alternate_data_source_parameters.teradata_parameters` @@ -265,6 +281,16 @@ Required: - `port` (Number)Port.
+ +### Nested Schema for `alternate_data_source_parameters.trino_parameters` + +Required: + +- `catalog` (String)Catalog.
+- `host` (String)Host.
+- `port` (Number)Port.
+ + ### Nested Schema for `credentials` @@ -322,10 +348,12 @@ Optional: - `snowflake_parameters` (Attributes)Snowflake parameters.
(see [below for nested schema](#nestedatt--credentials--credential_pair--alternate_data_source_parameters--snowflake_parameters)) - `spark_parameters` (Attributes)Spark parameters.
(see [below for nested schema](#nestedatt--credentials--credential_pair--alternate_data_source_parameters--spark_parameters)) - `sql_server_parameters` (Attributes)SQL Server parameters.
(see [below for nested schema](#nestedatt--credentials--credential_pair--alternate_data_source_parameters--sql_server_parameters)) +- `starburst_parameters` (Attributes)Starburst parameters.
(see [below for nested schema](#nestedatt--credentials--credential_pair--alternate_data_source_parameters--starburst_parameters)) - `teradata_parameters` (Attributes)Teradata parameters.
(see [below for nested schema](#nestedatt--credentials--credential_pair--alternate_data_source_parameters--teradata_parameters)) +- `trino_parameters` (Attributes)Trino parameters.
(see [below for nested schema](#nestedatt--credentials--credential_pair--alternate_data_source_parameters--trino_parameters)) -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters` +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` Required: @@ -333,7 +361,7 @@ Required: -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters` +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` Required: @@ -341,7 +369,7 @@ Required: -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters` +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` Optional: @@ -350,7 +378,7 @@ Optional: -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters` +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` Required: @@ -360,7 +388,7 @@ Required: -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters` +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` Required: @@ -370,7 +398,7 @@ Required: -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters` +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` Required: @@ -380,7 +408,7 @@ Required: -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters` +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` Required: @@ -390,7 +418,7 @@ Required: -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters` +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` Required: @@ -400,7 +428,7 @@ Required: -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters` +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` Required: @@ -410,7 +438,7 @@ Required: -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters` +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` Required: @@ -420,7 +448,7 @@ Required: -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters` +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` Required: @@ -430,7 +458,7 @@ Required: -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters` +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` Required: @@ -439,7 +467,7 @@ Required: -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters` +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` Required: @@ -454,18 +482,18 @@ Optional: -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters` +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` Required: -- `manifest_file_location` (Attributes)Amazon S3 manifest file location.
(see [below for nested schema](#nestedatt--credentials--credential_pair--alternate_data_source_parameters--teradata_parameters--manifest_file_location)) +- `manifest_file_location` (Attributes)Amazon S3 manifest file location.
(see [below for nested schema](#nestedatt--credentials--credential_pair--alternate_data_source_parameters--trino_parameters--manifest_file_location)) Optional: - `role_arn` (String)Use the RoleArn
structure to override an account-wide role for a specific S3 data source. For example, say an account administrator has turned off all S3 access with an account-wide role. The administrator can then use RoleArn
to bypass the account-wide role and allow S3 access for the single S3 data source that is specified in the structure, even if the account-wide role forbidding S3 access is still active.
Port.
+ +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` + +Required: + +- `catalog` (String)Catalog.
+- `host` (String)Host.
+- `port` (Number)Port.
+ +Optional: + +- `product_type` (String) + + -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters` +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` Required: @@ -513,6 +555,16 @@ Required: - `port` (Number)Port.
+ +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters` + +Required: + +- `catalog` (String)Catalog.
+- `host` (String)Host.
+- `port` (Number)Port.
+ + @@ -540,7 +592,9 @@ Optional: - `snowflake_parameters` (Attributes)Snowflake parameters.
(see [below for nested schema](#nestedatt--data_source_parameters--snowflake_parameters)) - `spark_parameters` (Attributes)Spark parameters.
(see [below for nested schema](#nestedatt--data_source_parameters--spark_parameters)) - `sql_server_parameters` (Attributes)SQL Server parameters.
(see [below for nested schema](#nestedatt--data_source_parameters--sql_server_parameters)) +- `starburst_parameters` (Attributes)Starburst parameters.
(see [below for nested schema](#nestedatt--data_source_parameters--starburst_parameters)) - `teradata_parameters` (Attributes)Teradata parameters.
(see [below for nested schema](#nestedatt--data_source_parameters--teradata_parameters)) +- `trino_parameters` (Attributes)Trino parameters.
(see [below for nested schema](#nestedatt--data_source_parameters--trino_parameters)) ### Nested Schema for `data_source_parameters.amazon_elasticsearch_parameters` @@ -721,6 +775,20 @@ Required: - `port` (Number)Port.
+ +### Nested Schema for `data_source_parameters.starburst_parameters` + +Required: + +- `catalog` (String)Catalog.
+- `host` (String)Host.
+- `port` (Number)Port.
+ +Optional: + +- `product_type` (String) + + ### Nested Schema for `data_source_parameters.teradata_parameters` @@ -731,6 +799,16 @@ Required: - `port` (Number)Port.
+ +### Nested Schema for `data_source_parameters.trino_parameters` + +Required: + +- `catalog` (String)Catalog.
+- `host` (String)Host.
+- `port` (Number)Port.
+ + ### Nested Schema for `error_info` diff --git a/docs/resources/rds_db_cluster.md b/docs/resources/rds_db_cluster.md index 6540018b8b..3deb5921d2 100644 --- a/docs/resources/rds_db_cluster.md +++ b/docs/resources/rds_db_cluster.md @@ -46,6 +46,7 @@ resource "awscc_rds_db_cluster" "example_db_cluster" { - `domain` (String) The Active Directory directory ID to create the DB cluster in. - `domain_iam_role_name` (String) Specify the name of the IAM role to be used when making API calls to the Directory Service. - `enable_cloudwatch_logs_exports` (List of String) The list of log types that need to be enabled for exporting to CloudWatch Logs. The values in the list depend on the DB engine being used. For more information, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide. +- `enable_global_write_forwarding` (Boolean) Specifies whether to enable this DB cluster to forward write operations to the primary cluster of a global cluster (Aurora global database). By default, write operations are not allowed on Aurora DB clusters that are secondary clusters in an Aurora global database. - `enable_http_endpoint` (Boolean) A value that indicates whether to enable the HTTP endpoint for an Aurora Serverless DB cluster. By default, the HTTP endpoint is disabled. - `enable_iam_database_authentication` (Boolean) A value that indicates whether to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled. - `engine` (String) The name of the database engine to be used for this DB cluster. Valid Values: aurora (for MySQL 5.6-compatible Aurora), aurora-mysql (for MySQL 5.7-compatible Aurora), and aurora-postgresql diff --git a/docs/resources/rds_db_instance.md b/docs/resources/rds_db_instance.md index 635edc2ec8..15da86c000 100644 --- a/docs/resources/rds_db_instance.md +++ b/docs/resources/rds_db_instance.md @@ -150,6 +150,7 @@ Constraints: - `db_security_groups` (List of String) A list of the DB security groups to assign to the DB instance. The list can include both the name of existing DB security groups or references to AWS::RDS::DBSecurityGroup resources created in the template. - `db_snapshot_identifier` (String) The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot. - `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. +- `dedicated_log_volume` (Boolean) Indicates whether the DB instance has a dedicated log volume (DLV) enabled. - `delete_automated_backups` (Boolean) A value that indicates whether to remove automated backups immediately after the DB instance is deleted. This parameter isn't case-sensitive. The default is to remove automated backups immediately after the DB instance is deleted. - `deletion_protection` (Boolean) A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. - `domain` (String) The Active Directory directory ID to create the DB instance in. Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain. diff --git a/docs/resources/s3_storage_lens.md b/docs/resources/s3_storage_lens.md index 7fb0e027dd..cbfaed69a7 100644 --- a/docs/resources/s3_storage_lens.md +++ b/docs/resources/s3_storage_lens.md @@ -60,6 +60,7 @@ Optional: - `advanced_cost_optimization_metrics` (Attributes) Enables advanced cost optimization metrics. (see [below for nested schema](#nestedatt--storage_lens_configuration--account_level--advanced_cost_optimization_metrics)) - `advanced_data_protection_metrics` (Attributes) Enables advanced data protection metrics. (see [below for nested schema](#nestedatt--storage_lens_configuration--account_level--advanced_data_protection_metrics)) - `detailed_status_codes_metrics` (Attributes) Enables detailed status codes metrics. (see [below for nested schema](#nestedatt--storage_lens_configuration--account_level--detailed_status_codes_metrics)) +- `storage_lens_group_level` (Attributes) Specifies the details of Amazon S3 Storage Lens Group configuration. (see [below for nested schema](#nestedatt--storage_lens_configuration--account_level--storage_lens_group_level)) ### Nested Schema for `storage_lens_configuration.account_level.bucket_level` @@ -164,6 +165,23 @@ Optional: - `is_enabled` (Boolean) Specifies whether detailed status codes metrics are enabled or disabled. + +### Nested Schema for `storage_lens_configuration.account_level.storage_lens_group_level` + +Optional: + +- `storage_lens_group_selection_criteria` (Attributes) Selection criteria for Storage Lens Group level metrics (see [below for nested schema](#nestedatt--storage_lens_configuration--account_level--storage_lens_group_level--storage_lens_group_selection_criteria)) + + +### Nested Schema for `storage_lens_configuration.account_level.storage_lens_group_level.storage_lens_group_selection_criteria` + +Optional: + +- `exclude` (Set of String) +- `include` (Set of String) + + + ### Nested Schema for `storage_lens_configuration.aws_org` diff --git a/docs/resources/servicecatalogappregistry_attribute_group_association.md b/docs/resources/servicecatalogappregistry_attribute_group_association.md index cfdd96821b..560aeda091 100644 --- a/docs/resources/servicecatalogappregistry_attribute_group_association.md +++ b/docs/resources/servicecatalogappregistry_attribute_group_association.md @@ -24,7 +24,7 @@ Resource Schema for AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation. - `application_arn` (String) - `attribute_group_arn` (String) -- `id` (String) The ID of this resource. +- `id` (String) Uniquely identifies the resource. ## Import diff --git a/docs/resources/servicecatalogappregistry_resource_association.md b/docs/resources/servicecatalogappregistry_resource_association.md index ea1ccf686b..8215ee5053 100644 --- a/docs/resources/servicecatalogappregistry_resource_association.md +++ b/docs/resources/servicecatalogappregistry_resource_association.md @@ -24,7 +24,7 @@ Resource Schema for AWS::ServiceCatalogAppRegistry::ResourceAssociation ### Read-Only - `application_arn` (String) -- `id` (String) The ID of this resource. +- `id` (String) Uniquely identifies the resource. - `resource_arn` (String) ## Import diff --git a/examples/resources/awscc_appconfig_configuration_profile/import.sh b/examples/resources/awscc_appconfig_configuration_profile/import.sh new file mode 100644 index 0000000000..526717984d --- /dev/null +++ b/examples/resources/awscc_appconfig_configuration_profile/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_appconfig_configuration_profile.exampleOptionally specify the end time for all of your manifest egress requests. When you include end time, note that you cannot use end time query parameters for this manifest's endpoint URL.
", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + validate.IsRFC3339Time(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ManifestFilter + "manifest_filter": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Optionally specify one or more manifest filters for all of your manifest egress requests. When you include a manifest filter, note that you cannot use an identical manifest filter query parameter for this manifest's endpoint URL.
", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 1024), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Start + "start": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Optionally specify the start time for all of your manifest egress requests. When you include start time, note that you cannot use start time query parameters for this manifest's endpoint URL.
", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + validate.IsRFC3339Time(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TimeDelaySeconds + "time_delay_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Optionally specify the time delay for all of your manifest egress requests. Enter a value that is smaller than your endpoint's startover window. When you include time delay, note that you cannot use time delay query parameters for this manifest's endpoint URL.
", + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(0, 1209600), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Filter configuration includes settings for manifest filtering, start and end times, and time delay that apply to all of your egress requests for this manifest.
", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: ManifestName "manifest_name": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "A short short string that's appended to the endpoint URL. The manifest name creates a unique path to this endpoint. If you don't enter a value, MediaPackage uses the default manifest name, index. MediaPackage automatically inserts the format extension, such as .m3u8. You can't use the same manifest name if you use HLS manifest and low-latency HLS manifest. The manifestName on the HLSManifest object overrides the manifestName you provided on the originEndpoint object.
", @@ -300,6 +389,35 @@ func originEndpointResource(ctx context.Context) (resource.Resource, error) { // "pattern": "^[a-zA-Z0-9_-]+$", // "type": "string" // }, + // "FilterConfiguration": { + // "additionalProperties": false, + // "description": "\u003cp\u003eFilter configuration includes settings for manifest filtering, start and end times, and time delay that apply to all of your egress requests for this manifest. \u003c/p\u003e", + // "properties": { + // "End": { + // "description": "\u003cp\u003eOptionally specify the end time for all of your manifest egress requests. When you include end time, note that you cannot use end time query parameters for this manifest's endpoint URL.\u003c/p\u003e", + // "format": "date-time", + // "type": "string" + // }, + // "ManifestFilter": { + // "description": "\u003cp\u003eOptionally specify one or more manifest filters for all of your manifest egress requests. When you include a manifest filter, note that you cannot use an identical manifest filter query parameter for this manifest's endpoint URL.\u003c/p\u003e", + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // }, + // "Start": { + // "description": "\u003cp\u003eOptionally specify the start time for all of your manifest egress requests. When you include start time, note that you cannot use start time query parameters for this manifest's endpoint URL.\u003c/p\u003e", + // "format": "date-time", + // "type": "string" + // }, + // "TimeDelaySeconds": { + // "description": "\u003cp\u003eOptionally specify the time delay for all of your manifest egress requests. Enter a value that is smaller than your endpoint's startover window. When you include time delay, note that you cannot use time delay query parameters for this manifest's endpoint URL.\u003c/p\u003e", + // "maximum": 1209600, + // "minimum": 0, + // "type": "integer" + // } + // }, + // "type": "object" + // }, // "ManifestName": { // "description": "\u003cp\u003eA short short string that's appended to the endpoint URL. The manifest name creates a unique path to this endpoint. If you don't enter a value, MediaPackage uses the default manifest name, index. MediaPackage automatically inserts the format extension, such as .m3u8. You can't use the same manifest name if you use HLS manifest and low-latency HLS manifest. The manifestName on the HLSManifest object overrides the manifestName you provided on the originEndpoint object.\u003c/p\u003e", // "maxLength": 256, @@ -356,6 +474,65 @@ func originEndpointResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: FilterConfiguration + "filter_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: End + "end": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Optionally specify the end time for all of your manifest egress requests. When you include end time, note that you cannot use end time query parameters for this manifest's endpoint URL.
", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + validate.IsRFC3339Time(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ManifestFilter + "manifest_filter": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Optionally specify one or more manifest filters for all of your manifest egress requests. When you include a manifest filter, note that you cannot use an identical manifest filter query parameter for this manifest's endpoint URL.
", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 1024), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Start + "start": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Optionally specify the start time for all of your manifest egress requests. When you include start time, note that you cannot use start time query parameters for this manifest's endpoint URL.
", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + validate.IsRFC3339Time(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TimeDelaySeconds + "time_delay_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Optionally specify the time delay for all of your manifest egress requests. Enter a value that is smaller than your endpoint's startover window. When you include time delay, note that you cannot use time delay query parameters for this manifest's endpoint URL.
", + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(0, 1209600), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Filter configuration includes settings for manifest filtering, start and end times, and time delay that apply to all of your egress requests for this manifest.
", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: ManifestName "manifest_name": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "A short short string that's appended to the endpoint URL. The manifest name creates a unique path to this endpoint. If you don't enter a value, MediaPackage uses the default manifest name, index. MediaPackage automatically inserts the format extension, such as .m3u8. You can't use the same manifest name if you use HLS manifest and low-latency HLS manifest. The manifestName on the HLSManifest object overrides the manifestName you provided on the originEndpoint object.
", @@ -987,7 +1164,7 @@ func originEndpointResource(ctx context.Context) (resource.Resource, error) { } schema := schema.Schema{ - Description: "Definition of AWS::MediaPackageV2::OriginEndpoint Resource Type", + Description: "Represents an origin endpoint that is associated with a channel, offering a dynamically repackaged version of its content through various streaming media protocols. The content can be efficiently disseminated to end-users via a Content Delivery Network (CDN), like Amazon CloudFront.
", Version: 1, Attributes: attributes, } @@ -1012,11 +1189,14 @@ func originEndpointResource(ctx context.Context) (resource.Resource, error) { "encryption": "Encryption", "encryption_contract_configuration": "EncryptionContractConfiguration", "encryption_method": "EncryptionMethod", + "end": "End", + "filter_configuration": "FilterConfiguration", "hls_manifests": "HlsManifests", "include_iframe_only_streams": "IncludeIframeOnlyStreams", "key": "Key", "key_rotation_interval_seconds": "KeyRotationIntervalSeconds", "low_latency_hls_manifests": "LowLatencyHlsManifests", + "manifest_filter": "ManifestFilter", "manifest_name": "ManifestName", "manifest_window_seconds": "ManifestWindowSeconds", "modified_at": "ModifiedAt", @@ -1033,8 +1213,10 @@ func originEndpointResource(ctx context.Context) (resource.Resource, error) { "segment_duration_seconds": "SegmentDurationSeconds", "segment_name": "SegmentName", "speke_key_provider": "SpekeKeyProvider", + "start": "Start", "startover_window_seconds": "StartoverWindowSeconds", "tags": "Tags", + "time_delay_seconds": "TimeDelaySeconds", "ts_encryption_method": "TsEncryptionMethod", "ts_include_dvb_subtitles": "TsIncludeDvbSubtitles", "ts_use_audio_rendition_group": "TsUseAudioRenditionGroup", diff --git a/internal/aws/mediapackagev2/origin_endpoint_singular_data_source_gen.go b/internal/aws/mediapackagev2/origin_endpoint_singular_data_source_gen.go index bd8e8e6019..c907ed19e8 100644 --- a/internal/aws/mediapackagev2/origin_endpoint_singular_data_source_gen.go +++ b/internal/aws/mediapackagev2/origin_endpoint_singular_data_source_gen.go @@ -112,6 +112,35 @@ func originEndpointDataSource(ctx context.Context) (datasource.DataSource, error // "pattern": "^[a-zA-Z0-9_-]+$", // "type": "string" // }, + // "FilterConfiguration": { + // "additionalProperties": false, + // "description": "\u003cp\u003eFilter configuration includes settings for manifest filtering, start and end times, and time delay that apply to all of your egress requests for this manifest. \u003c/p\u003e", + // "properties": { + // "End": { + // "description": "\u003cp\u003eOptionally specify the end time for all of your manifest egress requests. When you include end time, note that you cannot use end time query parameters for this manifest's endpoint URL.\u003c/p\u003e", + // "format": "date-time", + // "type": "string" + // }, + // "ManifestFilter": { + // "description": "\u003cp\u003eOptionally specify one or more manifest filters for all of your manifest egress requests. When you include a manifest filter, note that you cannot use an identical manifest filter query parameter for this manifest's endpoint URL.\u003c/p\u003e", + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // }, + // "Start": { + // "description": "\u003cp\u003eOptionally specify the start time for all of your manifest egress requests. When you include start time, note that you cannot use start time query parameters for this manifest's endpoint URL.\u003c/p\u003e", + // "format": "date-time", + // "type": "string" + // }, + // "TimeDelaySeconds": { + // "description": "\u003cp\u003eOptionally specify the time delay for all of your manifest egress requests. Enter a value that is smaller than your endpoint's startover window. When you include time delay, note that you cannot use time delay query parameters for this manifest's endpoint URL.\u003c/p\u003e", + // "maximum": 1209600, + // "minimum": 0, + // "type": "integer" + // } + // }, + // "type": "object" + // }, // "ManifestName": { // "description": "\u003cp\u003eA short short string that's appended to the endpoint URL. The manifest name creates a unique path to this endpoint. If you don't enter a value, MediaPackage uses the default manifest name, index. MediaPackage automatically inserts the format extension, such as .m3u8. You can't use the same manifest name if you use HLS manifest and low-latency HLS manifest. The manifestName on the HLSManifest object overrides the manifestName you provided on the originEndpoint object.\u003c/p\u003e", // "maxLength": 256, @@ -160,6 +189,33 @@ func originEndpointDataSource(ctx context.Context) (datasource.DataSource, error Description: "A short string that's appended to the endpoint URL. The child manifest name creates a unique path to this endpoint. If you don't enter a value, MediaPackage uses the default child manifest name, index_1. The manifestName on the HLSManifest object overrides the manifestName you provided on the originEndpoint object.
", Computed: true, }, /*END ATTRIBUTE*/ + // Property: FilterConfiguration + "filter_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: End + "end": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Optionally specify the end time for all of your manifest egress requests. When you include end time, note that you cannot use end time query parameters for this manifest's endpoint URL.
", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ManifestFilter + "manifest_filter": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Optionally specify one or more manifest filters for all of your manifest egress requests. When you include a manifest filter, note that you cannot use an identical manifest filter query parameter for this manifest's endpoint URL.
", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Start + "start": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Optionally specify the start time for all of your manifest egress requests. When you include start time, note that you cannot use start time query parameters for this manifest's endpoint URL.
", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TimeDelaySeconds + "time_delay_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Optionally specify the time delay for all of your manifest egress requests. Enter a value that is smaller than your endpoint's startover window. When you include time delay, note that you cannot use time delay query parameters for this manifest's endpoint URL.
", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Filter configuration includes settings for manifest filtering, start and end times, and time delay that apply to all of your egress requests for this manifest.
", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: ManifestName "manifest_name": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "A short short string that's appended to the endpoint URL. The manifest name creates a unique path to this endpoint. If you don't enter a value, MediaPackage uses the default manifest name, index. MediaPackage automatically inserts the format extension, such as .m3u8. You can't use the same manifest name if you use HLS manifest and low-latency HLS manifest. The manifestName on the HLSManifest object overrides the manifestName you provided on the originEndpoint object.
", @@ -212,6 +268,35 @@ func originEndpointDataSource(ctx context.Context) (datasource.DataSource, error // "pattern": "^[a-zA-Z0-9_-]+$", // "type": "string" // }, + // "FilterConfiguration": { + // "additionalProperties": false, + // "description": "\u003cp\u003eFilter configuration includes settings for manifest filtering, start and end times, and time delay that apply to all of your egress requests for this manifest. \u003c/p\u003e", + // "properties": { + // "End": { + // "description": "\u003cp\u003eOptionally specify the end time for all of your manifest egress requests. When you include end time, note that you cannot use end time query parameters for this manifest's endpoint URL.\u003c/p\u003e", + // "format": "date-time", + // "type": "string" + // }, + // "ManifestFilter": { + // "description": "\u003cp\u003eOptionally specify one or more manifest filters for all of your manifest egress requests. When you include a manifest filter, note that you cannot use an identical manifest filter query parameter for this manifest's endpoint URL.\u003c/p\u003e", + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // }, + // "Start": { + // "description": "\u003cp\u003eOptionally specify the start time for all of your manifest egress requests. When you include start time, note that you cannot use start time query parameters for this manifest's endpoint URL.\u003c/p\u003e", + // "format": "date-time", + // "type": "string" + // }, + // "TimeDelaySeconds": { + // "description": "\u003cp\u003eOptionally specify the time delay for all of your manifest egress requests. Enter a value that is smaller than your endpoint's startover window. When you include time delay, note that you cannot use time delay query parameters for this manifest's endpoint URL.\u003c/p\u003e", + // "maximum": 1209600, + // "minimum": 0, + // "type": "integer" + // } + // }, + // "type": "object" + // }, // "ManifestName": { // "description": "\u003cp\u003eA short short string that's appended to the endpoint URL. The manifest name creates a unique path to this endpoint. If you don't enter a value, MediaPackage uses the default manifest name, index. MediaPackage automatically inserts the format extension, such as .m3u8. You can't use the same manifest name if you use HLS manifest and low-latency HLS manifest. The manifestName on the HLSManifest object overrides the manifestName you provided on the originEndpoint object.\u003c/p\u003e", // "maxLength": 256, @@ -260,6 +345,33 @@ func originEndpointDataSource(ctx context.Context) (datasource.DataSource, error Description: "A short string that's appended to the endpoint URL. The child manifest name creates a unique path to this endpoint. If you don't enter a value, MediaPackage uses the default child manifest name, index_1. The manifestName on the HLSManifest object overrides the manifestName you provided on the originEndpoint object.
", Computed: true, }, /*END ATTRIBUTE*/ + // Property: FilterConfiguration + "filter_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: End + "end": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Optionally specify the end time for all of your manifest egress requests. When you include end time, note that you cannot use end time query parameters for this manifest's endpoint URL.
", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ManifestFilter + "manifest_filter": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Optionally specify one or more manifest filters for all of your manifest egress requests. When you include a manifest filter, note that you cannot use an identical manifest filter query parameter for this manifest's endpoint URL.
", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Start + "start": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Optionally specify the start time for all of your manifest egress requests. When you include start time, note that you cannot use start time query parameters for this manifest's endpoint URL.
", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TimeDelaySeconds + "time_delay_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Optionally specify the time delay for all of your manifest egress requests. Enter a value that is smaller than your endpoint's startover window. When you include time delay, note that you cannot use time delay query parameters for this manifest's endpoint URL.
", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Filter configuration includes settings for manifest filtering, start and end times, and time delay that apply to all of your egress requests for this manifest.
", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: ManifestName "manifest_name": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "A short short string that's appended to the endpoint URL. The manifest name creates a unique path to this endpoint. If you don't enter a value, MediaPackage uses the default manifest name, index. MediaPackage automatically inserts the format extension, such as .m3u8. You can't use the same manifest name if you use HLS manifest and low-latency HLS manifest. The manifestName on the HLSManifest object overrides the manifestName you provided on the originEndpoint object.
", @@ -708,11 +820,14 @@ func originEndpointDataSource(ctx context.Context) (datasource.DataSource, error "encryption": "Encryption", "encryption_contract_configuration": "EncryptionContractConfiguration", "encryption_method": "EncryptionMethod", + "end": "End", + "filter_configuration": "FilterConfiguration", "hls_manifests": "HlsManifests", "include_iframe_only_streams": "IncludeIframeOnlyStreams", "key": "Key", "key_rotation_interval_seconds": "KeyRotationIntervalSeconds", "low_latency_hls_manifests": "LowLatencyHlsManifests", + "manifest_filter": "ManifestFilter", "manifest_name": "ManifestName", "manifest_window_seconds": "ManifestWindowSeconds", "modified_at": "ModifiedAt", @@ -729,8 +844,10 @@ func originEndpointDataSource(ctx context.Context) (datasource.DataSource, error "segment_duration_seconds": "SegmentDurationSeconds", "segment_name": "SegmentName", "speke_key_provider": "SpekeKeyProvider", + "start": "Start", "startover_window_seconds": "StartoverWindowSeconds", "tags": "Tags", + "time_delay_seconds": "TimeDelaySeconds", "ts_encryption_method": "TsEncryptionMethod", "ts_include_dvb_subtitles": "TsIncludeDvbSubtitles", "ts_use_audio_rendition_group": "TsUseAudioRenditionGroup", diff --git a/internal/aws/quicksight/data_source_resource_gen.go b/internal/aws/quicksight/data_source_resource_gen.go index 36b96ba765..21297edfde 100644 --- a/internal/aws/quicksight/data_source_resource_gen.go +++ b/internal/aws/quicksight/data_source_resource_gen.go @@ -489,6 +489,42 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { // ], // "type": "object" // }, + // "StarburstParameters": { + // "description": "\u003cp\u003eStarburst parameters.\u003c/p\u003e", + // "properties": { + // "Catalog": { + // "description": "\u003cp\u003eCatalog.\u003c/p\u003e", + // "maxLength": 128, + // "minLength": 0, + // "type": "string" + // }, + // "Host": { + // "description": "\u003cp\u003eHost.\u003c/p\u003e", + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // }, + // "Port": { + // "description": "\u003cp\u003ePort.\u003c/p\u003e", + // "maximum": 65535, + // "minimum": 1, + // "type": "number" + // }, + // "ProductType": { + // "enum": [ + // "GALAXY", + // "ENTERPRISE" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Host", + // "Port", + // "Catalog" + // ], + // "type": "object" + // }, // "TeradataParameters": { // "description": "\u003cp\u003eTeradata parameters.\u003c/p\u003e", // "properties": { @@ -517,6 +553,35 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { // "Port" // ], // "type": "object" + // }, + // "TrinoParameters": { + // "description": "\u003cp\u003eTrino parameters.\u003c/p\u003e", + // "properties": { + // "Catalog": { + // "description": "\u003cp\u003eCatalog.\u003c/p\u003e", + // "maxLength": 128, + // "minLength": 0, + // "type": "string" + // }, + // "Host": { + // "description": "\u003cp\u003eHost.\u003c/p\u003e", + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // }, + // "Port": { + // "description": "\u003cp\u003ePort.\u003c/p\u003e", + // "maximum": 65535, + // "minimum": 1, + // "type": "number" + // } + // }, + // "required": [ + // "Host", + // "Port", + // "Catalog" + // ], + // "type": "object" // } // }, // "type": "object" @@ -1102,6 +1167,55 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: StarburstParameters + "starburst_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Catalog + "catalog": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Catalog.
", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 128), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Host + "host": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Host.
", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Port + "port": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Port.
", + Required: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.Between(1.000000, 65535.000000), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: ProductType + "product_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "GALAXY", + "ENTERPRISE", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Starburst parameters.
", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: TeradataParameters "teradata_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -1137,6 +1251,41 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: TrinoParameters + "trino_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Catalog + "catalog": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Catalog.
", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 128), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Host + "host": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Host.
", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Port + "port": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Port.
", + Required: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.Between(1.000000, 65535.000000), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Trino parameters.
", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ Description: "A set of alternate data source parameters that you want to share for the credentials\n stored with this data source. The credentials are applied in tandem with the data source\n parameters when you copy a data source by using a create or update request. The API\n operation compares the DataSourceParameters
structure that's in the request\n with the structures in the AlternateDataSourceParameters
allow list. If the\n structures are an exact match, the request is allowed to use the credentials from this\n existing data source. If the AlternateDataSourceParameters
list is null,\n the Credentials
originally used with this DataSourceParameters
\n are automatically allowed.
Catalog.
", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 128), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Host + "host": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Host.
", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Port + "port": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Port.
", + Required: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.Between(1.000000, 65535.000000), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: ProductType + "product_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "GALAXY", + "ENTERPRISE", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Starburst parameters.
", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: TeradataParameters "teradata_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -2361,6 +2624,41 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: TrinoParameters + "trino_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Catalog + "catalog": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Catalog.
", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 128), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Host + "host": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Host.
", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Port + "port": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Port.
", + Required: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.Between(1.000000, 65535.000000), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Trino parameters.
", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ Description: "A set of alternate data source parameters that you want to share for these\n credentials. The credentials are applied in tandem with the data source parameters when\n you copy a data source by using a create or update request. The API operation compares\n the DataSourceParameters
structure that's in the request with the\n structures in the AlternateDataSourceParameters
allow list. If the\n structures are an exact match, the request is allowed to use the new data source with\n the existing credentials. If the AlternateDataSourceParameters
list is\n null, the DataSourceParameters
originally used with these\n Credentials
is automatically allowed.
Catalog.
", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 128), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Host + "host": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Host.
", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Port + "port": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Port.
", + Required: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.Between(1.000000, 65535.000000), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: ProductType + "product_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "GALAXY", + "ENTERPRISE", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Starburst parameters.
", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: TeradataParameters "teradata_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -3530,6 +3942,41 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: TrinoParameters + "trino_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Catalog + "catalog": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Catalog.
", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 128), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Host + "host": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Host.
", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Port + "port": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Port.
", + Required: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.Between(1.000000, 65535.000000), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Trino parameters.
", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "The parameters that Amazon QuickSight uses to connect to your underlying data source.\n This is a variant type structure. For this structure to be valid, only one of the\n attributes can be non-null.
", Optional: true, @@ -3651,7 +4098,7 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { // "items": { // "type": "string" // }, - // "maxItems": 16, + // "maxItems": 20, // "minItems": 1, // "type": "array" // }, @@ -3681,7 +4128,7 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { Description: "The IAM action to grant or revoke permissions on.
", Required: true, Validators: []validator.List{ /*START VALIDATORS*/ - listvalidator.SizeBetween(1, 16), + listvalidator.SizeBetween(1, 20), }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ // Property: Principal @@ -3848,7 +4295,9 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { // "SQLSERVER", // "TERADATA", // "TWITTER", - // "TIMESTREAM" + // "TIMESTREAM", + // "STARBURST", + // "TRINO" // ], // "type": "string" // } @@ -3882,6 +4331,8 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { "TERADATA", "TWITTER", "TIMESTREAM", + "STARBURST", + "TRINO", ), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -3981,6 +4432,7 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { "postgre_sql_parameters": "PostgreSqlParameters", "presto_parameters": "PrestoParameters", "principal": "Principal", + "product_type": "ProductType", "rds_parameters": "RdsParameters", "redshift_parameters": "RedshiftParameters", "role_arn": "RoleArn", @@ -3991,9 +4443,11 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { "sql_endpoint_path": "SqlEndpointPath", "sql_server_parameters": "SqlServerParameters", "ssl_properties": "SslProperties", + "starburst_parameters": "StarburstParameters", "status": "Status", "tags": "Tags", "teradata_parameters": "TeradataParameters", + "trino_parameters": "TrinoParameters", "type": "Type", "username": "Username", "value": "Value", diff --git a/internal/aws/quicksight/data_source_singular_data_source_gen.go b/internal/aws/quicksight/data_source_singular_data_source_gen.go index 1e424526d6..f904bee75e 100644 --- a/internal/aws/quicksight/data_source_singular_data_source_gen.go +++ b/internal/aws/quicksight/data_source_singular_data_source_gen.go @@ -479,6 +479,42 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { // ], // "type": "object" // }, + // "StarburstParameters": { + // "description": "\u003cp\u003eStarburst parameters.\u003c/p\u003e", + // "properties": { + // "Catalog": { + // "description": "\u003cp\u003eCatalog.\u003c/p\u003e", + // "maxLength": 128, + // "minLength": 0, + // "type": "string" + // }, + // "Host": { + // "description": "\u003cp\u003eHost.\u003c/p\u003e", + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // }, + // "Port": { + // "description": "\u003cp\u003ePort.\u003c/p\u003e", + // "maximum": 65535, + // "minimum": 1, + // "type": "number" + // }, + // "ProductType": { + // "enum": [ + // "GALAXY", + // "ENTERPRISE" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Host", + // "Port", + // "Catalog" + // ], + // "type": "object" + // }, // "TeradataParameters": { // "description": "\u003cp\u003eTeradata parameters.\u003c/p\u003e", // "properties": { @@ -507,6 +543,35 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { // "Port" // ], // "type": "object" + // }, + // "TrinoParameters": { + // "description": "\u003cp\u003eTrino parameters.\u003c/p\u003e", + // "properties": { + // "Catalog": { + // "description": "\u003cp\u003eCatalog.\u003c/p\u003e", + // "maxLength": 128, + // "minLength": 0, + // "type": "string" + // }, + // "Host": { + // "description": "\u003cp\u003eHost.\u003c/p\u003e", + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // }, + // "Port": { + // "description": "\u003cp\u003ePort.\u003c/p\u003e", + // "maximum": 65535, + // "minimum": 1, + // "type": "number" + // } + // }, + // "required": [ + // "Host", + // "Port", + // "Catalog" + // ], + // "type": "object" // } // }, // "type": "object" @@ -865,6 +930,32 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "SQL Server parameters.
", Computed: true, }, /*END ATTRIBUTE*/ + // Property: StarburstParameters + "starburst_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Catalog + "catalog": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Catalog.
", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Host + "host": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Host.
", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Port + "port": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Port.
", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ProductType + "product_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Starburst parameters.
", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: TeradataParameters "teradata_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -887,6 +978,28 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "Teradata parameters.
", Computed: true, }, /*END ATTRIBUTE*/ + // Property: TrinoParameters + "trino_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Catalog + "catalog": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Catalog.
", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Host + "host": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Host.
", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Port + "port": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Port.
", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Trino parameters.
", + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ Description: "A set of alternate data source parameters that you want to share for the credentials\n stored with this data source. The credentials are applied in tandem with the data source\n parameters when you copy a data source by using a create or update request. The API\n operation compares the DataSourceParameters
structure that's in the request\n with the structures in the AlternateDataSourceParameters
allow list. If the\n structures are an exact match, the request is allowed to use the credentials from this\n existing data source. If the AlternateDataSourceParameters
list is null,\n the Credentials
originally used with this DataSourceParameters
\n are automatically allowed.
SQL Server parameters.
", Computed: true, }, /*END ATTRIBUTE*/ + // Property: StarburstParameters + "starburst_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Catalog + "catalog": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Catalog.
", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Host + "host": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Host.
", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Port + "port": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Port.
", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ProductType + "product_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Starburst parameters.
", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: TeradataParameters "teradata_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -1842,6 +2046,28 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "Teradata parameters.
", Computed: true, }, /*END ATTRIBUTE*/ + // Property: TrinoParameters + "trino_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Catalog + "catalog": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Catalog.
", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Host + "host": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Host.
", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Port + "port": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Port.
", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Trino parameters.
", + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ Description: "A set of alternate data source parameters that you want to share for these\n credentials. The credentials are applied in tandem with the data source parameters when\n you copy a data source by using a create or update request. The API operation compares\n the DataSourceParameters
structure that's in the request with the\n structures in the AlternateDataSourceParameters
allow list. If the\n structures are an exact match, the request is allowed to use the new data source with\n the existing credentials. If the AlternateDataSourceParameters
list is\n null, the DataSourceParameters
originally used with these\n Credentials
is automatically allowed.
SQL Server parameters.
", Computed: true, }, /*END ATTRIBUTE*/ + // Property: StarburstParameters + "starburst_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Catalog + "catalog": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Catalog.
", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Host + "host": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Host.
", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Port + "port": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Port.
", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ProductType + "product_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Starburst parameters.
", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: TeradataParameters "teradata_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -2736,6 +3053,28 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "Teradata parameters.
", Computed: true, }, /*END ATTRIBUTE*/ + // Property: TrinoParameters + "trino_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Catalog + "catalog": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Catalog.
", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Host + "host": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Host.
", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Port + "port": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Port.
", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Trino parameters.
", + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "The parameters that Amazon QuickSight uses to connect to your underlying data source.\n This is a variant type structure. For this structure to be valid, only one of the\n attributes can be non-null.
", Computed: true, @@ -2819,7 +3158,7 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { // "items": { // "type": "string" // }, - // "maxItems": 16, + // "maxItems": 20, // "minItems": 1, // "type": "array" // }, @@ -2979,7 +3318,9 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { // "SQLSERVER", // "TERADATA", // "TWITTER", - // "TIMESTREAM" + // "TIMESTREAM", + // "STARBURST", + // "TRINO" // ], // "type": "string" // } @@ -3069,6 +3410,7 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { "postgre_sql_parameters": "PostgreSqlParameters", "presto_parameters": "PrestoParameters", "principal": "Principal", + "product_type": "ProductType", "rds_parameters": "RdsParameters", "redshift_parameters": "RedshiftParameters", "role_arn": "RoleArn", @@ -3079,9 +3421,11 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { "sql_endpoint_path": "SqlEndpointPath", "sql_server_parameters": "SqlServerParameters", "ssl_properties": "SslProperties", + "starburst_parameters": "StarburstParameters", "status": "Status", "tags": "Tags", "teradata_parameters": "TeradataParameters", + "trino_parameters": "TrinoParameters", "type": "Type", "username": "Username", "value": "Value", diff --git a/internal/aws/rds/db_cluster_resource_gen.go b/internal/aws/rds/db_cluster_resource_gen.go index 3178282917..87cc4eddb2 100644 --- a/internal/aws/rds/db_cluster_resource_gen.go +++ b/internal/aws/rds/db_cluster_resource_gen.go @@ -418,6 +418,21 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { listplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: EnableGlobalWriteForwarding + // CloudFormation resource type schema: + // + // { + // "description": "Specifies whether to enable this DB cluster to forward write operations to the primary cluster of a global cluster (Aurora global database). By default, write operations are not allowed on Aurora DB clusters that are secondary clusters in an Aurora global database.", + // "type": "boolean" + // } + "enable_global_write_forwarding": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies whether to enable this DB cluster to forward write operations to the primary cluster of a global cluster (Aurora global database). By default, write operations are not allowed on Aurora DB clusters that are secondary clusters in an Aurora global database.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: EnableHttpEndpoint // CloudFormation resource type schema: // @@ -1300,6 +1315,7 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { "domain": "Domain", "domain_iam_role_name": "DomainIAMRoleName", "enable_cloudwatch_logs_exports": "EnableCloudwatchLogsExports", + "enable_global_write_forwarding": "EnableGlobalWriteForwarding", "enable_http_endpoint": "EnableHttpEndpoint", "enable_iam_database_authentication": "EnableIAMDatabaseAuthentication", "endpoint": "Endpoint", 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 469d996f10..1fa3f890ae 100644 --- a/internal/aws/rds/db_cluster_singular_data_source_gen.go +++ b/internal/aws/rds/db_cluster_singular_data_source_gen.go @@ -294,6 +294,17 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The list of log types that need to be enabled for exporting to CloudWatch Logs. The values in the list depend on the DB engine being used. For more information, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: EnableGlobalWriteForwarding + // CloudFormation resource type schema: + // + // { + // "description": "Specifies whether to enable this DB cluster to forward write operations to the primary cluster of a global cluster (Aurora global database). By default, write operations are not allowed on Aurora DB clusters that are secondary clusters in an Aurora global database.", + // "type": "boolean" + // } + "enable_global_write_forwarding": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies whether to enable this DB cluster to forward write operations to the primary cluster of a global cluster (Aurora global database). By default, write operations are not allowed on Aurora DB clusters that are secondary clusters in an Aurora global database.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: EnableHttpEndpoint // CloudFormation resource type schema: // @@ -933,6 +944,7 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { "domain": "Domain", "domain_iam_role_name": "DomainIAMRoleName", "enable_cloudwatch_logs_exports": "EnableCloudwatchLogsExports", + "enable_global_write_forwarding": "EnableGlobalWriteForwarding", "enable_http_endpoint": "EnableHttpEndpoint", "enable_iam_database_authentication": "EnableIAMDatabaseAuthentication", "endpoint": "Endpoint", diff --git a/internal/aws/rds/db_instance_resource_gen.go b/internal/aws/rds/db_instance_resource_gen.go index 2ec99c03a3..8b66c5b634 100644 --- a/internal/aws/rds/db_instance_resource_gen.go +++ b/internal/aws/rds/db_instance_resource_gen.go @@ -506,6 +506,21 @@ func dBInstanceResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: DedicatedLogVolume + // CloudFormation resource type schema: + // + // { + // "description": "Indicates whether the DB instance has a dedicated log volume (DLV) enabled.", + // "type": "boolean" + // } + "dedicated_log_volume": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Indicates whether the DB instance has a dedicated log volume (DLV) enabled.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: DeleteAutomatedBackups // CloudFormation resource type schema: // @@ -1573,6 +1588,7 @@ func dBInstanceResource(ctx context.Context) (resource.Resource, error) { "db_subnet_group_name": "DBSubnetGroupName", "db_system_id": "DBSystemId", "dbi_resource_id": "DbiResourceId", + "dedicated_log_volume": "DedicatedLogVolume", "delete_automated_backups": "DeleteAutomatedBackups", "deletion_protection": "DeletionProtection", "domain": "Domain", 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 1cb5645b6c..ccc163a9fa 100644 --- a/internal/aws/rds/db_instance_singular_data_source_gen.go +++ b/internal/aws/rds/db_instance_singular_data_source_gen.go @@ -366,6 +366,17 @@ func dBInstanceDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The AWS Region-unique, immutable identifier for the DB instance. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB instance is accessed.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: DedicatedLogVolume + // CloudFormation resource type schema: + // + // { + // "description": "Indicates whether the DB instance has a dedicated log volume (DLV) enabled.", + // "type": "boolean" + // } + "dedicated_log_volume": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Indicates whether the DB instance has a dedicated log volume (DLV) enabled.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: DeleteAutomatedBackups // CloudFormation resource type schema: // @@ -1139,6 +1150,7 @@ func dBInstanceDataSource(ctx context.Context) (datasource.DataSource, error) { "db_subnet_group_name": "DBSubnetGroupName", "db_system_id": "DBSystemId", "dbi_resource_id": "DbiResourceId", + "dedicated_log_volume": "DedicatedLogVolume", "delete_automated_backups": "DeleteAutomatedBackups", "deletion_protection": "DeletionProtection", "domain": "Domain", diff --git a/internal/aws/route53resolver/firewall_domain_list_plural_data_source_gen.go b/internal/aws/route53resolver/firewall_domain_list_plural_data_source_gen.go new file mode 100644 index 0000000000..ffc791cf5d --- /dev/null +++ b/internal/aws/route53resolver/firewall_domain_list_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 route53resolver + +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_route53resolver_firewall_domain_lists", firewallDomainListsDataSource) +} + +// firewallDomainListsDataSource returns the Terraform awscc_route53resolver_firewall_domain_lists data source. +// This Terraform data source corresponds to the CloudFormation AWS::Route53Resolver::FirewallDomainList resource. +func firewallDomainListsDataSource(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::Route53Resolver::FirewallDomainList", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Route53Resolver::FirewallDomainList").WithTerraformTypeName("awscc_route53resolver_firewall_domain_lists") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/route53resolver/firewall_domain_list_plural_data_source_gen_test.go b/internal/aws/route53resolver/firewall_domain_list_plural_data_source_gen_test.go new file mode 100644 index 0000000000..e96c1743b8 --- /dev/null +++ b/internal/aws/route53resolver/firewall_domain_list_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 route53resolver_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSRoute53ResolverFirewallDomainListsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Route53Resolver::FirewallDomainList", "awscc_route53resolver_firewall_domain_lists", "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/s3/storage_lens_resource_gen.go b/internal/aws/s3/storage_lens_resource_gen.go index ee206cec7e..ab07cc4f45 100644 --- a/internal/aws/s3/storage_lens_resource_gen.go +++ b/internal/aws/s3/storage_lens_resource_gen.go @@ -178,6 +178,38 @@ func storageLensResource(ctx context.Context) (resource.Resource, error) { // } // }, // "type": "object" + // }, + // "StorageLensGroupLevel": { + // "additionalProperties": false, + // "description": "Specifies the details of Amazon S3 Storage Lens Group configuration.", + // "properties": { + // "StorageLensGroupSelectionCriteria": { + // "additionalProperties": false, + // "description": "Selection criteria for Storage Lens Group level metrics", + // "properties": { + // "Exclude": { + // "insertionOrder": false, + // "items": { + // "description": "The ARN for the Amazon S3 Storage Lens Group configuration.", + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // }, + // "Include": { + // "insertionOrder": false, + // "items": { + // "description": "The ARN for the Amazon S3 Storage Lens Group configuration.", + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" // } // }, // "required": [ @@ -594,6 +626,46 @@ func storageLensResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: StorageLensGroupLevel + "storage_lens_group_level": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: StorageLensGroupSelectionCriteria + "storage_lens_group_selection_criteria": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Exclude + "exclude": schema.SetAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Include + "include": schema.SetAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Selection criteria for Storage Lens Group level metrics", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the details of Amazon S3 Storage Lens Group configuration.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "Account-level metrics configurations.", Required: true, @@ -899,42 +971,44 @@ func storageLensResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithTerraformSchema(schema) opts = opts.WithSyntheticIDAttribute(true) opts = opts.WithAttributeNameMap(map[string]string{ - "account_id": "AccountId", - "account_level": "AccountLevel", - "activity_metrics": "ActivityMetrics", - "advanced_cost_optimization_metrics": "AdvancedCostOptimizationMetrics", - "advanced_data_protection_metrics": "AdvancedDataProtectionMetrics", - "arn": "Arn", - "aws_org": "AwsOrg", - "bucket_level": "BucketLevel", - "buckets": "Buckets", - "cloudwatch_metrics": "CloudWatchMetrics", - "data_export": "DataExport", - "delimiter": "Delimiter", - "detailed_status_codes_metrics": "DetailedStatusCodesMetrics", - "encryption": "Encryption", - "exclude": "Exclude", - "format": "Format", - "id": "Id", - "include": "Include", - "is_enabled": "IsEnabled", - "key": "Key", - "key_id": "KeyId", - "max_depth": "MaxDepth", - "min_storage_bytes_percentage": "MinStorageBytesPercentage", - "output_schema_version": "OutputSchemaVersion", - "prefix": "Prefix", - "prefix_level": "PrefixLevel", - "regions": "Regions", - "s3_bucket_destination": "S3BucketDestination", - "selection_criteria": "SelectionCriteria", - "ssekms": "SSEKMS", - "sses3": "SSES3", - "storage_lens_arn": "StorageLensArn", - "storage_lens_configuration": "StorageLensConfiguration", - "storage_metrics": "StorageMetrics", - "tags": "Tags", - "value": "Value", + "account_id": "AccountId", + "account_level": "AccountLevel", + "activity_metrics": "ActivityMetrics", + "advanced_cost_optimization_metrics": "AdvancedCostOptimizationMetrics", + "advanced_data_protection_metrics": "AdvancedDataProtectionMetrics", + "arn": "Arn", + "aws_org": "AwsOrg", + "bucket_level": "BucketLevel", + "buckets": "Buckets", + "cloudwatch_metrics": "CloudWatchMetrics", + "data_export": "DataExport", + "delimiter": "Delimiter", + "detailed_status_codes_metrics": "DetailedStatusCodesMetrics", + "encryption": "Encryption", + "exclude": "Exclude", + "format": "Format", + "id": "Id", + "include": "Include", + "is_enabled": "IsEnabled", + "key": "Key", + "key_id": "KeyId", + "max_depth": "MaxDepth", + "min_storage_bytes_percentage": "MinStorageBytesPercentage", + "output_schema_version": "OutputSchemaVersion", + "prefix": "Prefix", + "prefix_level": "PrefixLevel", + "regions": "Regions", + "s3_bucket_destination": "S3BucketDestination", + "selection_criteria": "SelectionCriteria", + "ssekms": "SSEKMS", + "sses3": "SSES3", + "storage_lens_arn": "StorageLensArn", + "storage_lens_configuration": "StorageLensConfiguration", + "storage_lens_group_level": "StorageLensGroupLevel", + "storage_lens_group_selection_criteria": "StorageLensGroupSelectionCriteria", + "storage_metrics": "StorageMetrics", + "tags": "Tags", + "value": "Value", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/s3/storage_lens_singular_data_source_gen.go b/internal/aws/s3/storage_lens_singular_data_source_gen.go index 9dbf70c9f5..feca061840 100644 --- a/internal/aws/s3/storage_lens_singular_data_source_gen.go +++ b/internal/aws/s3/storage_lens_singular_data_source_gen.go @@ -168,6 +168,38 @@ func storageLensDataSource(ctx context.Context) (datasource.DataSource, error) { // } // }, // "type": "object" + // }, + // "StorageLensGroupLevel": { + // "additionalProperties": false, + // "description": "Specifies the details of Amazon S3 Storage Lens Group configuration.", + // "properties": { + // "StorageLensGroupSelectionCriteria": { + // "additionalProperties": false, + // "description": "Selection criteria for Storage Lens Group level metrics", + // "properties": { + // "Exclude": { + // "insertionOrder": false, + // "items": { + // "description": "The ARN for the Amazon S3 Storage Lens Group configuration.", + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // }, + // "Include": { + // "insertionOrder": false, + // "items": { + // "description": "The ARN for the Amazon S3 Storage Lens Group configuration.", + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" // } // }, // "required": [ @@ -496,6 +528,30 @@ func storageLensDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "Enables detailed status codes metrics.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: StorageLensGroupLevel + "storage_lens_group_level": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: StorageLensGroupSelectionCriteria + "storage_lens_group_selection_criteria": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Exclude + "exclude": schema.SetAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Include + "include": schema.SetAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Selection criteria for Storage Lens Group level metrics", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the details of Amazon S3 Storage Lens Group configuration.", + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "Account-level metrics configurations.", Computed: true, @@ -706,42 +762,44 @@ func storageLensDataSource(ctx context.Context) (datasource.DataSource, error) { opts = opts.WithCloudFormationTypeName("AWS::S3::StorageLens").WithTerraformTypeName("awscc_s3_storage_lens") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "account_id": "AccountId", - "account_level": "AccountLevel", - "activity_metrics": "ActivityMetrics", - "advanced_cost_optimization_metrics": "AdvancedCostOptimizationMetrics", - "advanced_data_protection_metrics": "AdvancedDataProtectionMetrics", - "arn": "Arn", - "aws_org": "AwsOrg", - "bucket_level": "BucketLevel", - "buckets": "Buckets", - "cloudwatch_metrics": "CloudWatchMetrics", - "data_export": "DataExport", - "delimiter": "Delimiter", - "detailed_status_codes_metrics": "DetailedStatusCodesMetrics", - "encryption": "Encryption", - "exclude": "Exclude", - "format": "Format", - "id": "Id", - "include": "Include", - "is_enabled": "IsEnabled", - "key": "Key", - "key_id": "KeyId", - "max_depth": "MaxDepth", - "min_storage_bytes_percentage": "MinStorageBytesPercentage", - "output_schema_version": "OutputSchemaVersion", - "prefix": "Prefix", - "prefix_level": "PrefixLevel", - "regions": "Regions", - "s3_bucket_destination": "S3BucketDestination", - "selection_criteria": "SelectionCriteria", - "ssekms": "SSEKMS", - "sses3": "SSES3", - "storage_lens_arn": "StorageLensArn", - "storage_lens_configuration": "StorageLensConfiguration", - "storage_metrics": "StorageMetrics", - "tags": "Tags", - "value": "Value", + "account_id": "AccountId", + "account_level": "AccountLevel", + "activity_metrics": "ActivityMetrics", + "advanced_cost_optimization_metrics": "AdvancedCostOptimizationMetrics", + "advanced_data_protection_metrics": "AdvancedDataProtectionMetrics", + "arn": "Arn", + "aws_org": "AwsOrg", + "bucket_level": "BucketLevel", + "buckets": "Buckets", + "cloudwatch_metrics": "CloudWatchMetrics", + "data_export": "DataExport", + "delimiter": "Delimiter", + "detailed_status_codes_metrics": "DetailedStatusCodesMetrics", + "encryption": "Encryption", + "exclude": "Exclude", + "format": "Format", + "id": "Id", + "include": "Include", + "is_enabled": "IsEnabled", + "key": "Key", + "key_id": "KeyId", + "max_depth": "MaxDepth", + "min_storage_bytes_percentage": "MinStorageBytesPercentage", + "output_schema_version": "OutputSchemaVersion", + "prefix": "Prefix", + "prefix_level": "PrefixLevel", + "regions": "Regions", + "s3_bucket_destination": "S3BucketDestination", + "selection_criteria": "SelectionCriteria", + "ssekms": "SSEKMS", + "sses3": "SSES3", + "storage_lens_arn": "StorageLensArn", + "storage_lens_configuration": "StorageLensConfiguration", + "storage_lens_group_level": "StorageLensGroupLevel", + "storage_lens_group_selection_criteria": "StorageLensGroupSelectionCriteria", + "storage_metrics": "StorageMetrics", + "tags": "Tags", + "value": "Value", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/sagemaker/image_resource_gen.go b/internal/aws/sagemaker/image_resource_gen.go index 465516b32a..06fa3ccd84 100644 --- a/internal/aws/sagemaker/image_resource_gen.go +++ b/internal/aws/sagemaker/image_resource_gen.go @@ -157,7 +157,6 @@ func imageResource(ctx context.Context) (resource.Resource, error) { // "type": "object" // }, // "maxItems": 50, - // "minItems": 1, // "type": "array" // } "tags": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ @@ -185,7 +184,7 @@ func imageResource(ctx context.Context) (resource.Resource, error) { Optional: true, Computed: true, Validators: []validator.List{ /*START VALIDATORS*/ - listvalidator.SizeBetween(1, 50), + listvalidator.SizeAtMost(50), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ listplanmodifier.UseStateForUnknown(), diff --git a/internal/aws/sagemaker/image_singular_data_source_gen.go b/internal/aws/sagemaker/image_singular_data_source_gen.go index 8615e22a0c..bbbf9d3655 100644 --- a/internal/aws/sagemaker/image_singular_data_source_gen.go +++ b/internal/aws/sagemaker/image_singular_data_source_gen.go @@ -121,7 +121,6 @@ func imageDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "object" // }, // "maxItems": 50, - // "minItems": 1, // "type": "array" // } "tags": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ diff --git a/internal/aws/servicecatalogappregistry/attribute_group_association_resource_gen.go b/internal/aws/servicecatalogappregistry/attribute_group_association_resource_gen.go index 7cc767cc09..705ba8e60d 100644 --- a/internal/aws/servicecatalogappregistry/attribute_group_association_resource_gen.go +++ b/internal/aws/servicecatalogappregistry/attribute_group_association_resource_gen.go @@ -95,20 +95,16 @@ func attributeGroupAssociationResource(ctx context.Context) (resource.Resource, stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ - // Property: Id - // CloudFormation resource type schema: - // - // { - // "type": "string" - // } - "id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, - PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ - }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + schema := schema.Schema{ Description: "Resource Schema for AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation.", Version: 1, @@ -119,13 +115,12 @@ func attributeGroupAssociationResource(ctx context.Context) (resource.Resource, opts = opts.WithCloudFormationTypeName("AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation").WithTerraformTypeName("awscc_servicecatalogappregistry_attribute_group_association") opts = opts.WithTerraformSchema(schema) - opts = opts.WithSyntheticIDAttribute(false) + opts = opts.WithSyntheticIDAttribute(true) opts = opts.WithAttributeNameMap(map[string]string{ "application": "Application", "application_arn": "ApplicationArn", "attribute_group": "AttributeGroup", "attribute_group_arn": "AttributeGroupArn", - "id": "Id", }) opts = opts.IsImmutableType(true) diff --git a/internal/aws/servicecatalogappregistry/attribute_group_association_singular_data_source_gen.go b/internal/aws/servicecatalogappregistry/attribute_group_association_singular_data_source_gen.go index 4aff376c27..0675f17766 100644 --- a/internal/aws/servicecatalogappregistry/attribute_group_association_singular_data_source_gen.go +++ b/internal/aws/servicecatalogappregistry/attribute_group_association_singular_data_source_gen.go @@ -71,15 +71,6 @@ func attributeGroupAssociationDataSource(ctx context.Context) (datasource.DataSo "attribute_group_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ - // Property: Id - // CloudFormation resource type schema: - // - // { - // "type": "string" - // } - "id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, - }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ attributes["id"] = schema.StringAttribute{ @@ -101,7 +92,6 @@ func attributeGroupAssociationDataSource(ctx context.Context) (datasource.DataSo "application_arn": "ApplicationArn", "attribute_group": "AttributeGroup", "attribute_group_arn": "AttributeGroupArn", - "id": "Id", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/servicecatalogappregistry/resource_association_resource_gen.go b/internal/aws/servicecatalogappregistry/resource_association_resource_gen.go index d762540d79..1880f08e5f 100644 --- a/internal/aws/servicecatalogappregistry/resource_association_resource_gen.go +++ b/internal/aws/servicecatalogappregistry/resource_association_resource_gen.go @@ -61,18 +61,6 @@ func resourceAssociationResource(ctx context.Context) (resource.Resource, error) stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ - // Property: Id - // CloudFormation resource type schema: - // - // { - // "type": "string" - // } - "id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, - PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ - }, /*END ATTRIBUTE*/ // Property: Resource // CloudFormation resource type schema: // @@ -128,6 +116,14 @@ func resourceAssociationResource(ctx context.Context) (resource.Resource, error) }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + schema := schema.Schema{ Description: "Resource Schema for AWS::ServiceCatalogAppRegistry::ResourceAssociation", Version: 1, @@ -138,11 +134,10 @@ func resourceAssociationResource(ctx context.Context) (resource.Resource, error) opts = opts.WithCloudFormationTypeName("AWS::ServiceCatalogAppRegistry::ResourceAssociation").WithTerraformTypeName("awscc_servicecatalogappregistry_resource_association") opts = opts.WithTerraformSchema(schema) - opts = opts.WithSyntheticIDAttribute(false) + opts = opts.WithSyntheticIDAttribute(true) opts = opts.WithAttributeNameMap(map[string]string{ "application": "Application", "application_arn": "ApplicationArn", - "id": "Id", "resource": "Resource", "resource_arn": "ResourceArn", "resource_type": "ResourceType", diff --git a/internal/aws/servicecatalogappregistry/resource_association_singular_data_source_gen.go b/internal/aws/servicecatalogappregistry/resource_association_singular_data_source_gen.go index 580b2f5bf4..3e3c1366d8 100644 --- a/internal/aws/servicecatalogappregistry/resource_association_singular_data_source_gen.go +++ b/internal/aws/servicecatalogappregistry/resource_association_singular_data_source_gen.go @@ -47,15 +47,6 @@ func resourceAssociationDataSource(ctx context.Context) (datasource.DataSource, "application_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ - // Property: Id - // CloudFormation resource type schema: - // - // { - // "type": "string" - // } - "id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, - }, /*END ATTRIBUTE*/ // Property: Resource // CloudFormation resource type schema: // @@ -111,7 +102,6 @@ func resourceAssociationDataSource(ctx context.Context) (datasource.DataSource, opts = opts.WithAttributeNameMap(map[string]string{ "application": "Application", "application_arn": "ApplicationArn", - "id": "Id", "resource": "Resource", "resource_arn": "ResourceArn", "resource_type": "ResourceType", diff --git a/internal/provider/all_schemas.hcl b/internal/provider/all_schemas.hcl index c3d98f9c3f..31cc93bdd8 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" } -# 855 CloudFormation resource types schemas are available for use with the Cloud Control API. +# 862 CloudFormation resource types schemas are available for use with the Cloud Control API. resource_schema "aws_acmpca_certificate" { cloudformation_type_name = "AWS::ACMPCA::Certificate" @@ -228,6 +228,11 @@ 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_extension" { cloudformation_type_name = "AWS::AppConfig::Extension" @@ -723,6 +728,11 @@ resource_schema "aws_cognito_user_pool_user" { 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" } @@ -1300,6 +1310,10 @@ 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" } @@ -1534,6 +1548,10 @@ resource_schema "aws_events_endpoint" { cloudformation_type_name = "AWS::Events::Endpoint" } +resource_schema "aws_events_rule" { + cloudformation_type_name = "AWS::Events::Rule" +} + resource_schema "aws_events_event_bus" { cloudformation_type_name = "AWS::Events::EventBus" } @@ -1758,6 +1776,10 @@ resource_schema "aws_iam_server_certificate" { cloudformation_type_name = "AWS::IAM::ServerCertificate" } +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 @@ -2530,6 +2552,15 @@ resource_schema "aws_mediaconnect_gateway" { cloudformation_type_name = "AWS::MediaConnect::Gateway" } +resource_schema "aws_medialive_multiplex" { + cloudformation_type_name = "AWS::MediaLive::Multiplex" +} + +resource_schema "aws_medialive_multiplexprogram" { + cloudformation_type_name = "AWS::MediaLive::Multiplexprogram" + suppress_plural_data_source_generation = true +} + resource_schema "aws_mediapackage_asset" { cloudformation_type_name = "AWS::MediaPackage::Asset" suppress_plural_data_source_generation = true @@ -3219,8 +3250,7 @@ resource_schema "aws_route53recoveryreadiness_resource_set" { } resource_schema "aws_route53resolver_firewall_domain_list" { - cloudformation_type_name = "AWS::Route53Resolver::FirewallDomainList" - suppress_plural_data_source_generation = true + cloudformation_type_name = "AWS::Route53Resolver::FirewallDomainList" } resource_schema "aws_route53resolver_firewall_rule_group" { diff --git a/internal/provider/generators/allschemas/available_schemas.2023-11-08.hcl b/internal/provider/generators/allschemas/available_schemas.2023-11-08.hcl new file mode 100644 index 0000000000..714cd1085f --- /dev/null +++ b/internal/provider/generators/allschemas/available_schemas.2023-11-08.hcl @@ -0,0 +1,3736 @@ +# 862 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_workspace" { + cloudformation_type_name = "AWS::APS::Workspace" +} + +resource_schema "aws_accessanalyzer_analyzer" { + cloudformation_type_name = "AWS::AccessAnalyzer::Analyzer" +} + +resource_schema "aws_amplify_app" { + cloudformation_type_name = "AWS::Amplify::App" +} + +resource_schema "aws_amplify_branch" { + cloudformation_type_name = "AWS::Amplify::Branch" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplify_domain" { + cloudformation_type_name = "AWS::Amplify::Domain" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplifyuibuilder_component" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Component" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplifyuibuilder_form" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Form" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplifyuibuilder_theme" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Theme" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_account" { + cloudformation_type_name = "AWS::ApiGateway::Account" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_api_key" { + cloudformation_type_name = "AWS::ApiGateway::ApiKey" +} + +resource_schema "aws_apigateway_authorizer" { + cloudformation_type_name = "AWS::ApiGateway::Authorizer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_base_path_mapping" { + cloudformation_type_name = "AWS::ApiGateway::BasePathMapping" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_client_certificate" { + cloudformation_type_name = "AWS::ApiGateway::ClientCertificate" +} + +resource_schema "aws_apigateway_deployment" { + cloudformation_type_name = "AWS::ApiGateway::Deployment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_documentation_part" { + cloudformation_type_name = "AWS::ApiGateway::DocumentationPart" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_documentation_version" { + cloudformation_type_name = "AWS::ApiGateway::DocumentationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_domain_name" { + cloudformation_type_name = "AWS::ApiGateway::DomainName" +} + +resource_schema "aws_apigateway_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" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_authorizer" { + cloudformation_type_name = "AWS::ApiGatewayV2::Authorizer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_deployment" { + cloudformation_type_name = "AWS::ApiGatewayV2::Deployment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_domain_name" { + cloudformation_type_name = "AWS::ApiGatewayV2::DomainName" +} + +resource_schema "aws_apigatewayv2_integration_response" { + cloudformation_type_name = "AWS::ApiGatewayV2::IntegrationResponse" + suppress_plural_data_source_generation = true +} + +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" + suppress_plural_data_source_generation = true +} + +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_extension" { + cloudformation_type_name = "AWS::AppConfig::Extension" +} + +resource_schema "aws_appconfig_extension_association" { + cloudformation_type_name = "AWS::AppConfig::ExtensionAssociation" +} + +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_data_integration" { + cloudformation_type_name = "AWS::AppIntegrations::DataIntegration" +} + +resource_schema "aws_appintegrations_event_integration" { + cloudformation_type_name = "AWS::AppIntegrations::EventIntegration" +} + +resource_schema "aws_apprunner_auto_scaling_configuration" { + cloudformation_type_name = "AWS::AppRunner::AutoScalingConfiguration" +} + +resource_schema "aws_apprunner_observability_configuration" { + cloudformation_type_name = "AWS::AppRunner::ObservabilityConfiguration" +} + +resource_schema "aws_apprunner_service" { + cloudformation_type_name = "AWS::AppRunner::Service" +} + +resource_schema "aws_apprunner_vpc_connector" { + cloudformation_type_name = "AWS::AppRunner::VpcConnector" +} + +resource_schema "aws_apprunner_vpc_ingress_connection" { + cloudformation_type_name = "AWS::AppRunner::VpcIngressConnection" +} + +resource_schema "aws_appstream_app_block" { + cloudformation_type_name = "AWS::AppStream::AppBlock" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_app_block_builder" { + cloudformation_type_name = "AWS::AppStream::AppBlockBuilder" +} + +resource_schema "aws_appstream_application" { + cloudformation_type_name = "AWS::AppStream::Application" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_application_entitlement_association" { + cloudformation_type_name = "AWS::AppStream::ApplicationEntitlementAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_application_fleet_association" { + cloudformation_type_name = "AWS::AppStream::ApplicationFleetAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_directory_config" { + cloudformation_type_name = "AWS::AppStream::DirectoryConfig" +} + +resource_schema "aws_appstream_entitlement" { + cloudformation_type_name = "AWS::AppStream::Entitlement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_image_builder" { + cloudformation_type_name = "AWS::AppStream::ImageBuilder" +} + +resource_schema "aws_appsync_domain_name" { + cloudformation_type_name = "AWS::AppSync::DomainName" +} + +resource_schema "aws_appsync_domain_name_api_association" { + cloudformation_type_name = "AWS::AppSync::DomainNameApiAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_function_configuration" { + cloudformation_type_name = "AWS::AppSync::FunctionConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_resolver" { + cloudformation_type_name = "AWS::AppSync::Resolver" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_source_api_association" { + cloudformation_type_name = "AWS::AppSync::SourceApiAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_applicationautoscaling_scalable_target" { + cloudformation_type_name = "AWS::ApplicationAutoScaling::ScalableTarget" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_applicationinsights_application" { + cloudformation_type_name = "AWS::ApplicationInsights::Application" +} + +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" + suppress_plural_data_source_generation = true +} + +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" + suppress_plural_data_source_generation = true +} + +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_backup_backup_plan" { + cloudformation_type_name = "AWS::Backup::BackupPlan" +} + +resource_schema "aws_backup_backup_selection" { + cloudformation_type_name = "AWS::Backup::BackupSelection" +} + +resource_schema "aws_backup_backup_vault" { + cloudformation_type_name = "AWS::Backup::BackupVault" +} + +resource_schema "aws_backup_framework" { + cloudformation_type_name = "AWS::Backup::Framework" +} + +resource_schema "aws_backup_report_plan" { + cloudformation_type_name = "AWS::Backup::ReportPlan" +} + +resource_schema "aws_backupgateway_hypervisor" { + cloudformation_type_name = "AWS::BackupGateway::Hypervisor" +} + +resource_schema "aws_batch_compute_environment" { + cloudformation_type_name = "AWS::Batch::ComputeEnvironment" +} + +resource_schema "aws_batch_job_queue" { + cloudformation_type_name = "AWS::Batch::JobQueue" +} + +resource_schema "aws_batch_scheduling_policy" { + cloudformation_type_name = "AWS::Batch::SchedulingPolicy" +} + +resource_schema "aws_billingconductor_billing_group" { + cloudformation_type_name = "AWS::BillingConductor::BillingGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_billingconductor_custom_line_item" { + cloudformation_type_name = "AWS::BillingConductor::CustomLineItem" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_billingconductor_pricing_plan" { + cloudformation_type_name = "AWS::BillingConductor::PricingPlan" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_billingconductor_pricing_rule" { + cloudformation_type_name = "AWS::BillingConductor::PricingRule" + suppress_plural_data_source_generation = true +} + +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" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cur_report_definition" { + cloudformation_type_name = "AWS::CUR::ReportDefinition" +} + +resource_schema "aws_cassandra_keyspace" { + cloudformation_type_name = "AWS::Cassandra::Keyspace" +} + +resource_schema "aws_cassandra_table" { + cloudformation_type_name = "AWS::Cassandra::Table" +} + +resource_schema "aws_certificatemanager_account" { + cloudformation_type_name = "AWS::CertificateManager::Account" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_chatbot_microsoft_teams_channel_configuration" { + cloudformation_type_name = "AWS::Chatbot::MicrosoftTeamsChannelConfiguration" +} + +resource_schema "aws_chatbot_slack_channel_configuration" { + cloudformation_type_name = "AWS::Chatbot::SlackChannelConfiguration" +} + +resource_schema "aws_cleanrooms_analysis_template" { + cloudformation_type_name = "AWS::CleanRooms::AnalysisTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_collaboration" { + cloudformation_type_name = "AWS::CleanRooms::Collaboration" +} + +resource_schema "aws_cleanrooms_configured_table" { + cloudformation_type_name = "AWS::CleanRooms::ConfiguredTable" +} + +resource_schema "aws_cleanrooms_configured_table_association" { + cloudformation_type_name = "AWS::CleanRooms::ConfiguredTableAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_membership" { + cloudformation_type_name = "AWS::CleanRooms::Membership" +} + +resource_schema "aws_cloudformation_hook_default_version" { + cloudformation_type_name = "AWS::CloudFormation::HookDefaultVersion" +} + +resource_schema "aws_cloudformation_hook_type_config" { + cloudformation_type_name = "AWS::CloudFormation::HookTypeConfig" +} + +resource_schema "aws_cloudformation_hook_version" { + cloudformation_type_name = "AWS::CloudFormation::HookVersion" +} + +resource_schema "aws_cloudformation_module_default_version" { + cloudformation_type_name = "AWS::CloudFormation::ModuleDefaultVersion" +} + +resource_schema "aws_cloudformation_module_version" { + cloudformation_type_name = "AWS::CloudFormation::ModuleVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudformation_public_type_version" { + cloudformation_type_name = "AWS::CloudFormation::PublicTypeVersion" +} + +resource_schema "aws_cloudformation_publisher" { + cloudformation_type_name = "AWS::CloudFormation::Publisher" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudformation_resource_default_version" { + cloudformation_type_name = "AWS::CloudFormation::ResourceDefaultVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudformation_resource_version" { + cloudformation_type_name = "AWS::CloudFormation::ResourceVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudformation_stack" { + cloudformation_type_name = "AWS::CloudFormation::Stack" +} + +resource_schema "aws_cloudformation_stack_set" { + cloudformation_type_name = "AWS::CloudFormation::StackSet" +} + +resource_schema "aws_cloudformation_type_activation" { + cloudformation_type_name = "AWS::CloudFormation::TypeActivation" +} + +resource_schema "aws_cloudfront_cache_policy" { + cloudformation_type_name = "AWS::CloudFront::CachePolicy" +} + +resource_schema "aws_cloudfront_cloudfront_origin_access_identity" { + cloudformation_type_name = "AWS::CloudFront::CloudFrontOriginAccessIdentity" +} + +resource_schema "aws_cloudfront_continuous_deployment_policy" { + cloudformation_type_name = "AWS::CloudFront::ContinuousDeploymentPolicy" +} + +resource_schema "aws_cloudfront_distribution" { + cloudformation_type_name = "AWS::CloudFront::Distribution" +} + +resource_schema "aws_cloudfront_function" { + cloudformation_type_name = "AWS::CloudFront::Function" +} + +resource_schema "aws_cloudfront_key_group" { + cloudformation_type_name = "AWS::CloudFront::KeyGroup" +} + +resource_schema "aws_cloudfront_monitoring_subscription" { + cloudformation_type_name = "AWS::CloudFront::MonitoringSubscription" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudfront_origin_access_control" { + cloudformation_type_name = "AWS::CloudFront::OriginAccessControl" +} + +resource_schema "aws_cloudfront_origin_request_policy" { + cloudformation_type_name = "AWS::CloudFront::OriginRequestPolicy" +} + +resource_schema "aws_cloudfront_public_key" { + cloudformation_type_name = "AWS::CloudFront::PublicKey" +} + +resource_schema "aws_cloudfront_realtime_log_config" { + cloudformation_type_name = "AWS::CloudFront::RealtimeLogConfig" +} + +resource_schema "aws_cloudfront_response_headers_policy" { + cloudformation_type_name = "AWS::CloudFront::ResponseHeadersPolicy" +} + +resource_schema "aws_cloudtrail_channel" { + cloudformation_type_name = "AWS::CloudTrail::Channel" +} + +resource_schema "aws_cloudtrail_event_data_store" { + cloudformation_type_name = "AWS::CloudTrail::EventDataStore" +} + +resource_schema "aws_cloudtrail_resource_policy" { + cloudformation_type_name = "AWS::CloudTrail::ResourcePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudtrail_trail" { + cloudformation_type_name = "AWS::CloudTrail::Trail" +} + +resource_schema "aws_cloudwatch_alarm" { + cloudformation_type_name = "AWS::CloudWatch::Alarm" +} + +resource_schema "aws_cloudwatch_composite_alarm" { + cloudformation_type_name = "AWS::CloudWatch::CompositeAlarm" +} + +resource_schema "aws_cloudwatch_metric_stream" { + cloudformation_type_name = "AWS::CloudWatch::MetricStream" +} + +resource_schema "aws_codeartifact_domain" { + cloudformation_type_name = "AWS::CodeArtifact::Domain" +} + +resource_schema "aws_codeartifact_repository" { + cloudformation_type_name = "AWS::CodeArtifact::Repository" +} + +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" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_codepipeline_custom_action_type" { + cloudformation_type_name = "AWS::CodePipeline::CustomActionType" +} + +resource_schema "aws_codestarconnections_connection" { + cloudformation_type_name = "AWS::CodeStarConnections::Connection" +} + +resource_schema "aws_codestarnotifications_notification_rule" { + cloudformation_type_name = "AWS::CodeStarNotifications::NotificationRule" +} + +resource_schema "aws_cognito_identity_pool_principal_tag" { + cloudformation_type_name = "AWS::Cognito::IdentityPoolPrincipalTag" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_log_delivery_configuration" { + cloudformation_type_name = "AWS::Cognito::LogDeliveryConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool" { + cloudformation_type_name = "AWS::Cognito::UserPool" +} + +resource_schema "aws_cognito_user_pool_client" { + cloudformation_type_name = "AWS::Cognito::UserPoolClient" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_group" { + cloudformation_type_name = "AWS::Cognito::UserPoolGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_user" { + cloudformation_type_name = "AWS::Cognito::UserPoolUser" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_user_to_group_attachment" { + cloudformation_type_name = "AWS::Cognito::UserPoolUserToGroupAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_comprehend_document_classifier" { + cloudformation_type_name = "AWS::Comprehend::DocumentClassifier" +} + +resource_schema "aws_comprehend_flywheel" { + cloudformation_type_name = "AWS::Comprehend::Flywheel" +} + +resource_schema "aws_config_aggregation_authorization" { + cloudformation_type_name = "AWS::Config::AggregationAuthorization" +} + +resource_schema "aws_config_config_rule" { + cloudformation_type_name = "AWS::Config::ConfigRule" +} + +resource_schema "aws_config_configuration_aggregator" { + cloudformation_type_name = "AWS::Config::ConfigurationAggregator" +} + +resource_schema "aws_config_conformance_pack" { + cloudformation_type_name = "AWS::Config::ConformancePack" +} + +resource_schema "aws_config_organization_conformance_pack" { + cloudformation_type_name = "AWS::Config::OrganizationConformancePack" +} + +resource_schema "aws_config_stored_query" { + cloudformation_type_name = "AWS::Config::StoredQuery" +} + +resource_schema "aws_connect_approved_origin" { + cloudformation_type_name = "AWS::Connect::ApprovedOrigin" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_contact_flow" { + cloudformation_type_name = "AWS::Connect::ContactFlow" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_contact_flow_module" { + cloudformation_type_name = "AWS::Connect::ContactFlowModule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_evaluation_form" { + cloudformation_type_name = "AWS::Connect::EvaluationForm" + suppress_plural_data_source_generation = true +} + +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" + suppress_plural_data_source_generation = true +} + +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_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" + suppress_plural_data_source_generation = true +} + +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" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_user" { + cloudformation_type_name = "AWS::Connect::User" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_user_hierarchy_group" { + cloudformation_type_name = "AWS::Connect::UserHierarchyGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_view" { + cloudformation_type_name = "AWS::Connect::View" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_view_version" { + cloudformation_type_name = "AWS::Connect::ViewVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connectcampaigns_campaign" { + cloudformation_type_name = "AWS::ConnectCampaigns::Campaign" +} + +resource_schema "aws_controltower_enabled_control" { + cloudformation_type_name = "AWS::ControlTower::EnabledControl" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_calculated_attribute_definition" { + cloudformation_type_name = "AWS::CustomerProfiles::CalculatedAttributeDefinition" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_domain" { + cloudformation_type_name = "AWS::CustomerProfiles::Domain" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_event_stream" { + cloudformation_type_name = "AWS::CustomerProfiles::EventStream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_integration" { + cloudformation_type_name = "AWS::CustomerProfiles::Integration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_object_type" { + cloudformation_type_name = "AWS::CustomerProfiles::ObjectType" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_dms_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_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" + suppress_plural_data_source_generation = true +} + +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" + suppress_plural_data_source_generation = true +} + +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_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_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" + suppress_plural_data_source_generation = true +} + +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_table" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRouteTable" +} + +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" + 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_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_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_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" + suppress_plural_data_source_generation = true +} + +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_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_entityresolution_id_mapping_workflow" { + cloudformation_type_name = "AWS::EntityResolution::IdMappingWorkflow" +} + +resource_schema "aws_entityresolution_matching_workflow" { + cloudformation_type_name = "AWS::EntityResolution::MatchingWorkflow" +} + +resource_schema "aws_entityresolution_schema_mapping" { + cloudformation_type_name = "AWS::EntityResolution::SchemaMapping" +} + +resource_schema "aws_eventschemas_registry_policy" { + cloudformation_type_name = "AWS::EventSchemas::RegistryPolicy" + 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" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_fis_experiment_template" { + cloudformation_type_name = "AWS::FIS::ExperimentTemplate" +} + +resource_schema "aws_fms_notification_channel" { + cloudformation_type_name = "AWS::FMS::NotificationChannel" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_fms_policy" { + cloudformation_type_name = "AWS::FMS::Policy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_fms_resource_set" { + cloudformation_type_name = "AWS::FMS::ResourceSet" + suppress_plural_data_source_generation = true +} + +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_fleet" { + cloudformation_type_name = "AWS::GameLift::Fleet" +} + +resource_schema "aws_gamelift_game_server_group" { + cloudformation_type_name = "AWS::GameLift::GameServerGroup" +} + +resource_schema "aws_gamelift_location" { + cloudformation_type_name = "AWS::GameLift::Location" +} + +resource_schema "aws_globalaccelerator_accelerator" { + cloudformation_type_name = "AWS::GlobalAccelerator::Accelerator" +} + +resource_schema "aws_globalaccelerator_endpoint_group" { + cloudformation_type_name = "AWS::GlobalAccelerator::EndpointGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_globalaccelerator_listener" { + cloudformation_type_name = "AWS::GlobalAccelerator::Listener" + suppress_plural_data_source_generation = true +} + +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_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_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_playback_key_pair" { + cloudformation_type_name = "AWS::IVS::PlaybackKeyPair" +} + +resource_schema "aws_ivs_recording_configuration" { + cloudformation_type_name = "AWS::IVS::RecordingConfiguration" +} + +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_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_filter" { + cloudformation_type_name = "AWS::InspectorV2::Filter" +} + +resource_schema "aws_internetmonitor_monitor" { + cloudformation_type_name = "AWS::InternetMonitor::Monitor" +} + +resource_schema "aws_iot_account_audit_configuration" { + cloudformation_type_name = "AWS::IoT::AccountAuditConfiguration" +} + +resource_schema "aws_iot_authorizer" { + cloudformation_type_name = "AWS::IoT::Authorizer" +} + +resource_schema "aws_iot_billing_group" { + cloudformation_type_name = "AWS::IoT::BillingGroup" +} + +resource_schema "aws_iot_ca_certificate" { + cloudformation_type_name = "AWS::IoT::CACertificate" +} + +resource_schema "aws_iot_certificate" { + cloudformation_type_name = "AWS::IoT::Certificate" +} + +resource_schema "aws_iot_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" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iot_topic_rule" { + cloudformation_type_name = "AWS::IoT::TopicRule" +} + +resource_schema "aws_iot_topic_rule_destination" { + cloudformation_type_name = "AWS::IoT::TopicRuleDestination" +} + +resource_schema "aws_iotanalytics_channel" { + cloudformation_type_name = "AWS::IoTAnalytics::Channel" +} + +resource_schema "aws_iotanalytics_dataset" { + cloudformation_type_name = "AWS::IoTAnalytics::Dataset" +} + +resource_schema "aws_iotanalytics_datastore" { + cloudformation_type_name = "AWS::IoTAnalytics::Datastore" +} + +resource_schema "aws_iotanalytics_pipeline" { + cloudformation_type_name = "AWS::IoTAnalytics::Pipeline" +} + +resource_schema "aws_iotcoredeviceadvisor_suite_definition" { + cloudformation_type_name = "AWS::IoTCoreDeviceAdvisor::SuiteDefinition" +} + +resource_schema "aws_iotevents_alarm_model" { + cloudformation_type_name = "AWS::IoTEvents::AlarmModel" +} + +resource_schema "aws_iotevents_detector_model" { + cloudformation_type_name = "AWS::IoTEvents::DetectorModel" +} + +resource_schema "aws_iotevents_input" { + cloudformation_type_name = "AWS::IoTEvents::Input" +} + +resource_schema "aws_iotfleethub_application" { + cloudformation_type_name = "AWS::IoTFleetHub::Application" +} + +resource_schema "aws_iotfleetwise_campaign" { + cloudformation_type_name = "AWS::IoTFleetWise::Campaign" +} + +resource_schema "aws_iotfleetwise_decoder_manifest" { + cloudformation_type_name = "AWS::IoTFleetWise::DecoderManifest" +} + +resource_schema "aws_iotfleetwise_fleet" { + cloudformation_type_name = "AWS::IoTFleetWise::Fleet" +} + +resource_schema "aws_iotfleetwise_model_manifest" { + cloudformation_type_name = "AWS::IoTFleetWise::ModelManifest" +} + +resource_schema "aws_iotfleetwise_signal_catalog" { + cloudformation_type_name = "AWS::IoTFleetWise::SignalCatalog" +} + +resource_schema "aws_iotfleetwise_vehicle" { + cloudformation_type_name = "AWS::IoTFleetWise::Vehicle" +} + +resource_schema "aws_iotsitewise_access_policy" { + cloudformation_type_name = "AWS::IoTSiteWise::AccessPolicy" + suppress_plural_data_source_generation = true +} + +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" + suppress_plural_data_source_generation = true +} + +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" + suppress_plural_data_source_generation = true +} + +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" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iotwireless_partner_account" { + cloudformation_type_name = "AWS::IoTWireless::PartnerAccount" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iotwireless_service_profile" { + cloudformation_type_name = "AWS::IoTWireless::ServiceProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iotwireless_task_definition" { + cloudformation_type_name = "AWS::IoTWireless::TaskDefinition" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iotwireless_wireless_device" { + cloudformation_type_name = "AWS::IoTWireless::WirelessDevice" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iotwireless_wireless_device_import_task" { + cloudformation_type_name = "AWS::IoTWireless::WirelessDeviceImportTask" + suppress_plural_data_source_generation = true +} + +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_kendra_data_source" { + cloudformation_type_name = "AWS::Kendra::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_kendra_faq" { + cloudformation_type_name = "AWS::Kendra::Faq" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_kendra_index" { + cloudformation_type_name = "AWS::Kendra::Index" +} + +resource_schema "aws_kendraranking_execution_plan" { + cloudformation_type_name = "AWS::KendraRanking::ExecutionPlan" +} + +resource_schema "aws_kinesis_stream" { + cloudformation_type_name = "AWS::Kinesis::Stream" +} + +resource_schema "aws_kinesisanalyticsv2_application" { + cloudformation_type_name = "AWS::KinesisAnalyticsV2::Application" +} + +resource_schema "aws_kinesisfirehose_delivery_stream" { + cloudformation_type_name = "AWS::KinesisFirehose::DeliveryStream" +} + +resource_schema "aws_kinesisvideo_signaling_channel" { + cloudformation_type_name = "AWS::KinesisVideo::SignalingChannel" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_kinesisvideo_stream" { + cloudformation_type_name = "AWS::KinesisVideo::Stream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lakeformation_data_cells_filter" { + cloudformation_type_name = "AWS::LakeFormation::DataCellsFilter" +} + +resource_schema "aws_lakeformation_principal_permissions" { + cloudformation_type_name = "AWS::LakeFormation::PrincipalPermissions" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lakeformation_tag" { + cloudformation_type_name = "AWS::LakeFormation::Tag" +} + +resource_schema "aws_lakeformation_tag_association" { + cloudformation_type_name = "AWS::LakeFormation::TagAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_code_signing_config" { + cloudformation_type_name = "AWS::Lambda::CodeSigningConfig" +} + +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" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_layer_version_permission" { + cloudformation_type_name = "AWS::Lambda::LayerVersionPermission" + suppress_plural_data_source_generation = true +} + +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_lex_bot" { + cloudformation_type_name = "AWS::Lex::Bot" +} + +resource_schema "aws_lex_bot_alias" { + cloudformation_type_name = "AWS::Lex::BotAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lex_bot_version" { + cloudformation_type_name = "AWS::Lex::BotVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lex_resource_policy" { + cloudformation_type_name = "AWS::Lex::ResourcePolicy" + suppress_plural_data_source_generation = true +} + +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" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lightsail_static_ip" { + cloudformation_type_name = "AWS::Lightsail::StaticIp" +} + +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" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_logs_account_policy" { + cloudformation_type_name = "AWS::Logs::AccountPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_logs_destination" { + cloudformation_type_name = "AWS::Logs::Destination" +} + +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_log_stream" { + cloudformation_type_name = "AWS::Logs::LogStream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_logs_metric_filter" { + cloudformation_type_name = "AWS::Logs::MetricFilter" +} + +resource_schema "aws_logs_query_definition" { + cloudformation_type_name = "AWS::Logs::QueryDefinition" +} + +resource_schema "aws_logs_resource_policy" { + cloudformation_type_name = "AWS::Logs::ResourcePolicy" +} + +resource_schema "aws_logs_subscription_filter" { + cloudformation_type_name = "AWS::Logs::SubscriptionFilter" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lookoutequipment_inference_scheduler" { + cloudformation_type_name = "AWS::LookoutEquipment::InferenceScheduler" +} + +resource_schema "aws_lookoutmetrics_alert" { + cloudformation_type_name = "AWS::LookoutMetrics::Alert" +} + +resource_schema "aws_lookoutmetrics_anomaly_detector" { + cloudformation_type_name = "AWS::LookoutMetrics::AnomalyDetector" +} + +resource_schema "aws_lookoutvision_project" { + cloudformation_type_name = "AWS::LookoutVision::Project" +} + +resource_schema "aws_m2_application" { + cloudformation_type_name = "AWS::M2::Application" +} + +resource_schema "aws_m2_environment" { + cloudformation_type_name = "AWS::M2::Environment" +} + +resource_schema "aws_msk_batch_scram_secret" { + cloudformation_type_name = "AWS::MSK::BatchScramSecret" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_msk_cluster" { + cloudformation_type_name = "AWS::MSK::Cluster" +} + +resource_schema "aws_msk_cluster_policy" { + cloudformation_type_name = "AWS::MSK::ClusterPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_msk_configuration" { + cloudformation_type_name = "AWS::MSK::Configuration" +} + +resource_schema "aws_msk_replicator" { + cloudformation_type_name = "AWS::MSK::Replicator" +} + +resource_schema "aws_msk_serverless_cluster" { + cloudformation_type_name = "AWS::MSK::ServerlessCluster" +} + +resource_schema "aws_msk_vpc_connection" { + cloudformation_type_name = "AWS::MSK::VpcConnection" +} + +resource_schema "aws_mwaa_environment" { + cloudformation_type_name = "AWS::MWAA::Environment" +} + +resource_schema "aws_macie_allow_list" { + cloudformation_type_name = "AWS::Macie::AllowList" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_macie_custom_data_identifier" { + cloudformation_type_name = "AWS::Macie::CustomDataIdentifier" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_macie_findings_filter" { + cloudformation_type_name = "AWS::Macie::FindingsFilter" + suppress_plural_data_source_generation = true +} + +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" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediaconnect_flow_output" { + cloudformation_type_name = "AWS::MediaConnect::FlowOutput" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediaconnect_flow_source" { + cloudformation_type_name = "AWS::MediaConnect::FlowSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediaconnect_flow_vpc_interface" { + cloudformation_type_name = "AWS::MediaConnect::FlowVpcInterface" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediaconnect_gateway" { + cloudformation_type_name = "AWS::MediaConnect::Gateway" +} + +resource_schema "aws_medialive_multiplex" { + cloudformation_type_name = "AWS::MediaLive::Multiplex" +} + +resource_schema "aws_medialive_multiplexprogram" { + cloudformation_type_name = "AWS::MediaLive::Multiplexprogram" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackage_asset" { + cloudformation_type_name = "AWS::MediaPackage::Asset" + suppress_plural_data_source_generation = true +} + +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" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackage_packaging_group" { + cloudformation_type_name = "AWS::MediaPackage::PackagingGroup" +} + +resource_schema "aws_mediapackagev2_channel" { + cloudformation_type_name = "AWS::MediaPackageV2::Channel" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackagev2_channel_group" { + cloudformation_type_name = "AWS::MediaPackageV2::ChannelGroup" +} + +resource_schema "aws_mediapackagev2_channel_policy" { + cloudformation_type_name = "AWS::MediaPackageV2::ChannelPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackagev2_origin_endpoint" { + cloudformation_type_name = "AWS::MediaPackageV2::OriginEndpoint" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackagev2_origin_endpoint_policy" { + cloudformation_type_name = "AWS::MediaPackageV2::OriginEndpointPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediatailor_channel" { + cloudformation_type_name = "AWS::MediaTailor::Channel" +} + +resource_schema "aws_mediatailor_channel_policy" { + cloudformation_type_name = "AWS::MediaTailor::ChannelPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediatailor_live_source" { + cloudformation_type_name = "AWS::MediaTailor::LiveSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediatailor_playback_configuration" { + cloudformation_type_name = "AWS::MediaTailor::PlaybackConfiguration" +} + +resource_schema "aws_mediatailor_source_location" { + cloudformation_type_name = "AWS::MediaTailor::SourceLocation" +} + +resource_schema "aws_mediatailor_vod_source" { + cloudformation_type_name = "AWS::MediaTailor::VodSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_memorydb_acl" { + cloudformation_type_name = "AWS::MemoryDB::ACL" +} + +resource_schema "aws_memorydb_cluster" { + cloudformation_type_name = "AWS::MemoryDB::Cluster" +} + +resource_schema "aws_memorydb_parameter_group" { + cloudformation_type_name = "AWS::MemoryDB::ParameterGroup" +} + +resource_schema "aws_memorydb_subnet_group" { + cloudformation_type_name = "AWS::MemoryDB::SubnetGroup" +} + +resource_schema "aws_memorydb_user" { + cloudformation_type_name = "AWS::MemoryDB::User" +} + +resource_schema "aws_neptune_db_cluster" { + cloudformation_type_name = "AWS::Neptune::DBCluster" +} + +resource_schema "aws_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_networkmanager_connect_attachment" { + cloudformation_type_name = "AWS::NetworkManager::ConnectAttachment" +} + +resource_schema "aws_networkmanager_connect_peer" { + cloudformation_type_name = "AWS::NetworkManager::ConnectPeer" +} + +resource_schema "aws_networkmanager_core_network" { + cloudformation_type_name = "AWS::NetworkManager::CoreNetwork" +} + +resource_schema "aws_networkmanager_customer_gateway_association" { + cloudformation_type_name = "AWS::NetworkManager::CustomerGatewayAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_device" { + cloudformation_type_name = "AWS::NetworkManager::Device" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_global_network" { + cloudformation_type_name = "AWS::NetworkManager::GlobalNetwork" +} + +resource_schema "aws_networkmanager_link" { + cloudformation_type_name = "AWS::NetworkManager::Link" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_link_association" { + cloudformation_type_name = "AWS::NetworkManager::LinkAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_site" { + cloudformation_type_name = "AWS::NetworkManager::Site" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_site_to_site_vpn_attachment" { + cloudformation_type_name = "AWS::NetworkManager::SiteToSiteVpnAttachment" +} + +resource_schema "aws_networkmanager_transit_gateway_peering" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayPeering" +} + +resource_schema "aws_networkmanager_transit_gateway_registration" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayRegistration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_transit_gateway_route_table_attachment" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayRouteTableAttachment" +} + +resource_schema "aws_networkmanager_vpc_attachment" { + cloudformation_type_name = "AWS::NetworkManager::VpcAttachment" +} + +resource_schema "aws_nimblestudio_launch_profile" { + cloudformation_type_name = "AWS::NimbleStudio::LaunchProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_nimblestudio_streaming_image" { + cloudformation_type_name = "AWS::NimbleStudio::StreamingImage" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_nimblestudio_studio" { + cloudformation_type_name = "AWS::NimbleStudio::Studio" +} + +resource_schema "aws_nimblestudio_studio_component" { + cloudformation_type_name = "AWS::NimbleStudio::StudioComponent" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_osis_pipeline" { + cloudformation_type_name = "AWS::OSIS::Pipeline" +} + +resource_schema "aws_oam_link" { + cloudformation_type_name = "AWS::Oam::Link" +} + +resource_schema "aws_oam_sink" { + cloudformation_type_name = "AWS::Oam::Sink" +} + +resource_schema "aws_omics_annotation_store" { + cloudformation_type_name = "AWS::Omics::AnnotationStore" +} + +resource_schema "aws_omics_reference_store" { + cloudformation_type_name = "AWS::Omics::ReferenceStore" +} + +resource_schema "aws_omics_run_group" { + cloudformation_type_name = "AWS::Omics::RunGroup" +} + +resource_schema "aws_omics_sequence_store" { + cloudformation_type_name = "AWS::Omics::SequenceStore" +} + +resource_schema "aws_omics_variant_store" { + cloudformation_type_name = "AWS::Omics::VariantStore" + suppress_plural_data_source_generation = true +} + +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_security_config" { + cloudformation_type_name = "AWS::OpenSearchServerless::SecurityConfig" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_security_policy" { + cloudformation_type_name = "AWS::OpenSearchServerless::SecurityPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_vpc_endpoint" { + cloudformation_type_name = "AWS::OpenSearchServerless::VpcEndpoint" +} + +resource_schema "aws_opensearchservice_domain" { + cloudformation_type_name = "AWS::OpenSearchService::Domain" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opsworkscm_server" { + cloudformation_type_name = "AWS::OpsWorksCM::Server" +} + +resource_schema "aws_organizations_account" { + cloudformation_type_name = "AWS::Organizations::Account" + suppress_plural_data_source_generation = true +} + +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" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorad_connector" { + cloudformation_type_name = "AWS::PCAConnectorAD::Connector" +} + +resource_schema "aws_pcaconnectorad_directory_registration" { + cloudformation_type_name = "AWS::PCAConnectorAD::DirectoryRegistration" +} + +resource_schema "aws_pcaconnectorad_service_principal_name" { + cloudformation_type_name = "AWS::PCAConnectorAD::ServicePrincipalName" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorad_template" { + cloudformation_type_name = "AWS::PCAConnectorAD::Template" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorad_template_group_access_control_entry" { + cloudformation_type_name = "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_panorama_application_instance" { + cloudformation_type_name = "AWS::Panorama::ApplicationInstance" +} + +resource_schema "aws_panorama_package" { + cloudformation_type_name = "AWS::Panorama::Package" +} + +resource_schema "aws_panorama_package_version" { + cloudformation_type_name = "AWS::Panorama::PackageVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_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" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_proton_environment_template" { + cloudformation_type_name = "AWS::Proton::EnvironmentTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_proton_service_template" { + cloudformation_type_name = "AWS::Proton::ServiceTemplate" + 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_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" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_data_source" { + cloudformation_type_name = "AWS::QuickSight::DataSource" + suppress_plural_data_source_generation = true +} + +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" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_vpc_connection" { + cloudformation_type_name = "AWS::QuickSight::VPCConnection" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ram_permission" { + cloudformation_type_name = "AWS::RAM::Permission" +} + +resource_schema "aws_rds_custom_db_engine_version" { + cloudformation_type_name = "AWS::RDS::CustomDBEngineVersion" +} + +resource_schema "aws_rds_db_cluster" { + cloudformation_type_name = "AWS::RDS::DBCluster" +} + +resource_schema "aws_rds_db_cluster_parameter_group" { + cloudformation_type_name = "AWS::RDS::DBClusterParameterGroup" +} + +resource_schema "aws_rds_db_instance" { + cloudformation_type_name = "AWS::RDS::DBInstance" +} + +resource_schema "aws_rds_db_parameter_group" { + cloudformation_type_name = "AWS::RDS::DBParameterGroup" +} + +resource_schema "aws_rds_db_proxy" { + cloudformation_type_name = "AWS::RDS::DBProxy" +} + +resource_schema "aws_rds_db_proxy_endpoint" { + cloudformation_type_name = "AWS::RDS::DBProxyEndpoint" +} + +resource_schema "aws_rds_db_proxy_target_group" { + cloudformation_type_name = "AWS::RDS::DBProxyTargetGroup" + suppress_plural_data_source_generation = true +} + +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_option_group" { + cloudformation_type_name = "AWS::RDS::OptionGroup" +} + +resource_schema "aws_rum_app_monitor" { + cloudformation_type_name = "AWS::RUM::AppMonitor" +} + +resource_schema "aws_redshift_cluster" { + cloudformation_type_name = "AWS::Redshift::Cluster" +} + +resource_schema "aws_redshift_cluster_parameter_group" { + cloudformation_type_name = "AWS::Redshift::ClusterParameterGroup" +} + +resource_schema "aws_redshift_cluster_subnet_group" { + cloudformation_type_name = "AWS::Redshift::ClusterSubnetGroup" +} + +resource_schema "aws_redshift_endpoint_access" { + cloudformation_type_name = "AWS::Redshift::EndpointAccess" +} + +resource_schema "aws_redshift_endpoint_authorization" { + cloudformation_type_name = "AWS::Redshift::EndpointAuthorization" +} + +resource_schema "aws_redshift_event_subscription" { + cloudformation_type_name = "AWS::Redshift::EventSubscription" +} + +resource_schema "aws_redshift_scheduled_action" { + cloudformation_type_name = "AWS::Redshift::ScheduledAction" +} + +resource_schema "aws_redshiftserverless_namespace" { + cloudformation_type_name = "AWS::RedshiftServerless::Namespace" +} + +resource_schema "aws_redshiftserverless_workgroup" { + cloudformation_type_name = "AWS::RedshiftServerless::Workgroup" +} + +resource_schema "aws_refactorspaces_application" { + cloudformation_type_name = "AWS::RefactorSpaces::Application" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_refactorspaces_environment" { + cloudformation_type_name = "AWS::RefactorSpaces::Environment" +} + +resource_schema "aws_refactorspaces_route" { + cloudformation_type_name = "AWS::RefactorSpaces::Route" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_refactorspaces_service" { + cloudformation_type_name = "AWS::RefactorSpaces::Service" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_rekognition_collection" { + cloudformation_type_name = "AWS::Rekognition::Collection" +} + +resource_schema "aws_rekognition_project" { + cloudformation_type_name = "AWS::Rekognition::Project" +} + +resource_schema "aws_rekognition_stream_processor" { + cloudformation_type_name = "AWS::Rekognition::StreamProcessor" +} + +resource_schema "aws_resiliencehub_app" { + cloudformation_type_name = "AWS::ResilienceHub::App" +} + +resource_schema "aws_resiliencehub_resiliency_policy" { + cloudformation_type_name = "AWS::ResilienceHub::ResiliencyPolicy" +} + +resource_schema "aws_resourceexplorer2_default_view_association" { + cloudformation_type_name = "AWS::ResourceExplorer2::DefaultViewAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_resourceexplorer2_index" { + cloudformation_type_name = "AWS::ResourceExplorer2::Index" +} + +resource_schema "aws_resourceexplorer2_view" { + cloudformation_type_name = "AWS::ResourceExplorer2::View" +} + +resource_schema "aws_resourcegroups_group" { + cloudformation_type_name = "AWS::ResourceGroups::Group" +} + +resource_schema "aws_robomaker_fleet" { + cloudformation_type_name = "AWS::RoboMaker::Fleet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_robomaker_robot" { + cloudformation_type_name = "AWS::RoboMaker::Robot" + suppress_plural_data_source_generation = true +} + +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" + suppress_plural_data_source_generation = true +} + +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_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_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" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3_storage_lens" { + cloudformation_type_name = "AWS::S3::StorageLens" +} + +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" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_bucket" { + cloudformation_type_name = "AWS::S3Outposts::Bucket" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_bucket_policy" { + cloudformation_type_name = "AWS::S3Outposts::BucketPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_endpoint" { + cloudformation_type_name = "AWS::S3Outposts::Endpoint" +} + +resource_schema "aws_ses_configuration_set" { + cloudformation_type_name = "AWS::SES::ConfigurationSet" +} + +resource_schema "aws_ses_configuration_set_event_destination" { + cloudformation_type_name = "AWS::SES::ConfigurationSetEventDestination" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ses_contact_list" { + cloudformation_type_name = "AWS::SES::ContactList" +} + +resource_schema "aws_ses_dedicated_ip_pool" { + cloudformation_type_name = "AWS::SES::DedicatedIpPool" +} + +resource_schema "aws_ses_email_identity" { + cloudformation_type_name = "AWS::SES::EmailIdentity" +} + +resource_schema "aws_ses_template" { + cloudformation_type_name = "AWS::SES::Template" +} + +resource_schema "aws_ses_vdm_attributes" { + cloudformation_type_name = "AWS::SES::VdmAttributes" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sns_topic" { + cloudformation_type_name = "AWS::SNS::Topic" +} + +resource_schema "aws_sns_topic_inline_policy" { + cloudformation_type_name = "AWS::SNS::TopicInlinePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sqs_queue" { + cloudformation_type_name = "AWS::SQS::Queue" +} + +resource_schema "aws_sqs_queue_inline_policy" { + cloudformation_type_name = "AWS::SQS::QueueInlinePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ssm_association" { + cloudformation_type_name = "AWS::SSM::Association" +} + +resource_schema "aws_ssm_document" { + cloudformation_type_name = "AWS::SSM::Document" +} + +resource_schema "aws_ssm_parameter" { + cloudformation_type_name = "AWS::SSM::Parameter" + suppress_plural_data_source_generation = true +} + +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" + suppress_plural_data_source_generation = true +} + +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" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ssmincidents_replication_set" { + cloudformation_type_name = "AWS::SSMIncidents::ReplicationSet" +} + +resource_schema "aws_ssmincidents_response_plan" { + cloudformation_type_name = "AWS::SSMIncidents::ResponsePlan" +} + +resource_schema "aws_sso_assignment" { + cloudformation_type_name = "AWS::SSO::Assignment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sso_instance_access_control_attribute_configuration" { + cloudformation_type_name = "AWS::SSO::InstanceAccessControlAttributeConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sso_permission_set" { + cloudformation_type_name = "AWS::SSO::PermissionSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_app" { + cloudformation_type_name = "AWS::SageMaker::App" +} + +resource_schema "aws_sagemaker_app_image_config" { + cloudformation_type_name = "AWS::SageMaker::AppImageConfig" +} + +resource_schema "aws_sagemaker_data_quality_job_definition" { + cloudformation_type_name = "AWS::SageMaker::DataQualityJobDefinition" +} + +resource_schema "aws_sagemaker_device" { + cloudformation_type_name = "AWS::SageMaker::Device" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_device_fleet" { + cloudformation_type_name = "AWS::SageMaker::DeviceFleet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_domain" { + cloudformation_type_name = "AWS::SageMaker::Domain" +} + +resource_schema "aws_sagemaker_feature_group" { + cloudformation_type_name = "AWS::SageMaker::FeatureGroup" +} + +resource_schema "aws_sagemaker_image" { + cloudformation_type_name = "AWS::SageMaker::Image" +} + +resource_schema "aws_sagemaker_image_version" { + cloudformation_type_name = "AWS::SageMaker::ImageVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_inference_experiment" { + cloudformation_type_name = "AWS::SageMaker::InferenceExperiment" +} + +resource_schema "aws_sagemaker_model_bias_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelBiasJobDefinition" +} + +resource_schema "aws_sagemaker_model_card" { + cloudformation_type_name = "AWS::SageMaker::ModelCard" +} + +resource_schema "aws_sagemaker_model_explainability_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelExplainabilityJobDefinition" +} + +resource_schema "aws_sagemaker_model_package" { + cloudformation_type_name = "AWS::SageMaker::ModelPackage" +} + +resource_schema "aws_sagemaker_model_package_group" { + cloudformation_type_name = "AWS::SageMaker::ModelPackageGroup" +} + +resource_schema "aws_sagemaker_model_quality_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelQualityJobDefinition" +} + +resource_schema "aws_sagemaker_monitoring_schedule" { + cloudformation_type_name = "AWS::SageMaker::MonitoringSchedule" +} + +resource_schema "aws_sagemaker_pipeline" { + cloudformation_type_name = "AWS::SageMaker::Pipeline" +} + +resource_schema "aws_sagemaker_project" { + cloudformation_type_name = "AWS::SageMaker::Project" +} + +resource_schema "aws_sagemaker_space" { + cloudformation_type_name = "AWS::SageMaker::Space" +} + +resource_schema "aws_sagemaker_user_profile" { + cloudformation_type_name = "AWS::SageMaker::UserProfile" +} + +resource_schema "aws_scheduler_schedule" { + cloudformation_type_name = "AWS::Scheduler::Schedule" +} + +resource_schema "aws_scheduler_schedule_group" { + cloudformation_type_name = "AWS::Scheduler::ScheduleGroup" +} + +resource_schema "aws_secretsmanager_secret" { + cloudformation_type_name = "AWS::SecretsManager::Secret" +} + +resource_schema "aws_securityhub_automation_rule" { + cloudformation_type_name = "AWS::SecurityHub::AutomationRule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_securityhub_standard" { + cloudformation_type_name = "AWS::SecurityHub::Standard" + suppress_plural_data_source_generation = true +} + +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" + suppress_plural_data_source_generation = true +} + +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" + suppress_plural_data_source_generation = true +} + +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_scheduled_query" { + cloudformation_type_name = "AWS::Timestream::ScheduledQuery" +} + +resource_schema "aws_timestream_table" { + cloudformation_type_name = "AWS::Timestream::Table" +} + +resource_schema "aws_transfer_agreement" { + cloudformation_type_name = "AWS::Transfer::Agreement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_transfer_certificate" { + cloudformation_type_name = "AWS::Transfer::Certificate" +} + +resource_schema "aws_transfer_connector" { + cloudformation_type_name = "AWS::Transfer::Connector" +} + +resource_schema "aws_transfer_profile" { + cloudformation_type_name = "AWS::Transfer::Profile" +} + +resource_schema "aws_transfer_workflow" { + cloudformation_type_name = "AWS::Transfer::Workflow" +} + +resource_schema "aws_verifiedpermissions_identity_source" { + cloudformation_type_name = "AWS::VerifiedPermissions::IdentitySource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_verifiedpermissions_policy" { + cloudformation_type_name = "AWS::VerifiedPermissions::Policy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_verifiedpermissions_policy_store" { + cloudformation_type_name = "AWS::VerifiedPermissions::PolicyStore" +} + +resource_schema "aws_verifiedpermissions_policy_template" { + cloudformation_type_name = "AWS::VerifiedPermissions::PolicyTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_voiceid_domain" { + cloudformation_type_name = "AWS::VoiceID::Domain" +} + +resource_schema "aws_vpclattice_access_log_subscription" { + cloudformation_type_name = "AWS::VpcLattice::AccessLogSubscription" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_auth_policy" { + cloudformation_type_name = "AWS::VpcLattice::AuthPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_listener" { + cloudformation_type_name = "AWS::VpcLattice::Listener" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_resource_policy" { + cloudformation_type_name = "AWS::VpcLattice::ResourcePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_rule" { + cloudformation_type_name = "AWS::VpcLattice::Rule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_service" { + cloudformation_type_name = "AWS::VpcLattice::Service" +} + +resource_schema "aws_vpclattice_service_network" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetwork" +} + +resource_schema "aws_vpclattice_service_network_service_association" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetworkServiceAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_service_network_vpc_association" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetworkVpcAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_target_group" { + cloudformation_type_name = "AWS::VpcLattice::TargetGroup" +} + +resource_schema "aws_wafv2_ip_set" { + cloudformation_type_name = "AWS::WAFv2::IPSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_logging_configuration" { + cloudformation_type_name = "AWS::WAFv2::LoggingConfiguration" +} + +resource_schema "aws_wafv2_regex_pattern_set" { + cloudformation_type_name = "AWS::WAFv2::RegexPatternSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_rule_group" { + cloudformation_type_name = "AWS::WAFv2::RuleGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_web_acl" { + cloudformation_type_name = "AWS::WAFv2::WebACL" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_web_acl_association" { + cloudformation_type_name = "AWS::WAFv2::WebACLAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_assistant" { + cloudformation_type_name = "AWS::Wisdom::Assistant" +} + +resource_schema "aws_wisdom_assistant_association" { + cloudformation_type_name = "AWS::Wisdom::AssistantAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_knowledge_base" { + cloudformation_type_name = "AWS::Wisdom::KnowledgeBase" +} + +resource_schema "aws_workspaces_connection_alias" { + cloudformation_type_name = "AWS::WorkSpaces::ConnectionAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_workspacesweb_browser_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::BrowserSettings" +} + +resource_schema "aws_workspacesweb_identity_provider" { + cloudformation_type_name = "AWS::WorkSpacesWeb::IdentityProvider" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_workspacesweb_ip_access_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::IpAccessSettings" +} + +resource_schema "aws_workspacesweb_network_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::NetworkSettings" +} + +resource_schema "aws_workspacesweb_portal" { + cloudformation_type_name = "AWS::WorkSpacesWeb::Portal" +} + +resource_schema "aws_workspacesweb_trust_store" { + cloudformation_type_name = "AWS::WorkSpacesWeb::TrustStore" +} + +resource_schema "aws_workspacesweb_user_access_logging_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::UserAccessLoggingSettings" +} + +resource_schema "aws_workspacesweb_user_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::UserSettings" +} + +resource_schema "aws_xray_group" { + cloudformation_type_name = "AWS::XRay::Group" +} + +resource_schema "aws_xray_resource_policy" { + cloudformation_type_name = "AWS::XRay::ResourcePolicy" +} + +resource_schema "aws_xray_sampling_rule" { + cloudformation_type_name = "AWS::XRay::SamplingRule" +} diff --git a/internal/provider/plural_data_sources.go b/internal/provider/plural_data_sources.go index b48b8b07b1..bdc6f22e68 100644 --- a/internal/provider/plural_data_sources.go +++ b/internal/provider/plural_data_sources.go @@ -180,6 +180,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_vpc_endpoints -cftype AWS::EC2::VPCEndpoint -package ec2 ../aws/ec2/vpc_endpoint_plural_data_source_gen.go ../aws/ec2/vpc_endpoint_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_vpc_endpoint_services -cftype AWS::EC2::VPCEndpointService -package ec2 ../aws/ec2/vpc_endpoint_service_plural_data_source_gen.go ../aws/ec2/vpc_endpoint_service_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_vpc_endpoint_service_permissions_plural -cftype AWS::EC2::VPCEndpointServicePermissions -package ec2 ../aws/ec2/vpc_endpoint_service_permissions_plural_data_source_gen.go ../aws/ec2/vpc_endpoint_service_permissions_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_vpc_gateway_attachments -cftype AWS::EC2::VPCGatewayAttachment -package ec2 ../aws/ec2/vpc_gateway_attachment_plural_data_source_gen.go ../aws/ec2/vpc_gateway_attachment_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_vpc_peering_connections -cftype AWS::EC2::VPCPeeringConnection -package ec2 ../aws/ec2/vpc_peering_connection_plural_data_source_gen.go ../aws/ec2/vpc_peering_connection_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_vpn_connections -cftype AWS::EC2::VPNConnection -package ec2 ../aws/ec2/vpn_connection_plural_data_source_gen.go ../aws/ec2/vpn_connection_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_vpn_connection_routes -cftype AWS::EC2::VPNConnectionRoute -package ec2 ../aws/ec2/vpn_connection_route_plural_data_source_gen.go ../aws/ec2/vpn_connection_route_plural_data_source_gen_test.go @@ -223,6 +224,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_events_archives -cftype AWS::Events::Archive -package events ../aws/events/archive_plural_data_source_gen.go ../aws/events/archive_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_events_connections -cftype AWS::Events::Connection -package events ../aws/events/connection_plural_data_source_gen.go ../aws/events/connection_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_events_endpoints -cftype AWS::Events::Endpoint -package events ../aws/events/endpoint_plural_data_source_gen.go ../aws/events/endpoint_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_events_rules -cftype AWS::Events::Rule -package events ../aws/events/rule_plural_data_source_gen.go ../aws/events/rule_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_events_event_buses -cftype AWS::Events::EventBus -package events ../aws/events/event_bus_plural_data_source_gen.go ../aws/events/event_bus_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_fis_experiment_templates -cftype AWS::FIS::ExperimentTemplate -package fis ../aws/fis/experiment_template_plural_data_source_gen.go ../aws/fis/experiment_template_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_forecast_datasets -cftype AWS::Forecast::Dataset -package forecast ../aws/forecast/dataset_plural_data_source_gen.go ../aws/forecast/dataset_plural_data_source_gen_test.go @@ -258,6 +260,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_iam_roles -cftype AWS::IAM::Role -package iam ../aws/iam/role_plural_data_source_gen.go ../aws/iam/role_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_iam_saml_providers -cftype AWS::IAM::SAMLProvider -package iam ../aws/iam/saml_provider_plural_data_source_gen.go ../aws/iam/saml_provider_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_iam_server_certificates -cftype AWS::IAM::ServerCertificate -package iam ../aws/iam/server_certificate_plural_data_source_gen.go ../aws/iam/server_certificate_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_iam_users -cftype AWS::IAM::User -package iam ../aws/iam/user_plural_data_source_gen.go ../aws/iam/user_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_iam_virtual_mfa_devices -cftype AWS::IAM::VirtualMFADevice -package iam ../aws/iam/virtual_mfa_device_plural_data_source_gen.go ../aws/iam/virtual_mfa_device_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ivs_channels -cftype AWS::IVS::Channel -package ivs ../aws/ivs/channel_plural_data_source_gen.go ../aws/ivs/channel_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ivs_playback_key_pairs -cftype AWS::IVS::PlaybackKeyPair -package ivs ../aws/ivs/playback_key_pair_plural_data_source_gen.go ../aws/ivs/playback_key_pair_plural_data_source_gen_test.go @@ -373,6 +376,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_mediaconnect_bridges -cftype AWS::MediaConnect::Bridge -package mediaconnect ../aws/mediaconnect/bridge_plural_data_source_gen.go ../aws/mediaconnect/bridge_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_mediaconnect_flows -cftype AWS::MediaConnect::Flow -package mediaconnect ../aws/mediaconnect/flow_plural_data_source_gen.go ../aws/mediaconnect/flow_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_mediaconnect_gateways -cftype AWS::MediaConnect::Gateway -package mediaconnect ../aws/mediaconnect/gateway_plural_data_source_gen.go ../aws/mediaconnect/gateway_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_medialive_multiplexes -cftype AWS::MediaLive::Multiplex -package medialive ../aws/medialive/multiplex_plural_data_source_gen.go ../aws/medialive/multiplex_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_mediapackage_channels -cftype AWS::MediaPackage::Channel -package mediapackage ../aws/mediapackage/channel_plural_data_source_gen.go ../aws/mediapackage/channel_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_mediapackage_origin_endpoints -cftype AWS::MediaPackage::OriginEndpoint -package mediapackage ../aws/mediapackage/origin_endpoint_plural_data_source_gen.go ../aws/mediapackage/origin_endpoint_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_mediapackage_packaging_groups -cftype AWS::MediaPackage::PackagingGroup -package mediapackage ../aws/mediapackage/packaging_group_plural_data_source_gen.go ../aws/mediapackage/packaging_group_plural_data_source_gen_test.go @@ -467,6 +471,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_route53recoveryreadiness_readiness_checks -cftype AWS::Route53RecoveryReadiness::ReadinessCheck -package route53recoveryreadiness ../aws/route53recoveryreadiness/readiness_check_plural_data_source_gen.go ../aws/route53recoveryreadiness/readiness_check_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_route53recoveryreadiness_recovery_groups -cftype AWS::Route53RecoveryReadiness::RecoveryGroup -package route53recoveryreadiness ../aws/route53recoveryreadiness/recovery_group_plural_data_source_gen.go ../aws/route53recoveryreadiness/recovery_group_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_route53recoveryreadiness_resource_sets -cftype AWS::Route53RecoveryReadiness::ResourceSet -package route53recoveryreadiness ../aws/route53recoveryreadiness/resource_set_plural_data_source_gen.go ../aws/route53recoveryreadiness/resource_set_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_route53resolver_firewall_domain_lists -cftype AWS::Route53Resolver::FirewallDomainList -package route53resolver ../aws/route53resolver/firewall_domain_list_plural_data_source_gen.go ../aws/route53resolver/firewall_domain_list_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_route53resolver_firewall_rule_groups -cftype AWS::Route53Resolver::FirewallRuleGroup -package route53resolver ../aws/route53resolver/firewall_rule_group_plural_data_source_gen.go ../aws/route53resolver/firewall_rule_group_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_route53resolver_firewall_rule_group_associations -cftype AWS::Route53Resolver::FirewallRuleGroupAssociation -package route53resolver ../aws/route53resolver/firewall_rule_group_association_plural_data_source_gen.go ../aws/route53resolver/firewall_rule_group_association_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_route53resolver_resolver_configs -cftype AWS::Route53Resolver::ResolverConfig -package route53resolver ../aws/route53resolver/resolver_config_plural_data_source_gen.go ../aws/route53resolver/resolver_config_plural_data_source_gen_test.go @@ -652,6 +657,7 @@ import ( _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/macie" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/managedblockchain" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/mediaconnect" + _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/medialive" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/mediapackage" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/mediapackagev2" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/mediatailor" diff --git a/internal/provider/resources.go b/internal/provider/resources.go index dd46b0d8c9..aa82e97203 100644 --- a/internal/provider/resources.go +++ b/internal/provider/resources.go @@ -39,6 +39,7 @@ //go:generate go run generators/resource/main.go -resource awscc_apigatewayv2_route -cfschema ../service/cloudformation/schemas/AWS_ApiGatewayV2_Route.json -package apigatewayv2 -- ../aws/apigatewayv2/route_resource_gen.go ../aws/apigatewayv2/route_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_apigatewayv2_vpc_link -cfschema ../service/cloudformation/schemas/AWS_ApiGatewayV2_VpcLink.json -package apigatewayv2 -- ../aws/apigatewayv2/vpc_link_resource_gen.go ../aws/apigatewayv2/vpc_link_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_appconfig_application -cfschema ../service/cloudformation/schemas/AWS_AppConfig_Application.json -package appconfig -- ../aws/appconfig/application_resource_gen.go ../aws/appconfig/application_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_appconfig_configuration_profile -cfschema ../service/cloudformation/schemas/AWS_AppConfig_ConfigurationProfile.json -package appconfig -- ../aws/appconfig/configuration_profile_resource_gen.go ../aws/appconfig/configuration_profile_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_appconfig_extension_association -cfschema ../service/cloudformation/schemas/AWS_AppConfig_ExtensionAssociation.json -package appconfig -- ../aws/appconfig/extension_association_resource_gen.go ../aws/appconfig/extension_association_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_appflow_connector -cfschema ../service/cloudformation/schemas/AWS_AppFlow_Connector.json -package appflow -- ../aws/appflow/connector_resource_gen.go ../aws/appflow/connector_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_appflow_connector_profile -cfschema ../service/cloudformation/schemas/AWS_AppFlow_ConnectorProfile.json -package appflow -- ../aws/appflow/connector_profile_resource_gen.go ../aws/appflow/connector_profile_resource_gen_test.go @@ -143,6 +144,7 @@ //go:generate go run generators/resource/main.go -resource awscc_cognito_log_delivery_configuration -cfschema ../service/cloudformation/schemas/AWS_Cognito_LogDeliveryConfiguration.json -package cognito -- ../aws/cognito/log_delivery_configuration_resource_gen.go ../aws/cognito/log_delivery_configuration_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_cognito_user_pool_client -cfschema ../service/cloudformation/schemas/AWS_Cognito_UserPoolClient.json -package cognito -- ../aws/cognito/user_pool_client_resource_gen.go ../aws/cognito/user_pool_client_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_cognito_user_pool_user -cfschema ../service/cloudformation/schemas/AWS_Cognito_UserPoolUser.json -package cognito -- ../aws/cognito/user_pool_user_resource_gen.go ../aws/cognito/user_pool_user_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_cognito_user_pool_user_to_group_attachment -cfschema ../service/cloudformation/schemas/AWS_Cognito_UserPoolUserToGroupAttachment.json -package cognito -- ../aws/cognito/user_pool_user_to_group_attachment_resource_gen.go ../aws/cognito/user_pool_user_to_group_attachment_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_comprehend_document_classifier -cfschema ../service/cloudformation/schemas/AWS_Comprehend_DocumentClassifier.json -package comprehend -- ../aws/comprehend/document_classifier_resource_gen.go ../aws/comprehend/document_classifier_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_comprehend_flywheel -cfschema ../service/cloudformation/schemas/AWS_Comprehend_Flywheel.json -package comprehend -- ../aws/comprehend/flywheel_resource_gen.go ../aws/comprehend/flywheel_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_config_aggregation_authorization -cfschema ../service/cloudformation/schemas/AWS_Config_AggregationAuthorization.json -package config -- ../aws/config/aggregation_authorization_resource_gen.go ../aws/config/aggregation_authorization_resource_gen_test.go @@ -268,6 +270,7 @@ //go:generate go run generators/resource/main.go -resource awscc_ec2_vpc_endpoint -cfschema ../service/cloudformation/schemas/AWS_EC2_VPCEndpoint.json -package ec2 -- ../aws/ec2/vpc_endpoint_resource_gen.go ../aws/ec2/vpc_endpoint_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_ec2_vpc_endpoint_service -cfschema ../service/cloudformation/schemas/AWS_EC2_VPCEndpointService.json -package ec2 -- ../aws/ec2/vpc_endpoint_service_resource_gen.go ../aws/ec2/vpc_endpoint_service_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_ec2_vpc_endpoint_service_permissions -cfschema ../service/cloudformation/schemas/AWS_EC2_VPCEndpointServicePermissions.json -package ec2 -- ../aws/ec2/vpc_endpoint_service_permissions_resource_gen.go ../aws/ec2/vpc_endpoint_service_permissions_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_ec2_vpc_gateway_attachment -cfschema ../service/cloudformation/schemas/AWS_EC2_VPCGatewayAttachment.json -package ec2 -- ../aws/ec2/vpc_gateway_attachment_resource_gen.go ../aws/ec2/vpc_gateway_attachment_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_ec2_vpc_peering_connection -cfschema ../service/cloudformation/schemas/AWS_EC2_VPCPeeringConnection.json -package ec2 -- ../aws/ec2/vpc_peering_connection_resource_gen.go ../aws/ec2/vpc_peering_connection_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_ec2_vpn_connection -cfschema ../service/cloudformation/schemas/AWS_EC2_VPNConnection.json -package ec2 -- ../aws/ec2/vpn_connection_resource_gen.go ../aws/ec2/vpn_connection_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_ec2_vpn_connection_route -cfschema ../service/cloudformation/schemas/AWS_EC2_VPNConnectionRoute.json -package ec2 -- ../aws/ec2/vpn_connection_route_resource_gen.go ../aws/ec2/vpn_connection_route_resource_gen_test.go @@ -318,6 +321,7 @@ //go:generate go run generators/resource/main.go -resource awscc_events_api_destination -cfschema ../service/cloudformation/schemas/AWS_Events_ApiDestination.json -package events -- ../aws/events/api_destination_resource_gen.go ../aws/events/api_destination_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_events_archive -cfschema ../service/cloudformation/schemas/AWS_Events_Archive.json -package events -- ../aws/events/archive_resource_gen.go ../aws/events/archive_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_events_endpoint -cfschema ../service/cloudformation/schemas/AWS_Events_Endpoint.json -package events -- ../aws/events/endpoint_resource_gen.go ../aws/events/endpoint_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_events_rule -cfschema ../service/cloudformation/schemas/AWS_Events_Rule.json -package events -- ../aws/events/rule_resource_gen.go ../aws/events/rule_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_events_event_bus -cfschema ../service/cloudformation/schemas/AWS_Events_EventBus.json -package events -- ../aws/events/event_bus_resource_gen.go ../aws/events/event_bus_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_evidently_experiment -cfschema ../service/cloudformation/schemas/AWS_Evidently_Experiment.json -package evidently -- ../aws/evidently/experiment_resource_gen.go ../aws/evidently/experiment_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_evidently_feature -cfschema ../service/cloudformation/schemas/AWS_Evidently_Feature.json -package evidently -- ../aws/evidently/feature_resource_gen.go ../aws/evidently/feature_resource_gen_test.go @@ -368,6 +372,7 @@ //go:generate go run generators/resource/main.go -resource awscc_iam_saml_provider -cfschema ../service/cloudformation/schemas/AWS_IAM_SAMLProvider.json -package iam -- ../aws/iam/saml_provider_resource_gen.go ../aws/iam/saml_provider_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_iam_service_linked_role -cfschema ../service/cloudformation/schemas/AWS_IAM_ServiceLinkedRole.json -package iam -- ../aws/iam/service_linked_role_resource_gen.go ../aws/iam/service_linked_role_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_iam_server_certificate -cfschema ../service/cloudformation/schemas/AWS_IAM_ServerCertificate.json -package iam -- ../aws/iam/server_certificate_resource_gen.go ../aws/iam/server_certificate_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_iam_user -cfschema ../service/cloudformation/schemas/AWS_IAM_User.json -package iam -- ../aws/iam/user_resource_gen.go ../aws/iam/user_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_iam_user_policy -cfschema ../service/cloudformation/schemas/AWS_IAM_UserPolicy.json -package iam -- ../aws/iam/user_policy_resource_gen.go ../aws/iam/user_policy_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_iam_virtual_mfa_device -cfschema ../service/cloudformation/schemas/AWS_IAM_VirtualMFADevice.json -package iam -- ../aws/iam/virtual_mfa_device_resource_gen.go ../aws/iam/virtual_mfa_device_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_ivs_channel -cfschema ../service/cloudformation/schemas/AWS_IVS_Channel.json -package ivs -- ../aws/ivs/channel_resource_gen.go ../aws/ivs/channel_resource_gen_test.go @@ -522,6 +527,8 @@ //go:generate go run generators/resource/main.go -resource awscc_mediaconnect_flow_source -cfschema ../service/cloudformation/schemas/AWS_MediaConnect_FlowSource.json -package mediaconnect -- ../aws/mediaconnect/flow_source_resource_gen.go ../aws/mediaconnect/flow_source_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_mediaconnect_flow_vpc_interface -cfschema ../service/cloudformation/schemas/AWS_MediaConnect_FlowVpcInterface.json -package mediaconnect -- ../aws/mediaconnect/flow_vpc_interface_resource_gen.go ../aws/mediaconnect/flow_vpc_interface_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_mediaconnect_gateway -cfschema ../service/cloudformation/schemas/AWS_MediaConnect_Gateway.json -package mediaconnect -- ../aws/mediaconnect/gateway_resource_gen.go ../aws/mediaconnect/gateway_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_medialive_multiplex -cfschema ../service/cloudformation/schemas/AWS_MediaLive_Multiplex.json -package medialive -- ../aws/medialive/multiplex_resource_gen.go ../aws/medialive/multiplex_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_medialive_multiplexprogram -cfschema ../service/cloudformation/schemas/AWS_MediaLive_Multiplexprogram.json -package medialive -- ../aws/medialive/multiplexprogram_resource_gen.go ../aws/medialive/multiplexprogram_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_mediapackage_asset -cfschema ../service/cloudformation/schemas/AWS_MediaPackage_Asset.json -package mediapackage -- ../aws/mediapackage/asset_resource_gen.go ../aws/mediapackage/asset_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_mediapackage_channel -cfschema ../service/cloudformation/schemas/AWS_MediaPackage_Channel.json -package mediapackage -- ../aws/mediapackage/channel_resource_gen.go ../aws/mediapackage/channel_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_mediapackage_origin_endpoint -cfschema ../service/cloudformation/schemas/AWS_MediaPackage_OriginEndpoint.json -package mediapackage -- ../aws/mediapackage/origin_endpoint_resource_gen.go ../aws/mediapackage/origin_endpoint_resource_gen_test.go @@ -902,6 +909,7 @@ import ( _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/macie" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/managedblockchain" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/mediaconnect" + _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/medialive" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/mediapackage" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/mediapackagev2" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/mediatailor" diff --git a/internal/provider/singular_data_sources.go b/internal/provider/singular_data_sources.go index b66b9044a2..3d14f0d387 100644 --- a/internal/provider/singular_data_sources.go +++ b/internal/provider/singular_data_sources.go @@ -39,6 +39,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_apigatewayv2_route -cfschema ../service/cloudformation/schemas/AWS_ApiGatewayV2_Route.json -package apigatewayv2 ../aws/apigatewayv2/route_singular_data_source_gen.go ../aws/apigatewayv2/route_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_apigatewayv2_vpc_link -cfschema ../service/cloudformation/schemas/AWS_ApiGatewayV2_VpcLink.json -package apigatewayv2 ../aws/apigatewayv2/vpc_link_singular_data_source_gen.go ../aws/apigatewayv2/vpc_link_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_appconfig_application -cfschema ../service/cloudformation/schemas/AWS_AppConfig_Application.json -package appconfig ../aws/appconfig/application_singular_data_source_gen.go ../aws/appconfig/application_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_appconfig_configuration_profile -cfschema ../service/cloudformation/schemas/AWS_AppConfig_ConfigurationProfile.json -package appconfig ../aws/appconfig/configuration_profile_singular_data_source_gen.go ../aws/appconfig/configuration_profile_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_appconfig_extension_association -cfschema ../service/cloudformation/schemas/AWS_AppConfig_ExtensionAssociation.json -package appconfig ../aws/appconfig/extension_association_singular_data_source_gen.go ../aws/appconfig/extension_association_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_appflow_connector -cfschema ../service/cloudformation/schemas/AWS_AppFlow_Connector.json -package appflow ../aws/appflow/connector_singular_data_source_gen.go ../aws/appflow/connector_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_appflow_connector_profile -cfschema ../service/cloudformation/schemas/AWS_AppFlow_ConnectorProfile.json -package appflow ../aws/appflow/connector_profile_singular_data_source_gen.go ../aws/appflow/connector_profile_singular_data_source_gen_test.go @@ -143,6 +144,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_cognito_log_delivery_configuration -cfschema ../service/cloudformation/schemas/AWS_Cognito_LogDeliveryConfiguration.json -package cognito ../aws/cognito/log_delivery_configuration_singular_data_source_gen.go ../aws/cognito/log_delivery_configuration_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_cognito_user_pool_client -cfschema ../service/cloudformation/schemas/AWS_Cognito_UserPoolClient.json -package cognito ../aws/cognito/user_pool_client_singular_data_source_gen.go ../aws/cognito/user_pool_client_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_cognito_user_pool_user -cfschema ../service/cloudformation/schemas/AWS_Cognito_UserPoolUser.json -package cognito ../aws/cognito/user_pool_user_singular_data_source_gen.go ../aws/cognito/user_pool_user_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_cognito_user_pool_user_to_group_attachment -cfschema ../service/cloudformation/schemas/AWS_Cognito_UserPoolUserToGroupAttachment.json -package cognito ../aws/cognito/user_pool_user_to_group_attachment_singular_data_source_gen.go ../aws/cognito/user_pool_user_to_group_attachment_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_comprehend_document_classifier -cfschema ../service/cloudformation/schemas/AWS_Comprehend_DocumentClassifier.json -package comprehend ../aws/comprehend/document_classifier_singular_data_source_gen.go ../aws/comprehend/document_classifier_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_comprehend_flywheel -cfschema ../service/cloudformation/schemas/AWS_Comprehend_Flywheel.json -package comprehend ../aws/comprehend/flywheel_singular_data_source_gen.go ../aws/comprehend/flywheel_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_config_aggregation_authorization -cfschema ../service/cloudformation/schemas/AWS_Config_AggregationAuthorization.json -package config ../aws/config/aggregation_authorization_singular_data_source_gen.go ../aws/config/aggregation_authorization_singular_data_source_gen_test.go @@ -268,6 +270,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_vpc_endpoint -cfschema ../service/cloudformation/schemas/AWS_EC2_VPCEndpoint.json -package ec2 ../aws/ec2/vpc_endpoint_singular_data_source_gen.go ../aws/ec2/vpc_endpoint_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_vpc_endpoint_service -cfschema ../service/cloudformation/schemas/AWS_EC2_VPCEndpointService.json -package ec2 ../aws/ec2/vpc_endpoint_service_singular_data_source_gen.go ../aws/ec2/vpc_endpoint_service_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_vpc_endpoint_service_permissions -cfschema ../service/cloudformation/schemas/AWS_EC2_VPCEndpointServicePermissions.json -package ec2 ../aws/ec2/vpc_endpoint_service_permissions_singular_data_source_gen.go ../aws/ec2/vpc_endpoint_service_permissions_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_vpc_gateway_attachment -cfschema ../service/cloudformation/schemas/AWS_EC2_VPCGatewayAttachment.json -package ec2 ../aws/ec2/vpc_gateway_attachment_singular_data_source_gen.go ../aws/ec2/vpc_gateway_attachment_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_vpc_peering_connection -cfschema ../service/cloudformation/schemas/AWS_EC2_VPCPeeringConnection.json -package ec2 ../aws/ec2/vpc_peering_connection_singular_data_source_gen.go ../aws/ec2/vpc_peering_connection_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_vpn_connection -cfschema ../service/cloudformation/schemas/AWS_EC2_VPNConnection.json -package ec2 ../aws/ec2/vpn_connection_singular_data_source_gen.go ../aws/ec2/vpn_connection_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_vpn_connection_route -cfschema ../service/cloudformation/schemas/AWS_EC2_VPNConnectionRoute.json -package ec2 ../aws/ec2/vpn_connection_route_singular_data_source_gen.go ../aws/ec2/vpn_connection_route_singular_data_source_gen_test.go @@ -318,6 +321,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_events_api_destination -cfschema ../service/cloudformation/schemas/AWS_Events_ApiDestination.json -package events ../aws/events/api_destination_singular_data_source_gen.go ../aws/events/api_destination_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_events_archive -cfschema ../service/cloudformation/schemas/AWS_Events_Archive.json -package events ../aws/events/archive_singular_data_source_gen.go ../aws/events/archive_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_events_endpoint -cfschema ../service/cloudformation/schemas/AWS_Events_Endpoint.json -package events ../aws/events/endpoint_singular_data_source_gen.go ../aws/events/endpoint_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_events_rule -cfschema ../service/cloudformation/schemas/AWS_Events_Rule.json -package events ../aws/events/rule_singular_data_source_gen.go ../aws/events/rule_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_events_event_bus -cfschema ../service/cloudformation/schemas/AWS_Events_EventBus.json -package events ../aws/events/event_bus_singular_data_source_gen.go ../aws/events/event_bus_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_evidently_experiment -cfschema ../service/cloudformation/schemas/AWS_Evidently_Experiment.json -package evidently ../aws/evidently/experiment_singular_data_source_gen.go ../aws/evidently/experiment_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_evidently_feature -cfschema ../service/cloudformation/schemas/AWS_Evidently_Feature.json -package evidently ../aws/evidently/feature_singular_data_source_gen.go ../aws/evidently/feature_singular_data_source_gen_test.go @@ -368,6 +372,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_iam_saml_provider -cfschema ../service/cloudformation/schemas/AWS_IAM_SAMLProvider.json -package iam ../aws/iam/saml_provider_singular_data_source_gen.go ../aws/iam/saml_provider_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_iam_service_linked_role -cfschema ../service/cloudformation/schemas/AWS_IAM_ServiceLinkedRole.json -package iam ../aws/iam/service_linked_role_singular_data_source_gen.go ../aws/iam/service_linked_role_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_iam_server_certificate -cfschema ../service/cloudformation/schemas/AWS_IAM_ServerCertificate.json -package iam ../aws/iam/server_certificate_singular_data_source_gen.go ../aws/iam/server_certificate_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_iam_user -cfschema ../service/cloudformation/schemas/AWS_IAM_User.json -package iam ../aws/iam/user_singular_data_source_gen.go ../aws/iam/user_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_iam_user_policy -cfschema ../service/cloudformation/schemas/AWS_IAM_UserPolicy.json -package iam ../aws/iam/user_policy_singular_data_source_gen.go ../aws/iam/user_policy_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_iam_virtual_mfa_device -cfschema ../service/cloudformation/schemas/AWS_IAM_VirtualMFADevice.json -package iam ../aws/iam/virtual_mfa_device_singular_data_source_gen.go ../aws/iam/virtual_mfa_device_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_ivs_channel -cfschema ../service/cloudformation/schemas/AWS_IVS_Channel.json -package ivs ../aws/ivs/channel_singular_data_source_gen.go ../aws/ivs/channel_singular_data_source_gen_test.go @@ -522,6 +527,8 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_mediaconnect_flow_source -cfschema ../service/cloudformation/schemas/AWS_MediaConnect_FlowSource.json -package mediaconnect ../aws/mediaconnect/flow_source_singular_data_source_gen.go ../aws/mediaconnect/flow_source_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_mediaconnect_flow_vpc_interface -cfschema ../service/cloudformation/schemas/AWS_MediaConnect_FlowVpcInterface.json -package mediaconnect ../aws/mediaconnect/flow_vpc_interface_singular_data_source_gen.go ../aws/mediaconnect/flow_vpc_interface_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_mediaconnect_gateway -cfschema ../service/cloudformation/schemas/AWS_MediaConnect_Gateway.json -package mediaconnect ../aws/mediaconnect/gateway_singular_data_source_gen.go ../aws/mediaconnect/gateway_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_medialive_multiplex -cfschema ../service/cloudformation/schemas/AWS_MediaLive_Multiplex.json -package medialive ../aws/medialive/multiplex_singular_data_source_gen.go ../aws/medialive/multiplex_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_medialive_multiplexprogram -cfschema ../service/cloudformation/schemas/AWS_MediaLive_Multiplexprogram.json -package medialive ../aws/medialive/multiplexprogram_singular_data_source_gen.go ../aws/medialive/multiplexprogram_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_mediapackage_asset -cfschema ../service/cloudformation/schemas/AWS_MediaPackage_Asset.json -package mediapackage ../aws/mediapackage/asset_singular_data_source_gen.go ../aws/mediapackage/asset_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_mediapackage_channel -cfschema ../service/cloudformation/schemas/AWS_MediaPackage_Channel.json -package mediapackage ../aws/mediapackage/channel_singular_data_source_gen.go ../aws/mediapackage/channel_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_mediapackage_origin_endpoint -cfschema ../service/cloudformation/schemas/AWS_MediaPackage_OriginEndpoint.json -package mediapackage ../aws/mediapackage/origin_endpoint_singular_data_source_gen.go ../aws/mediapackage/origin_endpoint_singular_data_source_gen_test.go @@ -902,6 +909,7 @@ import ( _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/macie" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/managedblockchain" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/mediaconnect" + _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/medialive" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/mediapackage" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/mediapackagev2" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/mediatailor" diff --git a/internal/service/cloudformation/schemas/AWS_ApiGateway_Account.json b/internal/service/cloudformation/schemas/AWS_ApiGateway_Account.json index ea7eb6574f..750d1a2130 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGateway_Account.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGateway_Account.json @@ -5,7 +5,7 @@ "additionalProperties": false, "properties": { "Id": { - "description": "Primary identifier which is manually generated.", + "description": "", "type": "string" }, "CloudWatchRoleArn": { diff --git a/internal/service/cloudformation/schemas/AWS_ApiGateway_ApiKey.json b/internal/service/cloudformation/schemas/AWS_ApiGateway_ApiKey.json index 4d58557451..77d15d472c 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGateway_ApiKey.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGateway_ApiKey.json @@ -1,36 +1,36 @@ { "typeName": "AWS::ApiGateway::ApiKey", - "description": "Resource Type definition for AWS::ApiGateway::ApiKey", + "description": "The ``AWS::ApiGateway::ApiKey`` resource creates a unique key that you can distribute to clients who are executing API Gateway ``Method`` resources that require an API key. To specify which API key clients must use, map the API key with the ``RestApi`` and ``Stage`` resources that include the methods that require a key.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-apigateway", "additionalProperties": false, "properties": { "APIKeyId": { - "description": "A Unique Key ID which identifies the API Key. Generated by the Create API and returned by the Read and List APIs ", + "description": "", "type": "string" }, "CustomerId": { - "description": "An AWS Marketplace customer identifier to use when integrating with the AWS SaaS Marketplace.", + "description": "An MKT customer identifier, when integrating with the AWS SaaS Marketplace.", "type": "string" }, "Description": { - "description": "A description of the purpose of the API key.", + "description": "The description of the ApiKey.", "type": "string" }, "Enabled": { - "description": "Indicates whether the API key can be used by clients.", + "description": "Specifies whether the ApiKey can be used by callers.", "default": false, "type": "boolean" }, "GenerateDistinctId": { - "description": "Specifies whether the key identifier is distinct from the created API key value. This parameter is deprecated and should not be used.", + "description": "Specifies whether (``true``) or not (``false``) the key identifier is distinct from the created API key value. This parameter is deprecated and should not be used.", "type": "boolean" }, "Name": { - "description": "A name for the API key. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the API key name.", + "description": "A name for the API key. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the API key name. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html).\n If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.", "type": "string" }, "StageKeys": { - "description": "A list of stages to associate with this API key.", + "description": "DEPRECATED FOR USAGE PLANS - Specifies stages associated with the API key.", "type": "array", "uniqueItems": true, "items": { @@ -38,7 +38,7 @@ } }, "Tags": { - "description": "An array of arbitrary tags (key-value pairs) to associate with the API key.", + "description": "The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with ``aws:``. The tag value can be up to 256 characters.", "type": "array", "uniqueItems": false, "items": { @@ -46,7 +46,7 @@ } }, "Value": { - "description": "The value of the API key. Must be at least 20 characters long.", + "description": "Specifies a value of the API key.", "type": "string" } }, @@ -56,14 +56,15 @@ "additionalProperties": false, "properties": { "RestApiId": { - "description": "The ID of a RestApi resource that includes the stage with which you want to associate the API key.", + "description": "The string identifier of the associated RestApi.", "type": "string" }, "StageName": { - "description": "The name of the stage with which to associate the API key. The stage must be included in the RestApi resource that you specified in the RestApiId property. ", + "description": "The stage name associated with the stage key.", "type": "string" } - } + }, + "description": "``StageKey`` is a property of the [AWS::ApiGateway::ApiKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html) resource that specifies the stage to associate with the API key. This association allows only clients with the key to make requests to methods in that stage." }, "Tag": { "type": "object", @@ -84,7 +85,8 @@ "required": [ "Value", "Key" - ] + ], + "description": "" } }, "createOnlyProperties": [ @@ -105,7 +107,8 @@ "create": { "permissions": [ "apigateway:POST", - "apigateway:GET" + "apigateway:GET", + "apigateway:PUT" ] }, "read": { @@ -123,7 +126,8 @@ }, "delete": { "permissions": [ - "apigateway:DELETE" + "apigateway:DELETE", + "apigateway:GET" ] }, "list": { diff --git a/internal/service/cloudformation/schemas/AWS_ApiGateway_Authorizer.json b/internal/service/cloudformation/schemas/AWS_ApiGateway_Authorizer.json index e1882c813f..6f61669ed4 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGateway_Authorizer.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGateway_Authorizer.json @@ -8,7 +8,8 @@ "type": "string" }, "AuthorizerId": { - "type": "string" + "type": "string", + "description": "" }, "AuthType": { "description": "Optional customer-defined field, used in OpenAPI imports and exports without functional impact.", diff --git a/internal/service/cloudformation/schemas/AWS_ApiGateway_ClientCertificate.json b/internal/service/cloudformation/schemas/AWS_ApiGateway_ClientCertificate.json index 57919ee0a2..b6bcaa175f 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGateway_ClientCertificate.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGateway_ClientCertificate.json @@ -5,7 +5,7 @@ "additionalProperties": false, "properties": { "ClientCertificateId": { - "description": "The Primary Identifier of the Client Certficate, generated by a Create API Call", + "description": "", "type": "string" }, "Description": { @@ -36,7 +36,8 @@ "required": [ "Value", "Key" - ] + ], + "description": "" } }, "primaryIdentifier": [ @@ -62,7 +63,8 @@ "permissions": [ "apigateway:GET", "apigateway:PATCH", - "apigateway:PUT" + "apigateway:PUT", + "apigateway:DELETE" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_ApiGateway_Deployment.json b/internal/service/cloudformation/schemas/AWS_ApiGateway_Deployment.json index a877f09f89..024e3550cb 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGateway_Deployment.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGateway_Deployment.json @@ -6,7 +6,7 @@ "properties": { "DeploymentId": { "type": "string", - "description": "Primary Id for this resource" + "description": "" }, "DeploymentCanarySettings": { "$ref": "#/definitions/DeploymentCanarySettings", @@ -210,7 +210,8 @@ "required": [ "Value", "Key" - ] + ], + "description": "" }, "MethodSetting": { "type": "object", @@ -283,7 +284,10 @@ "handlers": { "create": { "permissions": [ - "apigateway:POST" + "apigateway:POST", + "apigateway:PATCH", + "apigateway:PUT", + "apigateway:GET" ] }, "read": { @@ -295,7 +299,8 @@ "permissions": [ "apigateway:PATCH", "apigateway:GET", - "apigateway:PUT" + "apigateway:PUT", + "apigateway:DELETE" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_ApiGateway_DocumentationPart.json b/internal/service/cloudformation/schemas/AWS_ApiGateway_DocumentationPart.json index c4132f0adb..c04b24b565 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGateway_DocumentationPart.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGateway_DocumentationPart.json @@ -5,7 +5,7 @@ "additionalProperties": false, "properties": { "DocumentationPartId": { - "description": "The identifier of the documentation Part.", + "description": "", "type": "string" }, "Location": { diff --git a/internal/service/cloudformation/schemas/AWS_ApiGateway_RequestValidator.json b/internal/service/cloudformation/schemas/AWS_ApiGateway_RequestValidator.json index 39d00e7be7..27e5b0eedf 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGateway_RequestValidator.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGateway_RequestValidator.json @@ -1,27 +1,27 @@ { "typeName": "AWS::ApiGateway::RequestValidator", - "description": "Resource Type definition for AWS::ApiGateway::RequestValidator", + "description": "The ``AWS::ApiGateway::RequestValidator`` resource sets up basic validation rules for incoming requests to your API. For more information, see [Enable Basic Request Validation for an API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html) in the *API Gateway Developer Guide*.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-apigateway", "additionalProperties": false, "properties": { "RequestValidatorId": { - "description": "ID of the request validator.", + "description": "", "type": "string" }, "Name": { - "description": "Name of the request validator.", + "description": "The name of this RequestValidator", "type": "string" }, "RestApiId": { - "description": "The identifier of the targeted API entity.", + "description": "The string identifier of the associated RestApi.", "type": "string" }, "ValidateRequestBody": { - "description": "Indicates whether to validate the request body according to the configured schema for the targeted API and method. ", + "description": "A Boolean flag to indicate whether to validate a request body according to the configured Model schema.", "type": "boolean" }, "ValidateRequestParameters": { - "description": "Indicates whether to validate request parameters.", + "description": "A Boolean flag to indicate whether to validate request parameters (``true``) or not (``false``).", "type": "boolean" } }, @@ -48,7 +48,8 @@ }, "update": { "permissions": [ - "apigateway:PATCH" + "apigateway:PATCH", + "apigateway:GET" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_ApiGateway_Resource.json b/internal/service/cloudformation/schemas/AWS_ApiGateway_Resource.json index 1b9f0b1458..f966d9c184 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGateway_Resource.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGateway_Resource.json @@ -5,7 +5,7 @@ "additionalProperties": false, "properties": { "ResourceId": { - "description": "A unique primary identifier for a Resource", + "description": "", "type": "string" }, "RestApiId": { diff --git a/internal/service/cloudformation/schemas/AWS_ApiGateway_RestApi.json b/internal/service/cloudformation/schemas/AWS_ApiGateway_RestApi.json index 69c80d7ae9..a67935ea2d 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGateway_RestApi.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGateway_RestApi.json @@ -41,7 +41,8 @@ "required": [ "Key", "Value" - ] + ], + "description": "" }, "S3Location": { "type": "object", @@ -69,10 +70,12 @@ }, "properties": { "RestApiId": { - "type": "string" + "type": "string", + "description": "" }, "RootResourceId": { - "type": "string" + "type": "string", + "description": "" }, "ApiKeySourceType": { "type": "string", diff --git a/internal/service/cloudformation/schemas/AWS_ApiGateway_Stage.json b/internal/service/cloudformation/schemas/AWS_ApiGateway_Stage.json index e0adc0e999..74af544ba8 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGateway_Stage.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGateway_Stage.json @@ -174,7 +174,7 @@ } }, "Tag": { - "description": "Identify and categorize resources.", + "description": "", "type": "object", "additionalProperties": false, "properties": { diff --git a/internal/service/cloudformation/schemas/AWS_ApiGateway_UsagePlan.json b/internal/service/cloudformation/schemas/AWS_ApiGateway_UsagePlan.json index 0765095340..97eaa69477 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGateway_UsagePlan.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGateway_UsagePlan.json @@ -1,16 +1,16 @@ { "typeName": "AWS::ApiGateway::UsagePlan", - "description": "Resource Type definition for AWS::ApiGateway::UsagePlan", + "description": "The ``AWS::ApiGateway::UsagePlan`` resource creates a usage plan for deployed APIs. A usage plan sets a target for the throttling and quota limits on individual client API keys. For more information, see [Creating and Using API Usage Plans in Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) in the *API Gateway Developer Guide*.\n In some cases clients can exceed the targets that you set. Don?t rely on usage plans to control costs. Consider using [](https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-managing-costs.html) to monitor costs and [](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) to manage API requests.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-apigateway.git", "additionalProperties": false, "properties": { "Id": { "type": "string", - "description": "The provider-assigned unique ID for this managed resource." + "description": "" }, "ApiStages": { "type": "array", - "description": "The API stages to associate with this usage plan.", + "description": "The associated API stages of a usage plan.", "uniqueItems": true, "items": { "$ref": "#/definitions/ApiStage" @@ -18,15 +18,15 @@ }, "Description": { "type": "string", - "description": "A description of the usage plan." + "description": "The description of a usage plan." }, "Quota": { "$ref": "#/definitions/QuotaSettings", - "description": "Configures the number of requests that users can make within a given interval." + "description": "The target maximum number of permitted requests per a given unit time interval." }, "Tags": { "type": "array", - "description": "An array of arbitrary tags (key-value pairs) to associate with the usage plan.", + "description": "The collection of tags. Each tag element is associated with a given resource.", "insertionOrder": false, "uniqueItems": false, "items": { @@ -35,11 +35,11 @@ }, "Throttle": { "$ref": "#/definitions/ThrottleSettings", - "description": "Configures the overall request rate (average requests per second) and burst capacity." + "description": "A map containing method level throttling information for API stage in a usage plan." }, "UsagePlanName": { "type": "string", - "description": "A name for the usage plan." + "description": "The name of a usage plan." } }, "definitions": { @@ -49,15 +49,15 @@ "properties": { "ApiId": { "type": "string", - "description": "The ID of an API that is in the specified Stage property that you want to associate with the usage plan." + "description": "API Id of the associated API stage in a usage plan." }, "Stage": { "type": "string", - "description": "The name of the stage to associate with the usage plan." + "description": "API stage name of the associated API stage in a usage plan." }, "Throttle": { "type": "object", - "description": "Map containing method-level throttling information for an API stage in a usage plan. The key for the map is the path and method for which to configure custom throttling, for example, '/pets/GET'. Duplicates are not allowed.", + "description": "Map containing method level throttling information for API stage in a usage plan.", "additionalProperties": false, "patternProperties": { "": { @@ -65,7 +65,8 @@ } } } - } + }, + "description": "API stage name of the associated API stage in a usage plan." }, "ThrottleSettings": { "type": "object", @@ -74,14 +75,15 @@ "BurstLimit": { "type": "integer", "minimum": 0, - "description": "The maximum API request rate limit over a time ranging from one to a few seconds. The maximum API request rate limit depends on whether the underlying token bucket is at its full capacity." + "description": "The API target request burst rate limit. This allows more requests through for a period of time than the target rate limit." }, "RateLimit": { "type": "number", "minimum": 0, - "description": "The API request steady-state rate limit (average requests per second over an extended period of time)." + "description": "The API target request rate limit." } - } + }, + "description": "``ThrottleSettings`` is a property of the [AWS::ApiGateway::UsagePlan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html) resource that specifies the overall request rate (average requests per second) and burst capacity when users call your REST APIs." }, "Tag": { "type": "object", @@ -103,7 +105,8 @@ "required": [ "Value", "Key" - ] + ], + "description": "" }, "QuotaSettings": { "type": "object", @@ -112,18 +115,19 @@ "Limit": { "type": "integer", "minimum": 0, - "description": "The maximum number of requests that users can make within the specified time period." + "description": "The target maximum number of requests that can be made in a given time period." }, "Offset": { "type": "integer", "minimum": 0, - "description": "For the initial time period, the number of requests to subtract from the specified limit. When you first implement a usage plan, the plan might start in the middle of the week or month. With this property, you can decrease the limit for this initial time period." + "description": "The number of requests subtracted from the given limit in the initial time period." }, "Period": { "type": "string", - "description": "The time period for which the maximum limit of requests applies, such as DAY or WEEK. For valid values, see the period property for the UsagePlan resource in the Amazon API Gateway REST API Reference." + "description": "The time period in which the limit applies. Valid values are \"DAY\", \"WEEK\" or \"MONTH\"." } - } + }, + "description": "``QuotaSettings`` is a property of the [AWS::ApiGateway::UsagePlan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html) resource that specifies a target for the maximum number of requests users can make to your REST APIs.\n In some cases clients can exceed the targets that you set. Don?t rely on usage plans to control costs. Consider using [](https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-managing-costs.html) to monitor costs and [](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) to manage API requests." } }, "tagging": { @@ -143,7 +147,8 @@ "create": { "permissions": [ "apigateway:POST", - "apigateway:GET" + "apigateway:GET", + "apigateway:PUT" ] }, "read": { @@ -161,7 +166,9 @@ }, "delete": { "permissions": [ - "apigateway:DELETE" + "apigateway:DELETE", + "apigateway:GET", + "apigateway:PATCH" ] }, "list": { diff --git a/internal/service/cloudformation/schemas/AWS_ApiGateway_UsagePlanKey.json b/internal/service/cloudformation/schemas/AWS_ApiGateway_UsagePlanKey.json index c9ffb12508..499c99f0bf 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGateway_UsagePlanKey.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGateway_UsagePlanKey.json @@ -20,7 +20,7 @@ "type": "string" }, "Id": { - "description": "An autogenerated ID which is a combination of the ID of the key and ID of the usage plan combined with a : such as 123abcdef:abc123.", + "description": "", "type": "string" } }, diff --git a/internal/service/cloudformation/schemas/AWS_AppConfig_Application.json b/internal/service/cloudformation/schemas/AWS_AppConfig_Application.json index 8004adb9df..aff8a44bbf 100644 --- a/internal/service/cloudformation/schemas/AWS_AppConfig_Application.json +++ b/internal/service/cloudformation/schemas/AWS_AppConfig_Application.json @@ -10,7 +10,7 @@ "properties": { "Key": { "type": "string", - "description": "The key-value string map. The valid character set is [a-zA-Z1-9+-=._:/]. The tag key can be up to 128 characters and must not start with aws:.", + "description": "The key-value string map. The valid character set is [a-zA-Z1-9 +-=._:/-]. The tag key can be up to 128 characters and must not start with aws:.", "minLength": 1, "maxLength": 128, "pattern": "" diff --git a/internal/service/cloudformation/schemas/AWS_AppConfig_ConfigurationProfile.json b/internal/service/cloudformation/schemas/AWS_AppConfig_ConfigurationProfile.json new file mode 100644 index 0000000000..3af04a394c --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_AppConfig_ConfigurationProfile.json @@ -0,0 +1,187 @@ +{ + "typeName": "AWS::AppConfig::ConfigurationProfile", + "description": "An example resource schema demonstrating some basic constructs and validation rules.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-appconfig", + "definitions": { + "Validators": { + "description": "A list of methods for validating the configuration.", + "type": "object", + "additionalProperties": false, + "properties": { + "Type": { + "type": "string", + "description": "AWS AppConfig supports validators of type JSON_SCHEMA and LAMBDA." + }, + "Content": { + "type": "string", + "description": "Either the JSON Schema content or the Amazon Resource Name (ARN) of an Lambda function.", + "minLength": 0, + "maxLength": 32768 + } + } + }, + "Tags": { + "description": "Metadata to assign to the configuration profile. Tags help organize and categorize your AWS AppConfig resources. Each tag consists of a key and an optional value, both of which you define.", + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "The key-value string map. The tag key can be up to 128 characters and must not start with aws:.", + "minLength": 1, + "maxLength": 128, + "pattern": "" + }, + "Value": { + "type": "string", + "description": "The tag value can be up to 256 characters.", + "minLength": 0, + "maxLength": 256 + } + }, + "additionalProperties": false + } + }, + "properties": { + "LocationUri": { + "type": "string", + "description": "A URI to locate the configuration. You can specify the AWS AppConfig hosted configuration store, Systems Manager (SSM) document, an SSM Parameter Store parameter, or an Amazon S3 object.", + "minLength": 1, + "maxLength": 2048 + }, + "Type": { + "type": "string", + "description": "The type of configurations contained in the profile. When calling this API, enter one of the following values for Type: AWS.AppConfig.FeatureFlags, AWS.Freeform", + "pattern": "^[a-zA-Z\\.]+" + }, + "Description": { + "type": "string", + "description": "A description of the configuration profile.", + "minLength": 0, + "maxLength": 1024 + }, + "Validators": { + "type": "array", + "description": "A list of methods for validating the configuration.", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/Validators" + }, + "insertionOrder": false, + "maxItems": 2 + }, + "RetrievalRoleArn": { + "type": "string", + "description": "The ARN of an IAM role with permission to access the configuration at the specified LocationUri.", + "minLength": 20, + "maxLength": 2048, + "pattern": "^((arn):(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):(iam)::\\d{12}:role[/].*)$" + }, + "ConfigurationProfileId": { + "type": "string", + "description": "The configuration profile ID" + }, + "ApplicationId": { + "type": "string", + "description": "The application ID.", + "pattern": "[a-z0-9]{4,7}" + }, + "Tags": { + "type": "array", + "description": "Metadata to assign to the configuration profile. Tags help organize and categorize your AWS AppConfig resources. Each tag consists of a key and an optional value, both of which you define.", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/Tags" + }, + "insertionOrder": false + }, + "Name": { + "type": "string", + "description": "A name for the configuration profile.", + "minLength": 1, + "maxLength": 128 + }, + "KmsKeyIdentifier": { + "type": "string", + "description": "The AWS Key Management Service key identifier (key ID, key alias, or key ARN) provided when the resource was created or updated.", + "pattern": "^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}|alias/[a-zA-Z0-9/_-]{1,250}|arn:aws[a-zA-Z-]*:kms:[a-z]{2}(-gov|-iso(b?))?-[a-z]+-\\d{1}:\\d{12}:(key/[0-9a-f-]{36}|alias/[a-zA-Z0-9/_-]{1,250})$" + }, + "KmsKeyArn": { + "type": "string", + "description": "The Amazon Resource Name of the AWS Key Management Service key to encrypt new configuration data versions in the AWS AppConfig hosted configuration store. This attribute is only used for hosted configuration types. To encrypt data managed in other configuration stores, see the documentation for how to specify an AWS KMS key for that particular service.", + "minLength": 20, + "maxLength": 2048, + "pattern": "arn:(aws[a-zA-Z-]*)?:[a-z]+:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:[a-zA-Z0-9-_/:.]+" + } + }, + "additionalProperties": false, + "required": [ + "LocationUri", + "ApplicationId", + "Name" + ], + "createOnlyProperties": [ + "/properties/LocationUri", + "/properties/Type", + "/properties/ApplicationId" + ], + "primaryIdentifier": [ + "/properties/ApplicationId", + "/properties/ConfigurationProfileId" + ], + "readOnlyProperties": [ + "/properties/ConfigurationProfileId", + "/properties/KmsKeyArn" + ], + "handlers": { + "create": { + "permissions": [ + "appconfig:CreateConfigurationProfile", + "appconfig:GetConfigurationProfile", + "appconfig:TagResource", + "appconfig:ListTagsForResource", + "iam:PassRole" + ] + }, + "read": { + "permissions": [ + "appconfig:GetConfigurationProfile", + "appconfig:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "appconfig:UpdateConfigurationProfile", + "appconfig:TagResource", + "appconfig:UntagResource", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "appconfig:DeleteConfigurationProfile" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "ApplicationId": { + "$ref": "resource-schema.json#/properties/ApplicationId" + } + }, + "required": [ + "ApplicationId" + ] + }, + "permissions": [ + "appconfig:ListConfigurationProfiles" + ] + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags" + } +} diff --git a/internal/service/cloudformation/schemas/AWS_AppRunner_Service.json b/internal/service/cloudformation/schemas/AWS_AppRunner_Service.json index d252398681..c632119ad4 100644 --- a/internal/service/cloudformation/schemas/AWS_AppRunner_Service.json +++ b/internal/service/cloudformation/schemas/AWS_AppRunner_Service.json @@ -357,6 +357,14 @@ }, "IngressConfiguration": { "$ref": "#/definitions/IngressConfiguration" + }, + "IpAddressType": { + "description": "App Runner service endpoint IP address type", + "type": "string", + "enum": [ + "IPV4", + "DUAL_STACK" + ] } }, "additionalProperties": false diff --git a/internal/service/cloudformation/schemas/AWS_AppSync_Resolver.json b/internal/service/cloudformation/schemas/AWS_AppSync_Resolver.json index b1aa3b216e..23bcc1fb05 100644 --- a/internal/service/cloudformation/schemas/AWS_AppSync_Resolver.json +++ b/internal/service/cloudformation/schemas/AWS_AppSync_Resolver.json @@ -189,7 +189,8 @@ "create": { "permissions": [ "s3:GetObject", - "appsync:CreateResolver" + "appsync:CreateResolver", + "appsync:GetResolver" ] }, "read": { diff --git a/internal/service/cloudformation/schemas/AWS_CloudFront_ContinuousDeploymentPolicy.json b/internal/service/cloudformation/schemas/AWS_CloudFront_ContinuousDeploymentPolicy.json index 54c1d91a45..5b8765ed43 100644 --- a/internal/service/cloudformation/schemas/AWS_CloudFront_ContinuousDeploymentPolicy.json +++ b/internal/service/cloudformation/schemas/AWS_CloudFront_ContinuousDeploymentPolicy.json @@ -1,5 +1,10 @@ { "additionalProperties": false, + "deprecatedProperties": [ + "/definitions/ContinuousDeploymentPolicyConfig/properties/Type", + "/definitions/ContinuousDeploymentPolicyConfig/properties/SingleHeaderPolicyConfig", + "/definitions/ContinuousDeploymentPolicyConfig/properties/SingleWeightPolicyConfig" + ], "definitions": { "ContinuousDeploymentPolicyConfig": { "additionalProperties": false, @@ -184,11 +189,6 @@ ] } }, - "deprecatedProperties": [ - "/properties/ContinuousDeploymentPolicyConfig/properties/Type", - "/properties/ContinuousDeploymentPolicyConfig/properties/SingleHeaderPolicyConfig", - "/properties/ContinuousDeploymentPolicyConfig/properties/SingleWeightPolicyConfig" - ], "primaryIdentifier": [ "/properties/Id" ], diff --git a/internal/service/cloudformation/schemas/AWS_CloudFront_Distribution.json b/internal/service/cloudformation/schemas/AWS_CloudFront_Distribution.json index b04e673c26..4bd354d778 100644 --- a/internal/service/cloudformation/schemas/AWS_CloudFront_Distribution.json +++ b/internal/service/cloudformation/schemas/AWS_CloudFront_Distribution.json @@ -787,34 +787,46 @@ "type": "object" } }, + "deprecatedProperties": [ + "/properties/DistributionConfig/properties/CustomOrigin", + "/properties/DistributionConfig/properties/S3Origin" + ], "description": "Resource Type definition for AWS::CloudFront::Distribution", "handlers": { "create": { "permissions": [ - "cloudfront:CreateDistribution*", + "cloudfront:CreateDistribution", + "cloudfront:CreateDistributionWithTags", + "cloudfront:GetDistribution", + "cloudfront:GetDistributionConfig", "cloudfront:TagResource" ] }, "delete": { "permissions": [ - "cloudfront:DeleteDistribution*" + "cloudfront:DeleteDistribution", + "cloudfront:GetDistribution", + "cloudfront:GetDistributionConfig" ] }, "list": { "permissions": [ - "cloudfront:ListDistributions*" + "cloudfront:ListDistributions" ] }, "read": { "permissions": [ - "cloudfront:GetDistribution*" + "cloudfront:GetDistribution", + "cloudfront:GetDistributionConfig" ] }, "update": { "permissions": [ - "cloudfront:GetDistribution*", - "cloudfront:UpdateDistribution*", - "cloudfront:ListTagsForResource*", + "cloudfront:GetDistribution", + "cloudfront:GetDistributionConfig", + "cloudfront:UpdateDistribution", + "cloudfront:UpdateDistributionWithStagingConfig", + "cloudfront:ListTagsForResource", "cloudfront:TagResource", "cloudfront:UntagResource" ] @@ -848,5 +860,11 @@ "required": [ "DistributionConfig" ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, "typeName": "AWS::CloudFront::Distribution" } diff --git a/internal/service/cloudformation/schemas/AWS_Cognito_UserPoolUserToGroupAttachment.json b/internal/service/cloudformation/schemas/AWS_Cognito_UserPoolUserToGroupAttachment.json new file mode 100644 index 0000000000..bcc4405f3b --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Cognito_UserPoolUserToGroupAttachment.json @@ -0,0 +1,59 @@ +{ + "typeName": "AWS::Cognito::UserPoolUserToGroupAttachment", + "description": "Resource Type definition for AWS::Cognito::UserPoolUserToGroupAttachment", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "properties": { + "UserPoolId": { + "type": "string" + }, + "Username": { + "type": "string" + }, + "GroupName": { + "type": "string" + } + }, + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, + "additionalProperties": false, + "required": [ + "UserPoolId", + "Username", + "GroupName" + ], + "createOnlyProperties": [ + "/properties/UserPoolId", + "/properties/GroupName", + "/properties/Username" + ], + "primaryIdentifier": [ + "/properties/UserPoolId", + "/properties/GroupName", + "/properties/Username" + ], + "handlers": { + "create": { + "permissions": [ + "cognito-idp:AdminAddUserToGroup", + "cognito-idp:AdminListGroupsForUser" + ], + "timeoutInMinutes": 2 + }, + "delete": { + "permissions": [ + "cognito-idp:AdminRemoveUserFromGroup", + "cognito-idp:AdminListGroupsForUser" + ], + "timeoutInMinutes": 2 + }, + "read": { + "permissions": [ + "cognito-idp:AdminListGroupsForUser" + ] + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_Connect_PhoneNumber.json b/internal/service/cloudformation/schemas/AWS_Connect_PhoneNumber.json index 83838dbab4..9ede50e474 100644 --- a/internal/service/cloudformation/schemas/AWS_Connect_PhoneNumber.json +++ b/internal/service/cloudformation/schemas/AWS_Connect_PhoneNumber.json @@ -110,6 +110,7 @@ "update": { "permissions": [ "connect:UpdatePhoneNumber", + "connect:UpdatePhoneNumberMetadata", "connect:DescribePhoneNumber", "connect:TagResource", "connect:UntagResource" @@ -130,7 +131,6 @@ "createOnlyProperties": [ "/properties/Type", "/properties/CountryCode", - "/properties/Prefix", - "/properties/Description" + "/properties/Prefix" ] } diff --git a/internal/service/cloudformation/schemas/AWS_ControlTower_EnabledControl.json b/internal/service/cloudformation/schemas/AWS_ControlTower_EnabledControl.json index a3167b2fbe..edcd065930 100644 --- a/internal/service/cloudformation/schemas/AWS_ControlTower_EnabledControl.json +++ b/internal/service/cloudformation/schemas/AWS_ControlTower_EnabledControl.json @@ -1,32 +1,23 @@ { - "typeName": "AWS::ControlTower::EnabledControl", - "description": "Enables a control on a specified target.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-controltower", - "properties": { - "ControlIdentifier": { - "description": "Arn of the control.", - "type": "string", - "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", - "minLength": 20, - "maxLength": 2048 - }, - "TargetIdentifier": { - "description": "Arn for Organizational unit to which the control needs to be applied", - "type": "string", - "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", - "minLength": 20, - "maxLength": 2048 - } + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false }, - "required": [ - "TargetIdentifier", - "ControlIdentifier" - ], "handlers": { + "read": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl" + ] + }, "create": { "permissions": [ "controltower:ListEnabledControls", "controltower:GetControlOperation", + "controltower:GetEnabledControl", "controltower:EnableControl", "organizations:UpdatePolicy", "organizations:CreatePolicy", @@ -37,18 +28,10 @@ "organizations:DescribePolicy" ] }, - "delete": { - "permissions": [ - "controltower:GetControlOperation", - "controltower:DisableControl" - ] - }, - "read": { + "list": { "permissions": [ "controltower:ListEnabledControls" - ] - }, - "list": { + ], "handlerSchema": { "properties": { "TargetIdentifier": { @@ -58,25 +41,45 @@ "required": [ "TargetIdentifier" ] - }, + } + }, + "delete": { "permissions": [ - "controltower:ListEnabledControls" + "controltower:GetControlOperation", + "controltower:DisableControl" ] } }, - "additionalProperties": false, - "primaryIdentifier": [ + "typeName": "AWS::ControlTower::EnabledControl", + "description": "Enables a control on a specified target.", + "createOnlyProperties": [ "/properties/TargetIdentifier", "/properties/ControlIdentifier" ], - "createOnlyProperties": [ + "additionalProperties": false, + "primaryIdentifier": [ "/properties/TargetIdentifier", "/properties/ControlIdentifier" ], - "tagging": { - "taggable": false, - "tagOnCreate": false, - "tagUpdatable": false, - "cloudFormationSystemTags": false + "definitions": {}, + "required": [ + "TargetIdentifier", + "ControlIdentifier" + ], + "properties": { + "ControlIdentifier": { + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "description": "Arn of the control.", + "type": "string", + "maxLength": 2048 + }, + "TargetIdentifier": { + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "description": "Arn for Organizational unit to which the control needs to be applied", + "type": "string", + "maxLength": 2048 + } } } diff --git a/internal/service/cloudformation/schemas/AWS_EC2_IPAM.json b/internal/service/cloudformation/schemas/AWS_EC2_IPAM.json index 372607012b..a5d131591a 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_IPAM.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_IPAM.json @@ -1,132 +1,68 @@ { - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", - "tagging": { - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": false - }, - "handlers": { - "read": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "create": { - "permissions": [ - "ec2:CreateIpam", - "iam:CreateServiceLinkedRole", - "ec2:CreateTags", - "ec2:DescribeIpams" - ] - }, - "update": { - "permissions": [ - "ec2:ModifyIpam", - "ec2:CreateTags", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeIpams" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteIpam", - "ec2:DeleteTags", - "ec2:DescribeIpams" - ] - } - }, "typeName": "AWS::EC2::IPAM", - "readOnlyProperties": [ - "/properties/IpamId", - "/properties/Arn", - "/properties/PublicDefaultScopeId", - "/properties/PrivateDefaultScopeId", - "/properties/ScopeCount", - "/properties/ResourceDiscoveryAssociationCount", - "/properties/DefaultResourceDiscoveryId", - "/properties/DefaultResourceDiscoveryAssociationId" - ], "description": "Resource Schema of AWS::EC2::IPAM Type", - "additionalProperties": false, - "primaryIdentifier": [ - "/properties/IpamId" - ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", "definitions": { - "Tag": { - "description": "A key-value pair to associate with a resource.", - "additionalProperties": false, + "IpamOperatingRegion": { + "description": "The regions IPAM is enabled for. Allows pools to be created in these regions, as well as enabling monitoring", "type": "object", "properties": { - "Value": { - "minLength": 0, - "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "type": "string", - "maxLength": 256 - }, - "Key": { - "minLength": 1, - "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "RegionName": { "type": "string", - "maxLength": 128 + "description": "The name of the region." } }, "required": [ - "Key", - "Value" - ] + "RegionName" + ], + "additionalProperties": false }, - "IpamOperatingRegion": { - "description": "The regions IPAM is enabled for. Allows pools to be created in these regions, as well as enabling monitoring", - "additionalProperties": false, + "Tag": { + "description": "A key-value pair to associate with a resource.", "type": "object", "properties": { - "RegionName": { - "description": "The name of the region.", - "type": "string" + "Key": { + "type": "string", + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "minLength": 1, + "maxLength": 128 + }, + "Value": { + "type": "string", + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "minLength": 0, + "maxLength": 256 } }, "required": [ - "RegionName" - ] + "Key", + "Value" + ], + "additionalProperties": false } }, "properties": { - "DefaultResourceDiscoveryAssociationId": { - "description": "The Id of the default association to the default resource discovery, created with this IPAM.", + "IpamId": { + "description": "Id of the IPAM.", "type": "string" }, - "DefaultResourceDiscoveryId": { - "description": "The Id of the default resource discovery, created with this IPAM.", + "Arn": { + "description": "The Amazon Resource Name (ARN) of the IPAM.", "type": "string" }, - "Description": { + "DefaultResourceDiscoveryId": { + "description": "The Id of the default resource discovery, created with this IPAM.", "type": "string" }, - "IpamId": { - "description": "Id of the IPAM.", + "DefaultResourceDiscoveryAssociationId": { + "description": "The Id of the default association to the default resource discovery, created with this IPAM.", "type": "string" }, "ResourceDiscoveryAssociationCount": { "description": "The count of resource discoveries associated with this IPAM.", "type": "integer" }, - "ScopeCount": { - "description": "The number of scopes that currently exist in this IPAM.", - "type": "integer" - }, - "Arn": { - "description": "The Amazon Resource Name (ARN) of the IPAM.", - "type": "string" - }, - "PrivateDefaultScopeId": { - "description": "The Id of the default scope for publicly routable IP space, created with this IPAM.", + "Description": { "type": "string" }, "PublicDefaultScopeId": { @@ -134,24 +70,96 @@ "type": "string", "maxLength": 255 }, - "Tags": { + "PrivateDefaultScopeId": { + "description": "The Id of the default scope for publicly routable IP space, created with this IPAM.", + "type": "string" + }, + "ScopeCount": { + "description": "The number of scopes that currently exist in this IPAM.", + "type": "integer" + }, + "OperatingRegions": { + "description": "The regions IPAM is enabled for. Allows pools to be created in these regions, as well as enabling monitoring", + "type": "array", "uniqueItems": true, - "description": "An array of key-value pairs to apply to this resource.", "insertionOrder": false, - "type": "array", "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/IpamOperatingRegion" } }, - "OperatingRegions": { + "Tier": { + "description": "The tier of the IPAM.", + "type": "string", + "enum": [ + "free", + "advanced" + ] + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "type": "array", "uniqueItems": true, - "description": "The regions IPAM is enabled for. Allows pools to be created in these regions, as well as enabling monitoring", "insertionOrder": false, - "type": "array", "items": { - "$ref": "#/definitions/IpamOperatingRegion" + "$ref": "#/definitions/Tag" } } }, - "required": [] + "additionalProperties": false, + "required": [], + "primaryIdentifier": [ + "/properties/IpamId" + ], + "readOnlyProperties": [ + "/properties/IpamId", + "/properties/Arn", + "/properties/PublicDefaultScopeId", + "/properties/PrivateDefaultScopeId", + "/properties/ScopeCount", + "/properties/ResourceDiscoveryAssociationCount", + "/properties/DefaultResourceDiscoveryId", + "/properties/DefaultResourceDiscoveryAssociationId" + ], + "handlers": { + "create": { + "permissions": [ + "ec2:CreateIpam", + "iam:CreateServiceLinkedRole", + "ec2:CreateTags", + "ec2:DescribeIpams" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeIpams" + ] + }, + "update": { + "permissions": [ + "ec2:ModifyIpam", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeIpams" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteIpam", + "ec2:DeleteTags", + "ec2:DescribeIpams" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeIpams" + ] + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags" + } } diff --git a/internal/service/cloudformation/schemas/AWS_EC2_IPAMPool.json b/internal/service/cloudformation/schemas/AWS_EC2_IPAMPool.json index 399eba2cba..008164e2c4 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_IPAMPool.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_IPAMPool.json @@ -1,7 +1,86 @@ { + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": false + }, "typeName": "AWS::EC2::IPAMPool", + "readOnlyProperties": [ + "/properties/IpamPoolId", + "/properties/Arn", + "/properties/IpamScopeArn", + "/properties/IpamScopeType", + "/properties/IpamArn", + "/properties/PoolDepth", + "/properties/State", + "/properties/StateMessage" + ], "description": "Resource Schema of AWS::EC2::IPAMPool Type", + "createOnlyProperties": [ + "/properties/IpamScopeId", + "/properties/SourceIpamPoolId", + "/properties/Locale", + "/properties/AddressFamily", + "/properties/PubliclyAdvertisable", + "/properties/PublicIpSource", + "/properties/AwsService" + ], + "primaryIdentifier": [ + "/properties/IpamPoolId" + ], + "required": [ + "IpamScopeId", + "AddressFamily" + ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git", + "propertyTransform": { + "/properties/AddressFamily": "$lowercase(AddressFamily)" + }, + "handlers": { + "read": { + "permissions": [ + "ec2:DescribeIpamPools", + "ec2:GetIpamPoolCidrs" + ] + }, + "create": { + "permissions": [ + "ec2:CreateIpamPool", + "ec2:DescribeIpamPools", + "ec2:ProvisionIpamPoolCidr", + "ec2:GetIpamPoolCidrs", + "ec2:CreateTags" + ] + }, + "update": { + "permissions": [ + "ec2:ModifyIpamPool", + "ec2:DescribeIpamPools", + "ec2:GetIpamPoolCidrs", + "ec2:ProvisionIpamPoolCidr", + "ec2:DeprovisionIpamPoolCidr", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeIpamPools" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteIpamPool", + "ec2:DescribeIpamPools", + "ec2:GetIpamPoolCidrs", + "ec2:DeprovisionIpamPoolCidr", + "ec2:DeleteTags" + ] + } + }, + "additionalProperties": false, "definitions": { "Cidr": { "description": "Represents a single IPv4 or IPv6 CIDR", @@ -9,6 +88,7 @@ }, "ProvisionedCidr": { "description": "An address space to be inserted into this pool. All allocations must be made from this address space.", + "additionalProperties": false, "type": "object", "properties": { "Cidr": { @@ -17,71 +97,33 @@ }, "required": [ "Cidr" - ], - "additionalProperties": false + ] }, "Tag": { "description": "A key-value pair to associate with a resource.", + "additionalProperties": false, "type": "object", "properties": { - "Key": { - "type": "string", - "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "minLength": 1, - "maxLength": 128 - }, "Value": { - "type": "string", - "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", "minLength": 0, + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "type": "string", "maxLength": 256 + }, + "Key": { + "minLength": 1, + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "type": "string", + "maxLength": 128 } }, "required": [ "Key", "Value" - ], - "additionalProperties": false + ] } }, "properties": { - "IpamPoolId": { - "description": "Id of the IPAM Pool.", - "type": "string" - }, - "AddressFamily": { - "description": "The address family of the address space in this pool. Either IPv4 or IPv6.", - "type": "string" - }, - "AllocationMinNetmaskLength": { - "description": "The minimum allowed netmask length for allocations made from this pool.", - "type": "integer" - }, - "AllocationDefaultNetmaskLength": { - "description": "The default netmask length for allocations made from this pool. This value is used when the netmask length of an allocation isn't specified.", - "type": "integer" - }, - "AllocationMaxNetmaskLength": { - "description": "The maximum allowed netmask length for allocations made from this pool.", - "type": "integer" - }, - "AllocationResourceTags": { - "description": "When specified, an allocation will not be allowed unless a resource has a matching set of tags.", - "type": "array", - "uniqueItems": true, - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - } - }, - "Arn": { - "description": "The Amazon Resource Name (ARN) of the IPAM Pool.", - "type": "string" - }, - "AutoImport": { - "description": "Determines what to do if IPAM discovers resources that haven't been assigned an allocation. If set to true, an allocation will be made automatically.", - "type": "boolean" - }, "AwsService": { "description": "Limits which service in Amazon Web Services that the pool can be used in.", "type": "string", @@ -89,11 +131,31 @@ "ec2" ] }, + "Locale": { + "description": "The region of this pool. If not set, this will default to \"None\" which will disable non-custom allocations. If the locale has been specified for the source pool, this value must match.", + "type": "string" + }, + "PublicIpSource": { + "description": "The IP address source for pools in the public scope. Only used for provisioning IP address CIDRs to pools in the public scope. Default is `byoip`.", + "type": "string", + "enum": [ + "byoip", + "amazon" + ] + }, "Description": { "type": "string" }, - "IpamScopeId": { - "description": "The Id of the scope this pool is a part of.", + "IpamPoolId": { + "description": "Id of the IPAM Pool.", + "type": "string" + }, + "IpamArn": { + "description": "The Amazon Resource Name (ARN) of the IPAM this pool is a part of.", + "type": "string" + }, + "SourceIpamPoolId": { + "description": "The Id of this pool's source. If set, all space provisioned in this pool must be free space provisioned in the parent pool.", "type": "string" }, "IpamScopeArn": { @@ -108,42 +170,30 @@ "private" ] }, - "IpamArn": { - "description": "The Amazon Resource Name (ARN) of the IPAM this pool is a part of.", - "type": "string" + "AllocationMinNetmaskLength": { + "description": "The minimum allowed netmask length for allocations made from this pool.", + "type": "integer" }, - "Locale": { - "description": "The region of this pool. If not set, this will default to \"None\" which will disable non-custom allocations. If the locale has been specified for the source pool, this value must match.", + "IpamScopeId": { + "description": "The Id of the scope this pool is a part of.", "type": "string" }, - "PoolDepth": { - "description": "The depth of this pool in the source pool hierarchy.", - "type": "integer" - }, "ProvisionedCidrs": { - "description": "A list of cidrs representing the address space available for allocation in this pool.", - "type": "array", "uniqueItems": true, + "description": "A list of cidrs representing the address space available for allocation in this pool.", "insertionOrder": false, + "type": "array", "items": { "$ref": "#/definitions/ProvisionedCidr" } }, - "PublicIpSource": { - "description": "The IP address source for pools in the public scope. Only used for provisioning IP address CIDRs to pools in the public scope. Default is `byoip`.", - "type": "string", - "enum": [ - "byoip", - "amazon" - ] - }, - "PubliclyAdvertisable": { - "description": "Determines whether or not address space from this pool is publicly advertised. Must be set if and only if the pool is IPv6.", - "type": "boolean" + "AllocationMaxNetmaskLength": { + "description": "The maximum allowed netmask length for allocations made from this pool.", + "type": "integer" }, - "SourceIpamPoolId": { - "description": "The Id of this pool's source. If set, all space provisioned in this pool must be free space provisioned in the parent pool.", - "type": "string" + "PoolDepth": { + "description": "The depth of this pool in the source pool hierarchy.", + "type": "integer" }, "State": { "description": "The state of this pool. This can be one of the following values: \"create-in-progress\", \"create-complete\", \"modify-in-progress\", \"modify-complete\", \"delete-in-progress\", or \"delete-complete\"", @@ -157,97 +207,47 @@ "delete-complete" ] }, + "AllocationDefaultNetmaskLength": { + "description": "The default netmask length for allocations made from this pool. This value is used when the netmask length of an allocation isn't specified.", + "type": "integer" + }, + "AutoImport": { + "description": "Determines what to do if IPAM discovers resources that haven't been assigned an allocation. If set to true, an allocation will be made automatically.", + "type": "boolean" + }, + "AddressFamily": { + "description": "The address family of the address space in this pool. Either IPv4 or IPv6.", + "type": "string" + }, + "Arn": { + "description": "The Amazon Resource Name (ARN) of the IPAM Pool.", + "type": "string" + }, "StateMessage": { "description": "An explanation of how the pool arrived at it current state.", "type": "string" }, - "Tags": { - "description": "An array of key-value pairs to apply to this resource.", - "type": "array", + "AllocationResourceTags": { "uniqueItems": true, + "description": "When specified, an allocation will not be allowed unless a resource has a matching set of tags.", "insertionOrder": false, + "type": "array", "items": { "$ref": "#/definitions/Tag" } - } - }, - "additionalProperties": false, - "propertyTransform": { - "/properties/AddressFamily": "$lowercase(AddressFamily)" - }, - "required": [ - "IpamScopeId", - "AddressFamily" - ], - "primaryIdentifier": [ - "/properties/IpamPoolId" - ], - "readOnlyProperties": [ - "/properties/IpamPoolId", - "/properties/Arn", - "/properties/IpamScopeArn", - "/properties/IpamScopeType", - "/properties/IpamArn", - "/properties/PoolDepth", - "/properties/State", - "/properties/StateMessage" - ], - "createOnlyProperties": [ - "/properties/IpamScopeId", - "/properties/SourceIpamPoolId", - "/properties/Locale", - "/properties/AddressFamily", - "/properties/PubliclyAdvertisable", - "/properties/PublicIpSource", - "/properties/AwsService" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:CreateIpamPool", - "ec2:DescribeIpamPools", - "ec2:ProvisionIpamPoolCidr", - "ec2:GetIpamPoolCidrs", - "ec2:CreateTags" - ] }, - "read": { - "permissions": [ - "ec2:DescribeIpamPools", - "ec2:GetIpamPoolCidrs" - ] - }, - "update": { - "permissions": [ - "ec2:ModifyIpamPool", - "ec2:DescribeIpamPools", - "ec2:GetIpamPoolCidrs", - "ec2:ProvisionIpamPoolCidr", - "ec2:DeprovisionIpamPoolCidr", - "ec2:CreateTags", - "ec2:DeleteTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteIpamPool", - "ec2:DescribeIpamPools", - "ec2:GetIpamPoolCidrs", - "ec2:DeprovisionIpamPoolCidr", - "ec2:DeleteTags" - ] + "PubliclyAdvertisable": { + "description": "Determines whether or not address space from this pool is publicly advertised. Must be set if and only if the pool is IPv6.", + "type": "boolean" }, - "list": { - "permissions": [ - "ec2:DescribeIpamPools" - ] + "Tags": { + "uniqueItems": true, + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + } } - }, - "tagging": { - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" } } diff --git a/internal/service/cloudformation/schemas/AWS_EC2_Route.json b/internal/service/cloudformation/schemas/AWS_EC2_Route.json index fa3e180324..3b42bc6252 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_Route.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_Route.json @@ -88,7 +88,8 @@ "create": { "permissions": [ "ec2:CreateRoute", - "ec2:DescribeRouteTables" + "ec2:DescribeRouteTables", + "ec2:DescribeNetworkInterfaces" ] }, "read": { @@ -99,7 +100,8 @@ "update": { "permissions": [ "ec2:ReplaceRoute", - "ec2:DescribeRouteTables" + "ec2:DescribeRouteTables", + "ec2:DescribeNetworkInterfaces" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_EC2_Subnet.json b/internal/service/cloudformation/schemas/AWS_EC2_Subnet.json index 806f82f3ed..d3f3f7c4ba 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_Subnet.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_Subnet.json @@ -1,102 +1,18 @@ { - "typeName": "AWS::EC2::Subnet", - "description": "Resource Type definition for AWS::EC2::Subnet", - "additionalProperties": false, - "properties": { - "AssignIpv6AddressOnCreation": { - "type": "boolean" - }, - "VpcId": { - "type": "string" - }, - "MapPublicIpOnLaunch": { - "type": "boolean" - }, - "NetworkAclAssociationId": { - "type": "string" - }, - "AvailabilityZone": { - "type": "string" - }, - "AvailabilityZoneId": { - "type": "string" - }, - "CidrBlock": { - "type": "string" - }, - "SubnetId": { - "type": "string" - }, - "Ipv6CidrBlocks": { - "type": "array", - "uniqueItems": false, - "items": { - "type": "string" - } - }, - "Ipv6CidrBlock": { - "type": "string" - }, - "OutpostArn": { - "type": "string" - }, - "Ipv6Native": { - "type": "boolean" - }, - "EnableDns64": { - "type": "boolean" - }, - "PrivateDnsNameOptionsOnLaunch": { - "type": "object", - "additionalProperties": false, - "properties": { - "HostnameType": { - "type": "string" - }, - "EnableResourceNameDnsARecord": { - "type": "boolean" - }, - "EnableResourceNameDnsAAAARecord": { - "type": "boolean" - } - } - }, - "Tags": { - "type": "array", - "uniqueItems": false, - "items": { - "$ref": "#/definitions/Tag" - } - } - }, "tagging": { "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" - }, - "definitions": { - "Tag": { - "type": "object", - "additionalProperties": false, - "properties": { - "Value": { - "type": "string" - }, - "Key": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ] - } + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true }, - "required": [ - "VpcId" + "typeName": "AWS::EC2::Subnet", + "readOnlyProperties": [ + "/properties/NetworkAclAssociationId", + "/properties/SubnetId", + "/properties/Ipv6CidrBlocks" ], + "description": "Resource Type definition for AWS::EC2::Subnet", "createOnlyProperties": [ "/properties/VpcId", "/properties/AvailabilityZone", @@ -105,30 +21,28 @@ "/properties/OutpostArn", "/properties/Ipv6Native" ], - "conditionalCreateOnlyProperties": [ - "/properties/Ipv6CidrBlock" - ], "primaryIdentifier": [ "/properties/SubnetId" ], - "readOnlyProperties": [ - "/properties/NetworkAclAssociationId", - "/properties/SubnetId", - "/properties/Ipv6CidrBlocks" + "required": [ + "VpcId" + ], + "conditionalCreateOnlyProperties": [ + "/properties/Ipv6CidrBlock" ], "handlers": { - "create": { + "read": { "permissions": [ "ec2:DescribeSubnets", - "ec2:CreateSubnet", - "ec2:CreateTags", - "ec2:ModifySubnetAttribute" + "ec2:DescribeNetworkAcls" ] }, - "read": { + "create": { "permissions": [ "ec2:DescribeSubnets", - "ec2:DescribeNetworkAcls" + "ec2:CreateSubnet", + "ec2:CreateTags", + "ec2:ModifySubnetAttribute" ] }, "update": { @@ -141,17 +55,111 @@ "ec2:DisassociateSubnetCidrBlock" ] }, - "delete": { + "list": { "permissions": [ "ec2:DescribeSubnets", - "ec2:DeleteSubnet" + "ec2:DescribeNetworkAcls" ] }, - "list": { + "delete": { "permissions": [ "ec2:DescribeSubnets", - "ec2:DescribeNetworkAcls" + "ec2:DeleteSubnet" + ] + } + }, + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "type": "string" + }, + "Key": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" ] } + }, + "properties": { + "MapPublicIpOnLaunch": { + "type": "boolean" + }, + "EnableDns64": { + "type": "boolean" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "OutpostArn": { + "type": "string" + }, + "AvailabilityZone": { + "type": "string" + }, + "CidrBlock": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "Ipv6NetmaskLength": { + "description": "The netmask length of the IPv6 CIDR you want to allocate to this subnet from an Amazon VPC IP Address Manager (IPAM) pool", + "type": "integer" + }, + "AssignIpv6AddressOnCreation": { + "type": "boolean" + }, + "VpcId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "description": "The netmask length of the IPv4 CIDR you want to allocate to this subnet from an Amazon VPC IP Address Manager (IPAM) pool", + "type": "integer" + }, + "NetworkAclAssociationId": { + "type": "string" + }, + "PrivateDnsNameOptionsOnLaunch": { + "additionalProperties": false, + "type": "object", + "properties": { + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + }, + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + } + } + }, + "Ipv6Native": { + "type": "boolean" + }, + "Ipv6CidrBlocks": { + "uniqueItems": false, + "type": "array", + "items": { + "type": "string" + } + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Tags": { + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + } + } } } diff --git a/internal/service/cloudformation/schemas/AWS_EC2_VPCGatewayAttachment.json b/internal/service/cloudformation/schemas/AWS_EC2_VPCGatewayAttachment.json new file mode 100644 index 0000000000..2c3076e7b1 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_EC2_VPCGatewayAttachment.json @@ -0,0 +1,84 @@ +{ + "typeName": "AWS::EC2::VPCGatewayAttachment", + "description": "Resource Type definition for AWS::EC2::VPCGatewayAttachment", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2-vpc-gateway-attachment.git", + "additionalProperties": false, + "properties": { + "AttachmentType": { + "type": "string", + "description": "Used to identify if this resource is an Internet Gateway or Vpn Gateway Attachment " + }, + "InternetGatewayId": { + "type": "string", + "description": "The ID of the internet gateway. You must specify either InternetGatewayId or VpnGatewayId, but not both." + }, + "VpcId": { + "type": "string", + "description": "The ID of the VPC." + }, + "VpnGatewayId": { + "type": "string", + "description": "The ID of the virtual private gateway. You must specify either InternetGatewayId or VpnGatewayId, but not both." + } + }, + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, + "required": [ + "VpcId" + ], + "createOnlyProperties": [ + "/properties/VpcId" + ], + "readOnlyProperties": [ + "/properties/AttachmentType" + ], + "primaryIdentifier": [ + "/properties/AttachmentType", + "/properties/VpcId" + ], + "replacementStrategy": "delete_then_create", + "handlers": { + "create": { + "permissions": [ + "ec2:AttachInternetGateway", + "ec2:AttachVpnGateway", + "ec2:DescribeInternetGateways", + "ec2:DescribeVpnGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeInternetGateways", + "ec2:DescribeVpnGateways" + ] + }, + "update": { + "permissions": [ + "ec2:AttachInternetGateway", + "ec2:AttachVpnGateway", + "ec2:DetachInternetGateway", + "ec2:DetachVpnGateway", + "ec2:DescribeInternetGateways", + "ec2:DescribeVpnGateways" + ] + }, + "delete": { + "permissions": [ + "ec2:DetachInternetGateway", + "ec2:DetachVpnGateway", + "ec2:DescribeInternetGateways", + "ec2:DescribeVpnGateways" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInternetGateways", + "ec2:DescribeVpnGateways" + ] + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_ECS_CapacityProvider.json b/internal/service/cloudformation/schemas/AWS_ECS_CapacityProvider.json index 1f53fe571e..6929d575ac 100644 --- a/internal/service/cloudformation/schemas/AWS_ECS_CapacityProvider.json +++ b/internal/service/cloudformation/schemas/AWS_ECS_CapacityProvider.json @@ -88,7 +88,7 @@ "/properties/Name" ], "propertyTransform": { - "/properties/AutoScalingGroupProvider/AutoScalingGroupArn": "$split(AutoScalingGroupProvider.AutoScalingGroupArn, \"autoScalingGroupName\/\")[-1]" + "/properties/AutoScalingGroupProvider/AutoScalingGroupArn": "$split(AutoScalingGroupProvider.AutoScalingGroupArn, \"autoScalingGroupName\/\")[-1] $OR $split(AutoScalingGroupArn, \"autoScalingGroupName\/\")[-1]" }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_ECS_Cluster.json b/internal/service/cloudformation/schemas/AWS_ECS_Cluster.json index 71a1c4127b..f66764563c 100644 --- a/internal/service/cloudformation/schemas/AWS_ECS_Cluster.json +++ b/internal/service/cloudformation/schemas/AWS_ECS_Cluster.json @@ -1,199 +1,203 @@ { + "tagging": { + "taggable": true + }, + "handlers": { + "read": { + "permissions": [ + "ecs:DescribeClusters" + ] + }, + "create": { + "permissions": [ + "ecs:CreateCluster", + "ecs:DescribeClusters", + "iam:CreateServiceLinkedRole", + "ecs:TagResource" + ] + }, + "update": { + "permissions": [ + "ecs:PutAccountSettingDefault", + "ecs:DescribeClusters", + "ecs:TagResource", + "ecs:UntagResource", + "ecs:PutAccountSetting", + "ecs:ListTagsForResource", + "ecs:UpdateCluster", + "ecs:UpdateClusterSettings", + "ecs:PutClusterCapacityProviders" + ] + }, + "list": { + "permissions": [ + "ecs:DescribeClusters", + "ecs:ListClusters" + ] + }, + "delete": { + "permissions": [ + "ecs:DeleteCluster", + "ecs:DescribeClusters" + ] + } + }, "typeName": "AWS::ECS::Cluster", + "readOnlyProperties": [ + "/properties/Arn" + ], "description": "Create an Elastic Container Service (ECS) cluster.", + "writeOnlyProperties": [ + "/properties/ServiceConnectDefaults" + ], + "createOnlyProperties": [ + "/properties/ClusterName" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/ClusterName" + ], "definitions": { - "Tag": { - "description": "The metadata that you apply to the cluster to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.", + "CapacityProviderStrategyItem": { + "description": "A capacity provider strategy consists of one or more capacity providers along with the `base` and `weight` to assign to them. A capacity provider must be associated with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster. Only capacity providers with an `ACTIVE` or `UPDATING` status can be used.", + "additionalProperties": false, "type": "object", "properties": { - "Key": { + "CapacityProvider": { "type": "string" }, - "Value": { - "type": "string" + "Weight": { + "type": "integer" + }, + "Base": { + "type": "integer" } - }, - "additionalProperties": false + } }, - "ClusterSettings": { - "description": "The setting to use when creating a cluster. This parameter is used to enable CloudWatch Container Insights for a cluster. If this value is specified, it will override the containerInsights value set with PutAccountSetting or PutAccountSettingDefault.", + "ExecuteCommandLogConfiguration": { + "description": "The session logging configuration for ExecuteCommand.", + "additionalProperties": false, "type": "object", "properties": { - "Name": { + "S3EncryptionEnabled": { + "type": "boolean" + }, + "CloudWatchEncryptionEnabled": { + "type": "boolean" + }, + "CloudWatchLogGroupName": { "type": "string" }, - "Value": { + "S3KeyPrefix": { + "type": "string" + }, + "S3BucketName": { "type": "string" } - }, - "additionalProperties": false + } }, - "ClusterConfiguration": { - "description": "The configurations to be set at cluster level.", + "ClusterSettings": { + "description": "The setting to use when creating a cluster. This parameter is used to enable CloudWatch Container Insights for a cluster. If this value is specified, it will override the containerInsights value set with PutAccountSetting or PutAccountSettingDefault.", + "additionalProperties": false, "type": "object", "properties": { - "ExecuteCommandConfiguration": { - "$ref": "#/definitions/ExecuteCommandConfiguration" + "Value": { + "type": "string" + }, + "Name": { + "type": "string" } - }, - "additionalProperties": false + } }, - "ExecuteCommandConfiguration": { - "description": "The configuration for ExecuteCommand.", + "ServiceConnectDefaults": { + "description": "Service Connect Configuration default for all services or tasks within this cluster", + "additionalProperties": false, "type": "object", "properties": { - "KmsKeyId": { - "type": "string" - }, - "Logging": { + "Namespace": { + "description": "Service Connect Namespace Name or ARN default for all services or tasks within this cluster", "type": "string" - }, - "LogConfiguration": { - "$ref": "#/definitions/ExecuteCommandLogConfiguration" } - }, - "additionalProperties": false + } }, - "ExecuteCommandLogConfiguration": { - "description": "The session logging configuration for ExecuteCommand.", + "Tag": { + "description": "The metadata that you apply to the cluster to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.", + "additionalProperties": false, "type": "object", "properties": { - "CloudWatchLogGroupName": { - "type": "string" - }, - "CloudWatchEncryptionEnabled": { - "type": "boolean" - }, - "S3BucketName": { + "Value": { "type": "string" }, - "S3EncryptionEnabled": { - "type": "boolean" - }, - "S3KeyPrefix": { + "Key": { "type": "string" } - }, - "additionalProperties": false + } }, - "ServiceConnectDefaults": { - "description": "Service Connect Configuration default for all services or tasks within this cluster", + "ClusterConfiguration": { + "description": "The configurations to be set at cluster level.", + "additionalProperties": false, "type": "object", "properties": { - "Namespace": { - "description": "Service Connect Namespace Name or ARN default for all services or tasks within this cluster", - "type": "string" + "ExecuteCommandConfiguration": { + "$ref": "#/definitions/ExecuteCommandConfiguration" } - }, - "additionalProperties": false + } }, - "CapacityProviderStrategyItem": { - "description": "A capacity provider strategy consists of one or more capacity providers along with the `base` and `weight` to assign to them. A capacity provider must be associated with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster. Only capacity providers with an `ACTIVE` or `UPDATING` status can be used.", + "ExecuteCommandConfiguration": { + "description": "The configuration for ExecuteCommand.", + "additionalProperties": false, "type": "object", "properties": { - "CapacityProvider": { + "Logging": { "type": "string" }, - "Weight": { - "type": "integer" + "KmsKeyId": { + "type": "string" }, - "Base": { - "type": "integer" + "LogConfiguration": { + "$ref": "#/definitions/ExecuteCommandLogConfiguration" } - }, - "additionalProperties": false + } } }, "properties": { - "Tags": { + "ClusterSettings": { "type": "array", "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/ClusterSettings" } }, - "ClusterName": { - "description": "A user-generated string that you use to identify your cluster. If you don't specify a name, AWS CloudFormation generates a unique physical ID for the name.", - "type": "string" - }, - "ClusterSettings": { + "DefaultCapacityProviderStrategy": { "type": "array", "items": { - "$ref": "#/definitions/ClusterSettings" + "$ref": "#/definitions/CapacityProviderStrategyItem" } }, "Configuration": { "$ref": "#/definitions/ClusterConfiguration" }, + "ServiceConnectDefaults": { + "$ref": "#/definitions/ServiceConnectDefaults" + }, "CapacityProviders": { "type": "array", "items": { "type": "string" } }, - "DefaultCapacityProviderStrategy": { - "type": "array", - "items": { - "$ref": "#/definitions/CapacityProviderStrategyItem" - } - }, - "ServiceConnectDefaults": { - "$ref": "#/definitions/ServiceConnectDefaults" + "ClusterName": { + "description": "A user-generated string that you use to identify your cluster. If you don't specify a name, AWS CloudFormation generates a unique physical ID for the name.", + "type": "string" }, "Arn": { "description": "The Amazon Resource Name (ARN) of the Amazon ECS cluster, such as arn:aws:ecs:us-east-2:123456789012:cluster/MyECSCluster.", "type": "string" - } - }, - "primaryIdentifier": [ - "/properties/ClusterName" - ], - "handlers": { - "create": { - "permissions": [ - "ecs:CreateCluster", - "ecs:DescribeClusters", - "iam:CreateServiceLinkedRole" - ] - }, - "read": { - "permissions": [ - "ecs:DescribeClusters" - ] - }, - "update": { - "permissions": [ - "ecs:PutAccountSettingDefault", - "ecs:DescribeClusters", - "ecs:TagResource", - "ecs:UntagResource", - "ecs:PutAccountSetting", - "ecs:ListTagsForResource", - "ecs:UpdateCluster", - "ecs:UpdateClusterSettings", - "ecs:PutClusterCapacityProviders" - ] }, - "delete": { - "permissions": [ - "ecs:DeleteCluster", - "ecs:DescribeClusters" - ] - }, - "list": { - "permissions": [ - "ecs:DescribeClusters", - "ecs:ListClusters" - ] + "Tags": { + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + } } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "createOnlyProperties": [ - "/properties/ClusterName" - ], - "writeOnlyProperties": [ - "/properties/ServiceConnectDefaults" - ], - "additionalProperties": false + } } diff --git a/internal/service/cloudformation/schemas/AWS_ECS_Service.json b/internal/service/cloudformation/schemas/AWS_ECS_Service.json index 7ecb25bd27..5946d8a97b 100644 --- a/internal/service/cloudformation/schemas/AWS_ECS_Service.json +++ b/internal/service/cloudformation/schemas/AWS_ECS_Service.json @@ -267,6 +267,47 @@ "Type" ] }, + "ServiceManagedEBSVolumeConfiguration": { + "type": "object", + "required": [ + "RoleArn" + ], + "properties": { + "SnapshotId": { + "type": "string" + }, + "VolumeType": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "TagSpecifications": { + "type": "array", + "items": { + "$ref": "#/definitions/EBSTagSpecification" + } + }, + "FilesystemType": { + "type": "string" + }, + "Encrypted": { + "type": "boolean" + }, + "Throughput": { + "type": "integer" + }, + "Iops": { + "type": "integer" + }, + "SizeInGiB": { + "type": "integer" + }, + "RoleArn": { + "type": "string" + } + } + }, "ServiceConnectClientAlias": { "additionalProperties": false, "type": "object", @@ -355,6 +396,30 @@ } } }, + "EBSTagSpecification": { + "type": "object", + "required": [ + "ResourceType" + ], + "properties": { + "PropagateTags": { + "type": "string", + "enum": [ + "SERVICE", + "TASK_DEFINITION" + ] + }, + "ResourceType": { + "type": "string" + }, + "Tags": { + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + } + } + } + }, "ServiceConnectService": { "additionalProperties": false, "type": "object", @@ -385,21 +450,6 @@ "default": "LATEST", "type": "string" }, - "HealthCheckGracePeriodSeconds": { - "type": "integer" - }, - "EnableECSManagedTags": { - "type": "boolean" - }, - "EnableExecuteCommand": { - "type": "boolean" - }, - "PlacementConstraints": { - "type": "array", - "items": { - "$ref": "#/definitions/PlacementConstraint" - } - }, "PropagateTags": { "type": "string", "enum": [ @@ -407,33 +457,15 @@ "TASK_DEFINITION" ] }, - "Cluster": { - "type": "string" - }, - "LoadBalancers": { - "type": "array", - "items": { - "$ref": "#/definitions/LoadBalancer" - } - }, - "ServiceConnectConfiguration": { - "$ref": "#/definitions/ServiceConnectConfiguration" - }, "ServiceArn": { "type": "string" }, - "DesiredCount": { - "type": "integer" - }, "PlacementStrategies": { "type": "array", "items": { "$ref": "#/definitions/PlacementStrategy" } }, - "DeploymentController": { - "$ref": "#/definitions/DeploymentController" - }, "ServiceRegistries": { "type": "array", "items": { @@ -457,9 +489,6 @@ "Name": { "type": "string" }, - "Role": { - "type": "string" - }, "SchedulingStrategy": { "type": "string", "enum": [ @@ -467,23 +496,59 @@ "REPLICA" ] }, - "TaskDefinition": { - "type": "string" - }, - "ServiceName": { - "type": "string" - }, "NetworkConfiguration": { "$ref": "#/definitions/NetworkConfiguration" }, - "DeploymentConfiguration": { - "$ref": "#/definitions/DeploymentConfiguration" - }, "Tags": { "type": "array", "items": { "$ref": "#/definitions/Tag" } + }, + "HealthCheckGracePeriodSeconds": { + "type": "integer" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "PlacementConstraints": { + "type": "array", + "items": { + "$ref": "#/definitions/PlacementConstraint" + } + }, + "Cluster": { + "type": "string" + }, + "LoadBalancers": { + "type": "array", + "items": { + "$ref": "#/definitions/LoadBalancer" + } + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/ServiceConnectConfiguration" + }, + "DesiredCount": { + "type": "integer" + }, + "DeploymentController": { + "$ref": "#/definitions/DeploymentController" + }, + "Role": { + "type": "string" + }, + "TaskDefinition": { + "type": "string" + }, + "ServiceName": { + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration" } } } diff --git a/internal/service/cloudformation/schemas/AWS_ECS_TaskDefinition.json b/internal/service/cloudformation/schemas/AWS_ECS_TaskDefinition.json index 047826c8cb..73435281f8 100644 --- a/internal/service/cloudformation/schemas/AWS_ECS_TaskDefinition.json +++ b/internal/service/cloudformation/schemas/AWS_ECS_TaskDefinition.json @@ -1,790 +1,846 @@ { + "sourceUrl": "https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html", + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true + }, + "propertyTransform": { + "/properties/TaskRoleArn": "TaskRoleArn $OR $split(TaskRoleArn, \"role/\")[-1]" + }, + "handlers": { + "read": { + "permissions": [ + "ecs:DescribeTaskDefinition" + ] + }, + "create": { + "permissions": [ + "ecs:RegisterTaskDefinition", + "ecs:DescribeTaskDefinition", + "ecs:TagResource", + "iam:GetRole", + "iam:PassRole" + ] + }, + "update": { + "permissions": [ + "ecs:TagResource", + "ecs:UntagResource", + "ecs:ListTagsForResource", + "ecs:DescribeTaskDefinition", + "iam:GetRole", + "iam:PassRole" + ] + }, + "list": { + "permissions": [ + "ecs:ListTaskDefinitions", + "ecs:DescribeTaskDefinition" + ] + }, + "delete": { + "permissions": [ + "ecs:DeregisterTaskDefinition", + "ecs:DescribeTaskDefinition", + "iam:GetRole", + "iam:PassRole" + ] + } + }, "typeName": "AWS::ECS::TaskDefinition", + "readOnlyProperties": [ + "/properties/TaskDefinitionArn" + ], "description": "Resource Schema describing various properties for ECS TaskDefinition", - "sourceUrl": "https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html", + "createOnlyProperties": [ + "/properties/Family", + "/properties/ContainerDefinitions", + "/properties/Cpu", + "/properties/ExecutionRoleArn", + "/properties/InferenceAccelerators", + "/properties/Memory", + "/properties/NetworkMode", + "/properties/PlacementConstraints", + "/properties/ProxyConfiguration", + "/properties/RequiresCompatibilities", + "/properties/RuntimePlatform", + "/properties/TaskRoleArn", + "/properties/Volumes", + "/properties/PidMode", + "/properties/IpcMode", + "/properties/EphemeralStorage" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/TaskDefinitionArn" + ], "definitions": { + "VolumeFrom": { + "additionalProperties": false, + "type": "object", + "properties": { + "ReadOnly": { + "type": "boolean" + }, + "SourceContainer": { + "type": "string" + } + } + }, + "ContainerDependency": { + "additionalProperties": false, + "type": "object", + "properties": { + "Condition": { + "type": "string" + }, + "ContainerName": { + "type": "string" + } + } + }, + "HealthCheck": { + "description": "The health check command and associated configuration parameters for the container.", + "additionalProperties": false, + "type": "object", + "properties": { + "Command": { + "description": "A string array representing the command that the container runs to determine if it is healthy.", + "insertionOrder": true, + "type": "array", + "items": { + "type": "string" + } + }, + "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 seconds.", + "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 three retries.", + "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.", + "type": "integer" + }, + "StartPeriod": { + "description": "The optional grace period within which to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You may specify between 0 and 300 seconds. The startPeriod is disabled by default.", + "type": "integer" + } + } + }, + "HostEntry": { + "additionalProperties": false, + "type": "object", + "properties": { + "Hostname": { + "type": "string" + }, + "IpAddress": { + "type": "string" + } + } + }, "ContainerDefinition": { "description": "List of container definitions that are passed to the Docker daemon on a container instance", + "additionalProperties": false, "type": "object", "required": [ "Name", "Image" ], "properties": { - "Command": { + "User": { + "type": "string" + }, + "Secrets": { + "insertionOrder": false, "type": "array", - "insertionOrder": true, "items": { - "type": "string" + "$ref": "#/definitions/Secret" } }, - "Cpu": { + "Memory": { + "description": "The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed.", "type": "integer" }, - "DependsOn": { - "type": "array", + "Privileged": { + "type": "boolean" + }, + "HealthCheck": { + "$ref": "#/definitions/HealthCheck" + }, + "StartTimeout": { + "type": "integer" + }, + "VolumesFrom": { + "uniqueItems": true, "insertionOrder": false, + "type": "array", "items": { - "$ref": "#/definitions/ContainerDependency" + "$ref": "#/definitions/VolumeFrom" } }, - "DisableNetworking": { - "type": "boolean" + "Cpu": { + "type": "integer" }, - "DnsSearchDomains": { + "EntryPoint": { + "insertionOrder": true, "type": "array", - "insertionOrder": false, "items": { "type": "string" } }, "DnsServers": { - "type": "array", "insertionOrder": false, + "type": "array", "items": { "type": "string" } }, - "DockerLabels": { - "type": "object", - "patternProperties": { - "": { - "type": "string" - } - }, - "additionalProperties": false + "ReadonlyRootFilesystem": { + "type": "boolean" }, - "DockerSecurityOptions": { - "type": "array", - "insertionOrder": false, - "items": { - "type": "string" - } + "Image": { + "description": "The image used to start a container. This string is passed directly to the Docker daemon.", + "type": "string" }, - "EntryPoint": { - "type": "array", - "insertionOrder": true, - "items": { - "type": "string" - } + "Essential": { + "type": "boolean" }, - "Environment": { - "description": "The environment variables to pass to a container", - "type": "array", + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "ResourceRequirements": { "insertionOrder": false, - "uniqueItems": true, + "type": "array", "items": { - "$ref": "#/definitions/KeyValuePair" + "$ref": "#/definitions/ResourceRequirement" } }, "EnvironmentFiles": { "description": "The list of one or more files that contain the environment variables to pass to a container", - "type": "array", "insertionOrder": true, + "type": "array", "items": { "$ref": "#/definitions/EnvironmentFile" } }, - "Essential": { - "type": "boolean" - }, - "ExtraHosts": { - "type": "array", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/HostEntry" - } + "Name": { + "description": "The name of a container. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed", + "type": "string" }, "FirelensConfiguration": { "$ref": "#/definitions/FirelensConfiguration" }, - "HealthCheck": { - "$ref": "#/definitions/HealthCheck" + "DockerSecurityOptions": { + "insertionOrder": false, + "type": "array", + "items": { + "type": "string" + } }, - "Hostname": { - "type": "string" + "SystemControls": { + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/SystemControl" + } }, - "Image": { - "description": "The image used to start a container. This string is passed directly to the Docker daemon.", - "type": "string" + "Interactive": { + "type": "boolean" }, - "Links": { - "type": "array", + "DnsSearchDomains": { "insertionOrder": false, - "uniqueItems": true, + "type": "array", "items": { "type": "string" } }, - "LinuxParameters": { - "$ref": "#/definitions/LinuxParameters" - }, - "LogConfiguration": { - "$ref": "#/definitions/LogConfiguration" + "Ulimits": { + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Ulimit" + } }, - "Memory": { - "description": "The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed.", + "StopTimeout": { "type": "integer" }, + "WorkingDirectory": { + "type": "string" + }, "MemoryReservation": { "type": "integer" }, - "MountPoints": { + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" + }, + "ExtraHosts": { + "insertionOrder": false, "type": "array", - "insertionOrder": true, - "uniqueItems": true, "items": { - "$ref": "#/definitions/MountPoint" + "$ref": "#/definitions/HostEntry" } }, - "Name": { - "description": "The name of a container. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed", + "Hostname": { "type": "string" }, - "PortMappings": { - "description": "Port mappings allow containers to access ports on the host container instance to send or receive traffic.", - "type": "array", - "insertionOrder": false, - "uniqueItems": true, - "items": { - "$ref": "#/definitions/PortMapping" - } + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" }, - "Privileged": { + "DisableNetworking": { "type": "boolean" }, - "ReadonlyRootFilesystem": { + "PseudoTerminal": { "type": "boolean" }, - "RepositoryCredentials": { - "$ref": "#/definitions/RepositoryCredentials" - }, - "ResourceRequirements": { + "MountPoints": { + "uniqueItems": true, + "insertionOrder": true, "type": "array", - "insertionOrder": false, "items": { - "$ref": "#/definitions/ResourceRequirement" + "$ref": "#/definitions/MountPoint" } }, - "Secrets": { - "type": "array", + "DependsOn": { "insertionOrder": false, + "type": "array", "items": { - "$ref": "#/definitions/Secret" + "$ref": "#/definitions/ContainerDependency" } }, - "StartTimeout": { - "type": "integer" - }, - "StopTimeout": { - "type": "integer" + "DockerLabels": { + "patternProperties": { + "": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" }, - "Ulimits": { - "type": "array", + "PortMappings": { + "uniqueItems": true, + "description": "Port mappings allow containers to access ports on the host container instance to send or receive traffic.", "insertionOrder": false, + "type": "array", "items": { - "$ref": "#/definitions/Ulimit" + "$ref": "#/definitions/PortMapping" } }, - "User": { - "type": "string" - }, - "VolumesFrom": { + "Command": { + "insertionOrder": true, "type": "array", - "insertionOrder": false, - "uniqueItems": true, "items": { - "$ref": "#/definitions/VolumeFrom" + "type": "string" } }, - "WorkingDirectory": { - "type": "string" - }, - "Interactive": { - "type": "boolean" - }, - "PseudoTerminal": { - "type": "boolean" - }, - "SystemControls": { + "Environment": { + "uniqueItems": true, + "description": "The environment variables to pass to a container", + "insertionOrder": false, "type": "array", + "items": { + "$ref": "#/definitions/KeyValuePair" + } + }, + "Links": { + "uniqueItems": true, "insertionOrder": false, + "type": "array", "items": { - "$ref": "#/definitions/SystemControl" + "type": "string" } } - }, - "additionalProperties": false + } }, "SystemControl": { + "additionalProperties": false, "type": "object", "properties": { - "Namespace": { - "type": "string" - }, "Value": { "type": "string" - } - }, - "additionalProperties": false - }, - "ContainerDependency": { - "type": "object", - "properties": { - "ContainerName": { - "type": "string" - }, - "Condition": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Device": { - "type": "object", - "properties": { - "ContainerPath": { - "type": "string" }, - "HostPath": { + "Namespace": { "type": "string" - }, - "Permissions": { - "type": "array", - "insertionOrder": false, - "uniqueItems": true, - "items": { - "type": "string" - } } - }, - "additionalProperties": false + } }, "DockerVolumeConfiguration": { + "additionalProperties": false, "type": "object", "properties": { - "Autoprovision": { - "type": "boolean" - }, - "Driver": { - "type": "string" - }, "DriverOpts": { - "type": "object", - "patternProperties": { - "": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Labels": { - "type": "object", "patternProperties": { "": { "type": "string" } }, - "additionalProperties": false + "additionalProperties": false, + "type": "object" }, "Scope": { "type": "string" - } - }, - "additionalProperties": false - }, - "AuthorizationConfig": { - "type": "object", - "properties": { - "IAM": { - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ] - }, - "AccessPointId": { - "type": "string" - } - }, - "additionalProperties": false - }, - "EFSVolumeConfiguration": { - "type": "object", - "required": [ - "FilesystemId" - ], - "properties": { - "FilesystemId": { - "type": "string" - }, - "RootDirectory": { - "type": "string" }, - "TransitEncryption": { - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ] - }, - "TransitEncryptionPort": { - "type": "integer" - }, - "AuthorizationConfig": { - "$ref": "#/definitions/AuthorizationConfig" - } - }, - "additionalProperties": false - }, - "EnvironmentFile": { - "type": "object", - "properties": { - "Value": { - "type": "string" + "Autoprovision": { + "type": "boolean" }, - "Type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "EphemeralStorage": { - "type": "object", - "properties": { - "SizeInGiB": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "FirelensConfiguration": { - "type": "object", - "properties": { - "Type": { + "Driver": { "type": "string" }, - "Options": { - "type": "object", + "Labels": { "patternProperties": { "": { "type": "string" } }, - "additionalProperties": false + "additionalProperties": false, + "type": "object" } - }, - "additionalProperties": false + } }, - "HealthCheck": { - "description": "The health check command and associated configuration parameters for the container.", + "LogConfiguration": { + "additionalProperties": false, "type": "object", + "required": [ + "LogDriver" + ], "properties": { - "Command": { - "description": "A string array representing the command that the container runs to determine if it is healthy.", + "SecretOptions": { + "insertionOrder": false, "type": "array", - "insertionOrder": true, "items": { - "type": "string" + "$ref": "#/definitions/Secret" } }, - "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.", - "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 seconds.", - "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 three retries.", - "type": "integer" - }, - "StartPeriod": { - "description": "The optional grace period within which to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You may specify between 0 and 300 seconds. The startPeriod is disabled by default.", - "type": "integer" - } - }, - "additionalProperties": false - }, - "HostEntry": { - "type": "object", - "properties": { - "Hostname": { - "type": "string" + "Options": { + "patternProperties": { + "": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" }, - "IpAddress": { + "LogDriver": { "type": "string" } - }, - "additionalProperties": false + } }, - "HostVolumeProperties": { + "FirelensConfiguration": { + "additionalProperties": false, "type": "object", "properties": { - "SourcePath": { + "Options": { + "patternProperties": { + "": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Type": { "type": "string" } - }, - "additionalProperties": false + } }, - "InferenceAccelerator": { + "RuntimePlatform": { + "additionalProperties": false, "type": "object", "properties": { - "DeviceName": { + "OperatingSystemFamily": { "type": "string" }, - "DeviceType": { + "CpuArchitecture": { "type": "string" } - }, - "additionalProperties": false + } }, "KernelCapabilities": { + "additionalProperties": false, "type": "object", "properties": { "Add": { - "type": "array", "insertionOrder": false, + "type": "array", "items": { "type": "string" } }, "Drop": { - "type": "array", "insertionOrder": false, + "type": "array", "items": { "type": "string" } } - }, - "additionalProperties": false + } }, - "KeyValuePair": { + "Tmpfs": { + "additionalProperties": false, "type": "object", + "required": [ + "Size" + ], "properties": { - "Name": { - "type": "string" + "Size": { + "type": "integer" }, - "Value": { + "ContainerPath": { "type": "string" + }, + "MountOptions": { + "insertionOrder": false, + "type": "array", + "items": { + "type": "string" + } } - }, - "additionalProperties": false + } }, - "LinuxParameters": { + "AuthorizationConfig": { + "additionalProperties": false, "type": "object", "properties": { - "Capabilities": { - "$ref": "#/definitions/KernelCapabilities" + "IAM": { + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ] }, - "Devices": { - "type": "array", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Device" - } + "AccessPointId": { + "type": "string" + } + } + }, + "PortMapping": { + "additionalProperties": false, + "type": "object", + "properties": { + "AppProtocol": { + "type": "string", + "enum": [ + "http", + "http2", + "grpc" + ] }, - "InitProcessEnabled": { - "type": "boolean" + "ContainerPortRange": { + "type": "string" }, - "MaxSwap": { + "HostPort": { "type": "integer" }, - "SharedMemorySize": { + "ContainerPort": { "type": "integer" }, - "Swappiness": { - "type": "integer" + "Protocol": { + "type": "string" }, - "Tmpfs": { - "type": "array", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tmpfs" - } + "Name": { + "type": "string" } - }, - "additionalProperties": false + } }, - "LogConfiguration": { + "TaskDefinitionPlacementConstraint": { + "additionalProperties": false, "type": "object", "required": [ - "LogDriver" + "Type" ], "properties": { - "LogDriver": { + "Type": { "type": "string" }, - "Options": { - "type": "object", - "patternProperties": { - "": { - "type": "string" - } - }, - "additionalProperties": false - }, - "SecretOptions": { - "type": "array", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Secret" - } + "Expression": { + "type": "string" } - }, - "additionalProperties": false + } }, - "PortMapping": { + "EFSVolumeConfiguration": { + "additionalProperties": false, "type": "object", + "required": [ + "FilesystemId" + ], "properties": { - "Name": { + "FilesystemId": { "type": "string" }, - "ContainerPort": { - "type": "integer" + "TransitEncryption": { + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ] }, - "ContainerPortRange": { + "AuthorizationConfig": { + "$ref": "#/definitions/AuthorizationConfig" + }, + "RootDirectory": { "type": "string" }, - "HostPort": { + "TransitEncryptionPort": { "type": "integer" - }, - "Protocol": { + } + } + }, + "RepositoryCredentials": { + "additionalProperties": false, + "type": "object", + "properties": { + "CredentialsParameter": { "type": "string" - }, - "AppProtocol": { - "type": "string", - "enum": [ - "http", - "http2", - "grpc" - ] } - }, - "additionalProperties": false + } }, - "MountPoint": { + "KeyValuePair": { + "additionalProperties": false, "type": "object", "properties": { - "ContainerPath": { + "Value": { "type": "string" }, - "ReadOnly": { - "type": "boolean" - }, - "SourceVolume": { + "Name": { "type": "string" } - }, - "additionalProperties": false + } }, - "ProxyConfiguration": { + "Device": { + "additionalProperties": false, "type": "object", - "required": [ - "ContainerName" - ], "properties": { - "ContainerName": { + "HostPath": { "type": "string" }, - "ProxyConfigurationProperties": { - "type": "array", - "insertionOrder": false, + "Permissions": { "uniqueItems": true, + "insertionOrder": false, + "type": "array", "items": { - "$ref": "#/definitions/KeyValuePair" + "type": "string" } }, - "Type": { + "ContainerPath": { "type": "string" } - }, - "additionalProperties": false + } }, - "RepositoryCredentials": { + "LinuxParameters": { + "additionalProperties": false, "type": "object", "properties": { - "CredentialsParameter": { - "type": "string" + "Capabilities": { + "$ref": "#/definitions/KernelCapabilities" + }, + "Swappiness": { + "type": "integer" + }, + "Tmpfs": { + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tmpfs" + } + }, + "SharedMemorySize": { + "type": "integer" + }, + "Devices": { + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Device" + } + }, + "InitProcessEnabled": { + "type": "boolean" + }, + "MaxSwap": { + "type": "integer" } - }, - "additionalProperties": false + } }, - "ResourceRequirement": { + "Ulimit": { + "additionalProperties": false, "type": "object", "required": [ - "Type", - "Value" + "HardLimit", + "Name", + "SoftLimit" ], "properties": { - "Type": { - "type": "string" + "SoftLimit": { + "type": "integer" }, - "Value": { + "HardLimit": { + "type": "integer" + }, + "Name": { "type": "string" } - }, - "additionalProperties": false + } }, - "RuntimePlatform": { + "HostVolumeProperties": { + "additionalProperties": false, "type": "object", "properties": { - "CpuArchitecture": { + "SourcePath": { + "type": "string" + } + } + }, + "MountPoint": { + "additionalProperties": false, + "type": "object", + "properties": { + "ReadOnly": { + "type": "boolean" + }, + "SourceVolume": { "type": "string" }, - "OperatingSystemFamily": { + "ContainerPath": { "type": "string" } - }, - "additionalProperties": false + } }, "Secret": { + "additionalProperties": false, "type": "object", "required": [ "Name", "ValueFrom" ], "properties": { - "Name": { + "ValueFrom": { "type": "string" }, - "ValueFrom": { + "Name": { "type": "string" } - }, - "additionalProperties": false + } }, - "TaskDefinitionPlacementConstraint": { + "ProxyConfiguration": { + "additionalProperties": false, "type": "object", "required": [ - "Type" + "ContainerName" ], "properties": { + "ProxyConfigurationProperties": { + "uniqueItems": true, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/KeyValuePair" + } + }, "Type": { "type": "string" }, - "Expression": { + "ContainerName": { "type": "string" } - }, - "additionalProperties": false + } }, - "Tmpfs": { + "Volume": { + "additionalProperties": false, "type": "object", - "required": [ - "Size" - ], "properties": { - "ContainerPath": { - "type": "string" + "EFSVolumeConfiguration": { + "$ref": "#/definitions/EFSVolumeConfiguration" }, - "MountOptions": { - "type": "array", - "insertionOrder": false, - "items": { - "type": "string" - } + "Host": { + "$ref": "#/definitions/HostVolumeProperties" }, - "Size": { - "type": "integer" + "DockerVolumeConfiguration": { + "$ref": "#/definitions/DockerVolumeConfiguration" + }, + "Name": { + "type": "string" } - }, - "additionalProperties": false + } }, - "Ulimit": { + "EnvironmentFile": { + "additionalProperties": false, "type": "object", - "required": [ - "HardLimit", - "Name", - "SoftLimit" - ], "properties": { - "HardLimit": { - "type": "integer" - }, - "Name": { + "Type": { "type": "string" }, - "SoftLimit": { - "type": "integer" + "Value": { + "type": "string" } - }, - "additionalProperties": false + } }, - "Volume": { + "ResourceRequirement": { + "additionalProperties": false, "type": "object", + "required": [ + "Type", + "Value" + ], "properties": { - "DockerVolumeConfiguration": { - "$ref": "#/definitions/DockerVolumeConfiguration" - }, - "EFSVolumeConfiguration": { - "$ref": "#/definitions/EFSVolumeConfiguration" - }, - "Host": { - "$ref": "#/definitions/HostVolumeProperties" + "Type": { + "type": "string" }, - "Name": { + "Value": { "type": "string" } - }, - "additionalProperties": false + } }, - "VolumeFrom": { + "InferenceAccelerator": { + "additionalProperties": false, "type": "object", "properties": { - "ReadOnly": { - "type": "boolean" + "DeviceType": { + "type": "string" }, - "SourceContainer": { + "DeviceName": { "type": "string" } - }, - "additionalProperties": false + } }, "Tag": { + "additionalProperties": false, "type": "object", "properties": { - "Key": { + "Value": { "type": "string" }, - "Value": { + "Key": { "type": "string" } - }, - "additionalProperties": false + } + }, + "EphemeralStorage": { + "additionalProperties": false, + "type": "object", + "properties": { + "SizeInGiB": { + "type": "integer" + } + } } }, - "additionalProperties": false, "properties": { - "TaskDefinitionArn": { - "description": "The Amazon Resource Name (ARN) of the Amazon ECS task definition", - "type": "string" - }, - "Family": { - "type": "string" - }, - "ContainerDefinitions": { - "type": "array", - "insertionOrder": false, - "uniqueItems": true, - "items": { - "$ref": "#/definitions/ContainerDefinition" - } - }, - "Cpu": { + "TaskRoleArn": { "type": "string" }, - "ExecutionRoleArn": { + "IpcMode": { "type": "string" }, - "EphemeralStorage": { - "$ref": "#/definitions/EphemeralStorage" - }, "InferenceAccelerators": { - "type": "array", - "insertionOrder": false, "uniqueItems": true, + "insertionOrder": false, + "type": "array", "items": { "$ref": "#/definitions/InferenceAccelerator" } @@ -792,128 +848,72 @@ "Memory": { "type": "string" }, - "NetworkMode": { - "type": "string" - }, "PlacementConstraints": { - "type": "array", - "insertionOrder": false, "uniqueItems": true, + "insertionOrder": false, + "type": "array", "items": { "$ref": "#/definitions/TaskDefinitionPlacementConstraint" } }, - "ProxyConfiguration": { - "$ref": "#/definitions/ProxyConfiguration" + "Cpu": { + "type": "string" }, "RequiresCompatibilities": { - "type": "array", - "insertionOrder": false, "uniqueItems": true, + "insertionOrder": false, + "type": "array", "items": { "type": "string" } }, - "TaskRoleArn": { + "NetworkMode": { "type": "string" }, - "Volumes": { - "type": "array", - "insertionOrder": false, - "uniqueItems": true, - "items": { - "$ref": "#/definitions/Volume" - } - }, "PidMode": { "type": "string" }, + "ExecutionRoleArn": { + "type": "string" + }, "RuntimePlatform": { "$ref": "#/definitions/RuntimePlatform" }, - "IpcMode": { - "type": "string" + "ProxyConfiguration": { + "$ref": "#/definitions/ProxyConfiguration" }, - "Tags": { + "Volumes": { + "uniqueItems": true, + "insertionOrder": false, "type": "array", + "items": { + "$ref": "#/definitions/Volume" + } + }, + "ContainerDefinitions": { + "uniqueItems": true, "insertionOrder": false, + "type": "array", "items": { - "$ref": "#/definitions/Tag" + "$ref": "#/definitions/ContainerDefinition" } - } - }, - "tagging": { - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" - }, - "createOnlyProperties": [ - "/properties/Family", - "/properties/ContainerDefinitions", - "/properties/Cpu", - "/properties/ExecutionRoleArn", - "/properties/InferenceAccelerators", - "/properties/Memory", - "/properties/NetworkMode", - "/properties/PlacementConstraints", - "/properties/ProxyConfiguration", - "/properties/RequiresCompatibilities", - "/properties/RuntimePlatform", - "/properties/TaskRoleArn", - "/properties/Volumes", - "/properties/PidMode", - "/properties/IpcMode", - "/properties/EphemeralStorage" - ], - "readOnlyProperties": [ - "/properties/TaskDefinitionArn" - ], - "primaryIdentifier": [ - "/properties/TaskDefinitionArn" - ], - "propertyTransform": { - "/properties/TaskRoleArn": "TaskRoleArn $OR $split(TaskRoleArn, \"role\/\")[-1]" - }, - "handlers": { - "create": { - "permissions": [ - "ecs:RegisterTaskDefinition", - "ecs:DescribeTaskDefinition", - "ecs:TagResource", - "iam:GetRole", - "iam:PassRole" - ] }, - "read": { - "permissions": [ - "ecs:DescribeTaskDefinition" - ] + "Family": { + "type": "string" }, - "update": { - "permissions": [ - "ecs:TagResource", - "ecs:UntagResource", - "ecs:ListTagsForResource", - "ecs:DescribeTaskDefinition", - "iam:GetRole", - "iam:PassRole" - ] + "EphemeralStorage": { + "$ref": "#/definitions/EphemeralStorage" }, - "delete": { - "permissions": [ - "ecs:DeregisterTaskDefinition", - "ecs:DescribeTaskDefinition", - "iam:GetRole", - "iam:PassRole" - ] + "Tags": { + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + } }, - "list": { - "permissions": [ - "ecs:ListTaskDefinitions", - "ecs:DescribeTaskDefinition" - ] + "TaskDefinitionArn": { + "description": "The Amazon Resource Name (ARN) of the Amazon ECS task definition", + "type": "string" } } } diff --git a/internal/service/cloudformation/schemas/AWS_ECS_TaskSet.json b/internal/service/cloudformation/schemas/AWS_ECS_TaskSet.json index 23f64770ab..56ae003eec 100644 --- a/internal/service/cloudformation/schemas/AWS_ECS_TaskSet.json +++ b/internal/service/cloudformation/schemas/AWS_ECS_TaskSet.json @@ -167,6 +167,12 @@ "Service", "TaskDefinition" ], + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, "createOnlyProperties": [ "/properties/Cluster", "/properties/ExternalId", diff --git a/internal/service/cloudformation/schemas/AWS_EMRServerless_Application.json b/internal/service/cloudformation/schemas/AWS_EMRServerless_Application.json index 6f5842a57f..9d73946596 100644 --- a/internal/service/cloudformation/schemas/AWS_EMRServerless_Application.json +++ b/internal/service/cloudformation/schemas/AWS_EMRServerless_Application.json @@ -400,4 +400,3 @@ } } } - diff --git a/internal/service/cloudformation/schemas/AWS_ElasticLoadBalancingV2_Listener.json b/internal/service/cloudformation/schemas/AWS_ElasticLoadBalancingV2_Listener.json index 9f255b94d0..804d99ee62 100644 --- a/internal/service/cloudformation/schemas/AWS_ElasticLoadBalancingV2_Listener.json +++ b/internal/service/cloudformation/schemas/AWS_ElasticLoadBalancingV2_Listener.json @@ -279,7 +279,12 @@ "writeOnlyProperties": [ "/properties/DefaultActions/*/AuthenticateOidcConfig/ClientSecret" ], - "taggable": false, + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, "handlers": { "create": { "permissions": [ diff --git a/internal/service/cloudformation/schemas/AWS_Events_Rule.json b/internal/service/cloudformation/schemas/AWS_Events_Rule.json new file mode 100644 index 0000000000..4719070b59 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Events_Rule.json @@ -0,0 +1,573 @@ +{ + "tagging": { + "taggable": false + }, + "handlers": { + "read": { + "permissions": [ + "iam:PassRole", + "events:DescribeRule", + "events:ListTargetsByRule" + ] + }, + "create": { + "permissions": [ + "iam:PassRole", + "events:DescribeRule", + "events:PutRule", + "events:PutTargets" + ] + }, + "update": { + "permissions": [ + "iam:PassRole", + "events:DescribeRule", + "events:PutRule", + "events:RemoveTargets", + "events:PutTargets" + ] + }, + "list": { + "permissions": [ + "events:ListRules" + ] + }, + "delete": { + "permissions": [ + "iam:PassRole", + "events:DescribeRule", + "events:DeleteRule", + "events:RemoveTargets", + "events:ListTargetsByRule" + ] + } + }, + "typeName": "AWS::Events::Rule", + "readOnlyProperties": [ + "/properties/Arn" + ], + "description": "Resource Type definition for AWS::Events::Rule", + "createOnlyProperties": [ + "/properties/Name" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/Arn" + ], + "definitions": { + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "type": "object", + "properties": { + "CapacityProvider": { + "type": "string" + }, + "Base": { + "type": "integer" + }, + "Weight": { + "type": "integer" + } + }, + "required": [ + "CapacityProvider" + ] + }, + "HttpParameters": { + "additionalProperties": false, + "type": "object", + "properties": { + "PathParameterValues": { + "uniqueItems": true, + "insertionOrder": true, + "type": "array", + "items": { + "type": "string" + } + }, + "HeaderParameters": { + "patternProperties": { + "": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "QueryStringParameters": { + "patternProperties": { + "": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + } + } + }, + "DeadLetterConfig": { + "additionalProperties": false, + "type": "object", + "properties": { + "Arn": { + "type": "string" + } + } + }, + "RunCommandParameters": { + "additionalProperties": false, + "type": "object", + "properties": { + "RunCommandTargets": { + "uniqueItems": true, + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/RunCommandTarget" + } + } + }, + "required": [ + "RunCommandTargets" + ] + }, + "PlacementStrategy": { + "additionalProperties": false, + "type": "object", + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "type": "string" + } + } + }, + "InputTransformer": { + "additionalProperties": false, + "type": "object", + "properties": { + "InputPathsMap": { + "patternProperties": { + "": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "InputTemplate": { + "type": "string" + } + }, + "required": [ + "InputTemplate" + ] + }, + "KinesisParameters": { + "additionalProperties": false, + "type": "object", + "properties": { + "PartitionKeyPath": { + "type": "string" + } + }, + "required": [ + "PartitionKeyPath" + ] + }, + "BatchRetryStrategy": { + "additionalProperties": false, + "type": "object", + "properties": { + "Attempts": { + "type": "integer" + } + } + }, + "RedshiftDataParameters": { + "additionalProperties": false, + "type": "object", + "properties": { + "StatementName": { + "type": "string" + }, + "Sqls": { + "uniqueItems": false, + "insertionOrder": true, + "type": "array", + "items": { + "type": "string" + } + }, + "Database": { + "type": "string" + }, + "SecretManagerArn": { + "type": "string" + }, + "DbUser": { + "type": "string" + }, + "Sql": { + "type": "string" + }, + "WithEvent": { + "type": "boolean" + } + }, + "required": [ + "Database" + ] + }, + "Target": { + "additionalProperties": false, + "type": "object", + "properties": { + "InputPath": { + "type": "string" + }, + "HttpParameters": { + "$ref": "#/definitions/HttpParameters" + }, + "DeadLetterConfig": { + "$ref": "#/definitions/DeadLetterConfig" + }, + "RunCommandParameters": { + "$ref": "#/definitions/RunCommandParameters" + }, + "InputTransformer": { + "$ref": "#/definitions/InputTransformer" + }, + "KinesisParameters": { + "$ref": "#/definitions/KinesisParameters" + }, + "RoleArn": { + "type": "string" + }, + "RedshiftDataParameters": { + "$ref": "#/definitions/RedshiftDataParameters" + }, + "Input": { + "type": "string" + }, + "SqsParameters": { + "$ref": "#/definitions/SqsParameters" + }, + "EcsParameters": { + "$ref": "#/definitions/EcsParameters" + }, + "BatchParameters": { + "$ref": "#/definitions/BatchParameters" + }, + "Id": { + "type": "string" + }, + "Arn": { + "type": "string" + }, + "SageMakerPipelineParameters": { + "$ref": "#/definitions/SageMakerPipelineParameters" + }, + "RetryPolicy": { + "$ref": "#/definitions/RetryPolicy" + } + }, + "required": [ + "Id", + "Arn" + ] + }, + "PlacementConstraint": { + "additionalProperties": false, + "type": "object", + "properties": { + "Type": { + "type": "string" + }, + "Expression": { + "type": "string" + } + } + }, + "AwsVpcConfiguration": { + "additionalProperties": false, + "type": "object", + "properties": { + "SecurityGroups": { + "uniqueItems": true, + "insertionOrder": true, + "type": "array", + "items": { + "type": "string" + } + }, + "Subnets": { + "uniqueItems": true, + "insertionOrder": true, + "type": "array", + "items": { + "type": "string" + } + }, + "AssignPublicIp": { + "type": "string" + } + }, + "required": [ + "Subnets" + ] + }, + "SqsParameters": { + "additionalProperties": false, + "type": "object", + "properties": { + "MessageGroupId": { + "type": "string" + } + }, + "required": [ + "MessageGroupId" + ] + }, + "RunCommandTarget": { + "additionalProperties": false, + "type": "object", + "properties": { + "Values": { + "uniqueItems": true, + "insertionOrder": true, + "type": "array", + "items": { + "type": "string" + } + }, + "Key": { + "type": "string" + } + }, + "required": [ + "Values", + "Key" + ] + }, + "EcsParameters": { + "additionalProperties": false, + "type": "object", + "properties": { + "PlatformVersion": { + "type": "string" + }, + "Group": { + "type": "string" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "PlacementConstraints": { + "uniqueItems": true, + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/PlacementConstraint" + } + }, + "PropagateTags": { + "type": "string" + }, + "TaskCount": { + "type": "integer" + }, + "PlacementStrategies": { + "uniqueItems": true, + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/PlacementStrategy" + } + }, + "CapacityProviderStrategy": { + "uniqueItems": true, + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + } + }, + "LaunchType": { + "type": "string" + }, + "ReferenceId": { + "type": "string" + }, + "TagList": { + "uniqueItems": true, + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + } + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "TaskDefinitionArn": { + "type": "string" + } + }, + "required": [ + "TaskDefinitionArn" + ] + }, + "BatchParameters": { + "additionalProperties": false, + "type": "object", + "properties": { + "ArrayProperties": { + "$ref": "#/definitions/BatchArrayProperties" + }, + "JobName": { + "type": "string" + }, + "RetryStrategy": { + "$ref": "#/definitions/BatchRetryStrategy" + }, + "JobDefinition": { + "type": "string" + } + }, + "required": [ + "JobName", + "JobDefinition" + ] + }, + "NetworkConfiguration": { + "additionalProperties": false, + "type": "object", + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + } + }, + "Tag": { + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "type": "string" + }, + "Key": { + "type": "string" + } + } + }, + "SageMakerPipelineParameters": { + "additionalProperties": false, + "type": "object", + "properties": { + "PipelineParameterList": { + "uniqueItems": true, + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/SageMakerPipelineParameter" + } + } + } + }, + "RetryPolicy": { + "additionalProperties": false, + "type": "object", + "properties": { + "MaximumRetryAttempts": { + "type": "integer" + }, + "MaximumEventAgeInSeconds": { + "type": "integer" + } + } + }, + "BatchArrayProperties": { + "additionalProperties": false, + "type": "object", + "properties": { + "Size": { + "type": "integer" + } + } + }, + "SageMakerPipelineParameter": { + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Value", + "Name" + ] + } + }, + "properties": { + "EventBusName": { + "description": "The name or ARN of the event bus associated with the rule. If you omit this, the default event bus is used.", + "type": "string" + }, + "EventPattern": { + "description": "The event pattern of the rule. For more information, see Events and Event Patterns in the Amazon EventBridge User Guide.", + "type": [ + "string", + "object" + ] + }, + "ScheduleExpression": { + "description": "The scheduling expression. For example, \"cron(0 20 * * ? *)\", \"rate(5 minutes)\". For more information, see Creating an Amazon EventBridge rule that runs on a schedule.", + "type": "string" + }, + "Description": { + "description": "The description of the rule.", + "type": "string" + }, + "State": { + "description": "The state of the rule.", + "type": "string", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, + "Targets": { + "uniqueItems": true, + "description": "Adds the specified targets to the specified rule, or updates the targets if they are already associated with the rule.\nTargets are the resources that are invoked when a rule is triggered.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Target" + } + }, + "Arn": { + "description": "The ARN of the rule, such as arn:aws:events:us-east-2:123456789012:rule/example.", + "type": "string" + }, + "RoleArn": { + "description": "The Amazon Resource Name (ARN) of the role that is used for target invocation.", + "type": "string" + }, + "Name": { + "description": "The name of the rule.", + "type": "string" + } + }, + "conditionalCreateOnlyProperties": [ + "/properties/EventBusName" + ] +} diff --git a/internal/service/cloudformation/schemas/AWS_GameLift_Fleet.json b/internal/service/cloudformation/schemas/AWS_GameLift_Fleet.json index e3f4ce8829..afac900f61 100644 --- a/internal/service/cloudformation/schemas/AWS_GameLift_Fleet.json +++ b/internal/service/cloudformation/schemas/AWS_GameLift_Fleet.json @@ -169,6 +169,108 @@ }, "additionalProperties": false }, + "ScalingPolicy": { + "description": "Rule that controls how a fleet is scaled. Scaling policies are uniquely identified by the combination of name and fleet ID.", + "type": "object", + "properties": { + "ComparisonOperator": { + "description": "Comparison operator to use when measuring a metric against the threshold value.", + "type": "string", + "enum": [ + "GreaterThanOrEqualToThreshold", + "GreaterThanThreshold", + "LessThanThreshold", + "LessThanOrEqualToThreshold" + ] + }, + "EvaluationPeriods": { + "description": "Length of time (in minutes) the metric must be at or beyond the threshold before a scaling event is triggered.", + "type": "integer", + "minimum": 1 + }, + "Location": { + "$ref": "#/definitions/Location" + }, + "MetricName": { + "description": "Name of the Amazon GameLift-defined metric that is used to trigger a scaling adjustment.", + "type": "string", + "enum": [ + "ActivatingGameSessions", + "ActiveGameSessions", + "ActiveInstances", + "AvailableGameSessions", + "AvailablePlayerSessions", + "CurrentPlayerSessions", + "IdleInstances", + "PercentAvailableGameSessions", + "PercentIdleInstances", + "QueueDepth", + "WaitTime", + "ConcurrentActivatableGameSessions" + ] + }, + "Name": { + "description": "A descriptive label that is associated with a fleet's scaling policy. Policy names do not need to be unique.", + "type": "string", + "minLength": 1, + "maxLength": 1024 + }, + "PolicyType": { + "description": "The type of scaling policy to create. For a target-based policy, set the parameter MetricName to 'PercentAvailableGameSessions' and specify a TargetConfiguration. For a rule-based policy set the following parameters: MetricName, ComparisonOperator, Threshold, EvaluationPeriods, ScalingAdjustmentType, and ScalingAdjustment.", + "type": "string", + "enum": [ + "RuleBased", + "TargetBased" + ] + }, + "ScalingAdjustment": { + "description": "Amount of adjustment to make, based on the scaling adjustment type.", + "type": "integer" + }, + "ScalingAdjustmentType": { + "description": "The type of adjustment to make to a fleet's instance count.", + "type": "string", + "enum": [ + "ChangeInCapacity", + "ExactCapacity", + "PercentChangeInCapacity" + ] + }, + "Status": { + "description": "Current status of the scaling policy. The scaling policy can be in force only when in an ACTIVE status. Scaling policies can be suspended for individual fleets. If the policy is suspended for a fleet, the policy status does not change.", + "type": "string", + "enum": [ + "ACTIVE", + "UPDATE_REQUESTED", + "UPDATING", + "DELETE_REQUESTED", + "DELETING", + "DELETED", + "ERROR" + ] + }, + "TargetConfiguration": { + "description": "An object that contains settings for a target-based scaling policy.", + "$ref": "#/definitions/TargetConfiguration" + }, + "Threshold": { + "description": "Metric value used to trigger a scaling event.", + "type": "number" + }, + "UpdateStatus": { + "description": "The current status of the fleet's scaling policies in a requested fleet location. The status PENDING_UPDATE indicates that an update was requested for the fleet but has not yet been completed for the location.", + "type": "string", + "enum": [ + "PENDING_UPDATE" + ] + } + }, + "additionalProperties": false, + "required": [ + "MetricName", + "Name" + ] + }, "ServerProcess": { "description": "A set of instructions for launching server processes on each instance in a fleet. Each instruction set identifies the location of the server executable, optional launch parameters, and the number of server processes with this configuration to maintain concurrently on the instance. Server process configurations make up a fleet's RuntimeConfiguration.", "type": "object", @@ -197,13 +299,44 @@ "ConcurrentExecutions", "LaunchPath" ] + }, + "TargetConfiguration": { + "description": "Settings for a target-based scaling policy. A target-based policy tracks a particular fleet metric specifies a target value for the metric. As player usage changes, the policy triggers Amazon GameLift to adjust capacity so that the metric returns to the target value. The target configuration specifies settings as needed for the target based policy, including the target value.", + "type": "object", + "properties": { + "TargetValue": { + "description": "Desired value to use with a target-based scaling policy. The value must be relevant for whatever metric the scaling policy is using. For example, in a policy using the metric PercentAvailableGameSessions, the target value should be the preferred size of the fleet's buffer (the percent of capacity that should be idle and ready for new game sessions).", + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "TargetValue" + ] } }, "properties": { + "ScalingPolicies": { + "description": "A list of rules that control how a fleet is scaled.", + "type": "array", + "maxItems": 50, + "items": { + "$ref": "#/definitions/ScalingPolicy" + }, + "insertionOrder": false + }, "AnywhereConfiguration": { "description": "Configuration for Anywhere fleet.", "$ref": "#/definitions/AnywhereConfiguration" }, + "ApplyCapacity": { + "description": "ComputeType to differentiate EC2 hardware managed by GameLift and Anywhere hardware managed by the customer.", + "type": "string", + "enum": [ + "ON_UPDATE", + "ON_CREATE_AND_UPDATE" + ] + }, "CertificateConfiguration": { "description": "Indicates whether to generate a TLS/SSL certificate for the new fleet. TLS certificates are used for encrypting traffic between game clients and game servers running on GameLift. If this parameter is not set, certificate generation is disabled. This fleet setting cannot be changed once the fleet is created.", "$ref": "#/definitions/CertificateConfiguration" @@ -367,6 +500,7 @@ ], "additionalProperties": false, "createOnlyProperties": [ + "/properties/ApplyCapacity", "/properties/BuildId", "/properties/CertificateConfiguration", "/properties/EC2InstanceType", @@ -398,7 +532,11 @@ "permissions": [ "gamelift:CreateFleet", "gamelift:DescribeFleetAttributes", - "gamelift:DescribeFleetLocationAttributes" + "gamelift:DescribeFleetLocationAttributes", + "gamelift:UpdateFleetCapacity", + "gamelift:DescribeFleetLocationCapacity", + "gamelift:PutScalingPolicy", + "gamelift:DescribeScalingPolicies" ] }, "read": { @@ -410,7 +548,8 @@ "gamelift:DescribeFleetUtilization", "gamelift:DescribeRuntimeConfiguration", "gamelift:DescribeEC2InstanceLimits", - "gamelift:DescribeFleetEvents" + "gamelift:DescribeFleetEvents", + "gamelift:DescribeScalingPolicies" ] }, "update": { @@ -423,13 +562,18 @@ "gamelift:UpdateRuntimeConfiguration", "gamelift:DescribeFleetLocationCapacity", "gamelift:DescribeFleetPortSettings", - "gamelift:DescribeFleetLocationAttributes" + "gamelift:DescribeFleetLocationAttributes", + "gamelift:PutScalingPolicy", + "gamelift:DescribeScalingPolicies", + "gamelift:DeleteScalingPolicy" ] }, "delete": { "permissions": [ "gamelift:DeleteFleet", - "gamelift:DescribeFleetLocationCapacity" + "gamelift:DescribeFleetLocationCapacity", + "gamelift:DescribeScalingPolicies", + "gamelift:DeleteScalingPolicy" ] }, "list": { diff --git a/internal/service/cloudformation/schemas/AWS_GuardDuty_Detector.json b/internal/service/cloudformation/schemas/AWS_GuardDuty_Detector.json index 7ab72244c8..b2a38bad56 100644 --- a/internal/service/cloudformation/schemas/AWS_GuardDuty_Detector.json +++ b/internal/service/cloudformation/schemas/AWS_GuardDuty_Detector.json @@ -131,9 +131,6 @@ "Name": { "type": "string", "enum": [ - "FLOW_LOGS", - "CLOUD_TRAIL", - "DNS_LOGS", "S3_DATA_EVENTS", "EKS_AUDIT_LOGS", "EBS_MALWARE_PROTECTION", diff --git a/internal/service/cloudformation/schemas/AWS_IAM_User.json b/internal/service/cloudformation/schemas/AWS_IAM_User.json new file mode 100644 index 0000000000..847b0e3266 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_IAM_User.json @@ -0,0 +1,210 @@ +{ + "typeName": "AWS::IAM::User", + "description": "Resource Type definition for AWS::IAM::User", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-iam.git", + "additionalProperties": false, + "properties": { + "Path": { + "description": "The path to the user. For more information about paths, see IAM identifiers in the IAM User Guide. The ARN of the policy used to set the permissions boundary for the user.", + "type": "string" + }, + "ManagedPolicyArns": { + "description": "A list of Amazon Resource Names (ARNs) of the IAM managed policies that you want to attach to the role.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "type": "string" + } + }, + "Policies": { + "description": "Adds or updates an inline policy document that is embedded in the specified IAM role.", + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Policy" + } + }, + "UserName": { + "description": "The friendly name identifying the user.", + "type": "string" + }, + "Groups": { + "description": "A list of group names to which you want to add the user.", + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "type": "string" + } + }, + "Arn": { + "description": "The Amazon Resource Name (ARN) that identifies the user. For more information about ARNs and how to use ARNs in policies, see IAM Identifiers in the IAM User Guide.", + "type": "string" + }, + "LoginProfile": { + "description": "Creates a password for the specified IAM user. A password allows an IAM user to access AWS services through the AWS Management Console.", + "$ref": "#/definitions/LoginProfile" + }, + "Tags": { + "description": "A list of tags that are associated with the user. For more information about tagging, see Tagging IAM resources in the IAM User Guide.", + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + } + }, + "PermissionsBoundary": { + "description": "The ARN of the policy that is used to set the permissions boundary for the user.", + "type": "string" + } + }, + "definitions": { + "Policy": { + "description": "Contains information about an attached policy.", + "type": "object", + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "description": "The policy document.", + "type": [ + "object", + "string" + ] + }, + "PolicyName": { + "description": "The friendly name (not ARN) identifying the policy.", + "type": "string" + } + }, + "required": [ + "PolicyName", + "PolicyDocument" + ] + }, + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -." + }, + "Value": { + "type": "string", + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -." + } + }, + "required": [ + "Key", + "Value" + ] + }, + "LoginProfile": { + "description": "Contains the user name and password create date for a user.", + "type": "object", + "additionalProperties": false, + "properties": { + "PasswordResetRequired": { + "description": "Specifies whether the user is required to set a new password on next sign-in.", + "type": "boolean" + }, + "Password": { + "description": "The user's password.", + "type": "string" + } + }, + "required": [ + "Password" + ] + } + }, + "createOnlyProperties": [ + "/properties/UserName" + ], + "primaryIdentifier": [ + "/properties/UserName" + ], + "readOnlyProperties": [ + "/properties/Arn" + ], + "writeOnlyProperties": [ + "/properties/LoginProfile/Password" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags" + }, + "handlers": { + "create": { + "permissions": [ + "iam:CreateLoginProfile", + "iam:AddUserToGroup", + "iam:PutUserPolicy", + "iam:AttachUserPolicy", + "iam:CreateUser", + "iam:GetUser", + "iam:TagUser" + ] + }, + "read": { + "permissions": [ + "iam:GetUserPolicy", + "iam:ListGroupsForUser", + "iam:ListAttachedUserPolicies", + "iam:ListUserPolicies", + "iam:GetUser", + "iam:GetLoginProfile" + ] + }, + "update": { + "permissions": [ + "iam:UpdateLoginProfile", + "iam:UpdateUser", + "iam:PutUserPermissionsBoundary", + "iam:AttachUserPolicy", + "iam:DeleteUserPolicy", + "iam:DeleteUserPermissionsBoundary", + "iam:TagUser", + "iam:UntagUser", + "iam:CreateLoginProfile", + "iam:RemoveUserFromGroup", + "iam:AddUserToGroup", + "iam:PutUserPolicy", + "iam:DetachUserPolicy", + "iam:GetLoginProfile", + "iam:DeleteLoginProfile", + "iam:GetUser", + "iam:ListUserTags" + ] + }, + "delete": { + "permissions": [ + "iam:DeleteAccessKey", + "iam:RemoveUserFromGroup", + "iam:DeleteUserPolicy", + "iam:DeleteUser", + "iam:DetachUserPolicy", + "iam:DeleteLoginProfile", + "iam:ListAccessKeys", + "iam:GetUserPolicy", + "iam:ListGroupsForUser", + "iam:ListAttachedUserPolicies", + "iam:ListUserPolicies", + "iam:GetUser", + "iam:GetLoginProfile" + ] + }, + "list": { + "permissions": [ + "iam:listUsers" + ] + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_Logs_LogGroup.json b/internal/service/cloudformation/schemas/AWS_Logs_LogGroup.json index a01f9d6dd3..9e8e97bd9d 100644 --- a/internal/service/cloudformation/schemas/AWS_Logs_LogGroup.json +++ b/internal/service/cloudformation/schemas/AWS_Logs_LogGroup.json @@ -93,7 +93,7 @@ "logs:DescribeLogGroups", "logs:CreateLogGroup", "logs:PutRetentionPolicy", - "logs:TagLogGroup", + "logs:TagResource", "logs:GetDataProtectionPolicy", "logs:PutDataProtectionPolicy", "logs:CreateLogDelivery", @@ -106,7 +106,7 @@ "read": { "permissions": [ "logs:DescribeLogGroups", - "logs:ListTagsLogGroup", + "logs:ListTagsForResource", "logs:GetDataProtectionPolicy" ] }, @@ -117,8 +117,8 @@ "logs:DisassociateKmsKey", "logs:PutRetentionPolicy", "logs:DeleteRetentionPolicy", - "logs:TagLogGroup", - "logs:UntagLogGroup", + "logs:TagResource", + "logs:UntagResource", "logs:GetDataProtectionPolicy", "logs:PutDataProtectionPolicy", "logs:CreateLogDelivery", @@ -136,7 +136,7 @@ "list": { "permissions": [ "logs:DescribeLogGroups", - "logs:ListTagsLogGroup" + "logs:ListTagsForResource" ], "handlerSchema": { "properties": { diff --git a/internal/service/cloudformation/schemas/AWS_MediaLive_Multiplex.json b/internal/service/cloudformation/schemas/AWS_MediaLive_Multiplex.json new file mode 100644 index 0000000000..7e3f6a78c1 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_MediaLive_Multiplex.json @@ -0,0 +1,196 @@ +{ + "typeName": "AWS::MediaLive::Multiplex", + "description": "Resource schema for AWS::MediaLive::Multiplex", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-medialive.git", + "properties": { + "Arn": { + "type": "string", + "description": "The unique arn of the multiplex." + }, + "AvailabilityZones": { + "description": "A list of availability zones for the multiplex.", + "type": "array", + "insertionOrder": false, + "items": { + "type": "string" + } + }, + "Destinations": { + "description": "A list of the multiplex output destinations.", + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MultiplexOutputDestination" + } + }, + "Id": { + "type": "string", + "description": "The unique id of the multiplex." + }, + "MultiplexSettings": { + "$ref": "#/definitions/MultiplexSettings", + "description": "Configuration for a multiplex event." + }, + "Name": { + "type": "string", + "description": "Name of multiplex." + }, + "PipelinesRunningCount": { + "type": "integer", + "description": "The number of currently healthy pipelines." + }, + "ProgramCount": { + "type": "integer", + "description": "The number of programs in the multiplex." + }, + "State": { + "type": "string", + "enum": [ + "CREATING", + "CREATE_FAILED", + "IDLE", + "STARTING", + "RUNNING", + "RECOVERING", + "STOPPING", + "DELETING", + "DELETED" + ] + }, + "Tags": { + "description": "A collection of key-value pairs.", + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tags" + } + } + }, + "definitions": { + "MultiplexOutputDestination": { + "description": "Multiplex MediaConnect output destination settings.", + "type": "object", + "properties": { + "MultiplexMediaConnectOutputDestinationSettings": { + "description": "Multiplex MediaConnect output destination settings.", + "properties": { + "EntitlementArn": { + "type": "string", + "description": "The MediaConnect entitlement ARN available as a Flow source.", + "minLength": 1 + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "MultiplexSettings": { + "type": "object", + "description": "A key-value pair to associate with a resource.", + "properties": { + "MaximumVideoBufferDelayMilliseconds": { + "type": "integer", + "description": "Maximum video buffer delay in milliseconds.", + "minimum": 800, + "maximum": 3000 + }, + "TransportStreamBitrate": { + "type": "integer", + "description": "Transport stream bit rate.", + "minimum": 1000000, + "maximum": 100000000 + }, + "TransportStreamId": { + "type": "integer", + "description": "Transport stream ID.", + "minimum": 0, + "maximum": 65535 + }, + "TransportStreamReservedBitrate": { + "type": "integer", + "description": "Transport stream reserved bit rate.", + "minimum": 0, + "maximum": 100000000 + } + }, + "required": [ + "TransportStreamBitrate", + "TransportStreamId" + ], + "additionalProperties": false + }, + "Tags": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "additionalProperties": false + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags" + }, + "additionalProperties": false, + "required": [ + "AvailabilityZones", + "MultiplexSettings", + "Name" + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id", + "/properties/PipelinesRunningCount", + "/properties/ProgramCount", + "/properties/State" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "handlers": { + "create": { + "permissions": [ + "medialive:CreateMultiplex", + "medialive:DescribeMultiplex", + "medialive:CreateTags" + ] + }, + "read": { + "permissions": [ + "medialive:DescribeMultiplex" + ] + }, + "update": { + "permissions": [ + "medialive:UpdateMultiplex", + "medialive:DescribeMultiplex", + "medialive:CreateTags", + "medialive:DeleteTags" + ] + }, + "delete": { + "permissions": [ + "medialive:DeleteMultiplex", + "medialive:DescribeMultiplex" + ] + }, + "list": { + "permissions": [ + "medialive:ListMultiplexes" + ] + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_MediaLive_Multiplexprogram.json b/internal/service/cloudformation/schemas/AWS_MediaLive_Multiplexprogram.json new file mode 100644 index 0000000000..47768b475a --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_MediaLive_Multiplexprogram.json @@ -0,0 +1,292 @@ +{ + "typeName": "AWS::MediaLive::Multiplexprogram", + "description": "Resource schema for AWS::MediaLive::Multiplexprogram", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-medialiveprogram.git", + "properties": { + "ChannelId": { + "type": "string", + "description": "The MediaLive channel associated with the program." + }, + "MultiplexId": { + "type": "string", + "description": "The ID of the multiplex that the program belongs to." + }, + "MultiplexProgramSettings": { + "description": "The settings for this multiplex program.", + "$ref": "#/definitions/MultiplexProgramSettings" + }, + "PreferredChannelPipeline": { + "description": "The settings for this multiplex program.", + "$ref": "#/definitions/PreferredChannelPipeline" + }, + "PacketIdentifiersMap": { + "$ref": "#/definitions/MultiplexProgramPacketIdentifiersMap", + "description": "The packet identifier map for this multiplex program." + }, + "PipelineDetails": { + "description": "Contains information about the current sources for the specified program in the specified multiplex. Keep in mind that each multiplex pipeline connects to both pipelines in a given source channel (the channel identified by the program). But only one of those channel pipelines is ever active at one time.", + "type": "array", + "items": { + "$ref": "#/definitions/MultiplexProgramPipelineDetail" + }, + "insertionOrder": true + }, + "ProgramName": { + "type": "string", + "description": "The name of the multiplex program." + } + }, + "definitions": { + "MultiplexProgramSettings": { + "description": "Multiplex Program settings configuration.", + "type": "object", + "properties": { + "PreferredChannelPipeline": { + "type": "string", + "$ref": "#/definitions/PreferredChannelPipeline" + }, + "ProgramNumber": { + "type": "integer", + "description": "Unique program number.", + "minimum": 0, + "maximum": 65535 + }, + "ServiceDescriptor": { + "$ref": "#/definitions/MultiplexProgramServiceDescriptor", + "description": "Transport stream service descriptor configuration for the Multiplex program." + }, + "VideoSettings": { + "$ref": "#/definitions/MultiplexVideoSettings", + "description": "Program video settings configuration." + } + }, + "required": [ + "ProgramNumber" + ], + "additionalProperties": false + }, + "PreferredChannelPipeline": { + "type": "string", + "description": "Indicates which pipeline is preferred by the multiplex for program ingest.\nIf set to \\\"PIPELINE_0\\\" or \\\"PIPELINE_1\\\" and an unhealthy ingest causes the multiplex to switch to the non-preferred pipeline,\nit will switch back once that ingest is healthy again. If set to \\\"CURRENTLY_ACTIVE\\\",\nit will not switch back to the other pipeline based on it recovering to a healthy state,\nit will only switch if the active pipeline becomes unhealthy.\n", + "enum": [ + "CURRENTLY_ACTIVE", + "PIPELINE_0", + "PIPELINE_1" + ] + }, + "MultiplexProgramServiceDescriptor": { + "description": "Transport stream service descriptor configuration for the Multiplex program.", + "type": "object", + "properties": { + "ProviderName": { + "type": "string", + "description": "Name of the provider.", + "minLength": 1, + "maxLength": 256 + }, + "ServiceName": { + "type": "string", + "description": "Name of the service.", + "minLength": 1, + "maxLength": 256 + } + }, + "required": [ + "ProviderName", + "ServiceName" + ], + "additionalProperties": false + }, + "MultiplexVideoSettings": { + "description": "The video configuration for each program in a multiplex.", + "type": "object", + "oneOf": [ + { + "type": "object", + "properties": { + "ConstantBitrate": { + "type": "integer", + "description": "The constant bitrate configuration for the video encode.\nWhen this field is defined, StatmuxSettings must be undefined.", + "minimum": 100000, + "maximum": 100000000 + } + }, + "required": [ + "ConstantBitrate" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "StatmuxSettings": { + "description": "Statmux rate control settings.\nWhen this field is defined, ConstantBitrate must be undefined.", + "$ref": "#/definitions/MultiplexStatmuxVideoSettings" + } + }, + "required": [ + "StatmuxSettings" + ], + "additionalProperties": false + } + ] + }, + "MultiplexStatmuxVideoSettings": { + "description": "Statmux rate control settings", + "type": "object", + "properties": { + "MaximumBitrate": { + "type": "integer", + "description": "Maximum statmux bitrate.", + "minimum": 100000, + "maximum": 100000000 + }, + "MinimumBitrate": { + "type": "integer", + "description": "Minimum statmux bitrate.", + "minimum": 100000, + "maximum": 100000000 + }, + "Priority": { + "type": "integer", + "description": "The purpose of the priority is to use a combination of the\\nmultiplex rate control algorithm and the QVBR capability of the\\nencoder to prioritize the video quality of some channels in a\\nmultiplex over others. Channels that have a higher priority will\\nget higher video quality at the expense of the video quality of\\nother channels in the multiplex with lower priority.", + "minimum": -5, + "maximum": 5 + } + }, + "additionalProperties": false + }, + "MultiplexProgramPacketIdentifiersMap": { + "description": "Packet identifiers map for a given Multiplex program.", + "type": "object", + "properties": { + "AudioPids": { + "type": "array", + "items": { + "type": "integer" + }, + "insertionOrder": true + }, + "DvbSubPids": { + "type": "array", + "items": { + "type": "integer" + }, + "insertionOrder": true + }, + "DvbTeletextPid": { + "type": "integer" + }, + "EtvPlatformPid": { + "type": "integer" + }, + "EtvSignalPid": { + "type": "integer" + }, + "KlvDataPids": { + "type": "array", + "items": { + "type": "integer" + }, + "insertionOrder": true + }, + "PcrPid": { + "type": "integer" + }, + "PmtPid": { + "type": "integer" + }, + "PrivateMetadataPid": { + "type": "integer" + }, + "Scte27Pids": { + "type": "array", + "items": { + "type": "integer" + }, + "insertionOrder": true + }, + "Scte35Pid": { + "type": "integer" + }, + "TimedMetadataPid": { + "type": "integer" + }, + "VideoPid": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "MultiplexProgramPipelineDetail": { + "description": "The current source for one of the pipelines in the multiplex.", + "type": "object", + "properties": { + "ActiveChannelPipeline": { + "type": "string", + "description": "Identifies the channel pipeline that is currently active for the pipeline (identified by PipelineId) in the multiplex." + }, + "PipelineId": { + "type": "string", + "description": "Identifies a specific pipeline in the multiplex." + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/ProgramName", + "/properties/MultiplexId" + ], + "writeOnlyProperties": [ + "/properties/PreferredChannelPipeline" + ], + "createOnlyProperties": [ + "/properties/ProgramName", + "/properties/MultiplexId" + ], + "handlers": { + "create": { + "permissions": [ + "medialive:CreateMultiplexProgram", + "medialive:DescribeMultiplexProgram" + ] + }, + "read": { + "permissions": [ + "medialive:DescribeMultiplexProgram" + ] + }, + "update": { + "permissions": [ + "medialive:UpdateMultiplexProgram", + "medialive:DescribeMultiplexProgram" + ] + }, + "delete": { + "permissions": [ + "medialive:DeleteMultiplexProgram", + "medialive:DescribeMultiplexProgram" + ] + }, + "list": { + "permissions": [ + "medialive:ListMultiplexPrograms" + ], + "handlerSchema": { + "properties": { + "Arn": { + "$ref": "resource-schema.json#/properties/MultiplexId" + } + }, + "required": [ + "MultiplexId" + ] + } + } + }, + "tagging": { + "taggable": false + } +} diff --git a/internal/service/cloudformation/schemas/AWS_MediaPackageV2_OriginEndpoint.json b/internal/service/cloudformation/schemas/AWS_MediaPackageV2_OriginEndpoint.json index 0ce524b32a..b1319ec810 100644 --- a/internal/service/cloudformation/schemas/AWS_MediaPackageV2_OriginEndpoint.json +++ b/internal/service/cloudformation/schemas/AWS_MediaPackageV2_OriginEndpoint.json @@ -1,6 +1,6 @@ { "typeName": "AWS::MediaPackageV2::OriginEndpoint", - "description": "Definition of AWS::MediaPackageV2::OriginEndpoint Resource Type", + "description": "Represents an origin endpoint that is associated with a channel, offering a dynamically repackaged version of its content through various streaming media protocols. The content can be efficiently disseminated to end-users via a Content Delivery Network (CDN), like Amazon CloudFront.
", "definitions": { "AdMarkerHls": { "type": "string", @@ -91,6 +91,35 @@ }, "additionalProperties": false }, + "FilterConfiguration": { + "type": "object", + "description": "Filter configuration includes settings for manifest filtering, start and end times, and time delay that apply to all of your egress requests for this manifest.
", + "properties": { + "ManifestFilter": { + "type": "string", + "maxLength": 1024, + "minLength": 1, + "description": "Optionally specify one or more manifest filters for all of your manifest egress requests. When you include a manifest filter, note that you cannot use an identical manifest filter query parameter for this manifest's endpoint URL.
" + }, + "Start": { + "type": "string", + "description": "Optionally specify the start time for all of your manifest egress requests. When you include start time, note that you cannot use start time query parameters for this manifest's endpoint URL.
", + "format": "date-time" + }, + "End": { + "type": "string", + "description": "Optionally specify the end time for all of your manifest egress requests. When you include end time, note that you cannot use end time query parameters for this manifest's endpoint URL.
", + "format": "date-time" + }, + "TimeDelaySeconds": { + "type": "integer", + "maximum": 1209600, + "minimum": 0, + "description": "Optionally specify the time delay for all of your manifest egress requests. Enter a value that is smaller than your endpoint's startover window. When you include time delay, note that you cannot use time delay query parameters for this manifest's endpoint URL.
" + } + }, + "additionalProperties": false + }, "HlsManifestConfiguration": { "type": "object", "description": "Retrieve the HTTP live streaming (HLS) manifest configuration.
", @@ -123,6 +152,9 @@ }, "ScteHls": { "$ref": "#/definitions/ScteHls" + }, + "FilterConfiguration": { + "$ref": "#/definitions/FilterConfiguration" } }, "required": [ @@ -162,6 +194,9 @@ }, "ScteHls": { "$ref": "#/definitions/ScteHls" + }, + "FilterConfiguration": { + "$ref": "#/definitions/FilterConfiguration" } }, "required": [ diff --git a/internal/service/cloudformation/schemas/AWS_QuickSight_DataSource.json b/internal/service/cloudformation/schemas/AWS_QuickSight_DataSource.json index f131a0e62a..ca711b685c 100644 --- a/internal/service/cloudformation/schemas/AWS_QuickSight_DataSource.json +++ b/internal/service/cloudformation/schemas/AWS_QuickSight_DataSource.json @@ -287,6 +287,12 @@ }, "DatabricksParameters": { "$ref": "#/definitions/DatabricksParameters" + }, + "StarburstParameters": { + "$ref": "#/definitions/StarburstParameters" + }, + "TrinoParameters": { + "$ref": "#/definitions/TrinoParameters" } } }, @@ -317,7 +323,9 @@ "SQLSERVER", "TERADATA", "TWITTER", - "TIMESTREAM" + "TIMESTREAM", + "STARBURST", + "TRINO" ] }, "ManifestFileLocation": { @@ -547,7 +555,7 @@ "items": { "type": "string" }, - "maxItems": 16, + "maxItems": 20, "minItems": 1, "description": "The IAM action to grant or revoke permissions on.
" }, @@ -622,6 +630,74 @@ "Warehouse" ] }, + "StarburstParameters": { + "type": "object", + "description": "Starburst parameters.
", + "properties": { + "Host": { + "type": "string", + "maxLength": 256, + "minLength": 1, + "description": "Host.
" + }, + "Port": { + "type": "number", + "maximum": 65535, + "minimum": 1, + "description": "Port.
" + }, + "Catalog": { + "type": "string", + "maxLength": 128, + "minLength": 0, + "description": "Catalog.
" + }, + "ProductType": { + "$ref": "#/definitions/StarburstProductType" + } + }, + "required": [ + "Host", + "Port", + "Catalog" + ] + }, + "StarburstProductType": { + "type": "string", + "enum": [ + "GALAXY", + "ENTERPRISE" + ] + }, + "TrinoParameters": { + "type": "object", + "description": "Trino parameters.
", + "properties": { + "Host": { + "type": "string", + "maxLength": 256, + "minLength": 1, + "description": "Host.
" + }, + "Port": { + "type": "number", + "maximum": 65535, + "minimum": 1, + "description": "Port.
" + }, + "Catalog": { + "type": "string", + "maxLength": 128, + "minLength": 0, + "description": "Catalog.
" + } + }, + "required": [ + "Host", + "Port", + "Catalog" + ] + }, "SparkParameters": { "type": "object", "description": "Spark parameters.
", diff --git a/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json b/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json index ec68e95dae..fee73ca7d5 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json @@ -116,6 +116,10 @@ "type": "string" } }, + "EnableGlobalWriteForwarding": { + "description": "Specifies whether to enable this DB cluster to forward write operations to the primary cluster of a global cluster (Aurora global database). By default, write operations are not allowed on Aurora DB clusters that are secondary clusters in an Aurora global database.", + "type": "boolean" + }, "EnableHttpEndpoint": { "description": "A value that indicates whether to enable the HTTP endpoint for an Aurora Serverless DB cluster. By default, the HTTP endpoint is disabled.", "type": "boolean" diff --git a/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json b/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json index 91daa93f62..cf0abe04b8 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json @@ -224,6 +224,10 @@ "type": "string", "description": "The Oracle system ID (Oracle SID) for a container database (CDB). The Oracle SID is also the name of the CDB. This setting is valid for RDS Custom only." }, + "DedicatedLogVolume": { + "type": "boolean", + "description": "Indicates whether the DB instance has a dedicated log volume (DLV) enabled." + }, "DeleteAutomatedBackups": { "type": "boolean", "description": "A value that indicates whether to remove automated backups immediately after the DB instance is deleted. This parameter isn't case-sensitive. The default is to remove automated backups immediately after the DB instance is deleted." diff --git a/internal/service/cloudformation/schemas/AWS_Redshift_Cluster.json b/internal/service/cloudformation/schemas/AWS_Redshift_Cluster.json index 17bbfd4631..aab0ce91a4 100644 --- a/internal/service/cloudformation/schemas/AWS_Redshift_Cluster.json +++ b/internal/service/cloudformation/schemas/AWS_Redshift_Cluster.json @@ -269,12 +269,16 @@ "type": "string" }, "ResourceAction": { - "description": "The Redshift operation to be performed. Resource Action supports pause-cluster, resume-cluster APIs", + "description": "The Redshift operation to be performed. Resource Action supports pause-cluster, resume-cluster, failover-primary-compute APIs", "type": "string" }, "RotateEncryptionKey": { "description": "A boolean indicating if we want to rotate Encryption Keys.", "type": "boolean" + }, + "MultiAZ": { + "description": "A boolean indicating if the redshift cluster is multi-az or not. If you don't provide this parameter or set the value to false, the redshift cluster will be single-az.", + "type": "boolean" } }, "additionalProperties": false, @@ -305,7 +309,8 @@ ], "writeOnlyProperties": [ "/properties/MasterUserPassword", - "/properties/Classic" + "/properties/Classic", + "/properties/SnapshotIdentifier" ], "tagging": { "taggable": true @@ -351,7 +356,8 @@ "redshift:ModifyClusterDbRevisions", "redshift:PauseCluster", "redshift:ResumeCluster", - "redshift:RotateEncryptionKey" + "redshift:RotateEncryptionKey", + "redshift:FailoverPrimaryCompute" ], "timeoutInMinutes": 2160 }, diff --git a/internal/service/cloudformation/schemas/AWS_ResourceGroups_Group.json b/internal/service/cloudformation/schemas/AWS_ResourceGroups_Group.json index 0ab0d714f5..fab3d29995 100644 --- a/internal/service/cloudformation/schemas/AWS_ResourceGroups_Group.json +++ b/internal/service/cloudformation/schemas/AWS_ResourceGroups_Group.json @@ -152,6 +152,13 @@ "primaryIdentifier": [ "/properties/Name" ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags" + }, "handlers": { "create": { "permissions": [ diff --git a/internal/service/cloudformation/schemas/AWS_Route53Resolver_FirewallDomainList.json b/internal/service/cloudformation/schemas/AWS_Route53Resolver_FirewallDomainList.json index 66fd71a9ec..b73baf6b87 100644 --- a/internal/service/cloudformation/schemas/AWS_Route53Resolver_FirewallDomainList.json +++ b/internal/service/cloudformation/schemas/AWS_Route53Resolver_FirewallDomainList.json @@ -37,6 +37,13 @@ "additionalProperties": false } }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags" + }, "properties": { "Id": { "description": "ResourceId", @@ -146,37 +153,52 @@ "handlers": { "create": { "permissions": [ - "route53resolver:CreateFirewallDomainList", - "route53resolver:UpdateFirewallDomains", - "route53resolver:ImportFirewallDomains", - "route53resolver:TagResource" + "route53resolver:*", + "ec2:*", + "logs:*", + "iam:*", + "lambda:*", + "s3:*" ] }, "list": { "permissions": [ - "route53resolver:ListFirewallDomainLists", - "route53resolver:ListTagsForResource" + "route53resolver:*", + "ec2:*", + "logs:*", + "iam:*", + "lambda:*", + "s3:*" ] }, "read": { "permissions": [ - "route53resolver:GetFirewallDomainList", - "route53resolver:ListFirewallDomains", - "route53resolver:ListTagsForResource" + "route53resolver:*", + "ec2:*", + "logs:*", + "iam:*", + "lambda:*", + "s3:*" ] }, "delete": { "permissions": [ - "route53resolver:DeleteFirewallDomainList", - "route53resolver:UntagResource" + "route53resolver:*", + "ec2:*", + "logs:*", + "iam:*", + "lambda:*", + "s3:*" ] }, "update": { "permissions": [ - "route53resolver:UpdateFirewallDomains", - "route53resolver:ImportFirewallDomains", - "route53resolver:TagResource", - "route53resolver:UntagResource" + "route53resolver:*", + "ec2:*", + "logs:*", + "iam:*", + "lambda:*", + "s3:*" ] } } diff --git a/internal/service/cloudformation/schemas/AWS_Route53_DNSSEC.json b/internal/service/cloudformation/schemas/AWS_Route53_DNSSEC.json index 879be46a02..dcf428b569 100644 --- a/internal/service/cloudformation/schemas/AWS_Route53_DNSSEC.json +++ b/internal/service/cloudformation/schemas/AWS_Route53_DNSSEC.json @@ -18,7 +18,9 @@ "primaryIdentifier": [ "/properties/HostedZoneId" ], - "taggable": false, + "tagging": { + "taggable": false + }, "handlers": { "create": { "permissions": [ diff --git a/internal/service/cloudformation/schemas/AWS_Route53_KeySigningKey.json b/internal/service/cloudformation/schemas/AWS_Route53_KeySigningKey.json index 33449e1d63..040bcd0ee7 100644 --- a/internal/service/cloudformation/schemas/AWS_Route53_KeySigningKey.json +++ b/internal/service/cloudformation/schemas/AWS_Route53_KeySigningKey.json @@ -43,7 +43,9 @@ "/properties/HostedZoneId", "/properties/Name" ], - "taggable": false, + "tagging": { + "taggable": false + }, "handlers": { "create": { "permissions": [ diff --git a/internal/service/cloudformation/schemas/AWS_S3_StorageLens.json b/internal/service/cloudformation/schemas/AWS_S3_StorageLens.json index 07f264f69b..4e3e8d0c13 100644 --- a/internal/service/cloudformation/schemas/AWS_S3_StorageLens.json +++ b/internal/service/cloudformation/schemas/AWS_S3_StorageLens.json @@ -162,6 +162,43 @@ } } }, + "StorageLensGroupArn": { + "description": "The ARN for the Amazon S3 Storage Lens Group configuration.", + "type": "string" + }, + "StorageLensGroupSelectionCriteria": { + "description": "Selection criteria for Storage Lens Group level metrics", + "type": "object", + "additionalProperties": false, + "properties": { + "Include": { + "type": "array", + "insertionOrder": false, + "uniqueItems": true, + "items": { + "$ref": "#/definitions/StorageLensGroupArn" + } + }, + "Exclude": { + "type": "array", + "insertionOrder": false, + "uniqueItems": true, + "items": { + "$ref": "#/definitions/StorageLensGroupArn" + } + } + } + }, + "StorageLensGroupLevel": { + "description": "Specifies the details of Amazon S3 Storage Lens Group configuration.", + "type": "object", + "additionalProperties": false, + "properties": { + "StorageLensGroupSelectionCriteria": { + "$ref": "#/definitions/StorageLensGroupSelectionCriteria" + } + } + }, "AccountLevel": { "description": "Account-level metrics configurations.", "type": "object", @@ -181,6 +218,9 @@ }, "BucketLevel": { "$ref": "#/definitions/BucketLevel" + }, + "StorageLensGroupLevel": { + "$ref": "#/definitions/StorageLensGroupLevel" } }, "required": [ diff --git a/internal/service/cloudformation/schemas/AWS_SageMaker_Image.json b/internal/service/cloudformation/schemas/AWS_SageMaker_Image.json index cbbf9f2274..a21f60c99b 100644 --- a/internal/service/cloudformation/schemas/AWS_SageMaker_Image.json +++ b/internal/service/cloudformation/schemas/AWS_SageMaker_Image.json @@ -20,7 +20,6 @@ }, "Tags": { "type": "array", - "minItems": 1, "maxItems": 50, "description": "An array of key-value pairs to apply to this resource.", "items": { @@ -109,7 +108,10 @@ "create": { "permissions": [ "sagemaker:CreateImage", - "iam:PassRole" + "sagemaker:DescribeImage", + "iam:PassRole", + "sagemaker:AddTags", + "sagemaker:ListTags" ] }, "read": { @@ -139,5 +141,12 @@ "sagemaker:ListImages" ] } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags" } } diff --git a/internal/service/cloudformation/schemas/AWS_SageMaker_ImageVersion.json b/internal/service/cloudformation/schemas/AWS_SageMaker_ImageVersion.json index 1f31956433..6b15f621b5 100644 --- a/internal/service/cloudformation/schemas/AWS_SageMaker_ImageVersion.json +++ b/internal/service/cloudformation/schemas/AWS_SageMaker_ImageVersion.json @@ -219,5 +219,11 @@ } } }, + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-sagemaker" } diff --git a/internal/service/cloudformation/schemas/AWS_ServiceCatalogAppRegistry_AttributeGroupAssociation.json b/internal/service/cloudformation/schemas/AWS_ServiceCatalogAppRegistry_AttributeGroupAssociation.json index 5e5285101b..c53dd1fabc 100644 --- a/internal/service/cloudformation/schemas/AWS_ServiceCatalogAppRegistry_AttributeGroupAssociation.json +++ b/internal/service/cloudformation/schemas/AWS_ServiceCatalogAppRegistry_AttributeGroupAssociation.json @@ -1,7 +1,7 @@ { "typeName": "AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation", "description": "Resource Schema for AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation.", - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog-appregistry.git", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog-appregistry", "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-appregistry-attributegroupassociation.html", "properties": { "Application": { @@ -25,9 +25,6 @@ "AttributeGroupArn": { "type": "string", "pattern": "arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/attribute-groups/[a-z0-9]+" - }, - "Id": { - "type": "string" } }, "additionalProperties": false, @@ -37,17 +34,22 @@ ], "readOnlyProperties": [ "/properties/ApplicationArn", - "/properties/AttributeGroupArn", - "/properties/Id" + "/properties/AttributeGroupArn" ], "createOnlyProperties": [ "/properties/Application", "/properties/AttributeGroup" ], "primaryIdentifier": [ - "/properties/Id" + "/properties/ApplicationArn", + "/properties/AttributeGroupArn" ], - "taggable": false, + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, "handlers": { "create": { "permissions": [ @@ -56,13 +58,28 @@ }, "read": { "permissions": [ - "servicecatalog:ListAssociatedAttributeGroups" + "servicecatalog:ListAttributeGroupsForApplication" ] }, "delete": { "permissions": [ "servicecatalog:DisassociateAttributeGroup" ] + }, + "list": { + "permissions": [ + "servicecatalog:ListAttributeGroupsForApplication" + ], + "handlerSchema": { + "properties": { + "ApplicationArn": { + "$ref": "resource-schema.json#/properties/ApplicationArn" + } + }, + "required": [ + "ApplicationArn" + ] + } } } } diff --git a/internal/service/cloudformation/schemas/AWS_ServiceCatalogAppRegistry_ResourceAssociation.json b/internal/service/cloudformation/schemas/AWS_ServiceCatalogAppRegistry_ResourceAssociation.json index 57e014ed90..b3f9c6c9a3 100644 --- a/internal/service/cloudformation/schemas/AWS_ServiceCatalogAppRegistry_ResourceAssociation.json +++ b/internal/service/cloudformation/schemas/AWS_ServiceCatalogAppRegistry_ResourceAssociation.json @@ -1,7 +1,7 @@ { "typeName": "AWS::ServiceCatalogAppRegistry::ResourceAssociation", "description": "Resource Schema for AWS::ServiceCatalogAppRegistry::ResourceAssociation", - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog-appregistry.git", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog-appregistry", "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-appregistry-resourceassociation.html", "properties": { "Application": { @@ -30,9 +30,6 @@ "ResourceArn": { "type": "string", "pattern": "arn:aws[-a-z]*:cloudformation:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:stack/[a-zA-Z][-A-Za-z0-9]{0,127}/[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}" - }, - "Id": { - "type": "string" } }, "additionalProperties": false, @@ -43,8 +40,7 @@ ], "readOnlyProperties": [ "/properties/ApplicationArn", - "/properties/ResourceArn", - "/properties/Id" + "/properties/ResourceArn" ], "createOnlyProperties": [ "/properties/Application", @@ -52,9 +48,16 @@ "/properties/ResourceType" ], "primaryIdentifier": [ - "/properties/Id" + "/properties/ApplicationArn", + "/properties/ResourceArn", + "/properties/ResourceType" ], - "taggable": false, + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, "handlers": { "create": { "permissions": [ @@ -71,6 +74,21 @@ "permissions": [ "servicecatalog:DisassociateResource" ] + }, + "list": { + "permissions": [ + "servicecatalog:ListAssociatedResources" + ], + "handlerSchema": { + "properties": { + "ApplicationArn": { + "$ref": "resource-schema.json#/properties/ApplicationArn" + } + }, + "required": [ + "ApplicationArn" + ] + } } } } diff --git a/internal/service/cloudformation/schemas/AWS_Wisdom_Assistant.json b/internal/service/cloudformation/schemas/AWS_Wisdom_Assistant.json index fea3e8b713..678b08cbf2 100644 --- a/internal/service/cloudformation/schemas/AWS_Wisdom_Assistant.json +++ b/internal/service/cloudformation/schemas/AWS_Wisdom_Assistant.json @@ -104,9 +104,15 @@ "handlers": { "create": { "permissions": [ - "wisdom:CreateAssistant" + "kms:CreateGrant", + "kms:DescribeKey", + "wisdom:CreateAssistant", + "wisdom:TagResource" ] }, + "update": { + "permissions": [] + }, "read": { "permissions": [ "wisdom:GetAssistant" diff --git a/internal/service/cloudformation/schemas/AWS_Wisdom_AssistantAssociation.json b/internal/service/cloudformation/schemas/AWS_Wisdom_AssistantAssociation.json index 8447c09a7f..ee860f34df 100644 --- a/internal/service/cloudformation/schemas/AWS_Wisdom_AssistantAssociation.json +++ b/internal/service/cloudformation/schemas/AWS_Wisdom_AssistantAssociation.json @@ -1,6 +1,7 @@ { "typeName": "AWS::Wisdom::AssistantAssociation", "description": "Definition of AWS::Wisdom::AssistantAssociation Resource Type", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk", "definitions": { "AssociationData": { "type": "object", @@ -107,9 +108,13 @@ "handlers": { "create": { "permissions": [ - "wisdom:CreateAssistantAssociation" + "wisdom:CreateAssistantAssociation", + "wisdom:TagResource" ] }, + "update": { + "permissions": [] + }, "read": { "permissions": [ "wisdom:GetAssistantAssociation" @@ -118,7 +123,17 @@ "list": { "permissions": [ "wisdom:ListAssistantAssociations" - ] + ], + "handlerSchema": { + "properties": { + "AssistantId": { + "$ref": "resource-schema.json#/properties/AssistantId" + } + }, + "required": [ + "AssistantId" + ] + } }, "delete": { "permissions": [ diff --git a/internal/service/cloudformation/schemas/AWS_Wisdom_KnowledgeBase.json b/internal/service/cloudformation/schemas/AWS_Wisdom_KnowledgeBase.json index f464723c44..7c6bf20d04 100644 --- a/internal/service/cloudformation/schemas/AWS_Wisdom_KnowledgeBase.json +++ b/internal/service/cloudformation/schemas/AWS_Wisdom_KnowledgeBase.json @@ -165,7 +165,18 @@ "handlers": { "create": { "permissions": [ - "wisdom:CreateKnowledgeBase" + "appflow:CreateFlow", + "appflow:DeleteFlow", + "appflow:StartFlow", + "appflow:TagResource", + "appflow:UseConnectorProfile", + "app-integrations:CreateDataIntegrationAssociation", + "app-integrations:GetDataIntegration", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:ListGrants", + "wisdom:CreateKnowledgeBase", + "wisdom:TagResource" ] }, "update": { @@ -173,6 +184,9 @@ }, "delete": { "permissions": [ + "appflow:DeleteFlow", + "appflow:StopFlow", + "app-integrations:DeleteDataIntegrationAssociation", "wisdom:DeleteKnowledgeBase" ] },