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.

- -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters.manifest_file_location` + +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters.manifest_file_location` Read-Only: @@ -460,7 +485,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: @@ -470,7 +495,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: @@ -479,7 +504,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: @@ -488,8 +513,19 @@ 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.

+- `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.example +``` diff --git a/docs/resources/apprunner_service.md b/docs/resources/apprunner_service.md index f0547869d5..316c9d052c 100644 --- a/docs/resources/apprunner_service.md +++ b/docs/resources/apprunner_service.md @@ -207,6 +207,7 @@ Optional: - `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/resources/cognito_user_pool_user_to_group_attachment.md b/docs/resources/cognito_user_pool_user_to_group_attachment.md new file mode 100644 index 0000000000..55756badb7 --- /dev/null +++ b/docs/resources/cognito_user_pool_user_to_group_attachment.md @@ -0,0 +1,34 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_cognito_user_pool_user_to_group_attachment Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::Cognito::UserPoolUserToGroupAttachment +--- + +# awscc_cognito_user_pool_user_to_group_attachment (Resource) + +Resource Type definition for AWS::Cognito::UserPoolUserToGroupAttachment + + + + +## Schema + +### Required + +- `group_name` (String) +- `user_pool_id` (String) +- `username` (String) + +### Read-Only + +- `id` (String) Uniquely identifies the resource. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_cognito_user_pool_user_to_group_attachment.example +``` diff --git a/docs/resources/ec2_ipam.md b/docs/resources/ec2_ipam.md index c94d1bb73c..f899187a46 100644 --- a/docs/resources/ec2_ipam.md +++ b/docs/resources/ec2_ipam.md @@ -54,6 +54,7 @@ resource "awscc_ec2_ipam" "example" { - `description` (String) - `operating_regions` (Attributes Set) The regions IPAM is enabled for. Allows pools to be created in these regions, as well as enabling monitoring (see [below for nested schema](#nestedatt--operating_regions)) - `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. ### Read-Only diff --git a/docs/resources/ec2_subnet.md b/docs/resources/ec2_subnet.md index 7546f70462..5e5b4b8a2b 100644 --- a/docs/resources/ec2_subnet.md +++ b/docs/resources/ec2_subnet.md @@ -43,8 +43,10 @@ resource "awscc_ec2_subnet" "main" { - `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_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) - `outpost_arn` (String) - `private_dns_name_options_on_launch` (Attributes) (see [below for nested schema](#nestedatt--private_dns_name_options_on_launch)) diff --git a/docs/resources/ec2_vpc_gateway_attachment.md b/docs/resources/ec2_vpc_gateway_attachment.md new file mode 100644 index 0000000000..bac52665c7 --- /dev/null +++ b/docs/resources/ec2_vpc_gateway_attachment.md @@ -0,0 +1,38 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_ec2_vpc_gateway_attachment Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::EC2::VPCGatewayAttachment +--- + +# awscc_ec2_vpc_gateway_attachment (Resource) + +Resource Type definition for AWS::EC2::VPCGatewayAttachment + + + + +## Schema + +### Required + +- `vpc_id` (String) The ID of the VPC. + +### Optional + +- `internet_gateway_id` (String) The ID of the internet gateway. You must specify either InternetGatewayId or VpnGatewayId, but not both. +- `vpn_gateway_id` (String) The ID of the virtual private gateway. You must specify either InternetGatewayId or VpnGatewayId, but not both. + +### Read-Only + +- `attachment_type` (String) Used to identify if this resource is an Internet Gateway or Vpn Gateway Attachment +- `id` (String) Uniquely identifies the resource. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_ec2_vpc_gateway_attachment.example +``` diff --git a/docs/resources/events_rule.md b/docs/resources/events_rule.md new file mode 100644 index 0000000000..46affe803b --- /dev/null +++ b/docs/resources/events_rule.md @@ -0,0 +1,286 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_events_rule Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::Events::Rule +--- + +# awscc_events_rule (Resource) + +Resource Type definition for AWS::Events::Rule + + + + +## Schema + +### Optional + +- `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)) + +### Read-Only + +- `arn` (String) The ARN of the rule, such as arn:aws:events:us-east-2:123456789012:rule/example. +- `id` (String) Uniquely identifies the resource. + + +### Nested Schema for `targets` + +Required: + +- `arn` (String) +- `id` (String) + +Optional: + +- `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)) +- `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` + +Required: + +- `job_definition` (String) +- `job_name` (String) + +Optional: + +- `array_properties` (Attributes) (see [below for nested schema](#nestedatt--targets--batch_parameters--array_properties)) +- `retry_strategy` (Attributes) (see [below for nested schema](#nestedatt--targets--batch_parameters--retry_strategy)) + + +### Nested Schema for `targets.batch_parameters.array_properties` + +Optional: + +- `size` (Number) + + + +### Nested Schema for `targets.batch_parameters.retry_strategy` + +Optional: + +- `attempts` (Number) + + + + +### Nested Schema for `targets.dead_letter_config` + +Optional: + +- `arn` (String) + + + +### Nested Schema for `targets.ecs_parameters` + +Required: + +- `task_definition_arn` (String) + +Optional: + +- `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) + + +### Nested Schema for `targets.ecs_parameters.capacity_provider_strategy` + +Required: + +- `capacity_provider` (String) + +Optional: + +- `base` (Number) +- `weight` (Number) + + + +### Nested Schema for `targets.ecs_parameters.network_configuration` + +Optional: + +- `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` + +Required: + +- `subnets` (List of String) + +Optional: + +- `assign_public_ip` (String) +- `security_groups` (List of String) + + + + +### Nested Schema for `targets.ecs_parameters.placement_constraints` + +Optional: + +- `expression` (String) +- `type` (String) + + + +### Nested Schema for `targets.ecs_parameters.placement_strategies` + +Optional: + +- `field` (String) +- `type` (String) + + + +### Nested Schema for `targets.ecs_parameters.tag_list` + +Optional: + +- `key` (String) +- `value` (String) + + + + +### Nested Schema for `targets.http_parameters` + +Optional: + +- `header_parameters` (Map of String) +- `path_parameter_values` (List of String) +- `query_string_parameters` (Map of String) + + + +### Nested Schema for `targets.input_transformer` + +Required: + +- `input_template` (String) + +Optional: + +- `input_paths_map` (Map of String) + + + +### Nested Schema for `targets.kinesis_parameters` + +Required: + +- `partition_key_path` (String) + + + +### Nested Schema for `targets.redshift_data_parameters` + +Required: + +- `database` (String) + +Optional: + +- `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` + +Optional: + +- `maximum_event_age_in_seconds` (Number) +- `maximum_retry_attempts` (Number) + + + +### Nested Schema for `targets.run_command_parameters` + +Required: + +- `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` + +Required: + +- `key` (String) +- `values` (List of String) + + + + +### Nested Schema for `targets.sage_maker_pipeline_parameters` + +Optional: + +- `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` + +Required: + +- `name` (String) +- `value` (String) + + + + +### Nested Schema for `targets.sqs_parameters` + +Required: + +- `message_group_id` (String) + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_events_rule.example +``` diff --git a/docs/resources/gamelift_fleet.md b/docs/resources/gamelift_fleet.md index d2cbebec80..bcaed2ffb3 100644 --- a/docs/resources/gamelift_fleet.md +++ b/docs/resources/gamelift_fleet.md @@ -22,6 +22,7 @@ The AWS::GameLift::Fleet resource creates an Amazon GameLift (GameLift) fleet to ### Optional - `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. @@ -44,6 +45,7 @@ The AWS::GameLift::Fleet resource creates an Amazon GameLift (GameLift) fleet to - `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. @@ -138,6 +140,36 @@ Optional: - `parameters` (String) An optional list of parameters to pass to the server executable or Realtime script on launch. + + + +### Nested Schema for `scaling_policies` + +Required: + +- `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. + +Optional: + +- `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) +- `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` + +Required: + +- `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). + ## Import Import is supported using the following syntax: diff --git a/docs/resources/iam_user.md b/docs/resources/iam_user.md new file mode 100644 index 0000000000..89ab1c59f3 --- /dev/null +++ b/docs/resources/iam_user.md @@ -0,0 +1,69 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_iam_user Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::IAM::User +--- + +# awscc_iam_user (Resource) + +Resource Type definition for AWS::IAM::User + + + + +## Schema + +### Optional + +- `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. + +### 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. +- `id` (String) Uniquely identifies the resource. + + +### Nested Schema for `login_profile` + +Required: + +- `password` (String) The user's password. + +Optional: + +- `password_reset_required` (Boolean) Specifies whether the user is required to set a new password on next sign-in. + + + +### Nested Schema for `policies` + +Required: + +- `policy_document` (String) The policy document. +- `policy_name` (String) The friendly name (not ARN) identifying the policy. + + + +### Nested Schema for `tags` + +Required: + +- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_iam_user.example +``` diff --git a/docs/resources/medialive_multiplex.md b/docs/resources/medialive_multiplex.md new file mode 100644 index 0000000000..b45212ba4a --- /dev/null +++ b/docs/resources/medialive_multiplex.md @@ -0,0 +1,81 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_medialive_multiplex Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource schema for AWS::MediaLive::Multiplex +--- + +# awscc_medialive_multiplex (Resource) + +Resource schema for AWS::MediaLive::Multiplex + + + + +## Schema + +### Required + +- `availability_zones` (List of String) A list of availability zones for the multiplex. +- `multiplex_settings` (Attributes) Configuration for a multiplex event. (see [below for nested schema](#nestedatt--multiplex_settings)) +- `name` (String) Name of multiplex. + +### Optional + +- `destinations` (Attributes List) A list of the multiplex output destinations. (see [below for nested schema](#nestedatt--destinations)) +- `tags` (Attributes List) A collection of key-value pairs. (see [below for nested schema](#nestedatt--tags)) + +### Read-Only + +- `arn` (String) The unique arn of the multiplex. +- `id` (String) The unique id of the multiplex. +- `pipelines_running_count` (Number) The number of currently healthy pipelines. +- `program_count` (Number) The number of programs in the multiplex. +- `state` (String) + + +### Nested Schema for `multiplex_settings` + +Required: + +- `transport_stream_bitrate` (Number) Transport stream bit rate. +- `transport_stream_id` (Number) Transport stream ID. + +Optional: + +- `maximum_video_buffer_delay_milliseconds` (Number) Maximum video buffer delay in milliseconds. +- `transport_stream_reserved_bitrate` (Number) Transport stream reserved bit rate. + + + +### Nested Schema for `destinations` + +Optional: + +- `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` + +Optional: + +- `entitlement_arn` (String) The MediaConnect entitlement ARN available as a Flow source. + + + + +### Nested Schema for `tags` + +Optional: + +- `key` (String) +- `value` (String) + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_medialive_multiplex.example +``` diff --git a/docs/resources/medialive_multiplexprogram.md b/docs/resources/medialive_multiplexprogram.md new file mode 100644 index 0000000000..52cf193cf1 --- /dev/null +++ b/docs/resources/medialive_multiplexprogram.md @@ -0,0 +1,114 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_medialive_multiplexprogram Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource schema for AWS::MediaLive::Multiplexprogram +--- + +# awscc_medialive_multiplexprogram (Resource) + +Resource schema for AWS::MediaLive::Multiplexprogram + + + + +## Schema + +### Optional + +- `channel_id` (String) The MediaLive channel associated with the program. +- `multiplex_id` (String) The ID of the multiplex that the program belongs to. +- `multiplex_program_settings` (Attributes) The settings for this multiplex program. (see [below for nested schema](#nestedatt--multiplex_program_settings)) +- `packet_identifiers_map` (Attributes) The packet identifier map for this multiplex program. (see [below for nested schema](#nestedatt--packet_identifiers_map)) +- `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. + +### Read-Only + +- `id` (String) Uniquely identifies the resource. + + +### Nested Schema for `multiplex_program_settings` + +Required: + +- `program_number` (Number) Unique program number. + +Optional: + +- `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. +- `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` + +Required: + +- `provider_name` (String) Name of the provider. +- `service_name` (String) Name of the service. + + + +### Nested Schema for `multiplex_program_settings.video_settings` + +Optional: + +- `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` + +Optional: + +- `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` + +Optional: + +- `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` + +Optional: + +- `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. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_medialive_multiplexprogram.example +``` diff --git a/docs/resources/mediapackagev2_origin_endpoint.md b/docs/resources/mediapackagev2_origin_endpoint.md index 9c11bff076..6866348572 100644 --- a/docs/resources/mediapackagev2_origin_endpoint.md +++ b/docs/resources/mediapackagev2_origin_endpoint.md @@ -3,12 +3,12 @@ page_title: "awscc_mediapackagev2_origin_endpoint Resource - terraform-provider-awscc" subcategory: "" description: |- - 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.

--- # 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.

- -### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.teradata_parameters.manifest_file_location` + +### Nested Schema for `credentials.credential_pair.alternate_data_source_parameters.trino_parameters.manifest_file_location` Required: @@ -475,7 +503,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: @@ -485,7 +513,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: @@ -494,7 +522,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: @@ -503,8 +531,22 @@ 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.

+ +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.example \ No newline at end of file diff --git a/examples/resources/awscc_cognito_user_pool_user_to_group_attachment/import.sh b/examples/resources/awscc_cognito_user_pool_user_to_group_attachment/import.sh new file mode 100644 index 0000000000..2530654d72 --- /dev/null +++ b/examples/resources/awscc_cognito_user_pool_user_to_group_attachment/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_cognito_user_pool_user_to_group_attachment.example \ No newline at end of file diff --git a/examples/resources/awscc_ec2_vpc_gateway_attachment/import.sh b/examples/resources/awscc_ec2_vpc_gateway_attachment/import.sh new file mode 100644 index 0000000000..eea813a7a1 --- /dev/null +++ b/examples/resources/awscc_ec2_vpc_gateway_attachment/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_ec2_vpc_gateway_attachment.example \ No newline at end of file diff --git a/examples/resources/awscc_events_rule/import.sh b/examples/resources/awscc_events_rule/import.sh new file mode 100644 index 0000000000..64366af01c --- /dev/null +++ b/examples/resources/awscc_events_rule/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_events_rule.example \ No newline at end of file diff --git a/examples/resources/awscc_iam_user/import.sh b/examples/resources/awscc_iam_user/import.sh new file mode 100644 index 0000000000..3937a1711f --- /dev/null +++ b/examples/resources/awscc_iam_user/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_iam_user.example \ No newline at end of file diff --git a/examples/resources/awscc_medialive_multiplex/import.sh b/examples/resources/awscc_medialive_multiplex/import.sh new file mode 100644 index 0000000000..0565278318 --- /dev/null +++ b/examples/resources/awscc_medialive_multiplex/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_medialive_multiplex.example \ No newline at end of file diff --git a/examples/resources/awscc_medialive_multiplexprogram/import.sh b/examples/resources/awscc_medialive_multiplexprogram/import.sh new file mode 100644 index 0000000000..c2fda5bfa3 --- /dev/null +++ b/examples/resources/awscc_medialive_multiplexprogram/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_medialive_multiplexprogram.example \ No newline at end of file diff --git a/internal/aws/apigateway/account_resource_gen.go b/internal/aws/apigateway/account_resource_gen.go index 2d3bd9e2be..128bf949e6 100644 --- a/internal/aws/apigateway/account_resource_gen.go +++ b/internal/aws/apigateway/account_resource_gen.go @@ -44,11 +44,11 @@ func accountResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "Primary identifier which is manually generated.", + // "description": "", // "type": "string" // } "id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Primary identifier which is manually generated.", + Description: "", Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), diff --git a/internal/aws/apigateway/account_singular_data_source_gen.go b/internal/aws/apigateway/account_singular_data_source_gen.go index f3feaf5417..dd01ff1398 100644 --- a/internal/aws/apigateway/account_singular_data_source_gen.go +++ b/internal/aws/apigateway/account_singular_data_source_gen.go @@ -38,11 +38,11 @@ func accountDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "Primary identifier which is manually generated.", + // "description": "", // "type": "string" // } "id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Primary identifier which is manually generated.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/apigateway/api_key_resource_gen.go b/internal/aws/apigateway/api_key_resource_gen.go index 814c2bc23c..63248399c9 100644 --- a/internal/aws/apigateway/api_key_resource_gen.go +++ b/internal/aws/apigateway/api_key_resource_gen.go @@ -34,11 +34,11 @@ func apiKeyResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "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" // } "api_key_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A Unique Key ID which identifies the API Key. Generated by the Create API and returned by the Read and List APIs ", + Description: "", Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -48,11 +48,11 @@ func apiKeyResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "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" // } "customer_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - 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.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -63,11 +63,11 @@ func apiKeyResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "A description of the purpose of the API key.", + // "description": "The description of the ApiKey.", // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A description of the purpose of the API key.", + Description: "The description of the ApiKey.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -79,11 +79,11 @@ func apiKeyResource(ctx context.Context) (resource.Resource, error) { // // { // "default": false, - // "description": "Indicates whether the API key can be used by clients.", + // "description": "Specifies whether the ApiKey can be used by callers.", // "type": "boolean" // } "enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Indicates whether the API key can be used by clients.", + Description: "Specifies whether the ApiKey can be used by callers.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -95,11 +95,11 @@ func apiKeyResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "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" // } "generate_distinct_id": schema.BoolAttribute{ /*START ATTRIBUTE*/ - 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.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -112,11 +112,11 @@ func apiKeyResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "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" // } "name": schema.StringAttribute{ /*START ATTRIBUTE*/ - 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.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -128,16 +128,17 @@ func apiKeyResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "A list of stages to associate with this API key.", + // "description": "DEPRECATED FOR USAGE PLANS - Specifies stages associated with the API key.", // "items": { // "additionalProperties": false, + // "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.", // "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" // } // }, @@ -151,7 +152,7 @@ func apiKeyResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: RestApiId "rest_api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - 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.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -160,7 +161,7 @@ func apiKeyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: StageName "stage_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - 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.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -169,7 +170,7 @@ func apiKeyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "A list of stages to associate with this API key.", + Description: "DEPRECATED FOR USAGE PLANS - Specifies stages associated with the API key.", Optional: true, Computed: true, Validators: []validator.List{ /*START VALIDATORS*/ @@ -183,9 +184,10 @@ func apiKeyResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "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.", // "items": { // "additionalProperties": false, + // "description": "", // "properties": { // "Key": { // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", @@ -229,7 +231,7 @@ func apiKeyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - 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.", Optional: true, Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ @@ -240,11 +242,11 @@ func apiKeyResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The value of the API key. Must be at least 20 characters long.", + // "description": "Specifies a value of the API key.", // "type": "string" // } "value": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The value of the API key. Must be at least 20 characters long.", + Description: "Specifies a value of the API key.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -263,7 +265,7 @@ func apiKeyResource(ctx context.Context) (resource.Resource, error) { } schema := schema.Schema{ - 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.", Version: 1, Attributes: attributes, } diff --git a/internal/aws/apigateway/api_key_singular_data_source_gen.go b/internal/aws/apigateway/api_key_singular_data_source_gen.go index 699abf2dca..89c04c267c 100644 --- a/internal/aws/apigateway/api_key_singular_data_source_gen.go +++ b/internal/aws/apigateway/api_key_singular_data_source_gen.go @@ -27,33 +27,33 @@ func apiKeyDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "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" // } "api_key_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A Unique Key ID which identifies the API Key. Generated by the Create API and returned by the Read and List APIs ", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: CustomerId // CloudFormation resource type schema: // // { - // "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" // } "customer_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - 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.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Description // CloudFormation resource type schema: // // { - // "description": "A description of the purpose of the API key.", + // "description": "The description of the ApiKey.", // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A description of the purpose of the API key.", + Description: "The description of the ApiKey.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Enabled @@ -61,49 +61,50 @@ func apiKeyDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "default": false, - // "description": "Indicates whether the API key can be used by clients.", + // "description": "Specifies whether the ApiKey can be used by callers.", // "type": "boolean" // } "enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Indicates whether the API key can be used by clients.", + Description: "Specifies whether the ApiKey can be used by callers.", Computed: true, }, /*END ATTRIBUTE*/ // Property: GenerateDistinctId // CloudFormation resource type schema: // // { - // "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" // } "generate_distinct_id": schema.BoolAttribute{ /*START ATTRIBUTE*/ - 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.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Name // CloudFormation resource type schema: // // { - // "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" // } "name": schema.StringAttribute{ /*START ATTRIBUTE*/ - 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.", Computed: true, }, /*END ATTRIBUTE*/ // Property: StageKeys // CloudFormation resource type schema: // // { - // "description": "A list of stages to associate with this API key.", + // "description": "DEPRECATED FOR USAGE PLANS - Specifies stages associated with the API key.", // "items": { // "additionalProperties": false, + // "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.", // "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" // } // }, @@ -117,26 +118,27 @@ func apiKeyDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: RestApiId "rest_api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - 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.", Computed: true, }, /*END ATTRIBUTE*/ // Property: StageName "stage_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - 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.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "A list of stages to associate with this API key.", + Description: "DEPRECATED FOR USAGE PLANS - Specifies stages associated with the API key.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // // { - // "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.", // "items": { // "additionalProperties": false, + // "description": "", // "properties": { // "Key": { // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", @@ -174,18 +176,18 @@ func apiKeyDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - 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.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Value // CloudFormation resource type schema: // // { - // "description": "The value of the API key. Must be at least 20 characters long.", + // "description": "Specifies a value of the API key.", // "type": "string" // } "value": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The value of the API key. Must be at least 20 characters long.", + Description: "Specifies a value of the API key.", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/apigateway/authorizer_resource_gen.go b/internal/aws/apigateway/authorizer_resource_gen.go index e9241e8ce2..2e5c6ab4f8 100644 --- a/internal/aws/apigateway/authorizer_resource_gen.go +++ b/internal/aws/apigateway/authorizer_resource_gen.go @@ -61,10 +61,12 @@ func authorizerResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { + // "description": "", // "type": "string" // } "authorizer_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "", + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ diff --git a/internal/aws/apigateway/authorizer_singular_data_source_gen.go b/internal/aws/apigateway/authorizer_singular_data_source_gen.go index 126c44debd..19d442580c 100644 --- a/internal/aws/apigateway/authorizer_singular_data_source_gen.go +++ b/internal/aws/apigateway/authorizer_singular_data_source_gen.go @@ -49,10 +49,12 @@ func authorizerDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { + // "description": "", // "type": "string" // } "authorizer_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "", + Computed: true, }, /*END ATTRIBUTE*/ // Property: AuthorizerResultTtlInSeconds // CloudFormation resource type schema: diff --git a/internal/aws/apigateway/client_certificate_resource_gen.go b/internal/aws/apigateway/client_certificate_resource_gen.go index ade31538fc..c8232427cb 100644 --- a/internal/aws/apigateway/client_certificate_resource_gen.go +++ b/internal/aws/apigateway/client_certificate_resource_gen.go @@ -30,11 +30,11 @@ func clientCertificateResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The Primary Identifier of the Client Certficate, generated by a Create API Call", + // "description": "", // "type": "string" // } "client_certificate_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Primary Identifier of the Client Certficate, generated by a Create API Call", + Description: "", Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -62,6 +62,7 @@ func clientCertificateResource(ctx context.Context) (resource.Resource, error) { // "description": "The collection of tags. Each tag element is associated with a given resource.", // "items": { // "additionalProperties": false, + // "description": "", // "properties": { // "Key": { // "type": "string" diff --git a/internal/aws/apigateway/client_certificate_singular_data_source_gen.go b/internal/aws/apigateway/client_certificate_singular_data_source_gen.go index a65e2a37ac..6a5660d8fc 100644 --- a/internal/aws/apigateway/client_certificate_singular_data_source_gen.go +++ b/internal/aws/apigateway/client_certificate_singular_data_source_gen.go @@ -27,11 +27,11 @@ func clientCertificateDataSource(ctx context.Context) (datasource.DataSource, er // CloudFormation resource type schema: // // { - // "description": "The Primary Identifier of the Client Certficate, generated by a Create API Call", + // "description": "", // "type": "string" // } "client_certificate_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Primary Identifier of the Client Certficate, generated by a Create API Call", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Description @@ -52,6 +52,7 @@ func clientCertificateDataSource(ctx context.Context) (datasource.DataSource, er // "description": "The collection of tags. Each tag element is associated with a given resource.", // "items": { // "additionalProperties": false, + // "description": "", // "properties": { // "Key": { // "type": "string" diff --git a/internal/aws/apigateway/deployment_resource_gen.go b/internal/aws/apigateway/deployment_resource_gen.go index 9fdd7da34f..ed27ff190d 100644 --- a/internal/aws/apigateway/deployment_resource_gen.go +++ b/internal/aws/apigateway/deployment_resource_gen.go @@ -105,11 +105,11 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "Primary Id for this resource", + // "description": "", // "type": "string" // } "deployment_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Primary Id for this resource", + Description: "", Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -293,6 +293,7 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { // "insertionOrder": false, // "items": { // "additionalProperties": false, + // "description": "", // "properties": { // "Key": { // "description": "The key name of the tag", diff --git a/internal/aws/apigateway/deployment_singular_data_source_gen.go b/internal/aws/apigateway/deployment_singular_data_source_gen.go index 8ffe0d0464..923a2a77e1 100644 --- a/internal/aws/apigateway/deployment_singular_data_source_gen.go +++ b/internal/aws/apigateway/deployment_singular_data_source_gen.go @@ -78,11 +78,11 @@ func deploymentDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "Primary Id for this resource", + // "description": "", // "type": "string" // } "deployment_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Primary Id for this resource", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Description @@ -256,6 +256,7 @@ func deploymentDataSource(ctx context.Context) (datasource.DataSource, error) { // "insertionOrder": false, // "items": { // "additionalProperties": false, + // "description": "", // "properties": { // "Key": { // "description": "The key name of the tag", diff --git a/internal/aws/apigateway/documentation_part_resource_gen.go b/internal/aws/apigateway/documentation_part_resource_gen.go index a844c91993..88eb374c6a 100644 --- a/internal/aws/apigateway/documentation_part_resource_gen.go +++ b/internal/aws/apigateway/documentation_part_resource_gen.go @@ -32,11 +32,11 @@ func documentationPartResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The identifier of the documentation Part.", + // "description": "", // "type": "string" // } "documentation_part_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The identifier of the documentation Part.", + Description: "", Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), diff --git a/internal/aws/apigateway/documentation_part_singular_data_source_gen.go b/internal/aws/apigateway/documentation_part_singular_data_source_gen.go index 77f17f434c..cc293348be 100644 --- a/internal/aws/apigateway/documentation_part_singular_data_source_gen.go +++ b/internal/aws/apigateway/documentation_part_singular_data_source_gen.go @@ -27,11 +27,11 @@ func documentationPartDataSource(ctx context.Context) (datasource.DataSource, er // CloudFormation resource type schema: // // { - // "description": "The identifier of the documentation Part.", + // "description": "", // "type": "string" // } "documentation_part_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The identifier of the documentation Part.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Location diff --git a/internal/aws/apigateway/request_validator_resource_gen.go b/internal/aws/apigateway/request_validator_resource_gen.go index 9113706223..5d730ee9f2 100644 --- a/internal/aws/apigateway/request_validator_resource_gen.go +++ b/internal/aws/apigateway/request_validator_resource_gen.go @@ -30,11 +30,11 @@ func requestValidatorResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "Name of the request validator.", + // "description": "The name of this RequestValidator", // "type": "string" // } "name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Name of the request validator.", + Description: "The name of this RequestValidator", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -46,11 +46,11 @@ func requestValidatorResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "ID of the request validator.", + // "description": "", // "type": "string" // } "request_validator_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "ID of the request validator.", + Description: "", Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -60,11 +60,11 @@ func requestValidatorResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The identifier of the targeted API entity.", + // "description": "The string identifier of the associated RestApi.", // "type": "string" // } "rest_api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The identifier of the targeted API entity.", + Description: "The string identifier of the associated RestApi.", Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), @@ -74,11 +74,11 @@ func requestValidatorResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "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" // } "validate_request_body": schema.BoolAttribute{ /*START ATTRIBUTE*/ - 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.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -89,11 +89,11 @@ func requestValidatorResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "Indicates whether to validate request parameters.", + // "description": "A Boolean flag to indicate whether to validate request parameters (``true``) or not (``false``).", // "type": "boolean" // } "validate_request_parameters": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Indicates whether to validate request parameters.", + Description: "A Boolean flag to indicate whether to validate request parameters (``true``) or not (``false``).", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -111,7 +111,7 @@ func requestValidatorResource(ctx context.Context) (resource.Resource, error) { } schema := schema.Schema{ - 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*.", Version: 1, Attributes: attributes, } diff --git a/internal/aws/apigateway/request_validator_singular_data_source_gen.go b/internal/aws/apigateway/request_validator_singular_data_source_gen.go index e557452ad8..319200042d 100644 --- a/internal/aws/apigateway/request_validator_singular_data_source_gen.go +++ b/internal/aws/apigateway/request_validator_singular_data_source_gen.go @@ -27,55 +27,55 @@ func requestValidatorDataSource(ctx context.Context) (datasource.DataSource, err // CloudFormation resource type schema: // // { - // "description": "Name of the request validator.", + // "description": "The name of this RequestValidator", // "type": "string" // } "name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Name of the request validator.", + Description: "The name of this RequestValidator", Computed: true, }, /*END ATTRIBUTE*/ // Property: RequestValidatorId // CloudFormation resource type schema: // // { - // "description": "ID of the request validator.", + // "description": "", // "type": "string" // } "request_validator_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "ID of the request validator.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: RestApiId // CloudFormation resource type schema: // // { - // "description": "The identifier of the targeted API entity.", + // "description": "The string identifier of the associated RestApi.", // "type": "string" // } "rest_api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The identifier of the targeted API entity.", + Description: "The string identifier of the associated RestApi.", Computed: true, }, /*END ATTRIBUTE*/ // Property: ValidateRequestBody // CloudFormation resource type schema: // // { - // "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" // } "validate_request_body": schema.BoolAttribute{ /*START ATTRIBUTE*/ - 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.", Computed: true, }, /*END ATTRIBUTE*/ // Property: ValidateRequestParameters // CloudFormation resource type schema: // // { - // "description": "Indicates whether to validate request parameters.", + // "description": "A Boolean flag to indicate whether to validate request parameters (``true``) or not (``false``).", // "type": "boolean" // } "validate_request_parameters": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Indicates whether to validate request parameters.", + Description: "A Boolean flag to indicate whether to validate request parameters (``true``) or not (``false``).", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/apigateway/resource_resource_gen.go b/internal/aws/apigateway/resource_resource_gen.go index 1ce1887c6d..2d2becb170 100644 --- a/internal/aws/apigateway/resource_resource_gen.go +++ b/internal/aws/apigateway/resource_resource_gen.go @@ -57,11 +57,11 @@ func resourceResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "A unique primary identifier for a Resource", + // "description": "", // "type": "string" // } "resource_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A unique primary identifier for a Resource", + Description: "", Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), diff --git a/internal/aws/apigateway/resource_singular_data_source_gen.go b/internal/aws/apigateway/resource_singular_data_source_gen.go index ec5dbd06fc..cb1bed748e 100644 --- a/internal/aws/apigateway/resource_singular_data_source_gen.go +++ b/internal/aws/apigateway/resource_singular_data_source_gen.go @@ -49,11 +49,11 @@ func resourceDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "A unique primary identifier for a Resource", + // "description": "", // "type": "string" // } "resource_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A unique primary identifier for a Resource", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: RestApiId diff --git a/internal/aws/apigateway/rest_api_resource_gen.go b/internal/aws/apigateway/rest_api_resource_gen.go index 77e2054fd1..19db37b409 100644 --- a/internal/aws/apigateway/rest_api_resource_gen.go +++ b/internal/aws/apigateway/rest_api_resource_gen.go @@ -369,10 +369,12 @@ func restApiResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { + // "description": "", // "type": "string" // } "rest_api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "", + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -381,10 +383,12 @@ func restApiResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { + // "description": "", // "type": "string" // } "root_resource_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "", + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -396,6 +400,7 @@ func restApiResource(ctx context.Context) (resource.Resource, error) { // "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.", // "items": { // "additionalProperties": false, + // "description": "", // "properties": { // "Key": { // "type": "string" diff --git a/internal/aws/apigateway/rest_api_singular_data_source_gen.go b/internal/aws/apigateway/rest_api_singular_data_source_gen.go index 0f8e1c505b..7ed1b214c1 100644 --- a/internal/aws/apigateway/rest_api_singular_data_source_gen.go +++ b/internal/aws/apigateway/rest_api_singular_data_source_gen.go @@ -266,19 +266,23 @@ func restApiDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { + // "description": "", // "type": "string" // } "rest_api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "", + Computed: true, }, /*END ATTRIBUTE*/ // Property: RootResourceId // CloudFormation resource type schema: // // { + // "description": "", // "type": "string" // } "root_resource_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "", + Computed: true, }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: @@ -287,6 +291,7 @@ func restApiDataSource(ctx context.Context) (datasource.DataSource, error) { // "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.", // "items": { // "additionalProperties": false, + // "description": "", // "properties": { // "Key": { // "type": "string" diff --git a/internal/aws/apigateway/stage_resource_gen.go b/internal/aws/apigateway/stage_resource_gen.go index 0a14f1e714..0b85c0056c 100644 --- a/internal/aws/apigateway/stage_resource_gen.go +++ b/internal/aws/apigateway/stage_resource_gen.go @@ -461,7 +461,7 @@ func stageResource(ctx context.Context) (resource.Resource, error) { // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Identify and categorize resources.", + // "description": "", // "properties": { // "Key": { // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:.", diff --git a/internal/aws/apigateway/stage_singular_data_source_gen.go b/internal/aws/apigateway/stage_singular_data_source_gen.go index b7500eb495..1eb70119d5 100644 --- a/internal/aws/apigateway/stage_singular_data_source_gen.go +++ b/internal/aws/apigateway/stage_singular_data_source_gen.go @@ -331,7 +331,7 @@ func stageDataSource(ctx context.Context) (datasource.DataSource, error) { // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Identify and categorize resources.", + // "description": "", // "properties": { // "Key": { // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:.", diff --git a/internal/aws/apigateway/usage_plan_key_resource_gen.go b/internal/aws/apigateway/usage_plan_key_resource_gen.go index d5ad8cfbd5..2895130927 100644 --- a/internal/aws/apigateway/usage_plan_key_resource_gen.go +++ b/internal/aws/apigateway/usage_plan_key_resource_gen.go @@ -31,11 +31,11 @@ func usagePlanKeyResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "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" // } "id": schema.StringAttribute{ /*START ATTRIBUTE*/ - 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: "", Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), diff --git a/internal/aws/apigateway/usage_plan_key_singular_data_source_gen.go b/internal/aws/apigateway/usage_plan_key_singular_data_source_gen.go index b9e00685cb..d37f657003 100644 --- a/internal/aws/apigateway/usage_plan_key_singular_data_source_gen.go +++ b/internal/aws/apigateway/usage_plan_key_singular_data_source_gen.go @@ -27,11 +27,11 @@ func usagePlanKeyDataSource(ctx context.Context) (datasource.DataSource, error) // CloudFormation resource type schema: // // { - // "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" // } "id": schema.StringAttribute{ /*START ATTRIBUTE*/ - 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: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: KeyId diff --git a/internal/aws/apigateway/usage_plan_resource_gen.go b/internal/aws/apigateway/usage_plan_resource_gen.go index 30ecaadde2..74a17f6d9e 100644 --- a/internal/aws/apigateway/usage_plan_resource_gen.go +++ b/internal/aws/apigateway/usage_plan_resource_gen.go @@ -39,32 +39,34 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The API stages to associate with this usage plan.", + // "description": "The associated API stages of a usage plan.", // "items": { // "additionalProperties": false, + // "description": "API stage name of the associated API stage in a usage plan.", // "properties": { // "ApiId": { - // "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.", // "type": "string" // }, // "Stage": { - // "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.", // "type": "string" // }, // "Throttle": { // "additionalProperties": false, - // "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.", // "patternProperties": { // "": { // "additionalProperties": false, + // "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.", // "properties": { // "BurstLimit": { - // "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.", // "minimum": 0, // "type": "integer" // }, // "RateLimit": { - // "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.", // "minimum": 0, // "type": "number" // } @@ -85,7 +87,7 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: ApiId "api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - 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.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -94,7 +96,7 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Stage "stage": schema.StringAttribute{ /*START ATTRIBUTE*/ - 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.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -108,7 +110,7 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: BurstLimit "burst_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ - 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.", Optional: true, Computed: true, Validators: []validator.Int64{ /*START VALIDATORS*/ @@ -120,7 +122,7 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: RateLimit "rate_limit": schema.Float64Attribute{ /*START ATTRIBUTE*/ - 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.", Optional: true, Computed: true, Validators: []validator.Float64{ /*START VALIDATORS*/ @@ -132,7 +134,7 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED 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.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ @@ -141,7 +143,7 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The API stages to associate with this usage plan.", + Description: "The associated API stages of a usage plan.", Optional: true, Computed: true, Validators: []validator.List{ /*START VALIDATORS*/ @@ -155,11 +157,11 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "A description of the usage plan.", + // "description": "The description of a usage plan.", // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A description of the usage plan.", + Description: "The description of a usage plan.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -170,11 +172,11 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The provider-assigned unique ID for this managed resource.", + // "description": "", // "type": "string" // } "id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The provider-assigned unique ID for this managed resource.", + Description: "", Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -185,20 +187,20 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { // // { // "additionalProperties": false, - // "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.", // "properties": { // "Limit": { - // "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.", // "minimum": 0, // "type": "integer" // }, // "Offset": { - // "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.", // "minimum": 0, // "type": "integer" // }, // "Period": { - // "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\".", // "type": "string" // } // }, @@ -208,7 +210,7 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Limit "limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ - 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.", Optional: true, Computed: true, Validators: []validator.Int64{ /*START VALIDATORS*/ @@ -220,7 +222,7 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Offset "offset": schema.Int64Attribute{ /*START ATTRIBUTE*/ - 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.", Optional: true, Computed: true, Validators: []validator.Int64{ /*START VALIDATORS*/ @@ -232,7 +234,7 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Period "period": schema.StringAttribute{ /*START ATTRIBUTE*/ - 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\".", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -240,7 +242,7 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - 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.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -251,10 +253,11 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "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, // "items": { // "additionalProperties": false, + // "description": "", // "properties": { // "Key": { // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", @@ -299,7 +302,7 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - 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.", Optional: true, Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ @@ -312,15 +315,15 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { // // { // "additionalProperties": false, - // "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.", // "properties": { // "BurstLimit": { - // "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.", // "minimum": 0, // "type": "integer" // }, // "RateLimit": { - // "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.", // "minimum": 0, // "type": "number" // } @@ -331,7 +334,7 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: BurstLimit "burst_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ - 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.", Optional: true, Computed: true, Validators: []validator.Int64{ /*START VALIDATORS*/ @@ -343,7 +346,7 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: RateLimit "rate_limit": schema.Float64Attribute{ /*START ATTRIBUTE*/ - 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.", Optional: true, Computed: true, Validators: []validator.Float64{ /*START VALIDATORS*/ @@ -354,7 +357,7 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - 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.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -365,11 +368,11 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "A name for the usage plan.", + // "description": "The name of a usage plan.", // "type": "string" // } "usage_plan_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A name for the usage plan.", + Description: "The name of a usage plan.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -379,7 +382,7 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { } /*END SCHEMA*/ schema := schema.Schema{ - 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.", Version: 1, Attributes: attributes, } diff --git a/internal/aws/apigateway/usage_plan_singular_data_source_gen.go b/internal/aws/apigateway/usage_plan_singular_data_source_gen.go index 578c085be2..8e7cb8f834 100644 --- a/internal/aws/apigateway/usage_plan_singular_data_source_gen.go +++ b/internal/aws/apigateway/usage_plan_singular_data_source_gen.go @@ -27,32 +27,34 @@ func usagePlanDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The API stages to associate with this usage plan.", + // "description": "The associated API stages of a usage plan.", // "items": { // "additionalProperties": false, + // "description": "API stage name of the associated API stage in a usage plan.", // "properties": { // "ApiId": { - // "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.", // "type": "string" // }, // "Stage": { - // "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.", // "type": "string" // }, // "Throttle": { // "additionalProperties": false, - // "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.", // "patternProperties": { // "": { // "additionalProperties": false, + // "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.", // "properties": { // "BurstLimit": { - // "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.", // "minimum": 0, // "type": "integer" // }, // "RateLimit": { - // "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.", // "minimum": 0, // "type": "number" // } @@ -73,12 +75,12 @@ func usagePlanDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: ApiId "api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - 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.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Stage "stage": schema.StringAttribute{ /*START ATTRIBUTE*/ - 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.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Throttle @@ -88,44 +90,44 @@ func usagePlanDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: BurstLimit "burst_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ - 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.", Computed: true, }, /*END ATTRIBUTE*/ // Property: RateLimit "rate_limit": schema.Float64Attribute{ /*START ATTRIBUTE*/ - 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.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED 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.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The API stages to associate with this usage plan.", + Description: "The associated API stages of a usage plan.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Description // CloudFormation resource type schema: // // { - // "description": "A description of the usage plan.", + // "description": "The description of a usage plan.", // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A description of the usage plan.", + Description: "The description of a usage plan.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Id // CloudFormation resource type schema: // // { - // "description": "The provider-assigned unique ID for this managed resource.", + // "description": "", // "type": "string" // } "id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The provider-assigned unique ID for this managed resource.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Quota @@ -133,20 +135,20 @@ func usagePlanDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "additionalProperties": false, - // "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.", // "properties": { // "Limit": { - // "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.", // "minimum": 0, // "type": "integer" // }, // "Offset": { - // "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.", // "minimum": 0, // "type": "integer" // }, // "Period": { - // "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\".", // "type": "string" // } // }, @@ -156,31 +158,32 @@ func usagePlanDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Limit "limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ - 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.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Offset "offset": schema.Int64Attribute{ /*START ATTRIBUTE*/ - 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.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Period "period": schema.StringAttribute{ /*START ATTRIBUTE*/ - 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\".", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - 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.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // // { - // "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, // "items": { // "additionalProperties": false, + // "description": "", // "properties": { // "Key": { // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", @@ -219,7 +222,7 @@ func usagePlanDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - 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.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Throttle @@ -227,15 +230,15 @@ func usagePlanDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "additionalProperties": false, - // "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.", // "properties": { // "BurstLimit": { - // "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.", // "minimum": 0, // "type": "integer" // }, // "RateLimit": { - // "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.", // "minimum": 0, // "type": "number" // } @@ -246,27 +249,27 @@ func usagePlanDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: BurstLimit "burst_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ - 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.", Computed: true, }, /*END ATTRIBUTE*/ // Property: RateLimit "rate_limit": schema.Float64Attribute{ /*START ATTRIBUTE*/ - 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.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - 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.", Computed: true, }, /*END ATTRIBUTE*/ // Property: UsagePlanName // CloudFormation resource type schema: // // { - // "description": "A name for the usage plan.", + // "description": "The name of a usage plan.", // "type": "string" // } "usage_plan_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A name for the usage plan.", + Description: "The name of a usage plan.", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/appconfig/application_resource_gen.go b/internal/aws/appconfig/application_resource_gen.go index 8aaa9dd94c..6265331075 100644 --- a/internal/aws/appconfig/application_resource_gen.go +++ b/internal/aws/appconfig/application_resource_gen.go @@ -79,7 +79,7 @@ func applicationResource(ctx context.Context) (resource.Resource, error) { // "description": "Metadata to assign to the application. Tags help organize and categorize your AWS AppConfig resources. Each tag consists of a key and an optional value, both of which you define.", // "properties": { // "Key": { - // "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:.", // "maxLength": 128, // "minLength": 1, // "pattern": "", @@ -106,7 +106,7 @@ func applicationResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Key "key": schema.StringAttribute{ /*START ATTRIBUTE*/ - 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:.", Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 128), diff --git a/internal/aws/appconfig/application_singular_data_source_gen.go b/internal/aws/appconfig/application_singular_data_source_gen.go index d159af8989..919d5354ad 100644 --- a/internal/aws/appconfig/application_singular_data_source_gen.go +++ b/internal/aws/appconfig/application_singular_data_source_gen.go @@ -67,7 +67,7 @@ func applicationDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "Metadata to assign to the application. Tags help organize and categorize your AWS AppConfig resources. Each tag consists of a key and an optional value, both of which you define.", // "properties": { // "Key": { - // "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:.", // "maxLength": 128, // "minLength": 1, // "pattern": "", @@ -94,7 +94,7 @@ func applicationDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Key "key": schema.StringAttribute{ /*START ATTRIBUTE*/ - 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:.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Value diff --git a/internal/aws/appconfig/configuration_profile_resource_gen.go b/internal/aws/appconfig/configuration_profile_resource_gen.go new file mode 100644 index 0000000000..38d8869600 --- /dev/null +++ b/internal/aws/appconfig/configuration_profile_resource_gen.go @@ -0,0 +1,376 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package appconfig + +import ( + "context" + "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "regexp" + + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_appconfig_configuration_profile", configurationProfileResource) +} + +// configurationProfileResource returns the Terraform awscc_appconfig_configuration_profile resource. +// This Terraform resource corresponds to the CloudFormation AWS::AppConfig::ConfigurationProfile resource. +func configurationProfileResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ApplicationId + // CloudFormation resource type schema: + // + // { + // "description": "The application ID.", + // "pattern": "[a-z0-9]{4,7}", + // "type": "string" + // } + "application_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The application ID.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("[a-z0-9]{4,7}"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ConfigurationProfileId + // CloudFormation resource type schema: + // + // { + // "description": "The configuration profile ID", + // "type": "string" + // } + "configuration_profile_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The configuration profile ID", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "A description of the configuration profile.", + // "maxLength": 1024, + // "minLength": 0, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A description of the configuration profile.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 1024), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: KmsKeyArn + // CloudFormation resource type schema: + // + // { + // "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.", + // "maxLength": 2048, + // "minLength": 20, + // "pattern": "arn:(aws[a-zA-Z-]*)?:[a-z]+:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:[a-zA-Z0-9-_/:.]+", + // "type": "string" + // } + "kms_key_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: KmsKeyIdentifier + // CloudFormation resource type schema: + // + // { + // "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})$", + // "type": "string" + // } + "kms_key_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The AWS Key Management Service key identifier (key ID, key alias, or key ARN) provided when the resource was created or updated.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^[\\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})$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LocationUri + // CloudFormation resource type schema: + // + // { + // "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.", + // "maxLength": 2048, + // "minLength": 1, + // "type": "string" + // } + "location_uri": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 2048), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "A name for the configuration profile.", + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A name for the configuration profile.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: RetrievalRoleArn + // CloudFormation resource type schema: + // + // { + // "description": "The ARN of an IAM role with permission to access the configuration at the specified LocationUri.", + // "maxLength": 2048, + // "minLength": 20, + // "pattern": "^((arn):(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):(iam)::\\d{12}:role[/].*)$", + // "type": "string" + // } + "retrieval_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of an IAM role with permission to access the configuration at the specified LocationUri.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(20, 2048), + stringvalidator.RegexMatches(regexp.MustCompile("^((arn):(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):(iam)::\\d{12}:role[/].*)$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "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.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "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.", + // "properties": { + // "Key": { + // "description": "The key-value string map. The tag key can be up to 128 characters and must not start with aws:.", + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Value": { + // "description": "The tag value can be up to 256 characters.", + // "maxLength": 256, + // "minLength": 0, + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + "tags": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The key-value string map. The tag key can be up to 128 characters and must not start with aws:.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The tag value can be up to 256 characters.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 256), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "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.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Type + // CloudFormation resource type schema: + // + // { + // "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\\.]+", + // "type": "string" + // } + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z\\.]+"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Validators + // CloudFormation resource type schema: + // + // { + // "description": "A list of methods for validating the configuration.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A list of methods for validating the configuration.", + // "properties": { + // "Content": { + // "description": "Either the JSON Schema content or the Amazon Resource Name (ARN) of an Lambda function.", + // "maxLength": 32768, + // "minLength": 0, + // "type": "string" + // }, + // "Type": { + // "description": "AWS AppConfig supports validators of type JSON_SCHEMA and LAMBDA.", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "maxItems": 2, + // "type": "array", + // "uniqueItems": false + // } + "validators": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Content + "content": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Either the JSON Schema content or the Amazon Resource Name (ARN) of an Lambda function.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 32768), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "AWS AppConfig supports validators of type JSON_SCHEMA and LAMBDA.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of methods for validating the configuration.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeAtMost(2), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.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: "An example resource schema demonstrating some basic constructs and validation rules.", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::AppConfig::ConfigurationProfile").WithTerraformTypeName("awscc_appconfig_configuration_profile") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(true) + opts = opts.WithAttributeNameMap(map[string]string{ + "application_id": "ApplicationId", + "configuration_profile_id": "ConfigurationProfileId", + "content": "Content", + "description": "Description", + "key": "Key", + "kms_key_arn": "KmsKeyArn", + "kms_key_identifier": "KmsKeyIdentifier", + "location_uri": "LocationUri", + "name": "Name", + "retrieval_role_arn": "RetrievalRoleArn", + "tags": "Tags", + "type": "Type", + "validators": "Validators", + "value": "Value", + }) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/appconfig/configuration_profile_resource_gen_test.go b/internal/aws/appconfig/configuration_profile_resource_gen_test.go new file mode 100644 index 0000000000..03d4470f45 --- /dev/null +++ b/internal/aws/appconfig/configuration_profile_resource_gen_test.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package appconfig_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSAppConfigConfigurationProfile_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::AppConfig::ConfigurationProfile", "awscc_appconfig_configuration_profile", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/appconfig/configuration_profile_singular_data_source_gen.go b/internal/aws/appconfig/configuration_profile_singular_data_source_gen.go new file mode 100644 index 0000000000..c3c9a8a7d6 --- /dev/null +++ b/internal/aws/appconfig/configuration_profile_singular_data_source_gen.go @@ -0,0 +1,272 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package appconfig + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_appconfig_configuration_profile", configurationProfileDataSource) +} + +// configurationProfileDataSource returns the Terraform awscc_appconfig_configuration_profile data source. +// This Terraform data source corresponds to the CloudFormation AWS::AppConfig::ConfigurationProfile resource. +func configurationProfileDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ApplicationId + // CloudFormation resource type schema: + // + // { + // "description": "The application ID.", + // "pattern": "[a-z0-9]{4,7}", + // "type": "string" + // } + "application_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The application ID.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ConfigurationProfileId + // CloudFormation resource type schema: + // + // { + // "description": "The configuration profile ID", + // "type": "string" + // } + "configuration_profile_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The configuration profile ID", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "A description of the configuration profile.", + // "maxLength": 1024, + // "minLength": 0, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A description of the configuration profile.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: KmsKeyArn + // CloudFormation resource type schema: + // + // { + // "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.", + // "maxLength": 2048, + // "minLength": 20, + // "pattern": "arn:(aws[a-zA-Z-]*)?:[a-z]+:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:[a-zA-Z0-9-_/:.]+", + // "type": "string" + // } + "kms_key_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: KmsKeyIdentifier + // CloudFormation resource type schema: + // + // { + // "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})$", + // "type": "string" + // } + "kms_key_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The AWS Key Management Service key identifier (key ID, key alias, or key ARN) provided when the resource was created or updated.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LocationUri + // CloudFormation resource type schema: + // + // { + // "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.", + // "maxLength": 2048, + // "minLength": 1, + // "type": "string" + // } + "location_uri": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "A name for the configuration profile.", + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A name for the configuration profile.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RetrievalRoleArn + // CloudFormation resource type schema: + // + // { + // "description": "The ARN of an IAM role with permission to access the configuration at the specified LocationUri.", + // "maxLength": 2048, + // "minLength": 20, + // "pattern": "^((arn):(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):(iam)::\\d{12}:role[/].*)$", + // "type": "string" + // } + "retrieval_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of an IAM role with permission to access the configuration at the specified LocationUri.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "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.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "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.", + // "properties": { + // "Key": { + // "description": "The key-value string map. The tag key can be up to 128 characters and must not start with aws:.", + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Value": { + // "description": "The tag value can be up to 256 characters.", + // "maxLength": 256, + // "minLength": 0, + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + "tags": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The key-value string map. The tag key can be up to 128 characters and must not start with aws:.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The tag value can be up to 256 characters.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + 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.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + // CloudFormation resource type schema: + // + // { + // "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\\.]+", + // "type": "string" + // } + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Validators + // CloudFormation resource type schema: + // + // { + // "description": "A list of methods for validating the configuration.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A list of methods for validating the configuration.", + // "properties": { + // "Content": { + // "description": "Either the JSON Schema content or the Amazon Resource Name (ARN) of an Lambda function.", + // "maxLength": 32768, + // "minLength": 0, + // "type": "string" + // }, + // "Type": { + // "description": "AWS AppConfig supports validators of type JSON_SCHEMA and LAMBDA.", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "maxItems": 2, + // "type": "array", + // "uniqueItems": false + // } + "validators": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Content + "content": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Either the JSON Schema content or the Amazon Resource Name (ARN) of an Lambda function.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "AWS AppConfig supports validators of type JSON_SCHEMA and LAMBDA.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of methods for validating the configuration.", + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::AppConfig::ConfigurationProfile", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::AppConfig::ConfigurationProfile").WithTerraformTypeName("awscc_appconfig_configuration_profile") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "application_id": "ApplicationId", + "configuration_profile_id": "ConfigurationProfileId", + "content": "Content", + "description": "Description", + "key": "Key", + "kms_key_arn": "KmsKeyArn", + "kms_key_identifier": "KmsKeyIdentifier", + "location_uri": "LocationUri", + "name": "Name", + "retrieval_role_arn": "RetrievalRoleArn", + "tags": "Tags", + "type": "Type", + "validators": "Validators", + "value": "Value", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/appconfig/configuration_profile_singular_data_source_gen_test.go b/internal/aws/appconfig/configuration_profile_singular_data_source_gen_test.go new file mode 100644 index 0000000000..a6135ec81c --- /dev/null +++ b/internal/aws/appconfig/configuration_profile_singular_data_source_gen_test.go @@ -0,0 +1,36 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package appconfig_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSAppConfigConfigurationProfileDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::AppConfig::ConfigurationProfile", "awscc_appconfig_configuration_profile", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSAppConfigConfigurationProfileDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::AppConfig::ConfigurationProfile", "awscc_appconfig_configuration_profile", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/apprunner/service_resource_gen.go b/internal/aws/apprunner/service_resource_gen.go index 5c2271cd02..0a0a6bd661 100644 --- a/internal/aws/apprunner/service_resource_gen.go +++ b/internal/aws/apprunner/service_resource_gen.go @@ -342,6 +342,14 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { // "IsPubliclyAccessible" // ], // "type": "object" + // }, + // "IpAddressType": { + // "description": "App Runner service endpoint IP address type", + // "enum": [ + // "IPV4", + // "DUAL_STACK" + // ], + // "type": "string" // } // }, // "type": "object" @@ -398,6 +406,21 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: IpAddressType + "ip_address_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "App Runner service endpoint IP address type", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "IPV4", + "DUAL_STACK", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "Network configuration", Optional: true, @@ -1227,6 +1250,7 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { "instance_configuration": "InstanceConfiguration", "instance_role_arn": "InstanceRoleArn", "interval": "Interval", + "ip_address_type": "IpAddressType", "is_publicly_accessible": "IsPubliclyAccessible", "key": "Key", "kms_key": "KmsKey", diff --git a/internal/aws/apprunner/service_singular_data_source_gen.go b/internal/aws/apprunner/service_singular_data_source_gen.go index 0262f0aad9..213e676bcf 100644 --- a/internal/aws/apprunner/service_singular_data_source_gen.go +++ b/internal/aws/apprunner/service_singular_data_source_gen.go @@ -245,6 +245,14 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { // "IsPubliclyAccessible" // ], // "type": "object" + // }, + // "IpAddressType": { + // "description": "App Runner service endpoint IP address type", + // "enum": [ + // "IPV4", + // "DUAL_STACK" + // ], + // "type": "string" // } // }, // "type": "object" @@ -280,6 +288,11 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "Network ingress configuration", Computed: true, }, /*END ATTRIBUTE*/ + // Property: IpAddressType + "ip_address_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "App Runner service endpoint IP address type", + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "Network configuration", Computed: true, @@ -900,6 +913,7 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { "instance_configuration": "InstanceConfiguration", "instance_role_arn": "InstanceRoleArn", "interval": "Interval", + "ip_address_type": "IpAddressType", "is_publicly_accessible": "IsPubliclyAccessible", "key": "Key", "kms_key": "KmsKey", diff --git a/internal/aws/cognito/user_pool_user_to_group_attachment_resource_gen.go b/internal/aws/cognito/user_pool_user_to_group_attachment_resource_gen.go new file mode 100644 index 0000000000..1de1fb0314 --- /dev/null +++ b/internal/aws/cognito/user_pool_user_to_group_attachment_resource_gen.go @@ -0,0 +1,102 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package cognito + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_cognito_user_pool_user_to_group_attachment", userPoolUserToGroupAttachmentResource) +} + +// userPoolUserToGroupAttachmentResource returns the Terraform awscc_cognito_user_pool_user_to_group_attachment resource. +// This Terraform resource corresponds to the CloudFormation AWS::Cognito::UserPoolUserToGroupAttachment resource. +func userPoolUserToGroupAttachmentResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: GroupName + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: UserPoolId + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "user_pool_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Username + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "username": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*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 Type definition for AWS::Cognito::UserPoolUserToGroupAttachment", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Cognito::UserPoolUserToGroupAttachment").WithTerraformTypeName("awscc_cognito_user_pool_user_to_group_attachment") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(true) + opts = opts.WithAttributeNameMap(map[string]string{ + "group_name": "GroupName", + "user_pool_id": "UserPoolId", + "username": "Username", + }) + + opts = opts.IsImmutableType(true) + + opts = opts.WithCreateTimeoutInMinutes(2).WithDeleteTimeoutInMinutes(2) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/cognito/user_pool_user_to_group_attachment_resource_gen_test.go b/internal/aws/cognito/user_pool_user_to_group_attachment_resource_gen_test.go new file mode 100644 index 0000000000..5e963c4bb9 --- /dev/null +++ b/internal/aws/cognito/user_pool_user_to_group_attachment_resource_gen_test.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package cognito_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSCognitoUserPoolUserToGroupAttachment_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Cognito::UserPoolUserToGroupAttachment", "awscc_cognito_user_pool_user_to_group_attachment", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/cognito/user_pool_user_to_group_attachment_singular_data_source_gen.go b/internal/aws/cognito/user_pool_user_to_group_attachment_singular_data_source_gen.go new file mode 100644 index 0000000000..a3b1e148e0 --- /dev/null +++ b/internal/aws/cognito/user_pool_user_to_group_attachment_singular_data_source_gen.go @@ -0,0 +1,82 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package cognito + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_cognito_user_pool_user_to_group_attachment", userPoolUserToGroupAttachmentDataSource) +} + +// userPoolUserToGroupAttachmentDataSource returns the Terraform awscc_cognito_user_pool_user_to_group_attachment data source. +// This Terraform data source corresponds to the CloudFormation AWS::Cognito::UserPoolUserToGroupAttachment resource. +func userPoolUserToGroupAttachmentDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: GroupName + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: UserPoolId + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "user_pool_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Username + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "username": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::Cognito::UserPoolUserToGroupAttachment", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Cognito::UserPoolUserToGroupAttachment").WithTerraformTypeName("awscc_cognito_user_pool_user_to_group_attachment") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "group_name": "GroupName", + "user_pool_id": "UserPoolId", + "username": "Username", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/cognito/user_pool_user_to_group_attachment_singular_data_source_gen_test.go b/internal/aws/cognito/user_pool_user_to_group_attachment_singular_data_source_gen_test.go new file mode 100644 index 0000000000..8f58e391e7 --- /dev/null +++ b/internal/aws/cognito/user_pool_user_to_group_attachment_singular_data_source_gen_test.go @@ -0,0 +1,36 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package cognito_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSCognitoUserPoolUserToGroupAttachmentDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Cognito::UserPoolUserToGroupAttachment", "awscc_cognito_user_pool_user_to_group_attachment", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSCognitoUserPoolUserToGroupAttachmentDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Cognito::UserPoolUserToGroupAttachment", "awscc_cognito_user_pool_user_to_group_attachment", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/connect/phone_number_resource_gen.go b/internal/aws/connect/phone_number_resource_gen.go index 727cff03fd..c3bace5e6a 100644 --- a/internal/aws/connect/phone_number_resource_gen.go +++ b/internal/aws/connect/phone_number_resource_gen.go @@ -80,7 +80,6 @@ func phoneNumberResource(ctx context.Context) (resource.Resource, error) { }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), - stringplanmodifier.RequiresReplace(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: PhoneNumberArn diff --git a/internal/aws/ec2/ipam_resource_gen.go b/internal/aws/ec2/ipam_resource_gen.go index ba57a598b3..ca8f90a74d 100644 --- a/internal/aws/ec2/ipam_resource_gen.go +++ b/internal/aws/ec2/ipam_resource_gen.go @@ -255,6 +255,31 @@ func iPAMResource(ctx context.Context) (resource.Resource, error) { setplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: Tier + // CloudFormation resource type schema: + // + // { + // "description": "The tier of the IPAM.", + // "enum": [ + // "free", + // "advanced" + // ], + // "type": "string" + // } + "tier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The tier of the IPAM.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "free", + "advanced", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ attributes["id"] = schema.StringAttribute{ @@ -290,6 +315,7 @@ func iPAMResource(ctx context.Context) (resource.Resource, error) { "resource_discovery_association_count": "ResourceDiscoveryAssociationCount", "scope_count": "ScopeCount", "tags": "Tags", + "tier": "Tier", "value": "Value", }) diff --git a/internal/aws/ec2/ipam_singular_data_source_gen.go b/internal/aws/ec2/ipam_singular_data_source_gen.go index 24b5daeb5c..ed95859f5f 100644 --- a/internal/aws/ec2/ipam_singular_data_source_gen.go +++ b/internal/aws/ec2/ipam_singular_data_source_gen.go @@ -207,6 +207,21 @@ func iPAMDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "An array of key-value pairs to apply to this resource.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: Tier + // CloudFormation resource type schema: + // + // { + // "description": "The tier of the IPAM.", + // "enum": [ + // "free", + // "advanced" + // ], + // "type": "string" + // } + "tier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The tier of the IPAM.", + Computed: true, + }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ attributes["id"] = schema.StringAttribute{ @@ -237,6 +252,7 @@ func iPAMDataSource(ctx context.Context) (datasource.DataSource, error) { "resource_discovery_association_count": "ResourceDiscoveryAssociationCount", "scope_count": "ScopeCount", "tags": "Tags", + "tier": "Tier", "value": "Value", }) diff --git a/internal/aws/ec2/subnet_resource_gen.go b/internal/aws/ec2/subnet_resource_gen.go index dd98b79151..5baf523a1b 100644 --- a/internal/aws/ec2/subnet_resource_gen.go +++ b/internal/aws/ec2/subnet_resource_gen.go @@ -11,6 +11,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework/resource" "github.com/hashicorp/terraform-plugin-framework/resource/schema" "github.com/hashicorp/terraform-plugin-framework/resource/schema/boolplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/int64planmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" @@ -96,6 +97,21 @@ func subnetResource(ctx context.Context) (resource.Resource, error) { boolplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: Ipv4NetmaskLength + // CloudFormation resource type schema: + // + // { + // "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" + // } + "ipv_4_netmask_length": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The netmask length of the IPv4 CIDR you want to allocate to this subnet from an Amazon VPC IP Address Manager (IPAM) pool", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Ipv6CidrBlock // CloudFormation resource type schema: // @@ -140,6 +156,21 @@ func subnetResource(ctx context.Context) (resource.Resource, error) { boolplanmodifier.RequiresReplace(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: Ipv6NetmaskLength + // CloudFormation resource type schema: + // + // { + // "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" + // } + "ipv_6_netmask_length": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The netmask length of the IPv6 CIDR you want to allocate to this subnet from an Amazon VPC IP Address Manager (IPAM) pool", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: MapPublicIpOnLaunch // CloudFormation resource type schema: // @@ -326,9 +357,11 @@ func subnetResource(ctx context.Context) (resource.Resource, error) { "enable_resource_name_dns_a_record": "EnableResourceNameDnsARecord", "enable_resource_name_dns_aaaa_record": "EnableResourceNameDnsAAAARecord", "hostname_type": "HostnameType", + "ipv_4_netmask_length": "Ipv4NetmaskLength", "ipv_6_cidr_block": "Ipv6CidrBlock", "ipv_6_cidr_blocks": "Ipv6CidrBlocks", "ipv_6_native": "Ipv6Native", + "ipv_6_netmask_length": "Ipv6NetmaskLength", "key": "Key", "map_public_ip_on_launch": "MapPublicIpOnLaunch", "network_acl_association_id": "NetworkAclAssociationId", diff --git a/internal/aws/ec2/subnet_singular_data_source_gen.go b/internal/aws/ec2/subnet_singular_data_source_gen.go index 029b56c9d7..fe5d6ef355 100644 --- a/internal/aws/ec2/subnet_singular_data_source_gen.go +++ b/internal/aws/ec2/subnet_singular_data_source_gen.go @@ -68,6 +68,17 @@ func subnetDataSource(ctx context.Context) (datasource.DataSource, error) { "enable_dns_64": schema.BoolAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: Ipv4NetmaskLength + // CloudFormation resource type schema: + // + // { + // "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" + // } + "ipv_4_netmask_length": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The netmask length of the IPv4 CIDR you want to allocate to this subnet from an Amazon VPC IP Address Manager (IPAM) pool", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Ipv6CidrBlock // CloudFormation resource type schema: // @@ -100,6 +111,17 @@ func subnetDataSource(ctx context.Context) (datasource.DataSource, error) { "ipv_6_native": schema.BoolAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: Ipv6NetmaskLength + // CloudFormation resource type schema: + // + // { + // "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" + // } + "ipv_6_netmask_length": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The netmask length of the IPv6 CIDR you want to allocate to this subnet from an Amazon VPC IP Address Manager (IPAM) pool", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: MapPublicIpOnLaunch // CloudFormation resource type schema: // @@ -243,9 +265,11 @@ func subnetDataSource(ctx context.Context) (datasource.DataSource, error) { "enable_resource_name_dns_a_record": "EnableResourceNameDnsARecord", "enable_resource_name_dns_aaaa_record": "EnableResourceNameDnsAAAARecord", "hostname_type": "HostnameType", + "ipv_4_netmask_length": "Ipv4NetmaskLength", "ipv_6_cidr_block": "Ipv6CidrBlock", "ipv_6_cidr_blocks": "Ipv6CidrBlocks", "ipv_6_native": "Ipv6Native", + "ipv_6_netmask_length": "Ipv6NetmaskLength", "key": "Key", "map_public_ip_on_launch": "MapPublicIpOnLaunch", "network_acl_association_id": "NetworkAclAssociationId", diff --git a/internal/aws/ec2/vpc_gateway_attachment_plural_data_source_gen.go b/internal/aws/ec2/vpc_gateway_attachment_plural_data_source_gen.go new file mode 100644 index 0000000000..123570be7f --- /dev/null +++ b/internal/aws/ec2/vpc_gateway_attachment_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 ec2 + +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_ec2_vpc_gateway_attachments", vPCGatewayAttachmentsDataSource) +} + +// vPCGatewayAttachmentsDataSource returns the Terraform awscc_ec2_vpc_gateway_attachments data source. +// This Terraform data source corresponds to the CloudFormation AWS::EC2::VPCGatewayAttachment resource. +func vPCGatewayAttachmentsDataSource(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::EC2::VPCGatewayAttachment", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::EC2::VPCGatewayAttachment").WithTerraformTypeName("awscc_ec2_vpc_gateway_attachments") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/ec2/vpc_gateway_attachment_plural_data_source_gen_test.go b/internal/aws/ec2/vpc_gateway_attachment_plural_data_source_gen_test.go new file mode 100644 index 0000000000..adb3d61529 --- /dev/null +++ b/internal/aws/ec2/vpc_gateway_attachment_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 ec2_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSEC2VPCGatewayAttachmentsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::EC2::VPCGatewayAttachment", "awscc_ec2_vpc_gateway_attachments", "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/ec2/vpc_gateway_attachment_resource_gen.go b/internal/aws/ec2/vpc_gateway_attachment_resource_gen.go new file mode 100644 index 0000000000..830b89cc59 --- /dev/null +++ b/internal/aws/ec2/vpc_gateway_attachment_resource_gen.go @@ -0,0 +1,125 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_ec2_vpc_gateway_attachment", vPCGatewayAttachmentResource) +} + +// vPCGatewayAttachmentResource returns the Terraform awscc_ec2_vpc_gateway_attachment resource. +// This Terraform resource corresponds to the CloudFormation AWS::EC2::VPCGatewayAttachment resource. +func vPCGatewayAttachmentResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AttachmentType + // CloudFormation resource type schema: + // + // { + // "description": "Used to identify if this resource is an Internet Gateway or Vpn Gateway Attachment ", + // "type": "string" + // } + "attachment_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Used to identify if this resource is an Internet Gateway or Vpn Gateway Attachment ", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InternetGatewayId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the internet gateway. You must specify either InternetGatewayId or VpnGatewayId, but not both.", + // "type": "string" + // } + "internet_gateway_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the internet gateway. You must specify either InternetGatewayId or VpnGatewayId, but not both.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: VpcId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the VPC.", + // "type": "string" + // } + "vpc_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the VPC.", + Required: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: VpnGatewayId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the virtual private gateway. You must specify either InternetGatewayId or VpnGatewayId, but not both.", + // "type": "string" + // } + "vpn_gateway_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the virtual private gateway. You must specify either InternetGatewayId or VpnGatewayId, but not both.", + Optional: true, + 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 Type definition for AWS::EC2::VPCGatewayAttachment", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::EC2::VPCGatewayAttachment").WithTerraformTypeName("awscc_ec2_vpc_gateway_attachment") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(true) + opts = opts.WithAttributeNameMap(map[string]string{ + "attachment_type": "AttachmentType", + "internet_gateway_id": "InternetGatewayId", + "vpc_id": "VpcId", + "vpn_gateway_id": "VpnGatewayId", + }) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/ec2/vpc_gateway_attachment_resource_gen_test.go b/internal/aws/ec2/vpc_gateway_attachment_resource_gen_test.go new file mode 100644 index 0000000000..68a7f5b030 --- /dev/null +++ b/internal/aws/ec2/vpc_gateway_attachment_resource_gen_test.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package ec2_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSEC2VPCGatewayAttachment_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::EC2::VPCGatewayAttachment", "awscc_ec2_vpc_gateway_attachment", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/ec2/vpc_gateway_attachment_singular_data_source_gen.go b/internal/aws/ec2/vpc_gateway_attachment_singular_data_source_gen.go new file mode 100644 index 0000000000..087c999776 --- /dev/null +++ b/internal/aws/ec2/vpc_gateway_attachment_singular_data_source_gen.go @@ -0,0 +1,100 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_ec2_vpc_gateway_attachment", vPCGatewayAttachmentDataSource) +} + +// vPCGatewayAttachmentDataSource returns the Terraform awscc_ec2_vpc_gateway_attachment data source. +// This Terraform data source corresponds to the CloudFormation AWS::EC2::VPCGatewayAttachment resource. +func vPCGatewayAttachmentDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AttachmentType + // CloudFormation resource type schema: + // + // { + // "description": "Used to identify if this resource is an Internet Gateway or Vpn Gateway Attachment ", + // "type": "string" + // } + "attachment_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Used to identify if this resource is an Internet Gateway or Vpn Gateway Attachment ", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InternetGatewayId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the internet gateway. You must specify either InternetGatewayId or VpnGatewayId, but not both.", + // "type": "string" + // } + "internet_gateway_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the internet gateway. You must specify either InternetGatewayId or VpnGatewayId, but not both.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: VpcId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the VPC.", + // "type": "string" + // } + "vpc_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the VPC.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: VpnGatewayId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the virtual private gateway. You must specify either InternetGatewayId or VpnGatewayId, but not both.", + // "type": "string" + // } + "vpn_gateway_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the virtual private gateway. You must specify either InternetGatewayId or VpnGatewayId, but not both.", + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::EC2::VPCGatewayAttachment", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::EC2::VPCGatewayAttachment").WithTerraformTypeName("awscc_ec2_vpc_gateway_attachment") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "attachment_type": "AttachmentType", + "internet_gateway_id": "InternetGatewayId", + "vpc_id": "VpcId", + "vpn_gateway_id": "VpnGatewayId", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/ec2/vpc_gateway_attachment_singular_data_source_gen_test.go b/internal/aws/ec2/vpc_gateway_attachment_singular_data_source_gen_test.go new file mode 100644 index 0000000000..d1dd3da6e5 --- /dev/null +++ b/internal/aws/ec2/vpc_gateway_attachment_singular_data_source_gen_test.go @@ -0,0 +1,36 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package ec2_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSEC2VPCGatewayAttachmentDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::EC2::VPCGatewayAttachment", "awscc_ec2_vpc_gateway_attachment", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSEC2VPCGatewayAttachmentDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::EC2::VPCGatewayAttachment", "awscc_ec2_vpc_gateway_attachment", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/events/rule_plural_data_source_gen.go b/internal/aws/events/rule_plural_data_source_gen.go new file mode 100644 index 0000000000..ae4f2d2bb8 --- /dev/null +++ b/internal/aws/events/rule_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 events + +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_events_rules", rulesDataSource) +} + +// rulesDataSource returns the Terraform awscc_events_rules data source. +// This Terraform data source corresponds to the CloudFormation AWS::Events::Rule resource. +func rulesDataSource(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::Events::Rule", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Events::Rule").WithTerraformTypeName("awscc_events_rules") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/events/rule_plural_data_source_gen_test.go b/internal/aws/events/rule_plural_data_source_gen_test.go new file mode 100644 index 0000000000..1a51b96da4 --- /dev/null +++ b/internal/aws/events/rule_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 events_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSEventsRulesDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Events::Rule", "awscc_events_rules", "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/events/rule_resource_gen.go b/internal/aws/events/rule_resource_gen.go new file mode 100644 index 0000000000..1b9d882b27 --- /dev/null +++ b/internal/aws/events/rule_resource_gen.go @@ -0,0 +1,1302 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package events + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/boolplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/int64planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/mapplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/setplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_events_rule", ruleResource) +} + +// ruleResource returns the Terraform awscc_events_rule resource. +// This Terraform resource corresponds to the CloudFormation AWS::Events::Rule resource. +func ruleResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "description": "The ARN of the rule, such as arn:aws:events:us-east-2:123456789012:rule/example.", + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of the rule, such as arn:aws:events:us-east-2:123456789012:rule/example.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "The description of the rule.", + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The description of the rule.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: EventBusName + // CloudFormation resource type schema: + // + // { + // "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" + // } + "event_bus_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name or ARN of the event bus associated with the rule. If you omit this, the default event bus is used.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: EventPattern + // CloudFormation resource type schema: + // + // { + // "description": "The event pattern of the rule. For more information, see Events and Event Patterns in the Amazon EventBridge User Guide.", + // "type": "string" + // } + "event_pattern": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The event pattern of the rule. For more information, see Events and Event Patterns in the Amazon EventBridge User Guide.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "The name of the rule.", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the rule.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RoleArn + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Resource Name (ARN) of the role that is used for target invocation.", + // "type": "string" + // } + "role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the role that is used for target invocation.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ScheduleExpression + // CloudFormation resource type schema: + // + // { + // "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" + // } + "schedule_expression": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: State + // CloudFormation resource type schema: + // + // { + // "description": "The state of the rule.", + // "enum": [ + // "DISABLED", + // "ENABLED" + // ], + // "type": "string" + // } + "state": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The state of the rule.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "DISABLED", + "ENABLED", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Targets + // CloudFormation resource type schema: + // + // { + // "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, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Arn": { + // "type": "string" + // }, + // "BatchParameters": { + // "additionalProperties": false, + // "properties": { + // "ArrayProperties": { + // "additionalProperties": false, + // "properties": { + // "Size": { + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "JobDefinition": { + // "type": "string" + // }, + // "JobName": { + // "type": "string" + // }, + // "RetryStrategy": { + // "additionalProperties": false, + // "properties": { + // "Attempts": { + // "type": "integer" + // } + // }, + // "type": "object" + // } + // }, + // "required": [ + // "JobName", + // "JobDefinition" + // ], + // "type": "object" + // }, + // "DeadLetterConfig": { + // "additionalProperties": false, + // "properties": { + // "Arn": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "EcsParameters": { + // "additionalProperties": false, + // "properties": { + // "CapacityProviderStrategy": { + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Base": { + // "type": "integer" + // }, + // "CapacityProvider": { + // "type": "string" + // }, + // "Weight": { + // "type": "integer" + // } + // }, + // "required": [ + // "CapacityProvider" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // }, + // "EnableECSManagedTags": { + // "type": "boolean" + // }, + // "EnableExecuteCommand": { + // "type": "boolean" + // }, + // "Group": { + // "type": "string" + // }, + // "LaunchType": { + // "type": "string" + // }, + // "NetworkConfiguration": { + // "additionalProperties": false, + // "properties": { + // "AwsVpcConfiguration": { + // "additionalProperties": false, + // "properties": { + // "AssignPublicIp": { + // "type": "string" + // }, + // "SecurityGroups": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // }, + // "Subnets": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "required": [ + // "Subnets" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "PlacementConstraints": { + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Expression": { + // "type": "string" + // }, + // "Type": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // }, + // "PlacementStrategies": { + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Field": { + // "type": "string" + // }, + // "Type": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // }, + // "PlatformVersion": { + // "type": "string" + // }, + // "PropagateTags": { + // "type": "string" + // }, + // "ReferenceId": { + // "type": "string" + // }, + // "TagList": { + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // }, + // "TaskCount": { + // "type": "integer" + // }, + // "TaskDefinitionArn": { + // "type": "string" + // } + // }, + // "required": [ + // "TaskDefinitionArn" + // ], + // "type": "object" + // }, + // "HttpParameters": { + // "additionalProperties": false, + // "properties": { + // "HeaderParameters": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "PathParameterValues": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // }, + // "QueryStringParameters": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "Id": { + // "type": "string" + // }, + // "Input": { + // "type": "string" + // }, + // "InputPath": { + // "type": "string" + // }, + // "InputTransformer": { + // "additionalProperties": false, + // "properties": { + // "InputPathsMap": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "InputTemplate": { + // "type": "string" + // } + // }, + // "required": [ + // "InputTemplate" + // ], + // "type": "object" + // }, + // "KinesisParameters": { + // "additionalProperties": false, + // "properties": { + // "PartitionKeyPath": { + // "type": "string" + // } + // }, + // "required": [ + // "PartitionKeyPath" + // ], + // "type": "object" + // }, + // "RedshiftDataParameters": { + // "additionalProperties": false, + // "properties": { + // "Database": { + // "type": "string" + // }, + // "DbUser": { + // "type": "string" + // }, + // "SecretManagerArn": { + // "type": "string" + // }, + // "Sql": { + // "type": "string" + // }, + // "Sqls": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "StatementName": { + // "type": "string" + // }, + // "WithEvent": { + // "type": "boolean" + // } + // }, + // "required": [ + // "Database" + // ], + // "type": "object" + // }, + // "RetryPolicy": { + // "additionalProperties": false, + // "properties": { + // "MaximumEventAgeInSeconds": { + // "type": "integer" + // }, + // "MaximumRetryAttempts": { + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "RoleArn": { + // "type": "string" + // }, + // "RunCommandParameters": { + // "additionalProperties": false, + // "properties": { + // "RunCommandTargets": { + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "type": "string" + // }, + // "Values": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "required": [ + // "Values", + // "Key" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "required": [ + // "RunCommandTargets" + // ], + // "type": "object" + // }, + // "SageMakerPipelineParameters": { + // "additionalProperties": false, + // "properties": { + // "PipelineParameterList": { + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Value", + // "Name" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "type": "object" + // }, + // "SqsParameters": { + // "additionalProperties": false, + // "properties": { + // "MessageGroupId": { + // "type": "string" + // } + // }, + // "required": [ + // "MessageGroupId" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "Id", + // "Arn" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + "targets": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: BatchParameters + "batch_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ArrayProperties + "array_properties": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Size + "size": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: JobDefinition + "job_definition": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: JobName + "job_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: RetryStrategy + "retry_strategy": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Attempts + "attempts": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DeadLetterConfig + "dead_letter_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: EcsParameters + "ecs_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CapacityProviderStrategy + "capacity_provider_strategy": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Base + "base": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CapacityProvider + "capacity_provider": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Weight + "weight": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.UniqueValues(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: EnableECSManagedTags + "enable_ecs_managed_tags": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: EnableExecuteCommand + "enable_execute_command": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Group + "group": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LaunchType + "launch_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: NetworkConfiguration + "network_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AwsVpcConfiguration + "aws_vpc_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AssignPublicIp + "assign_public_ip": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SecurityGroups + "security_groups": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.UniqueValues(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Subnets + "subnets": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Required: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.UniqueValues(), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PlacementConstraints + "placement_constraints": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Expression + "expression": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.UniqueValues(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PlacementStrategies + "placement_strategies": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Field + "field": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.UniqueValues(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PlatformVersion + "platform_version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PropagateTags + "propagate_tags": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ReferenceId + "reference_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TagList + "tag_list": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.UniqueValues(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TaskCount + "task_count": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TaskDefinitionArn + "task_definition_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: HttpParameters + "http_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: HeaderParameters + "header_parameters": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ + mapplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PathParameterValues + "path_parameter_values": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.UniqueValues(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: QueryStringParameters + "query_string_parameters": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ + mapplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Id + "id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Input + "input": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InputPath + "input_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InputTransformer + "input_transformer": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InputPathsMap + "input_paths_map": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ + mapplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InputTemplate + "input_template": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: KinesisParameters + "kinesis_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PartitionKeyPath + "partition_key_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RedshiftDataParameters + "redshift_data_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Database + "database": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: DbUser + "db_user": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SecretManagerArn + "secret_manager_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Sql + "sql": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Sqls + "sqls": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: StatementName + "statement_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: WithEvent + "with_event": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RetryPolicy + "retry_policy": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaximumEventAgeInSeconds + "maximum_event_age_in_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MaximumRetryAttempts + "maximum_retry_attempts": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RoleArn + "role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RunCommandParameters + "run_command_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: RunCommandTargets + "run_command_targets": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Values + "values": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Required: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.UniqueValues(), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Required: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.UniqueValues(), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SageMakerPipelineParameters + "sage_maker_pipeline_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PipelineParameterList + "pipeline_parameter_list": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.UniqueValues(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SqsParameters + "sqs_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MessageGroupId + "message_group_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + 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.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.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 Type definition for AWS::Events::Rule", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Events::Rule").WithTerraformTypeName("awscc_events_rule") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(true) + opts = opts.WithAttributeNameMap(map[string]string{ + "arn": "Arn", + "array_properties": "ArrayProperties", + "assign_public_ip": "AssignPublicIp", + "attempts": "Attempts", + "aws_vpc_configuration": "AwsVpcConfiguration", + "base": "Base", + "batch_parameters": "BatchParameters", + "capacity_provider": "CapacityProvider", + "capacity_provider_strategy": "CapacityProviderStrategy", + "database": "Database", + "db_user": "DbUser", + "dead_letter_config": "DeadLetterConfig", + "description": "Description", + "ecs_parameters": "EcsParameters", + "enable_ecs_managed_tags": "EnableECSManagedTags", + "enable_execute_command": "EnableExecuteCommand", + "event_bus_name": "EventBusName", + "event_pattern": "EventPattern", + "expression": "Expression", + "field": "Field", + "group": "Group", + "header_parameters": "HeaderParameters", + "http_parameters": "HttpParameters", + "id": "Id", + "input": "Input", + "input_path": "InputPath", + "input_paths_map": "InputPathsMap", + "input_template": "InputTemplate", + "input_transformer": "InputTransformer", + "job_definition": "JobDefinition", + "job_name": "JobName", + "key": "Key", + "kinesis_parameters": "KinesisParameters", + "launch_type": "LaunchType", + "maximum_event_age_in_seconds": "MaximumEventAgeInSeconds", + "maximum_retry_attempts": "MaximumRetryAttempts", + "message_group_id": "MessageGroupId", + "name": "Name", + "network_configuration": "NetworkConfiguration", + "partition_key_path": "PartitionKeyPath", + "path_parameter_values": "PathParameterValues", + "pipeline_parameter_list": "PipelineParameterList", + "placement_constraints": "PlacementConstraints", + "placement_strategies": "PlacementStrategies", + "platform_version": "PlatformVersion", + "propagate_tags": "PropagateTags", + "query_string_parameters": "QueryStringParameters", + "redshift_data_parameters": "RedshiftDataParameters", + "reference_id": "ReferenceId", + "retry_policy": "RetryPolicy", + "retry_strategy": "RetryStrategy", + "role_arn": "RoleArn", + "run_command_parameters": "RunCommandParameters", + "run_command_targets": "RunCommandTargets", + "sage_maker_pipeline_parameters": "SageMakerPipelineParameters", + "schedule_expression": "ScheduleExpression", + "secret_manager_arn": "SecretManagerArn", + "security_groups": "SecurityGroups", + "size": "Size", + "sql": "Sql", + "sqls": "Sqls", + "sqs_parameters": "SqsParameters", + "state": "State", + "statement_name": "StatementName", + "subnets": "Subnets", + "tag_list": "TagList", + "targets": "Targets", + "task_count": "TaskCount", + "task_definition_arn": "TaskDefinitionArn", + "type": "Type", + "value": "Value", + "values": "Values", + "weight": "Weight", + "with_event": "WithEvent", + }) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/events/rule_resource_gen_test.go b/internal/aws/events/rule_resource_gen_test.go new file mode 100644 index 0000000000..3a427bb800 --- /dev/null +++ b/internal/aws/events/rule_resource_gen_test.go @@ -0,0 +1,46 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package events_test + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSEventsRule_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Events::Rule", "awscc_events_rule", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + ), + }, + { + ResourceName: td.ResourceName, + ImportState: true, + ImportStateVerify: true, + }, + }) +} + +func TestAccAWSEventsRule_disappears(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Events::Rule", "awscc_events_rule", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + td.DeleteResource(), + ), + ExpectNonEmptyPlan: true, + }, + }) +} diff --git a/internal/aws/events/rule_singular_data_source_gen.go b/internal/aws/events/rule_singular_data_source_gen.go new file mode 100644 index 0000000000..3c3dab31f0 --- /dev/null +++ b/internal/aws/events/rule_singular_data_source_gen.go @@ -0,0 +1,986 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package events + +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_events_rule", ruleDataSource) +} + +// ruleDataSource returns the Terraform awscc_events_rule data source. +// This Terraform data source corresponds to the CloudFormation AWS::Events::Rule resource. +func ruleDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "description": "The ARN of the rule, such as arn:aws:events:us-east-2:123456789012:rule/example.", + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of the rule, such as arn:aws:events:us-east-2:123456789012:rule/example.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "The description of the rule.", + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The description of the rule.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EventBusName + // CloudFormation resource type schema: + // + // { + // "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" + // } + "event_bus_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name or ARN of the event bus associated with the rule. If you omit this, the default event bus is used.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EventPattern + // CloudFormation resource type schema: + // + // { + // "description": "The event pattern of the rule. For more information, see Events and Event Patterns in the Amazon EventBridge User Guide.", + // "type": "string" + // } + "event_pattern": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The event pattern of the rule. For more information, see Events and Event Patterns in the Amazon EventBridge User Guide.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "The name of the rule.", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the rule.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RoleArn + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Resource Name (ARN) of the role that is used for target invocation.", + // "type": "string" + // } + "role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the role that is used for target invocation.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ScheduleExpression + // CloudFormation resource type schema: + // + // { + // "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" + // } + "schedule_expression": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: State + // CloudFormation resource type schema: + // + // { + // "description": "The state of the rule.", + // "enum": [ + // "DISABLED", + // "ENABLED" + // ], + // "type": "string" + // } + "state": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The state of the rule.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Targets + // CloudFormation resource type schema: + // + // { + // "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, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Arn": { + // "type": "string" + // }, + // "BatchParameters": { + // "additionalProperties": false, + // "properties": { + // "ArrayProperties": { + // "additionalProperties": false, + // "properties": { + // "Size": { + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "JobDefinition": { + // "type": "string" + // }, + // "JobName": { + // "type": "string" + // }, + // "RetryStrategy": { + // "additionalProperties": false, + // "properties": { + // "Attempts": { + // "type": "integer" + // } + // }, + // "type": "object" + // } + // }, + // "required": [ + // "JobName", + // "JobDefinition" + // ], + // "type": "object" + // }, + // "DeadLetterConfig": { + // "additionalProperties": false, + // "properties": { + // "Arn": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "EcsParameters": { + // "additionalProperties": false, + // "properties": { + // "CapacityProviderStrategy": { + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Base": { + // "type": "integer" + // }, + // "CapacityProvider": { + // "type": "string" + // }, + // "Weight": { + // "type": "integer" + // } + // }, + // "required": [ + // "CapacityProvider" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // }, + // "EnableECSManagedTags": { + // "type": "boolean" + // }, + // "EnableExecuteCommand": { + // "type": "boolean" + // }, + // "Group": { + // "type": "string" + // }, + // "LaunchType": { + // "type": "string" + // }, + // "NetworkConfiguration": { + // "additionalProperties": false, + // "properties": { + // "AwsVpcConfiguration": { + // "additionalProperties": false, + // "properties": { + // "AssignPublicIp": { + // "type": "string" + // }, + // "SecurityGroups": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // }, + // "Subnets": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "required": [ + // "Subnets" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "PlacementConstraints": { + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Expression": { + // "type": "string" + // }, + // "Type": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // }, + // "PlacementStrategies": { + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Field": { + // "type": "string" + // }, + // "Type": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // }, + // "PlatformVersion": { + // "type": "string" + // }, + // "PropagateTags": { + // "type": "string" + // }, + // "ReferenceId": { + // "type": "string" + // }, + // "TagList": { + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // }, + // "TaskCount": { + // "type": "integer" + // }, + // "TaskDefinitionArn": { + // "type": "string" + // } + // }, + // "required": [ + // "TaskDefinitionArn" + // ], + // "type": "object" + // }, + // "HttpParameters": { + // "additionalProperties": false, + // "properties": { + // "HeaderParameters": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "PathParameterValues": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // }, + // "QueryStringParameters": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "Id": { + // "type": "string" + // }, + // "Input": { + // "type": "string" + // }, + // "InputPath": { + // "type": "string" + // }, + // "InputTransformer": { + // "additionalProperties": false, + // "properties": { + // "InputPathsMap": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "InputTemplate": { + // "type": "string" + // } + // }, + // "required": [ + // "InputTemplate" + // ], + // "type": "object" + // }, + // "KinesisParameters": { + // "additionalProperties": false, + // "properties": { + // "PartitionKeyPath": { + // "type": "string" + // } + // }, + // "required": [ + // "PartitionKeyPath" + // ], + // "type": "object" + // }, + // "RedshiftDataParameters": { + // "additionalProperties": false, + // "properties": { + // "Database": { + // "type": "string" + // }, + // "DbUser": { + // "type": "string" + // }, + // "SecretManagerArn": { + // "type": "string" + // }, + // "Sql": { + // "type": "string" + // }, + // "Sqls": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "StatementName": { + // "type": "string" + // }, + // "WithEvent": { + // "type": "boolean" + // } + // }, + // "required": [ + // "Database" + // ], + // "type": "object" + // }, + // "RetryPolicy": { + // "additionalProperties": false, + // "properties": { + // "MaximumEventAgeInSeconds": { + // "type": "integer" + // }, + // "MaximumRetryAttempts": { + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "RoleArn": { + // "type": "string" + // }, + // "RunCommandParameters": { + // "additionalProperties": false, + // "properties": { + // "RunCommandTargets": { + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "type": "string" + // }, + // "Values": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "required": [ + // "Values", + // "Key" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "required": [ + // "RunCommandTargets" + // ], + // "type": "object" + // }, + // "SageMakerPipelineParameters": { + // "additionalProperties": false, + // "properties": { + // "PipelineParameterList": { + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Value", + // "Name" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "type": "object" + // }, + // "SqsParameters": { + // "additionalProperties": false, + // "properties": { + // "MessageGroupId": { + // "type": "string" + // } + // }, + // "required": [ + // "MessageGroupId" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "Id", + // "Arn" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + "targets": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: BatchParameters + "batch_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ArrayProperties + "array_properties": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Size + "size": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: JobDefinition + "job_definition": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: JobName + "job_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RetryStrategy + "retry_strategy": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Attempts + "attempts": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DeadLetterConfig + "dead_letter_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EcsParameters + "ecs_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CapacityProviderStrategy + "capacity_provider_strategy": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Base + "base": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CapacityProvider + "capacity_provider": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Weight + "weight": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EnableECSManagedTags + "enable_ecs_managed_tags": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EnableExecuteCommand + "enable_execute_command": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Group + "group": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LaunchType + "launch_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: NetworkConfiguration + "network_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AwsVpcConfiguration + "aws_vpc_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AssignPublicIp + "assign_public_ip": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SecurityGroups + "security_groups": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Subnets + "subnets": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PlacementConstraints + "placement_constraints": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Expression + "expression": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PlacementStrategies + "placement_strategies": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Field + "field": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PlatformVersion + "platform_version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PropagateTags + "propagate_tags": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ReferenceId + "reference_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TagList + "tag_list": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TaskCount + "task_count": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TaskDefinitionArn + "task_definition_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: HttpParameters + "http_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: HeaderParameters + "header_parameters": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PathParameterValues + "path_parameter_values": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: QueryStringParameters + "query_string_parameters": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Id + "id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Input + "input": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InputPath + "input_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InputTransformer + "input_transformer": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InputPathsMap + "input_paths_map": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InputTemplate + "input_template": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: KinesisParameters + "kinesis_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PartitionKeyPath + "partition_key_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RedshiftDataParameters + "redshift_data_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Database + "database": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DbUser + "db_user": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SecretManagerArn + "secret_manager_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Sql + "sql": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Sqls + "sqls": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: StatementName + "statement_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: WithEvent + "with_event": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RetryPolicy + "retry_policy": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaximumEventAgeInSeconds + "maximum_event_age_in_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MaximumRetryAttempts + "maximum_retry_attempts": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RoleArn + "role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RunCommandParameters + "run_command_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: RunCommandTargets + "run_command_targets": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Values + "values": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SageMakerPipelineParameters + "sage_maker_pipeline_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PipelineParameterList + "pipeline_parameter_list": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SqsParameters + "sqs_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MessageGroupId + "message_group_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + 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.", + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::Events::Rule", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Events::Rule").WithTerraformTypeName("awscc_events_rule") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "arn": "Arn", + "array_properties": "ArrayProperties", + "assign_public_ip": "AssignPublicIp", + "attempts": "Attempts", + "aws_vpc_configuration": "AwsVpcConfiguration", + "base": "Base", + "batch_parameters": "BatchParameters", + "capacity_provider": "CapacityProvider", + "capacity_provider_strategy": "CapacityProviderStrategy", + "database": "Database", + "db_user": "DbUser", + "dead_letter_config": "DeadLetterConfig", + "description": "Description", + "ecs_parameters": "EcsParameters", + "enable_ecs_managed_tags": "EnableECSManagedTags", + "enable_execute_command": "EnableExecuteCommand", + "event_bus_name": "EventBusName", + "event_pattern": "EventPattern", + "expression": "Expression", + "field": "Field", + "group": "Group", + "header_parameters": "HeaderParameters", + "http_parameters": "HttpParameters", + "id": "Id", + "input": "Input", + "input_path": "InputPath", + "input_paths_map": "InputPathsMap", + "input_template": "InputTemplate", + "input_transformer": "InputTransformer", + "job_definition": "JobDefinition", + "job_name": "JobName", + "key": "Key", + "kinesis_parameters": "KinesisParameters", + "launch_type": "LaunchType", + "maximum_event_age_in_seconds": "MaximumEventAgeInSeconds", + "maximum_retry_attempts": "MaximumRetryAttempts", + "message_group_id": "MessageGroupId", + "name": "Name", + "network_configuration": "NetworkConfiguration", + "partition_key_path": "PartitionKeyPath", + "path_parameter_values": "PathParameterValues", + "pipeline_parameter_list": "PipelineParameterList", + "placement_constraints": "PlacementConstraints", + "placement_strategies": "PlacementStrategies", + "platform_version": "PlatformVersion", + "propagate_tags": "PropagateTags", + "query_string_parameters": "QueryStringParameters", + "redshift_data_parameters": "RedshiftDataParameters", + "reference_id": "ReferenceId", + "retry_policy": "RetryPolicy", + "retry_strategy": "RetryStrategy", + "role_arn": "RoleArn", + "run_command_parameters": "RunCommandParameters", + "run_command_targets": "RunCommandTargets", + "sage_maker_pipeline_parameters": "SageMakerPipelineParameters", + "schedule_expression": "ScheduleExpression", + "secret_manager_arn": "SecretManagerArn", + "security_groups": "SecurityGroups", + "size": "Size", + "sql": "Sql", + "sqls": "Sqls", + "sqs_parameters": "SqsParameters", + "state": "State", + "statement_name": "StatementName", + "subnets": "Subnets", + "tag_list": "TagList", + "targets": "Targets", + "task_count": "TaskCount", + "task_definition_arn": "TaskDefinitionArn", + "type": "Type", + "value": "Value", + "values": "Values", + "weight": "Weight", + "with_event": "WithEvent", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/events/rule_singular_data_source_gen_test.go b/internal/aws/events/rule_singular_data_source_gen_test.go new file mode 100644 index 0000000000..441b5a2c51 --- /dev/null +++ b/internal/aws/events/rule_singular_data_source_gen_test.go @@ -0,0 +1,40 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package events_test + +import ( + "fmt" + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSEventsRuleDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Events::Rule", "awscc_events_rule", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithEmptyResourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrPair(fmt.Sprintf("data.%s", td.ResourceName), "id", td.ResourceName, "id"), + resource.TestCheckResourceAttrPair(fmt.Sprintf("data.%s", td.ResourceName), "arn", td.ResourceName, "arn"), + ), + }, + }) +} + +func TestAccAWSEventsRuleDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Events::Rule", "awscc_events_rule", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/gamelift/fleet_resource_gen.go b/internal/aws/gamelift/fleet_resource_gen.go index 8d664a7638..4fa6933cf4 100644 --- a/internal/aws/gamelift/fleet_resource_gen.go +++ b/internal/aws/gamelift/fleet_resource_gen.go @@ -12,6 +12,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" "github.com/hashicorp/terraform-plugin-framework/resource" "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/float64planmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/int64planmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" @@ -70,6 +71,32 @@ func fleetResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: ApplyCapacity + // CloudFormation resource type schema: + // + // { + // "description": "ComputeType to differentiate EC2 hardware managed by GameLift and Anywhere hardware managed by the customer.", + // "enum": [ + // "ON_UPDATE", + // "ON_CREATE_AND_UPDATE" + // ], + // "type": "string" + // } + "apply_capacity": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ComputeType to differentiate EC2 hardware managed by GameLift and Anywhere hardware managed by the customer.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ON_UPDATE", + "ON_CREATE_AND_UPDATE", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: BuildId // CloudFormation resource type schema: // @@ -874,6 +901,315 @@ func fleetResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: ScalingPolicies + // CloudFormation resource type schema: + // + // { + // "description": "A list of rules that control how a fleet is scaled.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "Rule that controls how a fleet is scaled. Scaling policies are uniquely identified by the combination of name and fleet ID.", + // "properties": { + // "ComparisonOperator": { + // "description": "Comparison operator to use when measuring a metric against the threshold value.", + // "enum": [ + // "GreaterThanOrEqualToThreshold", + // "GreaterThanThreshold", + // "LessThanThreshold", + // "LessThanOrEqualToThreshold" + // ], + // "type": "string" + // }, + // "EvaluationPeriods": { + // "description": "Length of time (in minutes) the metric must be at or beyond the threshold before a scaling event is triggered.", + // "minimum": 1, + // "type": "integer" + // }, + // "Location": { + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[A-Za-z0-9\\-]+", + // "type": "string" + // }, + // "MetricName": { + // "description": "Name of the Amazon GameLift-defined metric that is used to trigger a scaling adjustment.", + // "enum": [ + // "ActivatingGameSessions", + // "ActiveGameSessions", + // "ActiveInstances", + // "AvailableGameSessions", + // "AvailablePlayerSessions", + // "CurrentPlayerSessions", + // "IdleInstances", + // "PercentAvailableGameSessions", + // "PercentIdleInstances", + // "QueueDepth", + // "WaitTime", + // "ConcurrentActivatableGameSessions" + // ], + // "type": "string" + // }, + // "Name": { + // "description": "A descriptive label that is associated with a fleet's scaling policy. Policy names do not need to be unique.", + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // }, + // "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.", + // "enum": [ + // "RuleBased", + // "TargetBased" + // ], + // "type": "string" + // }, + // "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.", + // "enum": [ + // "ChangeInCapacity", + // "ExactCapacity", + // "PercentChangeInCapacity" + // ], + // "type": "string" + // }, + // "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.", + // "enum": [ + // "ACTIVE", + // "UPDATE_REQUESTED", + // "UPDATING", + // "DELETE_REQUESTED", + // "DELETING", + // "DELETED", + // "ERROR" + // ], + // "type": "string" + // }, + // "TargetConfiguration": { + // "additionalProperties": false, + // "description": "An object that contains settings for a target-based scaling policy.", + // "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" + // } + // }, + // "required": [ + // "TargetValue" + // ], + // "type": "object" + // }, + // "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.", + // "enum": [ + // "PENDING_UPDATE" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "MetricName", + // "Name" + // ], + // "type": "object" + // }, + // "maxItems": 50, + // "type": "array" + // } + "scaling_policies": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ComparisonOperator + "comparison_operator": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Comparison operator to use when measuring a metric against the threshold value.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "GreaterThanOrEqualToThreshold", + "GreaterThanThreshold", + "LessThanThreshold", + "LessThanOrEqualToThreshold", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: EvaluationPeriods + "evaluation_periods": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Length of time (in minutes) the metric must be at or beyond the threshold before a scaling event is triggered.", + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.AtLeast(1), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Location + "location": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 64), + stringvalidator.RegexMatches(regexp.MustCompile("^[A-Za-z0-9\\-]+"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MetricName + "metric_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of the Amazon GameLift-defined metric that is used to trigger a scaling adjustment.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ActivatingGameSessions", + "ActiveGameSessions", + "ActiveInstances", + "AvailableGameSessions", + "AvailablePlayerSessions", + "CurrentPlayerSessions", + "IdleInstances", + "PercentAvailableGameSessions", + "PercentIdleInstances", + "QueueDepth", + "WaitTime", + "ConcurrentActivatableGameSessions", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A descriptive label that is associated with a fleet's scaling policy. Policy names do not need to be unique.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 1024), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: PolicyType + "policy_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "RuleBased", + "TargetBased", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ScalingAdjustment + "scaling_adjustment": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Amount of adjustment to make, based on the scaling adjustment type.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ScalingAdjustmentType + "scaling_adjustment_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The type of adjustment to make to a fleet's instance count.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ChangeInCapacity", + "ExactCapacity", + "PercentChangeInCapacity", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Status + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ACTIVE", + "UPDATE_REQUESTED", + "UPDATING", + "DELETE_REQUESTED", + "DELETING", + "DELETED", + "ERROR", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TargetConfiguration + "target_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: TargetValue + "target_value": schema.Float64Attribute{ /*START ATTRIBUTE*/ + 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).", + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "An object that contains settings for a target-based scaling policy.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Threshold + "threshold": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Metric value used to trigger a scaling event.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: UpdateStatus + "update_status": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "PENDING_UPDATE", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of rules that control how a fleet is scaled.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeAtMost(50), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: ScriptId // CloudFormation resource type schema: // @@ -959,9 +1295,11 @@ func fleetResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithSyntheticIDAttribute(true) opts = opts.WithAttributeNameMap(map[string]string{ "anywhere_configuration": "AnywhereConfiguration", + "apply_capacity": "ApplyCapacity", "build_id": "BuildId", "certificate_configuration": "CertificateConfiguration", "certificate_type": "CertificateType", + "comparison_operator": "ComparisonOperator", "compute_type": "ComputeType", "concurrent_executions": "ConcurrentExecutions", "cost": "Cost", @@ -969,6 +1307,7 @@ func fleetResource(ctx context.Context) (resource.Resource, error) { "desired_ec2_instances": "DesiredEC2Instances", "ec2_inbound_permissions": "EC2InboundPermissions", "ec2_instance_type": "EC2InstanceType", + "evaluation_periods": "EvaluationPeriods", "fleet_id": "FleetId", "fleet_type": "FleetType", "from_port": "FromPort", @@ -984,6 +1323,7 @@ func fleetResource(ctx context.Context) (resource.Resource, error) { "max_concurrent_game_session_activations": "MaxConcurrentGameSessionActivations", "max_size": "MaxSize", "metric_groups": "MetricGroups", + "metric_name": "MetricName", "min_size": "MinSize", "name": "Name", "new_game_session_protection_policy": "NewGameSessionProtectionPolicy", @@ -992,14 +1332,23 @@ func fleetResource(ctx context.Context) (resource.Resource, error) { "peer_vpc_aws_account_id": "PeerVpcAwsAccountId", "peer_vpc_id": "PeerVpcId", "policy_period_in_minutes": "PolicyPeriodInMinutes", + "policy_type": "PolicyType", "protocol": "Protocol", "resource_creation_limit_policy": "ResourceCreationLimitPolicy", "runtime_configuration": "RuntimeConfiguration", + "scaling_adjustment": "ScalingAdjustment", + "scaling_adjustment_type": "ScalingAdjustmentType", + "scaling_policies": "ScalingPolicies", "script_id": "ScriptId", "server_launch_parameters": "ServerLaunchParameters", "server_launch_path": "ServerLaunchPath", "server_processes": "ServerProcesses", + "status": "Status", + "target_configuration": "TargetConfiguration", + "target_value": "TargetValue", + "threshold": "Threshold", "to_port": "ToPort", + "update_status": "UpdateStatus", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/gamelift/fleet_singular_data_source_gen.go b/internal/aws/gamelift/fleet_singular_data_source_gen.go index d7816266a1..72596e6090 100644 --- a/internal/aws/gamelift/fleet_singular_data_source_gen.go +++ b/internal/aws/gamelift/fleet_singular_data_source_gen.go @@ -53,6 +53,21 @@ func fleetDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "Configuration for Anywhere fleet.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: ApplyCapacity + // CloudFormation resource type schema: + // + // { + // "description": "ComputeType to differentiate EC2 hardware managed by GameLift and Anywhere hardware managed by the customer.", + // "enum": [ + // "ON_UPDATE", + // "ON_CREATE_AND_UPDATE" + // ], + // "type": "string" + // } + "apply_capacity": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ComputeType to differentiate EC2 hardware managed by GameLift and Anywhere hardware managed by the customer.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: BuildId // CloudFormation resource type schema: // @@ -607,6 +622,204 @@ func fleetDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "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.\n\nThis 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.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: ScalingPolicies + // CloudFormation resource type schema: + // + // { + // "description": "A list of rules that control how a fleet is scaled.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "Rule that controls how a fleet is scaled. Scaling policies are uniquely identified by the combination of name and fleet ID.", + // "properties": { + // "ComparisonOperator": { + // "description": "Comparison operator to use when measuring a metric against the threshold value.", + // "enum": [ + // "GreaterThanOrEqualToThreshold", + // "GreaterThanThreshold", + // "LessThanThreshold", + // "LessThanOrEqualToThreshold" + // ], + // "type": "string" + // }, + // "EvaluationPeriods": { + // "description": "Length of time (in minutes) the metric must be at or beyond the threshold before a scaling event is triggered.", + // "minimum": 1, + // "type": "integer" + // }, + // "Location": { + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[A-Za-z0-9\\-]+", + // "type": "string" + // }, + // "MetricName": { + // "description": "Name of the Amazon GameLift-defined metric that is used to trigger a scaling adjustment.", + // "enum": [ + // "ActivatingGameSessions", + // "ActiveGameSessions", + // "ActiveInstances", + // "AvailableGameSessions", + // "AvailablePlayerSessions", + // "CurrentPlayerSessions", + // "IdleInstances", + // "PercentAvailableGameSessions", + // "PercentIdleInstances", + // "QueueDepth", + // "WaitTime", + // "ConcurrentActivatableGameSessions" + // ], + // "type": "string" + // }, + // "Name": { + // "description": "A descriptive label that is associated with a fleet's scaling policy. Policy names do not need to be unique.", + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // }, + // "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.", + // "enum": [ + // "RuleBased", + // "TargetBased" + // ], + // "type": "string" + // }, + // "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.", + // "enum": [ + // "ChangeInCapacity", + // "ExactCapacity", + // "PercentChangeInCapacity" + // ], + // "type": "string" + // }, + // "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.", + // "enum": [ + // "ACTIVE", + // "UPDATE_REQUESTED", + // "UPDATING", + // "DELETE_REQUESTED", + // "DELETING", + // "DELETED", + // "ERROR" + // ], + // "type": "string" + // }, + // "TargetConfiguration": { + // "additionalProperties": false, + // "description": "An object that contains settings for a target-based scaling policy.", + // "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" + // } + // }, + // "required": [ + // "TargetValue" + // ], + // "type": "object" + // }, + // "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.", + // "enum": [ + // "PENDING_UPDATE" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "MetricName", + // "Name" + // ], + // "type": "object" + // }, + // "maxItems": 50, + // "type": "array" + // } + "scaling_policies": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ComparisonOperator + "comparison_operator": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Comparison operator to use when measuring a metric against the threshold value.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EvaluationPeriods + "evaluation_periods": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Length of time (in minutes) the metric must be at or beyond the threshold before a scaling event is triggered.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Location + "location": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MetricName + "metric_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of the Amazon GameLift-defined metric that is used to trigger a scaling adjustment.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A descriptive label that is associated with a fleet's scaling policy. Policy names do not need to be unique.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PolicyType + "policy_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ScalingAdjustment + "scaling_adjustment": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Amount of adjustment to make, based on the scaling adjustment type.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ScalingAdjustmentType + "scaling_adjustment_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The type of adjustment to make to a fleet's instance count.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Status + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TargetConfiguration + "target_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: TargetValue + "target_value": schema.Float64Attribute{ /*START ATTRIBUTE*/ + 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).", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "An object that contains settings for a target-based scaling policy.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Threshold + "threshold": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Metric value used to trigger a scaling event.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: UpdateStatus + "update_status": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of rules that control how a fleet is scaled.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: ScriptId // CloudFormation resource type schema: // @@ -663,9 +876,11 @@ func fleetDataSource(ctx context.Context) (datasource.DataSource, error) { opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ "anywhere_configuration": "AnywhereConfiguration", + "apply_capacity": "ApplyCapacity", "build_id": "BuildId", "certificate_configuration": "CertificateConfiguration", "certificate_type": "CertificateType", + "comparison_operator": "ComparisonOperator", "compute_type": "ComputeType", "concurrent_executions": "ConcurrentExecutions", "cost": "Cost", @@ -673,6 +888,7 @@ func fleetDataSource(ctx context.Context) (datasource.DataSource, error) { "desired_ec2_instances": "DesiredEC2Instances", "ec2_inbound_permissions": "EC2InboundPermissions", "ec2_instance_type": "EC2InstanceType", + "evaluation_periods": "EvaluationPeriods", "fleet_id": "FleetId", "fleet_type": "FleetType", "from_port": "FromPort", @@ -688,6 +904,7 @@ func fleetDataSource(ctx context.Context) (datasource.DataSource, error) { "max_concurrent_game_session_activations": "MaxConcurrentGameSessionActivations", "max_size": "MaxSize", "metric_groups": "MetricGroups", + "metric_name": "MetricName", "min_size": "MinSize", "name": "Name", "new_game_session_protection_policy": "NewGameSessionProtectionPolicy", @@ -696,14 +913,23 @@ func fleetDataSource(ctx context.Context) (datasource.DataSource, error) { "peer_vpc_aws_account_id": "PeerVpcAwsAccountId", "peer_vpc_id": "PeerVpcId", "policy_period_in_minutes": "PolicyPeriodInMinutes", + "policy_type": "PolicyType", "protocol": "Protocol", "resource_creation_limit_policy": "ResourceCreationLimitPolicy", "runtime_configuration": "RuntimeConfiguration", + "scaling_adjustment": "ScalingAdjustment", + "scaling_adjustment_type": "ScalingAdjustmentType", + "scaling_policies": "ScalingPolicies", "script_id": "ScriptId", "server_launch_parameters": "ServerLaunchParameters", "server_launch_path": "ServerLaunchPath", "server_processes": "ServerProcesses", + "status": "Status", + "target_configuration": "TargetConfiguration", + "target_value": "TargetValue", + "threshold": "Threshold", "to_port": "ToPort", + "update_status": "UpdateStatus", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/guardduty/detector_resource_gen.go b/internal/aws/guardduty/detector_resource_gen.go index 49b2bfb1e8..368f54c8aa 100644 --- a/internal/aws/guardduty/detector_resource_gen.go +++ b/internal/aws/guardduty/detector_resource_gen.go @@ -195,9 +195,6 @@ func detectorResource(ctx context.Context) (resource.Resource, error) { // }, // "Name": { // "enum": [ - // "FLOW_LOGS", - // "CLOUD_TRAIL", - // "DNS_LOGS", // "S3_DATA_EVENTS", // "EKS_AUDIT_LOGS", // "EBS_MALWARE_PROTECTION", @@ -265,9 +262,6 @@ func detectorResource(ctx context.Context) (resource.Resource, error) { Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.OneOf( - "FLOW_LOGS", - "CLOUD_TRAIL", - "DNS_LOGS", "S3_DATA_EVENTS", "EKS_AUDIT_LOGS", "EBS_MALWARE_PROTECTION", diff --git a/internal/aws/guardduty/detector_singular_data_source_gen.go b/internal/aws/guardduty/detector_singular_data_source_gen.go index ee7cab3c12..d1be75c1ca 100644 --- a/internal/aws/guardduty/detector_singular_data_source_gen.go +++ b/internal/aws/guardduty/detector_singular_data_source_gen.go @@ -164,9 +164,6 @@ func detectorDataSource(ctx context.Context) (datasource.DataSource, error) { // }, // "Name": { // "enum": [ - // "FLOW_LOGS", - // "CLOUD_TRAIL", - // "DNS_LOGS", // "S3_DATA_EVENTS", // "EKS_AUDIT_LOGS", // "EBS_MALWARE_PROTECTION", diff --git a/internal/aws/iam/user_plural_data_source_gen.go b/internal/aws/iam/user_plural_data_source_gen.go new file mode 100644 index 0000000000..0b188d43b7 --- /dev/null +++ b/internal/aws/iam/user_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 iam + +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_iam_users", usersDataSource) +} + +// usersDataSource returns the Terraform awscc_iam_users data source. +// This Terraform data source corresponds to the CloudFormation AWS::IAM::User resource. +func usersDataSource(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::IAM::User", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::IAM::User").WithTerraformTypeName("awscc_iam_users") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/iam/user_plural_data_source_gen_test.go b/internal/aws/iam/user_plural_data_source_gen_test.go new file mode 100644 index 0000000000..c001bc7542 --- /dev/null +++ b/internal/aws/iam/user_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 iam_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSIAMUsersDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::IAM::User", "awscc_iam_users", "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/iam/user_resource_gen.go b/internal/aws/iam/user_resource_gen.go new file mode 100644 index 0000000000..d523f434a3 --- /dev/null +++ b/internal/aws/iam/user_resource_gen.go @@ -0,0 +1,336 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package iam + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/boolplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/setplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_iam_user", userResource) +} + +// userResource returns the Terraform awscc_iam_user resource. +// This Terraform resource corresponds to the CloudFormation AWS::IAM::User resource. +func userResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "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" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Groups + // CloudFormation resource type schema: + // + // { + // "description": "A list of group names to which you want to add the user.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // } + "groups": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of group names to which you want to add the user.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LoginProfile + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Creates a password for the specified IAM user. A password allows an IAM user to access AWS services through the AWS Management Console.", + // "properties": { + // "Password": { + // "description": "The user's password.", + // "type": "string" + // }, + // "PasswordResetRequired": { + // "description": "Specifies whether the user is required to set a new password on next sign-in.", + // "type": "boolean" + // } + // }, + // "required": [ + // "Password" + // ], + // "type": "object" + // } + "login_profile": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Password + "password": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The user's password.", + Required: true, + // Password is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: PasswordResetRequired + "password_reset_required": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies whether the user is required to set a new password on next sign-in.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Creates a password for the specified IAM user. A password allows an IAM user to access AWS services through the AWS Management Console.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ManagedPolicyArns + // CloudFormation resource type schema: + // + // { + // "description": "A list of Amazon Resource Names (ARNs) of the IAM managed policies that you want to attach to the role.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + "managed_policy_arns": schema.SetAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of Amazon Resource Names (ARNs) of the IAM managed policies that you want to attach to the role.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Path + // CloudFormation resource type schema: + // + // { + // "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" + // } + "path": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PermissionsBoundary + // CloudFormation resource type schema: + // + // { + // "description": "The ARN of the policy that is used to set the permissions boundary for the user.", + // "type": "string" + // } + "permissions_boundary": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of the policy that is used to set the permissions boundary for the user.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Policies + // CloudFormation resource type schema: + // + // { + // "description": "Adds or updates an inline policy document that is embedded in the specified IAM role.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "Contains information about an attached policy.", + // "properties": { + // "PolicyDocument": { + // "description": "The policy document.", + // "type": "string" + // }, + // "PolicyName": { + // "description": "The friendly name (not ARN) identifying the policy.", + // "type": "string" + // } + // }, + // "required": [ + // "PolicyName", + // "PolicyDocument" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + "policies": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PolicyDocument + "policy_document": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The policy document.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: PolicyName + "policy_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The friendly name (not ARN) identifying the policy.", + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "Adds or updates an inline policy document that is embedded in the specified IAM role.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "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.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "type": "string" + // }, + // "Value": { + // "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + "tags": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of tags that are associated with the user. For more information about tagging, see Tagging IAM resources in the IAM User Guide.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: UserName + // CloudFormation resource type schema: + // + // { + // "description": "The friendly name identifying the user.", + // "type": "string" + // } + "user_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The friendly name identifying the user.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplace(), + }, /*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 Type definition for AWS::IAM::User", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::IAM::User").WithTerraformTypeName("awscc_iam_user") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(true) + opts = opts.WithAttributeNameMap(map[string]string{ + "arn": "Arn", + "groups": "Groups", + "key": "Key", + "login_profile": "LoginProfile", + "managed_policy_arns": "ManagedPolicyArns", + "password": "Password", + "password_reset_required": "PasswordResetRequired", + "path": "Path", + "permissions_boundary": "PermissionsBoundary", + "policies": "Policies", + "policy_document": "PolicyDocument", + "policy_name": "PolicyName", + "tags": "Tags", + "user_name": "UserName", + "value": "Value", + }) + + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/LoginProfile/Password", + }) + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/iam/user_resource_gen_test.go b/internal/aws/iam/user_resource_gen_test.go new file mode 100644 index 0000000000..08db84e700 --- /dev/null +++ b/internal/aws/iam/user_resource_gen_test.go @@ -0,0 +1,46 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package iam_test + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSIAMUser_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::IAM::User", "awscc_iam_user", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + ), + }, + { + ResourceName: td.ResourceName, + ImportState: true, + ImportStateVerify: true, + }, + }) +} + +func TestAccAWSIAMUser_disappears(t *testing.T) { + td := acctest.NewTestData(t, "AWS::IAM::User", "awscc_iam_user", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + td.DeleteResource(), + ), + ExpectNonEmptyPlan: true, + }, + }) +} diff --git a/internal/aws/iam/user_singular_data_source_gen.go b/internal/aws/iam/user_singular_data_source_gen.go new file mode 100644 index 0000000000..09eb974dd7 --- /dev/null +++ b/internal/aws/iam/user_singular_data_source_gen.go @@ -0,0 +1,274 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package iam + +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_iam_user", userDataSource) +} + +// userDataSource returns the Terraform awscc_iam_user data source. +// This Terraform data source corresponds to the CloudFormation AWS::IAM::User resource. +func userDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "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" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Groups + // CloudFormation resource type schema: + // + // { + // "description": "A list of group names to which you want to add the user.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // } + "groups": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of group names to which you want to add the user.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LoginProfile + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Creates a password for the specified IAM user. A password allows an IAM user to access AWS services through the AWS Management Console.", + // "properties": { + // "Password": { + // "description": "The user's password.", + // "type": "string" + // }, + // "PasswordResetRequired": { + // "description": "Specifies whether the user is required to set a new password on next sign-in.", + // "type": "boolean" + // } + // }, + // "required": [ + // "Password" + // ], + // "type": "object" + // } + "login_profile": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Password + "password": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The user's password.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PasswordResetRequired + "password_reset_required": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies whether the user is required to set a new password on next sign-in.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Creates a password for the specified IAM user. A password allows an IAM user to access AWS services through the AWS Management Console.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ManagedPolicyArns + // CloudFormation resource type schema: + // + // { + // "description": "A list of Amazon Resource Names (ARNs) of the IAM managed policies that you want to attach to the role.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + "managed_policy_arns": schema.SetAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of Amazon Resource Names (ARNs) of the IAM managed policies that you want to attach to the role.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Path + // CloudFormation resource type schema: + // + // { + // "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" + // } + "path": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PermissionsBoundary + // CloudFormation resource type schema: + // + // { + // "description": "The ARN of the policy that is used to set the permissions boundary for the user.", + // "type": "string" + // } + "permissions_boundary": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of the policy that is used to set the permissions boundary for the user.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Policies + // CloudFormation resource type schema: + // + // { + // "description": "Adds or updates an inline policy document that is embedded in the specified IAM role.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "Contains information about an attached policy.", + // "properties": { + // "PolicyDocument": { + // "description": "The policy document.", + // "type": "string" + // }, + // "PolicyName": { + // "description": "The friendly name (not ARN) identifying the policy.", + // "type": "string" + // } + // }, + // "required": [ + // "PolicyName", + // "PolicyDocument" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + "policies": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PolicyDocument + "policy_document": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The policy document.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PolicyName + "policy_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The friendly name (not ARN) identifying the policy.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "Adds or updates an inline policy document that is embedded in the specified IAM role.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "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.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "type": "string" + // }, + // "Value": { + // "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + "tags": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of tags that are associated with the user. For more information about tagging, see Tagging IAM resources in the IAM User Guide.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: UserName + // CloudFormation resource type schema: + // + // { + // "description": "The friendly name identifying the user.", + // "type": "string" + // } + "user_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The friendly name identifying the user.", + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::IAM::User", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::IAM::User").WithTerraformTypeName("awscc_iam_user") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "arn": "Arn", + "groups": "Groups", + "key": "Key", + "login_profile": "LoginProfile", + "managed_policy_arns": "ManagedPolicyArns", + "password": "Password", + "password_reset_required": "PasswordResetRequired", + "path": "Path", + "permissions_boundary": "PermissionsBoundary", + "policies": "Policies", + "policy_document": "PolicyDocument", + "policy_name": "PolicyName", + "tags": "Tags", + "user_name": "UserName", + "value": "Value", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/iam/user_singular_data_source_gen_test.go b/internal/aws/iam/user_singular_data_source_gen_test.go new file mode 100644 index 0000000000..e7daa8abfb --- /dev/null +++ b/internal/aws/iam/user_singular_data_source_gen_test.go @@ -0,0 +1,40 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package iam_test + +import ( + "fmt" + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSIAMUserDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::IAM::User", "awscc_iam_user", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithEmptyResourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrPair(fmt.Sprintf("data.%s", td.ResourceName), "id", td.ResourceName, "id"), + resource.TestCheckResourceAttrPair(fmt.Sprintf("data.%s", td.ResourceName), "arn", td.ResourceName, "arn"), + ), + }, + }) +} + +func TestAccAWSIAMUserDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::IAM::User", "awscc_iam_user", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/medialive/multiplex_plural_data_source_gen.go b/internal/aws/medialive/multiplex_plural_data_source_gen.go new file mode 100644 index 0000000000..b9e21638b4 --- /dev/null +++ b/internal/aws/medialive/multiplex_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 medialive + +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_medialive_multiplexes", multiplexesDataSource) +} + +// multiplexesDataSource returns the Terraform awscc_medialive_multiplexes data source. +// This Terraform data source corresponds to the CloudFormation AWS::MediaLive::Multiplex resource. +func multiplexesDataSource(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::MediaLive::Multiplex", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::MediaLive::Multiplex").WithTerraformTypeName("awscc_medialive_multiplexes") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/medialive/multiplex_plural_data_source_gen_test.go b/internal/aws/medialive/multiplex_plural_data_source_gen_test.go new file mode 100644 index 0000000000..82f74fa88d --- /dev/null +++ b/internal/aws/medialive/multiplex_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 medialive_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSMediaLiveMultiplexesDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::MediaLive::Multiplex", "awscc_medialive_multiplexes", "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/medialive/multiplex_resource_gen.go b/internal/aws/medialive/multiplex_resource_gen.go new file mode 100644 index 0000000000..224222054c --- /dev/null +++ b/internal/aws/medialive/multiplex_resource_gen.go @@ -0,0 +1,385 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package medialive + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework-validators/int64validator" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/int64planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_medialive_multiplex", multiplexResource) +} + +// multiplexResource returns the Terraform awscc_medialive_multiplex resource. +// This Terraform resource corresponds to the CloudFormation AWS::MediaLive::Multiplex resource. +func multiplexResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "description": "The unique arn of the multiplex.", + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The unique arn of the multiplex.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AvailabilityZones + // CloudFormation resource type schema: + // + // { + // "description": "A list of availability zones for the multiplex.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + "availability_zones": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of availability zones for the multiplex.", + Required: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Destinations + // CloudFormation resource type schema: + // + // { + // "description": "A list of the multiplex output destinations.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "Multiplex MediaConnect output destination settings.", + // "properties": { + // "MultiplexMediaConnectOutputDestinationSettings": { + // "additionalProperties": false, + // "description": "Multiplex MediaConnect output destination settings.", + // "properties": { + // "EntitlementArn": { + // "description": "The MediaConnect entitlement ARN available as a Flow source.", + // "minLength": 1, + // "type": "string" + // } + // } + // } + // }, + // "type": "object" + // }, + // "type": "array" + // } + "destinations": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MultiplexMediaConnectOutputDestinationSettings + "multiplex_media_connect_output_destination_settings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EntitlementArn + "entitlement_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The MediaConnect entitlement ARN available as a Flow source.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtLeast(1), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Multiplex MediaConnect output destination settings.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of the multiplex output destinations.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "description": "The unique id of the multiplex.", + // "type": "string" + // } + "id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The unique id of the multiplex.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MultiplexSettings + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Configuration for a multiplex event.", + // "properties": { + // "MaximumVideoBufferDelayMilliseconds": { + // "description": "Maximum video buffer delay in milliseconds.", + // "maximum": 3000, + // "minimum": 800, + // "type": "integer" + // }, + // "TransportStreamBitrate": { + // "description": "Transport stream bit rate.", + // "maximum": 100000000, + // "minimum": 1000000, + // "type": "integer" + // }, + // "TransportStreamId": { + // "description": "Transport stream ID.", + // "maximum": 65535, + // "minimum": 0, + // "type": "integer" + // }, + // "TransportStreamReservedBitrate": { + // "description": "Transport stream reserved bit rate.", + // "maximum": 100000000, + // "minimum": 0, + // "type": "integer" + // } + // }, + // "required": [ + // "TransportStreamBitrate", + // "TransportStreamId" + // ], + // "type": "object" + // } + "multiplex_settings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaximumVideoBufferDelayMilliseconds + "maximum_video_buffer_delay_milliseconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Maximum video buffer delay in milliseconds.", + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(800, 3000), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TransportStreamBitrate + "transport_stream_bitrate": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Transport stream bit rate.", + Required: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(1000000, 100000000), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: TransportStreamId + "transport_stream_id": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Transport stream ID.", + Required: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(0, 65535), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: TransportStreamReservedBitrate + "transport_stream_reserved_bitrate": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Transport stream reserved bit rate.", + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(0, 100000000), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Configuration for a multiplex event.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "Name of multiplex.", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of multiplex.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: PipelinesRunningCount + // CloudFormation resource type schema: + // + // { + // "description": "The number of currently healthy pipelines.", + // "type": "integer" + // } + "pipelines_running_count": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The number of currently healthy pipelines.", + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ProgramCount + // CloudFormation resource type schema: + // + // { + // "description": "The number of programs in the multiplex.", + // "type": "integer" + // } + "program_count": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The number of programs in the multiplex.", + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: State + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "CREATING", + // "CREATE_FAILED", + // "IDLE", + // "STARTING", + // "RUNNING", + // "RECOVERING", + // "STOPPING", + // "DELETING", + // "DELETED" + // ], + // "type": "string" + // } + "state": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "A collection of key-value pairs.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // } + "tags": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A collection of key-value pairs.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + schema := schema.Schema{ + Description: "Resource schema for AWS::MediaLive::Multiplex", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::MediaLive::Multiplex").WithTerraformTypeName("awscc_medialive_multiplex") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(false) + opts = opts.WithAttributeNameMap(map[string]string{ + "arn": "Arn", + "availability_zones": "AvailabilityZones", + "destinations": "Destinations", + "entitlement_arn": "EntitlementArn", + "id": "Id", + "key": "Key", + "maximum_video_buffer_delay_milliseconds": "MaximumVideoBufferDelayMilliseconds", + "multiplex_media_connect_output_destination_settings": "MultiplexMediaConnectOutputDestinationSettings", + "multiplex_settings": "MultiplexSettings", + "name": "Name", + "pipelines_running_count": "PipelinesRunningCount", + "program_count": "ProgramCount", + "state": "State", + "tags": "Tags", + "transport_stream_bitrate": "TransportStreamBitrate", + "transport_stream_id": "TransportStreamId", + "transport_stream_reserved_bitrate": "TransportStreamReservedBitrate", + "value": "Value", + }) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/medialive/multiplex_resource_gen_test.go b/internal/aws/medialive/multiplex_resource_gen_test.go new file mode 100644 index 0000000000..7ef04560ef --- /dev/null +++ b/internal/aws/medialive/multiplex_resource_gen_test.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package medialive_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSMediaLiveMultiplex_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::MediaLive::Multiplex", "awscc_medialive_multiplex", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/medialive/multiplex_singular_data_source_gen.go b/internal/aws/medialive/multiplex_singular_data_source_gen.go new file mode 100644 index 0000000000..7c5d8f2b9c --- /dev/null +++ b/internal/aws/medialive/multiplex_singular_data_source_gen.go @@ -0,0 +1,308 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package medialive + +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_medialive_multiplex", multiplexDataSource) +} + +// multiplexDataSource returns the Terraform awscc_medialive_multiplex data source. +// This Terraform data source corresponds to the CloudFormation AWS::MediaLive::Multiplex resource. +func multiplexDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "description": "The unique arn of the multiplex.", + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The unique arn of the multiplex.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AvailabilityZones + // CloudFormation resource type schema: + // + // { + // "description": "A list of availability zones for the multiplex.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + "availability_zones": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A list of availability zones for the multiplex.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Destinations + // CloudFormation resource type schema: + // + // { + // "description": "A list of the multiplex output destinations.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "Multiplex MediaConnect output destination settings.", + // "properties": { + // "MultiplexMediaConnectOutputDestinationSettings": { + // "additionalProperties": false, + // "description": "Multiplex MediaConnect output destination settings.", + // "properties": { + // "EntitlementArn": { + // "description": "The MediaConnect entitlement ARN available as a Flow source.", + // "minLength": 1, + // "type": "string" + // } + // } + // } + // }, + // "type": "object" + // }, + // "type": "array" + // } + "destinations": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MultiplexMediaConnectOutputDestinationSettings + "multiplex_media_connect_output_destination_settings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EntitlementArn + "entitlement_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The MediaConnect entitlement ARN available as a Flow source.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Multiplex MediaConnect output destination settings.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of the multiplex output destinations.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "description": "The unique id of the multiplex.", + // "type": "string" + // } + "id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The unique id of the multiplex.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MultiplexSettings + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Configuration for a multiplex event.", + // "properties": { + // "MaximumVideoBufferDelayMilliseconds": { + // "description": "Maximum video buffer delay in milliseconds.", + // "maximum": 3000, + // "minimum": 800, + // "type": "integer" + // }, + // "TransportStreamBitrate": { + // "description": "Transport stream bit rate.", + // "maximum": 100000000, + // "minimum": 1000000, + // "type": "integer" + // }, + // "TransportStreamId": { + // "description": "Transport stream ID.", + // "maximum": 65535, + // "minimum": 0, + // "type": "integer" + // }, + // "TransportStreamReservedBitrate": { + // "description": "Transport stream reserved bit rate.", + // "maximum": 100000000, + // "minimum": 0, + // "type": "integer" + // } + // }, + // "required": [ + // "TransportStreamBitrate", + // "TransportStreamId" + // ], + // "type": "object" + // } + "multiplex_settings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaximumVideoBufferDelayMilliseconds + "maximum_video_buffer_delay_milliseconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Maximum video buffer delay in milliseconds.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TransportStreamBitrate + "transport_stream_bitrate": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Transport stream bit rate.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TransportStreamId + "transport_stream_id": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Transport stream ID.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TransportStreamReservedBitrate + "transport_stream_reserved_bitrate": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Transport stream reserved bit rate.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Configuration for a multiplex event.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "Name of multiplex.", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of multiplex.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PipelinesRunningCount + // CloudFormation resource type schema: + // + // { + // "description": "The number of currently healthy pipelines.", + // "type": "integer" + // } + "pipelines_running_count": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The number of currently healthy pipelines.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ProgramCount + // CloudFormation resource type schema: + // + // { + // "description": "The number of programs in the multiplex.", + // "type": "integer" + // } + "program_count": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The number of programs in the multiplex.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: State + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "CREATING", + // "CREATE_FAILED", + // "IDLE", + // "STARTING", + // "RUNNING", + // "RECOVERING", + // "STOPPING", + // "DELETING", + // "DELETED" + // ], + // "type": "string" + // } + "state": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "A collection of key-value pairs.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // } + "tags": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A collection of key-value pairs.", + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::MediaLive::Multiplex", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::MediaLive::Multiplex").WithTerraformTypeName("awscc_medialive_multiplex") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "arn": "Arn", + "availability_zones": "AvailabilityZones", + "destinations": "Destinations", + "entitlement_arn": "EntitlementArn", + "id": "Id", + "key": "Key", + "maximum_video_buffer_delay_milliseconds": "MaximumVideoBufferDelayMilliseconds", + "multiplex_media_connect_output_destination_settings": "MultiplexMediaConnectOutputDestinationSettings", + "multiplex_settings": "MultiplexSettings", + "name": "Name", + "pipelines_running_count": "PipelinesRunningCount", + "program_count": "ProgramCount", + "state": "State", + "tags": "Tags", + "transport_stream_bitrate": "TransportStreamBitrate", + "transport_stream_id": "TransportStreamId", + "transport_stream_reserved_bitrate": "TransportStreamReservedBitrate", + "value": "Value", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/medialive/multiplex_singular_data_source_gen_test.go b/internal/aws/medialive/multiplex_singular_data_source_gen_test.go new file mode 100644 index 0000000000..d73cf08d18 --- /dev/null +++ b/internal/aws/medialive/multiplex_singular_data_source_gen_test.go @@ -0,0 +1,36 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package medialive_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSMediaLiveMultiplexDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::MediaLive::Multiplex", "awscc_medialive_multiplex", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSMediaLiveMultiplexDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::MediaLive::Multiplex", "awscc_medialive_multiplex", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/medialive/multiplexprogram_resource_gen.go b/internal/aws/medialive/multiplexprogram_resource_gen.go new file mode 100644 index 0000000000..e17b0534b7 --- /dev/null +++ b/internal/aws/medialive/multiplexprogram_resource_gen.go @@ -0,0 +1,634 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package medialive + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework-validators/int64validator" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/int64planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_medialive_multiplexprogram", multiplexprogramResource) +} + +// multiplexprogramResource returns the Terraform awscc_medialive_multiplexprogram resource. +// This Terraform resource corresponds to the CloudFormation AWS::MediaLive::Multiplexprogram resource. +func multiplexprogramResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ChannelId + // CloudFormation resource type schema: + // + // { + // "description": "The MediaLive channel associated with the program.", + // "type": "string" + // } + "channel_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The MediaLive channel associated with the program.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MultiplexId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the multiplex that the program belongs to.", + // "type": "string" + // } + "multiplex_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the multiplex that the program belongs to.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MultiplexProgramSettings + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The settings for this multiplex program.", + // "properties": { + // "PreferredChannelPipeline": { + // "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" + // ], + // "type": "string" + // }, + // "ProgramNumber": { + // "description": "Unique program number.", + // "maximum": 65535, + // "minimum": 0, + // "type": "integer" + // }, + // "ServiceDescriptor": { + // "additionalProperties": false, + // "description": "Transport stream service descriptor configuration for the Multiplex program.", + // "properties": { + // "ProviderName": { + // "description": "Name of the provider.", + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // }, + // "ServiceName": { + // "description": "Name of the service.", + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "ProviderName", + // "ServiceName" + // ], + // "type": "object" + // }, + // "VideoSettings": { + // "description": "Program video settings configuration.", + // "properties": { + // "ConstantBitrate": { + // "description": "The constant bitrate configuration for the video encode.\nWhen this field is defined, StatmuxSettings must be undefined.", + // "maximum": 100000000, + // "minimum": 100000, + // "type": "integer" + // }, + // "StatmuxSettings": { + // "additionalProperties": false, + // "description": "Statmux rate control settings.\nWhen this field is defined, ConstantBitrate must be undefined.", + // "properties": { + // "MaximumBitrate": { + // "description": "Maximum statmux bitrate.", + // "maximum": 100000000, + // "minimum": 100000, + // "type": "integer" + // }, + // "MinimumBitrate": { + // "description": "Minimum statmux bitrate.", + // "maximum": 100000000, + // "minimum": 100000, + // "type": "integer" + // }, + // "Priority": { + // "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.", + // "maximum": 5, + // "minimum": -5, + // "type": "integer" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // } + // }, + // "required": [ + // "ProgramNumber" + // ], + // "type": "object" + // } + "multiplex_program_settings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PreferredChannelPipeline + "preferred_channel_pipeline": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "CURRENTLY_ACTIVE", + "PIPELINE_0", + "PIPELINE_1", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ProgramNumber + "program_number": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Unique program number.", + Required: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(0, 65535), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: ServiceDescriptor + "service_descriptor": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ProviderName + "provider_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of the provider.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: ServiceName + "service_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of the service.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Transport stream service descriptor configuration for the Multiplex program.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: VideoSettings + "video_settings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ConstantBitrate + "constant_bitrate": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The constant bitrate configuration for the video encode.\nWhen this field is defined, StatmuxSettings must be undefined.", + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(100000, 100000000), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: StatmuxSettings + "statmux_settings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaximumBitrate + "maximum_bitrate": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Maximum statmux bitrate.", + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(100000, 100000000), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MinimumBitrate + "minimum_bitrate": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Minimum statmux bitrate.", + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(100000, 100000000), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Priority + "priority": schema.Int64Attribute{ /*START ATTRIBUTE*/ + 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.", + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(-5, 5), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Statmux rate control settings.\nWhen this field is defined, ConstantBitrate must be undefined.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Program video settings configuration.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The settings for this multiplex program.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PacketIdentifiersMap + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The packet identifier map for this multiplex program.", + // "properties": { + // "AudioPids": { + // "insertionOrder": true, + // "items": { + // "type": "integer" + // }, + // "type": "array" + // }, + // "DvbSubPids": { + // "insertionOrder": true, + // "items": { + // "type": "integer" + // }, + // "type": "array" + // }, + // "DvbTeletextPid": { + // "type": "integer" + // }, + // "EtvPlatformPid": { + // "type": "integer" + // }, + // "EtvSignalPid": { + // "type": "integer" + // }, + // "KlvDataPids": { + // "insertionOrder": true, + // "items": { + // "type": "integer" + // }, + // "type": "array" + // }, + // "PcrPid": { + // "type": "integer" + // }, + // "PmtPid": { + // "type": "integer" + // }, + // "PrivateMetadataPid": { + // "type": "integer" + // }, + // "Scte27Pids": { + // "insertionOrder": true, + // "items": { + // "type": "integer" + // }, + // "type": "array" + // }, + // "Scte35Pid": { + // "type": "integer" + // }, + // "TimedMetadataPid": { + // "type": "integer" + // }, + // "VideoPid": { + // "type": "integer" + // } + // }, + // "type": "object" + // } + "packet_identifiers_map": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AudioPids + "audio_pids": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.Int64Type, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DvbSubPids + "dvb_sub_pids": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.Int64Type, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DvbTeletextPid + "dvb_teletext_pid": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: EtvPlatformPid + "etv_platform_pid": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: EtvSignalPid + "etv_signal_pid": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: KlvDataPids + "klv_data_pids": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.Int64Type, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PcrPid + "pcr_pid": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PmtPid + "pmt_pid": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PrivateMetadataPid + "private_metadata_pid": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Scte27Pids + "scte_27_pids": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.Int64Type, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Scte35Pid + "scte_35_pid": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TimedMetadataPid + "timed_metadata_pid": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: VideoPid + "video_pid": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The packet identifier map for this multiplex program.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PipelineDetails + // CloudFormation resource type schema: + // + // { + // "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.", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "The current source for one of the pipelines in the multiplex.", + // "properties": { + // "ActiveChannelPipeline": { + // "description": "Identifies the channel pipeline that is currently active for the pipeline (identified by PipelineId) in the multiplex.", + // "type": "string" + // }, + // "PipelineId": { + // "description": "Identifies a specific pipeline in the multiplex.", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // } + "pipeline_details": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ActiveChannelPipeline + "active_channel_pipeline": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Identifies the channel pipeline that is currently active for the pipeline (identified by PipelineId) in the multiplex.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PipelineId + "pipeline_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Identifies a specific pipeline in the multiplex.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + 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.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PreferredChannelPipeline + // CloudFormation resource type schema: + // + // { + // "description": "The settings for this multiplex program.", + // "enum": [ + // "CURRENTLY_ACTIVE", + // "PIPELINE_0", + // "PIPELINE_1" + // ], + // "type": "string" + // } + "preferred_channel_pipeline": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The settings for this multiplex program.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "CURRENTLY_ACTIVE", + "PIPELINE_0", + "PIPELINE_1", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + // PreferredChannelPipeline is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: ProgramName + // CloudFormation resource type schema: + // + // { + // "description": "The name of the multiplex program.", + // "type": "string" + // } + "program_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the multiplex program.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplace(), + }, /*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::MediaLive::Multiplexprogram", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::MediaLive::Multiplexprogram").WithTerraformTypeName("awscc_medialive_multiplexprogram") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(true) + opts = opts.WithAttributeNameMap(map[string]string{ + "active_channel_pipeline": "ActiveChannelPipeline", + "audio_pids": "AudioPids", + "channel_id": "ChannelId", + "constant_bitrate": "ConstantBitrate", + "dvb_sub_pids": "DvbSubPids", + "dvb_teletext_pid": "DvbTeletextPid", + "etv_platform_pid": "EtvPlatformPid", + "etv_signal_pid": "EtvSignalPid", + "klv_data_pids": "KlvDataPids", + "maximum_bitrate": "MaximumBitrate", + "minimum_bitrate": "MinimumBitrate", + "multiplex_id": "MultiplexId", + "multiplex_program_settings": "MultiplexProgramSettings", + "packet_identifiers_map": "PacketIdentifiersMap", + "pcr_pid": "PcrPid", + "pipeline_details": "PipelineDetails", + "pipeline_id": "PipelineId", + "pmt_pid": "PmtPid", + "preferred_channel_pipeline": "PreferredChannelPipeline", + "priority": "Priority", + "private_metadata_pid": "PrivateMetadataPid", + "program_name": "ProgramName", + "program_number": "ProgramNumber", + "provider_name": "ProviderName", + "scte_27_pids": "Scte27Pids", + "scte_35_pid": "Scte35Pid", + "service_descriptor": "ServiceDescriptor", + "service_name": "ServiceName", + "statmux_settings": "StatmuxSettings", + "timed_metadata_pid": "TimedMetadataPid", + "video_pid": "VideoPid", + "video_settings": "VideoSettings", + }) + + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/PreferredChannelPipeline", + }) + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/medialive/multiplexprogram_resource_gen_test.go b/internal/aws/medialive/multiplexprogram_resource_gen_test.go new file mode 100644 index 0000000000..bb1b2b016b --- /dev/null +++ b/internal/aws/medialive/multiplexprogram_resource_gen_test.go @@ -0,0 +1,46 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package medialive_test + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSMediaLiveMultiplexprogram_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::MediaLive::Multiplexprogram", "awscc_medialive_multiplexprogram", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + ), + }, + { + ResourceName: td.ResourceName, + ImportState: true, + ImportStateVerify: true, + }, + }) +} + +func TestAccAWSMediaLiveMultiplexprogram_disappears(t *testing.T) { + td := acctest.NewTestData(t, "AWS::MediaLive::Multiplexprogram", "awscc_medialive_multiplexprogram", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + td.DeleteResource(), + ), + ExpectNonEmptyPlan: true, + }, + }) +} diff --git a/internal/aws/medialive/multiplexprogram_singular_data_source_gen.go b/internal/aws/medialive/multiplexprogram_singular_data_source_gen.go new file mode 100644 index 0000000000..a7b27a3004 --- /dev/null +++ b/internal/aws/medialive/multiplexprogram_singular_data_source_gen.go @@ -0,0 +1,456 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package medialive + +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_medialive_multiplexprogram", multiplexprogramDataSource) +} + +// multiplexprogramDataSource returns the Terraform awscc_medialive_multiplexprogram data source. +// This Terraform data source corresponds to the CloudFormation AWS::MediaLive::Multiplexprogram resource. +func multiplexprogramDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ChannelId + // CloudFormation resource type schema: + // + // { + // "description": "The MediaLive channel associated with the program.", + // "type": "string" + // } + "channel_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The MediaLive channel associated with the program.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MultiplexId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the multiplex that the program belongs to.", + // "type": "string" + // } + "multiplex_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the multiplex that the program belongs to.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MultiplexProgramSettings + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The settings for this multiplex program.", + // "properties": { + // "PreferredChannelPipeline": { + // "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" + // ], + // "type": "string" + // }, + // "ProgramNumber": { + // "description": "Unique program number.", + // "maximum": 65535, + // "minimum": 0, + // "type": "integer" + // }, + // "ServiceDescriptor": { + // "additionalProperties": false, + // "description": "Transport stream service descriptor configuration for the Multiplex program.", + // "properties": { + // "ProviderName": { + // "description": "Name of the provider.", + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // }, + // "ServiceName": { + // "description": "Name of the service.", + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "ProviderName", + // "ServiceName" + // ], + // "type": "object" + // }, + // "VideoSettings": { + // "description": "Program video settings configuration.", + // "properties": { + // "ConstantBitrate": { + // "description": "The constant bitrate configuration for the video encode.\nWhen this field is defined, StatmuxSettings must be undefined.", + // "maximum": 100000000, + // "minimum": 100000, + // "type": "integer" + // }, + // "StatmuxSettings": { + // "additionalProperties": false, + // "description": "Statmux rate control settings.\nWhen this field is defined, ConstantBitrate must be undefined.", + // "properties": { + // "MaximumBitrate": { + // "description": "Maximum statmux bitrate.", + // "maximum": 100000000, + // "minimum": 100000, + // "type": "integer" + // }, + // "MinimumBitrate": { + // "description": "Minimum statmux bitrate.", + // "maximum": 100000000, + // "minimum": 100000, + // "type": "integer" + // }, + // "Priority": { + // "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.", + // "maximum": 5, + // "minimum": -5, + // "type": "integer" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // } + // }, + // "required": [ + // "ProgramNumber" + // ], + // "type": "object" + // } + "multiplex_program_settings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PreferredChannelPipeline + "preferred_channel_pipeline": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ProgramNumber + "program_number": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Unique program number.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ServiceDescriptor + "service_descriptor": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ProviderName + "provider_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of the provider.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ServiceName + "service_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of the service.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Transport stream service descriptor configuration for the Multiplex program.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: VideoSettings + "video_settings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ConstantBitrate + "constant_bitrate": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The constant bitrate configuration for the video encode.\nWhen this field is defined, StatmuxSettings must be undefined.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: StatmuxSettings + "statmux_settings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaximumBitrate + "maximum_bitrate": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Maximum statmux bitrate.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MinimumBitrate + "minimum_bitrate": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Minimum statmux bitrate.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Priority + "priority": schema.Int64Attribute{ /*START ATTRIBUTE*/ + 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.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Statmux rate control settings.\nWhen this field is defined, ConstantBitrate must be undefined.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Program video settings configuration.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The settings for this multiplex program.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PacketIdentifiersMap + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The packet identifier map for this multiplex program.", + // "properties": { + // "AudioPids": { + // "insertionOrder": true, + // "items": { + // "type": "integer" + // }, + // "type": "array" + // }, + // "DvbSubPids": { + // "insertionOrder": true, + // "items": { + // "type": "integer" + // }, + // "type": "array" + // }, + // "DvbTeletextPid": { + // "type": "integer" + // }, + // "EtvPlatformPid": { + // "type": "integer" + // }, + // "EtvSignalPid": { + // "type": "integer" + // }, + // "KlvDataPids": { + // "insertionOrder": true, + // "items": { + // "type": "integer" + // }, + // "type": "array" + // }, + // "PcrPid": { + // "type": "integer" + // }, + // "PmtPid": { + // "type": "integer" + // }, + // "PrivateMetadataPid": { + // "type": "integer" + // }, + // "Scte27Pids": { + // "insertionOrder": true, + // "items": { + // "type": "integer" + // }, + // "type": "array" + // }, + // "Scte35Pid": { + // "type": "integer" + // }, + // "TimedMetadataPid": { + // "type": "integer" + // }, + // "VideoPid": { + // "type": "integer" + // } + // }, + // "type": "object" + // } + "packet_identifiers_map": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AudioPids + "audio_pids": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.Int64Type, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DvbSubPids + "dvb_sub_pids": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.Int64Type, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DvbTeletextPid + "dvb_teletext_pid": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EtvPlatformPid + "etv_platform_pid": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EtvSignalPid + "etv_signal_pid": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: KlvDataPids + "klv_data_pids": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.Int64Type, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PcrPid + "pcr_pid": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PmtPid + "pmt_pid": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PrivateMetadataPid + "private_metadata_pid": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Scte27Pids + "scte_27_pids": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.Int64Type, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Scte35Pid + "scte_35_pid": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TimedMetadataPid + "timed_metadata_pid": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: VideoPid + "video_pid": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The packet identifier map for this multiplex program.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PipelineDetails + // CloudFormation resource type schema: + // + // { + // "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.", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "The current source for one of the pipelines in the multiplex.", + // "properties": { + // "ActiveChannelPipeline": { + // "description": "Identifies the channel pipeline that is currently active for the pipeline (identified by PipelineId) in the multiplex.", + // "type": "string" + // }, + // "PipelineId": { + // "description": "Identifies a specific pipeline in the multiplex.", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // } + "pipeline_details": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ActiveChannelPipeline + "active_channel_pipeline": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Identifies the channel pipeline that is currently active for the pipeline (identified by PipelineId) in the multiplex.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PipelineId + "pipeline_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Identifies a specific pipeline in the multiplex.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + 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.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PreferredChannelPipeline + // CloudFormation resource type schema: + // + // { + // "description": "The settings for this multiplex program.", + // "enum": [ + // "CURRENTLY_ACTIVE", + // "PIPELINE_0", + // "PIPELINE_1" + // ], + // "type": "string" + // } + "preferred_channel_pipeline": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The settings for this multiplex program.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ProgramName + // CloudFormation resource type schema: + // + // { + // "description": "The name of the multiplex program.", + // "type": "string" + // } + "program_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the multiplex program.", + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::MediaLive::Multiplexprogram", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::MediaLive::Multiplexprogram").WithTerraformTypeName("awscc_medialive_multiplexprogram") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "active_channel_pipeline": "ActiveChannelPipeline", + "audio_pids": "AudioPids", + "channel_id": "ChannelId", + "constant_bitrate": "ConstantBitrate", + "dvb_sub_pids": "DvbSubPids", + "dvb_teletext_pid": "DvbTeletextPid", + "etv_platform_pid": "EtvPlatformPid", + "etv_signal_pid": "EtvSignalPid", + "klv_data_pids": "KlvDataPids", + "maximum_bitrate": "MaximumBitrate", + "minimum_bitrate": "MinimumBitrate", + "multiplex_id": "MultiplexId", + "multiplex_program_settings": "MultiplexProgramSettings", + "packet_identifiers_map": "PacketIdentifiersMap", + "pcr_pid": "PcrPid", + "pipeline_details": "PipelineDetails", + "pipeline_id": "PipelineId", + "pmt_pid": "PmtPid", + "preferred_channel_pipeline": "PreferredChannelPipeline", + "priority": "Priority", + "private_metadata_pid": "PrivateMetadataPid", + "program_name": "ProgramName", + "program_number": "ProgramNumber", + "provider_name": "ProviderName", + "scte_27_pids": "Scte27Pids", + "scte_35_pid": "Scte35Pid", + "service_descriptor": "ServiceDescriptor", + "service_name": "ServiceName", + "statmux_settings": "StatmuxSettings", + "timed_metadata_pid": "TimedMetadataPid", + "video_pid": "VideoPid", + "video_settings": "VideoSettings", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/medialive/multiplexprogram_singular_data_source_gen_test.go b/internal/aws/medialive/multiplexprogram_singular_data_source_gen_test.go new file mode 100644 index 0000000000..caf16f19c2 --- /dev/null +++ b/internal/aws/medialive/multiplexprogram_singular_data_source_gen_test.go @@ -0,0 +1,40 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package medialive_test + +import ( + "fmt" + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSMediaLiveMultiplexprogramDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::MediaLive::Multiplexprogram", "awscc_medialive_multiplexprogram", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithEmptyResourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrPair(fmt.Sprintf("data.%s", td.ResourceName), "id", td.ResourceName, "id"), + resource.TestCheckResourceAttrPair(fmt.Sprintf("data.%s", td.ResourceName), "arn", td.ResourceName, "arn"), + ), + }, + }) +} + +func TestAccAWSMediaLiveMultiplexprogramDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::MediaLive::Multiplexprogram", "awscc_medialive_multiplexprogram", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/mediapackagev2/origin_endpoint_resource_gen.go b/internal/aws/mediapackagev2/origin_endpoint_resource_gen.go index 6ac6bfcd0e..05a99e0020 100644 --- a/internal/aws/mediapackagev2/origin_endpoint_resource_gen.go +++ b/internal/aws/mediapackagev2/origin_endpoint_resource_gen.go @@ -22,6 +22,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework/types" "github.com/hashicorp/terraform-provider-awscc/internal/generic" "github.com/hashicorp/terraform-provider-awscc/internal/registry" + "github.com/hashicorp/terraform-provider-awscc/internal/validate" "regexp" ) @@ -159,6 +160,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, @@ -215,6 +245,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.

", @@ -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.

", @@ -1666,6 +1815,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": { @@ -1694,6 +1879,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" @@ -2326,6 +2540,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*/ @@ -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.

", @@ -2887,6 +3185,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": { @@ -2915,6 +3249,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" @@ -3495,6 +3858,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*/ @@ -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.

", @@ -1394,6 +1507,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": { @@ -1422,6 +1571,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" @@ -1820,6 +1998,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*/ @@ -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.

", @@ -2333,6 +2559,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": { @@ -2361,6 +2623,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" @@ -2714,6 +3005,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*/ @@ -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" ] },